PK fUIoa,mimetypeapplication/epub+zipPKfUIMETA-INF/container.xml PKYuPKfUI OEBPS/toc.htm Table of Contents

Contents

List of Figures

List of Tables

Title and Copyright Information

Send Us Your Comments

Preface

Audience
Documentation Accessibility
Structure
Related Documents
Conventions

1 Understanding Oracle Text Application Development

1.1 What is Oracle Text?
1.2 Designing Your Application
1.3 Text Queries on Document Collections
1.3.1 Flowchart of Text Query Application
1.4 Queries on Catalog Information
1.4.1 Flowchart for Catalog Query Application
1.5 Document Classification
1.6 XML Searching
1.6.1 Using Oracle Text
1.6.2 Using the Oracle XML DB Framework
1.6.3 Combining Oracle Text features with Oracle XML DB
1.6.3.1 Using the Text-on-XML Method
1.6.3.2 Using the XML-on-Text Method

2 Getting Started with Oracle Text

2.1 Overview of Getting Started with Oracle Text
2.2 Creating an Oracle Text User
2.3 Query Application Quick Tour
2.3.1 Building Web Applications with the Oracle Text Wizard
2.3.1.1 Oracle JDeveloper
2.3.1.2 Oracle Text Wizard Addins
2.3.1.3 Oracle Text Wizard Instructions
2.4 Catalog Application Quick Tour
2.5 Classification Application Quick Tour
2.5.1 Steps for Creating a Classification Application

3 Indexing with Oracle Text

3.1 About Oracle Text Indexes
3.1.1 Types of Oracle Text Indexes
3.1.2 Structure of the Oracle Text CONTEXT Index
3.1.2.1 Merged Word and Theme Index
3.1.3 The Oracle Text Indexing Process
3.1.3.1 Datastore Object
3.1.3.2 Filter Object
3.1.3.3 Sectioner Object
3.1.3.4 Lexer Object
3.1.3.5 Indexing Engine
3.1.4 Partitioned Tables and Indexes
3.1.4.1 Querying Partitioned Tables
3.1.5 Creating an Index Online
3.1.6 Parallel Indexing
3.1.7 Indexing and Views
3.2 Considerations For Indexing
3.2.1 Location of Text
3.2.1.1 Supported Column Types
3.2.1.2 Storing Text in the Text Table
3.2.1.3 Storing File Path Names
3.2.1.4 Storing URLs
3.2.1.5 Storing Associated Document Information
3.2.1.6 Format and Character Set Columns
3.2.1.7 Supported Document Formats
3.2.1.8 Summary of DATASTORE Types
3.2.2 Document Formats and Filtering
3.2.2.1 No Filtering for HTML
3.2.2.2 Filtering Mixed-Format Columns
3.2.2.3 Custom Filtering
3.2.3 Bypassing Rows for Indexing
3.2.4 Document Character Set
3.2.4.1 Mixed Character Set Columns
3.2.5 Document Language
3.2.5.1 Languages Features Outside BASIC_LEXER
3.2.5.2 Indexing Multi-language Columns
3.2.6 Indexing Special Characters
3.2.6.1 Printjoins Character
3.2.6.2 Skipjoins Character
3.2.6.3 Other Characters
3.2.7 Case-Sensitive Indexing and Querying
3.2.8 Language-Specific Features
3.2.8.1 Indexing Themes
3.2.8.2 Base-Letter Conversion for Characters with Diacritical Marks
3.2.8.3 Alternate Spelling
3.2.8.4 Composite Words
3.2.8.5 Korean, Japanese, and Chinese Indexing
3.2.9 Fuzzy Matching and Stemming
3.2.10 Better Wildcard Query Performance
3.2.11 Document Section Searching
3.2.12 Stopwords and Stopthemes
3.2.12.1 Multi-Language Stoplists
3.2.13 Index Performance
3.2.14 Query Performance and Storage of LOB Columns
3.3 Index Creation
3.3.1 Procedure for Creating a CONTEXT Index
3.3.2 Creating Preferences
3.3.2.1 Datastore Examples
3.3.2.2 NULL_FILTER Example: Indexing HTML Documents
3.3.2.3 PROCEDURE_FILTER Example
3.3.2.4 BASIC_LEXER Example: Setting Printjoins Characters
3.3.2.5 MULTI_LEXER Example: Indexing a Multi-Language Table
3.3.2.6 BASIC_WORDLIST Example: Enabling Substring and Prefix Indexing
3.3.3 Creating Section Groups for Section Searching
3.3.3.1 Example: Creating HTML Sections
3.3.4 Using Stopwords and Stoplists
3.3.4.1 Multi-Language Stoplists
3.3.4.2 Stopthemes and Stopclasses
3.3.4.3 PL/SQL Procedures for Managing Stoplists
3.3.5 Creating an Index
3.3.6 Creating a CONTEXT Index
3.3.6.1 CONTEXT Index and DML
3.3.6.2 Default CONTEXT Index Example
3.3.6.3 Custom CONTEXT Index Example: Indexing HTML Documents
3.3.7 Creating a CTXCAT Index
3.3.7.1 CTXCAT Index and DML
3.3.7.2 About CTXCAT Sub-Indexes and Their Costs
3.3.7.3 Creating CTXCAT Sub-indexes
3.3.7.4 Creating CTXCAT Index
3.3.8 Creating a CTXRULE Index
3.3.8.1 Create a Table of Queries
3.3.8.2 Create the CTXRULE Index
3.3.8.3 Classifying a Document
3.4 Index Maintenance
3.4.1 Viewing Index Errors
3.4.2 Dropping an Index
3.4.3 Resuming Failed Index
3.4.3.1 Example: Resuming a Failed Index
3.4.4 Rebuilding an Index
3.4.4.1 Example: Rebuilding and Index
3.4.5 Dropping a Preference
3.4.5.1 Example
3.5 Managing DML Operations for a CONTEXT Index
3.5.1 Viewing Pending DML
3.5.2 Synchronizing the Index
3.5.2.1 Setting Background DML
3.5.3 Index Optimization
3.5.3.1 CONTEXT Index Structure
3.5.3.2 Index Fragmentation
3.5.3.3 Document Invalidation and Garbage Collection
3.5.3.4 Single Token Optimization
3.5.3.5 Viewing Index Fragmentation and Garbage Data
3.5.3.6 Examples: Optimizing the Index

4 Querying with Oracle Text

4.1 Overview of Queries
4.1.1 Querying with CONTAINS
4.1.1.1 CONTAINS SQL Example
4.1.1.2 CONTAINS PL/SQL Example
4.1.1.3 Structured Query with CONTAINS
4.1.2 Querying with CATSEARCH
4.1.2.1 CATSEARCH SQL Query
4.1.2.2 CATSEARCH Example
4.1.3 Querying with MATCHES
4.1.3.1 MATCHES SQL Query
4.1.3.2 MATCHES PL/SQL Example
4.1.4 Word and Phrase Queries
4.1.4.1 CONTAINS Phrase Queries
4.1.4.2 CATSEARCH Phrase Queries
4.1.5 Querying Stopwords
4.1.6 ABOUT Queries and Themes
4.1.6.1 Querying Stopthemes
4.1.7 Query Expressions
4.1.7.1 CONTAINS Operators
4.1.7.2 CATSEARCH Operator
4.1.7.3 MATCHES Operator
4.1.8 Case-Sensitive Searching
4.1.8.1 Word Queries
4.1.8.2 ABOUT Queries
4.1.9 Query Feedback
4.1.10 Query Explain Plan
4.1.11 Using a Thesaurus in Queries
4.1.12 Document Section Searching
4.1.13 Using Query Templating
4.1.14 Query Rewrite
4.1.15 Query Relaxation
4.1.16 Query Language
4.1.17 Alternative Scoring
4.1.18 Alternative Grammar
4.1.19 Query Analysis
4.1.20 Other Query Features
4.2 The CONTEXT Grammar
4.2.1 ABOUT Query
4.2.2 Logical Operators
4.2.3 Section Searching
4.2.4 Proximity Queries with NEAR and NEAR_ACCUM Operators
4.2.5 Fuzzy, Stem, Soundex, Wildcard and Thesaurus Expansion Operators
4.2.6 Using CTXCAT Grammar
4.2.7 Stored Query Expressions
4.2.7.1 Defining a Stored Query Expression
4.2.7.2 SQE Example
4.2.8 Calling PL/SQL Functions in CONTAINS
4.2.9 Optimizing for Response Time
4.2.9.1 Other Factors that Influence Query Response Time
4.2.10 Counting Hits
4.2.10.1 SQL Count Hits Example
4.2.10.2 Counting Hits with a Structured Predicate
4.2.10.3 PL/SQL Count Hits Example
4.3 The CTXCAT Grammar
4.3.1 Using CONTEXT Grammar with CATSEARCH

5 Presenting Documents in Oracle Text

5.1 Highlighting Query Terms
5.1.1 Text highlighting
5.1.2 Theme Highlighting
5.1.3 CTX_DOC Highlighting Procedures
5.1.3.1 Markup Procedure
5.1.3.2 Highlight Procedure
5.1.3.3 Concordance
5.2 Obtaining Lists of Themes, Gists, and Theme Summaries
5.2.1 Lists of Themes
5.2.1.1 In-Memory Themes
5.2.1.2 Result Table Themes
5.2.2 Gist and Theme Summary
5.2.2.1 In-Memory Gist
5.2.2.2 Result Table Gists
5.2.2.3 Theme Summary
5.3 Document Presentation and Highlighting
5.3.1 Highlighting Example
5.3.2 Document List of Themes Example
5.3.3 Gist Example

6 Classifying Documents in Oracle Text

6.1 Overview
6.1.1 Classification Applications
6.2 Classification Solutions
6.3 Rule-Based Classification
6.3.1 Rule-based Classification Example
6.3.2 CTXRULE Parameters and Limitations
6.4 Supervised Classification
6.4.1 Decision Tree Supervised Classification
6.4.1.1 Decision Tree Supervised Classification Example
6.4.2 SVM-Based Supervised Classification
6.4.2.1 SVM-Based Supervised Classification Example
6.5 Unsupervised Classification (Clustering)
6.5.1 Clustering Example

7 Tuning Oracle Text

7.1 Optimizing Queries with Statistics
7.1.1 Collecting Statistics
7.1.1.1 Example
7.1.2 Re-Collecting Statistics
7.1.3 Deleting Statistics
7.2 Optimizing Queries for Response Time
7.2.1 Other Factors that Influence Query Response Time
7.2.2 Improved Response Time with FIRST_ROWS(n) for ORDER BY Queries
7.2.2.1 About the FIRST_ROWS Hint
7.2.3 Improved Response Time using Local Partitioned CONTEXT Index
7.2.3.1 Range Search on Partition Key Column
7.2.3.2 ORDER BY Partition Key Column
7.2.4 Improved Response Time with Local Partitioned Index for Order by Score
7.3 Optimizing Queries for Throughput
7.3.1 CHOOSE and ALL ROWS Modes
7.3.2 FIRST_ROWS Mode
7.4 Tracing
7.5 Parallel Queries
7.6 Tuning Queries with Blocking Operations
7.7 Frequently Asked Questions a About Query Performance
7.7.1 What is Query Performance?
7.7.2 What is the fastest type of text query?
7.7.3 Should I collect statistics on my tables?
7.7.4 How does the size of my data affect queries?
7.7.5 How does the format of my data affect queries?
7.7.6 What is a functional versus an indexed lookup?
7.7.7 What tables are involved in queries?
7.7.8 Does sorting the results slow a text-only query?
7.7.9 How do I make a ORDER BY score query faster?
7.7.10 Which Memory Settings Affect Querying?
7.7.11 Does out of line LOB storage of wide base table columns improve performance?
7.7.12 How can I make a CONTAINS query on more than one column faster?
7.7.13 Is it OK to have many expansions in a query?
7.7.14 How can local partition indexes help?
7.7.15 Should I query in parallel?
7.7.16 Should I index themes?
7.7.17 When should I use a CTXCAT index?
7.7.18 When is a CTXCAT index NOT suitable?
7.7.19 What optimizer hints are available, and what do they do?
7.8 Frequently Asked Questions About Indexing Performance
7.8.1 How long should indexing take?
7.8.2 Which index memory settings should I use?
7.8.3 How much disk overhead will indexing require?
7.8.4 How does the format of my data affect indexing?
7.8.5 Can parallel indexing improve performance?
7.8.6 How can I improve index performance for creating local partitioned index?
7.8.7 How can I tell how much indexing has completed?
7.9 Frequently Asked Questions About Updating the Index
7.9.1 How often should I index new or updated records?
7.9.2 How can I tell when my indexes are getting fragmented?
7.9.3 Does memory allocation affect index synchronization?

8 Searching Document Section in Oracle Text

8.1 About Oracle Text Document Section Searching
8.1.1 Enabling Oracle Text Section Searching
8.1.1.1 Create a Section Group
8.1.1.2 Define Your Sections
8.1.1.3 Index Your Documents
8.1.1.4 Section Searching with the WITHIN Operator
8.1.1.5 Path Searching with INPATH and HASPATH Operators
8.1.2 Oracle Text Section Types
8.1.2.1 Zone Section
8.1.2.2 Field Section
8.1.2.3 Stop Section
8.1.2.4 MDATA Section
8.1.2.5 Attribute Section
8.1.2.6 Special Sections
8.2 HTML Section Searching with Oracle Text
8.2.1 Creating HTML Sections
8.2.2 Searching HTML Meta Tags
8.2.2.1 Example: Creating Sections for <META>Tags
8.3 XML Section Searching with Oracle Text
8.3.1 Automatic Sectioning
8.3.2 Attribute Searching
8.3.2.1 Creating Attribute Sections
8.3.2.2 Searching Attributes with the INPATH Operator
8.3.3 Creating Document Type Sensitive Sections
8.3.4 Path Section Searching
8.3.4.1 Creating an Index with PATH_SECTION_GROUP
8.3.4.2 Top-Level Tag Searching
8.3.4.3 Any-Level Tag Searching
8.3.4.4 Direct Parentage Searching
8.3.4.5 Tag Value Testing
8.3.4.6 Attribute Searching
8.3.4.7 Attribute Value Testing
8.3.4.8 Path Testing
8.3.4.9 Section Equality Testing with HASPATH

9 Working With a Thesaurus in Oracle Text

9.1 Overview of Oracle Text Thesaurus Features
9.1.1 Oracle Text Thesaurus Creation and Maintenance
9.1.1.1 CTX_THES Package
9.1.1.2 Thesaurus Operators
9.1.1.3 ctxload Utility
9.1.2 Using a Case-sensitive Thesaurus
9.1.3 Using a Case-insensitive Thesaurus
9.1.4 Default Thesaurus
9.1.5 Supplied Thesaurus
9.1.5.1 Supplied Thesaurus Structure and Content
9.1.5.2 Supplied Thesaurus Location
9.2 Defining Terms in a Thesaurus
9.2.1 Defining Synonyms
9.2.2 Defining Hierarchical Relations
9.3 Using a Thesaurus in a Query Application
9.3.1 Loading a Custom Thesaurus and Issuing Thesaurus-based Queries
9.3.1.1 Advantage
9.3.1.2 Limitations
9.3.2 Augmenting Knowledge Base with Custom Thesaurus
9.3.2.1 Advantage
9.3.2.2 Limitations
9.3.2.3 Linking New Terms to Existing Terms
9.3.2.4 Loading a Thesaurus with ctxload
9.3.2.5 Compiling a Loaded Thesaurus
9.4 About the Supplied Knowledge Base
9.4.1 Adding a Language-Specific Knowledge Base
9.4.1.1 Limitations

10 Administering Oracle Text

10.1 Oracle Text Users and Roles
10.1.1 CTXSYS User
10.1.2 CTXAPP Role
10.1.3 Granting Roles and Privileges to Users
10.2 DML Queue
10.3 The CTX_OUTPUT Package
10.4 The CTX_REPORT Package
10.5 Servers
10.6 Administration Tool

11 Migrating Oracle Text Applications

11.1 Migrating to Oracle Text 10g Release 2 (10.2)
11.1.1 New Filter (INSO_FILTER versus AUTO_FILTER)
11.1.1.1 Migrating to the AUTO_FILTER Filter Type
11.2 Migrating to Oracle Text 10g Release 1 (10.1)
11.2.1 Security Improvements in Oracle Text 10g Release 1
11.2.1.1 CTXSYS No Longer Has DBA Permissions
11.2.1.2 Migrating CTXSYS-Owned Procedures
11.2.1.3 Effective User During Indexing
11.2.1.4 Procedures Do Not Need to Be Owned by CTXSYS
11.2.1.5 Synching and Optimizing of Other Users' Indexes
11.2.1.6 CTX Packages and Invoker's Rights
11.2.1.7 CREATE TABLE Permissions
11.2.2 Migrating Back to Previous Releases from Release 10.1

A CONTEXT Query Application

A.1 Web Query Application Overview
A.2 The PSP Web Application
A.2.1 Web Application Prerequisites
A.2.2 Building the Web Application
A.2.3 PSP Sample Code
A.2.3.1 loader.ctl
A.2.3.2 loader.dat
A.2.3.3 search_htmlservices.sql
A.2.3.4 search_html.psp
A.3 The JSP Web Application
A.3.1 Web Application Prerequisites
A.3.2 JSP Sample Code
A.3.2.1 search_html.jsp

B CATSEARCH Query Application

B.1 CATSEARCH Web Query Application Overview
B.2 The JSP Web Application
B.2.1 Building the JSP Web Application
B.2.2 JSP Sample Code
B.2.2.1 loader.ctl
B.2.2.2 loader.dat
B.2.2.3 catalogSearch.jsp

Glossary

Index

PKj5|rPKfUIOEBPS/blafdoc.cssF/* blafdoc.css */ /* Release 1.1.0 */ /* Copyright 2002, 2003 Oracle. All rights reserved. */ /* ========================================================================== */ BODY { font-family : Arial, Helvetica, Geneva, sans-serif; background-color : #FFFFFF; color : #000000; } BODY, P, TABLE, TD, TH, OL, UL, A, DL, DT, DD, BLOCKQUOTE, CAPTION { font-family : Arial, Helvetica, Geneva, sans-serif; font-size : small; } A:link { color : #663300; background-color : #FFFFFF; } A:active { color:#ff6600; background-color : #FFFFFF; } A:visited { color:#996633; background-color : #FFFFFF; } A.glossary-link { border-bottom : 1px dotted; text-decoration : none; } H1, H2, H3, H4 { font-family: Arial, Helvetica, Geneva, sans-serif; color: #336699; background-color : #FFFFFF; } H1 { font-size : 1.6em; font-weight: bold; border : solid #CCCC99; border-width : 0px 0px 1px 0px; width : 100%; } H2 { font-size:1.3em; font-weight: bold; } H3 { font-size:1.1em; font-weight: bold; } H4 { font-size:1em; font-weight: normal; } H1 A, H2 A, H3 A, H4 A { font-size: 100%; } PRE, CODE { font-family: Courier, "Courier New", monospace; font-size:1em; } CODE { color: #336699; } CODE .code-comment { color: #000000; } H1 A CODE, H2 A CODE, H3 A CODE, H4 A CODE { color: #336699; font-weight: bold; } A:link CODE { color: #663300; } A:active CODE { color: #ff6600; } A:visited CODE { color: #996633; } TABLE { font-size: small; } CAPTION { text-align : center; font-weight : bold; width: auto; } TD { vertical-align : top; } TH { font-weight: bold; text-align: left; vertical-align : bottom; color: #336699; background-color: #FFFFFF; } TABLE.table-border { border : 1px solid #CCCC99; } TABLE.table-border TD, TABLE.table-border TH { padding : 2px 4px 2px 4px; background-color: #FFFFFF; border : 1px solid #CCCC99; } TABLE.table-border TH.table-header-border-left, TABLE.table-border TH.table-header-border-middle, TABLE.table-border TH.table-header-border-right { background-color: #cccc99; color: #336699; } TABLE.table-border TH.table-header-border-left { border-left : 1px solid #CCCC99; border-right : 1px solid #FFFFFF; background-color: #cccc99; } TABLE.table-border TH.table-header-border-middle { border-left : 1px solid #FFFFFF; border-right : 1px solid #FFFFFF; background-color: #cccc99; } TABLE.table-border TH.table-header-border-right { border-left : 1px solid #FFFFFF; border-right : 1px solid #CCCC99; background-color: #cccc99; } SPAN.gui-object { font-weight: bold; } P.horizontal-rule { width : 100%; border : solid #CCCC99; border-width : 0px 0px 1px 0px; margin-bottom : 2em; } div.zz-skip-header { margin-bottom : 0px; margin-top : -2px; padding : 0px; text-align:center; line-height : 1px; } div.zz-skip-header a:link, div.zz-skip-header a:visited, div.zz-skip-header a:active { color:white; background-color:white; text-decoration:none; font-size:.1em; line-height : 1px; } TD.zz-nav-header-cell { text-align : left; font-size : small; width : 99%; color:#000000; background-color : #FFFFFF; font-weight : normal; vertical-align : top; margin-top : 0px; padding-top : 0px; } A.zz-nav-header-link { font-size : small; } TD.zz-nav-button-cell { text-align : center; width : 1%; vertical-align : top; padding-left : 4px; padding-right : 4px; margin-top : 0px; padding-top : 0px; } A.zz-nav-button-link { font-size : x-small; } DIV.zz-nav-footer-menu { width : 100%; text-align : center; margin-top : 1em; margin-bottom : 2em; } P.zz-legal-notice, A.zz-legal-notice-link { font-size : xx-small; /* display : none ; */ /* Uncomment this to hide the legal notice */ } PKs!PKfUIOEBPS/cover.htm Cover

Oracle Corporation

PK;PKfUIOEBPS/ccapp016.gif~>GIF89ap  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~,p H*\ȰÇ#JHŋ3jȱǏ CIɓXɲK0I͛8sɳς*_ u ѣH*]ʴOPmdСX8ʵׯ`Ò|'W ˶۷pLWHj[˷߿a- oޕ(^̸ǐ#KL˘3k d{xҨS^ͺװ]M6C,~ĝw , Nȓ+_μУ;ϢնEc%7pËOyԱ_VW{?OgϿ۲Bjg&~5Sπ#hVfy >?GY@ۀ],_u (cNLVYxw=͏@)DiH&L6{*gjtK1  p f2,vRڭ?7`\iHmMX3o/3[eA|}g @c7+-A0Pڹ10ptu+]T@@` ˯n Bw qzN3)K8Rњ RN{YH@1CVU>9ZOo/g菠 B6^7הVAf6 `6C5:o6:@8gFwDHQ#&&(!v|0v4Ao0.ڥaZgA(>@p}RlH*ZXbL ٬+;H ,0] 6pI (w@.kH(O}EBLNEB(O 0uH&U+KX54 ") *0Bg J= k+#V:0gR 0)0Iy+Z򲵅pz\CB0_U9n>A)u m~z3O@pۖ6Cz̧>-Th |ٛՄZ`^N$ĦxKLKu8qtZb8T2FxI\/":N_cQA#g0!.{`L2hN׌!T nւ Q >4p^@^uB^Cyyѐ'Mig^QN{Ӕ4\oA`3V!A$L) -S=9MK}A4LG /{n :#v~_PcQ }.=]G[}킔y.HVhm5sפNԟ1׫ʦr&w'>gw3ס`0~ȳw-qGJ@5^,B_īZv%2򈗼J'5-)s8$oSX/5|'Rh{~,}Xx/|$/>n$o~N/<$ѯ~M\%I$' o~?!Y_#/>mbo$72W-t{bAH({ ؀|8~h_XxmaK-m">w,6*xZ#"4};8UO&"E`s1]?h%V@4p8؁q^R6YQxSsqc*N5HQ>Y,Fx0'=hq(`#Cx؈(C!x3󈘘ȉ?EXQ'xrp; 8Xx؋!>BXxȘʸhpFAc(2-d؍ =B8Jpkx1㳍8*HHa6(0fGC!Y `ؐ!؇׈;8& yy,ՑQ 7A-ٓF>901(Y2&)##DY?!Va M8؁Bt& r9tYvyxz|ٗ~qYX9Pp)٘_@VQY!K9h &:n9ai;`P)e.4ɔigX(3)_y3otK)M'jN/@@@PߠIB6ryћ14)'7SNAњkX% QIhI؆B+߂)y8rŁ4A@A:9T䩒) i@)Ap oxo)9x&1s)[b+[ [X!r:  WaTNCǂSRz cE#PIg*0ڃ7%4ѡA;PQX6ABq= TIv6nGm$>cG8 k7]b*d*Po* (]ĞQяDpCaTUDO\Bp& %3BY#0p5W3>;@Ъn5  jvxz#5 :q=Q!#JA00 JDs*gqjݪUO-ʮgv;Wf* h+UhOc0hX jѦ+v wts,1=PDzϐvt8Ҧ:DE$٠ ?a1Z&"PCEtcGc7UB$9V+'T:ރ5)11Q$|+'v1 ?e/9[0ZA˴E@*:(J#0`"qJ* 6ՁGw[.+>z>4C[)k, AڑiY4A>Y.8KP:b@3袻r,]⓽:w/5f;h jX1y+EN(ŸKKd7L䰯# iB|#T39nM=#1Pmw!!IBG !J_K5PG{:c,Z/:bG$ ;[3igJ\rK!c~Q!ȓ|gJ@r ,;Kȭ,Hڻʀ`J| qi[DBz9iF.;j|=Bv@[B=F O&S:G*(|=N+,;N[= |;hO#(J g L:0ꩳȣу#[: M 믳sW,c}-r쑟 h]t"nRs\F1N_H>\F-Qr8@,1:! ~HX R7*t[ַq#Q3 ƪa$1:ciFs]KECrt BNlж1`A9aWB=s{3MeˉƇ U8=m9֟yKa8VBF&}i]i]ĦhJA[]yy_ψHOH]MEK`DJ|!(ۗѩ#A:2?esHF=9r̳Y'">Ѷ K[m}, eC~Ĝ-;ܫ-qlEyd9S)̺QBs#m2[kʨb#o^<*%n^=Am&2`*(r0oR#Ƥ7ZTB>>2;)9'!1Gq,g! ]cAbEH4 Z$g[Aᣀ (OITu_Yt^N :N|-ZT*zo|-5ɯj(&,}@ .Y/i-qŚ2Ͼ#X? =;ۯ@;ņ5n1,! I2[Jh˜l# @sZhgΓZ'/QN P\ V(٩@ zƷ&X*eXyMC-L @0[fݑ4 /^Ybȑ~OYҦ% f-UmLpb >{zɸOY{o3=+pɈ"GxcQ>TȑE? ,m6ί7> >*RݢHcQ92r%4@ ;~=O ]0dA+.̭#DD#/ņtEcIA08D #V y@!+#=q>&>NO@4+rPDUtQFE4L6LBVBIJZ6o$M3-JGK5TTSr9UUXc.H9O;Z 2Ք *T2=6HuYfUVYrvZjݳSI3[ =IXP5qv]v6FWەwS SQ4a15]\=HYzVwawa#߃)o`~W#rXNV]SVyEypecV[#3`MŕS2oFyT Pzivizjj!0-Fzl6l~Q-~ w5*Z2ՊhDžo|p 7pN1lwq#-7>h"} gd#!u.*d:}wI7Y5 h&׎ޫ>jܯW?g rW( jAy@ ?ď6kHfm$*̿r_paw:F1pJ^vB''|C( Ǒ*#+WdmګL C S9Tf?, EsI<Ĕ!*Ub 0+œ<<cEh~~$$dXF!RrO"cA‰")pILf$d/vRx9AvhʺĒd%)QRM(eyK\xi)[R0_.&d(Lh.zYf4 g^S2fXMp0$灺oS:)s$'YO|J&g>{SR9P' eI6TYD-ڐ$hQ:&hHMt-J]jTlLm*]ԤݬN}R4= MZҒHQO@..uTBZU;Av\:ժdUk9ɶq HWۄ^WZ)` U,>ح>d;jX򲲙(f9{~(C[Z`JiVQվ6t eu \)|;+ >7nq^g]v]RG| />[ލE}5/x ʐ<|aorF'X fp`GXpL`F~Tgp=aX!=`z嘉bสX-v1JQ,[xs56ۚcҘbk|[!yI9Eed%,uk$MyU^핱L,&˨򗷥e䎹e6s|,\5mX<E#G5mAg @snՊg@πs^ p >|#- ,A|+pmfG0Ű~Q&7q߀A_Fk(MGH'63=W$:nM_|pDw&ܵ6F>We'19S-U yD;03@(v_"iC@207?n `q|@^eĸΊZ #'vc]7D'h{FP җa] ^\Nڼ$@WLy7>(J$Q޹V{[@]$CGb~g8ܳ*'h8$u #|oa : #sWrݭzw䃁'xqX2 9Cd0C`nu~ x]߻Q ~|  MrYLgט >;D "'ȳk=s>l[Û>7㿏[C 1{*y>4X"ȑ){ 0<ɌX{ GA?ˋA8A0p98l>¹k"[4Rr 8%4tBso 5\3XW8-v C*C*?CAD,-E7 `įo,E{DMDRF`QS˛oP̳Dy>зȀ4>c$0d)w̎8?+&D6_T_BH *I[HjHhĂ0 4jSI`p0)@QH:<|Ә̠IO;쯠h xЊPˁA5BHuEv $@#JJKBLR̗b̩rĻLLL̓LMM"͢2B͐R͠brMMM͎MMM:IN,N%f}g=hijUklmnEo%pqMr]steuvMw-xdeզc=|խ}~=wh8쫶I+{e s@:=[8>.yXيhXX>PXG@=! 7æ\6Zh+<5H6M}-&{c۸}ˑwx^y4|7#3"󊈛3S*ZĚYEsJ+8 ?C<ÿ[̓Hy}zJe|iB{jHjF^;*r5 sbL\\l\:!X 8 ?ȏ= \(gH>1[B[f:Zx?ż:$ ݞ鼁h˿ޝ7ٛC--=&刺 q_T`A;uI"DGH_Z_cjߚC8C;tZTPbar```a"^2aBct]rRa͒ƢaȲ\ba\abba2BbY"bbrXbbRbbQNc"c2cNBRcbBrc㸒cB|c?c|c>Q=dDNdE^d,$d0TIdJnd G(NSLOPάQRSnTU>VWXnYZV[\>]^&_`aNbc.dޫefƫghij*MVRMҪSqVk63$ 9= Mg3k.0gw~Qx63Ꚋvg/Bgtg ‚:%% flޏbV(G@`K#ť>ۏH=ċa ݎ~gF(їFaz 鞹iңPԒ&aRZ֏fi}^,! ~fjj.dNk S]ijPkkPtkUgIMfyκjqOVl̦ƾf͞.kl^nNbv>mٮ~^o[`k؞mf 8 x!En> mn`nnnoo.o>oNofn 8}@m`b?@E6 6d3Шy,T8X+6& 0⽡op"xoڻ48%^% 5]G0P 6A o,o o؄p_Jk:˅:q !Ȼ>Ȍ&9=ґ0a,_-W./osnXS):`p ?|V ?P&X$?/$i)M㵓M; G6:]0`X9<1kl`w71 ^^cYo+>FP4b'v3JvQop  [ w6jC?DED`_$ ȸS )H2kx *( {z [)xY8xJxYXx *oA By6xkF?G*Bz_mi]$xhVy&8zyGrd_p2(_h|쯇7oֲiti yg m`%|ؠy7 o;~D$9>ϋl=? ~ |#ՙ=PYp;/6PnAԉe@>{G AH@~}gh$ʔ&j2 ?2gҬi&Μ:w'РB _*2m)ԨR6}ir韮bǒ-IY\dGUjF>_`^L E8 yu@0>A̯OpAp=  `-hp/(aXFJ+_~{%[Y07‡/n8ڶ3o|껮"/@; v26,UU -֊; {5Hw'_m3};p@Iqe[l sr)"-pʭ7#5JUQW\y`1 ?Fu^n'7=H&]JIhj7@ 38@6)Г'[M ? `F͙ :(z(*(:(J*hgGZzpp؎!)jSDeB h_EV'`w6hИF HAͫz6Л BdE;l}RgK0az.骻.^fFw\TakҨR=Du.kkDEt"& k He@s01F@b=q%g5|39\sW AA/T)$TI+4QK=5G|C@Pܯ}JFW5R7Msi69 <Uҍ( TCUdہ{ӂ~8?㦏A& VN9sឋ>:Q;Qy]ߧ>T~;vpzLOm;+<;|' y's=ɿֽyL}_;?+@h>3mC|T_ f@ p@1uL 1 &doy! c(Ұ6!sm'!/¦k^Z"%2N|"y R#/^"(Nъf)S;@̺ahr(OeNt|J#C%Y.wBZ̀(=$fH`4Ƌ+I : KIǥL0YJAṽ!K[Q8Xe2ւ9| IHX&qlm+׷Igh0{G $ɑAH!(iوYD>wAE/;3X&q~ nJGύ䳘+ smNuhJ$HSbJ«NP4U,D< c%LΓX(VN4]-4˰X3׭uo^%,ex2)1wDg\E Jij͕hJƘa]_}k.x&+p=VHr +b^G|BQڋqDeIZN( 'M9ˈkDr/@H;+U:)RXzf~@6RXEoRl@`8}{Ў5L,f"j 䧞/Sֿ>s8?_2)_,ID%OGUN1byB M͵pEBKuN `$ THաrER&! |Q ZdGQD ܈4s R`Kt;!&.!6>!FN!V^!;tC `kX臍ӄcJVED} U! fM5Rć!$ZUxFpt$p)Q  bXmRWn=kDo|fU%fU&jE1EőE'F"zLba) &"bR|C2(NT<J_Hb)naEL#5V5^#6s,"$#qJH+B Ac!m#72G8F8 ?="r^:::B#c<}=BEG#J؆<>IF $cB1@Sod-E[;$N^GVEX$!Iv#WGCr12IrPUSl|Bxx; 3e|\4WO KVN\\hh'Y܀C<àjJḦPvQʂV3IT"dYt^uT~UrKF T +&A0KHBgze7l&CC@D JXDk'LhV,`*NaRdb2&`XV,#\fZe&gLi_HF_jů]PeT`tgijeDF|dDy@`$4'U@'HKIZuWNl}Jx0[NvUfJW|DžԊ\yVMzEʃxw`:FL M GjC|)8|ģƊV ]kTpµ("סnR] r()Џ\ $LMcҥ3\Lǃ*|ȲL<ɵjR|g :k萶MJE:Rd'~,5rLHȍViמ׾WU&ђ"@^֬NFż"Ja嚂@yUֆu؇9%Y]^h 0 dMT,T\^eϘ=YڦV YPMّ~aaxMS""N,@+)G=1,E~j٬Z_)T(֡RHΎ>֫cl =qLޛN.١UiN֛n Ol֟Œm~ۨ.m&Բ"Ej榚E=ViS֒r)mS$J`K ldiHH->"E!֍%VJO񆮡n٪2EaDg׍=]uO#бWc9Em" m;o.Z.zrpAүʫ wp` Jlmo,-j0%b;s0 b?o ߪ pc װp&/ fh3d1GLqp_qk1 * 7r1-1-11 l3 1Ug$!Na"r3r`Q J%M2)_&%)krSGqͰ'ge-Q%k!/Q.SD' j޲1Q/.LLLGIRd>钾3m37w738s0E@h3o*%gJpTrJc=׳=3>i:^YYJSTRl3BSDl@CCTDԒdBgt`H=0F&*DL:GJN4LǴLU@;PKBDo>~>PKfUIOEBPS/ccapp011.gifI>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~, H*\ȰÇ#JHŋ3jȱǏ CIGP`X 8JʜI͛8sɳϝT| hʕ|ɴӧPJJW WPVygٳhӪ]˶黰 >9éd] ̯ LaT! WV8Y (0>̹ϠC7}܉o@f*۸s4u!6ȓ+_Μʿ~Yسk0:! w_ϾoCg/[8ͺ(7}i6&jdX^vz0Ӆ,!#~>Ƌ0(4h8θ%DXhADL6餓QхIx=Sc!ٽ'Rf`2=SdAt4pijy+@UPi9]i ;*1(襘E(Zd);}+~UD)zjUEf9Ъ@i;N *9j֬ҧjYFke!KBZyJQk*$j&"kUЅ vޛoBR%oB@@ЫB*&0ANA(dѽ6,MlC7Dst&M'w'KS M&@qT ĺQ|^0sJlyM(d!U0KtA-cPkAPoYX]Qldu=C/LF6N5BmCCU4AU8?cnVE}yCP.z?@S_On/gN1EJ#;;u@m{'?n}3WbvsC&kO6o5KM+/܉ oF-j/ƅ3"U`[ç.w\?^^l RW|eIqh`Nh?Od<y:#;N4}"Q\g&`*bC„e=b&@'s x 9@~d!h[!C>b@ =!iH@%+!)_[ πMBz.>񇖚&̳{BMXzx7N{ӠGD7tNu`qVհg=*ZոV i^׶Fum]FvxЎMj[[&vW!n{Mr戙vHѶ}gηo qFꝑE<OxBtT#pXwJKr|x\WqakBoXڑ#H9rZ>tqo-Q9mY6#1́^r|K;<y8˪n%tC}E//bua}!o`W?j\!Rv=.,\JqUǪ`) ۅg^ )aLAp hT .xQoFWH[֗"F8_+=|eҊ1zvH28a+>& SJKqB*9j^ʈ8\/(Y83<#[+AwqQQf˓/Zx8zPRjb^B!iXs |(PPI*!pr ?Ryӑ )Hiv"iecjcK!A-фh%#(C9,̸mؐoٳz75D2Tx2]),_a'N(T!YrїQf@i)qBa0|ɔN &ysdهdȕ)_A%'e)qY/YAqCf@0[HgMy$"s#A:8A՘dity/7iy/(AdK D47(,{)'E!atC8s4 {#"fHE؝Fѡ ":$ 'eyUe:hK1u9 ¡wIᤝȚԧWoDZE(_/ Bb2>q971Bc?9E&&k, azlЧ^/D7cM,*8Za!yL[ `Z6kgIҔYPP+Щ9 ~*ZgCJk,0.R%( :#R`ǡuש2Z:, Ǻʬ*JӧV5z8ʝؚb᫲:4J:꺮Ӯ410>z^Zگ Ae0([gk"(D(J;hp&{(;jgb8ñ)0g,w0 @B;B pY&2{4k:6 ,p?KZZ 00산5*h \rKbekt3~w s[`}NAȷM:u{;mv帬L!,(l s  _MT~,тA ?A ZH*{v!+k+Us!Jн+ $ <[{rJW뾺 J ;EiGIjw࿩ J00 @, Y{?, \pP0P LԻA;%ܵh6 P2 /ly+xt}>\P, 6 ` E|LK$ll%> ,8 M= + +_ p c\p0Li &.#g0|ɘɚɜɞcڥuLy` \%<{ \˵< &aP{ ڠ ِȋlJÑ*V|lyNjw|ʩ\@0pxۊmp:!n~XT^g@N[]>}E| QN腮qRpPUX9;R!e!uEer .嶭ᗮ ~Wa{; 70@*:\e\b)N+ջN齎>5pph~a{p c ks=۾~n1^a^}a{7>Gdb 9!~!,} 4Ō.N4>Z9  _9@x_z"!]]~ dGP`!۰#Ky  y?suNu . (؀l?_RZMc wO (P@ .dC%NXE5^SG!E$YI)UdK1CcE7. 3hw^z͓wڱ[N]:t̙+Gn8q}VmڴeÖHCNy߉e&\aĉ 'Λ|'|`lG.m4ԪWn5زΦevhKhmܹu]Qb'^d㇓'*/ ](SRZŪWbɚufI K.B۽ϧ_~D@?"rαo>N4J o,hNyt֡ǟDSTVtE521k1:>ja;%XlXYE? ⠊N1wjhKZsL2W䲡Ѽ4ǝWXr*HrI{H|2 5E1UtQiMu RGqeJh50ŔSpIx"GuV\-56@J-b}(wZd4(WhVive׋(: [k5W jUwQr6_#pݫu5]}w xy/wgU8Z~v8E Ub{~xEc"wX"des'NbRk{eVYci&dLFOLWhju%:RmDڢw (雌 wvւ~{70^ZO6@n;ܻ(Јq|nKpa6R#7:$5 *7}'gzubW\$o|\$+0rۛǨv~y%uG^#{ baF_=~ qx_fӛC>$/{-@ }TaFVGs_A~t-  5lPa aXćQ·9!ľ@xr)"bĖŅ0cBCEt]/-!"DF<ˍyȐwl>}uD3'8E{,d%#ReRd'=N2We)MyJTmH@p~hl-6qK\Re/$.Sdb&Sd&/1+[6SӤ&*?Ff6 3G P#|#^gay<_&d/ID 8 hA zP&T ehCf8ThE jMY ԢEMѵ hT|h y R0 h*Y$;T @,0ʨ>59JZsR8A6老;DƎ1**0|.TZ&je*,W jAvLcu݀AD#Uy]SU#EwLP p975)ZO,Mh?>x#e`g@G, v? cw81D%ƅp]҄L,VK|ydva4C:s,`39D_ުz`6Ԣh3|CgZEt=@tJ#LxY!E Qꆖ)tBΊT؏jvDalV-Ҁ AbB/^b~M}>6CZnHV=`H>}O }G|ZS87q ϸ'sӟ1, +O0z7OW P']4\Ey#4?uB.!@w%2v:g+V<zh``?Ҧ=DiNdb?mnnΫӦC7B.˕E"莗N{¸"M@wwWڜbB%"_ܰygWwϨJ;O :{Jn 0ӣټR%ChwENOz@׹"<߱8hK@!%ӋߛﳏK p>:)->J20HH; da0X3F3Gвk'1@B+q9?HA޳AJ@ֲ{$泻{"2A0z0w+5b[#8AAX?h,C>$#HY@OC 8' K *OVb00WBkGIwDckWpŇBr;G;yZ LCw)yt ,G#>Î Һ=20' @AT8¡>UCbwhƻci(*,X*ULP.G8)!X@['(5=%+"$6婧ܛ?1-lDض[tƃgǿ(oTz\ʋ(G$kgJ4ʈpGGPIIxz;l󱥡IGGy<(E@bø }jH)D-NAOIQE{YۀY7JBɴH#l ʂ<KLLӪO|'\4D50kN*$_PEMpA8KEAhW IȦKLo7b\ l\u*qΆDL4kȐ'x$s͆MŃʼnˆ0B!>gzH̾`ݛO3ͻz qL|Lgw: OA\OSDC)x9OPњj&̈O*zNP Obq+ UML\L  k.[ko'(1'DD(`2 EyK>V:NRNCE{%52O!b$L=8=)|Ө+#BNϡP=ODT>)O|%ɉpPOlͧ-5Z< P`US;D yĬ|%>L8$3I%Kyi):C%ܩd'W ׄU)=K *!K;$v589Ll# :[ݙ(JU*7QEW؞"euq|GN]SYsj@ )1*) `[-[=[M[%[R\yIxd}X\A>Wt hm+B`7HʆxlKJ0 O@ (Ϸŋvq~ƲN ic X*7z?DЈ2W@pWp~6+FU8Yp E~jоd!ɴհm֤&LUT6[jtQ;iHhcs(22iѹ_V^.4bdPk6މ\|aL@lS_YknHl(.Im e6S4}'vT.nlv7vvyET0AlKH&tvmFTk# Ɉhnpmn V߮ ⎑!#]]7&OߏDXo ooZnp9q(q`q0pYݰqq1rrq 2q@rP`p.op*'+ , -Lo q) "35.7p/7;0BsݸssHssstt1w﹮m/apސt߳,5SjN/nSg=-o6WDTh1C/sƼuru "vr4sFr*Gv 0vs ʋ;l[0JI00ǝ(lq!1ʒY<2{c)ļ3YPA:|>"4HK-/ 4xy]s; 5qis06[@6ݮ y3u 6 7a1yt+@xWZNԔk^0הm9 C@Ѣ|(c:xJ-[2ԘNջ?wL|T|0.x0㗿?O>vlbxcU0ƒ(Q QP'`> >|[h zX6@}/ krA}d2 pԂA q%%{6a1b(Ḛ7G=aLE;P(KnK8cxQ"IR|X"=1yi SE2đ pE7F8.QsT^Q^d}c=9Hy|G4f1 ;в:%.u]AqP*p8%3$vt,(I)MYL Wb:¹u#89̡r89bӒ)Gќ4kR;MqL:xcD=GOb01*eAvS4':iv$E|nԙHG В4(J[Η>T4MѝrrjH*MҨD;&%Vāg2YU^Vea*Pآ~+`F5ih3? 1#p%%Wה%y lEq֌42B2 C%\JC& =(APD(Z} 2$öbiJ-ubb7):YĻxnn^0+wo໧9\E췼EU[`fk|}{T-+YbX+28 $ŻьdmׁC9.+̑ ae] 30D`GdywcvH`ĕ/e隡^|Zľ/ g 853gyLv2fF zr6tGh-Fbo,fԖ hD _j?^PT-% a5B#`Mh:ψƭk &A Jɺmg#6?^x̥63ӽ67f6z;hH#3z^uA@S$IE@6Ids t!iVo!h,"'qz SZ(QyD}ZbQ=G\ո4:q}:!_T') Qa돀?~o @Io\j4WIw$bAӘz ^sG;o.)<!E ;ZQ'7S#l?i5OuG냂3sJ V)qi@}D STC4ph83fP1?GF$doiYgԨIrk?Ie ?[D7 D| [e %E͙bA5XCۉDˍl е?('D5;3B_ޮZ-X׃E!A$9 YD||% @Et[ D ~BYHݘYJBb5\>v %$bb5`!N".!9I#NB 66d%N&שq %$b$`GA6)J A L%b)OQ.JʍE*ʃ-6nAd*|A:f&C1ΔD3BDhZjKtA*R*DV3 ,:$;/hp*|*RQkCԵ>3$ظz);ԃ?+Ә#ARشTZSJ4`BZ'Dhk ,5h@R-HJ+ʓ-h$ A';Czl9$A HjRx(-,<-,+,C+Tm++B/.9pR5C9,:<+=8XC2դDA#B<٪S:ă=ڪ=C:52(䒂%B)\)dnWeڦ8.=O?C<:S8hB^PӂY8:C<>.;PKXtN<I<PKfUIOEBPS/graphics/ccapp018.gifGcGIF89aCM  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~,CM H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ%GbʜI͛8s ťϟ@ JQ1ZʴӧPJHL Gjʵׯ!cB ]˶۷pOhwYY ڸ L-@ޢ/me[˘3<&5`du@r[-Oװc_lK\kȓ+_^@wm@l $Κ{t.*pZ6A˟O~Ai#Ʒ=w}&k 4grRu׍ӏA.@ܲ]da,bs,X2Њ/%}X=8hQ( PFI nPщ1䤔`)@Txэ96pc hHVd6LZwr*htdnQe9裐WA!]D@*jldh1: |!Y9~g|jk i#8PdP&VUze @ diE*Z1g1I302};ܶQ P@@:*+@+мOBgo㧯c/7eC?#/&Z/HwBS4(L OB y՟F ҵ\i' D">3>b Hp) +d`L\H?A` H2\_$B@ol(/PtA? tA $ES鱜A~ьF "Er]6HWad,7@A"EБXAiIM}`66AVJiސ - A[Ző4@nHL<:؇,t&4i"Exh*J0|r;lI_ӛԥ@19(:IQ}sLjaGBA&?pJ|-ƥO2k63 Rr_jƱris!- ٔ/]3caLCO2>t4W +n [t8}1i =fdL@\t52jQں6[Pw1>et \t 鵯h v錼T `auiO[m-;p khGt @A4hpsNx:@d\/R0o:2dckIRK6Pe`8g+9|cLr|`*rHyUUsa8@AaBC>h^ ȯO30C7WuOXl oG у1R?tIJAJdꚭ3unm:6Qas}C|~0Ɍ٧w`*},`, h9iW}pX!Wx4k|1xWAw,wrfvO,hfiB{&c3X8qim!(˧=44MX %wXQ}= jF|FXg+WHQ}\X0Zt {6o|"X4kNmx q8t27)XH}$E2ix+Wl'D&H !#y>%yﳒ,. ?01S68?:ѓ@B?DYqJL?No4TV AX]/ԕ^` Cb9DQjth jIl^cGY:Ao1izIUxsdq&B9, iqAIHzf.oAAc!B$4~BfY^{OqP86g~9YyșʹٜƉ&g  z16ϠعPyev7T5vt^{AJyi!AR=5B,`eI5Q;N)y_VϤvmvAKXGhS~ ":$Z&z(*,ZRqO@?z gvivy)9uIhFD?q2{6GjM:ZHWWԩOGS56q @i{H.$Mhڇ[-|ڧ~$)؄<O OAA}SqtixnQFMğ)oVKz=a9|=qG`-:TL^jQL9aqց;[Jo R:Gl<4iP2թoVuWKIKP2S5{N)E @[BeQB%Xf'ES~VG@K0wk 7R[{)zš GT: CQ{H@[n%4(8Д2hu nR5JJgVT\\rEW 1 0:35 CYa;Yk ׿PQ5PCe[eXy xP8佉 KW6 ŽX *_  [;h,:I !a„z* &5|PÛ%@ π<Bܬ C ?3 ?n?j/h sl 1D"ȤZǣW0K_ /~ƽ}}~3ʽn/ʭZsl&?pL XkAGp+;U?NLWyCJPxТOC[ }ļ QG eAWhH3 }!KV1aBGh4tC\Zٵ]%Q vj:NxOc hA_ \ 07E e1}39`JDaB#9:{mMi3auh :mB*k3tMo{ D0¡<ʬ `|>_P_0ԔmF]N%uf`i^7pCb?f`"+H@wvG2bvTc]F}` ֘}ǙsDg;%+Lݬǀ,dž{ײ _Ѐ}?`Ȗ} fPb;oh &wP6 cVf.xeV@&m?>Us$j&/ , ƥ\l>$Gߢ#}wx8Drv6i|]DgOTu1_7J0%Nƞw/e| l\/?ÄhLz2 ʐ?jlSϢ/P0i?i_?0~]J@ gW?i~|O3MJwʎ@ح׍&Z**\ h `M_ h ϧOO[σ$XA ?~MX"E?.8'=/4? nkMF~3{s/NvĄSNZ*gnWaŎ%[YivG[}Υ[.]}_S'^|x^ɕ/gPkSzUf6Ib̹L6B夥i9У{|xPg2m@T0w~j}mB +2°9@hh+,^zLR `'7܀@K\mq4ҝ5孽bmE煝 Ù<OL}ډs΀11:&7) )T%^0?g,-NjRC 0AO~^t0I qP@~$,^#N2h}k?靶>/ p@`&q  -Pb 7$*ƋF ~.:z1c$_Ie#8";MbJJ1FxTh,-p{#z ,D"? @!ِ{YQjCDXdZBFz@1:%?>~x#ieAa)] < sQ` QB<)3 3BMLBy .u) ٖàyXfRk8yŚp%yI= NG#d&X'2jCa hI|l84MePII,CIA6!@%d=v t&iGgҐu1A.ML 9"d o"Q O`ɫ^KHUi`E&XMD6&8Nt'@PB(~ rtXKа󵳅`KjXy9[gWx4hHCӠ5a ^І6 nA^-\M%oEl{[@eY!\gEr1 :֐.unxCn{2&tE@k`ܠpw{G;qC 9qs0W`?u1mbG~q}\.q[cK^;:YBr|򔽌-X&EewkellYss|g= _-\ 'RS)ۊ>>f۟d=+ K?})܃'B)@I4!ȳ!o`@zھR@1;bA[L@+c4q; l:m̀-&<)" t,c0Bm15$> Kg)"r |:}3pB-ܡga:(GkA#':PbicÞ+^I9,c ó;Hb:83Ds=A=F=j"H"01aW b \4AqCC`u<[Z@ >Y\>䊟{!: PT{8B"jC؃>-QN$wؓ&TKjC$mx$N -wxG@, AS#z<-+oB-#|I0qI ( A+Ƥ L>[H[ɧJ|Q<9ԧ-e <KJ!scŨ̧>\XX|K;[:!H:H";[:4yG?HMBLp[DBsDSljK#J|y$tFgǿWx)$yP`7ͬpBL ItIe`I,ɉ,ll>w{1 b4x̙yp+ίA"HAAf@ )O۱+OLXHN;:[55͜:Jf± MB'Ap1Dz@PO lyjĽd,bA5DbϿ{ Q HH/e"Dϼ@عFp@1QR)Ҍ!" O$=bkOtQB!@z\:E ȇ/so PɄg֡QV#;ÒExS*- ֯0lLRGƙg(iCIXe hUyU{9G+jL;bњQQbP$wx%r*DhXaؙTW(HDWdSڀW%ٳټ`W~S-]Ԋ [M$< H:X"Tu Mԣ^FrU{5̼ٟJC4@.MϽ@PYdRK AY1ͭe+TɅA2}ԯ) a8=΢#\Q[@^  8ݮ[݄L }QNNΣإ=PU0 jܬP88T4j]: {?HwX"ܱҧ܈10EޑSAl; X0=3Zë+Ac: 910j` ի͊VZm/08H-]v ;8`mu9i[ˋ18kpC4? &/[J|$ :}k9{t ߈-9ّ 2Hk<(aw$d 9+)81Ip(dݿU4 N^߁k^:!zU79c^%DM A<f/9*7JnjL^,E^ %c] _Qni1⒰nWjieȅ |f\:\BRGR;+n/"|R,-؂EbILpeɪiN F<cAqyZ<[=CCF\d>E]{a-bșɡ{Nq"%|]0AʻƬ@0q|Yw9&FaYh|&d͛0gdC";ML(N@Skiq " $INb)@)=jRƍjLS>8*:j[W NS[i޶樮`jIC:'P6Y90 8Z0taJ N[|Şꆀ^nhN2?CJiԯg|&lɒs^o^;{ڤٰ)EXIW o˞}'n^nbl*>{e*n~|ֺ[c;XrLD4E^[zLɪ,:"B gYgF O am㶛 #m-3G3XǧSn$4̽zYKE<`害79σko>Ѭ_907F@L0 bǒB?v!f\\=ř0H vxCެƠ#⋫P!"x#9ވ(: }%#D:${SB;"Yje؀M PT&M qʩ `i\깥-&dBAQCsNv4ƛ!:)f?_AyfyI%|C?AA S)icgn"()kI<@IAb/N!}Q *JN˜,@B 5 m˔;<: }JhlJ5ض};o፻3ca "0glu?}%~ W 'wy*%Pld~̎89pS\T@ /*Ty > Ykѳц 9KP0bA!72/6/nu۽8Ip@٬=sMS}͏>&/'sp6\cxUxcy:| cj|ыS+π'@A#p'P9/s=CI /ֽNnږ1Ge.=ݱ d8@ Ȇ; Cq 8/$k`އ%vg;j_h$ % q{{pXB C,$00X!G).vE* i )0/p}\/%.F)6a;P7c>Q]z04Et' *WGWoĘ%-O z]*Ep\CJc{%9~nvq'@5!=AmЅ.mb(F1z2e=AyC0 EJLc*;daAZx7iip{e6}վ9D8|7)`%~ V>@ z "#A0~+`3:udHIx,f3s@r*!PE1p|=iPU9(!6W@w@ )Wjn HTBR+<`R":u#pB%@Lcawؒʃ};1fw.:q 91q8%i} TZc5c+[E-7W|B?^gt8k{vϹe#"cc׾nx E^L}hzC:Ro;jl#,`-iQ;:X1&,f473#PGKeG}dIe0O`68F,%5n'廎Osj20)ܳ`1l;H~.O CxD@{5NwY# A3`l8M7 FѝYڻ51EߖՃ!a_1" %Q4#e$P!Oiާ- u]ÅU0^U\ $7L Ly=II@^D}\ze`)1IU`2(C Sϔ9h]8Yey蕚Q1Fa֥0]$ !W!hQX!y`!=_ k]!9 pU bUElD""ʴ!$##8^#X *S9 K7v0Ja 4,]!Z[bc"#uc%U=OoVu-[#n\yAAcU7졉 ]ALޅtL+Z`` ?֢-@A ^BB2|CQ%i+4 Xi/;a4tIWuvE=]ڕcԉ'@eeEda]Ǹ%]F+>cQcd)% $A2,3Hgbn i&iZ 2ad6eݡ=%lfg~&prFJ#b#Z+b,%@ .de2ak1 g6Cpe #ad62'PvPFN'd~  /z'3x!gY<я=fP&bcJ"RN}egf@ %5>r=a".ܵ!--&b:ew"N~( q^#"= `u0{:(cUg}Ρ.ZfSNߍBJ38hph\r HȊ})gҦu(rg B zh=^zHi{鯠ilhFfZJvfBÝn)& ]zz(gjn"93Pj~&Zu*>fgR&fFC~́韊iH|ujcg(FkBC4HòzpAGBGnjvjjhb(tlR>)fj(oB42pYFWZ~"HXҫs+jRhmBi槍)46sVc(e˾,,)RJl:b'~dzR pq"*("Ӫ4-FN-ܬmbhBJ4ж`v^+u`hmh*^ZV٢-J#¡I+jΉ"+ςkQC5XCf_(ᾫVNG^,:i'P\e.z&gfdG@6g>gŒ*6ΨBJ^_¡Zr.>G.ƞ+R 6n>GJlR>vkfo(z5 *H2l:FqLT/un^6hC[ʏi){/2.+F*6dGͪmB/v"Z*數 U.GlpʩU6Mp*qfp 0i0lpci6plh1 kq7qbo*0O/6t7Hlp( n-h *2ұk*r6M0=Ak#grrh22floJ.Ө2  &33h83@3J㢮n7|8h3-qj899#.o)2Ӹs}s%4.m.& /l(q?k?;}C8Ar3tvr~rDKw-)s/ckGw ɳ72g&Ig+JJ'ڭKWF4MoG+2/4I@jOO+鶮.kQ9,%^ufPnm.B:8Y3uhj[o2'>(K4W45{]+A)@52KuZ;t pJoPasb_9Oc|ߊbu䳋3E5S8@Ei/"Y+A4Ps[{v:/  9Tݬ'y _cpkx7yy7zk`t (VlspRLb@uv/9C>QZU2J Dɬ/878{*`o|G3~6t724 : CO2!́8Ae\+׸8??'8yƒo`|_s۷# /C:;xC^3B&9:ٙ949׹y{ ArW9Cy}ϱ#BG:x4By69sC泑0#a*IS+]C2xf]vC<;Ƿ[[Qc$4 z;CO%ӽ.zWWA%l A6dÃ# vgӷ74 \tܺTZٸ4nq씵>Q5EΒֳ`Al^+keˏw+f,Ae;LvL#m$(ƶP\ɱlb/TZ,X0֯=^QdJTe-v*|V;0hΊdjWAYј8YNsT:٩;PKHYšGGPKfUIOEBPS/graphics/ccapp011.gifI>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~, H*\ȰÇ#JHŋ3jȱǏ CIGP`X 8JʜI͛8sɳϝT| hʕ|ɴӧPJJW WPVygٳhӪ]˶黰 >9éd] ̯ LaT! WV8Y (0>̹ϠC7}܉o@f*۸s4u!6ȓ+_Μʿ~Yسk0:! w_ϾoCg/[8ͺ(7}i6&jdX^vz0Ӆ,!#~>Ƌ0(4h8θ%DXhADL6餓QхIx=Sc!ٽ'Rf`2=SdAt4pijy+@UPi9]i ;*1(襘E(Zd);}+~UD)zjUEf9Ъ@i;N *9j֬ҧjYFke!KBZyJQk*$j&"kUЅ vޛoBR%oB@@ЫB*&0ANA(dѽ6,MlC7Dst&M'w'KS M&@qT ĺQ|^0sJlyM(d!U0KtA-cPkAPoYX]Qldu=C/LF6N5BmCCU4AU8?cnVE}yCP.z?@S_On/gN1EJ#;;u@m{'?n}3WbvsC&kO6o5KM+/܉ oF-j/ƅ3"U`[ç.w\?^^l RW|eIqh`Nh?Od<y:#;N4}"Q\g&`*bC„e=b&@'s x 9@~d!h[!C>b@ =!iH@%+!)_[ πMBz.>񇖚&̳{BMXzx7N{ӠGD7tNu`qVհg=*ZոV i^׶Fum]FvxЎMj[[&vW!n{Mr戙vHѶ}gηo qFꝑE<OxBtT#pXwJKr|x\WqakBoXڑ#H9rZ>tqo-Q9mY6#1́^r|K;<y8˪n%tC}E//bua}!o`W?j\!Rv=.,\JqUǪ`) ۅg^ )aLAp hT .xQoFWH[֗"F8_+=|eҊ1zvH28a+>& SJKqB*9j^ʈ8\/(Y83<#[+AwqQQf˓/Zx8zPRjb^B!iXs |(PPI*!pr ?Ryӑ )Hiv"iecjcK!A-фh%#(C9,̸mؐoٳz75D2Tx2]),_a'N(T!YrїQf@i)qBa0|ɔN &ysdهdȕ)_A%'e)qY/YAqCf@0[HgMy$"s#A:8A՘dity/7iy/(AdK D47(,{)'E!atC8s4 {#"fHE؝Fѡ ":$ 'eyUe:hK1u9 ¡wIᤝȚԧWoDZE(_/ Bb2>q971Bc?9E&&k, azlЧ^/D7cM,*8Za!yL[ `Z6kgIҔYPP+Щ9 ~*ZgCJk,0.R%( :#R`ǡuש2Z:, Ǻʬ*JӧV5z8ʝؚb᫲:4J:꺮Ӯ410>z^Zگ Ae0([gk"(D(J;hp&{(;jgb8ñ)0g,w0 @B;B pY&2{4k:6 ,p?KZZ 00산5*h \rKbekt3~w s[`}NAȷM:u{;mv帬L!,(l s  _MT~,тA ?A ZH*{v!+k+Us!Jн+ $ <[{rJW뾺 J ;EiGIjw࿩ J00 @, Y{?, \pP0P LԻA;%ܵh6 P2 /ly+xt}>\P, 6 ` E|LK$ll%> ,8 M= + +_ p c\p0Li &.#g0|ɘɚɜɞcڥuLy` \%<{ \˵< &aP{ ڠ ِȋlJÑ*V|lyNjw|ʩ\@0pxۊmp:!n~XT^g@N[]>}E| QN腮qRpPUX9;R!e!uEer .嶭ᗮ ~Wa{; 70@*:\e\b)N+ջN齎>5pph~a{p c ks=۾~n1^a^}a{7>Gdb 9!~!,} 4Ō.N4>Z9  _9@x_z"!]]~ dGP`!۰#Ky  y?suNu . (؀l?_RZMc wO (P@ .dC%NXE5^SG!E$YI)UdK1CcE7. 3hw^z͓wڱ[N]:t̙+Gn8q}VmڴeÖHCNy߉e&\aĉ 'Λ|'|`lG.m4ԪWn5زΦevhKhmܹu]Qb'^d㇓'*/ ](SRZŪWbɚufI K.B۽ϧ_~D@?"rαo>N4J o,hNyt֡ǟDSTVtE521k1:>ja;%XlXYE? ⠊N1wjhKZsL2W䲡Ѽ4ǝWXr*HrI{H|2 5E1UtQiMu RGqeJh50ŔSpIx"GuV\-56@J-b}(wZd4(WhVive׋(: [k5W jUwQr6_#pݫu5]}w xy/wgU8Z~v8E Ub{~xEc"wX"des'NbRk{eVYci&dLFOLWhju%:RmDڢw (雌 wvւ~{70^ZO6@n;ܻ(Јq|nKpa6R#7:$5 *7}'gzubW\$o|\$+0rۛǨv~y%uG^#{ baF_=~ qx_fӛC>$/{-@ }TaFVGs_A~t-  5lPa aXćQ·9!ľ@xr)"bĖŅ0cBCEt]/-!"DF<ˍyȐwl>}uD3'8E{,d%#ReRd'=N2We)MyJTmH@p~hl-6qK\Re/$.Sdb&Sd&/1+[6SӤ&*?Ff6 3G P#|#^gay<_&d/ID 8 hA zP&T ehCf8ThE jMY ԢEMѵ hT|h y R0 h*Y$;T @,0ʨ>59JZsR8A6老;DƎ1**0|.TZ&je*,W jAvLcu݀AD#Uy]SU#EwLP p975)ZO,Mh?>x#e`g@G, v? cw81D%ƅp]҄L,VK|ydva4C:s,`39D_ުz`6Ԣh3|CgZEt=@tJ#LxY!E Qꆖ)tBΊT؏jvDalV-Ҁ AbB/^b~M}>6CZnHV=`H>}O }G|ZS87q ϸ'sӟ1, +O0z7OW P']4\Ey#4?uB.!@w%2v:g+V<zh``?Ҧ=DiNdb?mnnΫӦC7B.˕E"莗N{¸"M@wwWڜbB%"_ܰygWwϨJ;O :{Jn 0ӣټR%ChwENOz@׹"<߱8hK@!%ӋߛﳏK p>:)->J20HH; da0X3F3Gвk'1@B+q9?HA޳AJ@ֲ{$泻{"2A0z0w+5b[#8AAX?h,C>$#HY@OC 8' K *OVb00WBkGIwDckWpŇBr;G;yZ LCw)yt ,G#>Î Һ=20' @AT8¡>UCbwhƻci(*,X*ULP.G8)!X@['(5=%+"$6婧ܛ?1-lDض[tƃgǿ(oTz\ʋ(G$kgJ4ʈpGGPIIxz;l󱥡IGGy<(E@bø }jH)D-NAOIQE{YۀY7JBɴH#l ʂ<KLLӪO|'\4D50kN*$_PEMpA8KEAhW IȦKLo7b\ l\u*qΆDL4kȐ'x$s͆MŃʼnˆ0B!>gzH̾`ݛO3ͻz qL|Lgw: OA\OSDC)x9OPњj&̈O*zNP Obq+ UML\L  k.[ko'(1'DD(`2 EyK>V:NRNCE{%52O!b$L=8=)|Ө+#BNϡP=ODT>)O|%ɉpPOlͧ-5Z< P`US;D yĬ|%>L8$3I%Kyi):C%ܩd'W ׄU)=K *!K;$v589Ll# :[ݙ(JU*7QEW؞"euq|GN]SYsj@ )1*) `[-[=[M[%[R\yIxd}X\A>Wt hm+B`7HʆxlKJ0 O@ (Ϸŋvq~ƲN ic X*7z?DЈ2W@pWp~6+FU8Yp E~jоd!ɴհm֤&LUT6[jtQ;iHhcs(22iѹ_V^.4bdPk6މ\|aL@lS_YknHl(.Im e6S4}'vT.nlv7vvyET0AlKH&tvmFTk# Ɉhnpmn V߮ ⎑!#]]7&OߏDXo ooZnp9q(q`q0pYݰqq1rrq 2q@rP`p.op*'+ , -Lo q) "35.7p/7;0BsݸssHssstt1w﹮m/apސt߳,5SjN/nSg=-o6WDTh1C/sƼuru "vr4sFr*Gv 0vs ʋ;l[0JI00ǝ(lq!1ʒY<2{c)ļ3YPA:|>"4HK-/ 4xy]s; 5qis06[@6ݮ y3u 6 7a1yt+@xWZNԔk^0הm9 C@Ѣ|(c:xJ-[2ԘNջ?wL|T|0.x0㗿?O>vlbxcU0ƒ(Q QP'`> >|[h zX6@}/ krA}d2 pԂA q%%{6a1b(Ḛ7G=aLE;P(KnK8cxQ"IR|X"=1yi SE2đ pE7F8.QsT^Q^d}c=9Hy|G4f1 ;в:%.u]AqP*p8%3$vt,(I)MYL Wb:¹u#89̡r89bӒ)Gќ4kR;MqL:xcD=GOb01*eAvS4':iv$E|nԙHG В4(J[Η>T4MѝrrjH*MҨD;&%Vāg2YU^Vea*Pآ~+`F5ih3? 1#p%%Wה%y lEq֌42B2 C%\JC& =(APD(Z} 2$öbiJ-ubb7):YĻxnn^0+wo໧9\E췼EU[`fk|}{T-+YbX+28 $ŻьdmׁC9.+̑ ae] 30D`GdywcvH`ĕ/e隡^|Zľ/ g 853gyLv2fF zr6tGh-Fbo,fԖ hD _j?^PT-% a5B#`Mh:ψƭk &A Jɺmg#6?^x̥63ӽ67f6z;hH#3z^uA@S$IE@6Ids t!iVo!h,"'qz SZ(QyD}ZbQ=G\ո4:q}:!_T') Qa돀?~o @Io\j4WIw$bAӘz ^sG;o.)<!E ;ZQ'7S#l?i5OuG냂3sJ V)qi@}D STC4ph83fP1?GF$doiYgԨIrk?Ie ?[D7 D| [e %E͙bA5XCۉDˍl е?('D5;3B_ޮZ-X׃E!A$9 YD||% @Et[ D ~BYHݘYJBb5\>v %$bb5`!N".!9I#NB 66d%N&שq %$b$`GA6)J A L%b)OQ.JʍE*ʃ-6nAd*|A:f&C1ΔD3BDhZjKtA*R*DV3 ,:$;/hp*|*RQkCԵ>3$ظz);ԃ?+Ә#ARشTZSJ4`BZ'Dhk ,5h@R-HJ+ʓ-h$ A';Czl9$A HjRx(-,<-,+,C+Tm++B/.9pR5C9,:<+=8XC2դDA#B<٪S:ă=ڪ=C:52(䒂%B)\)dnWeڦ8.=O?C<:S8hB^PӂY8:C<>.;PKXtN<I<PKfUIOEBPS/graphics/ccapp016.gif~>GIF89ap  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~,p H*\ȰÇ#JHŋ3jȱǏ CIɓXɲK0I͛8sɳς*_ u ѣH*]ʴOPmdСX8ʵׯ`Ò|'W ˶۷pLWHj[˷߿a- oޕ(^̸ǐ#KL˘3k d{xҨS^ͺװ]M6C,~ĝw , Nȓ+_μУ;ϢնEc%7pËOyԱ_VW{?OgϿ۲Bjg&~5Sπ#hVfy >?GY@ۀ],_u (cNLVYxw=͏@)DiH&L6{*gjtK1  p f2,vRڭ?7`\iHmMX3o/3[eA|}g @c7+-A0Pڹ10ptu+]T@@` ˯n Bw qzN3)K8Rњ RN{YH@1CVU>9ZOo/g菠 B6^7הVAf6 `6C5:o6:@8gFwDHQ#&&(!v|0v4Ao0.ڥaZgA(>@p}RlH*ZXbL ٬+;H ,0] 6pI (w@.kH(O}EBLNEB(O 0uH&U+KX54 ") *0Bg J= k+#V:0gR 0)0Iy+Z򲵅pz\CB0_U9n>A)u m~z3O@pۖ6Cz̧>-Th |ٛՄZ`^N$ĦxKLKu8qtZb8T2FxI\/":N_cQA#g0!.{`L2hN׌!T nւ Q >4p^@^uB^Cyyѐ'Mig^QN{Ӕ4\oA`3V!A$L) -S=9MK}A4LG /{n :#v~_PcQ }.=]G[}킔y.HVhm5sפNԟ1׫ʦr&w'>gw3ס`0~ȳw-qGJ@5^,B_īZv%2򈗼J'5-)s8$oSX/5|'Rh{~,}Xx/|$/>n$o~N/<$ѯ~M\%I$' o~?!Y_#/>mbo$72W-t{bAH({ ؀|8~h_XxmaK-m">w,6*xZ#"4};8UO&"E`s1]?h%V@4p8؁q^R6YQxSsqc*N5HQ>Y,Fx0'=hq(`#Cx؈(C!x3󈘘ȉ?EXQ'xrp; 8Xx؋!>BXxȘʸhpFAc(2-d؍ =B8Jpkx1㳍8*HHa6(0fGC!Y `ؐ!؇׈;8& yy,ՑQ 7A-ٓF>901(Y2&)##DY?!Va M8؁Bt& r9tYvyxz|ٗ~qYX9Pp)٘_@VQY!K9h &:n9ai;`P)e.4ɔigX(3)_y3otK)M'jN/@@@PߠIB6ryћ14)'7SNAњkX% QIhI؆B+߂)y8rŁ4A@A:9T䩒) i@)Ap oxo)9x&1s)[b+[ [X!r:  WaTNCǂSRz cE#PIg*0ڃ7%4ѡA;PQX6ABq= TIv6nGm$>cG8 k7]b*d*Po* (]ĞQяDpCaTUDO\Bp& %3BY#0p5W3>;@Ъn5  jvxz#5 :q=Q!#JA00 JDs*gqjݪUO-ʮgv;Wf* h+UhOc0hX jѦ+v wts,1=PDzϐvt8Ҧ:DE$٠ ?a1Z&"PCEtcGc7UB$9V+'T:ރ5)11Q$|+'v1 ?e/9[0ZA˴E@*:(J#0`"qJ* 6ՁGw[.+>z>4C[)k, AڑiY4A>Y.8KP:b@3袻r,]⓽:w/5f;h jX1y+EN(ŸKKd7L䰯# iB|#T39nM=#1Pmw!!IBG !J_K5PG{:c,Z/:bG$ ;[3igJ\rK!c~Q!ȓ|gJ@r ,;Kȭ,Hڻʀ`J| qi[DBz9iF.;j|=Bv@[B=F O&S:G*(|=N+,;N[= |;hO#(J g L:0ꩳȣу#[: M 믳sW,c}-r쑟 h]t"nRs\F1N_H>\F-Qr8@,1:! ~HX R7*t[ַq#Q3 ƪa$1:ciFs]KECrt BNlж1`A9aWB=s{3MeˉƇ U8=m9֟yKa8VBF&}i]i]ĦhJA[]yy_ψHOH]MEK`DJ|!(ۗѩ#A:2?esHF=9r̳Y'">Ѷ K[m}, eC~Ĝ-;ܫ-qlEyd9S)̺QBs#m2[kʨb#o^<*%n^=Am&2`*(r0oR#Ƥ7ZTB>>2;)9'!1Gq,g! ]cAbEH4 Z$g[Aᣀ (OITu_Yt^N :N|-ZT*zo|-5ɯj(&,}@ .Y/i-qŚ2Ͼ#X? =;ۯ@;ņ5n1,! I2[Jh˜l# @sZhgΓZ'/QN P\ V(٩@ zƷ&X*eXyMC-L @0[fݑ4 /^Ybȑ~OYҦ% f-UmLpb >{zɸOY{o3=+pɈ"GxcQ>TȑE? ,m6ί7> >*RݢHcQ92r%4@ ;~=O ]0dA+.̭#DD#/ņtEcIA08D #V y@!+#=q>&>NO@4+rPDUtQFE4L6LBVBIJZ6o$M3-JGK5TTSr9UUXc.H9O;Z 2Ք *T2=6HuYfUVYrvZjݳSI3[ =IXP5qv]v6FWەwS SQ4a15]\=HYzVwawa#߃)o`~W#rXNV]SVyEypecV[#3`MŕS2oFyT Pzivizjj!0-Fzl6l~Q-~ w5*Z2ՊhDžo|p 7pN1lwq#-7>h"} gd#!u.*d:}wI7Y5 h&׎ޫ>jܯW?g rW( jAy@ ?ď6kHfm$*̿r_paw:F1pJ^vB''|C( Ǒ*#+WdmګL C S9Tf?, EsI<Ĕ!*Ub 0+œ<<cEh~~$$dXF!RrO"cA‰")pILf$d/vRx9AvhʺĒd%)QRM(eyK\xi)[R0_.&d(Lh.zYf4 g^S2fXMp0$灺oS:)s$'YO|J&g>{SR9P' eI6TYD-ڐ$hQ:&hHMt-J]jTlLm*]ԤݬN}R4= MZҒHQO@..uTBZU;Av\:ժdUk9ɶq HWۄ^WZ)` U,>ح>d;jX򲲙(f9{~(C[Z`JiVQվ6t eu \)|;+ >7nq^g]v]RG| />[ލE}5/x ʐ<|aorF'X fp`GXpL`F~Tgp=aX!=`z嘉bสX-v1JQ,[xs56ۚcҘbk|[!yI9Eed%,uk$MyU^핱L,&˨򗷥e䎹e6s|,\5mX<E#G5mAg @snՊg@πs^ p >|#- ,A|+pmfG0Ű~Q&7q߀A_Fk(MGH'63=W$:nM_|pDw&ܵ6F>We'19S-U yD;03@(v_"iC@207?n `q|@^eĸΊZ #'vc]7D'h{FP җa] ^\Nڼ$@WLy7>(J$Q޹V{[@]$CGb~g8ܳ*'h8$u #|oa : #sWrݭzw䃁'xqX2 9Cd0C`nu~ x]߻Q ~|  MrYLgט >;D "'ȳk=s>l[Û>7㿏[C 1{*y>4X"ȑ){ 0<ɌX{ GA?ˋA8A0p98l>¹k"[4Rr 8%4tBso 5\3XW8-v C*C*?CAD,-E7 `įo,E{DMDRF`QS˛oP̳Dy>зȀ4>c$0d)w̎8?+&D6_T_BH *I[HjHhĂ0 4jSI`p0)@QH:<|Ә̠IO;쯠h xЊPˁA5BHuEv $@#JJKBLR̗b̩rĻLLL̓LMM"͢2B͐R͠brMMM͎MMM:IN,N%f}g=hijUklmnEo%pqMr]steuvMw-xdeզc=|խ}~=wh8쫶I+{e s@:=[8>.yXيhXX>PXG@=! 7æ\6Zh+<5H6M}-&{c۸}ˑwx^y4|7#3"󊈛3S*ZĚYEsJ+8 ?C<ÿ[̓Hy}zJe|iB{jHjF^;*r5 sbL\\l\:!X 8 ?ȏ= \(gH>1[B[f:Zx?ż:$ ݞ鼁h˿ޝ7ٛC--=&刺 q_T`A;uI"DGH_Z_cjߚC8C;tZTPbar```a"^2aBct]rRa͒ƢaȲ\ba\abba2BbY"bbrXbbRbbQNc"c2cNBRcbBrc㸒cB|c?c|c>Q=dDNdE^d,$d0TIdJnd G(NSLOPάQRSnTU>VWXnYZV[\>]^&_`aNbc.dޫefƫghij*MVRMҪSqVk63$ 9= Mg3k.0gw~Qx63Ꚋvg/Bgtg ‚:%% flޏbV(G@`K#ť>ۏH=ċa ݎ~gF(їFaz 鞹iңPԒ&aRZ֏fi}^,! ~fjj.dNk S]ijPkkPtkUgIMfyκjqOVl̦ƾf͞.kl^nNbv>mٮ~^o[`k؞mf 8 x!En> mn`nnnoo.o>oNofn 8}@m`b?@E6 6d3Шy,T8X+6& 0⽡op"xoڻ48%^% 5]G0P 6A o,o o؄p_Jk:˅:q !Ȼ>Ȍ&9=ґ0a,_-W./osnXS):`p ?|V ?P&X$?/$i)M㵓M; G6:]0`X9<1kl`w71 ^^cYo+>FP4b'v3JvQop  [ w6jC?DED`_$ ȸS )H2kx *( {z [)xY8xJxYXx *oA By6xkF?G*Bz_mi]$xhVy&8zyGrd_p2(_h|쯇7oֲiti yg m`%|ؠy7 o;~D$9>ϋl=? ~ |#ՙ=PYp;/6PnAԉe@>{G AH@~}gh$ʔ&j2 ?2gҬi&Μ:w'РB _*2m)ԨR6}ir韮bǒ-IY\dGUjF>_`^L E8 yu@0>A̯OpAp=  `-hp/(aXFJ+_~{%[Y07‡/n8ڶ3o|껮"/@; v26,UU -֊; {5Hw'_m3};p@Iqe[l sr)"-pʭ7#5JUQW\y`1 ?Fu^n'7=H&]JIhj7@ 38@6)Г'[M ? `F͙ :(z(*(:(J*hgGZzpp؎!)jSDeB h_EV'`w6hИF HAͫz6Л BdE;l}RgK0az.骻.^fFw\TakҨR=Du.kkDEt"& k He@s01F@b=q%g5|39\sW AA/T)$TI+4QK=5G|C@Pܯ}JFW5R7Msi69 <Uҍ( TCUdہ{ӂ~8?㦏A& VN9sឋ>:Q;Qy]ߧ>T~;vpzLOm;+<;|' y's=ɿֽyL}_;?+@h>3mC|T_ f@ p@1uL 1 &doy! c(Ұ6!sm'!/¦k^Z"%2N|"y R#/^"(Nъf)S;@̺ahr(OeNt|J#C%Y.wBZ̀(=$fH`4Ƌ+I : KIǥL0YJAṽ!K[Q8Xe2ւ9| IHX&qlm+׷Igh0{G $ɑAH!(iوYD>wAE/;3X&q~ nJGύ䳘+ smNuhJ$HSbJ«NP4U,D< c%LΓX(VN4]-4˰X3׭uo^%,ex2)1wDg\E Jij͕hJƘa]_}k.x&+p=VHr +b^G|BQڋqDeIZN( 'M9ˈkDr/@H;+U:)RXzf~@6RXEoRl@`8}{Ў5L,f"j 䧞/Sֿ>s8?_2)_,ID%OGUN1byB M͵pEBKuN `$ THաrER&! |Q ZdGQD ܈4s R`Kt;!&.!6>!FN!V^!;tC `kX臍ӄcJVED} U! fM5Rć!$ZUxFpt$p)Q  bXmRWn=kDo|fU%fU&jE1EőE'F"zLba) &"bR|C2(NT<J_Hb)naEL#5V5^#6s,"$#qJH+B Ac!m#72G8F8 ?="r^:::B#c<}=BEG#J؆<>IF $cB1@Sod-E[;$N^GVEX$!Iv#WGCr12IrPUSl|Bxx; 3e|\4WO KVN\\hh'Y܀C<àjJḦPvQʂV3IT"dYt^uT~UrKF T +&A0KHBgze7l&CC@D JXDk'LhV,`*NaRdb2&`XV,#\fZe&gLi_HF_jů]PeT`tgijeDF|dDy@`$4'U@'HKIZuWNl}Jx0[NvUfJW|DžԊ\yVMzEʃxw`:FL M GjC|)8|ģƊV ]kTpµ("סnR] r()Џ\ $LMcҥ3\Lǃ*|ȲL<ɵjR|g :k萶MJE:Rd'~,5rLHȍViמ׾WU&ђ"@^֬NFż"Ja嚂@yUֆu؇9%Y]^h 0 dMT,T\^eϘ=YڦV YPMّ~aaxMS""N,@+)G=1,E~j٬Z_)T(֡RHΎ>֫cl =qLޛN.١UiN֛n Ol֟Œm~ۨ.m&Բ"Ej榚E=ViS֒r)mS$J`K ldiHH->"E!֍%VJO񆮡n٪2EaDg׍=]uO#бWc9Em" m;o.Z.zrpAүʫ wp` Jlmo,-j0%b;s0 b?o ߪ pc װp&/ fh3d1GLqp_qk1 * 7r1-1-11 l3 1Ug$!Na"r3r`Q J%M2)_&%)krSGqͰ'ge-Q%k!/Q.SD' j޲1Q/.LLLGIRd>钾3m37w738s0E@h3o*%gJpTrJc=׳=3>i:^YYJSTRl3BSDl@CCTDԒdBgt`H=0F&*DL:GJN4LǴLU@;PKBDo>~>PKfUIOEBPS/graphics/pet01.gifGIF89a@Rk{11119BBBJJRZZZc1kss11BJRZk)!)9J!)9!)9!Z!c!k))c)B!)BJ)111!11B1c1c1c1s1111c1111c9!99J9JR9RZ9c)9s9BkBsBJB!JJRJRZJRcJRJZkJc{J{RRZR!RRRRsR{RRRZcZ!)Z!cZZcZcsZk{cc1ccc1cccksckc{cccckskkssksss)s)s9sBsJsRsRsZsksksssssss1ss{!){!c{){{{{{ք)J)RRZZƌ֔)c)s1RZ1ccckkks{R1{ﭔZ!)1B!R!c!s絵εƭZ!kkksssƭƽƜέB!R!ΜkΜΜΥ19B!Z1ֽ֭֔֜R)޽9BJZ1kJ{){cs凜9s・Jֽ֜!,@ `A'LÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cZTB s7 ,hAHSaӧPJJիXjʵׯ`ÊKٳhӪ]˶۷p.00 C F&M!+^̸ǐ#KL˘3k̹ϠCMӨS^:icvA :P6` Nȓ+_μУKNسkνwOӫ_Ͼ۷1.l8AD< Q{2h& 6F("d!M94xh(, ^N^ ^@)DidXϒL6NbPPViR6D\692;G2lp)tix|矀*蠄jo&XDhED*E`,C7X((BJ)b) ,@mH'L7-v-ȡb1,W=%5ߌ󫳆s?k9-tmx}qTJj`ߎ xb\=8N<6>wӹw}Z)W=]B)x<#ʳ=Jvn#3P<'@!CqƲdt>WϽOS{wҦ K~?~bÃoK/0{;\ۂf ؆6 P M`Kā* ݸP9pz h},t! G0b+_w:K6!פn;'}UvcF:q.BVPTAm] ;| Ž+#bX`IյC_c[פxCgREL,bge:`(4~8C*ȥ2q|R#coj?a!^*caDfL83.YHn& HF=2>%;I.L2 K[:$NvWt$yĊL2)EL "шa8te. X6.jQ3f{>.@pH1{3%LjB^S=E PIԢM$>Jr2E">LO'()J.I8eA*."g@+Z!PF3rI4]5t5W:2>8GLBB lO{d Kr6Oe,3SեWbONeQgK&U]T: U^,LeVɭjNVLn+kBqZP@ tzk]d6M b^&5I{]XͻcEet5@=ˤɰ5 Ij / kmrv[S$#zl@n cZ]Z2=ݸwIt (,.lh'3I!i%eJ\f&Wnr r5=LB ԊKvQ*&Zxơ|a8npփ(2.)@Ny'؄FNp%FC$E9)x3%Jh ܸ`h  VP `g;ret faur"*Mum;G %Y|iq Uҗ7$I iv%'VҒ[V2T/TUGҚi ACVrP 1KM~x率 W3+\ǀZyՕ_B@*s)sNgSv0).XQ|Ay I_ɘݙL( y)OvYwroK9Zz҄%'x a:>Q؅%p!JcMX^ja1WCJZ m Xz)HjSJ  ٤@;fJQMKjFXQ[jS^j$ǝ֘6sfaZJ>W-:ZZ0q@8Lr퐣ӣ`A `Q#esaQO:,E Vj* 5 xQjʭszڮ"Ҩp1$3)x*+ԩ?Y {aj cdj:x.J %@";++ ۰ 1<۳>0@[F{HJL۴N0, ;b*,[Tk*k. W߰38O[vkkp|۷~;[[2$ITS$cC  p4np tkPRhQ{{ۻO, "T$pKq"+Kɋհ հܻK+ߠ;3#;;뻻[{۳j 6Q j`!`6! |0  º!*….0jЯUj3LOb8;:r) 1|HJL &rD#ۣr;k"\^`b\|Ȝʼ<\|؜ڼ|@B=D]F9(*}NPR=T]/)V^`b=CKM=j @m]t w or׀lZ\k=z]lωأWk~ ``@  mR@ٖϓ؏ڑmׯ-n@٨}ϛ]P@Ρۼ-ڤM{mЛ}۠ۂʽL؇i ٩ ٚlَ- , N`.Ƚn2>Q[}~} W pM׫ۻآPHNQڏ Ͻ&䊝Z^yZ@ jN{>vP :my QSVqrXN@mㆍӽޓN\~*>㗭&^檮ÝqٟÎRwꐍ޵N lM_ ׿~׀x>~N麽nN>OӤևڣwNCn\.`m[ ^Ή㔝;l-y=ݖM^/-m@4o(>*Om^}~NORfM m} jp q?zp\M׀ k}TZ7ަ=܉." GFoZOM~y p_a V'Μ?Om P<m?=nKo^-et_᨟\ (ݲ L2C-ZTF FRMƍ$+"TxQJ-]SL5męSN=} $`Pb>Ør5I5M^jp .Wef|T3T[L7uJmnfH׌= ɬW w*kDz%+チBڰ,tvѤK>t{)G )6nV ^kkfkmuGRk~2ȿyLAKk($r(+4CpK@jNDE_1FgQ&BJ)Vr"8 !+H,OȬ(Kdti)Yl$ 6@Vt6I[Ix'xG>ygy矇>z駧z>{{}M%G?}gj{Uo~?Nw_8@0&#f@6Ё7VЂL jC`&@ apc$3B 7d(CjPX+ b(( ֐-$"шGI+8E*VъWbE.vы_c8F2ьgDcոF6эoN:$pwF4]+\hMEF 3 ["g}$}CIE2 ̤p(iɜR'_*UJVҕe,e5A⤄!{nq3LZqbӘDf2YKR8J2A`&!~063ʀHe$mv8sSC;oJԠۇ&g ABGx(CC`&TfF5Aa/@ VPr(7@ ?Z&h"1 N.bOZ1Ғ4MXiK]Zʔ)6s*LԩOQ+ j$a:tׇ&q_*K0Q&+!$Hm&<5)o u/+ZR<6~a{8+\%ט v5JYvֳmhE;Z7un sb]*HQUe1Ϫڵ!mZJ6r !j_6#X) ``)tzrT܄r VU0"uC؇f0k+6_׾o~_׿p<`WF+`eXCr\FWXVc-#D4B DgxkptO*>~$:9V.{c wƐby؏]s7yus?zЅ>tGGzҕnԮv\6xgЇ=yhc(&v?xmwIo6To+BuZ\sI܀w쾥!0 0P *O97V`]OAp&>r_*Q9J:̙t}u{Ҷ+ԣ^ 7% egT?0Kb:'F g Xt1ô~ My!@Rrt֝9n3@~"3)G %i0@V?n1?z<B5'@i*z?)ޓA=& @B>ӑdA$n=jŒ20"7>u;F3膶bK0Tllt8 VpL3!`SAjC33xJ{KZ#T?+)1DD#\d${нxT9Udśsŝ3WEE]\ťE%-{@!!<.r)B5A &#m +Ddj7#;gh3 #&z4cCI2k23PF>܆T 6s2!/h Lĺ UyA;$@,|>J6MZ>di@Q䚌 __ɠ3EmŜIoІşaث㺸̉)bt$.,3 IJ3X'0͌TAլ>ĐMOKlI\ZJ ʡ끖JElʫ ʯԹXN|TN}=lOϦʙϮΖɮˉ$K>胐J8F͡ȉ K͹3ʣ ( #LEDLd7tTGbdLbz<x@yt`/ ѼE>4NNM!hN MR+&FjA&E5.,G$)5TEaOV$O[S< OOO\J@]:>DESЙCW4TYT?bDP!<2%\PPh6:Te2UHBg0|LtH.x z"A-£/U";2>/HgV㤬K$(Ro5 j%䚵!5VlMtݰ 8Ir5WGgMقΖtD8Z|S|OJUEJuOdخكʼneZ|Ϣ$9E{8ٚ3ٮ9EOZ|ؕXENϟYَOLYGʦO|UԘLTmI?ʪeZMٝP?Y"I[-XoMPj[R\ TSȉYVaې Ճr^un# %5i[X>SՁ*drT1>0tUM+mV#bM2F HS$z=^!0]ʳu.=&H}\}ӕlrIyJNϫENmY4=HJ]IOʢ4E٪|󔹠_NCe`\LJeE>`߫J:VNJZ(a5`o}J vJ`o`XJZmJ_9!n\t2Eݙl[gMЀMm•Qn[P -$$gL\PVp-hUu,d\e}̅@܌4_dǽ30Gv3ebe}]oVo5< J8+j$=^( p<*24W!H΁u.RF"R.$]neSe#MMP/^}UߧPX~pmr[fH]bvnSO'q!GMkPm߮gtaJ}]hNgTm;mFϮnI^\Ylm8ml͆m畄 TؾXgɆm%vؚҮnFWcTP a@4-(\ 5Ֆci2E,ō9 \t#ѥdc>7QLvwdi6"Vp?k,c^e(x!8X0x*>Dk K%:_qq]|}qL4+$>в>qŒ2lm[hT.smqE ϖWmzn60Yun灶5Ju\:ֳavVtjLF׬\>e.!F'8 0eaJȶڷ5mW$+]pfrgr|$UC'`w}F.nrg=OrL]n4/Wn휋6Al8l㙔gYJ)Ln}R:kiYJ?TleR& HĄ?Y)5ISMP/Pq}{o͇GMxq'iw^tqqAZo X {oMZnxgxg@SYF0I&r@*PD PhZcQ ÊO69̔UBTY8&a&4҇ `J8-ÜN45rKwɓO?5TQG%e&-F Sb[uFMAUbnEb] V*P>اqȥbjdg+wubV m޲+lKZjNKmfަl#v'fvll>gaFLsiܹ >ӞAfl.]Ǭ;<7f, 0nxo"+(A/H@&0r@$I#B* 3/ed< ԥ%ɯ^Wg!ě<э4ٔgL3ՙ%H}F& JQH%=P~QX' EH؋6UխJ?vgwsG*{-i\B+`ٯo[Ɯ>:Lzw.矷:>;ww6OGF'~Ԡ>6& Zg5x-k4SHM`L$g>|Ar58g Jt0&LӞք3,gЙ&SL=O}ӗ-#*щR(F3эr(Gs=&=)JSҕ'|x< WV~R'pF:< 5ΰS#tt_3CM42 'ZስӠ`g5Q*0 ժƫ,kڼ`i-v+^׽~+`+=,b2,2 6!R,f3rHLes$*X2L%ZSMfDJCZիy; q^s/a_1}D] D2LgFS%3N~2,Lp1(O,FLkzӜtff0}Ϭ5n~367_9Y1Pߟ|̣MN8L,E3ю~4#-ISҖ43MOpnRC-Qxqe3So -kpֶ5s]׾5-a>6e3~6-_zŭf3ms6-q>7ӭu;&-yӻ7}7.OX*|8#.S68ob8C.򑓼8<.9c.oy8DXN:·ֱuNF?:ҕ9С,SV:֩tX3j4Z*%b! ie7ȬrՆ;rB @m  a`e=`dxuB`«\۹@\Qi$O` F* 3P  C3H :B FUu N)P @4͐I>}a"b:D*@L&$` RNW8  q`=@4Ԁ Da>!9eC0CTޞ+n@b"b aB.3r",>Cb_4523v#A cNa C47r#H:#6ʟ*J#c//2U,/R#R( I"SuJ`U4-(]aݔ0I  C؝"6!IdF dE2ɎTdJ2,@$Y4%D0D*!9DBQ$J$SF">*% #>`DΤ@lOPV#%̡="۵^1L#n%d TKO R!2 WE>Y>D.؞S``$Ahd]eYr#[%\ %LP"&Z$cMea%F>e5g>#eBalr R.% ]aZNe^`bcfaz%QeeP-dXuTPb ؚ&`{SЂQzҧ.zgy§|{NQx SDh|'>0l(A%(Q%$}4䁒ghz>h('|xJg>ň(槃g0(5hSh7t(fh[Ž@\Vi*(恙'Rjii:}Ȝhň~{BV|iji,xNjz)T *BE2j)BiBI* (Ҩ{.ix)yz>^(6ihnd@m\'58 7L#dlFBbz(k{N'Yu]9~+^kyitjiz]R*钤+6+n:kbĦi)I!XdD\}@Ԛ'قmjh"Ļ.#h҂f .&Zkҭg~ .5tBgr)ٶڭn߂2 v.>rF*N-N{R-mVp~F(zorob/¯wn//(҂oJ>p/ 0öeRB֤V*o~~0Vo,o. '>LV5+P`qnѲmsE0X`>TnDq>$fjz&2Q x%Igb>E *o./bnv*tiANŒ0q1}>"s(( #q!Wq"2昧1k"Ύ2$#%_,V-|&2*ϲײ.Jh2b4؞ 0F?0 !/! 62a/ci|^ms+n171r>1?>+>CrB>>D]h 2sUFBCqGp4JF_4&{4Hh߭Kg>Ot)FtI3V~tHrr4*+gQ.SjP5ȊpN?EcBIC5Vr{f KLW)Eۂ %%FS4?_nVt'uDw3 4Tp4#g[x:S;!;}kpؾD#>dek%!AC4ܒmj?R5Fv"54]l+,Y/:hp/6w.pC7HtPU/x.ngS7q=4#7+w^+/jwڷY3_?P{jlJlBAzo7yG8S7u/76:'.5T\v7d䡀cxSx;iExi)qG?Xq9P(Bpiq64B3Bw#7q۱Vtrx8ע0/"9p8&蒤9^wr&`h7Z?E( 8#37pꐎjjg$.:߶r(g~a 7x瘇禗V+5o9yh:'6*r:uR'9yw9W:rj'"9'}1ԕ]ây*2{/Op'{5򄃻&Py)ӌRtws{;>_>g}Xo~9䟾[>>ڻ~ѓ#>;>?h??GO?C?mo?w????ǿ?׿???@,8`A&TaC!F8bE1fԸcG9B`@%&SeK/aƔ9fM7qԹgO?:hQG&UiSO:jU$MkW_;lYgѦ ][o:pɔjջo_GqdMf7`\f}e&43vi]h.ICXni)㪒jO|NZURC>TBfq6VJ~Wfo_ rZ}U17hwsScOA"Pt+jVŹwC:2]K"aO|![6=M|] X+Ynp (Gt@E,}))Tt:l,i% cI;+Yq;ٶ,DXZSF4*JtdEJh͑X7nqqXi>ҕoIv#GsfF ٓ!`Cd#+KPJzGČ$ix2NZ\+ᆤ")=c:Č*#DFoUЩ%A9i[" *4~M|>DeόP%fnS!2$ w:#lLA-fr4~jD;q|_ٸF0O#(2gRk5QB(uoAk+%C?P` ̨RЄ#-EXӫǣ0i 3ZlSXU+*)#KTb5 kPJ=,ڰCHjChI$R8Vw:P?>(oc^V`^ jZ WvVgU\g͑fG[4׻JZmxUk-JV .SMޒj2I֒Ʃ(ݯkCHLVKʭ}kԸt@77Cn5 Y6tE'ޣҔK1L+@bI;??TPg饝@c,rFеѼbkN\%y r|ҏ\=vI [jU:,ZS 3?f4k7rhѫݼr=Әٛ6Zt/ d?^r;A3Xٻ]<2o6ܪN{e%s:.$hy)=UMw_m[ fv3jֵW f bunoqM׎xݰkEUܶ ixD-$=Tio+p(TF=tjKHTUΞtcUcgCODm+o\u?ߴc2m;fal4lֽoCDPs&J~U' mBވ6Xz 99YG[+ꘁXg~d7.;Vnk}-!AwYҏ]վ]<'}+П~ՏФ*rWϊeCsseQ-aCv *L;2@T+*F` HE6k^a Y`6TPk%cMd< ťps0+O@v㵔R%UqqbEle'keA1/T(dl1QQ;.1 %p1OAcr1/˟qqRўHaϢ2 +12!r!! uqr")"-""o#=#A2$Erl̯ yq$Ur%Y%]%429b8 =""'3.)'B(((SD)64-o?@J$Q#jp>'B@.zJ2R))?в&)+R/F'0$+_#5*?&mI*/ĉR(J*B'x029C>s(<3.aBnb43㧀4B5{B6mbR&b$gLv"j$*bIn8N)%448J;dK愣:3Ks;(`+''ls:c"7q7Wi09p$N/ڨr`(|J={bS3;y"?Ó(',3y3QS(Ƴ+ tAH*G1:RhJarO`xkFfjZ%C K[f]l \Ŭ^49heeE)&iTGG+?rX4i%34tcz e|,KEgj4_tO[)m Bԛd Ɣ2&/YBe_RY.tQ7T;ҥDD3 ou6Ci Ճ}D/aZG~l+ÌtGr%'VCXh8k9k/HkZ(VC~Ӭ&]Wͧ'T'^U[]%Y?XYWH^]]t6,; ),u`h2Wufa-6jU*&[h\'{cקEl[]"ZSR|dM2&g$ZSZ`VMR WRPM돤_kVRvI;d|*Vw0rdafZGII'kOI9jaK6z|jl>M@G)6Roljv zlE\֝l!W(7:քal|iktUD7o;i3n/%rtْӑTy d931qvcBfu7-vJ;7BC 5v*%QjƗVukz5lLWAƼ=ԊVpJz@ثϺ*v95 Lvz*<:@:P$J`̫l!jkE ;5zx s  USU%&X~4*ګސ ,9g Ns/-CtϾ,nK|~+ ZXrO||sعj,jr 化̈ߩ9d^o,+1}wd4m8숒;%k"t%wiiIF88'䘏7\ތjdE[.8c['5$i; m$[pl)>Pt(8Τywo܊H͊-h'eѾ,[L6xvE^O 0k vLYOlTwff"&lm%&Vz5fUKHtk&8n)cd@'Q:J0 :%G,|خ\~o:Q/LPz튧n؞ۺ-`.@NӚ=0ЮXM+z+kͧLcAQ1*·WtP򀎆ug:ARyj^o,0i0y;0fn\(дӭU;gWOhjwC* Y1AOʸC9owLN=1:-if^Ȼ_/<6"7['daeą% ߪ -&Uo0qCjе%}0G0hb[b  p[Q@.Sg_Zl<q\Ǚ! E0|otPX< ǼGs\P |tPP{Ư|cE<4IPO&K_ P ʅ?pǼ]OfBk$0 {Sh ]CXiGZ/\%o:2gB׻Bq/y؛rٱ٧؝},zT&=,MڗbB߱=ڷܽ,]2/1=ߡƧ/BSS>~൒!>%~h7r)>5~9&;>E~IQ>s(i(,s0bIs,n+w=5{-e5/~A8,^&1q-db/ɤs#$QB끂uK<+0>' $3g~ݳs|>'T3,V6o$OuтbmJs/?@^7B'?^:,c"lyPg"SM(e}ryP1`/F3+^h뾌^of= $ؠWqF]2ȘM} l:Ьmo2-RpezP}G 5[Ir~)?!/h9Hr T^sleB@M2xj dH:{_Z-ą# f8J7q.0u_&5Oz&z{ gCĝ;_KEzpg0tel1 U:MTǕҍغ☕qSQ5e/tYx9*} 0$FJ|;GH2="~ujL8 Sv[d PP~eHuRv]c IALL\##rgE vjv^ ~`IFYg0 6y +ҷ Dͅ\c!7SVb 3%k 2s)4dBZQ0t*`QS\ IO|m'PQǠR3!LIcRT^wǓ5}5eJQi7jQ7DtzR@)UgM]\SեݬMO}1`S}=HҫjJntjo .2?Vc$7Z5fcŊd5ڽV&SʾtUͤm@jΩkg+YU Nj 2d%uߏXF\YQ#2Vd>-Щ p(PM)]K]-`w*qljZ~QwdbجKv Kn޷$Ƽug+m 8 N$n]6Kِ Y79VIPY8TRb ;M1eȒ؆J7,Ix;RVL(?'NbԜeAqAܝ[g4,x +6g+e+[k> MLq6)׊|->e:3,:T7l>,;F{0f2R< \0/wrm"~:bjBC@43#aփ^Voy !8ȾÍu1Hnhzns]w8V CIۍxm엓jk-_Kԯodѷ~z%zϮpGxkۗqve'r GQ9w7(;}ȁ!(#(F$+Ȃ-/1X&b29;ȃ=H})EhGIKaؗCxL(SHUhWH~AaPlF >?^Dei96؅!w{ȇ}(mȅ"~'>Czw~舏|Q(2zXz'k؉('D{X~{8(x/Xo(:qo8frT5taP!xvgmj|4职l}vr+(vs;d︄xO82#B*(@D'Ba8%E"b%rld._*B,X1NBvB)#)1v"!m.FR-ϒy/Ʉ2:3_Tc=`RLq>v8-WB: VQd"f#(8s6)47`s]14055t<B=0iك2y=GPtQ=aNTT$d^G4Q SJB~$s=|x[Q98 Y]9[yyHsD IlqjəlINn^w-tjT'MyIN%Zt/YĔ+=RMSsNY(3'OB";iHM\ϱI$WYea.veOBT3{9 7 fPQSWE?VsChɟ(8:Z%2aoj- `{iqQ'u]X6Lk%a2ʓ9-q)5/ǖ}8jqIJg1ibkeeTt{b4g?y7 !c =6&d.D9 &V80jg:|XQo2uQxdtuob7pgs>7u<ސi1w&gvwft;D]OZ@Q"?~ w`|VX2&}z 7g1WXr'UNJ }yêUh{z* Gwvժ˚*| Jjj骮뺃ʮ *j:ʯ{++24J kx˰ K+k䊱  #K0*%)ۙ'-Ȳ/+31K7ih9˳={>KE{@{B[F˴Mk;Q+!SkW+U[˵1A{]+cˁZKggi˶mykE5yr{bhxvt;~| xPƂ~v{/1yzXWjX;H?#H!zK+2 cDᩩ*g[3x+z_w=|j+}5ԁkxī H[k]7;B빃b2ؽa[]Ǽ!}ێ*ȺI`x}a{`^Ŀ/n)v[7 |z% -w^)УRQ1Ө?e1Cx؂B &Ýn4$Ѹzl+H%@r=! 8[Eؕ[vŝmPaWgGT=zT WCQB`LhH\kT%Hb`n% (|()SEۖhc,DQt:g׏^0a4˞c㏹Ň6'ܙ.ϡΠ$xΘE^^aL"qP~,\5)͟ v]^Mj]]o9]NU*NE&M5p>}Ud`.5!N.2,̎qܢ$Z N~a'^ X^;UD[irDI,@j:` gvhFkEeʾ|*gQ6`8fjiŤvio#A.Ok2>6_[F])Oaj8ɲ-9+1̴Ȍ*ʢhd7JsI3/1)R:16 1UH2:̡EBP̞,ў6 4FO ,M9QBOK)SS([E,]r} F-c(}2ޯ.?&IC8-wkCW`mp\%3w)aحaIr)|e@ji.fdfIx*y"J(Ltӗ"t$H*ˡpzЩ5 RJ= o&!IMekT"t3{0뢶F[c\'Zo4W^ H&,nZU=5/IL }l,m:3dWwm.x0o`rKZw_lɓ,M>t~w)Ͼw׎)ف?nն~R>ycLqKk]B4#㈎Ma)= ^GY@"t!*b&S1VxDX"!7Pp\[wȟǝNX Olx=0Ql[B7!aXn]\IfP$Ϫhʃod4$R^r G f #4IyġV).. $ g)ʨd L9 ^#Cm.R:&$?;%b :fή@PG2d.5'B:r[k;`5Zl?9dxf8.4hFHOC*¦Z##%ӽlƿm LIʂkd9wԃ5d@~2tDK7\SBJ:nP#iYZ-I'Czzt+ jtR]43"HU rHfլqjY͙5^TWla\YʴFĮtɵzR5"c` ͩ88?:)e2(}T@fɴJD;c1 Rfk<*5RڲeJi-}&1~xroR k uK=.uu(f.*lTVYo.MKם@Z!IE g<nm^:UwEuG.MK>AT[ܹjS f_i9jBpq\dL{ah⑤ߕHxHn_\ZLۡcˮ`LTZaCcwmݙr[#}F09Lh.g&/NY GaTGɠ^ךCm:)Yϩ>m9v9?WEfVnFy'c,#27v_=Kկ<ֺ۷ĜԠSuO?n_:)]ɞ4 ݅f2x-#|'v1 nvɤs/h"Q3nz9YHyӛCz0_{6.fwA3$;ӵ{Nɉmbzis ۇm_\'l{=ؕg#ZBjvvn# P_ǹnS~u]LFVS;vo;MEfϴ{8nHޠP}gO'egB2Dgge\tLܤ?KD?M;ߟk^'Xb|C—/ya,WγhD[OB>>Z"\ $n[wʛ+7{g9y2jS...;8? y )@2<RT:ċ;B?w,k?U9Aə7/[Y'D `zÝ S3A?%ġ A`,)?N!k&+[l@s ¡bZC{4 4C& C+'t@8=)h1ɺѣ]`XHr0(Q @ aAsK+DHZ X+$\@ŧEbBhE.cU/ԿYEWE[L|FQd ƿ4XQTaD[JA/IJi,*Ӊl$E\5!8w}TODcs(ȌHyGJLJLȉ_ƍ4Iv,)Ɏ 5F@ )?Y"xyEDq$m5q[>0k"UD='^R$-Z1 Z-iʦnZiDOj6m5o*!X>j'tx[=ئm[;K&a!ZC-rzUkۋ'mY&2[ZZTC0\E"ZX (q9S묨y)娥,r/Z9|rn-(ѕъʬU'޽,0?f SRt'E}]S烰}p]r_Ja7uÉUz*}S]b"Aégѷ=U1q =^̣ާ@E })fbE%cY^ea6I5_W53g^2{RK^㬍2k^54TcۚU`RffFS=9OƴVKG_56Mj^?ެ b. eD>uaK't^| kmL1,-Khg`^Hb^eo۵1N:3=[;fޛ<z?VTSsNfuaF*iZV+gޢ귨<͓<[<;ńii6Li0x.kޣ;ßg;.eaQl$~ÖMfƎkb<n^#N^'F>\ ޹ $.hFi\Փl|=S: ;$=>)NAi@B!Bl drvAo*;`NAoGMOiq% 狱-kFiTE1 gF0 Y`a]ŅTj|5Z[G>gr$I1GHECt/OGIEUg458bP>S,ҦR t6tQ=r]:3!Oa =&Tk^qG"ITx _q%*0",0QcYej5ɱ&g1ĉu_gL5KӨQp}nk@{6nݽ2s8'տp8vԉ.Nfw<ڿm8AX݇p&Xep~ Zi zLI gvA} r&Zn&r dP˕(cs eݸ_ _makśg=jW`{ co\t}H%K Sx8eUyr[RjƦ: VF b, + -fZN(''<ܣ*y&c '23ӧ Jhl**jcm bМ&hT.Jz@zi,kJ ˠLN "9$N IOuPHV{a{o*Aemjl.FߘLaѰ2kWr'@mOOvZ秤t.yjq'ezv̫zs<[nTxy1 /)[_K<-:TukKi4wɣUSdZ=d#`Y> '?p[P*zޕӎZ==NS/\݋LkNpldx5hO=f\&ɛ>;Aͺ?Iw.`bftº`'11FeHݯth35~I##TFBl2IVҥ1q% $iII^j'"L,H[V2SJ>G 1r(jfM$mN,P\eHJ+򎞁fF6c~q|04RcLo* J& f/'(n$zrPH?fDr)%JٕP҃NJP~ii.2arCH!6 l]QYq&U!P+M4=,N*H2nVlR}X9{W2tkP0LL@҂s~Ll /zm4]Sʚ+ Z4ÔeVJ2:ijRj- ,,$;H)Rɨmf5'T(D>mHɨ#Kb܁,7o&_jQ*r7luw!êJf[Epk^ ҂CFqRtyכ^nw[Y>r0~ ÒEpڶ͏!Ws0O])CK{>3Fw\]]pk i (hZZxd,Z37^fb6lV38Yjۡ=aXa_չm7CNH1hk,ja O3&N#~]ܲFV+'}&C+`$1#ڟ6t3Mr9}``2-L39ه57|f6ϤF2ҕ4f4bW;݇uMhi-uredy4#G$pL~A6!Cb$~!F8-SRs0#{6yV@o1nc8RD2Sn,}y#Ax+ŏ$G儘A(G`M,c M,$btHv&r(TQaN1!r>)U;F gU ?:g )/rE["TqG>={?l qCf:ȧHx eOib𣿰M?7m uo?m/{.\7wa W~_U Z_Gd_Ar`zs Vi _ fRa_a ` ``U ɠNa"a* ^].aJRaZNjA!za*jara_~\5a *) `"^ C'\ #n#b&j"!ba5D!{="TȟAbQZYbB"xJ*n,*.n. zEb)r SP< HbS#UX$#C<#3U#56c/rc7^'. 2c,!(-J%#PD#WLc-f9v7c>:8' Ɇ_؋!dGlB^9ooAA&BzǓdЈ\  !K@ w:F ɜ$I}q`h$9I>*%/cɭ Y̌K <[ LVy%=T MWK&uDQLR^D^[fG[KZdM= ` 8%L%J^Σp̶̾Ea^ ,gnbSJQeFL(P X}TRtCVQl7ՒŚ'ϨoGjM:]f(etrzz&p'h 8Z`0^R7q'_g'EЦO$Ra=]ҚBh A^MyId1Q YЁg]^#RviT$MaW})zgzH=I]"-GӇڊC!$ԠTy!LRV:Im.W3G#9ZTKyd4m9ꦽU)mQjNm#IDjީ<8WX`VTiW쪑lQeɥb֘qvr g)%oi^QvSymױ[k%٭Bۉ}Y}U8_W!1iӯ[^GazSÂٷ,SȊF,]lٵ"9 Kg)'iJլ"ka*\aie &~%Z- &ϙ_pmiఅ9Xw۲%ށײuQRސm6bmޓLJM\]9In.͡ӂBmN*.٪=n.%ߙE?nRwɧ+Rib"oΡY .~Rbo^joz+oQoooo"BooNp p"#C@7x7PWkps0{pp 0 p p p 0_(p2p?FA q#1+/q3;q7 0\,ck{1qqqqqq۱W_160nq {q!1"2#'#/27$?2%G+ O2&C&W2'['_g2 O *S{ _+˲)W,p,2,r.2"/#3/-12*[Do!32r725#526 6SW7_38g8o39w37?9s88w7(@24ӳv1(3)w2-1&s((tA#4@B'?+r7ij@s=Sr"s7g4F/ot!4.#HGw0/Gt0fqE˴޳7sM[>tOO4PNOQP7Q'!cpKoLT+@P4CsCsWWoXg@kuY2V:3o:u\5\;3S]7mMH;5I_1`v(s_6Iv`bbctd'd#cWas4_C[E:PChhB]K5^62$k0kgk4%϶l6m߶mv6oo6p6q7rrn6737tvn[S0`wvgwiuj{z5defwaxzwyz7{w|7|{vt[0Tv7ww >Zuoos#+xks?8GCxKSkxsK7%uvwp6sz8..xq8xz8x8:8Vwu8w739SJGyK9uS3xO77c+I9y4xc7x.7KuR/ufy/#cv9S:'Jn'%o wzo85kzzzzv,5';e󺌪xAkvcSv{_o6'; ;?{3m7g qGzOz{^4?'t{x?wvs{t;;p;94<Z5|<~'#|+û327zk<^9c8o8wǓ|ȗț|ʣʋo3[v{RDnZÄ=xC<#3;C=S6Ǽ8$c!B~sNmZG ߕhQȆ5I1~nXxdžн܇=JKo@[}E`"v|K;+xlS>c>[W/k~{~ymWcǠ}5ݦԀt&vͦG eqoQ[?-S@.l6M5_Mw~ktJ?JJG>c;>v=D} $8o a?t Vqv@+@LoeK*x#Nؑ)5 c5TNK8M*i 봵jD*=6lZLGqm\zn^wz 0e|XbǍS^ly2̒ c3Ȗ+.]y}S@:jh׮ HжVȡ="Lj!}߫}շ!Ɓm"Hy=&cOY][N< 禕]# ʢ<ᦺ°4 5hRkL0Y 1QK0MlQdqFIPmG]1F {1E"i1L5K|f6t7[:t?ܸ -H:(! ^~ a8!Iv: .l:I!Ae*tAۼL̤iM}XQgd$?<IQIb,.ƢԠUI:)r4RB.@^Hֆ&Ma ›sgBкh&(t+5󡝪5Xjm\7.]LLG_̌E|ww_%q`{?RD=Ȅ^xEfm1(*sۭ߂K􈅺I'ێLeSB#È:It)`&ۑHi@9^r4#8ҁXY6[:O#s$&z=žюVy):3u3噔?ՠ_'ظh\XH9 Qzw ;JŚo\ͰpQ'QE?:kyR6l=Z9HN$!bUzrfRbjH8O>) M(eAātTWq")qej+-̨ij( r!l8+m?Ix ra\ ,vUݩI #s;.n4͘F0h\c3֑wc;{ D%tI,DUhg2A+$(6eqT"Blpd m|s)V-*$d U) oڇdx͔ 'hyA3(E.C\ 7+u%8ŦNy᝼yՓܢ=G}@Z}5\^B Ú?$dȴDDso8'D&QNMܲUtb'MDee<D[N O<4,ǒS,%s4NџH>;&Z+e2SAd݈TPRJ6jpz 5ڔmʤVbI'Vw%^L$x~%A+X hb؆^RC9$chJQ1A$]4RoT2\4Svr/cjP)mJ.%TƪmRe&˦Oz M+m̒5mEFMU 8!juZʹ.'w+ JO2>cBCӣϓ|]4 DxB &26 ҁ`_5Cp9,bQ0e/;r'l7e,G ;BD@Nv@\& %MXɼajM EAhv SKۜTX~P+eZo]MbjN9Z{JkJmQhLbuRB1}iM̞b'<305OM?m0y60v%La;6v}a^׼fEGJ..EgYR:zqef7:媨2V"oURc|F>&ecA7<ʀ:(v~C[Hj+ hT Xp-@(u0Wi[SL:;Pqmc/oQOR V$o5iëPx} pץ R @ uV@Fa"]5\j/W>>vb.vPNjsm 2%OBQh?u]H+4jܑfE^a-rDI(XTET2^ <{R5;UZgsZQS1N?U7'¢-x)RGUB\ƣU+d,\qȱ?U-(*N#޵ګ}p*Wo`yKTUC9C-P瑡bWN*%ZUdCdEZ_SP7+.Ȭ?^)]J)d܊a# fLBjv\h|`Np BMYւ$Tej"~eISEDS>cTP ]^2uddndaR[W6i]V)*,jV&bCqcvgoű*@Zj ta-JN#8l#at&ifgovH lkJwȰX,!+rBxxK6oS7{ru8U@7ւr3z]#w. zUJp1lV)dZׄڣ+8!r^&^kwBmֺ 43yd7[Ue[\"nE[ fI\fM:جVo`0ՅX"儮#dQf.WFbW~'1b%LP%f`Wi3isi ;BѭuX%X#ڵ#uɄ[b-DJbIPE ӁؑG!7rqsxuO-$cvg(pɹ<t6rҁ6Ƕ/' nh*n(G{UHd&^I!f"0tXvl&vAtyp|$XcG$B@YŷlK \ЮA"oo,w'&D[[H"B!~sxX)bTrPL/AL "M!3;Q5ko-½%'d8B}DWjЇx $VC`}\愐 ɘypHKښԫv\يWةWU_Ȩeo6Fz_o:mV˗'LQ¦Ɏ'v2?v zy>N@)T{3HtcH'ΜX2n*B *ILb{EVk5f/[T7T;tX|jmJo-y[¬=Bp`Qcs^jnmӐrÈU k?K)q x'Ԋ<.){,S#, pz{,@Y̮ ´k檮_'Yd;ďzpNd[rr_ƣvb1{7l{ )j铿5)9 Q PHVeN@H{Xl0[VE3N-&AB=s#p q@}!8q a…< DX/ N7"G BCXpbXZd)EGdp߱=EaYD@/gA#4龡HJJ H-n:6HT.ذRnĩrhF[7o#.Lxǎ;^z4h5jg?<Z;D!sE2݂-"22wq$[n|7,!dVq*r\FOq[щuyg_%IUٝ49з]p=0)5Z4B߹WqH{2$ν[m?)$j[}* /J 3y+J?ǯ$hGLV!8uw~YƆ"7 ۽Ugw -~O|kB4Yi;h4]hDQs ؀h%\V[*)RGb7!ԃ!XƘv(Gց"0%R5QR/ȊQ7x*i;8l[}C`oUfhb{tb6vU|ǃzLYc(yxm׆ A"w 6WYswa~gVdhONjُoD8ǐJT!yZD'o,)`Rh7Twpǔ_5 v'xeeuZ[ hu:ac1h GЖƁmuU\gȖh B-EN4WaV $݈JL [f74qpWPUeّIUO] QTՅi%;U|y*y|"i8|7շ5/I ~udٜ% <7< Б)`b`Q#2X$lTFo2Aag[^8vv30x 5U)rԖ iGWXWş 3 k4zF&i/XVNȘBqJD8}itG(/vJBIB靀x39dd~ιzƣ6hƤOPyZ!YzbUY秜$ɜ0ʆHyoJ|)eA~i\Za:'pekmJY!fA;mf@z2<0yXʖh$ܓCRPQ}4c@D m t9sɖȩіu#vDŽi@'}טHg!n(O 9zzEeFt' 3Ikz`HlQ7BZGJbZS!dsq讕Ex PZ[ ѯ4Zlbԧ" WqQ 7+jឋ:8 HSr>"\Y H3<:35ғ0i H90*:Q{jkԡJSA iw8婏,!.;4$eOKb1\Qk[*qO@0ᮥq_$yd;|fPkw6Zh~XjϐV;zA+O;zrK ^!e;kЫPN$;~ҋ">Twt08tgL7@J0< ӴCR-,4:"=PЪRA000kk!ð/#y;(Ҩi])O'"2{Öð2w<qF6Llu0!)3ÒŊ= Ug O\~YLsR!wIy;{K6i"B Ă\6 #ܞkVĿvWT@WBZsܔrMD4-tH=( Ol5Pg2L:X?}hfS -\A"Bu30X/. tvsGin}vcM-&ҽwv.g"#GJgV"FG? $4mLX\T)fڽ%McuMD 2x3%=vh~u爣0nEiӬ/AN*1L|R}^=NU,JNUc"Uv`gMK'#X@c>sq\+fAR.ւ낉)!Xa'̥ѳK+8"\tt"QUn揪ϐ~R[=^CŽ5vT)$-MZ֞‘~J&*!/ؙ52YMgP"+B:4_S:ׯN%Yq f'&W"O?2@38 6ODѓ9Oj=<B:ˊ ?r{/La;FbUb zcAve8fb+f/s9_K1e1 0dRo`feG6K_qVe|;^?&O^}8UaYɸ, ߷ۄӿa'?2ֈw9,bܗr%fPhp8%itsD^aM2h$h2 ,,s M3y F=rƍIyRI&tԆĉ# 0A 2cbm?7Nd5hSR:gLdcS= UL`PL|RvZF݅w/̾ԥV$u_Yh.} q璾L,渨Nn4A7g|Vr`0롞RƑ&_4sǹmۯ:G|sZ`˽ V׭D:>3u~ ,rlA0B r,$ 5=2Cˠhf jXAS,#XIF3ldhC02IȎ8\ik(SHc\ҡRx HD"APU"r$\)͌\j&ri~ j%?)=:K&c=ZS,魽,[RHLRN(-T&CEcjB >QǙĠtľ̩UajհY5O4FKW;.7tYM2`KrE̲_ V&la[,/C-lS,mMڹ ޾-LYzvB e7Kʐ"*2Ca&/dy4LN:'"W- ?Q˫75bZHT,vD5 5]Lj7~pjE9l٫Ql6jv9'h~SyJr..wڸ/=# =]N¨v?c!]۲>]3h 6^}.)ax81&꯯8\J#ŘG")(I? QRy4 @f秿 1R$bMG|/d-EiKi[rCzx Y5 N0jDH[QY3KAƉPXpsCjA.l24 ,'.ZCOh)Ґ78;$6.!N:U !fwƒc!D hcJɎ)EӞ,1U,FS@G)I{T- #NX4 @IEc0)̒/F)T&ixڞ>7y&Zۍø,P>P:`h3mCQ#Lbj*]NV7R)$&ʖaުF_r3zS9_mˉAg3E.te KwDjDmыSJѡqP^ƿ eH`qd)G(!JІtNJ7*0 Cn*1ܴe00iPFJ}sѼJ @7 @#'XT8(ȭ cOCMVkr]eוn9k_gZU>1֧tl  u<FmγHzMLf/ 6ŊCkJ¶MgkL[NJU}hp70Nd.c$t1^i  ,f덛p)GDxP"Dۍvkޛ! H'* Z]QAx7 l\SR5&V]VU y _3ÜX IWH(1o{kVGVeOj2w(ש]%Q.v b^WP0VSBU)wp T}E_K'%n31 3fdE ŒV&` VOae6Z`hp(R&/ P:!(fBbzֳ"uK= Obgu٪vX4yw^C.)ل]wL}Wng}e?{oXd;4쉻HIPf=y dF52$&C#Z4U0R<] ?+bk^4(Or4#4%I}0:1X  @қ@ GsKKH"i?i2}P>? TSQм\#2 6Z۵ Q(>rBz.jB{.ByBas `{ nS.9> Xd;q=t;< X=DuŃTʒ^lk*E72FDFȮʯ˰ʁ6 Is!)z<ļ S(DGV ̡GA볞 HRJ4|Jd *AV0#H iyk[Ki/NT»tLtĞ|EzJtLŢ NUk̃I 46r0FD͈zͥG9IT͊\ǐrţ*SAsqT%iPq ^ö_=L:JmƈRąo{'YOԮ2pLRG?U$PM{&6lF;M OLQ=FF $ S 1=4e+CFcSWAክ;#I24X!8O،CRQQlB{TE|$PTLI2\/M[k>DRHS<DO6-J.ʠj"kN(MZFՌ|S 3cBlJ$%7Ĉ2h?5kQL IAʞBM%rAB$?zz| S"E@*=; ]VC}=US{kX9XGZ%р"8 k9Ħ:%o@knص a18EĘQ/t}W" MXdEôԠDUCO+ I̼U-U: \_Z(#RF= . @$>ʀtU5YOSEC.TLKLH5N}?)Va`a)Ꮔ-=Ѕy[ ;@\WDE\L)R+{\p IV0c0Y3]AI\#?I4P4 C]vU^%Ѓp'0Z7ؖm Z]8@ B,eۅ˥8 n.f XXi. pf>`. |gigtCg8`mVVZeءGixwh Όφ @2i3jVpisdYtl5tB{L\K"ٚ-$ A(KǞp\BRZ6x43»d'uMYeջVZ;4)^faZb>9lޢ@×{H!Q3zgsHy ָXyQ8x] Zfk}@^k~j óu ]M7k0:c>"hiՐ`qi$3&0ɌL5inb3ɥ`^}V빘 Hp5IߣeU|§Bs=_$DO!=EmE$Ae$l?;Tk?{G)1 ffYvZFMQ^bUٚ, wLi(#(pp2mnv,]>8tSkpw~ˮ%H?,q Q+!gq%Qkv#dr4c(7 ߛvY2l@ XYON5kQ_%0n&KuIETBYtY:ZF#ܥNZ$L.iʣW+^W+1j-QO_  "SffTfyqĖ[lۂu a6rh rWw ap]Or`m/rвaް'mZvv1/YW_ Al2nXd `,W^d#Mڥ\RBolo6R;Mܘ|L\x" NOSخ09@p9eNO7~,R lV"WGr+Ju+([*-ǀ&߬ ovZ0f"bpק o~v±u\ҧuҹ^vkhy cm YGDc1` GN:IuSsʭ5! @JRTZW-6W~TdϢ}1I`0,H9-.mg~8m,er#݋o}׫t²ߗJzv%RWzr'+dܷZ~ v_05Fc֑n H[A }ԘQj(F 5aאB˕d^ "r ˘:ZL=[^(OJ9%TEcNJiԞQ]Y#ҟO2*쨊4 THڰzr0(1~bwzEASwY݋<ٟӕ7=[wBF9.rCÖM3t/G8H}u}?6>{Kc޽1vUZxib嶟pVw'6N~5l獄fם|map_ ?px"2z8}#ŕBEPBcT>eԠ DE$ D 4(@WU5SO/EE%Ye1EVLeSLD=5bu'MZRSc25ӠA(`KҜxFPYMd[qeg^{_ Vaɷj5 ' F\!ם?pv-ܭqc {jk&7F jf\)6mvX*j튞j,'G1WbW}t,K0b~8+  ڪ7ئAqokƻv<ǏqlxkG'p9l\\FIdAGeP7D\^v$E]v)L _E͡^RT PQT]VEq`OvpyaM@}R%wT5`Pe5܀(PnY]n`fΙk9{9J;y6ǖ:ڑ:;8^{?}G{HKq(Y KwF5DIYJUj&^l۝BM 7MCJF~v%ϣ2"b F1j^җ畑KpƤ@|b4Ƈy"_ĭmSa e(L϶]9F&\SxԦG)9oZ<*Rԥ2dèjROA7X<P 䐃j5fLE,4AԄ}vC ֨QTMshD"Z5*/4Z Xq b@Ϡ͞A ,*ђ=-R{4|HlTL5"R0KH($- aS_K"3L#sݨE& P\y8dy9 7)TJ38,Z4tTeїDcQ 4޳qTAw(M~PtE$ʍ1$SHJ0Wx{Z:*8=J!Q / O"'O0CXV6HP5u_N~2,zsHVwJe45lDcB #>"4X3ULz>@oQ-Q%q|qu&jA|=Bw(DrdJҖ43#we4򄓸n= f+fI8#[C9haϡE׿i)}(I4D4zS/bai8=0*]an~ҩi.yvBZF4A@27N e-,"("r q.\䔇?sOZ3NQ<qnv߫erx/}G&݇ ,q;djdVD]=#Eyz,۝wuA{)`Gz0J\5+pR)ĤN#W\eF]h%-X3_՘)y7C G"Rs A+َuz>sy{jGtNMEF'V|lcSG,dj>uM޳⋳sC92 tZz^ҟ8^ #9#?tJ,fHHݎHQ!Un"ߥ9 LpiOT E7FUrOl@ĢGa3DP0X]y޴i][^iNH~D`1]\!g; r10xSɡ ="Μ qEN@IAV\m=+[,0ѕ4!2i\y.]WZH"k5T}eNJ[f0܈,0o "]\qG?t34^dxLitL,$#](eb |K6#r9b!e4cø RdJt1z\pGh 0ȼlKd)py^fd>b F:fl$t$!%"Z-M Y@)[)RD)N -e'v Y%WI)B)DБ ,_7"Kj Lc!xdD ÄPZ0BrH\2A~d%e:J[̶HL[e*3,pJiG$$a' c/fr&o_Jjbl0ƨ C썊 [NpbHjbt?^Glfixm^V&QnGi!o&`fgp^Kf )L>ia (KP0%US^DO'Yܨ<Aٓ@Peo}CG 䊬GpHfcq0Ȩ$o򇍶$](ѽZGf)<vl[ 哪։/񥆔r¶Øb4\ˏn $·1(xFfۙrH=k>艂))C싘©iܫkk0*p8Fk+gnJwF챌S훢!$B5~X4 -噟 WQS\*aE*ϬT0=Y E(!v.X҇ȊDk5˂t\=zGtk^jC&1h~+Ǟ0f(bZۚ2z?rtD>+䚆,]hGkN.Xj"(gHABd6@+Nh89*=j 03$ĚUvQV\)=N V}Ԁ^X:&<+zڮno8$²(FPbo.^kbeD-sidm ^4nX\k,apx>i/xq0v')$ Ș? wf PB-&tH!}@Rjb3}XKOt5Ƒ* V~,H(+}a%PPe3m}yRkb<+}lGʳzpuưkoq-,H?2~imimh2!02H~L]pyrf:²~A-\+bOv$K,&Hf/?2=ɺL@tΕLUXQ؛RBAVn/bt]:MOq(b&qܥqc~x0wr` .d{q!DoBwAGֈׁCF')n|x`ohdt.q,AKfptyOC'%뉆BL݉dNGet,O dPPCNWfg|ƀPtyd"uT d@ $0^ټU,/QܔڙIjt}[ -<7JI!T>vO,-3@MZA$$LG̐uA@ˊqlmd2 HLS<< fZ\E|2S6Y|f=wkIX|j(Y8ct;}_5#Sy?; RPk~??|2\[:$:(J=O,)vG~⿻*V׫ٝd/57 2@8`}8e0aC!F8c(cGx8dɂ 2!B9s!n޼ԙ͞8wӛ5\SZ.Ns]{TRTqtLեQ*-%VjVa6 +Scz{mܫlK7oմq}m14f .mg9?ad aAn $`PbF"KHQKqپzT&8΃!''rBw>="ǎqZ24 ZX*^|q )5-kg17ZɊ>lJj *# ;ʮCɲj,G+VkM#Mѹz%nIG HhH%_ =4K>j) B+ *J bFq.ƪ/̾Bkr k@rjɮ0;촃J q" <;Q4LCM5֠IlP9-H8TTiXmRVc(J;QИ$,OkB&T`-=P:оP>k0 PŸJa3GQ_ --SM7UQ5" _'rxUZ}OI&!օ8W;-{;Q̠naPPTm>* ]q郙vT"tOj! 3WFyQH aREPBXqrqB/q 8{H#GU{U/"p>|BX~{81q7 8 1(u(;: U;~Fv[%nz'^x}m㞠3‹]vޢ59ެi B5Z5)%*ӒZ`:%1ܲ,m]FS59KiW{S3K;݉԰\lʶOh!ȸq".13 㟨x6{I?{RHPyPL+Q1[qbnMF7lqu+V^e@lDiTH7Djq">G?g?qذ##XI,r$2NGZ" ,Rrȑ:9>߀NcdFxY*aa7(ҋt/JШj u2a+V@ƖP21kg~O)s-QQ [.q힃g)BmfGQԱMnv`ej(j*C3Զeko`H鹇q $?L+!9<"#ٰG$)-J8HjΦFywŜw`jPҏѴ&1_ӂpTS鍚T4:1=L9QV{XZ+Z'ԥH[e:چdd}Y*v R8Nsٌ)9!c.nB>-si)(  Ȼ^ϽDz-]rA/ >u.9៎6 12*yWZ_BWH\U皾 3%J+3֝"L!g#nIONVQH(16CU+eM=d%9C59.. YW*$aM__-Xy5suKh o)X'4mh]ܗf| zv(wjxfAn]H"c5h\}Z4^h$&u?k & {2-@d!nQRidVՊJ9O h?ujӄ&&dYxޘ2DQg6Ԏ+\U-c..IQc|+e)_H< ~5~S$Ыnabqu[ul ;Fna\ސMX'PGEmTI e9ZqB PxF&1Z]*J1 /'l۝Yx .mv ׷C!K%cn4:"2eW+F6oؼcyV ֿ~!3]ԿrE#LIO}UG~eO#no먄~!F}EexOW c) E .$ f==$d eA|hk jf+($` dK^@kneMNd.4k8n6(dg\IMVL `mw&$Ďuƺ )1Tіzz$ڢpJ H FQ Gpİ}֐p䲰 aM GG֘$ i Iko.bA$!p t#d4DE" ")OEZrrQj`ܠbBLB/KM oP)i>˦BL^ j``XLDdVQ(J>p!q`&'q qpjx bmkmh9r ep Z'~v,p!3 )q"3 !b#''# }4$apNb%! 'o hJ(a$i%2Wn_P0DatNN~fK&^FAA0p+c+RCp0[hpk+j X ޣNC)`bH*IX =O$1ь^%J2MI2Q213g3=s#N֬X+' ލꉴp@d)jfjQ!Pmm5ۮ $,cjr .$;Ġ 0D(B`1nL0;*Xdȅ<1s*f2C3U=#>!~+2Dj. /d |*)d)NH.J P .]F\cC9QB^^3_B$LB;[F!XnB<<1"RfbHq&?QH%II4?M;ߊ &Y4fj z K)F*B ˆ7Q$C}8O1N]nLeD0/J!ynTkjQL1džlHsֈH8=p3@K%D+ZZ0߰BZLbZ3cWMk NizsS'PZޜOs*C# mݖN?TTBJrl逸$O^stG1l6r%wr)r=`;^-l).+Dj*-cQ `Xy" :ֲ#rUg 7g$ZH i u CJ4RV,7zwzW`qw(;o&FU:sJC*'6Ԩ sp4Yl'.7;u4)!=8|{FZr ę_SBk?'WdiRضx4Z57ꪭJkJ37k [ (̯^>8B&Im^o^"닛$U "R y &h<~ :jj7;~I֏&sA;X,u58MRJeMD>4@^S0 :w0;PXӻR7s[3| "oR|M<$*W-Ԃ|mb߾c +#tr`LJ'fY}8 E"Ɔ9 vp>!~ T>͆E: v辮 5XTҢRl4҆Ȕ}nԎˋX44[7o$S#'Kh4-SnX RG¿9zIR26$@"a F OcnKvΒh1p6Rܪyy# C+9jUCx:׸\9O7QnX[$@u zX+wl 7 V) ez٣bDzr:Q>"o &1?HkD-rJKaR:edZnɐ,XJ RjmK&!Dr#PLG|d =A=R)k(/,KjLCgf;RqRD ^G5*Zٛi*Mqә4F k(krR +:5M93u D)>Ͳ(]::bt2Ƚ( ;w[H0 Ndm$j0&B11*8jTM|_CRZT,1KʚU/+5ªOUEd'S̀:Ī~ BMH] 5PSҘŰb} _`BL%KSCP-iך״%v)`EQQԘ R5#*b9N$䫞eW('YVՒl y[iHQDd jL3W0U"+`Z\ko^Fx XLNf0=!K<\F1+:> méN{/IxH6I1Ux: x$rx,n_L**97ŭ&;iPURGC`Et=+:;ofm0ǞXxEF6Ѳ c;Ɏ߳nn2P5@$IˋebNim'0vloDV9a Orsq{bNpMU4'VVuūן*:Ub2r˭6~+\ 8f(je;{Y\wpS}loU%9hWU*h W"7299gfa7x(JW rZHsr>Gbn_~~^(v=2 c4tUjUn(pDmKܢu|W{1bAL ԭ$TZ? &-T '- 7()}">bb1Z˚duA)ڳ&(Y -ѧܪʴfm8c^xAOo]H~p^4_R-3upJ}Gb ƝWx$H-Jd%@cQcѭN%TùLX=cݴ9Tz!i@aarB;@ub9G&4S&BȼҮ( Nj(%7;)rTIԻc:8%ɪhs7wQ;H,p9"Zy4 RJeY}ʎp!&ުPaX"nA0W54;j`SËss5-"\:<޻6q+\!+c@%II>C6n59L86,hL@CR'*Ƹ>s3Ĝ2Y52@qVz!)M:4\an&>{̌Aӓ1=rb,7!'C1&b!,^gTE쿩,{E Ad ,yGy5(9)UdԒՁ fAc tHLiPJ;Út3C̘BLL d5k3W:CM3IݬK[Ó"PIZIHq HA#4C%@lLM4zq;2,1rH>]M}NbݾZCV zk%a^q90sKk*7_S(eǑnu G݀-a4(?{VƛMA3UCaػ,@C!M?Ǎ= [M|ld#*&Út\@]-=HA@Dp!E+ ]Y}Г$S9[ԟi >&q*hYu%,%ĩf&(q_38:(<Q>Ӵ A;sKZ:4VCͤ!?6ڏiVIMu~&c̺҈hzb ňUF.UdV|KҔW bQ}3 f\rOꃳ'wN(W3X [=ATճըzVZBaHT 娈[MXz ZtdM6WwEUuuT ?V>5UpOkoZfaՏʅ;jUz%jEYGjy5ʕ"wU.ω\댌~-jLorQ%]w*c0A7YXo"o!Gҕx)gQ9h"nog,piyVٕ\(`عZfsQ PA0c? D.腙1 rl9s>D5P% i`iRDpкᭌۓΞ*SvAb !Ty c h8 /iY8?7I?s92W37d/7ð_u*77AP@(Boݼ 8 CQVѢV@`@%&@$YIzJ1eΤYӦI,YA=%Za?eڔ$RJNgUcza"T(,ٱ ]VXa)SvkHKC p h(Fc Ӯe yרdLR@,g0& gheȷJLY[HŌ;~ 9R+DI>^}+C]+Ү??}ǰPew{2ʏ)Gl[`kZL@8˳ Bl f@-q>ï2ZkA&DK08cpQEͯ 7,o-3ӈ#@ =&tI(rJ*l2.1 '/͢l3K&R4E$qDdr)%LKcRsD9E 4C̳R P:87LRt ,!K"ȊC%TuUV[uUXce+SjSJ@3?2[ 9fBGt21K0}{b }4eESNH U6;g3^suW~OB%iTRM]NId_x`G^]LfQmlפ9PnKTPVL Cy0BQ35ne5-BosLQֵ{!·H}l`zjFQ˅5ff4Qlwn\˦-nP,f=mI5\GqfnN/釖>iTr3|s2?Wbp&tj9Rd}foTL upo:l4vX<4qNr,w>1y醆Rq= ɟ2@O|2߼ҧJ~د@}  ŵq>򏦼V@ɤ/BVePӖ͖YL {} X4iMc b&k"#݊7G9~=G%h% D^%WT%KgYXIo9A@QlmjXkNT Q 7]eCrFRR YY(r )g|MBeUZYUR)$1eqXJX҈Rn[LZ;]# c7,gnKxbiǘM؈",Ѡ@M96/5Z BJq,$FI(")S;?bw^9 UZhIZqVF1AC\p*NK1Sd3+X<55K7JnT ol(Z:"]8SaV+z-FO랕NCv+ESϓЦ`&VWU+E``/+.0{TcQ9DGZ. 4536;sV:K}M^!Gd*J[\&W^o]5nB* rbb$js \2% 7u\7ٝ/xQ[o6%w aC)nTwaŊyM7֡*'ล94^fE05Jbo;); .gr !0dD5&tz16d{"LʜVzOv?4~RħDiX1*X`n"/2H9>UW s3'v;W}. W"g:!x&"Gh,"K݃z4vw[lf5IhC#Z}T9[kWؑu,+q('OV˿hUezXϐuI}Pߺ.pݠnEuqVnjyjR( .QCBg05n)Pu( rY]׍K>} ӆrK IqXЮ,l?- ?dz;";Iv /D=oֻs{Q:ѻu]M;VS(qwc=HgO^$O}9Qvk׻o'[u}ڵsuw *eV AQd8gA>̬N!4r"x[8 GΰԒsyVo}*:L~˞Ϋ/^-CYRڛX7p.kk@ų$??jc0ht@M 0*<@gcH8:3\\<ۇ @KH3@'"@wBI#ALADBS;>,9` Ya+(,YÿpCujY(&;3+Ö?!:7{3"B?l㷗 k4(BA$7PQT"\W<@CY4RXODPA/4DO=EV0۫6R4 b/Bz[,AU FػlDUE0EuĭTl<0tԻ xLT4pdEwG13My>Ì'P8ŸJq.>ˢ3Xˋu 7i Ҿ볡3O5ɋE*(;{«+uF/+ z1 ulF^4;SJ<N#8G3CADCVHkyhCxٌ=$' iN{{ ]#{!D 3-[-ph9le_&H"_f_ݑ׽L_N"4Nc5^c6 Mg=HKj_b4͍i!ݨF-96ndG~dHRs'M%ۺO >1OQd|dXeYW`M]0`9[bbEMy?N69!]eQILťelfmfPb rUf 8!jbMg[x>qf}g~{Y8CB֡'U3N=n8󭞾\g}ijIk0gNIdThLe%M[]Jnvv=d鸥Q|R=㭥, {˨Y}ꢓ&'jmV\y΃&f{݊%Mkb Ւ^" wݰd#QctSBW\`lU ¶겂Ѯ_ætNeVh~feV_'i+kl\k=(c"ZŦ )^ eVycM^:l3M.f}z9F趝ovlh<.h>mͪf3^;.تEλ+z ޞwn*IV]dAf)d=d&sUW?y.g求kF.oAp\GGc䪯N:h18cSoAR1-Ke[X=* أfp l:jW#ןZ*br-iF`il=p gyh%^hf~/>fή!ns~8֞ `EyU$|\f[ j7C6LKq!ZtO6|3}7`}%K?KpӃM-L(m5YW CQ5Lt,.\UӒ@/35GQ+.[߭^ui0_ohvnV]ghei⳦_2$( 'o Y2Bo@׾>_>8)b1^wAww0T??b~WB mR"OzL.P\Fb]DT E~D%e$!tTnsqlS6>w*#ijОhm.dj'$po@wGŧ.KQe }$LG{`A쇡$GB'7^m5e,z'۶n+w.ݺv^~ „c3n0`ŐK\Y2gØxg' Z5ӏS^=eoy{HG޾ JLx{$~:+͍*ը`EO->Vp{یe}X' 4>Jc,I &TT_{T1T%yiaGFYPu̩Ġ}8 O`G48TUT]]:]3X7(W^Fgdhmc`FkdgB I[aZiLF5F`Xg1m.戚kfpw\rn-w13"\=uxx7z|y 'GHBq3- fQ-8*覕^:1z *A^R!zWPѵR" ILUCY*~RPXճy߂ny kO陑\8.]֤WҦHy[늆ٙհIqȵUT|OyE5#p?dbŒ(Le1 |!JySFgKA R#U?|Ҕ%]>{uL1[ RA^.mAjc$yEdž-^p2~I餖XY-eYoһoOd>vn㗗G%^D'Ň*{[ 3#kzI_fG.駽K=&L0?No.nn7ӏp|T߿om hrڞ$@yQejˁkľ)I+u{_AGnbsw5Yr-3ȇ9iτh~5Sx лW= .|a'&(6 "ۘ#50D h%N' 8$oqOXAy|ɚ)pEd}0#vwO2%)."Q]¦x$~nt$g!Rt[IHoId&IͰ\&3O&p8 fKܘ6L51qkĔ&iwL4>3'?i!BΈ 3S=*IrM\\H/!50 OfќֻR*(f6 =y3*])KYk-8XŒ>e7ׇ`UTA%ɝYyO'dKjիbTήrۦ/DR(-9XUJ_,g@!J׿6‹&w# M-.sNLf@b%u,kijRRU]-k[ 0^^0 {:6(,C RtMh`ha͡^4FJt-wݿ|- YH wsgW2ldp E)48A4•ib]0ϭ$ GNְ +&J+H5"(h25Wp ܯ#5 <ɍ ΢5y#3@5SjI0,T*L~-(œ5P@p/3M =f:Ҟ6 T"1hR-CC;SCs֬&U*Î0u_<~-7!G 'LvRSWgV,ChaW M9l}~<2%K{Q _`<ɘ%˝Zߖnc0n@DEY瘤QS;FosU(.='|ɤtoLk0-'kA;SiE߷vZ{Xa7p ?g=Ny7TeR{ uF s53f/(C39ŗ=;pa)/0VX^K2;0p 䏜~'֕{?kBAV5=s>1hgY%LT ^+-lD ٓ_z3ؘeG]YcL \yϕ*QDISmQTYY yL1Oi^_}`:!4Zg}P phUR%7 `[ǵheYڽ 5ัNKQ4ιk2[F%h8!^Y\Sb)b8ݪURu8Y_-!b+)IХ"֌uIbX + gm[ɖ3V9u_-b]=*6rc$oAfݗ)Ti^,RMeQ]yC9֪=`)CI浝!vB2dK1/a4J D*9:"#u" <uCHe# N.z"f99Z5bPBjΩ uMCP p3Y ЎWޱ[I YP KƢc-IjX!=_ Q{I58qB Q9^uNv*OR$@ьS4 O&D?tP(&](ȶ4 gne* \l&d[2I "_q)ITfUgb =bJZL .]$-;E_e _v`L=̄EE\Lӌj>VǀtQ~D{JB{hP+ZO~a}4}P^рqHmBoYdDX78 cAGy+­2̧ O+hh\,2ee!Z!9Uh" 6f@d(VJc 4"Te<Р]VĊ,=r7q|8'Qyݹ,k QEװkRbͳ*|Z>HDEl tH+jR DMcQ? b0(ʭLB(J@-$߆& K@IdߺSFPXHxSxC7LbR-U,.j qu@,J{cs~Iz;9vCQddo8&8lUVe4+}U]`tGήsZ'ݡhXFP(GD?D˯xSiJOds|?x&249"Hx-\ bf eľnj\>؃ L< ܘ?7o?f1B0'J^8ݲ)A 0s4ÆhDz[gpD)0jq\*/,v/%MJԉmG, G, #u&eG _ DI^ X& Kl|%r l-_ \>AmLm Aji1e_ѹXE?De>QH.wĽ 3cL0U(~cR U|~8G4ps'@wDE>;HH1AEdJт<:F4h377D4MxGҲ4Z$qE Hw*7rDtLa)oPsbs~r2seu3+n,r:bT`$-gD΀}%mXuYW饝 fNM58I톬 eIItŨw>[!\JC@H}ͬtK< i@c}|x,vO{DJ<0J$6xGkDnwEdOo YwVHmV1ɰc[tlĄpffot68r'etq)ĚuQ3R#Kw+)#c*qQ&/LKA^l_eYrU4c$ie%_8AF)PKs1N >b[JL۴Y_#uS0s!OB@cBDdƇ5Êv־PX3 0v)u/9 _4[goy@3͖_y;uR,uITȖ}lDpD`2tLm' fnH9IyHuPFzMK,NG"֚4 :SϴڴP8~dVڐzYG:(T!/r =gQD!{auY;r TT5%+Xz#˯&}@/a'-k7LyskVv۾E/3?M<.ǟ3aJkrboD+ LyexӴ~Tӝ E$nӭ7:qĆ 63ݤxOi ICd[A#͝:ųDC{n&f+X1c83%L?yPpQE8>4Z|3&˃{Cĩ+ʋ> &_7<(pgyxcF9b  BrG?:\YRe"3h1F 5:$SeЕDK z\z 5lJQ@cgOC3Jtd 'myN8дISg )7hW*kЈ+&Sk[/Д)A00e 歛7XISHaَH;\k,Aɣ? $`PbBG˙7E `?Nqj|yNMΰ_kQH:$E+DeӎEլ:\|'+BW'Q^ :d/ً(){Q"?ˬN7Ka&_ 2 "7&(>yKP6Ҏ PċED"+3m߫G f1I^,kLL7S7Jut&\IИN}#&fF?~XB #)`˚.d(o<`QF$Yy F9Qv$`QGhb/b,)N:LddQHMưoL\QB˅Ӕ6L Ù8;Vrw!Ė?BJBI>٘SNeuPdx*:EԬcYq$8$Dˆ J%IWl0uӟOcx: WlOG]˱$%S:For6J|dgZ8n %*Y[PO3 Df%Ur\mo]'I6Kímg*9 \v'PtV)k )҅%63CJ% {ЊС>OiN[w%t][p䵖u)\a _)}+Wÿֺ_SMtVr 'NWyb*nX& q'Pڜ9r3eq* _Y(Ӄԁf~+A,'DyXExsS_Ok){w~Uٶ9 2Z ZU`vӓKR9\9iO/#(4N!cSm"TQ+]8̡"?wgS\/Ol[奔;%L *#*׹hK'1WK y6:` 褳PN"UJ;/Z5=ւG0(lUAz_uK'vwYEQ!1 cg#:LMIG>$Rf8t0s+)4j3| ]یGʼn=fALPaOY,v:|b#\(vǶ;i=P~sL~b5x(~JBO[Ӛ[#_\ |- ( iJg⶙ ']b4FZC j\;Y.P)d;ɓ+ Zft }_~W~_/]ƅ PåP'+/3P7;?CPG#O3pcPcbosPw{0# P  P  P _gpP a P א P0  { yP Q Qq0uwc0@75 pp@jN@rT@ʠ@ J`XagpPeKQpQ@+Q/3o !#b@nN g#ʠ XO`ҡ !O~0!p +"/#3 Q#0$CR$'T"1yQ#6qm6b\ nP`|l R j1 a~ #!0"x"#-R--#ײ mar.m A\ax s1 j2Oa|vo&@arQ 22* r!7a a!yy4T-89ϰ-#p$A2\ S:eFrO/' 0LJ(=!\aDk O )aAY8G*qQ> 3K *A 7K, A,gNCS 6_J,SFgFs9k; nvtG7b;x3q19GSAO N@a xq30 d`G!77t)7CCT !LT(D!FPMGQ5oQq :s: QSAy HTT m 4 `T`lyTaxS 4 $sj t3Mgs|&4 7AtOU ,QEO 0a !\5RU] !]'mU^U..u^3UMma6 uTAT?s4`Q&fOjkyijvC5lplñ!BGNC TuP{5"z7@ 7qif)WgcOUP9gTkLݗ[9]auO5b yp<v &q5 ^ ` UXsL-ʠ;t"aPJ5x^)҅XS׵y*@X qu Bfs xّk#5IW؇4E}'?ғuTG9[ٕq9!/YG9 {ٗY٘YٙYٚYٛY{y8DYיY癞ٞYٟZ ڠZڡ#Z'+80Z7;ڣ?CZGKڤOSZW[ڥ_cZgkڦosZw{ڧz 8 ڨZکZڪZګZǚڬZ: ;PK~XRRPKfUIOEBPS/graphics/ccapp017.gif1GIF89as}@@@fyyy???ߵ??3;;;```>>>sss<<<ppprrr000PPPvvvLLL ϥ߲ ؐr&&&䔔OO?,,,ooo//&gggXXX___󯯌OOOJJJ///:::ooY__L666777lllƚ999uuuėiii444555ɉmmm888 ttt'''˜MMMSSSUUUQQQwwwBBBZZZ~~~hhh---ddd(((***}}}HHHxxxDDDqqq222^^^VVVbbb+++NNNGGG!,s} H*\ȰÇ#JHŋ3jȱǏ C*P@ 30a "cʜI͛8R`00Jr*]ʴӧKY ALE ׯ`e5RX֌طpʝD >2\ n LL(X,+ьmL6q'(HLix]5Pm IGMM>5X6l+_|@0X5bPȀxg,ӫ_Ͼ˗$ _@_,_z@E@5$-)8߄q\ ֵTl4sq=Yt|X@C587fI%U_%g@y&А%'bExd%@U=qGL(&e3&J-H;7KI#iXQ%g|'oQai T} P0I ~Nb˔j2GtꪬJérZ @%ɂH_3򉕓-AU"i6 2̶v뭷Bq*O%ʑIN9! 2dׁ>[g *Dj 7 .Ltk vTl ,/ۣTЁR~ْgr|SG0 \ū˰HdA?G-u20an'%5aH4S-0 'hn6C]cmwDHiQ-8-,#7޲ڄ v> q ~ y[1  /?Ca.qCAUl~,W%\_~^ ۪  ʌ q#BY@WLϳ{_=o+@YP ME>Юgf~v&%@gjt{ݶ\UGX `# 3J%6A,A# #8A~R@d (| sD5mKu22T<$* !LbOe4`n Ȱ"*T'VCR 4 c@\js":@4PQHd!*Rb؋ԥ/،]eS`0$*;=BaM\ J)҈ -m-(Xt0!"pILK n!}"ŔT)kEz%T +pqre9@!|!B&y \ `b %(+B%b=,PN\BP ^uRU| H. h8ԅg"5%ICcDEaZn9nKTKV,k2 wSfvXj^S2!4UTAB6Ummt3f8-\g?/yfehHor׫زU@ <\Ǻz 0q3핊#AJĮD$ W!̅Ѐb~u`$ mY᎘ ٖFp +&D[Wu#4De_$,D\ -(`ʋj9\>T<17.'bj͊0W2qs>,@;s@\o{7/|ěAqc<B?->v OIo\S!Ucz3iA e G?e AO}VPwv Ƹ(:Ѕ.íOO[LGAoΌc{;?"*8?t H{`X$@cf?eV&qbV(y#o>QL2Fw_%3ZzTG+2'IL1p @]]՛viN |O:JF)&ب9J:޺Ȭ:z<`7P7PV^Xnf;أJmf`; (G ZJː  `U)0$~KKa\0 :hZ`J9P 7P8 Bdb,x3f:̀ Pb B ?P[?khZq(˽1_!Ak+ f:ˠK[@@`;+kܷ˝7Yk^ISRCA{*F9˾[ C)||\˛9{ : Ͷx{7@J9Llv J3lW3K@P3@X}ͧϓA~~ڽ,͸|F|@@ma!ɥ9 @Yk*ʳx7 [*@tKZեi°[w ̣浶,M?V  =O=;YPDp<ęMkˆ(:Z]çLǜ6 ѢɳOo қ]K\F{˄uA\Ӫeۀ]wk*CY9ݼ;@PփօœĜN !Vy[Nًm Upk٘=؛ 2m M.SJiQ՜m*oq[ŋZ=򻿥g..2mw{+ʭ=oGBk@FV pcWmԟ/̧:=<5A-̈́]|I^Kn~wڦ| LaG=Lt>$.&(>.uFv|~NNϠ׾ QJq꾻>߽Ţ<<Ȩm 9!MyA6}|r.r9d̸N߷H{ \P "?$_&sp-@yx}+2Q8:O4p)o_6oLNPR?T_m)?GI_Kod_fh^w]lcvx_X1âsu ߅ߑ[_kmi@ O؁ka1\ \<@F]oO6 ;Ol_m_500$X ' JC%B@35nG!E$YI)U bٓ >@v"ӧO&,X@A*,SQLE`UYnzWaŎ%[G\̬ysE;vӗD"UtF,FfԨB#Eis{ QUfeϦ]vvli8pƌaÆ*C 6)ѤK+2D"Ed`B0Rh2eʚ=beH:N(0 I PJ ¶+K\QLˌ@4oK&OPCuԎ"MJް#P J1-M20[$_dWRb)NhTdUv #6w8Zp Q-=KYsH6iĄ!)8vYz뵗 # >PXrDEGZe\С]bXcC,>add4LT0xnHjI6QCP".X#dv14`1W!KUf f!d8lfS6*I:"U{o5H;Y$D}V[4"O C œU 4boKc su7a5cO K@nxM7#tq] t yA ;PKֽPKfUIOEBPS/graphics/ccapp010.gif'@GIF89a  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜIͅ~Qϟ@ * |B?᳤Djʵ+A0^IYi!T˷/J 0~Ó?[Iң:'^ͺװc˞M۸s+T`>{8G +!K䉡% '( CJӫ_Ͼ˗߻?GxGqSQ!W%hWA}cZͧv'bV$ןqNxjFu qrAS@; @G܈@2YDY=2U^`;8s?FxX[\ifH&KS #@)]y?Pl/mb]p PC.IZX?@|@EbR+Qjj^DŽ:`>[2 ĞfȲ$l#- -Nk-G^kv[Q:m:ngn+oҋuoL^| sp2 qVO UqbO̫"rɹL'.rjLsK3\:s@ I?M-j$L7PGQHmXCME-&8d-dmvB۵7ͶCnrPoz+7~ x nA 7͎?NP2n y/1).9E\zҙÌZҨ.m\W_P>񏀔 pBFTJZ0N(GQqp<$Br[8+upP៱Zn2_-OG?x#~?NJSq-,F }j!6{z.R|PT'F?sQqTy~Tɐ^ܬJ[R\S@ 4͏ Sk՞Bei9\}j RTJ.IR<8ox rWkeUOUvI%29)=7N]xR3!U=HwCc yz8p" lP:-jdJP[0& la*:D~LA4=v %)̱Z5ll$GE\2Zo"OgwRV1fIwX4t}VtZTXw+'NjEe)9lv?%\ywn'sUaB2klQ%(:V?åO.Rkw1lɵXx&N9iq$at@.Ժ)sZ)5O[dEYS>,o -πMBhco*)ILFXq4iь鰼cǢ?CH#vby{.l!Zָεwk^'ziN}0F-Mrʱ :?}09 O4WPj+=jW8N`MW uv a<#&)bE 4`1g.3#E{묋| a;s0w-0uȸ7N w{HF2'|'+jY5ĕ4\lZ3-[RM"v9 @k߇_ mkznXW0$&1 k]p6}bO"_\)uz%/kof@dNýrD%^Rtu)5;bϵߨSwN+V1uu#e-ۊRpwPחwfAI=őR90OԾ6i8}PުGPvKns v/~"0yP!~}uW]ttj00{:{ {W (U|aWAFtESAq;@&[+9I2\A'7Gkl@pWM:Gx &HuPā\05f4xdA>^k Yk}8K(M8}v)8XxkZx \ a0t t1Y6VQ[L0"ц|Fv!qcodj1sd4pV\4)U0j)uFl$MoQ"Jzx.yuUQFH PQ긎v Gsj8爏b_HE6"#erdďg`F 7'$fofNfՃ&uM tA6XNQEKMq^qPA{'气LٔsvsДR9Tٔx ЅdJe#}$`$SIG\eYdTbL|H%#ϤFipy59'qJr4r&Mu_yvr(H(Z{@dP %TUDvJ:tXX Z)_h0uٙDxǹhؖN# pWnP* GZk Z`)S"KM1UGHr0bu`_qWrI@TJcj1MiIkph Q_5u/GQA`Ȝ wupyY`OYaLӣEw" Ay#K!>9e1aAZIYXZ'Лa#HiNajFI'P  2PvMu2WTɞ[d@Ӄ1}YF{r$/jqq(scGiV] _J=yp{mjlBTM&/,3!#6l 'tZNٙ9 xꛠh{9QHqA%GyQo*F)] |z-ƂT;plщQGjrԉL5*grcE)(YrыH"Y:WL 4 l$Mx+!Ir/ˊU$ 7IT+o8SX"$dcy,ƴ axJ(Lv!Xf{t\kP@tU@^ⶵ}!AE~({]/? ! z ۶ۭ[.'ؠk6'a{I| `vS+%U& &k ;}e|E{X 7Q!M %'P۾++ܫ 彤+k狫 DR%C=c'Djqӱ&"лDdSW*M1OLd(V1`oTJV#"E1#AS G!%ӿ SN4tnd6 B=0ism:jqANL(%9#8L`;ZBY`"%d<ʡDJ4s*|*SprcYeBq8QW\;TɽLkd˻lrv>` MҶX | 6K)-⛙xrGۭ%\uW)F3MZ 7NMRlDCA\Cהj6ץךku SHF7K !S:b1j5;Tp w xn[%1KIW>so]!^0$N[|>[n' 0 zM1L<|֒|N0..ҙnO@ P'[QYl5]5|P ]D%QnkϜ |ھ̮Vk~Y`C?T'a vOuP?CZDe` `BJ&(*,*P^!r(|V>5 7O9O{'pI?K?M<>?RvTV[1OC ^ | "A7鈯 |~_a/ce_  w?Ů i&ޮ;/~0Nv| >^퇟? ?Q7q7yq o2Ott. ?$X!dC )W_DؒG!E$Y$Ȏb)P!CzdΤYM9%ZA @ 3ԩSz8U +Qo'V,w1YSc[qmrW.Lg_&ljOK /f1aJ N{\ٲuٳ_?vK,EhUTkرeϦo/W~'o# '|sຑ/865skO^#BIJ#ؓMga`^j}. `t>RoWP>O#r\ `gZ1 Ds蠟Ÿճu:} Sh@Y:r7D +P.7Œ-s0QSܳm [27fu[J-÷ZIvdJwSd; 1HQ !ϢZ'? Е3+CdUmTRf g說*kUxuxRI7X9%MBb+.kKFTK1a~=z,"ɞ4:$|͢PIV6+1ZGn[6!:;Lj..r1Fm8wU΃=onmp d û+#&ǼB/bk H|SݷDt']&W p ##Rd%].`qauD6~S5@Jحe80;DՄ8F9ȴ%GSQyrVviD巙ԋsTR07Vi%Kl](O̠sy^Z3ܔ{2σJ<B]I6e-mfdZ!!$F-dr4'- pƦgjn~AF˨Xjsv/[Me@i9"b>:mf7׮$(;#Ȏ[]ˣ6] hP[" mXX&kBC^Ml5T&7jo6F4oGEp<wGq^G#8[%-w6)5>#fK3IO_Wq|‹$\[:7s}BW/SkL(9`ٍr-Mkg{ۙu+|LG_؍8g'A>4 '| x'^OxȯհFaEg^<Q^'}M{zg=z4eO{ܗ<ΐ_'~?r]5_y>|C?}>~_5ݾ{H߿G~(~u~}e*7pn(@<@Ll@op@ @  ?ҿ?{S"nj @J=»? A;yx_xAGRATgpA$Gހt G8t.2ByxP-%C?D,fkDENP6/C0ܢLMDOPE5 748?ܢUlO BE7/|T\EWEAEK,EZ SB}A=TO2TEDmmTHGTbTK=JTNMT TQMP-UN#UTS]UߋGW-VթaNaр;PKl''PKfUIOEBPS/graphics/ccapp019.gif!IGIF89a  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜIͅ~Qϟ@ * |B?᳤Djʵ+A0^IYi!T˷/J 0~Ó?[Iң:'^ͺװc˞M۸s+T`>{8G +!K䉡% '( CJӫ_Ͼ˗߻?GxGqSQ!W%hWA}cZͧv'bV$ןqNxjFu qrAS@; @G܈@2YDY=2U^`;8s?FxX[\ifH&KS #@)]y?Pl/mb]p PC.IZX?@|@EbR+Qjj^DŽ:`>[2 ĞfȲ$l#- -Nk-G^kv[Q:m:ngn+oҋuoL^| sp2 qVO UqbO̫"rɹL'.rjLsK3\:s@ I?M-j$L7PGQHmXCME-&8d-dmvB۵7ͶCnrPoz+7~ x nA 7͎?NP2n y/1).9E\zҙÌZҨ.m\W_> IB#pF:򑐌$!qIZ򒘔c62:蓠 y8Q PVGTO6x9̤.w>. f&))bW?c o%3z3WV{FfW-0My;f]ZЃJ[Ҙδ7iNk0ȹ5Y('3U( zQRzc%L.ϸ2/B-0 BNf;4 $8(KaZmkz}s!ՂNq|dhhr;̐VsC ~ΖB;ψfȅvJ^B;͈X'v b0HF~/@b`E8u}Wrj@F2i?ù@^رQ %#ֻ4bX)/& V!T)k5$0@`ILb5O(:_vE=~P S"!E|mFZ!'% G7'$(Q S]UI@ߕ]72<Â|71Y\V]zHA*B|k $;H68_{9+ |H B-0O\wIÉ Jmz}h .|wS(̯?g g-7@QJy0Py2lg h{rg@FzG}gX@ ŧA|з'}`XYtl!]:EUQ Ao@7]uaaY!F8*t 1u#&qz1~w$~(}x 18YQA[LāPwwVtHnE!3[VXXl8dx f aU! x=ZKVT}%M0aLqw!dojAQtd4W5]4)ބVEX"SFhPd굋 J2a=WN]'UcR8v GG'5(҇(gnHE6"#eb&XhoANgjq?(yxW('XnOO&uPѨ^n@5mD{VIq\+!u$qr`TYV97V\ٕV gihQTM G5GVrrpr8 YQQ22NjTX4#|W$!G(!1b$1I]'!!˜1ؙ(x\@Q %kՎDΖJH a c]eiWfᆫ((v sHXnP*!Dw nQRMVRXs0Bd1"n(XG@>i>y`i`줛Wțf yPz: `yTft͙oȞrY# Xi7!Ye?-Xf1d9=ZsQУ[^X RSjxQ Jw^9dZd*} ن96D!ꖔ 2IiT1=qMh,VAvى=ɧdWViə|@#1ٓZ{r$8jaq(~c!Rُh jq)&#ykmr!2b9b#&pA&U#2/lJ]t*!QݸAYh6gDﺓO QrvT;`j(uŘܡFTH)n1Us!Q"+)Lj$FS8)ieD;N4o:mdNaLs"Ku(:[":pqv{Yk"$ dU ʬ!E"#!,r;t1Ph{\[PpuU(Y;ayn+R)yd({ѷ\q.A?Ѹ!񸐫 %a[-+oKv@kk{qr,7 t{[V kJlQ %DU& 'frK+kg3HYq!A+{ {SQBN7%'PP۳:hs%[z@Da) ==v!L1_qLfW*MR3\;6LX<qaVMבg1d)"VE1}"%pR"?;DM5,dEo1d6 B=4ïuF&Kk +Lx #'i!:Q{>iI:jqAOM6%9#8Mai@'_)=[BpwkJ"P_rAPK§>;n'ջ?ڊMBqɬl&{Ɋ|j8R$Qws+}ȇXȸN Mk5(UqA" t hE)<)qqSQ<EXas)f܆ ?,бr B>? ?,dK` <d"Q "&ͱ} m Љ?ÒMQu#7iѓBC܆qa0!H."^Pp`* q?]A RGq=mCC-%,+ǟw̭ءӄ 0ۧ1ɏ-Xx<#?DZ=d;SA#ݭh|] آbu;ce}?PM?8ʼ9m,Dc>,l[]bj$^^)} H֝:a!m)L;=q{["%m;oD;UGF/ZҸvshFM^?Z%Ne;#ڍ-t}#) ^HF@N PC.6Wbk>;d;p޺!4' n*1#ѰJ ^a>2I .%J~P#nn'@)ZZ!'!6Qtͽ.}^[~^NN z;^!YA12.@ P )N^^Nlނ/Cٌ1{n gX &?o'g ߥOKOo pJ.02?4Sz*N^8LO|w ~0.^GI: b?$C1X_N}n__a??f1WY߶[ms @#QAx|lMѷ @"a@Cvs&Uy߾=ףOx ! sO}?Ŀg >> l~$.}/OoOx o26 $XBC%"E"@El`N9HvbKKs1eΤYM2_ʧ@ #ZQIgP!ÂCNZj҃ һի|7t,уA =۶&QSc˝_Аәbcȑ%tœ5o9r֊y&]t: 2ݚqY͙Wܓ)uo'jJu{i7٫-8vvɂס\ݻ--{†a!V>z},C{p@rztA#p XC6P+/b#?<=Zt7bE O|C1F $)źHdE$`F3QHpr\G(2@ $nk2δJ5;RH-یHYN5A@`\((I!l6`b{mKzQn#"LA"D cc.4hkt26h@fƀ wci\(5Jf#$;( alU@EFjnH:$yIa&ǁtғ4$*it"~( v72R$F+6RM\I-iuK) aAb@T0D!X"M04C3YsK1LR0"g9x&tnIVbH .xN9aNJR?=OyxdfE#ǓcdbP(9#%DMpt0:2Q(tJ HMaqsM%(d>2MdSn&mO h#^DceB:0 PS]5GYNmӕHѹfow$ gv9d깡uFW4D8nS+E7xal ㄋf.c8o K1M6H7t;]"H@sL=!@uKyՓ 5= v}N`_~wCw{n| ?˽g|Jw.|!E|=yЇ^'}Mzԧ^g}]z;l{^}}{_'~|'_g~=~}g_~}_'~_5_E_ @@,@<L+l@|@@ @ @ T @@@  ,A`zZ8zC9/2=~ 9΃jm/P$|j DY=Ø9}z^oO&큏+4᧯wk@{ۺ߉ I;wpNT\r(ȃ'(A6d!(DGP>zb"ac{1q/N$,_ B찇1 վElu#g!IKֿq)d+ &@ͪA 6챍acYH%`PT(G T<{A@td a8>Nӛ?3 %CBܓ=v0dPMImEHa.O#H8ơw(G j%`B"'1#? KG :釖]6^"@}G/JB$3IziTZ9(ȟQ+;)+(C}tK\*m RH/gQb0&20՜=jαSi5qr+Sހ#*kR&0atH/1bl D eϯC+&i,:K>5Cb5bO@i'+$Ѣ-NZtHЬ`w> PT%ʪ VUQWX*㬩B`.1fdB1!L(:׆Gk -kR K5Z!T)x0tia*b$#8iMsħc/3 (PwZ P q;prĶ(OYv& 3.KGȷ#p>挎 J+?zx?'@;a=x4P/bvtMFCЙ)RcИ>k]Y xM jM|iO#Ż(mJhҾ]'PRrLJ-Gr1fBBs/*6B/}d5_%]TA%mD#0g@Ȁnz{n8Uj%i>BTW&G(vi0I5zay]}f!D5"٤GJ=4n)s'B+S>JM_bZjr>p>B"}DX"5MY{\k&$*Fr:wekln7)DVs{ hK83 f@PYPW P!Ks'$fq,8j0e3 s#Mg#@{ǃ X`C6X :[HMXGO84YD6"4o 0qg@i'|~mCXw487evjvvu׎"HbcAw(VXJ`W#PgЁ` WAG AGR(EtM 1ؑYq 1u7 zY!{)X2I=z@&cI!i!TЇItPMYpQ9!h؋z@Bi_9Vu_9HiB[BqZ#z|!鸎~h١ Hx1)2dKduKɈ  `pPQY ?B "Iw a 9*e L*G / 9>2ӛX)y7UY :i@XW9uIz9+GXYzkX%tnIٗ @IxI1B(rG(t7I-䘏W*0H` iP  5 p p 0zybٚ癤iia86S)!$HrithiZyr4C¥giarj ` H2&4)$LZ C$R6ᡉmjh PPKx(=k0<@AgCnJ7qhfijB:3XQoh}S*$!yyr jJAc:[(ʨ*{ivJ#j0"*JKgxP +j!2B N03G+|AR7 aVвね8P'.D q%q1Av`{P<>dEN!S9Rzp "&$ q>ЛۛWjj+IRxѰ;# +*怵$@ #0"Kڈ'3H䲡uj /TRb{ՔQM -ѻ;n  _G և #-"  q ٛAa[M;۫K꛿1.KuJ=RjK;R\|!"C( Р߅k!<  ʏX Qb H"/@BВ=ٔ]ٖ}ٜ٘ٚٞ٠ڢ=ڤ]ڦ}ڨڪڬڮڰ]ڗO" <}۸ۺۼ۾=]}ȝʽ7<Ѣ/JP}ݶ}ڽ=]}=]}Эҭ~ >^ ">$^&~.02>4^6)>--~>@B>D^NFFNPR>3+= Z I]^dg_bpmJLn[z r{e~k. ` @~M{.飮 皰-xn-r.t~,쁎.>ǎ`^ɮݴnݗ~߾znnͮN[î>N߂^E<.^=N n~.  _^ |pNľo"?@K݌~n zN>_, 9-8=! Oמ^,L | XžO,?`U 1G-ܾegݝ@rp腮l/ ~=|N8*^Tݺn?]>^tN[~߭}?oD~? A ݸg/B q f?/޾z?nvn뺿՝O@ iMhB-JTl;NF$N8ۼIS۔R]n##EeRt8`K7VS7%gJA ]XԤ@6 ҩ/)1eE!֚1OɲkG!$ivIsX`… FXbƍ;@x`o0QX)鹾&(phqBTEYBeҖ# j]*J|HLuzV^eu'UyT0x2Xp`c1|AuFG=E1$@D0A**,:É5k/X3C9C $3&6B0: (:E 즋#DQ H1&{B%{țnf#Ѐ mR\QPDdM7߄3N9t20%.?5SSӯڲ)4@*"҄MHJ FnP""B-/CMяd 9HBҐ eH{d$%9IJVҒd&5INvғe(E9JRҔDe*UJVҕ\%#%F^e.uK^*H%{9LbӘǔ/׿+τf49DeVљې5Mnvӛf0ooӜf4! v2`;QpoDg>b(@1Px<WOf1 ut(E-zQƄ£iHE:RԤ'EiJURԥ/iLe:SԦ7iNuPf?a Phaӛ0ԊM! 5| Wij*ZիB!a( A&k\:Wծwk^aT$dm `B6ֱldח80a _U;/B@@DUC UͪLr6 -F[Ӧ =kaFQgr{$& /$ L,`+YvwST0/ ,fPpjbBQUC"땅(`+=}7{_vꗿl;a w0?4wBw~HR:l׻',e]{ IHzPؼU "kףVoT=2Cd!Eie.w_s_jDGgi H":P(3c\dsADaDY("t( 1#mhD#:I A]DzҟՀiMw  e=kZַuuk^׿v=̅ # FUFCYT5(wssENCj"ZF|_1=JǠ1/$N/# Rzַ VO#fk .Z!&EE>r'GyUr/ye>s7yur5+vЅ>tGϵWCh湌0A=f/\ٖɶHctPouD@v3T2/$gGnC$!h3ǽSqA/a-7˰ 1;~w}}s4cKB|o嗀\G}UzۣSe?{}shgpgBO?ȢO(Nd0F m]!iw[ˆ8pG!o?xAgS?e6#OC~ ӽj8S? 5E B#Rh Ĥ׻C$4A[84#*0ᣈ4}msY7R<B6ho#7D0rk,%a+k68[+(x'A{ w4Y2(#j;C (T<3چP84JB.¹.PBkYl DTEdD@@IJAAh>$(HBPZ: E1/Cm{Yp$$t$G:c.c($47`m`IPBCF1aF4:r+FRcBYCC?xFBd3pFlT1vJ-Fy1Fӓ!$kĂ4ȃD pD$ĉJ=y$FqhÂ1./8(h3L ;|2Hʃ#6˂cd,]dYpɒGp`t?ȁ +v$D`E?8DP>"$G ʔ4hKǥzJYJ(tD[KKy`Hjc'KJEUV(̳D̄LL d$lȜcHAtHZ'ДXHITTdu2,,jܶ,>[$7ԳZT̂YPsÌդƠʊh͛Eʸ?Bȁ?p˼Khxͫ8#(h8KNC*J-7O'8: (BK˾㫇l$\$PMLH eP $U%$E |P”!lЉ(%!SJjlPP/8d,#]z',>&`'lV"-A#ELMU E$[PS-Y 6N/W$ԳDSjT e|ƪ,H-mP\^M\xO"Z$\%Z$.0Q]EPRjV[HLXW9kA -|nW%UM1[ݔzpwD/8$4z},\d,R N~-jɯ\\%5CTOhP-Pɝ\<-:Fv\,0:DCPcߪUm1:ӵ],p]%ޯ3UпMGL&`(d L ÄU4cE__)m_l_HaLeQ=5 U5MQQLH_G VcZ Q1V``{x`_^KZ{ `9`G aE~Q L& bHHJbg9DEJC@[|RT[,F2lՉn>ӼhF(M/KGvۼz(bOh05E|B~MI)B+C7F8چdJT(SJƸ0N7d3O;>v]݂X=Q6O-UeV>:Ӻ鵇HJV ae8n-cmWlc>MX4ָ AsdƶrkuZ79FWZAxBDcmSt\̂MBk{km(_6Sea*mNӻ^_VJ(fe53/0778YF<3OJӢk7x] 5C0s!sNfR]$jnFTLnOo 5hnvgᘅNhSu^uEHgtYU[nDa u^`e]vvZW_Pl`ѩSv$vrjHYSx`f'q3FGjqsq/:YMӌH/@W=mΝӜ+,':Dx>Cå,'L;O5G:QmX*n!7=j AOy,0P:@Gn yoy._n~^wv[UPwvNGQ|W'v G.@{F~Lt6{VHLoiOX .pNXaRojo{<[^doo讏n//w\7A/.|G&xLmzm}q$O/QB[?cLU‚0wjܗ$@recM{;d*;GU Dk: Dϣ('hlY(P D?B5kĈ'IbȐBQ % /ab0PWFme(ѬY3ԶzvʲI3".?*(QGś2'MxՔJiH6=5^V`F0+ͱ>Ֆ..U 0),>EdzCY}J#mv^0js"/Ip"?g#_\ I^(Y( )(1YaL HyD(1j,z0v#+ "I$5v,1@D%@~MVA#jDPA@F"(MިR{dB2]{ZB~7X@Wf0.$]7mJuha3]t`5e(BM:W\g6iԢpSq)_ڕU z:ץ**j%Xͺdꪖ*jWAVzfoR& t;=uIiIGwԉw׹xřz|Jb巟(_, Jܖ28x1 B/z"h"*袑 'ѤG_@>ZY0TarM)s9 +̳j2@! :HcX9%Y@DCD1T=j=hPC=Q1jexۄ jOHی%dSޅg,f)2 +1nأ=ؐ09Pcmy孏J鬜:dvS;^ʾw߶nHa.}USDY-oTG%d-nC2LrK "D#Woo"%@FAvC{ɇ0 9HCPHA, bCFTifF@bF@ i6/$ .b(* %*DTNX5 i,xC9G@3b&& ?qH#FE1ihzBGHg@٨FEѐ5J3g#07{D2J&xIѣ=2فA~T%.<ʕiJ4( yK&> 0˚s6ta./HLsB)|mc˨i7oBP7ҙ㘦몎5)(cYX<$n!!Jx / 8R[X B# IP6S X H\IK_ Uf5sE51m*Z3$1"d,׹NdLYŪVCk[:GTʬr+^j׼~e$TWU y2D8((j]) )GlЂd"ӕl%eӢ^`A ĕD Vr;D2Mh(.tU PzI5rE»ƅCW y#^^ShG}^wUg|+ׄl4MVv{}0#`'pl"ԄJ rpY),RAU( # m[1e$/hc@R300¼B{ 9@D>K@d#Kmj[vϓ4]gD3*4_|YKҖ4ck3sZ 0PGň(@H##6dZbUco坈BJB~ L"^WE / \5~ {7䍵lhGӮ6^@5~7-yӻPn}7.Ǥ R(8i A-K,ƈЄ,^A{-qle\k"u57hE/zfQDF@7c[C4M q9YМ8h6/1N:ԣ.SV:ֳs^:.8;Ӯn;vwC."l;bj +tx{cۓ[w";-''=c/Ӿ=s=O[>t~:WB +S]O>@yʍh40?soY?蓮mп??  &. 6 FrYZL]YyQ=U  ֠  *J\fߌC* 0!DV M^!fn!lu neژ_]]!EH!֡!!!  "!!""&"."#6#>HDZn`=DE))"**"++",Ƣ,"-֢-".."//"0$" f"!@2.#363>#4F4N#5V5^#6f6nc!v`"#8#99#::#;;#<ƣ<-#Dž#0B=?#@@$AAb7>=a>#?$DFDN$EVEB=XCC^G~$HH$IFWFcA11vdI$M֤M$NI2dJF$LL$QQ%R=TDF=QM%U#z$Vb%U"Q1tltWReVY%ZTZ%[N[%\ƥ[Υ]Dॾ%__&aB`R̊8qJ B( _&_Z%K$A=lf$߉YDteTZZhf&td@aRWilj&g4#i0t%qthR1AWʦmfXZ_]Bg?BfopsWNgZf='m.'DCs"xYgfjzi'vfexx n>gyzgA^Scҟ=Ȃdn h_emh&o4S:+g']z(hfnDf]ghrhD0Ȩ~0un&uwh'zV'R)`')gWNZ锞%*fDQ o+&z*]*"6fڈ,_?NհhDyܓD}q"&ffVb%gr6t*vBltFXg% #X'i8eJtB~D\R'Ύl֦NJl&+Ţhf,D+^^gm,§˾jDmAf1!bq,)HJDX'\>mҺAJ+flm|,smVm,z-؊W-)x,*mlΩR+^.w B.,lʎe&+*^,Ӟ",z"h貖*D߄@ AH(DCD)l14~CgfJĤC)#HsvfzoZ/jomj g~or:BDj+!J\zȂkBRf.⥶үfmfr0 Kn0*K000׺C)߁w~ǯe #D00+v/ W#e2kN.~Bކ3ςFp6kF/D0 S0D+X%+' ۯW/˂?!, /&&Fd(2ϩBl>gtkRj@Kp020+D|0^s1&ël-4/;q+j$o0;mC"$2ǰҰ(61)tt-00[6['8k8/ (5$˯DD337+F>q:;30qDEjs"4@2k+Lk4=W,0HfD?4"WoWsI6It&z4j2br2A!H,2G0\pW0/r-D=j8)T_oXn3^o1wAYh@(D>#HX.^Ku5uN:KGOa[o5];7o`W5|*.wtm.tWuFM4\cu(BSbAiG645K6UiC_vfvB:d`XS'mODn?#hhbsZvuR[+7k3t'D6ckD475k 61!(oRA,rl'kŲ2crWL7Ic,ZnF5* 0J4jB?DLAfop'y"a/}%bZ0`xFvgApW58%pC1d6puwx)bxx70xWzO o{GKnjd}7#'wB8/†(n>5v{wO"4㩧s`ID&7^o_8+p5r&zgxi r"zp#m8{+/SqK#6W{jFK9D|gT{j ,3rE&4_z${d׶ÿg{/@`O"DHЈB_)_\1ʷ˃]Ǽ1||'~}=߽O~2k@g~=S~[1J>{~݃>S1X=~~j0A%ڳ~?C>}oF飾o~Ņ<]dRM>?= >鷾.T׃^ݳ>@h@ʘabAc X)bd15n")WnȐeK dIKMf5$X,;{|$NcDqi'.C\).% &-)EVO\4Lb%C`d-JJb[Q_ )g\X^5ʳ/B+RWUMUIڶԸy楁#YW1šeZYnǏ.*QNɲDB] Ubk_;xWڔJ6,1P`"c}{6?aҿ_~3h)$^bBMA, {,Q쐢0F 1JȮRRA gT46C@)ӆrF\9LR2|dQ&+_,QCdqQR 2)G[L˨l̳M5ul D,lTPN@1/ SϼPŔI99|O3ϙ<2G,1(\Ԙ+iOV(VO>O]SUa-cMdmgVێ)"iV;Vo_|Y?o@4ga菁S!A N`?ρAB%42( /} aCΐ5t^y6D!\w6".MtX#(E-nqx)d,A.e41CG9|F%Α}(C dHE.@GNd ;I^';'ъ"2; XO I8dZ%ZJCP].oY<`A,f.+]LQcǫ,/t40mH Rs,8MT#I)FfҙK.kj<+HNꬡ? (#s'>N:|' GI4ͧ+YXTJRn"DkWUet@'Sr JCJ6i3Z*=ZhUg17Y̩5 6*ZεSF嶴E,j:ۍ4mCԫbkZ{gb*[EU1ɱHv1}6,Ii.˶5e5 ڃ,]^`׽om˥VB &pWP$[W$0z PExdC;6劰n#w ֌df\_r7O`@ Uh $#\'v6qo0r/cZ^-=M 5z5z_ٗkf01 nhZ5Ch|bqm{x׾s9MIOY?5`/TIJx~z^j/v U{N17IfF6U qzkf Ѐ'_2i/ؔژr/\u{#Ɂv]η#-"'W-q7eypcgv[zY+NbGU;'0/GnPgp+A2P+6W5;420E3Ȳ,U tNsJ7Sw(+8r6-ls+53 ˱;Ls*g<5_<:9;?pB5tC)4ȄL&(C9tDIT6C#DUtED-HDY4Fe\`tFq4GEF)FuGx4HHGtH4ItIIItJԢ󋲳JtKuJ׈6aLɴLL4MtMٴMM4NtNNN4M K~4,4 P P5QuQQQ!5R%UQaR-R15S5SaOSŧI! TMTQ5UUuUYU]Ua5VeuVURiVq5WuuWqSAWGTIWXXiVuYYS5ZGXZZYUYu[W}UZy[ɵ\wU[5]T5\UyƕU[!^5Fa^cuUNu ]IU_^^`OuLU`Nb@U1VcaU_vU! J]d'^5auaaQa%T)`aVedaTbK`K U;vc_gWUhdQvjuGeU5gYeCg6ikgqVgUk{fgcAhchiShdj6z4OsFuVTklcf]KoeVncaKU_gm%WUnvsmj96cvraݶT!^0v (puKNt^khTWu vQuvS7[biwqit7mCww5v7tSb=VnGrMreyyxUuoAVyki@j9w}[s|ϗ^^caWl+{wec"uVvfW7aV{W_^W7q%Vh5bmc7zu^=7~mW}ٷQ}YUqEvٖh1u}mrqj#bwwcv)7UeX=g綂7镉8iQm-v^VAnm|tOX|vsY؅xt`xUgTVb׊t8h8U)bGwQ5s+XXc UwW1Xps8!b)Iِ+oWn۸mؕnxEU5Myi[7a-Vqt99756%ؒx39Yl9y{ql9z1ّY+oyy9Q(oy*P?WYu6vgXb)]hWq1my':UzcrS ez֝6juYU:s|ᷤyQբp]rysYmٙa_zcڦקUVpzU8dM:WzBB1oe5OZ:G٩o9mv٪gUY[Kqًiyca\ZzZit6z-;sZ{{گZ/{إ=vA+1[MYn׵1[~k7SU:yoٶ9{=8az %{ [WuvC׺ev[o{gKEc֔Ep7y%׻C8;շZ '۰{`u?Z;x6čEĝY=AYW~vcS}WuUI|ɕmEVm97}QǑ|[:܅|ɑ\ɩ|ɇ]+׽H;?]])OJ1`>链O?}=~t_^MqIԙ=my%_O龗ߵ~}/Bz.|1ĉ+FWȞƍ;z2ȑ$K<2ʕ,[| 3̙4kڼaz 8@Y| " (crh5B}j=wsOըt+sZ7ާ#aÂ{ ň3Ō;~ 9ɔGgСE&]SUx+[` r]чM߸s <9Dĕ;=ԫܙYPF*e[ x=~ȪgO!q*${n' X k*ǜu .`>bevyG(Q\U~3͕ U%ڗ`ǡBAsyP\#p FHdFdMH,qwU+6W"wЊ\v%ZWm]xߕ袦"+Aו42Xs6~ h$O^x{.hrr6 i9h^i5ݡ%:gFjifFaG+k l[]qklJl^-MV,J .̆K]fn Ҷ=͊RD-:iarTbM&p/.KH_qoq r"]$r*r s̒EދEL2 t1m7C;'B? ubפ:..uNK v@ F^}}s]7rϝ0و^Mvy'n6Y+kt/8v ,/ĩ \Jj)fV7p㢏6 @¦ס{n6h&+.|J>X&)Lmm )GzyotF $9NK<;΃G(,)EOQ"B$-##U 4JqO]c rѐ,%Ix4)d<+U +YGܡ'"@eLdkL8G4bcŒ rR$%3'97z\cs y2p8 .s>Qv1 Qo˙/+:uFtD1jQr}I Qp)K%Xғʴ)J_AtNOIWӛT:jzӤ..E5*B:Ƙ*uU5hTF:Ru6Ίmll]U) ׸ʵes]2usc*TԿ|-,*X6Bҫa+4fk[-6|r,d?3\*9KAkզvs*fEvPm׼ɦGy,˓[^̭d'[Skhֆf|n ޗvG&KJ\)ֆwEB:kmᢨG5AFwfZ5``޿Ȑ! ΕjE^Ieaec56nbA] $Wj*=\ R^x>Z r]\#0;h<,ȸ:U8I1K vXXֲeT-t55(s%@C,Ze[-֕ɰ?t^zX3H:AkZSqhbX™g?w7 AuTl1Ċ*w&|HXI{"nd*g2W̲]?܏,6jW{ZƶgJ/K=Ôn̬%Ur pܻ7+|&?p{ SW|+a*^?sd"/ߚp$ \~|v"l|9:wit|18ї+]#CO~V>"ShӼz]Q8,mDp6Z:כ*nJl}-y{N'Qc`\}e+^%~8]=91%.~,Or!Ouir_.\40FSCf6s~"iSX@;MD1 pZ>?W/.?ʱ`>1~=ձScF5S]~lH?~`~alQ>e0$/d~)TdB}}{71fl0jg~#6pT9$ցyΦFg q$X3g7F=>KkƂ=R&W87{86K)=nQJEH'sgY(&d7X28ȁRyT!M !1~(Hwő<:Q{e5hn9s;t&=j=%PPk^|K=kA8R2lЗshL6w_xZvwtvlpH\<޵(ȋ5yb%f+h([YwoR$VH8|WݸxtoXHtxZvqVcfwr+Cr1hBȎ;'ibٍ s Ɛ.9_q॑{qvvQP!őaw&XfɈ$xb%yl7r+ 8R?IyUjDIq՘zXlw%[$Dk|ScЃU/!OvNx=cP 9iY;I&afayQ'ckijIqc0aRy2 # W062 4A&ki! ԧ8~p2xR@vQ L0)f_f= e~]90HVԛXid> X)]-e=9[jjAhiGީ䉏)8щP%NjXt'ūt™]WVmpwu !gRLجvђeԥY'J zR]NYY=/ ʭbq9y1SqɯC拥`Gרkg=BEz xq3Gg *J|Gȧ|?"Әa^\\Q}Bxׇ:jԔ@s4>Jᢆ JyA#Ú.%gKGXB#qzH;A)O8O,%A֜y;[#\(I3hExN(hҶnZh1A'!HX#;~$Jtp۸Sq4䷑`+˟@/)K@?d* \;8Joh+һv뻦;]d7MuB $\Ot=&㋉9]fo&K&[yk4au9l~X=Ɖhzl[ı؊˿Mnޚ;tAoZm'/LSܫ%'R.l6ë?[kv vؚ{W} JaD`uwmnrK1 c vi**Cǜ Tʅ ZI'kJسjJ˝ܿ!}6/ƕ9,x'ŬT< jL;ؼsͷE#B)bqlQȲ.͆P(_S=ݪ; O Q*Ta͑f' .fTLԇ`gf{x:d-5L+ Qr[_`-؃m9y׈׭ ؄M؆}T׍4ؐ-ؒ͸l]z}]3ǚ0ك ڸ)ڣ5ڰ٫ ś*ŵNځۢbZl ׏ǭ)C۾m0ԝ4ݸ}ɴݞ-"&lH. =)޶nDȄ==w•_w;|ȉLל߄ߑߟ| Ɇ3~X8cX1:~F~˿Dʦ,NLvXf@~-==lJ~&X>;ZdZU]c48hAcH;p>cz)=[c^D0g^#⌰&YȺ}F=ٯܞkϙM>ބN]؀z#M4胱렎_^Үenᗎض?Mt[trpFԺ\%M(B'E,.m.ӜNO6.Ly>^ D. b~e.\aCCE]`H.JmO?WMY,G˜VTEܱ׸ӭ-?/_n)tS|ѸsC'o_\{ϧ_~ٳ+ݥZϦ9堋$Gc㧻~%[r t 4KB$RTqE[tEt/-~O8]"ȯ#K6t ɣ4s)CDs$nĖ24aK0sd-@3 @P91'KNEsL 'ڎ:zD3-W*qQ$sRJ+R0͜F p)rh$R&I #~(0Ͱ2w r\ETQH{W{U(L5XdeMS8]GDk>;Q`hQ/PqkC[~Taq(;07aw_~YҴ6yExa+%a#>rO8^7<'ydKͤwaDbMfsf eU~6㙃`)dVz}yFb[&hqjBi:Lmeh6.zvm†e[,B֪fo 1pW|qwq#|rr3|s3gpC3bZ{ߘ_vfw}dÿxsfJagG__O$b4(e$`-"z#AlMxezFޖHc'JH(jDDJ!s8DtfW D%<&Q+Ra٬$N D uUҺt m' kKd3 .Qs \~47'niC!ӗX$#uF(U:kHc%-)&MtGO`/>aQ"0F񒳤eT2Eqғ *P)zt=Ÿ!HA$*'i< g\/Xdg;BM9ĦKw&J?:L&M;]JkɅa2.G+ާDpºnfå! %pЫ8?䪚34RC1Bk6$ ɸ'l%1uQ;8),5z1&%9AiDEDF$,(rI}TC247 8r,<:X4@YLd9~U$M F#SDh<5i$?jÕY#5Y۵Tød֜jN#OA茸V$xo눥*\]Kd6PmKմ;lҖ/ 5dϝH0*ю=6͉aOA 4B 2D_FuT9K݃0ٛ~@J(T@{T:zKJSIj *ˊȧS|[ű1L1!Sk4m!NP XIZmI3,%|2lǜp%m13E"+$dEjhV U_?Ҕ>@㼷PlN0XZ!7Q 㨴 ˚yJkX#yMڤ5tϳ559Ӽ? w08K؏T j()z1Է0DO2&tT~%yNYàAK\Y~Ӷ}&Z ΪZ͜*Ϡ-d 0ٕ(?9Z\&Wx#OlU2Źp P8L?q;A Zyو-\U )t:O2O}\ڗzIF(R8ݭ )PnZ;tЌR[(tzMQ;ݾ7Y^?.5׼K^݇%ߡ^#TQ%@}___-+%-qU"R>H.=`v-_"i`+e ~K ^```IES`  tXQʚE-~a@aQ]QaaK U]aLEbR`ⳙYhU]xՎbDbL>7]uK}`}4.VFŇQ# rA*LR#,cWD x0W$dmڢ\U=b=`4N4%̉U҄cC8:L C9%/ݶ!NbNZeIM5֍eF 1‘!.ͣ=,u4ӪT{ZUfF"1UDX $õmgOeWqq&e> Huffz )duJ~gEG 2LS!])=_N=IvYݲ>R^pr]0;P͠]ՈiM,f!^Nni'}NjThead+^r~j0#L4.NTY3N뤮蔤[ -QkQN='ӽyRl¾^`Ǯ~lɾ-^Y êlna+~Q҆bIm"f Nٞ& J-sN̮C(vj3,2md&!bvVi˷9.f}dGeQ] ԴؓN"BMx&fPgcvk$/B檜GnzZ.o}} 7 NلQ9Tcy> BU+Q(<_.o :nOZ̨ D]t@.$>r$ ꊘ;piY+a,WX 36?89ND7_s>Os), @*='dnS<IuFuUAu*ttktW7>GJZuAuu^+!DG\oauRL' nHvcfO5_?{KnV'n/oGco+&T`e:wNwZw`I8Tsى\8~[UGUg@dU9<wg̘JAX1-4U~륍ro0xxFp5a~eN pф ovw~wlxfpZ᧾ ͦ&'tYؓ',Z`"]F) Ez jPz8ĥ?۰]){EJ{YzXv>ѧy{xXws/|Wk >:[77ԓh8]*PEz|7o,gxd@rvy'Ua/}}Zg~Gtf~ ~}Ogl^_?A/wt u^u $p "LPBB(q"Ŋ/b̨q#ǎ? )r$ɒ&OLr%K)s!F(0P*#To(ѢF"Mt)ӦNBԞPVbͪjÖ^ +v,ٲfϢM%Ͷ6qhխv޾~ruv0†#NxKmg͹OAcάY)͞?x4ҦONcR :?](l{TƏ#O,5oJ[yePk߶ۯ ֍u;WÏyדZsmǔ;AO' 2ؠ,}vgG nDQSʆ'lQ߈a3χ9J#CYh,4alW[ 7 z95QzNfWHG0Q&Fs$d.7DՁV〥@f yq `1zYP+CMP!z&Z90)f) b5CiSbPV"zyfoOBv'L %ĺë-d+*l2l[QKؤ.V;e~d);kcb>WH]p;00"JrDIgZ;,ǫSk%+5(Or=EX AǺ)We[C0"! KhBP*\! [BR2aZA{4π+C1_!zqf?"X"j/8B5@'b1kɠ6XLuUb1sE-10baoF$wC jcX *ސYhhS#IC? P8!SB:ϐ鐏%:2A3ɨ{ll1F2#eyqoq#J̤<*t1bF;Gj~xR|-qh˻md.C`I֟5(H=mJE?d'iO V3Y1]KaXp2%[IJ7Q7?xΕ=+:|S+<%@0=H%?BMmf 3IQ”zM(L%a6PI](Wz3JL6G1@YVInBBԂJS.p/]*Ys1."NzjC܂SM2Ur.-+a ;ΕpQF\0涟*|;iEI-,iowXĚG ,KݖXG7;]3:hI ؈Av,-qu2Jp\SwQtC3bYѭwݬ475vU*/{ɗ΁LK7=kB Y~ FP|50W;U|!+l $0;\78)[b3.X*~OlF3)^1jEy 8GrqTf,'Jr ;ǤGt2Zvx\2 #eI5f~"-9yspR9kFGE(֬CϏr0嶍,m_Ca.Јt _;ۡ6EQj;q)Z8w3kEUJ׆ ӍhXkcanRO̱²yXәF68i6o*4u۝hVn{=[_>?4wf;<>??o?_???o??I\&z!B`JI`Zb`jr`z>`` ` ` `  ` :`R` f`"a*2a:֠=@rr`Ra zaav Jjr!Cʂ @ @ @ @xA(abL|,#rb  C b))b*"a(#&A&Cj>`a/4TLD E4Ȃ@\`(=@1B|1$.F`<6c8n# |`"#:^`;@D| B\`!%~8FC9ZcJ#+C;#>Q"eR>* b(TTN(@a=<6.6$/AeeHd@4HMAANN$"0ATfb ;g#* &14B(iiN蝮RlƦR`' >j`2‰c,"h=l(@`A%bA @TV)#l_C@$`B ȤB)vd1؃| c"¦=:v&)gC,e6C,4JRiF`FrTRUv+*͂,"ܥV01=B+Zb!^h02B B(`6z C@6j7è>)B*&"C"槰P(*()k.;n q+e W+g+ *' G61@ױ&c`b*1b ' #r" ! #,+ ;"cr&%%[n$k%72$k)rirz)!q,kZ=O0-r..r//s0 0s11#s2+23s3;3Cs4K4Ss5[5cs6k6ss5+<N(@99s::s;;s<>s??t@ @tAA#tB+@#8@@DKDStE[EctFkFstG{GtHHtIItJJtKKtLLtM۴M?tNNtOOuP PuQQ#uR+R3uS;SCuTKTSuU[UcuVkVsuW{uN;PKnfPKfUIOEBPS/graphics/search01.gifS3GIF89a@c{!)1s9BBBJJRRZZZcckss{{{J{JRZk!)1!1B!R!Z!Z!k!s))9)c)19B19J1BJ1c1c1k19JR9Rc9BJRBJZBZkBsBsJJRJZkJZsJkJ{JRZRcRRZRkR{RRRZZcZ91Zcscccck{c{cccccck{{kssZsksss)s9sJsZsksssssss1{!{9{R{Z{c{{{k)cJ)RRZZZ)Μ)1Μ9֜R1RkƜk֜s{R眭ΜƔZZ9ck!1Zs)B!J)kεεZ!ssssss罌{εֽc1ΔΔ1ΥkΥέ9εƜΜ9B!J!֜{ֵ֭֜έ޽BJR!R1cBsRsZ{)1B{c{樓9Bs|JΔν{)19Js!,@cEЁA :a#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜi0l`ϟ<(AX+`@PJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKnYxWAQ +XX4È+^̸ǐ#KL˘3k̹ϠCMӨXmB0b1ࠂmۭcͻ Nȓ+_μУKNسνOӫ_Ͼ}w {[lbބ, هyh& 6F(Vhfv ($h(֧B9W0 A]4<@)Di$ͨ$BL2< =Xf\v`T7ihfpfCniUpS߂aj衈&袌:U Ĥ@`1d馚 hVz)f):#묲c뭸 N4SœpQ((&6쳊s amf-v7 IKjF:찳νS9j4x"ТG,W|>UI誫-V /SnǑ+2&˫NK8LC >[lB H'L7#>H{ j05+WwZrk3:,>$C :h9mxPwL5`cˋ~k*3>㜭:i:t Hޠ.褃ԉxkjxC>씣6϶/j =>/?E!>PE,e:h?>@T3 췟 {^&;{G8!`h3`:ЁT!FaGZ@.A|C-ɠ3"륤{4qD0D,tfH~|[Nũqr3&$I,(3`LPRA މ8,(0MR?ؒC' ?^7+l! chBtx#NS>4$M)r]C<%O`#@:j;QCRbh4 7` V(F{H/GsJ`xE4de Y2SD6K |d"9Jo*8i*HL줾3)RaVL,pKe.u ࡛(5J4AQ-â?J&K~i28I@ R8 IӚ͛^!c@rZRgIxRR]=ʹ&RL P ސ%T `DI >ӂfcDY͆,@/DkSLzGHzÖ *}^BR59m})6e:3)֦ p}<91 FjQmrL2tvN`s:[^OPa7 *@Ŀq[0F>ZChW4 ĨZ{GAJ3-SJF@ʵ4,ƚl5H$+j)iԘ(. NG`5/9kWxgζd`6Sar qi)r[R ǿ6_)9@t?hsq4eX'/"@Q>bdٍ8^&:MF.p,<-Ki/'[gP'=J;"01)mjhrt 8c`bunS˄u?6\uP}+@/L Q8C&l_pi,3&[rLJo8a^/Q\EJ%Z L]|F7Q1LyAy?"&~+T]K\_tEGHBw&t{؁)&-̧>wue]uvT7vu*X.;fov3GE"FFU yg~r6AV6lUQ]PqZ؅^t0TR_=ɤg_ȆW8qUq Mbx+eQz[f]HtQ(SC[sihqXx؉8Xxq".%)'X| 6-|/|2p73N}z!_f@Fx'Q8d 1 ޣq fBf7e 2j =Hc7W #r"_F$lhUL_p3g.V&U(* "9$Y&y# \W$r&vVG* ,Y&.nHHoԇ&O  }zB`0\P @ "xifkll5(cV_jhbRZXsdVG71tрŇwjpLVEie)Hqiؘ5ɒ'b+|9ɋU|WAy&K?hr `H>a@M 1w܁ cōQc6XhQ7Qc iiy&#i%ehBix j✫dX&vG7ziᨎV&Ŝeٞy1 "8)v9eB)Xu!|8"+{D#gꠚI MH P &qPti pzuY [Fzj&x Ys PU6z&bzԠCJ]a`/Z&f&(Jt=AVZ3Z ^jS)Rz8IDgZ.oDr+D鐚G9AU2 y8B $J 4\6|8:<>@BA܉}i ͠;N".LpMm- =QǰpxH-#N^.@| .k=K肮lޭEt^MNŌnNٝ=I=}m p}y=ꥮKPO j]ܗ cԯ^ \.̬~뿮2 xp -}ظ ~흾Ğ)O^~ЅڇօG.˽"HmNfN?>~m~}~k.ݳ _ܾ ]Í OPExM~؀x~"|>DN>ޮ]3ui}?NxE} Xp^̽H- h m?SD뉭".qO܀Mmkc9-/n@>mai-jLO_|4 p-̳&O ? Ю̥H =sO"~|o E>\ mu˟;M/?LnO_ gۀa޼uۂ%x >60g:Q#D*A`CCnڸB7|xI+gl0“479E)5(TfØ5uT(Nr]eZuśW^}X`… @Ap//nY>ę]|n.<+윔)ގY31h#:|`] = 8ANJz}pK}(O-=1 pJn2Zƶv;5ǟ_~NllN>BFR3(-­tMhÈЮ\DdC|s)v[p%*E$Ntq cJ bdQEQiH+C'%$g4(Hh:рћ5k-dM7߄3N9! 1 ;Л8 7/'55"PN`_~D$PCqл2$TR4--D -SD3UGdGUM0S~BKA17J^覻QG5B\⌺, (3[m[os@<sχ6]ue t7^y祷^½@=5t8`^F8a ×@zEln~z{IeG?}} __~/g& D* fπ[W6?ρ ad#04(?h3Dr#] ^JiP_ C 5$%tCЇ?b8D"шGDbD&6щOb8E*VъW$_l0Bp"D ]gwY!_`q 9ġ wc R 1YpB =# I=0s#G\"wd&5INvғ.ї ~QC28D HKHe.uK\q*n_B! Y ?F! e #BD6 'ؠٌ ƼPӚM)󌇔c1)@,όf_,A~]&9ҌTx@Fza`Ђ4aZjKVm]RP8+ uf* s kF$ISa('# iIMJS4ۋGA*RQP^OVu[T CʈA>hZ)K%4`A:Wn8iPcTB*:X>A(WmAq"M,PWB =*ahWj_X0%ble;[ֶmnXַnp ZGίQ.FbKޖpj--1XRvw AH ;,**w+M[6Q``AV3-D|a1߽:6f~KVw(/} X2gt-2wqEC=h λACs'gn8LTJ!/Wv{̌C9r'GyV^W/ye>s7ǹuk׆m߯@Dq(bJ6%b])LøĶmȀ;r \ZTnw{xG46īoaCYXZܽy{Í;z҂xz/!S|3Dnt}E?zҗG}Uzַ}e?{[yx[W~?|maھ!` pDɎlCʶ/$3z}l0, 0wa7 8+8pe[<2!a*!KC@d@ 8?r: c8?<ڼұA9ڽ :%:fHt뢣 ?5y:\ax2%/©9xl:[m%n/so9l6;dT) +;;wKBb@rCCDDEܫ fpDI|J$9=Dǃ/AQ$\]^AYDcD 9Xdjh B,@;@XC]a)x E[(4%Xt+XCpDW¸>eVQ%o(0C0eZ#)hD,;ū*=/BD #0| EG9GWС;)fh9ρhaɞŠJջI =,;ʥ=|YQ$T=꟫Lƭ,P8[QlFXzF4rBV&8hLoG]:{aa ?).yC9z=ǦG0&zI4r8ɔ<.h9tLL,M ;@<%$͈QdLԺ+pYLEiJKlsNtJdNI\N儆kAӫN-G=Nx"$Db|"$>T؁Dʯ KB Ng|:go|(o@KX>LL]2DaCmX(Cr 9QDLXQ!E,&['@xI3apr,)iP3͉/zM+R<;\zŚWLQ{

^1IUT팇%TkXMY|Ny_? ^>}߽3ŇJ0eE^N$hX^IeC%_!ͩHeɥTa6`=SaDU?aB y! ]{B!,T6 `MXB&Lb\ap6`5a}6V{4[*2Ԯu5&,h3>~#u&Fɂh 9^2XnW*Z3j7cn40tc 1c=\EV-k-[JIdAeNI^|0TOS~T=Zgx|V.T6AE=fT_Y54杄X_`eSS_NVnnS^FKX>MT[NRWe=n6gfs={StGXce\XYjF߆^eiIq^`u[J_Ȇ ZaNIvR8?TnaNTQ3`a9"k3k2%M H 2QŕQT嫕K~i pMad&&?FZ=Mo8ojv63,g ѬbvԶWU\7z/q'@=M@J,;ͻ3B&o 7N,;fb+#GW؟uE>qvUl!' mNFXPԖm m|Umv.eDn&BDmI^nt< ;sFJ-K^RtZtt@7_|fsGO^!胴JU& ֐PA@kppp\eӱhKpόFMZ\mbg#VjCժ V$-q8Urf,̆ M8# Xk[jr O,l1OL.xH}_35,C+oj7j8ҦȱsXW B0WꗃO;oI;ޏXmə2I˩Sx=9S8(x*<@#\oÉ X./@fȱ$ċ"?{aJ&a*7r#̘'arhÎ`C Qć0 &XH6g_Rđ+-%ir &hIq_R\"+؃ra* (lQHZrH\NHx\f t$>8c \eЕN%EQ&qG_S/)DfP$Yl"ePO yOrFĦOTZcS*U RzrљpҥP'4l[p)g^+``SsTl;qs0tI_zgD+A6Ð(VQ` v]F$M<DŽ(=H3P-5a|RAȃtͅ$%iKӪ5&hWL?)0&pXF|Qu4iBE8~Cj7#[L xFtWHM:Lw ٸ$VIWG$r#;t)r<>J;]޷*Bλar+|&S b~Ez@WK5L$!j?8! l0נ9SxwU0'^R0s/852OsAFpiЌX`Z!ɡIE@# (CD{ @: OωǢRHM4yJc*әn+MU*'.>)P}ҠF%v'QOzk'KWS*VUp1Y' a6e3~vT־65h>X!#hkL #^ ua pϐ3_W~Edkh^:\=Nieak^5 l΀ w`kA8D' E&?9S򕳼.9c.Ӽ69s2 F?:ғ3(3B.D36pF`8\)8 :r ;wƳ3,<=ˬv^J֮ {S|f/3<#/S<3s|tГ6<9̠66®ӾY{_/TߑGZ䭉|U 0E`)9ֿ>s>/??ӯ?/~O{K~)*> ^5 FN V^ f>R6] \`I[ ^%B ֠  ` }`RZ ߥ ]ձ`q`3^!fn!v~!!!!!ơ!6Z7!a* !`3<"$F$N"%V%^"&f&n"'v'~"(("))"**"+fb#V IA*4-".."//"00#11#2&2.#363>#4F#1`b!"6f6n#7v7~#88#99#:c+">7" #<#=֣=#>>cȱ;c!#?$AA$B&B;V7|D2V@F$EVE^$FfFn$GvG~$HH$IdE6<$]$#Z38C$*IJΤM$NN$OO$P%E{4=CLdNNP>%TFTN%UVU^%V 5C΅047qڡ٤SƋG(F%\Ӌd%UUeF%c%H%E%U&P&V& %MRex%dr̥\`fjdZF< XfnA4qf\f&]rEL$ I&k`/ HڦkfM/@f.i\Bdt&,)fRkxX&>e/A@*lub'4 g.9gkt~vrgunrnfsyzyG{niRd~.wr~H)sVv\dCXe* @]XgQEh|%R:if)!k^dGhYgwOm(j/~dl',x"'nR\vz'^gf'>vjs)'fBB~iB),H)Pikii_n遴)(jiv'~(HixDn&f@\87XhƁh%@!ZiZg(>iRF **Xio5)kBBfҪ⪛p")j>hh)dꫦ)E ^mkp*VfjvgŴ+j,+f뱢k~k쀙V+ų%k\+jRWZ\`jd^(@*8CXjCrf6}&AS*)]vix\Ȧ,hRȢ,x\rq4Xf}Z⡳,kD’kBi,zkmn,ǖ*-\--"ʭ\P-knҬnɆڲ,kv+nnf-Z-,*--6nܪr7L-f&..n nmҞrm6Fjnn.**,_1l&3dހȁo@]6HNJH Cf0-fp# `@Ư0,>@byC!h+DnZj$p G ϰ!i0<0'$<  CH0W1mp _p0J10p0KqfCGg00c00 q;Cog2p 7p*ix0W #q+"T#p%+ s1*%(_ 1s/ sl[''H( C' ?!"r˱$1,+A3rr{)r12i*gqCsk2'-$'H+Or,>@ӯ3|pm%xR6 2;/7&k`hKb7 4Fgf7kB4(Kp{l7S:+ HI0sqV0!2G#6Mq3os<44N1CJtJt\7+tO/A&DqSt){|t4rJ R+{rB SpQ3 W'4NgPwuCCX+.ATOuU5/C0`oUt&tPqK wb]KuMMwUQuNOor[v:vY6VC[$@A dCouN3(1.;4D*p&_ugpTCQst.YAs,v+pج80tK3u tp.7b6}kXw,wP~GwytJz/[7uw7mgS2V1c7pxL2C[Bz뵀5TH7eu]w_x|s0{8.3pGk÷UOx,ox?kqDvƳtw%wvSr[6G 7y2jo9kmv߳0v3~m٥4Mss~vsst"wQ2ws x5[yw4_?}a8$78?g'(:8xqky4]pEv.sǯw8kpں}kvrtrws:k4N]/xVWzJ7 ZKu_W{pIçVҺ;A1Pt[xsN3:o;g퇯sK/s6L0@S(p7:9م&p\͖$7Ŀoŋȯ #&OG#Asv}:>  oȼAfow >=ٓ{xP<9@6`-JF Р@ "|0"Ń/X*,5$kÉ'E[$i )|"O>Q:h͛sqTX1ubɘTr@9WWVqbL 4kމ3nMR0J xB8GIe' y#YfGv#tRTĹ7kaVcTeo߽6-U_G2ۖ/1&"^ ~`o`GZH {u/O#\7"ܸj 3 ?.t)ޘP 7aL+jɶOdн :r@ZQb:iƱ3*M ʔTUR2cH6^uVXvj~HO=L? tӁ 5 Dy~4埅衉.裑.:n駡Z|aݩZꥵٛ[)k^>.EN`Oܪm;Oz!\rr+_\=e3(/?{I/QO]YtsgztAoq]y)DϬO^o硏^驯^_/Owoh__@4@. t!A N}`>0A nAB%4 QB-t aCΐ5 qC=a-اE4D%.MtE$Q2RE-n]F RQe4јF5ml#G9ΑuE8摏}HAq4!HE.',d#!IIN#-IMn$ 1IQ4eCAt+aKYΒ-qK]/La41Le.t3LѴ5Mmn7Nqٜrt;OyΓ99'Dړ?PU>aB. uC!QD1Qn?+z~%5IQR2*5 Δ5]i2MWTEeKxјj2 ;RMi<Sn]jGP,ժ4}1:ZF3LJJ{aXb#S̾Ғ=%[N.guؗМ,7ʿVka[ϊLeiV2[iYJenaIV 1`wKSF%l]kcY՝NWUeyU`ΒȵxkJ6Ur ߙRkM]{W7euU4o[V򪷦ȍi(rJ2npQbG#kapi Ƴl{[_ϴ1p ]͝Y OUUIZ@F/+ /;4 2L7n&3%c+}f&e=ǽSJڒ3 V ϷUp/-ӝ.bAVjgiHRurZhVZ[u-o{O׽>h)&n[YbJn5}TVt}mmS90噡Bz]%V.k{w=jb:2g=iY9v%-ޚ!q؛4.fc3;,kk:ǵs[[\-w9b).x٭y pVdԊݛ* oMkG.K!ǘi*k8S/rd/]7cGmwQtY2ج]m·nVxeU0ݟUKwo*/{a !i߯iNCuMCϛ7 |&uK٭^1uWLӼ;V+p7x/WO՗&-zog)][W~џş_w~Ͽg'pO)p 0pG0E (-105p9=A0EpIM7PU p]0)9hH p0upy}0@/)\hP@ ዜA p 1`!`0  Ѝ0۰p`HhT` P0qo\ EAhH=шqeH7 s0ޡgM@azc\vqJHoJ]haq(1kQfrV1` q1wQf!1ц1Ahieױq(2q1!M(3HPP%2q2%3h#}#Q%1#7ڑ07 $EN%P&5!5/!ur(G"QiQq1#")A q(qR``҃Q2+[b$S)Y"('5 v1[8,(`}}C/?21A('2ha1*9r Rq/22*,E+Q3h3Ih-"Wq#R2o.5's&].a RB8/78s 1q":=)#}#4S%:4U5hY47+Qq7Ra:!"iR%)2S36;!򳃌38>0{q9 C@T:3F YHQ\2653C'?2ݒDQ+3%&+JmՅf4$C:T{0Y5:sH]9tH9Ap;##%aB'W2qr_UB2"AV4^뒃JO'{#&4/sH]7^VudרaMvD6e=d]P6fsbŨeiv4gify7(bYgfh9:i6jvjjj6!RvkPlm ,vmٶmm6nvn!~h6voSmPwp Wppooqq!7r%wr1Pq(q-7s51ws=ssAwtIEtQ7utUu]Xuewv!)vivqWl7wywhw}7xrvxx xwyWy7zxzxWzw{y{77|ɷ|/ 7}շw}{}zw~y~xwwvx u txxs%o#x-Xi+5f3x=xd;E8TCxMHKU:Sx]([excxmkusx} { xXXxxxؔxXxx8y8!x8嘏x؍x8Yy ,"!9%y)-195y9=A9EyIMQ9UyY]a9e8G<`y}9y9y9y9y9yly 9yٹ9y鹞9y:z :zٜ %z)-1:5z9=A:EzIMQ:UzY]a:ezim5: ;PKGkSSPKfUIOEBPS/graphics/ccapp014.gifhGIF89as}򿿿@@@fyyy??3???쵵ױ>>>;;; sss000vvvPPPpppސ```<<< ߲￯JJJooo//&666__L&&&ϥ,,,XXXۏrgggooY///ᔔ:::999777ӏՅOO?___555uuuOOO rrriii É]]]lllbbbwww}}}mmm'''NNNŊfff444SSS{{{kkk888!!!+++dddtttnnn\\\---CCCMMMRRR333AAAɘZZZTTTYYY~~~Ă***BBBKKK[[[222ccc!,s} H*\ȰÇ#JHŋ3jȱǏ CIɓ(SD@(I͛8K 1 H`b@r*]ʴӒ4 Ta 20 ӯ`ỀQ@,Sv`]K](bI{È xq"  5˘^XAbىgMJ# E +M6mNŅ &%p2eȓ+?h?>`ʼn (h׾Oӫ_Ͼdf_e1ˀ2 LOBQ* -c BEgX!y .E(TC de\h@+@XL РbP| v%c䑎 0J+DU pcK7( dBA egf%l*ւ4#9)g O9 s&Cj.D؉ #Ac.2 ڵ&턤#0 cꩨ|E Jđ@ÚUYRP`kn4LnaZ*LfAf,|0Fye`n(v8l 3,#N6/κnF&n+ڲ g gUOXEYHT[ ng OL0c<IŇn<(w*rH'* T$AGTP@ Jg(aR}SvUS-6)m2#l ^eH|eBjk[u#$)$Sp-0F_bG"ÂrN@I5pӺ6da*6Eoifkѡ|`aN(8O޽.lC]DHI앿?@2~65dܯjTW ~CںG'I#h "4C' @9 Pb?G$6ےn~4BGYٷN |@(E3GʈG4@K߸fӪӬJx-nS y&t#-Õ ʲ{T`a숴- @võ(/21hJba\ >2?rwIxH{e 2F0N0jLpi,<' L'$ LhP,Xq! 08qH0DLQZ0.$>niUJJWRFtl (#e4$ I a늁 j\ Q@t iqSdx;U y, XͪV$rbL`,զQ\2,PTYpݪW!* D2ΠjꏐKBYZ zk\'H+׾δ+rhGKڦ.֡Xc9*buRlg &òY5t6}iK9%Mm&^ϵX R[VX-7up"%\4vj5SAWԵ-n-rp 67Q2F&d_22{+ ܡ Uh-H4d`]jH &0! "aGq! G!x 0 6nWo7r jط3C.;fH^'܌b Qd=PO12( N."S9.аIp \ qB=f*0 tD=9zF Б"\6 4/g $= bĆ/Xg,#HHطCr~NDӛNל/ԛLc8ɘO@CM&7!@ #e9j- 1(ِi Fȶ /e9"ӂwZY0o|z(ʫKW:HvA"PBe q;|J`QƉԧNK uq{[ -,(L8Ʒ]|H #yGzcà@&B*O|q|"d3('O[ϼ7{Mq|'ԣ5u@Qd'Oo20ي"B%` dT@` TE (q[IϾ{P{29#2O/?DূYJh6JpW8 PFF tʻ0驉a˹pˬqf!sjצEl*j$ j}Z;wȏ _'Yk1_ +K{${s8P2ؗ:~5xfoxwy׋}w dm!B+ԙFŻ+'|W<ZHb7d1 @5 (p)xEwL' z˺滏G+ň;TW̞![\<Ţثۦ+2:0kwzg#iX]B'1h2ʠ@PO\Ю~L@@0@9Wˌ~L@POsl>\13n賞È~V軮~^.Q P~؞ھ>nun|Ptx u 6#x.Nxܺ鿮.?_d^mZ$_&Ooܓۧ)P68:<>@<0 4_ 2quAJ>POUYfU(HLd].0cjbx?э_ ne+?^}Z][NC ?.n.A9 S8KOw\>Y|oq$?_ ?AM *r0⿵@y Þ^GO"$2P @ 0HPA .<(?$NXE4nG!E$YI)Udْ$dRI&a38hЀ dڴÈNUYn5$&j9C Xu %qe A=T !Cj"dJjYd5ŕ@Se Xe$FǜNAA =(D L*"sTRKO1,4Upc M4iM(.1D)X *{CyB@ .\PTH`c f$bf@ x]v1 Ivia!t︃?E IđN0$b!-2xd8-jv pb̾Hcp(B2kr h-@o3‰r"i8*hZs؟ ;PK %PKfUIOEBPS/graphics/qcatwiz1.gifdyGIF89aڣ֝ĻLLJ达冦׉#Y!nJt0bzzv|nu```ӵع330dūϝ3{ [yjjjRRTHdTr:VttorߓAA>bsQjbd[$?쩵߻ϛ\\Yyգ񶶤llֵmncTսRlӣͻQSH1>`۝IJXXS k!wo^^_{"P>ZErƝ_ᝯ=kOO1KBGF)Ŕ䨨2˝$$#n␲ߧ1Nȝȵ[ߋ֒{6R,*GҜl]0#Pq" ܟYYɸhS?//STUT돮͙C`֤ookѷ͝׸ⷷǿzlnOONӣl˙QYyhh`fffp/,rǗLj1c!, B*\ȰÇ#JHŋ3jȱǏ CVȴ<R\re(aʜI͛8o6ɳg@ylѣH*]ʴӧO#թWjʵׯ`ÊKjyQ窭pߚkKݻx˷߿LÈ+^̸c&NLrdɖ3k̹|&S'2ЧOPװc˞M۩'ֽ{$ݿ}Nȓ mW0"F קOϤӟ${ǂ45V` 63FC0f>ab#hb(9Ѐ" 0(1&b8HB<$I$đH&$'L6.O"TAd}de`)f }bhlGpʜt̝wz|Yɟ*ZIkƢ6\D*餔J B dɦr駠fzI^ jbj7䤕+zL92[뮼+ݰ‚gޑ޲מ|ʇg 8 &r~Xb()(9c? oJdLNITjP0`@ lBppiqx.ӧZ (\4Z\\j0Ǭ ,k\bşq Ι]h*F󁂮:4vǝ";]y)yYG^}Շ_,~e}"2Hm[K>&.Ϋ8 hoF.Hr\s% Nq8pg%wL衇<퐢\i)z*˧^Ro|*A>bG3`J3>`sP<ǫ T ,pEJߐ:4 ]Rkh5g<C# 1 A,` ^ v:"uAxn`Crn:B<ԡ.3&C Px.N]#Qx8ĭhqw{I.g&BsV <%,t #J'ӱ)uc]P1.d#P2>QwXK4L$"1+\#$% |k?P@0 tXD5aitF@Е,{W.vK&TWyF?2jV@.@:`8f?qϳӞ"FaYC:(b1U Fͭ)VEtgmn.C!o2Y$ɫqQhQ~e F2r Lg]F'6QuqcdGAv#wDBᏢ1@#c0+&Ndd@vrĠZ`wx.2Al,"~p (!B B8bDa#3 Y,A0,\PV "Gg5>fo g`(8@C,fQ!!a,:@ 1LA0 ,ZVs @uxD! Q  S  ĉ&R|}eHL"*&RJذ2t/}bjiO#я=|rG5jRu`#>FPL `F 0 a%_tc3(:щqd؄h׌P BQp EB ,j8?1=T@&0Da4B/@AC(Zh4BosA1Xdb`۞? iP4B"@zBwk#\PPmD.pq>!]Q'jadaTTԑ*<_r";zN$NJOtjiZSTdyTKF_꧚ԏd*UQjMVA3x<B5VS5j*O wbd6s+;P.#`uAEv:݈?D@B FGhk?p^ t. 1},1d01eFw#@fcPfL4I55ANNNN R {tOwc s7E7ePC;CR.oii}3HgRaRp(0w:p~.FSWc"WC)>v   " P&jڨ(`.ZZfr ( ҠҰH]??95v0 i@d]M[5I6Tq--Z7 B7u b!YC}!#"Do6aE/vC0 G~^R~ǗjB)fcGSS3HGH;pp`ک p Irձ?N5܁LIj5LQ6!#-k3\*7_*.|c}#Di*"9 m"n8$'Reqit&FF:Sc* (&*  VypE:;@tkkZ`{{Z۱"Z@%{.`$-2;4[6[G9 w:˳G@?G@A[LHJL۴N+P T[VWX Xk|e`bkY|hh+YK Yn۶n[r;t[er;X5X[ { ]@{۸+ +{+ 1ع+;i/J䰻ۻ/ڻ뻮+K;Ǜλ([;؋۽;[雾۽싾ܻ( {k;;L <<\l /L` P0p .02\6|8:<>BZ\H|Lb* p-ǀȂ<Ȅ\Ȇ|ȈȊȌȎȐɒ<ɔ\ɖdI ɜɞpJ7t+ٞL/= PӒ # s;M,ڝ `㒠i0i-'p J ]^T 5ԇ (wPpnpp?tR7A ;R̰N1׃ @ ;1 A`#.1#;0#p>N4_*/~ θ` I:M A ?Jl ? ܮ0 T`P p; o>7P ^ AQ0-?,oߙ `x0lXOP70l7.0# F-J/W`#5V>pA5?#'0\U_~y0AW@:!xWc'C$NjyP\{.P{pAc, "DžQY#ȆxTKOA%ZQI.eڔh2Z35BBbpZ56 @ibEE> uժ萠Z t0zjd0<_y=a  q3‹\Uc`(r1-ft[5| xbpPkQDTT>`WDSŏ'_1PZ1H 8v$^$r6ڶP 4&bH%JKeBL  Ay (aT a5N`&3$EH!oT S74rJ*)\YMFaF?b-TA+sΞNfM p OH#tRJ+,R-J@*PgRTSUuUV[ O=:u4AEkW^{W`vXb5XdUvYfuYhvZju֐\u۲F5`5\tUw]vu]xw^z^|w_~_ojcVxaރ( (b3xc;cCydK6dSVye[vecfjfs֙mX8T¬zh6hviisV=o~ YTWI(d@ӮHchzĥA zo>ZQ6Qq𢪱rOy铼 >$".ssF'PAz@ F%GwdAOd,j8cJI:Gs&hNk\AaPvīQEb9kpo!$jU + j IA~ŌaZAraȐ:`? 3t&0A9UC~ Pp6poz&QMF^m #=1bG1$C2@v<#8$ X69W@n DI!jHsHp N(*9cPT A`C9LP0R^娞*1 ۈ&5olb#$(dA -`gp bxG1 *s|6vL(X@! ݴcLE+p{(\'l~8' V60xC؁ADʇҊ\UG/\PPJ` h^E  eNtb9 $@P0ˣs)x lU̪&=Ρ y @ȅģuQnDȀ9)C X<1pTs:fqWW 6A^i> h֛A<'w DQ` 0 f`׭RV Prd/H@Kܔ$jr5`:qfJ5K'$ho8N;GX|1|@tP) 2h@ėNLbK@7`2dXIxAH:Xb ɹ r])b,BWCZ \a{83m45x75I4_Yq Xq]irAo@'<;4@$QVT`,d$)O5"ttaqM ­-x 0n jp! TdmD0csH}d 0lz:\Bji'1Ȍ wT0qHE 8q8O"蕐k =@  ‚3A+C @p u03H:†⠃ J@s<:#( # dC!jXLM! tr6FxAġe=x)؀Ȁ-%j0HԈ-\0WX0uX:OؚC4H̩ѧXAjЍn$w0Mr((8T{𾙋2:< s8:rx ?P%r&Ce ؁r8a ţC06xB2X2 20Os:(=%@ ʽ jux+d`{w =#@M@ZhD8{$ HY*W4kuX@-؀`WC:=(\idu@=x8OXHt`$@dH8B  s:x̉C4?jO X/UH> z< j( JyE8؁@?:+8 #, 0C$̃D*9 {@P<@Lf ̡pFF(.s.f؍u,I/>+[C8f B@l rPOOĀ$ͅz HX=8׋ Q!u@0C m$BUXi%z) TdTR (JWH$xrO8=dXB9;PcSP 8r:-"ԭ\ $ T݁{L]4Cu@/EOXu!jURPS"eOEXCU@qdDw j7)Ta-@DXua>Jt[HH998yE 4s:(9°j:2Z@E{8]鈝W[HQSq`kKCf`'q Y uPOx<%޼hs(ډx6ۣ4tP=S)_Ջd$Q(:̭\:ɩ&; e$! Q481bE_ӛSS_.=H=FNi1n:raXC.aa b!b".b#>b$Nb%^b&nb'~b(b!&X2b,b-b.bKM%2.c3>c4Nc5.nc7~c8c9c:c'^c0"lDNdE^dFndEMdJdKdLdMdNdOdPeQeR.eS>eTNeU>erh"GeYfIB6YF;S9)fc>fdNfZZs‰zfHkifjfkflfmfnfofpgqgrg88gtNg{kCPdxgyaƛycЄ +9D9II"onh~hhhhhhhhhif 0i8i>j(Hr7<."P#>p inj~jjjkkji&^'wxա@ZX2h\<f&gZ6 ԲmLH+jNl^lnl&v>t`PrА ̝2k-.A‰П@5Zb8>9:1辶!Hd/PfpmX^plmv)`hv)p.o=kjG"]MICOC^j^Y=!,pcT F<uS&Q?:n+[x-0nP+rqFq񩖁Hld6+؃=܀{xC v_h`~&7o2wuXV" "`7EL um.jW@(QM:3r%MXڋu8KWL 4u r8D @!Kw؂- $0G^o!*9 p0P anRln7*=ffg)ij"Iކ&h+PN{v'>"0>hQ&`vNK88lV,+ muoy"wW(vgwn9Ph ywO`5w'(p&dr&X>h 0z]?z2'vM(fmshUu PePC` | >ok$2-Ou8=0azpz XȤzDp,@M0 Y+;o[{0uH h=@8$ 8xHMż)jW@yxq '! p/0FW X=p ІsEa{ϲ.@8nԏĞ+ m7!ąs{q` yPvy,6m$pE`5 ]JS(tET& 0E n3Sp EȰ ,OY!-FMcE8(N "ch=Qt|XWda?@'qw``  [M &X;N5.pT pu!.wT Yա2r CopeU "q@0v4!N]\@@&эIL$d1lxlZK.Xvo Wi@*hQS+qOB0hKCF A0$!# p$ IBr@5>#\sl`sLLO|2s G 2Qpx1nmK/g$#0H ~Ԛ8F~hH`Q(\@xŀ4;ޱ+=, !tF?>ըF*R!X1HxӠ?H\ (xc|A$La9dDy2X 2c I×9_eZaC birXLV4q(&k(+[T0sT!18 ~04> x`\mL"m|X!7&?? p^Z&\>t㐑aa? ?,`i %?CQ;T1u haDs "DX p.~1d&)#36j8-pmR%$<%%ar](*2X!-H%d\'P, @&aXՐ'hC=$T0YbE3b6*$ISPv3O]G4709`w,Ч.1LFBWbAm]:%9| lL>61e3n6lh;֖vmms6=p{>1qK{F7-o7M!F}-p3 :Я6 b 0ps8;sLax&?9S򕳼.9c.Ӽ69s/.ˡPpB1qS@ġuh^z׿.eӮn;.ӽv;~;n];_ŏ=aP<3s䨽: Sֿ>s>/??ӯ_|0(??  &. 6> F"CT! $t~  Ơ ֠  @ҁ@!&.!6_A,D!I` 8~!!54A5?lXRva֡!>d N%O !!""&"a:j "^"&f&njCC b6r"**":hQj0)%"..! x]Ȁcb%"2&2.c'6`A$)2#6f6b50\51a!n9#:rbT;8b9#=֣=<2#?"%-E#B $B&B.$C6C>$DFDN$EVE^$FfFn$GvG~$HHr,4B^+J xCX<@@?ԤM$NN$OO$PP%QQ%R&R.%S6S>%T*%,A^ATVfeVzKb^,XX%YY%ZZ%[[%\ƥ\%]֥]%^^%_]Ne^ &a FW#^̤MZ4&X@P%P6fT2cdT$cBffvg~&hh&i2%``fa a Wb&Mflf@?`OZ)pfSB#fmzfi.'s6s>'tiEj&LdZ$cfA8A(fgNBz"'xgdc~&n}F''6tEuZ'vzeb>f48"gM^fMZ84&gRboZ}ޤcfq 8A}J&.cjh:&df}rh(R%j^u4jZDja^cB@Ъ6浮)4Br8(-+c:<)&+1(B0&A&p$n!#L)- ,ڀ"C*10:`:jɒ®h'֬,+Afv&-f>(B@qg &j(1 m BlBB@fmb¿ X&)0k>pCZ ,-`gq,v4Lk&hmR)BmzziNc)Mr *6)hj"L ׺Ƨ Bz jB&)TkZkn/Q.^lBfn&kB/!&`B*-dr&:NbV6柮!ínr)'dB.Ҥ:.n8gZB T}jjn?p.fh@מpv'' (ށ00o#n&/Vj~f%"mo*mcGb-2&?#*'nfeާvq|'p#&knVllD+-+jniŖ#$7fBnz Ԧ;ʒq:1`ByC2,q+,œ.º#"T31'j /L(zgxh> AB@',xA5_s{R)7gh6g0NB׆jxX6c)ނ 1qN@¦)L+9@A1.l)D D%fZ#DkF[Vthw檭ҩzEñ|qF7l'fGj2gN#P )u*BkLօbn(>>}(cBuTO!@1:{TX pX?[5h*&sC357q- )B?5`vu*CSq)mX dO2ޅ,`evg6hhm?L"whj6kk6lǶl6m׶m6nn6B`"\v^B0q7r'r/7s77stCsO7uWu_7vgvo7www7xx7ys)62ޣ{7|pǷ}7~pf}7|R8f27uf?8W9*x[ox2bxs8*Fx"z28x]ϸ8|e8Ox/9ː3xG9+6ARԀ_9go9sSH~*T!99ǹ99Z9 A9zW0'y C*N_:go:w::{:$Znw[APz:WyO::6X&8=9" lGO;W_;go;w_ $a8T;\4?4{9 #;N3iM2 MDH .W Ä3t%LR9 C.6vjX$T N`<$6Q/)zXDŽx`(u. ^X֩A&֙u* 'Wᰂ XGw0*9g0Gp 6@v LtT r=$Oځ,nHqyHr|DǓH +@؄uF@H.@ T'zrpz21T+D͵k#&)P(@4RDڤ>P1t@t\; HB{.sgmPuwXg]vmd`fmhU0p+Y8&($dp 5WQ]k`E`M8 G"Ut3i Q%U0H#63-` }^0Ŵ3,sS@Ǖ+c:\:j |Xw!AGi/Z6O]v;0WP>Zdp,cp ڝA)41Bd;Ⴐ,(4?Ap9.\u 2@}pE%EfN"X;R! Wҏ`>>"@A@2A @H2aL"P%P OOU")Np/zdoN"VAXP8K 2AO/Ǝk/V 0J   i`Q"pLB$d -N"$2B%8dfA- Vaگ@pOL0OqMb O kцoh !RT @!&V O M+p0PU0%(0.b Qb Qz@AN g!%Q1q &z8h{#2spq%t$@A,@*8V 1r~o$K@O%1%0%eWXbA E1A9+M39gpz)%-+ rj/cQ _)P0&@.2 UpS,M"0 @#S(0%$2_p7P!S)0E؏ d0-gE(R$@a'#{Jaqh%Y2q%l% UA6Sq2+$/$U" ISE*{+WA+1)p$8hڐ6SEl&o0fArJ@pO̐'K40b1?/ Qb8W@@{Y:q5Ypa؂A `Y3` `BٟomYے+O7 8ق җYٍy؛xt39 ?8LH]A%3@Sګڠڇy&@:N77zCpizI:Mڒx5m2 {ڱo'{K>}Yz|Z&W8H)z)7Wx6Rociam m 48 (}Zy9[p7רZZY Ax x~ym`` ۿx_;_ hڭ5zۮE[i!۰ 8 @XQ|W|YN\3{YA8ZM'* ?[Y'|ßwryٟ \ |ـL= @m Sb}exx3\X ]h7YAG|'|);qyx ZY5 l[b=ܚWMh?& Z'ãI1Y)7xܛτsAx/X} y,݇=ڸ-qYu9>pI^d& o1+^2IoHoY !ua#>u3W~^#~|tW~p>S~^1X|/+ol쇖뻖ikj~Ӟ쫠ُkXj뱶^﻾wvjky% "_'+/3_7;?C_E}_0aS_W[U]? &7,x ~__? @_E\!EBGWD__B <0… :|1ĉ+ZHO0z,q$K6-J U&1ښn`#;T Pl3k R|-\bU`$Zo5o}R sz%&Ԃ;t)kV!fEq@ J`0H Ѕ#pE!wFӌ+! P ,; PCւzRL܉ S;>7RJHW?;W0C*BG'u^%?CX쀀z. *5rl `" )`(U8`:9 @@-A-o0b#x'")ӵ$*S%v?%ap ǐr;@ @%ňj P+`]p<)' ] ZЉH"4  %Fwd!3qM A'@P*E "nO0*0.a inԪR,bUR@a|]!M&`ȅk5QM `0Ǘ̆`,%0/_; a)S PB I- U |A s]F x TǤ0>] QNm"|ZH@/H\Mo#4A8?`oQ!3[X1Et@47# J؄L )*݁ tHCR1)E&Jc]MXz-^{W~CCFC)-#2!KlA@@6AzW(UVˮ,Z=&s74^3 qNfB BzHC6,XPҬ kjvwLF1ΒGp@ ʠP.t: т5ziy|4(]%/+{@2P̵V1CT\9HoR%I$a 'ofPzRx5Y m]d)i A W `=x&j"MvB` PI!;'c:CI5zA;0;A'c1PS7SVE5U&["')9))$'9%L2%1#5YXƒ%'&<)g?+? "0y)+/9Lْҁ"[ҒQ 镞Bw$1K5_xxn!dP^8q)sIuiwyRl@  2H/5DհHP Ez)) '~ DE@>k;mp 2@f d+r` y4tQ80pzfBph7P[ʷ7 ]%Ia5DnGrT^VO SfVVmO@qsteWIEWA8XXXf)IeU XcRPAJo(MS)S}0EYMJ>{L# a7٩$aJp#aKD߶0 q0"lG>n8?;c?@h#+»TMiMd@p @2,J;AqspɮR4n>c=Ӫ1%.^!|t㾥ŵipP-b˿ :5uTt֦Z’{8jllvj@īvo#W.37p?q;ȡp7ɶ"ZP%c $IaLq4'xmCBվ@ɂť$%5 zQYlwEo̸Ь$QPpyps?ȁO ذ0Ӡ'z͔cz=zEX Gr{d7pzO[J#i`ޗ `C~ -5O}Vn~ O(r =Hc@}}y0bp @  e`MٕDp7 ljMQH XzЅ̶, +փk= Tuxû Wsxl#B!o:Y 3nSZK$>FC$(h=-y8D ];]ZuAP߿,̰Ћc}n ٵ )F!#y%X.c7392;?3 *2#Γ)229BkyDn3#=ηay%HY$]^ @DWO匙UnWY[N)0rxIǷѹVmĹo.sNunw)əe䋗 `臎艮.^n闎陮 ꥾V`u!.Nn뷎빮.rNɮ.~tLٮgnnbX.Nn欎o N />n!/#$)!_/1o-/2o7N!=??;@OEo.-}KMsN/SI/TYVZ_\cOao_i /komsO.uyw}AQO뇯/?}Ot?kcYON?F>6O+?ŏ#O ?ՏO:_/v&QD-^ĘQF=~RH%)6Mʕ U A&męSN=}%K.a,x0RM>UTC|s`ҚT~VX^fTLeݾW\gEJ^}jhּmFXbYݪdʕ-uhd×=gfvZjI%ukڵm~mm޽}#oō yq͝Mvsխ^xuݽ;.x//^׿o퇞~o/@1K -ؔso@,?0ҍ/ . ?&C$D6 A MdEP|]FF1qԱy1 42Tt2J2ԲK2L43TMt3N`Lij58䓱=?%PQBdTQIu@;#4SC+ K4TTH55եMTU_ UXgIVZo-OqTN!uWauuXcSevbgd[6[ZneVe%o\tyWuߕWlw!u}]^~M_QP`r68S;va x@f+֘O;`ANW]IcyhUvLce.s9K{gzh'6֢NriDiUG1j6yܭݯKzI6ǰMkOn[ вm3{pW_@Kc_uڏ0gם<{7w}5*W]N>Jwz}{8{M|W_>n㷑}|ՖXd>B~M8mS!?ID"An s@ǃ%PQ(?$t_T npK-{lĸD%"k╀psTd<,f@bE1>F461Ө@**\w#SqAt,5QB; Հd$cP{<@Wdwфj#j`Ef;:NV $My&Bx0 uPY m` KYSMbX e,ꠒ2Rr9'!NlN`Ӟ3grs;=j0PtH&RN(ҡhD%:QVԢhF5QvԣiHE:RԤ'EiJ3\ҥ/%e\MiNuSԧ?jP:TըGEjRT6թOjT:UVBV"3:VլgEkZպVխok\:Wծwk^jj|[Wְb51'PYNlf5YvֳmhE;ZҖִEmjUZjv0 L"lmoZַt\2 -%бυnt;]V׺nv]v׻ox;^"PP`WrAmu\׿BRs# qw? `-laƖc~ @!r<:\60 aWxH@hO ȇPr*c"t  =.po{>9_|.:J >3.ۻ+h3@sн f @z WC p8 k;=sL5)|H;>sj;;tD4TÉ۳14Їes6XA\x>=` A \Cx%|kr07x2+PWj m;"wSj QD#\XY̵6>CrbXc`M.+:qH{{Ed$d\qxTwT>KwPw?LhHs@{j P sI?sk5Z|G783F;)PF²-s;ss`tS$p\¥sF =@= qɘəɚɛɜɝɞɟʠʡ$ʗ3Jhɣ\ɣLȆP0P+w,ʮJoxDc,t)0˹˺˻˼˽˾˿$´"H99`K,tR̼lLx̶T4̻$(LC̾Z, jHBTdtdMC`s+٤ͶMC8MMk5khyTdtO,DA?cırX=@%5EUeuPX;PKMiydyPKfUIOEBPS/graphics/search02.gifGIF89a@RZk!)))9s999BBJRZZZcckkkkkscss{{BJ{ck!!!c!)1!9s!c!k)9B)11Z1Z1c1c1k99!99J99J9JR9Bc!BsJB!JBZJRJZcJRRZR!RcsRRZZ!)Z91Zccc)cc1c1cZcsc{ccckkckkcksskssss)sJsJskss{s{sssssssss1s{{!){R{sk{{Z{k)cc΄ΌR{ZZZk֜sRRc{{R1cck{)19JkkRsJ!cεƥJ!ks{s罌{9R!ƽΜΔ1Υk1BJ)ֵ֭֔֜֜֜֜9ֽ֥J޵cBR1c9kJ1{cs凜9kƜJ{֌ֵ19J֜s!,@grJӃ%(0Ç#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜ!C 7'(Nl*pA RXBPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKnYxe,M8ܐT)Ӧy+^̸ǐ#KL˘3k̹ϠCMӨS^͘ðcNA Ameqa Nȓ+_μУKNسkνO >XG'O|Ͽ(h I6%hN u HMwfv :B(xo"(4h8xE7@ (HHCF&W /\v`)dihlp)tix橧;qE?*h7j衆€ \P:((NpE=Χ#*8ߔjꩧfL;W b!i뭸뮼+pF †W4ID+mހ 0d,2lӆ[NpO9cN9*o8fI7*+D,l'|h~l h˰{+1łZ䤻. )֚8~h c r < Fq2LZ $!e(CG/ {{4]z!8!%gM' HiJ\"PAcݢ\ /pX@}e\ɕM  [)8OxG6 iM r߫MI QۼG7pJI,aQGd:Q% i8tWGVRWMf~ @S'UV5>r CZ/"ӟk~YUH]r{$UHآa}T)yn+mЎ6|4yIef -c^hmsYkXb7g֙~ml0>4>{{x =hH,p S*\~!&t]H'hQftb{\/d [~XC\rtD4^,S?T`HlA?І٘f[|fYOl[_APJpx|bK߶d򏞭UAC]}eX>:m\q٥XA[VQ ԏ};Cdv4r|Kr!.OO t7| ጤKfs7in=Axg-f#ƽd"e  Vaq]ʳ{"4s]e76*\LM2dt(umI/e)N'{f uFu p=o `AATO v@|~pP\9yG& 4B.JôO[wd}}^O0\7 hXb3t€05O悀IMh耰wkX70ISwN{SZ=v`AbF@d\ AVXG Hub` J5 4QU;DK J8KaL8(c'2%f=-Rqzj(ntHRIy8N: ̐={ `0 TP PP *h\FoU0 $G" qc}jFy ~ 7j) mw$xՊȓ(#B9DYFٍ?ކ$EW#zphS8*U h<D*$00Y?/f*6:#g4#>&x)$sA2^)ٗIdX% AԨ}%) $2GGҗ4  $iBb&(N2)?#i){yOYI(ĕ?B` pq1Uh^g>u<AWEq|>2L9Ef9L8x"V Yo# ~`Qg6[x@y9( >FiH>2!WI>p)IF ُ0aO"J/XH@Fa&F/"ʤw)0Z_:FadjS Z?JZJsV*Xz|ڧA0PI"* iV"*:0ߐ S4ZK,ҏN᧢:Zz.eRrƨmf1 倜\Y*;UP͹Щ>屬ڬ:J7"j/ŭ)୹ * F?*ʣZzگ͚1(=szFr![)mk b8ΰZZ ";$[&{( 2`&02;1O1.K<;68 PFk J дN; :fXZ\۵^q` f{f"@(!drkj{lknW0 ; [K*R{U+`[:[ :*$ݰ$ $[$$S[8Q!Aۺ`F ;"&;׻;[{țʻۼ;[{؛ ۽;[{蛾껾۾K[{ۿ<\| <\|((`.I "<$\&|(*,.02<4\'< >@@ jf=w d]{9pzhą-5=uՌح ֵ,Ml bJpM3M }]iÖ n=>v}Ѥ]ĩ -PіJ bgmۿMn̖mΛ IۨM<]H<m }Rݬ mv#˝]ܳߢÔ¬-m{ ׄǜg- N\?t}O #}!nO Spm ?L+׺  )~9ѹ`l..,P>F">̣}`Ȑ Βhú= }۸}Ӝ؃ A GsN朝ϕd-#O~<χnޗ͔ A} KiN}"}Oϛ渞v<"mk~Ĭ ~: l X޻> \RӉ Ō6 ھ \O` N ĭ>qLоӞIkM촞j~OǼ>ٵ~=Do՝Ӛ.~ʾ ᅠ~2 W Nv~Fm!@m X` MnP13nՉm S ,Pk-7/W.!p}ͮ}H:>8}oϝGMkONև>jprOamsM}}NЭ m hLlmuN>^MS瑞ڊ>:؂/۵ Btf M>|IX"F RH%MDRJ-]SL5mDG@@1^XC5B1!v5-b0U HP1^׭*s][lkO2TSչ"[wnT}%QUf4l,lª).x)ݿ%|kYp&&lqe層>.N޽}\pŁЇh<,1w}!5qFBo-WjO{vG厽-`GXP0#e<䉯Hl:?,Afc?H»2O,t=o7;4$3Fo1GwQ%z)(q91I%dI'kI)J+Q9!*H2L1$LD3M5$3 nDnN8>lOIA3P%>B4RI{ss!EsRM7SO?5T*+ݒLEE5UUWeUW$9S/}V[o5W]w-)VZ!:Wa%XcuXe٢6ZiZk6[m[o7\q%\sE7]ue]w߅7^y}^{^}_8`&`F8afa8b'b/8c7XcDvR~EdOF9eC87I>gfoK)X:hQg-eYffi&j4呟:k1di%Pi%:ZY;nNVA&'lD@d!<m1U:%Ư!7% f$!Ybmb#!ɒLdъDJŨwC,cI6/|эdGDt _8~;cj ցG\[R:%21!au/X*WWre.w_sƠΪ0--wN ]5|ر1 a8ƃqfջu,tX!WaY6@t=S?``cK7?xZg*!0n?g)c<@jc@hI6Ρ$L< )ݣ]w>/жN*A+2 -#{({䓼勅J=*kVp : j!A @@+0*`4}SϚX9삁 ӻ;Cn$C0b. !*ظT@@2uZ@I 샎ۼHJDhV-OT@düX2_$B|aL*CF%6d4F0{f$F,Fȏ@LiGGfI\B>q=\R2$)Hk.h) ?lcMCnHٌ)anPB}NKdK2H8DՀnHԵ4ǯ؂BnJHRSKN%TKTKH MDXZ}VFkFW`Ug}T`TOD+T2a}be,cEVa`P,gFZ]]k\UZbyGvUn\u1} 5|1 T ]XfQxLXPX저G2xe'S@U@LQ=naQpL?_>جєS!S#͜d0j*ӦS=5R?mS:.0fiۂ!9)UeˡA@3aS>\=!0L)SS!ALACdLPϬ"^T[-wxX}bd \TsN@u\K\m\sFѝTT]e\z\\-]L o%Fʅw(\*]m],IP^^e\H^ Vu^rl\um]^\^Tr~!8GXgAV}lX"XULP%ѐـ-Z!ɄwₓwE7@ȒYcMM}֤F;SS%R*@0a?SEЁCp۷U[$@`+% u05M:˼|KkS*bCy3\M'b @M+ םU /49C@Pϩ! R<!AM&iEi6eٹ3?"z?@FAH.ec_,3I%ªne^fWN;H~KeƎXkTDkT%6Fed9idb[kf,mV_NƾFJ]jSU~*Kmdϱϩ,B! xIIc#gLp4p5ƞIv2ܼn R;.@uȹWLh~!K?;CH,}dY2ܩ>x3pQcFNN$0T?HOK8WMcHSBruX9d ^Eug[* -wkŲdtl7?P'w`^ `[F]Qʅ^lojrl{/a}ul",^nlȥjqƽ]Ɩ^u7PNS7`mmhI:m>s=gwVRK #=<쫤3*5<# UM_kՔ4j QR)wc өAtjDS͓]zl[z5CXeGœL`b7 ӵ Тppl[mW[f|ZhflOƏ/f ^U>P-|bn_З,h4}de]Nwk?xQG`-g ׆8gLy?yQߣ0y%ۨ$;bE30@$F MQ h!a1͙T2t!9u'{unMٷXtqK&xh;7l]]o=hP}y5jF%l dP(Q+s(JK*8 jK(B`hKTxc,~Q&-P&$U  ~]ǐLRa/HQIPH  "gHE AԐI;M?C fI'TEwĦ5ĔRr)hFyihC~R8ȑU)~=P2#\xS /l:ªlxX5lǂkR[jޚ=0°:2kz1Bbㅇ҂j./+~)&.Kr+Ta^|&#*k {+2%{*˸{3ьǀjT!n"vs|bE!+Ԧz HJ<IRE,I2BhMŒ %@y d"H:,ZE|Py~!~jy۷9~0 }TBNBB"%K1)p9F6!!QE3 $HA ) <\DT ot"8:ur!Xnzv+_/0b(<*NLXDk{Q\-rF ؑHl8Nb#` n TU!#n|[귐YX$VaTAP"Dԇ :!3q3G~@#p%0h R!Ah*4bn_Xm~T8Rץ/ oCx֡:H*>:⑏$$A ))L@D3dHWB/)dJS]V*<*Rԥ2N}*T*U#Vխr^OzyES/f!W_1se!YMz 'pѓhĐ!r|blC5Dj03~0#, K0ԣiP;XK&f9HR}~HSPqp/s&>1,!F>2%3N~2,)SVf_j9$O|odELb  .ӹΚⲝ=~3m Z`.6QͬY3XΩMsӞ4COЇs(loIWԶ2]׾5-a>6e3~6-iS־6jLt6-oY#fa}x~7P!yӻ7}7.?838s C.3s8C.򑓼&?9S򕳼.9c.󙛜e7" >9Ѓ.F?:ғCR7$ȨKV:ֳsNzAf?;Ӯ]oc.ӽv;h=L:y?<3^mGۇ!6|3s|.ynt;}Gr,,L(Fyx^oI._wqtN'ˇ觮ɗa, E^},~X}#CJPhE.ğY^+CQ%<ӟ#Yeو.PKyӌ_xv Jr`P_Oi`|`E`F J z *E ` mŌԔ M@AH "T$!5aYF_+FH%*aT_ ڈ !"GK_h.`bFBn vC!R_'#a` !("%.%I**z)"(&bP_.Ρ!jb$!,*bGTzA TF$C7la JB&Āy89bD, @!Y"& Aa3v. !@#2a1<ҙ2c,D1cLq!c&.d>r DJDF|.RK$Ud"A0dLƣ@6$A$MK dNޕI5J_F`qATٴB2 aNMy ĂWJȁ,!S}VtC;V$$X GxW僄V*&`]B!r!d3B"Ld@&\Vݥ\6 2Q:JTPeab&P bK ajfhzxA#ʂ Ehz] ,FHfajvCbnVfV歴&kv*&l%G"gWʥgvibalfmv d%fsrs_&ƥffv\r&tD }fDxuef BV"P'2Fh: #.id|K#RVRY@$2$=p!GT&hL 0|_LD 0CC(0,`椌(}j(j0;[u"!ƨ@Tٌ(V(?hڨ E锶Ė򨎊@|B0 &$Cq)z0 ”D Хh>(. j ))hFjҧF*iީ*>*lƒ$B*ßN*}Fjiҩcjjnj~Ҫ>ȯjj,B⨎(J?)@H).+k6*N뺺+,bk&+zj,Ȫ붦)^h`C0X2ԯ!dByIƬhƄȦDac7DV,*f6*jAf"H*2,,jNnٶA)j썞*&jB%(ۺ-m~_>kJ@ĭ̊i.䦭)f,ٞ@kNmՊ.-nRނ*:-v&jzj.B)&JmmE&*&,q [qLe!hF0+hB -vj@lL,?pzj0 b %i[+PoLகB/;̞.*0nloki;.m {HR.n '0ޚO 6pA-0n.B.1kpi%\/V1/OzO,K-h0 (*(*詷 j B cwq{zz,"0\%6zQ,F/6j#XҞrijhβv;2p)  @*2$C `i"H3+2^q+i+Gf*2(ݰ3Ǝ.i 8ӯ/n&02O97#ϱco9k6?[>3s:3³A#m*7@+. 3642BB_^dA' 0,BD0J[s1kvs˂ 37' t/4JHZ2qo& E\P)p"/UK2Ϯ;-hUK$Y[uYc5Z_5.+Z"&8if&5`u6#k Mǯ[i^:*_5^OhVudv[]@Tv2gLtiS^D4Y*|btOv2DŽkh6*g6g6\vl@6EhlnaGbB""Tuj7es;g6B"[lwoKwhJ#5C+O^RRoS/DA  ,ik+;x!(l[i+8WF88/sGO4^wfĈ1x@xkiCmh85'3),3#u?9x?8cOpCj9iysi<yw9+9t Doyw8,k90{_61k9!p,,2x8Fo9^9ykcyfu Io~#5'CHDH1(+opz:ҸpijcjG_:+,66s7:{.{c"6z*0LyٹCi_;k;^+繡,4{Oc{y9;|#{O|Rc'C.8wxF+| r4Ϳ{Y;87@<<{;ϻxCk<ΩV븢y@rW<$Ǵ` œ+7!L?v}zٽǽ}>#(ާ?sA;#D8>1KW~*'@;hs>gz+W~} @ 60d$aÆ !F8bE-fԸcGA9R8JHTeK/aƤH#7q\iN$@8` 붔a"TWfUSkW_B,gZ"PD"XGu杺Vo_xqǑ'WysϡG>zuױ{w?|yѧW}{Ǘ?~}׿ P@J,{LPl!P ) 1P 9A QI,QLQYlE liqQy RHc|m#LR%l'R:՟ga,m¥e]R6Tԯp!\wFې4q`GuPIq)/Q\dIGEdAڒMna=vR.YwPIkC=~iQ=oԡ^zU|wIMe?Mzxk]S]UQvieFd"_6*/y%{h&*x<O>w$cA5~&S@BV/t+]Ov gPvwslh2OktDqPa'La&VLoO P 73PmtiW 2w ;'!N@b~:{pt#!I+9"! ?5,pT|RiTλdS}st+a)Iޣ!b*)::4*{̣-;Y0Z2t&gYReb2s9č1T ̾V:$3љNFӉkd)1l. eJ]Ҙ',yNuc'@Jxhyig#TG#wd2V$ yQkL*;sTfD3O O&rv$#Z)r;WPq\.j洩<%)P֛ ʆLwS$ְw֩ܣ)W]Ae T}Ⱥф4k*'O*͒g(aKn2kOY.,;Ŭ?MTwQ >drS]axe󳛵mYn}\WV%qPWu.o\Nѥu[Pf݅v^5y7Mu{w0Η}-$_Bv`6`/ v!31a oAb{8mzfbS+STa4P5qc=qN I%a|8%A@dP JVb&g9M[GY pHX&3~|2ySG $39M /&dZQ%6Kp4|h |s4"x8w<t ԥ65CGf{t#$jR|2P {V5[bAE5qmz}!^ߚ<,XXHmf;{n!=wOm]C$o{ٵ@7, C<ި{K[,4! F;:Az6MlyS~gA6'g~I`4Gus7b8%O]w3[2H3zʿ 8 @M AG7sl"k/SfyaH5z:p 梨0=`lH%nl4SƗ뫿ad[ ?}_wp~5!;D{0-z<.w֗B"(nohGǟB_E{];c A$f &d/`O:/EOÖցP0ݰO:oFA/&C$$P Jn6/OA.hMD!E k.`͔lDOB/+,$>>SM3??d?3@tQr@ @@tAH A!4BDA%B-tD(B5tC3$C9CAreBDMtEC8ilrɗ!wT[#CAtYxBzuv39v{ybWmYO>SkQcb'P5vnsx|C`Wue`Xg\K5٘VxejQIYSY@YNYTfjcٜMkBU9㷘vTdqu:أ9VI Řs m Xx[5|xZԦ9t/Bv}uy;ښV1Y=zc֧mczD3H:Wź;: պY: 庮: : KX#{!# A,1;5{9=E{IMQ;U{Y]a;e{im۵Cu{y}[a۸C{;{;{;;{[[uw{;{黾ۺ{[; <|[!{ <1<5|9Å=E%sqdf{֨o a]3hdtGTȿJ&4>=#>ԭ{U^f~^jyx~hG}=T^>%}>Tht ]~8>妏Ҟ;|ݛ^f^U|!?O'j)>~hF{\~J=KqЧq(i~i=?A~e*kh*?~~5%A}w?l<\SLG杘ّП-x]+FwdAtQC A^ S+VtN;z2ȑ$K<2ʕ UK.k\#Y 4СD}f,JpgO2mRT8a DOuXfVWRxՖ3MAhRS*Tl ^B-CztW%@8`F|r\Pۈz<7ѤKt,]՚4 ;CA#};SݙbM7QM&q;J.H3pνmtu7?(`ǃ #V̘`١~zaMa6G=P}4t` Q &@UpdcmF5^IQWK|8ÙvxꙗbǞ\lmv5IVT=ؔ35`N>3]xjݏAe2)TlT0R)dvDJpu5SUʥer.8SIqJY[`7cz&r*7Y.2m#;2:s:svLǎj*I tN? PO ]JMu^ vG\MhDюe w>-w,]Xٮt x'fuz\;?yONy?oyz袏Nz馟zꪯz뮗N{8e-!|O|n/|?}OO}_}o}[O~oOycOߏ p,*p l//Fۛ28 p$, Op+! _bp cxCp<0D," i8 K4(Jqk""}0q?14` #(3Gg#4`GHHJRx )?A '? JNÓTdH{# %1?MrB7GK[/%.kyK=~1_pleaoz A}&J汒xMmvLH@jk!8s$$ Ѐ},;yOғ_1Q U:&Me~.Y EGSʄ6-Y3%ޏ_ov#U9HX;H| cMq ;_79¨ t\(A/iЋqT0RPVd*%JeiN*Rk SW5 _^~gI[17>l,jϜZõ jؓ㸣k^wl/a6.lt߆BX |kq)^TEAsZdq[]ZxubT2>?X^>tE0B +ɫ2ԓ?w%3j,elw[}szLT=bsƂ"؁RJ@7Ü4 7<ױD٪G;KM 9@ȎT֟5msY1?R(SMFAe 5EDM_Zf8-0&i@dk!sfM|ӛQe l&RmNiϘGp:8 ZRdؤE^%jv!-Yʔ2} U4d\䝌eKs|-ѩ%꣋< 2 ;^]Mcjg諗:_$LȽ q ywyjsyߛr~J?;“[Iֆ[Wr5Vyܦ^cgd<Հz5L)s6Wd\AeǴy WKhL]QrObeE[?jfUs'xG'wW}N}}f| W~ǃH(N'hh FwyNQu}_jȅy$gzI٧V r#ŀ.gUV qb{ڵr!RUF7d'x|(1Xuu~#DU'7?UvD~藄@UN(Ynq@fydhc؈te6de |ņqnyČ[vaȇ#zXVq(]wsu!EI`uHgʼnN8Spvp&^fuLX6XpTuh?qWs6HZxx|rWNRxq(8ŕP `b&ֆWz`-I|hPHI&Z|ݰ 'E>0XM28RUFT>HZ:xF؃nS}TY(wpdHoofy_iupvGp^9x^PSy \x*VZ6\b9cs8sD's(ȓ}(dIUuDK`|:WX<7AilKɎ(H5wU $}?4OO5l}yfiFcHirWGc\yp]F}v7d55V)hĸ rxLkdLW-fVŁ tʆlI > *Jjڭ窮ʮ瓔]zJPj:E [֯ { qE +&$E[]8gnOrBvJډ  hA+k1@AIʠVJGi5u~#Mi/4|%S `Ư#h-N4aYE6Oq*]qIte tg+m+AaOP P(q+EIQ6JM;B&l$HxGZ4hngpIcɶƩ:MF[@e붥 )<9Jicj;O+|~K?IWʟ'tIsa\Tչp絙kwXDpyքD˽̋eQ[NJ…%k|;Fl *T]%QmK@+[@e_g;a FjNx `M dhn`7MOTȀoֽ%vpXTQbyɈ-̸ce cv&mC0VdXERILKi e`e̅ej*RkfW;S|`ktBIY:vP ilG- ƃj7iNEi&l4{j:sKI6d6c9,Q@ɮwk"?9æö8z}^$[SG? ~}_`F-Mh}^ݜݍ&LٹǸtމ9ݟ9ɍ=34*ƥ5>n46WV|y}2MΪT)7=ݬ#^%EF$i-g]X1I޸3[Y_KnDږM|MZpMD XYh^}XҤosi~LJpbɵo,nνp Imrnlv\ݼnvs x]IuHN 7 QK" *۬;#vt] ݣ<^~_%v?{Vo%ˣpwlVmC:QE \>,MȤìA/C6+fi2$~@j_y /:?rE;G>銏ߪ8կo</Oۓ鿮X̟/40D]@$XA RC%NXE5nG!EBd8I)U,tK 0 0a+rbOA%ZQIUS-uƜYfΩxJW M}5?Ga)2W5صPwEyxgۯ|CMhH?/nrtЮ٤"xHϠ0&/{Ϣfuը Y^YEhuW)^8ᵂ'LPukJC:wg6/(uL6qfTlrjki~W溵ޫl_(Z̭:O!l/zf@40J<,F+ȷԠnՖ+9pMNgh.8Q zv<6 U2FN'/ >=S 2K!0(/S:ӯ ܫ$Cޔh1OQjSNGCB\Ӟ،esheh#U1$gJ*u(")4 Y#%ajRB w`emndFHA ^3 OhPXJ6hɡ b))nQ5C 0jY/dGP4 xjUJҧ9,{ˡ k @AAqV1{zsa XT5;+ӰıF +kr cT Ƞ@R 9(cs}U.XO3OĜ,Q [+NY6 4sJ\4ؗj vwevfB"K:Dhӛ^L8MFrfIf=93fR4&0eLn/Ad(k7ėb(Ue^#562zRlȆH٣8GoU)dftfL6\Ƚ4Ml:?wT\MlPL0֎Wn!" ;1pqbhZV}o*Ag#}Hv-Q jh0H 3`\K#Z\`]N3BEӷ[Z`;ieY&s7y@ܬrmW<Q\ /k*/>~k ʼnb,94˳lɱuiN"=GbL0y]DtM}COxϻ'sTyw&‘_L wGVZ5˹]y qYh}훧!,ՠ}qi>ؙ`ɶ6?[/1F)d%Lbv^Վ2q[qcf)HKMΪSЪ.R]K]J=CV hO (ECS!`WHXpy1"'y)ۇV@ѭ/Y\-=(|u$+6L8W`䬿[=h=} R[ڇ ]룧 ;4L(*/%)d#; (3C{+iB̈p''CJC4#~:"'3-6C;c >a DTB;D\{< \):c0:8 $)7BKV4$Wt3=[TZn@!|9RAxeTtډ 2X 00\" Cf3²ƾ@N$ˁ-*";;-j!c-)|lG+JM/'Gvl7!91H">%nK +d65 oLHZB:|.û=D$4E:I]d)KB4AGb<J GYʥ)': aT:0K|"sܜL61$~ 4LCMTE]TFmTG}THTITJTKTLTMTNJETO UQUR-P, P;SW}UXVUZ=PVU]U^=YU`[]`=VdMV0VemVTe-buVjVk] fV`tdmpL%C`WmWzD- O!N*ڪ)"yM#gJiЄy,AMyM!ČWMYDWמD($q uN XY}ؠ8,FRhUn? ͎EWm?0 UYUYLiƋɇYك9[NYEwAnѵml񽓁שLrm\eٍ Eᗕ ׂYo$4C$\Xh `Х [Z=Æz;A2(*y:@م MqD]^4 ȥ/qKE9Nѝ < V8 ў!*΢U1EOBZ]Vbz|5G̴ ̢%!`"i H፡e^&S3M46:=ӛE#dEP]ʘH$I.F344I]EωPVa%ˑÃh0]x:\ċ(2Ib2`8UʱŗJY)B>?v/-_c*"Z+*F6LJP;%P;^,s{z+ Ņ*.l[" Ƚ35vexYc_)Pa\8c`fEUJE/j.ߡI/ 0ӵM# \\a5V*l҅0W1r. t 2(7 ^72\^[S_N a7;3m̽^K<ԃE<@Ըb8 %r>AfO[u.v T==АrIZ}N1 [F"hz ThQEL$LZa~~jTjh{<ѫ츆dJN^]H9Y9U=i{|n}G::Jh.!B,zi^~\vIHFf>c>\84;Jd~ Ndێ;E뚞Ne[z̤:J>l:6~Dcl^hnl@7len ZkѶfffMqxmm'@rgek!<%k7DGǮp. 3qDa8#, &qq\Ge$B:aҋ^Q8t&fSQ>r]~VMvM굶--rQW0g$s4sΖ<mvuyN}eAGLRiڄqNy䩴$qCQ_vfle(7dt@1ʻG},u0mOaW\V[&u6}c|'p@BDp!Åph(q"Ŋ*$@x ,k0"ǒ9ΤG erfÍ=ƼqYː4 *t(ѢF"-iQ(*+5Fau(uVINBʲn =]aZTꜛT((dzl:B#>, 80A7zTia؇9!9+]3՚ .gK(Z Q## aa4">=S1/o9q=9Utp<{ϯ?K?uUY[@Hsc Z[`_Q(Q\XUXox!lqzI⇰r >S:衍 uC%A,..dd1d=yOeA3.36g5BivfqeR%e"X&y PN=T&%WsZMTWvKܹS>hiQBݟfi.tk]תg!* t0b5K:~ݪbʑYT,FĉPlX!&Y*+U`Ͳ-RtW:;"QW%"$"BV$㒵m 9b=YVZ6i`2hAOAL(IǽGB$f1eBձRk$q{kf+u)}Y4owN33o\sd祿7͵IiWc&-5.B_$E9z9m!z{EzK bZ9Zwq)WWx!~࠺+QTd7R[4ѓFi\pN}(u鍧[IʤSw8;э\4,G|n)=N˚3.6jmOȻb$ݠ +-ޒ-h WG*`w`TF)F$Ug%0 L%ԑhIk7J`6G|MsғFgH:V%]!԰MRP$讈r^8)#JF{@bc gVٌo'[PN(% whǡ̊X`" mEj&t7ȄF:`*6Ep\-{KE#8H#Hy'ٹ*pJrOXDn3!EnSw h_>Sb ΘXLqj.In* L"k/`= 0 W0lHme'BK$*'@6' KzDr.R$Lo:ZӦ3_,P pJ=1g6Cdti/>( {3>#?:F1cc?_՗o_Q_"?o?` `"`*2`:B`& I`Zb`V`A_ ZI ҄ JaP_ `<` Nʏ*.!2D% iJ^C0L퇦W[]H5%C<V5;HNOiY* IL}JJjYPjQBzVK x qYBŋvTCb`!bIECFJ7eFHb~4LhPp"R}b5`(~qỨ""!r ױV5uQ9FY|ƩQ$R$P~B\Q5d b!VNW|*U8ʅcV%Qdߑ'GU*NLI%nQ5 o,ͤxM̎O(d SfA%: axɜHTakbl.l~|cvKKXf.UF r o"<#S>jX!ꠘ, 9x"䘋'{'I Mf} M6"XXeYP^fō[Yy[FĂNܐ[@N"1(l$N0HRgItKđi#1ZyB㇡Ռ$DКWn ,FLXxmEL}*'*$z$DSz1^}eHyiR5(%Y a/`mP7邀d9!]IԂ%}(% uy}PRjDh̤LqTUD<꧐ܒbؕIYTg*!Uѡז&TGWCiCfb|ji[)ݩGW!cɕGupf-ҘJ8.QNǤ(ĥf ۦ>jjk^bAZ۪W)DjW&\?奈J'%J u+zkje-mH\&M]ge+RQ!KȂ'GU\Qd╶*&!^}!ޕI̥YN֯*bfmxV TQEX^!׆,ɚmkvvuwy#kj`̦mΚFeEz q&ߺW+P"i lXyչ!$(Y{Pl|Ft,*FwM4Ljm0ٺnY-[ THSjDG [.]]m,戍.^֔XǝiaNgLa\-hFm늓N/&>ʹ&ϨmfBڳOþnU"jW.Y,9)޺kݮD7:nY\pN˺-p=^N8j괨Dsl@- M\n=QY ܜ V:٬:EU,M"E6HV 2鈒dqo5p“q/ќU#r"#k!V)Uc!!+r%#5_&ir'k2'{r(/B&%.nY*12>s??t@ @>]A#tB+B3tC;CCtDKDStE[4CEkFstG{GtHHtItJJtKKtLtFtMMtNN4HtOuP PuQuLQ+R3uS;SC:'uTSuU[UcuVwTkuW{WuX9sXYuZNZ[u\C\]u^5:^_v`u_ vaa#vPvb3vc;cbCdSve[@Kekfsvgsf{vhhO6hivjivkk5klvm;lvnn4nowpo wqqG4q#r3wsAtKtSwu[ucwvkvsww{wwxxwyywzzw{{w||w}}Ou~wx x#B3x;CxKSx[cxksxW{xx880xwxxx븊/y y#y+3y;xCS9K9_8x{xyy/ky7xy8yz ﹜z':۹wHS@ @ @ @ @pA&`ztz !! &x,wz {#/zg{xW_2a;~C,A t;g A,;P Ebp Œ=tC2+&tz 8+x @ī0{[c|Ck9|ȋ<{ aD ີ8Wɤ;"Ă@77$ 8 PAη 60a * #B |2 0pz{b AÛû?|{dz}ۻ[<=gB ==gDɷ82z2A 8k8>?>|2A,< <2Aї߼SA7ĂƷB=gB2ԁ/<; A =—<= 3;C/ȃ<A7dw |x B+~["~K?{7 ~#"=08JnΔ2tB"xQ ?g$KlXX(q`3;ZRnqCp*Pb0(h4qVzkV[vlXcɖ5{mZkdZֵxڵje'uҐ{\$@8`v^F%̛D7dg dhd"RE&4~%Cf*jĻn1DMɴ X`ϡ(!tÂ1k0Xu~|׷-vwn ?JX cpİZ,ld:BKF5$3$xhL\K:d$B(θXS.Xy Vba y&ӎfz<(FL4\6|s n\LZ=NC % p !28\ J) 18.?9c\  JȹK;k2+>F?7f wq!mq'%$-@<B&B! !b1VλJn 'A`L Q1Bb_ 2î(AJָa _ XD#Q>(Lĺ \lHC+^YK.j{HF.&_Z¸F7kcg9 PEDZя HArm˘H$)YIK^&9IO~(IYJST*YJW,iYK[F  `0YLcT2Lg>є4YMk^6Mo~8YN`2@8:NwlO@ ZP UBP>: PQ^F9Q~!HIZR)UJYR1LiZS9N=;PK^PKfUIOEBPS/graphics/ccapp002.gifOSGIF89aX_  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~,X_ H*\ȰÇ#JHŋ3jȱǏ CIɓ˔K |i*&/m S&͚>ids?@o iOB&ݹjSOF:VWfXhӪ]˶-EivFJsJ;0o]r-.aaGv㿗 WƼYs_ʟ-wfsiρE&װcg+۸rg NqL%>μsK3:H}.sNm/ͯ>| "L"F:򑐌C(JZ-y&7Lr9cd<)ʱ-f#%*UI)c0XҲ7.K]-؄0Ib2/Yy4Ќ49f0܄5MMj_IrL:v$B(oS6:>~ @JЂM@'[2О G@`N!DJ%N5pS& Rgq>zG6tQUњO!&sP $t(; lhx)1O 4 _$isx# qh9 9R; Y|cf@08K Tu$.ɴJ6EWv# n+Y+ցzyZ LGx`s xgݎ&śVCg]bQV4de31jl#09\^Is7l02v   1m' !$ɖE]gy DB D7] vP#'ՅhLR&]ُu u0"#bpVR!%acqL}Sgs(r`9X!FRf+iVqmnqzP 0@;.P'dr5Y#:IC7(1XiGURr<D'T#)-Ws#zVߐU! ^5gXP2IRnP:K:1`a!!kAlAG @'yu= pY /g i:bw3\-v,y]<͏֡{~? Ӏ! MC(cՀX 5fY3nQ|&Qd 7Ԡ < nԀn ɽV m-?Sa NՐ @ ȞL(Dc"a0$?p(,_02 לMx J]C_q?L!yNkmnBMX! LsePUX kj  moSqbu/wX \܌ sR]RSfLL\0 /w-p躿@ aef\#2ֿү,"s`Iiȝ` ɯeB?$XA y}%NXD^G!Anj&I)UdK1eΤYS$@6u|kΞ?g~U2>NZUYnڕA(<>X,Ōǎ$)[qΥg]AԻw% 3)͔_HVb%O\Y%c[g]tʻMUݑu뎀#,0la0 )۸tg75ת=:A|:w-+ϯtOW}}\g\Ƭ}p3N>,B﷌q?0Cʩ9 3;K ș uj6q mĽpDo^rH"Rx {4^qFaӱ+qJ|>sL2s$I.t3*[Dx3n7eB1F6t?eOB[ړϊ2f@ҐN930DG=LҲ2JKuPMOSYbԣ_}ƚV_MM4Xd қ3VYhe7;;d=֎ruuW^Țk6&H;buig}7^S^~ -\^3&suIFM5y7՗:P ;]0sc7lI&KX`L k6 s> H4z `6fQ2RN0bYVeefgTIYWrfmaj.?kG竸ﰡ<'fUk|iz*(+ $W8A(A AJ겥[Aixg8 d!۾@WA;w( # SaŽ@ wCù)>WxOxK-D(4@ lHGح#5j#R;ZZELŔ5mXEFgjd#FKEAFb;>Gd+gTCaFjlktlFƐ +GrčJBo]zk yIiw\g(+ut K;ͩ#U} 4JՉST&\Ӽԉ,XY͓ZUVZ^_}`m%VY;VP@aQf+Ega TowJVZVJ,I|o¹v&GM1h"}hhhvT@ eC{b`^.Ρ#JJ9\P ]^LC|% *nf<W[GK@NJ  S#Y[Cej._]/FHϬDr1N]ݣB[S¨"ӅlU ֨\q IȭG |h` vTLbBV*D^` =QavlLLI.O\lv ~LTt h\p^KF`g؜iCۜͅEȃEn>?(\ $!39p;9 Bط(q TR9gxkmvcjKLW W͎cD;]/gn w [umObN /_ i 4,V#~,@!Lk4 fDH b4o PNOl>,7NHso < WEtTbua2s܀k?PϻD @4aPjMTc!+,/]gWI]%gu `?3a7n%έt((T5w=pq:X+S0Evsg'^0P#yxxxxg*W WմǠшc3󀭊WXw/*Ew{gwSo>GHm oiI4|xߓHDKNǹnP|tCu?x4E>f}QH}_@oS z1zEՐWv$ \\ &~ ẓo Ef zQOM EXɉݺߎ/~0nwqUI9 Gfޯ渗1}yW躇Bh/>1NNƠhZI73n „ .!?H`$#0 I K+ҬifG@4'РB_ ym4фH&|j;>bǒ-D >Iܖ_Z|ژ=M@@(@A?H `@l7;U¬G6gO`<[0aÈ5180P~ȍ` #ʟ%UTѳBu sw`Ҹ_]@' } DSA8 J8!B R!^@8) HZ)"-BH\m;-FD6=#s;#%%IAђ|.Ԓ?4ґ$ِ^u/{A 3LO~]7e3{ѝE-T4KVڔ&BYD&\!dT0򍀡e))7CL]*T.+?E#UZkmuW`5,@" Vrd#}[7S|/Qe"%PQ R* )*kpfqht3QZ$L) 8ʇ0zz1z'lnp_d)')oʪOr/Ü*NBHY)A0Mfv;H |ֱV_쒙L4c7\C}#03fT@7π]B zc.d̉kwtq|aAe.d%Bt &fڥükم*tf}5ԇkl 춙dd2}#www-wQR/[1j: JzK(T֟ !, CPW-ad%hS{C9aڞt*r]-A ԙ !1B0]%71[g8AI Y$EQތ՝5-!n8r\ )h8/0Q " S$H-GЄ"qFr 8AUrt*YAd![ٲd'CEazq )/W@1eD3i:\J=Ҽʀ Of]4وqk5ͩhĤ7΄ s&)tⳟa))@p?PQ\= w4(D3Q5TA(9%ZQѢ(HSRt4AJ)Ғ5 #Jcӝ<ݨH]WғPRe+iBrөԧT]H5DFBmi*W !j^b=-n-6!׹ҵr[TUV A*_*P=ZS浱\&"+R6plJgjfrѤ)B1+ђ M;o&gicQ].U0W[@-p֗qG[2mnpZ"0[.t;jbҭnނ6mwIQxgI${˞/sF7_-xf>0#,n I+ sx /M`=&>>|Ŧ˩Q,'.g+YBQxD96Bzմ.4>2KcN~2,)SyrB\-sYWfB,.{&FN24̸.܈[vf6'93Vߜ8lt>e[ą0[{PƁF񠑫9e~n}Hy 5Q AJcĤjJ:e_Ӈ{+]ɽn٭%lTW]kM򗟭FՎٷq}Eo6-iu+w KS/Y }.Wro+B fv@oj"83oU9yWkI艷⼮Hٝj8rbVuww9i^6E7ag@4UzStǚH(խ.Jo:n3V;Rr{F w;kkt ĈO|^a<3s3o7~>s؏>Q{????/?8?`fT` *- p)SF`lA ^hYSvc. Ơ   &  &T!!.!(SF@!^Yv!q!!f6VaM֡CA a! = !!N.b(#F)$V%^"&f&n"'vbޡ'/! ҡ()"$yb"+ބ+!,bM"֢-2D#."02%#11#2&2.c"323ʡ)>cD1Zbc1jr#1zc0)#5r0#;;#<ƣ<#O#=z=4#z#fA $AA$B&B.d8McCVE^$FfE,"'Jdc5^HG#HHrIڄ9IUJnJR:XLJȃN? ԙdvdP6QBQ%q! \A%\03 @TR1ep8|C8 X6VWf>S… VE[fCdJZ[[bKn@V7A`K(ChZ@CP\ Z[%Ufg^Z],d Ձ 8Dm_ B^\hZ"iRiJ@ RźfGT/RH \`A'O g%T'I aJfn>DPZ%|~lNM'OئT'%~TK]>u҅|V} 'cMO. @LgLgTZH|7D | ~NWڗg8j lHT MP s&|R^ᖋ"( ;TT^LB;|u $D)m [:)]-VRxiH©i$D>D!>:bTX.Tأ&b!٤W~䥢Y4&5f f&{MD '5)Ҩ JpiFIŰ&Z*R;o HlFgA^ HWi CtijŒ6q Fٲ2kS$vxIFp޸HMb"B;lJxE4ա [0"3 rV N#T,ԫft*XJYEIO\KA& <\f zdbf}dJ+* JHGH)R W%k*VjMlDԭkdRbIDI٢D "j1&FjLit /hk&.N4Š)٤]&HԧvjaJQn&TEbʭ-o/1of)pl2B4F&nEv#i* >0 0ZhA0 sp̰A#^=)3*XcY1*mB 1//p910-*v*0x1=C}J)iq)qM؈XM8p؄ŸXjD_/@A+ {1٪:}:Ō/aEXWP;dwtT{A_@Xk2pDhHh_d37^v$Kdbu9frw˷;[nώÆFĄ3H7_^ʔF܆fb`=7жK JHtt٘ȏE1BXoȏmy[{clLEҼʍR2[LCHDh'ʄHȄc&)=?6F<b+/%O/,K=UP=|%G@0S܌3.B01BxXG;fF`f!(0oFH 8xݍN9lh7Ex˒/)8/}t[~dhkt~CLJJPߖxwqD~2~&1L_oL@@,Ļ Nc0|H9Q>yc>tVS'_L|Io0FG+9'(=g0B@~L F9vdGB4y/Qt R%˗3iP';L$OC5ziR4әJQMRa3 x׍UAA0 `xEH- 05RQ"ޥ'G5ӯPYNGzO 7vrdD230vo96Yh_)W95H9c׶}wnXoظ瞍wr˙%zt17wqoOl|xʫ}ig$)bD߂Ʈ{+5=,^_4r#>^症#)Vе>zP  \ У 8+4 M11G.|> hȗ~%#)O*P((.To`x$w>钠g(?u#8+Р:;?@ӱ=k ?p} Ag*P @ԣF rP^YTB[9.8} -1<+C~IGޭ᛼>?MN~QW 3UG&Lko\虹c0XjHWNV뙍#ވtCgclY#戁ލI'ތRY'"hk: Lv"HhwC5o : ?vw<{q#ݜ=tC!xCzKwG6Mz-N|w~xBUGf { 0G w#_cmߒ?d6/)b6/9b #}b⠅!J쓷 {H>-QHWՃEb>!ún7P~x B ^Gh`o"մT1lYk,0ġ49yCp#XD#1[AD' XEӽt\/`K!I<YJ .%AaP°j d% L( UHF$)!cDX$>v.4CP i]")L.B/B #9ʒ婚MS X޵a2ԃGȥo6,ENQC3Yt@sVK59,8wNp@T:AйNtk! .~z;b3V {Ц1 YǬ $[PW3d6%RSqb>堄T!e2TL$V0\ Xnd31Db TqdI`HUL)MavY?M\1Ke~RZǒx &>YB~jB%=ijMsKM L^64qıF ’WXk2/ ٤f% 28EPMoyWR5A4KPu&2RfBg ,q.eV2sU872Ybe(قZzs3}ں.4PO0Eyj@%aq%v-)K*uLHkF^Lþ"˶Tmuo(w.hREҢk1M- Yj0)=hHDf.gϸfV~v̟F*4Ƕk6A,Ќ-sdG#VDO{–׉l("#IY, 떶 ٮڼ, P[%TL̢J3HeJ7Rݠ@JY"$Ԧ'cKSǠtD TQxViZ@v tCǐFIunb:i#آaC$)9=lgoFkvkcmkOԏ󑭒͸=s[N]o(_ ~{KہI8aݓ?()Aq<2 ߋpD̫C.Ue+Nj<^r|~y CBMnZXoNN=w7?֏t@2PH9'^Iuj=أ(v7#ԕڝs:΅̹]A;ov{;㈗ xݳ??zk]ί|Iq7fIIR_z׿֧'B{u~F&WQn_G2xKT}ⷿx JL?~d?q~co~W_3 o$P0Vo!oNN7:.(S𔲏_cPg#Zwe!$&PPp p)( po㘐"NP 0 M ߸ ] U/ Y/ a 0 7aŏ go )'0 /,(GOP P7:(pXFO} c7Uǥ {n܁Q0<q:1qձ} Cq q  Q74Q!n!yjl r""w"Mdlـ >$5MGR$R%K.$u%K1&_n&s&osR'Y2{r~(r<)9)7*+,R,ǒ,,-R-ג-nQQ+6$Ŋ/R///r#.!U0S1112#S2'2+2+S. v.4CS4G4K43S 7334_6cS6gRr55w6w7{7kSn7R8r9S89:S:::;S;0;;9Sm>6S?839@T@ATAAAB4?#BsoB+)C'ArCCCEDGTJDQDE4EYtECEaE=4FitFMt0UD]tGeGmGqT u4GyH}H4I#D4B tCÍ'rz(KyhKwKuKTtLLLŔ#4MMהLLMTM7M4NtNN4:"JQ" ;PKMYOOPKfUIOEBPS/graphics/petgist1.gifGIF89a@Rk{119BJRZZZZZckkkksssss{{{BJRRZk!)!!c!)9!9B!c!c!s!!)1B)1c)BJ)R)1c1s199!99B9BJBJRBJcBRkBRkBZ{BkBsBsJB!JRJc{JkJRRZRR!RRRRZcRZRkRkRRRRZcZcZ!)Z!cZ91Zk{Z{ZZccscccckkkkkks{ksksZsssss9sZs{sssss1s{{!){!c{){){R{c{{{kքքJRRZkƌ֔)Z)ZZkƔ֔Zs)1ΜBޜR{R֥Zckk{!!1R1kkcƭΔR!νR!ss{s{ƽέֽR!ƔƭƽƜ99B!Δ1ΥcJ!k9֜֜{ֵ֜֜֜9޵k޵֭BJJ!Z1cJk9kR{)){c{樓9k|オΔƵΜ{)19ֽ!,@EpA 6h a"HHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛.dAŸ@(Ah1%hhaD7JJիXjʵׯ`ÊKٳhӪ]˶۷pʝK]-ZP0(b ZXċ4Ӑǐ#KL˘3k̹ϠCMӨS^ͺׯH|8Sٵq7mۂ }-X谡+_μУKNسkνOӫ_Ͼ˟O߿^V܀5E ,0-I(}F(Vhfv ($h(,0v(C:ըO)x@ 00q!NDiH&L6PF)FSP8ז|A@b8QdihlpE8ixgͩ矀ɧC~j]p YVVj饘f馜v駠*ꨤjꩨꪬ*묛IGR 뮺6U %L ي+Dk, t;ζ-9PM|p@>3Hk4B]$ KpCB ,4pƸ>k W>;(*/o3e9E,DmH'KEgZC !cK=Uzu=(0,9Դ8C1߀.nNw1a7+d̵׌CđNjܶ܊ PwsD|x.^;>R0Í ,d`[fy*t:yw/{7l+<]Z<؃;1w;WL06P 0/ : >0Xz !1.c VՏ&L̡_=pN0 h:' 4 1&:PCm!w-lAVeq:>0"L6 'Bf!jbv⡸Yv Qnճ iC-@I.!Q |Xć?ް*1ЌdD%V fEux'>Za D4`Gj(P ((xFƨ.Vl\e:cvj` Y V')cda`LIc"42L[P"5MMF P*0*W ϖ0<&Lj+%?q,t -%Nd;PQtD8Ц5 ~|q!R<^wF'a { ؀ |/g(V5!GB(nwӷ-x}ه'$fݷ% ~<@!!r EP_Fh(b% ф byMqRVxXZ\؅f+hf `i|Hvi(sP.Psݗ˔=b v <8l lv mBxcguw2P腦x؊b(rra؆jh tzv ( "b3 bPҘR//.fxbȍ &8XH!`|2 0|hj8}ޢHLr@(fȈ?%͘=rّ "I"9||h)%&,t8f9-(QFyHJLٔNPR9M9V)!@,\r)3)ZY] dX+99L}?  y3Axz|ٗ~9Y5-91ȳBgiBØ_i bҖWopys~uiaٚ9Y, #0\R}#Y 0 9 pؙ)7W%9Yy虞깞0 9)Vb[ !p  ϰ 췠 ڠ ҝ#?S칡W ?'0( A%'''+'' #:i":<ڣ>z)%r)=(%>q)DڤNPR:TZVzXZ\ڥ^`b:dZfzhjlڥ\")\2#qxz|ڧ~:Zzڨ:ZzzZ:j#(Zzڪ:Zzڪ 0ZZȚʺڬ:Zzؚںڭ:Zz蚮zz:Zzگڮ:2* ۰;K+ʬZ۱ ";$x[,.02; {j4<۳>@"k)+ cp ᚴK;RUMzP۵^J8:;Ikh IzhkS[YmѺ P vkސq; h{T˸؊q n;0~YKn[J`{*eG[vkZxK{;k;oK;͚Z{cϺ:[߫;B˺+ͪ܋kѰ \;{ˬ;0~0+ lK1k9[\ &ۿN+z~ &l~-}>~~@N=䕽כ kw FW*.OKی<~+׌smڦL zŦ <嫮,̩NU{n[͸Wk~\oʭ޾?-rAmwk-ϑ;µgMmwľ? {J\=b^ε>9NNP2?,;:E>l6?GF=J+BGKӾR?ZV_XՊ-qbOK=Dhnpӂqxzojl?;7kO+ ?_?_?_(İ?_ȟJ _vﮃ~?ڿ__?_]߬ ?t/ ` J`*JSIPp >QD#Rb L4W1UH%MDRJ-]SL5męSN=}--iE#fK "\ (K9z)ˣH+PcɊ%VZmݾW\uśW^}X`…TO-= 4NBZRfΝ=9UŪ;~*qKbq{KlMH޼kl:ٵf{wo5_]tխ_Ǟ]vݽ^x͟G^zGx [֥Q&zH.0@{oҮBM+d xp ʜa'ҰXD 4 _ 5­# 3pGDiԾ2H!$H#DHR$iR64,FRK/,POk`KRAʐbL)9|[dl BbNT3>l09j%ygy矇>z駧zǾy5Ǟ{a"|oTW +mSf?UUaF8( V*(W26q#\]l!9(a!`5āN!(&&̂;` IgrYD2jkO8D"шGDbͳ=y|O@'WO! AAGp2Jc\PC%Q 0Lr ,O`H*H ^fG7,cԔfPIQJ}J,) :"gV JDe*UJVҕK"W,ZҖe.uK^R_näJAqqrq*:9@?aP8(o# pc ( W&2j0f9H2f\ *NlbtR1':sdQt<'ƒm)˱D4Pr$_QvԣwXYҤ'EiJq ʉlWH UE}'1j3M U,SvӍ$8b9zb:NicIʤe;yf"ht%"KrP `X}A))aW5ui)'6ֱldaD{֒%J5ٔ4[4v0rEHB] Oew 6 9p1_zU@6;J׺.' ;x<&nXHInl8n:BX܅'[34#A]oF.v2c`q/sG'KtF*!,2Y2I*KVmip 8XV?eD[.TjmTF ĽuCH'M`HѱL\$ (ƒQGL%] CchW@'& rl5:~΃#hAg̡lG`ykZ]Spv͍ ꉴt s̄eYY oUDq Ćy c0ELbnNQ!nbK+ Ks[9 ?81k;E\HdDf@ EF7vs;u׭`΅-L}$gJOzvilӋ3O rd@~SF<\R,]$/!R!\.jU(ё]~8#nz[ DًDGUV{Yn ;f8YdG6]Ҹ+>*g݄Y'YPWݷu2Q G՜}+ [<L 2Ypqss@D@zшһ*0鯚 4ȀÇ:(4)\BR/! !֣AK0N%12+ 3˽%lBCB#C|POk946d(,>4B/T0)tCCD{AlH㫎EC{O I$BQqxcD2CDDtÜR>@{x>%X뻥;FZ2YE3FqJ5?i\)aA ۓaY#G &l;ʭ٪3"Li$/hq'tǤc5d\[0.Hr7{4ʐ;zHA 3=9DK8"4{B:39|(7zW1;>nXI1D2ßCND;J*D|+BI#(J4Xʗp;KAǀT&fp=O9kKtJNܓKSK2L@DK?ćL9I4+L*,\KKTB?E|`_l?2MJ F[ƣ%QiL>x:YXF$0l,hNY"ƣ_F̧ Ѻd+|tD;v,rGx yJпnmo, B$Jx;1lHb:Hx|HPD"TPcPw|PƩ.j{$wwqɋɳQS9ҤnQZTQu츭$0,G3B=tR$R%E4$MA!%>+SǤR?2-ӽҥT%L-TGR'EN;B{]Ll4C ##]r:A:sNYFHeΫqѵ3:n%)FDA*rpDHariOA |dݒ6۲0O fGcȁ= Ku#jA$wсPUV ڧRp7i@k],9@ֆlQzQ,;-\0K4EJ15S!0>%0=I%Ěʄ-=m43KSLF:mX-SB#X3UXʏXDʊEY;C3K5U\2TE 0 @QWЂCNIbJ ΫP- @U@ kpV j?[ɱs4#b 2\Wld@P2rV8@*kT(A'NZ\"Ei M-Z"5KP5jEָW|%=~ŸM))T4%^Ye؎2(/ ZLtYdޔCDCt7D2/N|^P^jF#NA |TN۱ڲN8յpiT-of{6Ǚ`kk*=\~\`""͐C8)ֵU'xbǵ &-dΥea,b>2e˭$t20ܝ (Bu_TކmL[ÛYK5`؍=RUH)W\dEQ =5CBXJvYFRLًNO;=qS@Y(5{S)56XeG > 5dP+jނ5ߤ䉵2%RjSe%VaNLmά TM6fPMNfN6Iޓa Jn0:5H!6!6.av>wn0K!  *JȄbDW£[(ɋԖhv8q}VRfΑ;d8m2N ;ܯY*4*X=̦ipO뽉M2˨dLnoBƇn憩L|M M>p#pG`vḿ>Kǎ.X3ͷ01Nk= :⼾LFe]u"⩩yHj($5H@Agz6 r[097nF [H0mh;|lق47׆C:ƪ)37N6VsI9ssgiGLjILJHiG@|6Sk|HtJtXVֳC\0WZ'5ȸuuKuOPgHTRRR7u˼KW.N:Ǹm]?ǘv^gr7lv\Ț Ňp/qXZGXweurtPuef`a`g]"ZTKŚ kڬf#0Wrע3H`!nrea䑅Fc⑤)@mԽ )z8z?_swsAm? yVDgzptvJvxwȐ{#Rv{ؓ|)/%`ؾ0>3$;bp2A.$\r.p.b`&GBHWmiez5pf-)tϭDw[{ؗ}Dg}A'n٧})W{#2f c~~(2]~Y_0)Z'-0v*h`*. PbfrTȨDfpa"mQb L4 6 %/g"$ )՗-z***:+z++knR${,57iW )4%%hk #mFr|k {u Iv'zl'"* 1e'o4H2^0 ;0K<1[|1k1{1!1D|`Mir8aW-Z+'5۬йzk.I}'pDQ@t)'C 5M) ]{5a=6e}6i6m6q=7u}5yYޞ9yK]tYvy8睵k9{9衋ʣu-'8IKЗcev]~i:K;; ?ۂɳ^'F;m[4j={=?>>o>߾??˿=?9%.,< 2| &@1p`Rd r C(&!VNL(qD$2N|"()R%CdID(*^"(1Wl@'vn|#(9J.Lh2pkc)A85lC)IRd"hF~] ĕt*72LAoleuI[-'uj`/ӉP&h QT ,N@?ВAVɰ9,3[%)CgA v @%izZ gpaSX%<_σL%?g"P8 egE,&.QUFjV)"QWI΂ҔD7JPM`);j $ ǣ RJ[ >jiu+ V["8QW]YnHJ5Сu,0ŕ&v+XܹS[~`)N3 H [P-a1*r %[Pԯ䬿BWð,fҲYlGޖ6 5oWF'>*Z­T#V)*өΌT Og7BD!fNp5r^8~|T|A`q\7AiZ3 ^]% ٯ g} ҿpi3lOr"kcT#Y1W-`ƷͭvH)MOoU!E)e\&Z _.aB͗=9*Og]!fbCcD7y*Ӽ6LOW*JH1d ) U~1 6qƴ/AZ`N,P9i}t@\?…nusMkM{ќ(A=n*)==Ҹvv-hUֵ%fm Mv F93:qNO/0'bނV*cnmúwϭllK,4j1w$Mic{~w?eu6yy{vumC3<طv&vC oR |㤔0[t>4ZUB0j4b}׺m51ց@[:0tt_sOl Zճu3Ls/4w6^q'z,maXN}vqУb;>v'?s\{M'ny8xw7-f}fԿfk{OG~><Ͻ.|/4SOʾՅ?{5e)ֵTv]^m5[u % h]E4Dȁ$7L5ݹZu_QRIUA 4%]YFYZ`!YW>ޔ-RݺMaYajǍa]!_Ձ2(!B ^m= y!1_^F")a>j")&`Q" !b$ (Ң(_,r*Z"=-rb_t]+^^a0!1R" ™e <ȁH$ abQ*!ej)<]@"ab$ۗ%J1a٢=$Z#. T$c)H b"NYDVb7]F$c`m!a/2$F4>d*&K 5n)YIz!PƟL&M~8"! @^5=eK!S^L`",D *A.dlA6$*֣H~\YaH$4:eN$Щ >~EO6jV^ )yM!0!Yebdjciʣ"@z\ܵ U[ D0\}o=>j2F*bGd1LRZs.ZbM&oI(& dn=L']uJnvc5sul*%l=^{w~]x֡X | gmʦY3n|zg eI֤U6(FfޤwƢB',Z&guڄG}+f .fהZcD&1er,lW#>]щ&Fijc=Y)V^tڑ֦.E$YVRG/W~i~)wEc^h_[d甝iC>`heiQ_/ %JM"5j'5c|Fgwi>*ZZ夺0ّ.ixMi_*~+í?ݺR:,N,ŖirZ:>߷^,Ď,1,l,.,>(+ƺ*1Ų_2r lml*m5m.Pd RlξIƞN,^mfm]Q(b1H l 4-kBĂ,Zh"N^.^n``z46 ƭi΢$$Bn'vn.NJ!Bz^nJk"m҆Z"mlՒk !F/E"-܂oZ ]6zB./:>-Z䚯:2lNp 5of^m ZYVKBɽ[}YR/.7NksNnN^'ppzl[ҫ W>'o}/cbz~7p{W 1A-uBm#/m}ba#;qŚ$-R7±߷^m1}񹮱' r(.pH1wf2/3373?sc-4O35W5_36;2\!g75,8So"\P8g;3<83=׳=2*>3?o?S8? q;A433B/4C71+CGC׭A3J@cFo4GwG4HHY@#3HHJ4KKG'R մM4NN4OO4P QQ5R'R/5S7S?5TGTO5UWU_5VgVo5WwW5XX5YYuR5[[5\ǵ\5]׵]5^^﵍XZ5``6aa6b'b/[%_36eWe_6fgfo6gwv_'dC+yi6jj6ki;̵6bk6nn6o6oöld6qq7r'rvl/Dp/tO7uWu_erXƟ@7i6vx7yyӈv3xwm{7|Ƿ|7p;p|~77b6Ĉvt78v6{h?8GL݄go8Kw˅d 4C/=g8c; m;aXeA`7 1H=`B9O_[ ?A83F?ygo9/y{ƊW`ÔFs9c?8FCg@=3L:[7l39a#4DGyy':w(w9a9O?L`hǺzjs˹zay/4@z︓Ӻ;/w76K`yヰzo;w]/z7;xFF@9{;7?=踵G:{|i۸a8{O;;.yc?l:gǻ3F_Ɲ7&yo<˷w<ͯx;<г|{ѿ#/={yGs_=sy|w֏׏=Oxؗ=ڧ}ڷ7ۿ}y==O=o6f>/>+7>G>`?W5_od>>׈>g駾 ꯾~뿾s~ϾW~߾3~~}S;5O`D9s{+??u ğ\_?kXG8FKF9ahf+~;%DzF/_F뺘G; @{."aC!ⳆÉ*:ƈ`cI2I/a2d< cli ! :_ZGɔjD? LIjW^/nM3kuhIJ8?gI*!^k^c#paÔ0Pp&|wT T\$=L1quv贮gʟ+m;UQ6Gkfڤ<.*KM-^2\C;<թїg՚u߫:sWLcՉv {l?bŌ~{0ǻ=tH4 8Y+F#\/:q%R.."PTl(?bOnï!d˯uF+RX-& "3'c rA%\>/{,2 |ɪ*|JDkK7qJS\2,pٲ5!ghqkjQG IDzK-tT//T6ҤJAWeiU.[=;0,?2<.Pi"-сL+r8ȕRć|H%"6tr% ]sᔳ-,[c7*R;3l,Y, *zV3s% \FkL-9dx߃SM"-2L$@ܑm-g1ҍ)(v! }M|FIT0  ÛŸF^ʳ#KkBwpRW,xui4f(wj%>eBԠ& $]<>JTbT.$^K̑rpҳzLt˪ j9ͩt?MVI ΍f-HjXٖJIqs]^,kp1nyh ["%"β#t!cNVL;zǧ)~X}kKr;պOeR\L=V f.Ti}h]*%y`F.6L/ O޳~Q9}nxf]*we|כ׾ oQԎGjHIݲq`&ʂ#Ä.9>ިd(׊ l[WHT= W D35NokDQm(.Aa'd5Q3CQÈ$חp.n,9,[xʝ8ΐs>,pMkRe5{^3&9#&,a7&VH8c!Űfu""DVOjFؕ:IbQ$S My%RɕY8V!lJ[66721 ҆4Kdik;zeR50n*'ӻ3)ӗٜw2lK]~ HAWv*ʼh'E3MYe!Qyڶg>S,T`sCCh1q.}cwtTt~[K#yOZ.1%n#OYj< P."\odOEP/=`{B$`/f+EqIQ+XUqY]aq Oq*mq1uqcq%1qS/qS͆,P ɱ 8+fQ'Q } H*|'Bi|.$ֱ#Ĭ!l 02$}*lC&:<"88c&ap1&OJDPZ'$6p'J McN+,[$R'B'1*N8^rtuEE"eFJ/D*u0ϐH1K0sI_,#2rX& Bje2qN*/r˾dMH%Q s/3]Q3b2uE7 22yH*/f:#k3:Jgk8dJb^9u04ٲcn&mp[v'b@$̥E=7PD8&^n9o_`Zf>"i"m:7`Nj ZiN@`4A7DZN.9D'"L ʅ>V_J5'fqRrlZrhl N`+N^5f_)/` G`div4e!6j66fSGD vmՀ,qiŊ*^Tr%mr 贪!9:HFoW"Ip# ;,wBde̬rEZ@Du+h ߀: {ǤwhoxomILf-lu.7v0C3w'P7L|W1&UK?33},Kck8{R[׌65(=Srjw vqⴴN~h/Լu> IjĤrW*PMꢿzxzEzKWTf(X^eKtSxiIWX2HFKw<7R6n2f\~ (,pn 9XTD-9r)1(F+hЅ nrW= XD zMYRw\8g8lCՈpmxiwZ@y͢LHXΪWݘlA>aMnBٳnMR-߆+ 7:M#`6YTY`M*ԭc8yRr䙫9(9yvx MxؔU yxx\ye3FހN:z쮡OӉ8 rLz-I~jJm6}i]-NZv:/r B֮.ǚO;Q'Ƿ˘p] kc8% A)18[$żɂc5,m 3GS7cR|$#mymε 0ռ nt=L;/Ƿ}]}#Y]ۻ C)>bm4tϜf]I}ׁ=[ׅ؍ؑ}=ٙٝGe١}کڭ<ڹ۽ۥ 8VKƽFҵ41'Ǣ+ÃKӻ0Up r3kBJH/<ۊݜPÇF#>;R6WW3%qPq7JT;2=78b0e0jҩC&?;h= Ђ) E~;2WKSGVkD1Ye053->;V8U!}9T2ǂIe,Hg" ?~7y9J ?=3~ ߁J~+4@ų9gIJV@?&iNƇ;DO%=(vq]d-l qs崚q}!U: # hɞ to.q˓ncSzLF3o^V_Y% 6;^3Z_ jMkU xmv aF^m%G}(EⴟY)Ƙr*GG9[d=BeaXC,7!{ 7_z&!a:aWJ ~wz];mN=$TDRL9FjR[CʹP)!xETjWPn GN'c|>Zӆeu.t!.],*?t]rvcMJPqjOyΉަx7ͪWsw3ިfaR1!gF}ZS5gn-V>{ڛk-]`ʖ.f퐏l!{*sz^Q N Kƨӡsݽf.Cv 2_)fQG%TS}'UF5IW-)knZ͝D?Q*-+FZ5mzw|;r<߃O_>̧W~XD$=% )fyCur8ĭv<)q_<nwAε?PӚꆼNJ4TgmD`3vĜp/R;ΊvZÚi&x.$Fo^ g2 M!R(.du!, aхe& 1b4>$1 迩YEqMoj%'U$N'vW N)WDYEydaVosiΡV%'xm&1!)NT!Q9i _rR8dyDOd?=27ZOgZY3Hcr.7 m1*R`&EdJ2p1)~S:ђReɩEf4T_&D%CJ)V]0nKeu:dsU)JqCѯywf5* S'ITA^X.đB0PljʂNgi9Z歺 o *[OVN5XU?E7b(+93讝@9DY}02D9Bۆ0<iR+DZ H t$Dh \HR%LĦ[t W/m&E`v.˗je#)i x#h7y'N|msӓ$ `*^{QŐ=f05<`}*&˂uVf ad@'Si 6?J=b/'-Tx-Q,jэX"M vG*0GS7i\Qja8:gGMt Eh˶YeS!Yazh`,=5Gk#Btetr5REqv<3Ջ(ôY$al~fF(1V942Súإ5s ԌeYGsױ,]]Bəyg7c9qfp? 9X8@:Rm#gVql+| os č؋k|ŭ( ɥ7$|'o_|'xmg=|<9yqo>?9I9}LoM' կqDB_𣗌Lώ`_/qӜwc.\w ~/eGoK~!C:ٯ{qkd*ȄO3G+_[_z>}[ZӳOsI}׽>f: g?Ҟ]?ߟ -{%~ɷj2s5?[rgvQWAr}v>] Ӂg~׃~7Aq׷}ps?,&"6W'q82:MY41u:}Atgv<=Cx-u]N{ ۴DŽl8ǂ&9(un]wYP2fx ӆ;8HOpgldC|{huQXvEe'1ׅF{QrpcG]7R WOfHyx4+4=G6%4+qHfb^_6&lssK%!Z3ubi*ma:^A53CƵ͸%Qqt׌@qѨ,.Ta Rc4x\i@8!/H*Lt-*H2|y) Fh p٘z ;剛=VltJ--%f75-,?'7)b,,voqR z1Nis!i@:B;a4j+٤RM9Y[&d8Ta,(+Z+R@(>084 (7DLZ;3d¢џ+'Jh2,,'p9q5Mʣ(FdSA3Kuh-y(:SAaoؘ`7EÁ1 14.D:flьm+Ѧhfm "6G՜nMkfhB@r5|UsXy\{ FyίzTkD]xhj` ׮[м{Ka㒍&. Rn s}A.=N(efH?h>hzr I~즞eX^j#[ΑiR5qHޓИ&>Y+Գ[ 0-,qI⒙n6B %IY/1aTBgY [v-OY䁝AD!\//^qyĞ 2I68?5H=`ʻ79?᝜?'NсrP0.nQ"Ӊ洛eu\/U=FLk/*A)\Dg-Da110oj ,Qk-VZ1ezUҢłҦ[ʻF'TJ\5*_9 kVm:YDOWJiFC+;ÿ˟/x0Bk2ziC/- 2#+8CDBA|!$h+ȇ&3ng#xbhcDtɲC|(A. TQN(0р)x7R4SgŰ5#ޣ1P`ojdj4aۏfɖ+EʭI7kj݊K&\˚'-AvhiN扉NӛO&])ċ=}Vt&5w̯93m奺 "ŝm_],ޭ[|)N0Wof|;^Jhy$S4 M,;;p?ŪPƺ)?RJ 2A ۈAX+Ūjjn,M/.% Q)\" R<ɔ.-)bM?[3 1bK*LxֺMڒp#;35, ,Or? -,$wS›C_+E,ã{X+u3@ݲQEeɌ U.@ JJcuLsET"ĚTe$[PB-EV&zmpɿZ|FҊ+Tv!";u1]$P;k*2}}ăxT6UTA s7'Hbv6kFyiCdž}\`hWSE(~cX1OY5R8;+F3b og}Ґ 97tlZ`^޽'I.f慹f‰nʰ?)E?Yfw 7.p܌e#/lU = D;8*fD&Bk@9AYjH P7YND?.GP il*FE doY7R٬bKI71-Ww0cX;fx}6lbb[XEK` %P^/cH y#b,2%DIJEUEF=oC̔*( 6 .?IsL*ls|g?ڿi?[s5þC/k7y 4ҏt,A *j)<2 0q ?A "yB.bA ;0 92 TAJˆ!,#LB)\r[ #DB;OJ524T50-+ ,4 %Ԍ(LA5\B(KÖJDDHq* E&C>6f4ŊBř tE!y BÛ!YԶN\BP\A8HS ?Hܸ †X -,G|8MAx\H+l N+EIlDPɸ@#$Ӵ8 ,,5L /opL"GH!?C"0Aġ: XA F56dQ V٢-;0&dc֒d@%+l;_cd*3CC&+o;LPn-V2N;Oe\e]MP+^^fafb.)2Vc^ffnfg~fЪ)fjfkfOafnfof,ZMJТ6blkv/w޲(xgkfޒBgl %g hBZ99-  ,_:`Ve0q-{s՚g2inQ@~6煣}SK:7s2>is%!giv1rdbi-..ƅ~-bҺ@\j-V1}Űc2&Nζ/J:lUp>6v.i8c 4 c, yR ``H.=@(p?`mC[WF{ck2@c?oZ<* lnn`Z47^]m6H6efnXsEn< L+%.nINoҥolnkn. MR604}v8e^' ; e@(FYCj$] l eq5ƁC;ħMd+/C*PDITcIa+ۜ$BKCL\\To MS#ovL/#' iy]GKC7w= rL? zr2;qb,79/iEk\Dbsl)hD/PKr>^(@ȵ }ǪثlJJ= ɡIïv>E U-,egHJN,]s$% Kclщsv\Gv<˖VX|_~~ $]阠znǯIJ iaG͠@p(y?OivPVm0N`MÌk?DOK׬)?M@Λ|'lOM=Tdm[/]xzvܰ/zzUz. Iwq%؜t#бvyL, wD%k(~ bx|ȇ|gRe']3VY5R摂וxQE(-GMRzPϿ$Y$uQAzҙg7pNo05 s}wL)_SG}ZQ+}5V:YEM]|P ~/J ^q2BV~&hRyho 4_`l %X#<2 EO=$E>:0%#KʴfJw2t"5 ӣ̂-_xЛD@( Krԡ4BEiȏ%Ҍ7`ϡ]R%`\rTwn]* <[ڐgOi7vt#N[ %RzMl<4XoiŭkԴAb;7jāfpU_=>fps CϣO&V PeD)YY`L=xOQ(j #D^.$s8;Tu=)ioNe=Y6dZ< vasqcT!zVH(/.cslOs%g1Lf<&yqv܉_\*ր%9)rhLM=X -JP{h*Bg~g.m5DRvvL i"/}IK}lW)ۤCiL 1MYW[۰,[4ZZZDŴ+zJyyJ-گX~u%vlӒfhuaC9eiMfq{4~4ߒKחeНONQlF$\s3OYW;_ gڅ [hT"Rnx n]'Lv۫꫰w_~g5K^`#{A=65? KLB8!};K"59~$Ktz78q_^G\$ݮH#7G՞u%UN fAbrgFUZ %?;n%?TK7cꟷ|~;\ZaNR%:.rC%7:|R^ ͥs; yݓ9ѕ} ,|q?|ڔ nqkU|be7Z-$(p(I1UmJ"$6.CB"F_x}ņ <5 < N>/7R&<(!4^;W}{_To#??w}AzbTWl; ֗FHj?Ȁ8O x@ 'Pb'G83 \ C 8B`JbQi^5dB P@Cem1tPl C@7|4lA>8 ~@8%8 >P Dz c-`(aN!]`@ aDV4Ğ4A`_Э` b r F H!"%`- h@`0*4\BH"n ꍠ vb}!cE a..۩a/&q A1SF b3` >-"l6MB8RA&#4@"n=a)-H"d! b6_-.V2).0d% XbB!0dI.IFK].VX%:> ! ,\fd]Bd2F~dFf% d'v&fxxbgхCa TdcpQ!AYZ#ca&1%rg`=ȁ(€ kGRB*lA8U(JXeU*ACqAA>\evrvvIy(}`R^8ƤV$Jdʀ @''6rُ`%p>`e( Ri&%6h )4QdoF!1-,D0h[eV-,!2hDzdb(Bjy(eإ%1-BDrA^cdFV A*>*"ޣ-@T*d/fϝ`i%TB*l@1hC|[jJ-N'E&C:zB*',6铲_a&Oz*c<(qQ i@oڞp**snjtHޥb奌GĞjƆBVdFT B֔kV*4Jf@\ϡ,l%@TihBV$\d:-1d9 RmՒ$Ȋ'֢'eljd 1@ٖٚmI%nu Bim&Rjmn,"n..a~jf&&bnZJ6]'S0@nnnnnno o"o*$1PoZbojrozoooooooyp p#p+3p;CpKSp[cpksp{pp pp p p p ppq q#q+3qp@;PK PKfUIOEBPS/graphics/ccapp015.gif &GIF89ae  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~,e H*\ȰÇ#JHŋ3jȱǏ Cɓ(MB$˗0cʜI͛I܉;@ JQWK<pzիXj &%PٳhӖ {OHbOUKݻx1'HqKRÈ+^̸ǐ#KLroy3kJ\SӨS^ͺuϛc)qGŻ Nȓ+_=`hg\7wĮv'(D]\Ӹ? p*M<b!9 h>80B}k$ (H:J16RY $)(GmSRC@ x7:Hs|Y܅:RuX&?A 팋Cb:$3 %gǙfg6.e+kOwL/xB EvK<%?q -e組!tՊb˟Mif0CJh!W=Id6 Wg s .0xb.Tc(/Z~$'P򕮝f 5HLϔo.AM40RѕNAѐ2;IA2Ԥ%l'bT)-z2*MT%MVZ~3W5jVպՑU$KHXߊFVEV 2ӄ G X<;Y [Uuka;"؎0v]\р,f5RY\v XձxADڋv#-QH9^ -xQMr:ЍtK_Inu+ަmpSDHY,wׂWgyK_ײ]oV[ԫܝ6 " 0'LNpU3آpGL\X#pM8 4MW A8αw@L Lu}i*|?*[XnK⑥x-sK;oY|ݵ̤(wwOYq$+Tom}Ϊ$ώ9i tg?|KѭrG=E7O~|$^p]i}V'Ճ鄧]et۽KuQ|t]tiz;> <[ϼgGB[D ^>7Y=[~ţ8_bD>}NA +o<]>w{^ҟ~wq4W=~ϗ?ĽQgǟ}??~ gz(~AM@tv-Tx`41N [Ckq:P0lCn"Qv(XHW$#~6AM>MoM+b*8QhWG3!߰'KXЃϰ'/"(e*0тH s:T Sv@!h.e<'0 o41"N{,y(N1A4B0@1>QF7o:kGWXQH at#h? TH.!)O .f8!b6ӆ@/Ucm:G `PGVte䊤.v; BVf(\8^x/ Vh>qCil cT^02BTȌps?!ݴ hh.W&`8@/( @?Ds30䑱(WlcNT6 39/2R>N}ѐэP(;_#0}惔D|QÏ D"I2<&ZDT?oSc?{$Q!LYǓ ᓘ?lMQh+J30pp1'hh5r8 ҊVSc5^YJ$ BK+mb4v8 xoW•ED&7`/Y1&D2;(T9/5y҅ywY" YAZY[S!O p9i~ٞwYՉ칟~e:[oJs ܲ֠vzL:o١џ 9$Jz*٢0&rjڡ7Zp( ;j= 9-EZJHqR:3hOaE\ڥ^_:d:9Xrvj*&%EAhtz(vrNpʦ&~"{z˱1Bn:"OH HZ[{I Ƶ 1H H0"MhCsH!EQ+9xF*ɷ1a!hH4 3"yfFVEɲ+V4{ю/r;O7BkAS !;,_h@-˸ 35k_7#>bQr Y; 7{hȻ2!99b50)DA_RXD/ŽX;;)v˳@DLDS hY ,581:Jky[t94!?;w+k;|lM*bH5ؘ!JpK+,A ?c7.*$M[C,"N#N£ho[1?AZL038W5廂X`5<6Ṿ gy?r}e LK|{,d.|ōb\xUɑlj} ^ 5ʇ\},[J{tɌh*2˾ʵ%̲\yʼ\2Wź|;ԌwͼqVs\2˻ժkQrbܓ̧φj{|L ̮*Иϕ:|+ К -+]qџ]!ў$}L!M GBW.r33wz-A=!"@GFW%\2t&Q=}fDFJmr{d5Pa}[=_7-{ "OQPbvo] #=c;҅R*$'r#jmO-i-&oU)(GbU}"VC]ڦ}ڨڪڬt;g= ۺۼ۾=]}]!0l%VbM`' ]=b׭pmviכ-`-Ku}]^흟F=i)Qms~"}j?xpB D\5^~^]%E<޴&*kcdp>ib('$I w؍~D~&5!4 'zaӉ%wp`ݩANoBޡG%?NN4sUA]-z Q;5QoS`Z2)Qu38E` ?@]Мzk5`q6lĦiNok=Y4#cHsY1V7UIH~٘.1mJ 74Nkm'!9]0BkS%> 9f,ַsq0㹵4.>Yt%dS;51SR)<(+#|ؔ9oư3 48MJM38M)E Jf.|s2N{AQ҆b5πKuz c/hP;3J34ZԶP"Cڗ/51?/"T))8)?*X?G8Me0im{!.T쨅1>SbxY|1K*Gx=/9# 3kx:."x`Q?|~8#_0 ڲZ€1NƐp4p0√;r7t_1КOY?|?ZFT"v2AH'JRirK"A۝/o@K0f`2ܬ17YZ$XA #P"!r @~ |d_@^LrJ(cF'"ILXb*5QQNZUYnEW%[,٧E}U6*Kf/=\_k0ܦiO\e̕Yg%#\2aip*kؕ/mܹu{U떴WL>^uda?ď,qO#7\.G.|g-m#*3 *B +ck9 KtNMTqȰ CChDAX&G /{% !,NF|/H(B(w>"Êƃp+s@B #s5YSPCuTRK5TTSUuUV[uOy1IkձCuQ;y5LNvXb5XdUvYfS[WE/Mt=_ Yn[peGi˅ZlSӷ]xw^h5UP] Izx`%_wI~_-xb+3vŎvm[*X[-6dxeւC,DΖ B0dg{gzh6hVziɰe/{. ,`HE6lV{mɆ6j2"P N9|p 7p+0wq#7+oWܻW$-8r[HW  zh3b<]7oz&+J^8#Q7|{~WZ`rY?NeL0?,N<_XNF)Ȝ&mDZ_x2Y 锵rq;f.mixpzEuH&B|˨,'0o&E|c<8v 4I}.[%y]Ht&y3rƵ(b'~VezeIcLLEPK;dŔ%^7t4]PT,'TOMAU0MOӫYiTvH$åBy:8;^T&e+GOgU%HPvNW o ,b{,W f^4D5g=Iǐ_lF7Aԏ E]JHNt$ZVYe"GD -*P E(H5%$o*OL`[L:y5#@+  *Hƒ!nuki~qD8֣|䯴v7ĿEpA ʮыpq D1 *,}* YE|! Fq⃰il|cX;q}c 9u "%Bfrd(G4k$'mAp\$oZsq|/$[&stf+awsslQ7'gyvY7z0H H= yJc8CɁHΰs˺XI/CGYPGvv\xb 1c<+ *t4cƄH 6,ö <OK$04ϼ"* B|Ƀ`rڛyg23JZ̀LB̿<Ť J=<1؃z<MŸǫCěλʒ̉ʐK4K\q3x!C&(NEZ-Gp<' ;>p@+  剬8PP-p:8>X*_14Fe @;:dQ @8SִEiCI ]3/ 6R+6U/b9N@D =yD¼R&8R LP$;S7x&ZS;-At;4ԹdDtTcTRὄњCLT#U4ETP v4-/UYZ][\UD_%`]^5cdeufE6Th nVoVp ({V)6cT3w}WxWyWzW{W|WٌXT#c XX-زWMX;PKd* & &PKfUIOEBPS/graphics/ccapp012.gifidGIF89a  a<$$$+++!!!z  忿rrr666@@@Ϗ???UUU}}}㲲999OOO:::ТŸwwwΣAAAvvvsss777DDDuuuHHHeeeppplllyyy>>>___iiihhh|||zzz///jjjCCCǓ\\\~~~Ťccc&&&]]](((333'''{{{bbb,,,^^^===ttt555NNNkkkfffEEE000QQQ;;;nnn```LLLTTTYYYoooGGG<<<---XXXVVV[[[xxxqqq888222RRRIIIPPPggg...SSSWWWBBBKKKZZZddd444FFF111)))MMMaaammmJJJN[}Eļ<6$̫ƚ!,  H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜIMD.􏉞F&I#č'h)QbPX1XruУq\s5Rp IHƦݻx[#+ CEqvr*\FD,I&IՋ5 M%h} A of 6nH>2P\ gq ҫ]μ'(ҿ$A$̐;\2!o9~@A~`h#KHB2@LsJ>;\` ;L\ `2 A51Am2 K@7B`F,t DQM$4D?lAP#C$  pP@'@6NBQ?H2P5ԌH\!vx2rJN$ݦv588ss3$&;qSCx9pȡwl?(9߰L' 3 -1gD+#2_2?$ OMbP:BZbMA-t@@00"$Ez2(H?ȢMT 0`1A|r@34rABqC,3&1fLA0,NjKt eL?(x7Ks,?~`,q%q3T88U`a5K?t` ?C0s {^vD<#R4^,T9 I lA٨)P AP8y"-o (1dQ 4 B?o4G&hw AyÅ0HBD#Q.T,?r;cE,> fD Tn5춷8Hf BExf:Am%Ag Māx|A*Ct%( ,@<8F ]#t0biO{AX|0 ;UD`ЉA)pE,pu#(p0AlA$N6E(AqJPmb7t %l |q8`A#8Q&!3̡8IN0p>,\Ab P 4QbNÈAXІ r*pIđ]sc'E<# M)"v U腁‰byDAN =<2%m7pXBna6y@qew("td,@q%\;с .h4=xjÚ'?o `s KPG na&:R/Qb^w(8AC  ܀ " gEGQ;6hPECi|s>{5Y 8EȠ& C#p 3&3!c0w|r_-$*7+'S0+UpoG7m+U!hh'tr x'@+ p` '07) -0p10  Ӡ"0 `P P1̐ b8"q@b0IR,p O BP- M .7@ ,ps V#C^ f x{ x]P| g`e-@ pr0 Ҁ=lu &65Vp '( u# @fh?UG`% Au 0 u xU@C+JZ` 0,0 Ё/*0vBXΰ BV"e W@ .N9f@P;pp 0 `HÀ o 6P.Ii+5&4 a 'på; l 'HO P'-@~I`)e'z@(wY֙f5]7Y\6P>К*噂!VCYBP 7frQR.0 RP`!iz|h > p- j aE)A pZ@ @p Je'+ 8ב 5 "J6T= /7P8hP#@lv7 B0!`oPGp Z: @ % ;  a&UPU ʦ` .Ġ jpoE'H I$E:8 Т`6 8PϠl" 1Z&zP Z I@ r Rp#}P ̀ `W  PpP p %E` ]P A|f 0 %P3$p@ B8 ` u sP~ 7c'אL`B0CP s@p ,19'u0 ` ?0r\$ @L˰D ~F ;  р4}PEa07C  `Ġ P'Q t zbp"xP-" "p .`0Pհ G cnzm { D P P b+z | tbp H 7Bc`y[& }x mX+y6i 6`@K8u 8@C h *7%7PZ 3 @U ,yBۋ P& 0 8&iBku@!=*ۿ+W` p  s H;q(A0|'=0P$ S) bȋSP :\ N 3PT,]:ĦPI4 렾ɭ/=PBƏ o0]pD` 0 kP'}`~s ' P`#`8`P ]0X@@  9*xz0g@ Cࡃ  Q 80(2 *3` ց S rcQ1~` )jPx k 0~p!0{=0q~ /P uph D o 5Ű nU}P uZՆ9pMLJ!#ؔ-0 'P /P ?=P/`putA ` Qٌu qw`NbP ޠ @36  @ RPI4`' ({ {u)|L1p0 0 -P 0K@PV  @ w` "  n0~@ zI.= ۰)`0kP ( `J SC ҕDp쥡Pt* > `P;nd0?pzvP' vQBP Հ I %Du4IUX)aqXBA YVVqEWu"Ë"5@]@F d _Tg”ԽƨoåR<Ȁ-+*4Ʃ;JE`f7 DI:;v.jǎ"9S DT@`JLZXք+N)Yy:8'E&D zȆZy", $P! T(ņ6p& l ₆X%xa̭8dgRȠmhc' JuJh'QkV@Œ) Xk9t) {&B~ie݊Vx9)6A 6*jB QCP`*Pp@-,!8G;  `6aj1bX؄c0AFR %́W @ AG  6H4` ^*eg" p;A pL@O@I4E', X-XNd XBƽyk CR p$= TB< m &"&b1@ k bp` "!pV ıwXcq?R$,ZVRL'AP^Sxwؓ/~Я#h)Ђ+xAu (&ac$5 1؂)Xz}͏bL֧ DZi`i:Pl`xfq1A$vQD<$@3c ) a#.X A1ox ` 7@0alЁ4@ a@yV@-ܩ$CXZ։nHX,ZhE " p&Q;L&[0,sC8A 0cs%"'ONP[@̀92jL M=ymmZ.Z (# A t6(6r0@ӠІ=(#YMoDiFdڋW8%P/| 7 O1Mb5` 0- za[Ԅu,am+AJi( (P\ Pb 0R@<$0eL 0g6Ht zMHB {WA1-IQ BXQp1-jO|mY;)+#Dt@ ( $YlN / H8qhLq?pbdH4[N64 ݽjRAQ"Ѕ:S4"pEoWLj-ahKFL;@j)?) 0Ă w#T PR$ P GAq(TT.͙Ds;aA(2D` m&p=FhB(h<c$JP yHE ,Qqc $ VЄs"X ")6Qr(ED0 LM0B  lp Y hhUx%En)PC, 1l.Cp^*8`)-P3f]O hѾ AiqB=t? sODo8});7A/\dL?N |Ohlurۉ*ROP?E@0a |d"hG-^F?GX-@E(t#2#pCZP66&i Zpj`JB0] Ѓ&nX(H"I77o@X PPLһ 2-%س"AX=x ™,؃4>i760Ң8 8 hs웸m3 @)@TxU܏ w1 H,p0v]H&`N@@PhЃ=pBȅH-m@$Hkh Pß0?І)n I82_Z8H8ZhNB> h%SHLWT [8+2-3#2q( (+3yŊRET/܏3+[E86Oe :(L8-8> BȀ)=_< ؓ!X0!hkQx w`n@.=AP nx`D^sPqH[%\P 2UxR^WXUP _2:Xb++ɖ,MDH0jx6[48 hhw;bt[ȂD.PV$ @Q`P%VnVoVpeVZ}'BHr]DXtBڋ%Vh1@<<++@w G`yVtiYH `($ xYYY%`;5RARR=H0hpxЁ4ȁ'ht,dD]AhE@xhЀ(0/3m0OP >hMEP(W:X\m\}\ȥ>r ܝPW1\6y6Hu־# GO,Y-Տ&؆!X7] ^u14ҙ];P hv]ꥊ Xs X0@EQ͉0W]ݏ&X :x_`nH]ߜ5K ĆPЄU*h^_(=M`Zy_`7 -an.81h]^F &IFC?H`﭂#^8V`] ~a`Za&Mna&a,@'N1 3  0 ]#f $`b.i_b?Faf;l LU;1^ڑ p/05?`f.6Kcc\bBn =>?b+dbC WxFf)c@KL\ݟ$Rv.'fT^e*ne,&X^\'d,`fLcΉ'zt]@fg_ fn8eֈ怾_jdl)SDZ gM@V)Hguf5bV< CiB+hg^*j~-nfR̆L}/.u^9@i(Yh\A0a|g~j~k^]l0k>?lAhinWfb>@`H;< c36((jjMV>f enIi]?x`0 mڮm۾mmmmPqR.Fj`HIk&H^ 300qH&iMV@_dՎ;Ή0#oom,`!n0nFnk.jl6lnEI(grB8 7iT  ).oaVox7Lmooq J1pFpƦ_vpx'`"(;("1N`p;U89 (qGqmo0r$> PWb  ?tD!p`!@VrXVfn(r*+NoHbPShq0*CxaD(ȁxs8?&irxV<,+؏?'@GEi-DvjE/`t¦tLtNx(@S LCv`h*0Zh;؂Q`@H;,h@h]s(_7oτa?fghoCmHy_yoyy'2۾v!5rJvVtqrrsGwHٶ']Xsw?y>11@epez;(%kd`s؁@xنu^x_s׹V2kƗ'mGwT.@(n@.6. ufvIgJprt?wHzXz*W2*,(>sПeP8ȃ2Hul$HA$({ ^svK{w <@/>; 8@rnAˌ 2l!Ĉ 2"ƌ 1   O? 2gҜ̘6it'РB%Bߊ'NhʂE >ybʐ=z@6jUȑ :r !rq$ zM`D$I,a 4D nP1#G @2Eh$daL^ 3IІBQK! %E@1!‡c!F ҧSn:ڵ+|A7H~"\;Y%x 'Ez͚FBG`!ڛż=xG2P`]t" <NȐ-o*dQt@,q 0# |!P-L:$M )EPTtC44P)@@D>yM'p"e4At!F~(ƌ!DߖDQs"@ e/8] hB> nI!@3 0(@:mp7tR(m|c$ Eɉ!4b 16H%ΐBd:L)A0gȤha/_#?K d?41T@?qDINs!L&%7fΙ&)b?p'pnҋ 9UNRf ?B0<\#r?f} Y  !ܦ<瀒4'HCPmd" E)ZъXԢ&4Χf$'\ [` @ 1Os: bpAӇD !%klRbVVQF:%1VN"(f | 8M-Ҡn ,qX26p×A: H? HG`#r(#Qu9B O`a;@JCfc%RҤ5Mnzg-;> ,jb E6l10? l +q>p ;VX XA吮p2@хW>Q,c;2wHQz"ݬI}|:QB@V ,f `H7@ 6~{`:R.dN3`]cyOv$)33/cS,d7Cf9vHCퟒ rC,5^msCr 4b!Ҙ@@@߹ʞ[?zSD8chS ;)I+4u6]N!5Km!w :AU`SBbQB )# q?\aYyeLP<:/ u?5Q O$ ML`!]p@ XT?3FrXp LC` THXA 09NouM7 w~_N0bĿԩ?0PH,KSn&l ݎ'Hgg!60|cȆQ @ " `4X8H6 icg7}v5jB-R ܫ]P(.Ķ(1Bśil P?  z@)D Y9T5p*C!(?CLCHL 500T@@1 _ -ߺ:)}?)+@LZ%@5,20?wHB.D O# J8Aԡ!!!<`uLZCѝ@1?\KtH?l`!M"( ,uCX,MEQ5.D 7tTQ1\\:#;;#<ƣ<#= N!V8,B#Z j V@C58ȂB4 $C*D]x28B+BĢ, 9BtAE-$S-D D!B"C\74?d+ȄD!F@&@<)C Z7Oa-PA P(;d^@??D? ?T2?x \p*^-CT-F~‰=J$MТCP>}% -M](IcQDB !`+R,0$r%0QR388,DZ.P[VG pC&2@1R!؜?p0T\ܥ>UT(Y&VC Tt&}t6&K6C@0?dBk%FzBhE8,"F8 ?AB;%? W4CL(0 t@&8@xa3hDpgww>t4g&u(lDZiRMQRҦD٠EA6pYfBO\?Ѐ)u????l.DDW1FD"(D 8U0-J EFD<@" /,?* s%CTA J*,[Ṉl< έ+Q-M<-U $DD0B`2 ?XttdT %@L-D9|ɭ& D,mD?\B ?phhھCdBiÒ-`Pn|""*0t)m߆$l3|@(Tv NCO"\*hzA',#$CC#HA, $L@4HDP(@* fDC(*7q&;B@(|W#L#oeF/L/nZV>RG 2A7|3l dVǙNx0Do] D.B0@\@:@,D$p;L0?8A5BBV0K#1(1݊h]JhnD[q2A6 C PG/@`-ƬC?)ay 9 p4 Lt@. @X,\@0ô.&˟ m2''eCf2@*;ްr2AtB-&R~ @T>DMQVSW<4www~Zh0A'B46<65(F&(7AtB/"S 2A1,B$%p/@X$5HCt@A*Cpxw*K"WOw4" +,6;+t0Br?$eTK@>a gC! ;\>/@9X*ƂR6$Be "zb++:)h[-HuB?Ѐ0RB.,PQ)) <,zz牁?t?D?LMۺn8B#/'UïcO#{*{2;86xآ ]HB1Bp/r2C΂8:0<4bL7BܺF`+xB\1G$=t&O@ y/D BCUΝ{6<'?< 7D3Aoq}#0C)h"l"|<||K "+3 + D-xBZ70D:A)4BB|Aʒ=Doϰ??z{l@FDŷfDAl 4~ЀA,[J 2ԉ6J[/Wd`\_04lC+0bDTwgN;y7,feKK6ujTMpkV[r5Jcɖ5gٶmh !>J6PA nZ/ /oUm/E|sd%{:d- bʃ]顈k ȑaViB s^})Vfy r0ښ]V؜I,枛Jg Fhvk( x @pDSjs9"8, ld蠄YؤPc ;6Ղ\UWv(Ċw=sp .uV*#:ik3dgt\C @^ `m9Gz!> `i (Dp@VDţVMA3*W@[)8\kN7nFϲT^GlaFYl޴8,x^?."DA.,`2:X;?r8nX %@|5EgAZP X5h A79L|TV N`T1$W0| '؀8` zJ@";.^ `"dN, ٨E2`kė"Y `@3lvpD\at(٘ 7FA5Fٓen`!M|6le/v-iMZղֵ-mmKꖷpk\*to ]Z.wu]5o v08]ZΌ6.eE\k[̭>;iO_Z'?u4/xn)9cƳAgāV1 CX5nt!cISA9#:U NDV.6̒(Dh ^p .C(19+fnx6G3lg"sA/Fi;ZǑqiMFM!o L$+};%hL'^2o6 ^uCٸn`HA `,slbH0 ]M#Ӑ&T)Cq\" 1XOBlX^mЭnmL v "azEO $ oL`t4Nހ*!l @^a   h jr0h / ς! m>BI.LPTZO^djOntnZv,X   A   Ő U  !{נᝀMIz,p28.<p䰭 RNV.\bf.lrx~ @a"Z.Q)219,V@O ǯ`zop s@Q w1r,p8 ,p3-V\obOhlop/td@ kFY"n^nenN.x ).IrQ?y}1 cG'Qp^` !V(W371%BJVSSKEE6$+p77%1K&OwJI bu$\UQQQ+@ tEKP/!/q?k? 3G3@ߴ81sH ! < 3PPQXUX+R'UK-0K6?/eLs%o?G4N@t'ŀ 2@BA5WbWWU]ו]!UR)UD5&/SY=FS7EFӔ0TGS@19T95 !uҵ]+bXU>ID;6E;^tS6/c4?U%m? @ݔ88 4H@A `3'bBbb/h62X5r#BY^_dLM7q48t8G H2UPpaa-\"hmhmi+Ui+vEAd/3760WTUak 11ߍtRAЖquE_WNTjUk`gkdB IwsWמ7z8X=9cMcC)4E "$5_uG V`.eOevwfP,P!7m[M ՀeS^CzS@ %:u7TgM1xv 7wUUv `kqW`UUfYUqq @ bO)ʘoxX)8ma@ ~Y٘adġ Q.YgY>VBeUw`f LhAf+aڠmЖAsZZa4@ڡ#Z'Qa@R7 `4wi`%/&ȡ.y`8qֻP `Y)j}s |@Zڪ!_ R18c[AL/C9kswCYGY ` y" CXءazx7;aK|`  ^ J`DHn5bZZv 8A{` ;߀x :ty}˹}E9 T ;>$o1 5C"Pۿ/`d:=s&@W@ğ 0YSIqBv6Uckkzv N/`zCo9tZʫʯ˳\˷˻OQ Ԁ&!=r@F|@6\*RaXLUe5pYcM?yW[c Ry :`S N! {,W \5` fkos]wu T ւ TH ԡ d |,B@C ?N<'0x*tso@x2 :U@OD]ݸW@^ ^J V`@ ԀP!չ}%T`oBXѥ"@ W8o#A8-yu% !^뷞K ȢX!Q !0\JcL[ vIv; wia[8~Uy_k\f@akgBb(bW KBb|ġN^,6 b H Xe3W'vPa}g 6QYG@Hױd-lۺ}  Ltꔽ7Bd環 .#£ *T9"` ab4+^̸G$K05qQ//bB62Td^DI!T)ċոY/D _0?*Aޡ-С\!F+x- lk'tKOэ![C1G,n@s&pDj;0BвS#Ř2b(DLAd| 0# \"U`.P^ S*"AB zrc`Fa b XC-p'0 ch  p?@D 07#z@DP h)XWC@)r : C|'++p#$$b@?@G f(AHG r,o_|4osG` Q$hs &qV ~t jp 7\;D 38 u`2p0$bRp!lG|}on@v'Bګ 0PB? *a3p>D/7"4'H_? H 0#@un aC 0UPZA;1 0CH`iwB/ QFi$b)@ ׏"KAX1XH K P G P 2 SH4@LG$ht \ g q4P s f0 h  ivl' = |'2@``WP @@ ` ``QUA}>  Eexi EB~P /P ְ}gg}:`<ƀ~Caw0 k`πp 4wA7tBK 1`r#re cPA  2DAPww5GRJP "P 5` PPT`OP* )05^ʡCJS0 )e? $5 t&`Z? z`A x0~83 xwp DP !0PG`PEx7p M $0|fXA|qp ?xp@!RPz>p@& p I 4 @ePG a}ъ) @0`>!`p "r $@@ q $QdA ~ `Y2 es g0P0*D ` nv 0p?!?Q@7>p  U i>y yf`^Pq֠X `eB:Od]@, f#_0O  (P ynp3{d_P"( |y` ~IDqu{;fPˉ`  Z@ TP]+`uKp pg 00 U ri X v D+ P͠ P ; g` }{`@ 0 !T )>FP>QǠ Zpp 30 @Y_` ! l 3P> İ  p %lSy+-/ 1,d1pe :=}5cIG\}`P.x $yP S4 "L@'[,@ .ws* P݊y } ̀ ` G 0Xp " c ˠmwAp .Toq0Pt Pp czLrYì%qgy` w 7 5ɡ ven p5pY㬒}QB }@ m P pV] pF  dS o` oN< !`}D Gw4@ K( P< Өа$d$ [0P<1 sMf @ +MOx@0@f4p29m 'x >A JPp :` `Z|`VwP%@T0gMٕmٟٗٙٛٝ ڡ-ڣMڥmڧکn;PK۸W;iiPKfUIOEBPS/graphics/pethilit.gifGIF89a@PRcs{!)1BBRRZZZckkkssBc!119cs!!!!!c!)!!1B!c!!!)!!)19)B!)BJ)R)c)c)s11c19J199!9BR9Rc9sBRRBRcBc)BkBsJB!JBRJZsJZJkJ{JRRcRZcRkRsR{RRRZ!cZ))ZRRZcsZcckcccck{ck{c{ckkkskkssZsssss)s1sJsRsZsss{ssss1s{c{!{!){!c{9{R{k{k{քJ)RRZ)c)k֜sR1RRkks{9{Rs1ƭΔB)R!kZεƭJ!Z)sssss罄l{ƔƭƽέB!Μ1ΜkΜ99J)ֵ֜֜֜k޵9޵JJJ!Z1ZBkJ{)1J{Zk{凜k・BΔsss{)1J!,@PȠDXȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0+&L؀8s\#`)j(]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷gz@OBR(jTD*X*È+^̸ǐ#KL˘3k̹ϠCMӧ_խaa. ~~a! Nȓ+_μУKNسkν~Oӫ_Ͼ˟Oo߾<@Dd& 6F(4Ӆ3dĠB(^$h(,b.`c] @)Di$_\ϒL6N~PPViR2D\6ل;& bG1lp)tix|矀*蠄jo&EMhwEiOB |> VJ饙n9t*7ͫnͬj 34c@!*k&6}EPU+f)=pMBRk@ږ~ OZ7=>? kFfŻ%.mc|-Do%"( y7pL^H| Hx>p}jba:z'0M/oddCa# gB@0!G "(YOØRGy ~ʟ'Nz Ȥq 0x ^cpX!D@ Ƞ ] !&Bf2B:̇S&qBES(մILJIɓ{R`y7GB2!$XYW -2 L0KyLq#^F*6.irJ`27G?[@5"!n*i%!RWb/N.i\>F4*ABeDcÅiiB#bՓ/?$"꧍N/0ghj b356aIM跤jz효R9M'rp' ?j!N7|`%;hϚȄ=zB`"Iz>Z^Brh&](0gBY+{Ub'<)]bhD7)]'OxL*'YȤOnмly7FEo&8}V)k< IuS IŸ6 Ż'B/A,*#1}p1Ix]FZ4LjouqCuR:ZpgMHUN}̀~mdY+ LG&㖇T$'Ck:$YҚyY{ %QJltm隤IB4ͤ rҞRG:Po:W'O곓L*7Lfƙ/ ;ع1iO+H@*r-٢Nζm2nlJRp6f~2;?}[si?mv\ÔM!,/1I®4^Q4K6Ɨ4%<(,6 QTkҳxGfTS< `uuD[1Op+ Kdh#Ob7'r8C9lpOJ8@CK3IҾ" p@~-&)ڹ 6(=Vn7q oy^Fa}/V.YfYv,Pv?3)hU@CǀV>j|M𳦾L*Y-YU͗p1 N?% X5L,d| Iztmol.''"73g~_z?azWd|~=|KMH,ymzl|@|zuxzKBWa'LUv&hZ^Cݖd&xmoGn*hnt'@S$D+ذisen[N3xC߰ W%{MxuVBk&>K[p7V(` wC+&StAzgGhwhfhBPp pwk]`'2IgR8pcvHh&%C]WGY8`hi3 8Z_8aBcW3hTajBQXpTh@W!րfgf!(v1P[7'(m+Trp^ 5FOrw; >xRNN`o̐0Hl偌feOs|xp}zqW(Ck؋LC8r{t5ȖX5 >x! X'#x gJtUs%g؇y Uᅉ5IWa%gIC1R^&S h@Xxpc5I)txV4XmvϘv뒌-X2HGHw%%@k"So] eހ $nPqK$YWj{W pB qyy@Cه1 #ّٕlPH+Q-{t1I\ PWrJIgY=j9rfjfP &KHyP畠3:[46GL9LS?qm " e\(GxepT` K8p5]ql`zWgE|uzqr*IqLt3f|XRɛ'Z"ّgyţiY@gz>::WćI,'Ԥ;le\fW) `w!P*JE,hY_KG)=ijilYYF>!v٧Kr! /$ş tk+ I[p7 +*VpZVeogpVO 64 q Hףn8 1c u  ߺCҪ|m%zIyl5VKoR0cIi-D5f2C٥YX'zuӥgȪ5!7x(&Pw=yCnY.mקQ.!:Y"`۸ $*J;(`7 PZ \\ s^ڪ'# qz$@ AjϠqʉʄX; `16oZQq(27zQrEz˶{>}tNR q@$K۶[Im$vWxƺqʷVbmkTtPHGһa%-;0  -,.[ǫ 2n/8 \>3A;Ao1JS*mH9y zNBIrʶ[$pj>B=!*8;{V] W[+,8$#a !'\Rhc`0ʾ sA }tL "KsRE$Scm a 2 F5+986ۻ8ŀÇd0{  $YQX[k۷$Ƨ =L+ 1yL,ÎPL M;  Ùl&{Kg`̨ɧ %C쿱״؊}Yϑ pʐq=]}]խӉ=ݭ}Y8%ׇްλ}0+߲B(؛- qQ 坛PR Jg 1E=E $n│⬥p+ xWet гBz!JL^p~v\Og5MZ\^ gǞ&A a>0>gip ̐z. ~ B聎37QC _>^~ ꡾+ 颾N ^~붾~舎^ZȞ"HOr YMSB;J">^޻&NЛz4 ^~?_ ?_!? r##ܾ"?$_&(*,.02?4_68:<>@l.W ؞JLNPR?T_VXZ\^R=EphHlnpr?t_vxz|~?_bd.q?_opo?_Oe_?_??_ o?_ůOְT0`//?qM@ DPB >QD-^ĘQF 4XS %Ak{|)؞ ZR&L ԲM "H U'E;L$T`֜.w5- *-{viӇ?1iݺgM śW^}8ǐ#KLrݦw!:6q݆n B-WyK5b@Îv YӬ4]*+*V5m}\E4ʂw3|.b ;wZg\^FOYX@E"a-p;W=@Qigf"4 Қf^s\mhA8yi1X䗵^bGxRN4i#8jnAD,&KD%KܚA C>-viZ d'ỌRBMԥf7Npd}/iN'(ԧiVBS ?EjRS6թ5 jIԢe/Un5/]D:>;Y?TfQVծwūKo5l`;X6կF=,aX6ֱ1l;YVֲ5*4YΪmhE;ZҖִEmjUZֵֶmle;[ֶmnu[ַnp ׸0nr\6׹υnt;]V׺nv]v׻ox;^׼Eozջ$d/;_׾Hu+UC׿p͗u9p`2o%aZB!LKa StPU Y%@6px 1=M: jXuuk^׿vt=*4r{BGB,jWv=l@:A~Q,Sp@$lӉ~qEVQKoA(-wqtw%2oKA|ȷSO8x/z!5kh! Zdik/6酄\" ΎYD|"Ǩ sm3s[9ЅN{Z"Hү٧Gx~ K 1fmb I8L׶ B$8W@ ^N uO#H߂Y/_ݖ=R7~웅< >`56Lwqۓg~?|G~|^VQӻŽ~|m ӜGNB L(fBhSpvտbX.:k =? @?;i[ 5;#k$4DTdt$AtA@=c?7s<-Sj'('?SS\$ ,+7 ӿRC#Cz-@45.¦˷<VXYl`><,HF->P#3`l:=;=|KeTBg?h:U0 5kFm@]E {|}GLN00Pd32-&ܴV?j`(k`BBKy+kBF=5RE5@sd5!mdB8ISIəɔ,k1D J G# Ǯʯ˰TFC A#R#2=ΪI&Uh*67t'HT?^@DMTD4DN~$3˳-T\3$ 8#;B: ,:\`&jCO-pk-h\ԯԻ4GOxKN#PLI$->O2s<%*OPBp2BF 'PΒJ mQkGM mNڀ  pN AcL6B uP>j,jCS69(6@K \P(ڼ- @UM<9T=@%p,QA)=I TCMEQC;(-0p08/T!Ů]JZUV]+V23D#,&=c&ݬP 0'mQW]Bh#Q-Bc60qm0E1T3|OjkUBhO`LOj;lSDQjQ%Sv,1O$JUc vTxX݂MԈuCV}[ЋVW%Q(.lc5cUC(UٞZU/=P`(`/5.ȀRZZZB3[Vm0-P8VޢVx[2E5".?Dtmu64݂[6u`K}S-S[%VJ GAI6!Lu=TymϝJ-Ђ)>TDX=k QPe.۱M5٭]m4.5xZw^Z _u.Z] ZY(⒄/Uu_ [*Rp\h-н^ZZ" GT^]]dB=蘸6}H֩އhxih7vhMh9hi_Aڕhj铆 h^ZB>j&.j_Pd:jޥڛ~?&ߘ.j.ꜭUF` tdI?-򄗠`d,މe< >X h(̓XlBn;rTORe(3SɅWy}vnטgbnFc X2tBU7͜v<-2io@q@ƻc\:=X -pg^7-MV7ֽ.#cLnIfmXcTxXC_UTv._x(v iE*XdhppHkEFv`% pvp>qxp GpkvWq d']p9ZNepj"qG^Ak2` r7r$Wi%GꭕhO+gs sydQ-rN;Uvl#X f!lQ~˞NftYf:x _@6NYVekll[SxEz6a\?ha6 ݾfd4dc,B_526nӥeS:d'MB+U擄o;vLvc IhghPyjwi @vsscXoK.ook2wr)7j)/6c'.W_hjpfUAZA7&yw'Gy+`نEٟosO2ڀ[Њۯpey7tkzE,Lt|m|vc|MP4cgwk}7]2Bvg}~'Qw /Vٛ_aUqObq/~z~%U~ p=pI`e~0sWp{ƒ6@x #l@`*d"&X=e,1ʒQdX J$MZٓϟ8(RV1mͪ_mDz)֦E.LA`)خV`-N-S<Y2:p_РMQfQ>li h}ns͖V@jЭ mB (`p6|ؘcF%IR!=z@U|U-ZL-VIfJ%-[GNr6ܻ{Acȏj^{bb'xW^T{`Ej[@Vmx'}W`rA5HbN1M&N4cL76D;"cW!"YL4#EcJHdW"e:EX H90Q$ i%L#q^L.9d'HӖ]eM1Db8 ӢA$%e`Kl̼b~EEYwѵ^w^t\ze*`aT~YF`%AYR|im}V*miS[qMh|[[ƛo=~ m(!| a,! {0>E{40!e/zG1ŝ6L^~%]PmJa.@#fPe$@G31!cB4h"> M4J3M(Ah*W"hE`7$8+Ecp{iPgHE3&QEi< *0sZ%VVZ6Uk]MN^}\q3YzI4Oq𵡅jܖogI8B=zSha^*a}!GLO·>O_=ʶ3tg~Yhv30[A5mB!.kCE%PVi0&pIQKS MAx0F ic!D2|$&T"Ul"q9tshbJ,c 9uZA{ӌf-- m@BMj< F6j hЭyĘ01z1}|0H,-p  x !/ɣ>cj'`S9̒+"`.x!ڂNDݘX6G$D\-1 +"ρLI\>OXtGwМG?၊GZ~4%lB#h@*J'TiK}#" aٸtЎtl[JY/ e(+EsTSՑ)[ϒ9JuYQ :DgX 鰀~¤dQo S&SF]SeL@O̧Vx! Y`,2?rYQ,jVBgRV(gn6 8 Dn1H~dcA -A6"t݊h7L.F;řn{ƒnE\JmnD\_"vfPwxߛ8*;~.*R&xL{axk DM&mm[[w7C,XUW"%-oJUeURϊɶխX݊n+xfCtR5)EXwm[6$_>|%؃15$1٦)yAcE6ff]0*/s]}BXOn}[j=d!j?`ʵ^Vh Q%. 6`B[Z՞lKw 7a 0kx`+C\&m֝9|" 1ʘuZA u^ ZH^j aEV^!fn!v~!!!aRa!ơ!֡^m B Om*VĆdE ձKaRE*tg`mQʗAEUĵJ&&b(I!"++",Ƣ,"-֢-".."//"+0c/Lš_h@am5"4F#4 S8Lb Z"̌IA^!#ߝZ9>Z;;#<ƣ<#=֣=#>>#??#@@$?A1lI#C2$5~O Fb F%`^U (G~dH$II$JJ"cB5$LCZch#2\8J$P%QQ%R&eYRdLLFդE.JL Rne4~%XX%YY%ZZ%[[%\ƥ\1(%^^%_eTBTM\%3 %W&fV c6c>&dFdN&eVe^&fffn&gvg~&hh&iie*GZcB\&lƦl&m֦m&nn&oonJepLf!q'r&r.'s6s>'tFtN'uVu^'j:<85fuwx'yy'zvrzgz'|Ƨ|'}{g)x~ڧ'(~Y~#c"OgFN(V>p>v'$;6$^(((Vw&1TCXGeUH4#+Tbhjf6Zzdޒ&>P唊g`n(6ErĨrlx B)Sd6EDLA4 xi)A$XdEKN.tAA)W*\j84jŘ<*۾VL@j:: T_k %B.8@&lEY@fE6:*<쪞*ȖL2+Jjl9lƆBF6)"> )~% Xjr(S)Vь 82R)S% 5*ϖm-L_2*mE-lLfmvB~d.ߒl"8.ȪFSxnRnT]nڬZqn ,mjn)Hfvi~-<{LA>kN *d/(`mhs5̭,n*讂\TrZp^j\%jR,Hޥ0nPlVl+2p\^/o@j~oS k+$ok.(A)+An~0HȯjlWo02 ѢNp5p * ,+wB/ [1gq1 060^/pS1p *pWqj-`<"1 Étt%9ARQBB///̅A*r%(5r"%,/r-)/*;1,2,,G-D&*3r52.'LaQ-nX"32?$xa?,8PA2bk3f̠%KL0gKU.2l ^b=Lt!ㄐTPT\g&w绯|x:qSӝӎO @@1PJ?(OA>3 /@.C оIӣMErs!J6 c$jPA^Р^(_RyBAJrP!*Đ"€L2,6{(8B >5Q^ ׄ>2 %(RCGJԤDDE5ö|OURpkH)Ӄ`\m JIEKY5mQ`UVVs<V.DK t }Q\VQUMa-KFsQj$njtwz$ `^WBW5R[ V_xiA0&lIٜdZF?wx5>*,_Ӡ;MO`k5B 57:&ܨ$5KmIgG yT#kѱl;vHh8*ΚVaC0N;>/G.qe $*ۆTs7j+o(>H|IW$CvkBt%}ܘkTFh뱭n J|Zvș.w)# 2̬A:iAri@LL @. tND`gTIhAu OKàwB` aCΰQ qHPo zHC4C$.M$EBq=_HB)O[F1e4A ^lG9Αu;8}qGA4!HE.t#!IIN%1IMn'AJQiaPJUt+aKYΒ-qK]/La41Le.t*?xL"*PMx#7Nq3 9љNp"t'9wf3 w3'?Ms(@2Z|Ӟl?ik3lh:YQnX73~xQp^T J_N͔8'=&:|Ә`?1Jp?(QѦB5@*χ,*6Rt#+TݚԎ>m6){m2Y]eٰ~U(*JҊ󱚥j[Z[-[czb`m"'* x\Sk~ LCkm.V[f#wMtp.wKRȚYMR.u U-qE\׾/&VMW4_Zi.ͧ{'8t^. b*ߍGx+K^Uq wN8*ucWEV)71) e](Դf(WTC=TSo}^iy~Nfs`Œ9fjֹ2)Je,E yk^(rZ2Tp#y~0ig2[淄pTbӽ\^$ґfӺCVA6|<x/&=aMfks\F?zc .P\#tץ= jM[[n5qmR] GjC7=کbwa Vnd\>1nT;޳mi4\m Ns=[WSlJ 8fCU3wfBOZG8gOM^7_YpMI[Jm ~ҌHBRj 0./m-Obo>S00L?-,rnNxL܊ Lo%Zl-X8^& bfM> 4la i`&l~', -鹔f* ɬ ϰoRk Ѿ0.%Qp - Cq@N4(J -1ꩊnQGQcjJ :ѴHP+.j8p0J7ѩ L.̭oFıp I Հ a ͻLa   ϼXq ֏mlM!##?"X+Q&j D&N"kRQқ,02M#?.m(M'ɭp*.$)ژhr'5Q( q_ E2HR2" Ѯ%R2mJ"3J+I8mRһ/}rp+)2f5F h+3ˊ* ^sj!51(5URΑ7҄8k23#1 s3 DQ1'2!)3$)6 K*enߜ512ߓΞW+D,Ol:SD0}8I8+cs?,@}1;|lmBr> * :[ژm>.aޡ#vN?3ZZNi.$U 0o)>_y*<91LN_ӹPU\*)u_ B[2k c+*_G1_TFGTB^`3]v,i6,dF tZg h6D^']ti gϵQ;?4dj%\u_W6df g]U06hEPհY[ϤϾkDŋ`\ Ŏ M/o ;mިfpMmҾ"k2^S^OtS(l.DmZt+rkp /2~w'W[e b9^wcQqas 2 3y0! ɺ,7e'̬7j7uySsml|aWm@W@t{R~ (K@}sU<E{q/[~O>>1KV:UX5sk2{   m;^ѯQS 0صozAsRFRPN>2+ze1U /q" .o lA8D9U/M4H\R0edz2}wSQFabY*Z҂5+L!ӆ@qde 9AmU9% (`:Dp@Q!iRV֍2]_^YatUW^Я6tSe(5;U;}!+H}at=wcC5"FVp`G}6WVz,AN R=AGk'BeUpuH҅#C"hԋG]S Eי`E9X?2yIdd:X^}ieeFf}hʹ]iaC{nz9Q)Po5f }?u}5"0*NPꒆ)\V!訝I:bZ)t\Yh)Sߥ*[3e뢨>Hc7f!Tx=@)O(S U =2~wZv`Sqr,]66!d%~5,`N dəgF_R9XdUp3yz.53H @J&goE.Ml_?5*JE3Mܝ.}mN% %1D'dPdkq%ڦtvYc)\rq8wE|ho9GQu8Ձ<6>q<]j%D1VɔI͕[- V'S6Er߫wZ5'3Y/.8z N;OVŚe&` @ Q^;GE.b>gX`CϹ_NaO@@_2Ev*^jH.ɫ!>\7Te |!%\dt3 p9O3`+9LDVHBh"!PdO0! bwЈcA" e9K&9eF? ҐT2Ht,SE1v&}β4MoӜtE 0Pkb6 Y1[L d31ʥ|)Qs׿LJjhU.(;JɁ0/[D/}_b> 1]Kr#2̈sJ.9ilKSf ujݪl OcEz'*i3!*<`bǸ8AXWǫA}6ֳhڱ_ǝ*PZ8 nE,f|xT-eCO"'D ms!*cВ[dQf'K.G>:wô 3kPO"%4uh@#8d {U Y-q/qx_0=u1P:(Vij'.c_Ek҉6o3|6Kd(5N? 8kwܨĴ%EmiGفl-9ssy|YC~` 8L.4]\q 6;imA!U\ YX c[~6KB?m4"`s S:Qh}!Ѻt1Zf-6y_mbtwkyru}.򘆈9iKt,KNbO(!rkDO%x"xB-CP$%^ILG`f&Ab{9[~F (M8|qYE #8;1 AGP~48BMvRikgA_%r\&4c{H-$~U,S`;n€)A?p{H496@\8?adT7*0"Bc8b!ze#eVbo3/:9#.W1.mGŒI"K4'(oI7Cx.ırE:IC "6`bZaߑ!D?=c`@`S6-hl} 2'!4NI71ft#g0KCiC^%3),wGy$3Bf/3Kx7#“q!F=G %nW,2bɒ1~цg3[gqz6– A䦏TᏇxQXIn##’aERV%hy' ^X pH8G!v1Uy$_l\X6$,B2gTf4,či*B$lq19OYHAbZ$P8"шQ 8)gZ?ũ+杙DՎIyq-Aii+.$!0eBĐ~~/L s//![ *&9(@0g0ĜRr,A/2n|Ҕc'7*!:ZLI?z5 rd㌑: .Pٙc[R?J,,4B-%21| vtl:.+rz|dZeJb#H:/vyg& StI?5i@C8-w:̩lG#32@cZz8@` 4a6Gs<=S=P@7#e\*4 4;83 C9Zax@ZIok: ^_ۉ48I5Rυ$@|A4#ךzҪК b@ %14\7'E!Ez4F; \RpT>3IkdCiT@zQoUCd%@# AAC~BPtEMKrs9 8*;qZKXt2rrdE=qF9iFmLhSi&5CYCSKI̒[t-4T+oñ@>T\{qEh+$iB=k8Df˲|1o]!@ DIۃ8u&PFOoPVL-ETnOqF1MNNKPVͻϫRIUe`"˨@O_GOU櫋*!kT%EԽgOT jPPĿ Q(S!Q5k ,lL LlY!,#Lme%)+LT'/ 1,`_5Vq \K5R:5hP@JByDaZD\WQH]NMU &UZdWUn;>|=\R`E'Ohdl\KjK#ƌ(E\Z"(ǫT_B9܈WVK_FKJ?m<1ePĉ,OL1_Fl`P aw UPl=/Vb Qf(e+5.&eT3{[Ėj\|jK,,flCf͵6e4ͭVjK̪{܊.Q΍`'tu&})M\G!)=yH'ɣ{5Y{W7}I͕,ߧyv 7}+uh]6] 6i%:ȰuMRV؁?ׂ`)A6+"H19eppHfM9!V[NSz-Ci%WڀSIHhH7(1S.U%^HD29/WCj/ !W,y:vt^ ǹnk$np^;nK:6ӵr iɧZQX%(Zϭo:h{j֝!Υ $q ^R҈"wZ¹M/.\#q{t>L.^w){.|y︾X^8ȏ#zX Xd ?)iƖyG=OCa'?-nݥ)~>.)y)*v)\;@ݻx9n*5S/!G8A a4@i-d#^@(wgzmϨU)u_7!q8Hh/!m {_⓫ 2z`Ni>ɤ%=.!)"^'B.+px.(xא.Y$)icw:/c(OLsz3~02Y)!Jx ╙OH)q *#] `ATtl6`Ç-* #N$XEx$R$*& 90B3LLxQtc͙>2,/L$i }xK=]BZ?v ^1]yes׽`wwއݙW~y?y胚ļig70|7_eg/ک|dž/z.7/#:!I y~D(F5 'E,fQ[bE0wTp>1QkdcF8b]sG~rݿ" .іҼE/`_JWo\-<jPNG"b.gPs5B›"OarALi,݈;}΂Ө%ф0Dõ [H#Tx䝁x~<_X}}s/'oG"E?>9T5c Xʀ #'V*,/fʘrr /)xX1呢x2KqF d h)m'Le dtEi6Qsk %VsK3|YiZL hOzjM}-ىΓzR,tv 86L>I $tS;,L7ai3W&MsL钸:V󯭂jp~*%kv-GWt(uFCՔ'@M8twusՖFI2-*cEdLJJw=?rǥۘވ45g6ER"eqFE^t1S{uR2pMKE݀s-~f^u %zףr=`äBvz9zEgOAk)箥30 ƽ~Q%O)Qn|g;x >zHd$)%VzO|=?^'%C_zԧ^{<]z{}m?HȬ}{G>|'?{W~|0ӧ>_}g?~?z_{~gc~_Ik+ @> *><@K@l@"@=s@ @փ*@ @̣@ As@D(OBF9; DB9!Ht!FJ:T5qĴOC̣RdSl~ O Q,XԈqj!?ˢT\YĢ\LM$'\(KBB]3F FɥK1,z[jkS/[&"l1 B⸽ K"Alm.vm,6m^l~mtm؞m4!>l(ʠ666&Df8hꦟ|-Yk23TSܹC2B!D朜IC&[|XnuEo-L|]CJnbp$Q}k4ZFGMpptcqVM_1ŏQxj7' q> `s~n ׵ntd$`V]# P5RH6$,/D#OE`;*édBDr9J4b9 4L.qJ SO4( g̦f:^CzC1Dw(ۇL_B٣.&%H 7L_UNSTM>"ح|"P*q,ƙ&4(T$+"-I qCdt\l >xmhE|vW?7Ez72C] Nj^*;ffqWnz1D@`GTea 5x^MCbRG"k5'u`D* jI!YcS\ )r]?@>aTP6"fn'Ʀ,&RXΝ9^9'kTY"% |{2`mlqfxBVS(iH8r*z|Xib%0XVO꫃.KaFuQHNnSUٺ(V>UkXCg*xӭy-[IƳMj^qQJF;-ANaO+Ҵ\ZnqzTWp2)t1{[ZV$ʲΝcx6Ñf#s7|0kw;=r^MXqң ̨Zۚⴱ fHmO蝤 ^>ҷ(vx*Ex#r&>dxVpoِs$pB? zv AtSY>0舍T+]hpJs9q|bdiAv)Zo8۾H~~suxNN9O'{ofV<|;j;}߃ pD位K(83! o04-A%דRULA㉉CGw`OdjCYalNjhb.`@]l0 IqY?Ƞ91wK₨-x' cN?56[Qa~HDJ1UO<C@TWBc H60v ^g>@<4FE^ixs cD$8Y!!1h9_X=rы+L%K҇NK|RΙI1Wu?9k^H~4VC&BeB^S0 MɎQ`8SSԩB_2\I D8P,)Sf3NiOXޮ0CM_K{4JEtj*ti P9]I+<#UΒ-4;}BbyR4(ASS>[h8.W;-NSހ3R*SE~܌L%T &eUB>k s4}m]#W09p])AҾB$dū[W:yX[rs-Q9Fvh8BkRcy i6-Țv[_.qm+⦥!V0\_1=%3^ݒlo]z=x[ք]/{RNux']ވG}; cfx;`J}yP sah7Hv'wT%.@< viX$!ٷ(q5 d y$12G.=XNWβ_id)sy1ml39j^37Y$zl;9z3gy mC#:ъ^4Aђ4+mKc33O:Ԣ7,aY]´mӌ'gJfPLO y֞x]c׷up^ dSK ] g`Vmfnm\nc`D㲀f[oJ)۶Vli GZmt}]ãTqP+!oTxƿ]78n|QnmUꘇL[9 .wqne='9IϭX>W}蜡m鬻y:N_SLj/uwDJ= m]Ȉ(V!^UBވ\!ƒE ajO " q  Mr! P > FUDb RWaa:b4dyBh%Ƅx"6NE#"cxa!..Fnb%iJbJ T }!n܊FyFLK 5V'`FX8FԞ?exG; > cWdVM##2nc=~I,de؇0r X#D9BdBd${dwI rA$?[7IJ-EZP$LNO@OY0I*G2#= 0D#S&%U3M Eמ`%GbUrC.%D6E}`EI,hTFYrY$!{`SI[zL椌kXF},\ܐ̀ tHG\vZzpɋ_%aN=p\jbnɐҔfìS:$dGx @Ns&T, RP_edvRe4ndT}\X7 mcWPtGL;KϠB4t auvey\g u{'n:Se'9XgԊH|ă 7VgH*-֦͆lJʀ*́xXP(pfE-p&QqV{bp s.łD h1~ϑZvwwUv۬ecugK: }:Z܋IR&N|=I冚JgD*irGcF銜~)֘aCFZj8C( nMT̷M)tTQi4jLi`ip)Dpij62)z9icɆC0WpPbR>bjJ`:kA _iPBj2IM=0]-k E_qUF2S 3钼<.Qʉ UA%Ӻb mS?,muF /kѬ'^ ΚvʶR'6QfWqeӚӒ ԐTbΞj,A>]my҄-f ݨxl6PՓPUYe|`]1Y$D:A`UQET_jLTaKfUI^JQYin,:.DD_Zog=D}^VDDozVnޮ NnlIpE/6x`UDfІSOpjIodSUV#O2oE-}cgh'=)ei\Zu C o)11Y717EvE+LWoqV1gY/Gq.rYbr!ʉ qnsr"3yqW]Z[%drqrm((1*+r,2,-r.]2err0 0s1V-s2+23-#s3Cs4K4_3Y6ٯ)67'󎿖%kƾɚ9s873# <5ϗfٽ9ޖ?Y̙}o ssn__Փ`9CYBm[D5t>rw>Ewnq,mxY4t!W=_"[+vsXotmaOs•|)LP_>3q:V t4]LؽTiuNKQCSCXV-$:$Ruq9ZǵY7]iqu^˨յap5PM'w[d5=p9&_ceqvabui C Xio_a ;uȟџnpGk/r'Q9!7 p QJU(LU^bJ_vrew2^6j6W HYQ\ KGw@P ɶ~8w2kvwex}>#*E߹F&mx]cJF0aSaKJHO7 cx:S, " W`b {Ŏ# bCL$`Ĩ"+f X 't P_ݸ;`4l<>y}'aa7.Nz}jyK9b%b4ZW$ 5+yx7HYI1Ox"p>8ڤ?dDcHfBS{%lw lZ>ʤ:O"Q6;kDÒcwC;qIf;Q{Hn䆏7QESKMv\6Q-Lf;g9ISʬ;ccڣNn0;/E^h,X{>+J=G?{ #Iªʈ(+ З 0ɑ$ɒP$ J] :4xaB \ bĈh@ <LKQ {,R<)'M>Lt1K+؛$]̐**/4H5Ɠ E QMo[s9T*S>}K*ECT)Z./!zQ;(Ǯ[NǠ{I 1Q[/t2DKCe!袌6(RPdb9P j Ags[oIԶnҥVPҖ+^t/GlWm u0l iǘEl ` bxդZVQxb2!V`j^X~udD,fkL%zSܒzx3> nAs>Zpfol+9L>[ZV2{}jǖ9ŔhB ɦ^m{.MUJ5xOtb:NF);ˆ貎\!YMP! m6$X[:bzpæLh>Zegu}ބxI%Wr`[]0ub=Z;_̚=׻GhW_R+g|7wwS|d?/G^t;0m{'WRypc̉C6/00`xCYP N:Jə^jzsw 7L!#z#`wtg%W$Ps*hH҃')o&t Ʋ?-,AWǂnt P-;1G YHCTѶE>12@"YIKVD$` M&T(y#HMqt{4HO,O1grJҗy.ɴ#/O5FCy*lEzm2bZVXREjDyW^ԭ|W5F("JVgU+UA KN+9D;Hog,$K(}nMXc5,’MrtWJjIK& m[vspK=\}֐QlH>T[Itl?-x;㮒BD;@q0Q;H5cas2kldK_^ T-|_;8]C_ J+?0>Y::ppVsP%H^|Ur`*X$!; \lӥ*i$V(ae,eR' `/Åv3(&xx"ۮ$nuA!ϰجJ/ϙd²K=G;1 S&9FQI;gC X&I^**Al9ovLTͮH&l{\*vi=i *ǂ{&lνwXC6RnZR}YmEiTYËv ʓ,nP S}\Ѱ%Ď'ΦQ`jvV D?+ˣK~}nЀ&y9{]uWO%/ʱEcq˫c(sJ=\ |9$_ywi?W]2s*`٬8JO{Vߟ<xx)G|Q{? 'a'?՞Xٓ7G=q}Χٙu1y9:q &̟4G/*a_:ͷ>$΂n;;/*O'**.V*$Dnd"GS"VL26Vl"ES(.Mn<%ZEz0ovQ-L=eFW@)HMUU%5P04WBH,P _GC2Z[&g06]&iJDZ8F7p2+0&boS| K.(Qb ǥbEfml\ X԰c\\o(/NqA!tPfi8j w?h'w䇆&VҞQF{gac}HQfa1Nl|ol(Wr|-Ghzܨ(H`G#x1/Fy"5/ ,#oN#G$"#KR#iVb%PR&-$grɔ"$'/l(Ű&}ʞx͠n(r)R*r**+&ϣ/,R,*,-,Ӓ--kj-R..3*./R/./0I+Y /01ӒR11?2'2S2+33S//S3;3ْ3?S4G3+C4O54S5["Eg bS6`L0]7s$Ez76 +u8W8S9 99`s6c38 ;ג7}:L;S<9ӓ;8:?sSLĚe)A(@7ٌū@a"#sT*ԚrDu2?x'kcbH$FRԇ?,t@F t=,|' 7@ׂcviHkt7,Tlg&(EƀEvCw}"}/'Tru!ub`F$W>VYNvD&u&WlUP <aZ G%$df7u-[Ikl`bCF( %aBqW8sM0-NX4AdDre݌u yM%N ꄮfy mt7]c +x0޺)hd۠KzϹD\t-U鏙=5H3yj9X%Y{twK39y= *ZUҠb(ͅF$ZlH%weZ'er$!#X/>..Cpt1r$qopCz鮺sM'FCEB_XIΨgՎ6. pjO5Kڮ9ޚ/6>=.a+/}]l3wlCk7.m%b! X&TTz.c|3ŨZ"Ic,ϧQC}i,K:p c/֩Sjv:[`UNKZtX»u$&~;{UZAqaϯeϽ  ;@6_{s]E T`Q#e1|EbIG!ΔMjZ94䶟AQƹmO8;`NxDؼꨅȖ,8P|JJիXjʕ뿐 'vKlYt#s%i۷pʝKݻ[ -ZhҥMFKZ1ckզ}L˘3kΪo_J:8M<kq~M۸ wZt:JkmIސTRWE*rI2B)Qq}%U=AKYd&c6֚XZAI&L8=g>Z=ǥs Ir ¡fyw3УOvxSVɟr$\Ӱ5UQ*O l"*:VL&͔e353'dګ8OA*>8yI,<MJ*2IK ŅQcfjaarz^SgY %#l͆M7ۓlULVU?Nf :D'-tCFы= zB[蝲Km:S&3Ly<'%׸y%^>F{t18l_33vݨ*ȵ}TNG=i܃`&.- 綵8AMF#| xo|@C'= 9*[ Y1 rʵ>T1A 2ѺwD1 ȹb|3l_ &Al^sn#U`K(IBkI33r$`~;c~P?wuk%YRBE8vЁ:Fp*?/9^'OJcCU`QJiy:͚F,cuR,,6@3&Mt+"N## ")[^r5슥5D rKVƅQdˆں#a}7 a3t ܛH5TjrR&Mn%!CJ՜V+|3w'MhYpjJЁ+ii:\"$fCV ԴuPs0 j+FTpL+4'IVe)suL"0{FZl"V~5tU)*ڷ fWxOݧJ[ۍ֮)ZoS[ t*t{ՕIA`%\`:"V3zaqJC5ojX'%VƵFnR+ꤦ_J'k$:ٌwt[dz56zBn9)B{K̈́aU~f$4%K&37qq]1Ot1#ct]ئx='2XɞyrmM-ǻZ93Ӕaߍ i<˲o%M4g,ܵ_5 VjQUka? -|=2*kSjtwV6JvN'Pj3-օ*v'$ 13:>4GTֺ֨5 [=ݪjMHTC}X,V%Kx%v](g:h>W:c?:L % ezѬMFɐw7Y_z̉o^X|Y^e$VyIJ-8KR+{Q1N&Fd?w0jF0! O>..%]_%؛Sdtd˦ 'hmcmX"cwn&y%(ЛCFvʎ/9&V2a:whw-=]ou3|/ۧb*7yH*y.CL0]uڔ|zbT^(EFg1>nw]I:jsyW%=i/}EbO#eqn79nj/yVWVgDE~:TlmU7gReGqcFuIF}']ho$G,4wx}$%}sg7Sb xFWW-x}{M 9hqjzmT#UDR;(']n%3 ssrYu`0Mbi.@%t&Ld:A #lZ0ZwQv2>h`VvIdpt<4I`(@dkDŽ(K7@aahw0VgN#p$WvvoD~8RPhh)j8yh3(*(xYsXxe@n33a&,y@ƱA*,ESI` Zc&Ɓ$/4hTxR&` &h`U_mS+tV,ssX?%'ȗtXu*AbQ&^DoMhJ@phވ;_? Rς 6~rVYF>BXшXv@䑹(%5^h>Dv*99RI5KרNXH!@(E&*f"!qWь2evTPr eui#:] 猵9i2Q[j.]!$BXŚmmP f)IћK)I!&YvNH3 ?͙\!9Y晞깞Iٞ9ׁDIٟb!yZzy)CjH4dr4mq\c1;Q!⣎Yq{qqw(&l2)oQ)9BJR131s%H({TJ*H9-w1$VTW.7QRwimaG&JnuaD-]1X/dZ.*292~GrZ4cz:hfژrQ2c1$_$)]7g`*j*%l.WedɪԪĺsRA @S3T#9I@ϑC@ȭʳ)sPd=xRCh&" @B$!>/@8(ICZ':BjB@D 8s=7IBu924 $B#sR>8@T;*=@NIŔ>q$CU?ކK?3ys.uY-ѭ3+˚~ EN"RvDQ-O@Ln'R?ԁ$%i@f+\Tb$"Op/-iDK E/w{@q 9q{GPPrPn"P1\ !JM u}6MZZF sfM۹3G 1M1;IetF8#U,TD|[6)͋UaFb[,L$I^hk;)E[ E"9J4uW5'х\ahXF][Wvѱ\Z!WFK9y G>ZYŃE[\duE5gUrG9UUWJ;u%1[q [*WEOYVT\LY [.L;eGuS7C5EU7)s|yV.G'4 5e~=QmP|uwqfeWaf-drgwti.HDqj,FVaibx+Ztdtnveld|y &'\{Aw^v},HfvNĆBgEvEfqh>6v,dvqn֏ĥȒ(|@})f$̸ c02c|rc+fn_qܾT ʬk05O ~eچ+mUhH r mHwk#Wnm)ȁVn\vv$ί-Tov qk[;$FiAo 6<$mrƨq##ԘY'?ba8P~ 6?H8Ji`V.c/y`?c9A9i1qzf:qa2`)``podoY Qvڪ@jo_ ᝆYy_Aҡ?j䴟zj2?cq2ǟ΁$joV1ۉW1$دOZO.%״b޺)4/XPZOௗMkzJO@ DP!*t)LD* DU At@`0/:(RJ-fLI#.m|@WSPZTRK|4Xp(^3D~UPcÞA7;fؑ@tpE+0+ܛw`ڲ~kB)g,0Kș=l24ğEtiӧQV#MƍѹWf{}1 $V/ b;Bz q7HKǮ:N"3I *m }r= MU7_ H -8$+N B]$2Ȃ,&5ܳBbs9 ,HʇtQJJ a]uLC9 Kl`5'JQRLht931c_(U[SI#pRPB$Xatl؇M[LkHv J3]p[HnK򶤠u'oѵbp-Hu""lD#'$f.oG.DOM Y]n+䂾=z}兇"f0b3X,91a'c̖wqfbm#S–imN+VmB3F)rj)Lr%*d2}dײ,@ tPS(\+FqG'/Yff8#^zO>%X7/b`b2۳8~P "HT3YN̦8%$nA#StQP&֋, y5AQakK %Hl Q\lV@pY6,a.fBԄc%.A@uBߝ2 ifrDj#)1"RE$g2aeHL).#^:7ˉ4HUbDKMV4 & pA.Y"̴ل=0x OYqt~)P(3@jٜwxKfy?=#4HF^Ӟ4>OuT!iͭ$6$8?jҌ&OG9ʍpdqSãDh?j8dvgT]զ6V9.Fs4UAjCrNs >)jH%kbT'B׌ Бɪk)eA2 %Ev%EcwPe#;4lḥ Wǂs,6gՈm=I*Ӛ|t軩;wgf>oe0ތV&U ~uf ePA}y`F;n4ԕ^bB#b%$ s9O;,UY(.e10 bį.2Ҋ|Tf2dqz_/SM)NƷJjQTrbݱ1}炦ϒqv:fy?FuKE˲o } ~oo"鋏ل"z]^+Đ4XGB>d5ALcG])٬%fGX `h!aTl^6k/9RPtL$rI]Թ5PkV%je3ĘZVbW0eF:)t52ޤuZ5&_xJ Mcb2BrҘx IsQ4,MAGxU2;p@G+T$;7QyĠ[u%rd؆z=#i&q&vP[rb5A'RZBvI#^ȋqRXQLfv7QSw4WøgRRwة7yY?ق"y( /k_{=`%W L@}UڟQ-`sӇe|qEО";d?3aUCG;O|MWJ᛻J5E?c 8:i?=d>x'C"3?( A@1Nÿc9;@?y7= L`>?ڃkHj$@hĈ61 [/ط ,\/01$ ,$ A3-|/d7)\*{31?DɸC=DC`C8ġDUp3 A?LD.Di MND > LHDR TGD 1L@?R[\@ȄTH wlEƇC:=H3fHpI_ȔrbɆG=Xġ(HmTy!ֹL~!TqGeޤ'"ې* ` TH JTUudVA{TE"ˁL01ՋUјMuTUU!UA:颖AVﱋP VHmUՄ2#;MMeݥP+iU-aEZ 9űVk칡ɞ ,DW2[1R/+zUAL9M~xTT؁XIOLz ;WD$>92}PJM&zˣFrG"/ 4پU4"%(4QzYL5Z>. ".,A$$="ݔM3zZ,[B J"l:2vY ӃQ%4)lX|X+\>%zy ̽?*2T&GQYb)h:;'M3XZYb j8%W5'ScBZY]+S7ڸWS&ݠ<ޣݥ]]-'^;&CtmR?%1m5Pҝ(j(A u8)N(7Z ߶5Kǥṷ&O= w͵XP\uK5R x+.8\t%..2eªݮ@ ᙽ"4|*x2*p,5aE+dԮ^اζvRCab̺֕1"1*7^Jb\S&!]1&4;jCc~E%7VSȥS0O .ӊ`ϕ)I~8]24).KV);2+/2Qr/q2HUn^ e3{e{0y9%>^2\>ScJeEcaVӔ:6 $7Bl/`~-N~c6 `^eaiFe-`*&gƦ=mJ[k.n~8KS͎3&m76:9l{nČ3TmF"S9澳#ζ^b`t`FOIB@D*-x@ރ?#?._pݐp O$$dBg4-?"4%@'Tphj@>{?>6=Q%? r A!m@g&5\9@6d;0Qq'30"?4oR*2π# [7rs??oA3q%ީ4A8ļo.6<,thd-KMtŀNytgA-uECDˇϩ Ւ8~~E}:}I )DN.$.4R/ D  D\<ɚ *1l!epLĊ /&hqC9|/Ctchr%ɇ&[aL&@#D,DW0Bq<RCyNM!ԫ}ɨƉ\H Bx6 ϨTlӺmԭG*$C%lCÞ?ìw{ L(PpׯቮjK3Cu5g'v젪+:>x*/G^$2fV*0T};/l5ngLd?#z2lzUt 3ffUx`AH% :%4 8 RE RQсTފUoF_K?=(Lb?kmڹxV(EqBPewcCX%d.eT]6S%q43T՛$.R(6ՓxI5eW%YWr,H5s|bQi%E:ZRU+z ne畤V!Ч`[ -ʦCJfZX≕skUO!gBr$oF:hmm O8az?lIPIo-bN[mYukQ{YmV Xl*P<#>2dnDZ"81+G8af8qrcgYP?dz,˨ˋ"FD($BLL܁No;!d/,ɴ[A2?t!VA1d]h P-$%Fte(SQ4;m/wnPmZ!q-SiTW?T 8Blf)gd2K% ޵M_Й57pJ.gpQ-5.M7ݦGRۃώ~H%>v긣[ѝ7Ss z{=CgZ.2G_WE;BY~Y:U{L1K<~I&Glx[rg|k9+j A zaRTLXƻ b@[9!FM耇41| -\eL!1c6#bPS%/M/SD#~9wH臖(Jw¨ 8C1b6f>@c Y(B.unp_R)ɞLg"g:Vd`a?ưHbEM.pYh߷IZϖ$å/Cⴿ%r/ˤȢS )8^v1{C3N)~.5`/jJgI)T+';MȮxYyFwfPPNmN 1S/t:+i a^W$[e TPT. #!Y Iv } SiPioC۩|* "?A Ūv2 Y<y6-G; ,J}j;xU*ٗƕA Plg9KeTbX;X94l'k,T PM [!:2ӍXe95" @#vޝp)`128I.7hEhsXwZtN!V$lT4BQ.7=o]ޔ|kvcU;]0+{JRvTaqg(C(S btES`B>OI$K:Bqw/ &Ę/g֏ 䮯}ɕ@Y|m}$Op{fO Ft~u}J 5FvIM%hYq*.^R_ΔuY I`^N ;f-O G >`E^!fn!v~#-L9` B !!^a!֡!a !  "!!2RN"#6#>"$F&"] p}%Xpahb"H!""*!%SpqHe"#j/?0Bآ2EO# YJ.-0/"9a2K#Őc`;R \D٣VC(J`<0rNDKY7.]c\)6:T6^1_AC2Ҳ!gYו _Fbm4JGu$"#.T^$N$r$DWBLr` "ȏ0%3Iz4P_R&ee*EO.MZ~]c@I^T"^ċEo9Tl`Pyd1M\% Hw4``e*cićRpf{c@cV͝0&o%kj|gmL\zf}%8f6@||gnPv!;EɳNPݤHNǾ K_>Es()ͻDF`h۽K dZ|1F$t % LIʝ(`~ǎphKNΥ Ti(Wz芝IȝaUR@Onthe بݼ :u(b I)`)p֋S'T~NhYh,K)O,Lhj^da]j5 k٦QoȪBɋeQ 2V&d8֖&56aO˨bRpjѨjo\i+yP)K^%*[U4WCjL|\θDWzT^v*MīEU_X ^Uc虓:  UmS` i*RVVatȖL*AQlUXx툐ƪl଑RS؏ ]\*,yPJUܐ؈Mr|]qllQQ5ŖV -LwFhQV*\ҭvRM"ʡ~La Y=ezdB)FhM9 0^DK%ng&F[8n3=8^f^Z!SzWHr. Gl'}⒇馬1SFvrkEIxE*SH.׮U.??in5 /E7-/a IT/ eQz.)[0o)=q^V ɼI1~pc܉;(`gbױ[!C:׋PsQ *M$ M ![nVAm Đ0-2NH r'U [.D4()ڕ 2]2qض22A+EqH-%dk@ibi߯'ŭIJhA~X4/ *3;3'/Y Œ4"+ڸF8ɬŁ=k#=(tuu@<[D9Z-{ױy.ڻ Ȃt]D,DGC ܑ΋ C449PSNBHGW5Oڹ]s>Dƙ۝ҏ8k_/]\?! /]G8jPѡ}XԚ5^9v]n,D`vQlM^aoM\ie5݅ug?ޘ ϽkOeޖ8vKU' ũ-dEOv^le vdhvt6rmvv5wᩦ(Zqse@bJm^%Y(nvjw\O"]."5Cc?$_-GRA8iU`LZLb6/퍸**0x%T #e2Rcߌc V`!y:,K Z9a`p9?{!G+!~Lc79s7JNS$0ay7:8;93O:W_z]x8:;s:ϱ%ĺzG:纮;:z:;*8?;GO;W_;go;w;;;;;ǻ;C;0绾;;0! <'/<7?S> A =>~Ͻü[~>᳼13>;~1* @[hq\ChABTw<\1Ŀ#%P> ļ C/@|/&TaC!F8bE1fԸcGAɑе'Q,PKK/,\ B]ka/B,8PL&e N8nCUOs^Z혖)☢gUQIS30lӡMcwG]`WfR9L@ϔ!GI:H_:毟"':ʰ|\)UrΘBˎ!hËQe.ǘ俄檫 [>Tȅ6jÅ\ + !(ȿ_zHPTj=? i@ ,ID=AACo6NMޘrd\hb$KJkCcQ6YAThk2haW€Wr!Qc\>eqr;*~MD %7S3p$sMW] ]] 'ޙdW_ ʷR.$yS@PXKLA h YX 'c &`AJa-X\K-Dqy<1*z楱8 E|hm駡vѰΚ4P:k|ŒBCHl(_mE|n fW` duWiʒҢ -h8 *[k_bfKihoYo߅E[Zv-pv}/!pnÒ ^zsl 8~XH d;KZ&<&vDKjNӏMv4%p#hh;@AV- +m YۥW0nh KXb YE! $@ `qP$ H<9bBkpB9\LE-n[Ƞ~F3Hx3AmMT,[j P,HBR&@AޓHEmbmuLD$9+/n\P=Pn&)@$޼0)уۋ+ȩ8r p 6E Ah@9dc+Bᦞ x5CNq2$'B|k_i>K䀞'=' nA{ ة/$4AsH_ OW07kcByQn}LC RiTQDVQyT$eKaӈ44KuFm*QTE5QT.MuSUNUUUn]WVe5Yh WΕ X]W}_X5aX.uc!YNe1Yn]kZю5iQZծuka[Ζmq[o\5qS[.us]Nյu]nw^񎗼5yћ^u{k݀;PKaePKfUIOEBPS/ccapp018.gifGcGIF89aCM  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~,CM H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ%GbʜI͛8s ťϟ@ JQ1ZʴӧPJHL Gjʵׯ!cB ]˶۷pOhwYY ڸ L-@ޢ/me[˘3<&5`du@r[-Oװc_lK\kȓ+_^@wm@l $Κ{t.*pZ6A˟O~Ai#Ʒ=w}&k 4grRu׍ӏA.@ܲ]da,bs,X2Њ/%}X=8hQ( PFI nPщ1䤔`)@Txэ96pc hHVd6LZwr*htdnQe9裐WA!]D@*jldh1: |!Y9~g|jk i#8PdP&VUze @ diE*Z1g1I302};ܶQ P@@:*+@+мOBgo㧯c/7eC?#/&Z/HwBS4(L OB y՟F ҵ\i' D">3>b Hp) +d`L\H?A` H2\_$B@ol(/PtA? tA $ES鱜A~ьF "Er]6HWad,7@A"EБXAiIM}`66AVJiސ - A[Ző4@nHL<:؇,t&4i"Exh*J0|r;lI_ӛԥ@19(:IQ}sLjaGBA&?pJ|-ƥO2k63 Rr_jƱris!- ٔ/]3caLCO2>t4W +n [t8}1i =fdL@\t52jQں6[Pw1>et \t 鵯h v錼T `auiO[m-;p khGt @A4hpsNx:@d\/R0o:2dckIRK6Pe`8g+9|cLr|`*rHyUUsa8@AaBC>h^ ȯO30C7WuOXl oG у1R?tIJAJdꚭ3unm:6Qas}C|~0Ɍ٧w`*},`, h9iW}pX!Wx4k|1xWAw,wrfvO,hfiB{&c3X8qim!(˧=44MX %wXQ}= jF|FXg+WHQ}\X0Zt {6o|"X4kNmx q8t27)XH}$E2ix+Wl'D&H !#y>%yﳒ,. ?01S68?:ѓ@B?DYqJL?No4TV AX]/ԕ^` Cb9DQjth jIl^cGY:Ao1izIUxsdq&B9, iqAIHzf.oAAc!B$4~BfY^{OqP86g~9YyșʹٜƉ&g  z16ϠعPyev7T5vt^{AJyi!AR=5B,`eI5Q;N)y_VϤvmvAKXGhS~ ":$Z&z(*,ZRqO@?z gvivy)9uIhFD?q2{6GjM:ZHWWԩOGS56q @i{H.$Mhڇ[-|ڧ~$)؄<O OAA}SqtixnQFMğ)oVKz=a9|=qG`-:TL^jQL9aqց;[Jo R:Gl<4iP2թoVuWKIKP2S5{N)E @[BeQB%Xf'ES~VG@K0wk 7R[{)zš GT: CQ{H@[n%4(8Д2hu nR5JJgVT\\rEW 1 0:35 CYa;Yk ׿PQ5PCe[eXy xP8佉 KW6 ŽX *_  [;h,:I !a„z* &5|PÛ%@ π<Bܬ C ?3 ?n?j/h sl 1D"ȤZǣW0K_ /~ƽ}}~3ʽn/ʭZsl&?pL XkAGp+;U?NLWyCJPxТOC[ }ļ QG eAWhH3 }!KV1aBGh4tC\Zٵ]%Q vj:NxOc hA_ \ 07E e1}39`JDaB#9:{mMi3auh :mB*k3tMo{ D0¡<ʬ `|>_P_0ԔmF]N%uf`i^7pCb?f`"+H@wvG2bvTc]F}` ֘}ǙsDg;%+Lݬǀ,dž{ײ _Ѐ}?`Ȗ} fPb;oh &wP6 cVf.xeV@&m?>Us$j&/ , ƥ\l>$Gߢ#}wx8Drv6i|]DgOTu1_7J0%Nƞw/e| l\/?ÄhLz2 ʐ?jlSϢ/P0i?i_?0~]J@ gW?i~|O3MJwʎ@ح׍&Z**\ h `M_ h ϧOO[σ$XA ?~MX"E?.8'=/4? nkMF~3{s/NvĄSNZ*gnWaŎ%[YivG[}Υ[.]}_S'^|x^ɕ/gPkSzUf6Ib̹L6B夥i9У{|xPg2m@T0w~j}mB +2°9@hh+,^zLR `'7܀@K\mq4ҝ5孽bmE煝 Ù<OL}ډs΀11:&7) )T%^0?g,-NjRC 0AO~^t0I qP@~$,^#N2h}k?靶>/ p@`&q  -Pb 7$*ƋF ~.:z1c$_Ie#8";MbJJ1FxTh,-p{#z ,D"? @!ِ{YQjCDXdZBFz@1:%?>~x#ieAa)] < sQ` QB<)3 3BMLBy .u) ٖàyXfRk8yŚp%yI= NG#d&X'2jCa hI|l84MePII,CIA6!@%d=v t&iGgҐu1A.ML 9"d o"Q O`ɫ^KHUi`E&XMD6&8Nt'@PB(~ rtXKа󵳅`KjXy9[gWx4hHCӠ5a ^І6 nA^-\M%oEl{[@eY!\gEr1 :֐.unxCn{2&tE@k`ܠpw{G;qC 9qs0W`?u1mbG~q}\.q[cK^;:YBr|򔽌-X&EewkellYss|g= _-\ 'RS)ۊ>>f۟d=+ K?})܃'B)@I4!ȳ!o`@zھR@1;bA[L@+c4q; l:m̀-&<)" t,c0Bm15$> Kg)"r |:}3pB-ܡga:(GkA#':PbicÞ+^I9,c ó;Hb:83Ds=A=F=j"H"01aW b \4AqCC`u<[Z@ >Y\>䊟{!: PT{8B"jC؃>-QN$wؓ&TKjC$mx$N -wxG@, AS#z<-+oB-#|I0qI ( A+Ƥ L>[H[ɧJ|Q<9ԧ-e <KJ!scŨ̧>\XX|K;[:!H:H";[:4yG?HMBLp[DBsDSljK#J|y$tFgǿWx)$yP`7ͬpBL ItIe`I,ɉ,ll>w{1 b4x̙yp+ίA"HAAf@ )O۱+OLXHN;:[55͜:Jf± MB'Ap1Dz@PO lyjĽd,bA5DbϿ{ Q HH/e"Dϼ@عFp@1QR)Ҍ!" O$=bkOtQB!@z\:E ȇ/so PɄg֡QV#;ÒExS*- ֯0lLRGƙg(iCIXe hUyU{9G+jL;bњQQbP$wx%r*DhXaؙTW(HDWdSڀW%ٳټ`W~S-]Ԋ [M$< H:X"Tu Mԣ^FrU{5̼ٟJC4@.MϽ@PYdRK AY1ͭe+TɅA2}ԯ) a8=΢#\Q[@^  8ݮ[݄L }QNNΣإ=PU0 jܬP88T4j]: {?HwX"ܱҧ܈10EޑSAl; X0=3Zë+Ac: 910j` ի͊VZm/08H-]v ;8`mu9i[ˋ18kpC4? &/[J|$ :}k9{t ߈-9ّ 2Hk<(aw$d 9+)81Ip(dݿU4 N^߁k^:!zU79c^%DM A<f/9*7JnjL^,E^ %c] _Qni1⒰nWjieȅ |f\:\BRGR;+n/"|R,-؂EbILpeɪiN F<cAqyZ<[=CCF\d>E]{a-bșɡ{Nq"%|]0AʻƬ@0q|Yw9&FaYh|&d͛0gdC";ML(N@Skiq " $INb)@)=jRƍjLS>8*:j[W NS[i޶樮`jIC:'P6Y90 8Z0taJ N[|Şꆀ^nhN2?CJiԯg|&lɒs^o^;{ڤٰ)EXIW o˞}'n^nbl*>{e*n~|ֺ[c;XrLD4E^[zLɪ,:"B gYgF O am㶛 #m-3G3XǧSn$4̽zYKE<`害79σko>Ѭ_907F@L0 bǒB?v!f\\=ř0H vxCެƠ#⋫P!"x#9ވ(: }%#D:${SB;"Yje؀M PT&M qʩ `i\깥-&dBAQCsNv4ƛ!:)f?_AyfyI%|C?AA S)icgn"()kI<@IAb/N!}Q *JN˜,@B 5 m˔;<: }JhlJ5ض};o፻3ca "0glu?}%~ W 'wy*%Pld~̎89pS\T@ /*Ty > Ykѳц 9KP0bA!72/6/nu۽8Ip@٬=sMS}͏>&/'sp6\cxUxcy:| cj|ыS+π'@A#p'P9/s=CI /ֽNnږ1Ge.=ݱ d8@ Ȇ; Cq 8/$k`އ%vg;j_h$ % q{{pXB C,$00X!G).vE* i )0/p}\/%.F)6a;P7c>Q]z04Et' *WGWoĘ%-O z]*Ep\CJc{%9~nvq'@5!=AmЅ.mb(F1z2e=AyC0 EJLc*;daAZx7iip{e6}վ9D8|7)`%~ V>@ z "#A0~+`3:udHIx,f3s@r*!PE1p|=iPU9(!6W@w@ )Wjn HTBR+<`R":u#pB%@Lcawؒʃ};1fw.:q 91q8%i} TZc5c+[E-7W|B?^gt8k{vϹe#"cc׾nx E^L}hzC:Ro;jl#,`-iQ;:X1&,f473#PGKeG}dIe0O`68F,%5n'廎Osj20)ܳ`1l;H~.O CxD@{5NwY# A3`l8M7 FѝYڻ51EߖՃ!a_1" %Q4#e$P!Oiާ- u]ÅU0^U\ $7L Ly=II@^D}\ze`)1IU`2(C Sϔ9h]8Yey蕚Q1Fa֥0]$ !W!hQX!y`!=_ k]!9 pU bUElD""ʴ!$##8^#X *S9 K7v0Ja 4,]!Z[bc"#uc%U=OoVu-[#n\yAAcU7졉 ]ALޅtL+Z`` ?֢-@A ^BB2|CQ%i+4 Xi/;a4tIWuvE=]ڕcԉ'@eeEda]Ǹ%]F+>cQcd)% $A2,3Hgbn i&iZ 2ad6eݡ=%lfg~&prFJ#b#Z+b,%@ .de2ak1 g6Cpe #ad62'PvPFN'd~  /z'3x!gY<я=fP&bcJ"RN}egf@ %5>r=a".ܵ!--&b:ew"N~( q^#"= `u0{:(cUg}Ρ.ZfSNߍBJ38hph\r HȊ})gҦu(rg B zh=^zHi{鯠ilhFfZJvfBÝn)& ]zz(gjn"93Pj~&Zu*>fgR&fFC~́韊iH|ujcg(FkBC4HòzpAGBGnjvjjhb(tlR>)fj(oB42pYFWZ~"HXҫs+jRhmBi槍)46sVc(e˾,,)RJl:b'~dzR pq"*("Ӫ4-FN-ܬmbhBJ4ж`v^+u`hmh*^ZV٢-J#¡I+jΉ"+ςkQC5XCf_(ᾫVNG^,:i'P\e.z&gfdG@6g>gŒ*6ΨBJ^_¡Zr.>G.ƞ+R 6n>GJlR>vkfo(z5 *H2l:FqLT/un^6hC[ʏi){/2.+F*6dGͪmB/v"Z*數 U.GlpʩU6Mp*qfp 0i0lpci6plh1 kq7qbo*0O/6t7Hlp( n-h *2ұk*r6M0=Ak#grrh22floJ.Ө2  &33h83@3J㢮n7|8h3-qj899#.o)2Ӹs}s%4.m.& /l(q?k?;}C8Ar3tvr~rDKw-)s/ckGw ɳ72g&Ig+JJ'ڭKWF4MoG+2/4I@jOO+鶮.kQ9,%^ufPnm.B:8Y3uhj[o2'>(K4W45{]+A)@52KuZ;t pJoPasb_9Oc|ߊbu䳋3E5S8@Ei/"Y+A4Ps[{v:/  9Tݬ'y _cpkx7yy7zk`t (VlspRLb@uv/9C>QZU2J Dɬ/878{*`o|G3~6t724 : CO2!́8Ae\+׸8??'8yƒo`|_s۷# /C:;xC^3B&9:ٙ949׹y{ ArW9Cy}ϱ#BG:x4By69sC泑0#a*IS+]C2xf]vC<;Ƿ[[Qc$4 z;CO%ӽ.zWWA%l A6dÃ# vgӷ74 \tܺTZٸ4nq씵>Q5EΒֳ`Al^+keˏw+f,Ae;LvL#m$(ƶP\ɱlb/TZ,X0֯=^QdJTe-v*|V;0hΊdjWAYј8YNsT:٩;PKHYšGGPKfUI OEBPS/toc.ncxQ Oracle® Text Application Developer's Guide, 10g Release 2 (10.2) Cover Title and Copyright Information Contents Send Us Your Comments Preface 1 Understanding Oracle Text Application Development 2 Getting Started with Oracle Text 3 Indexing with Oracle Text 4 Querying with Oracle Text 5 Presenting Documents in Oracle Text 6 Classifying Documents in Oracle Text 7 Tuning Oracle Text 8 Searching Document Section in Oracle Text 9 Working With a Thesaurus in Oracle Text 10 Administering Oracle Text 11 Migrating Oracle Text Applications A CONTEXT Query Application B CATSEARCH Query Application Glossary Index Copyright PK VQPKfUIOEBPS/index.htm Index

Index

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Z 

A

ABOUT query, 4.2.1
adding for your language, 9.4.1
case-sensitivity, 4.1.8.2
definition, 4.1.6
accents
indexing characters with, 3.2.8.2
ACCUM operator, 4.2.2
ADD_STOPCLASS procedure, 3.3.4.3
ADD_STOPTHEME procedure, 3.3.4.3, 3.3.4.3
ADD_STOPWORD procedure, 3.3.4, 3.3.4.3
ADD_SUB_LEXER procedure
example, 3.3.2.5
administration tool, 10.6
ALTER INDEX statement
rebuilding index, 3.4.4
resuming failed index, 3.4.3
alternate spelling, 3.2.8.3
alternative grammar, 4.1.18
alternative scoring, 4.1.17
AND operator, 4.2.2
application
sample, A, B
applications, updating, 11
attribute
searching XML, 8.3.2
attribute sections, 8.1.2.5
AUTO_FILTER filter, 3.1.3.2, 3.2.2, 3.2.4, 7.8.4
AUTO_SECTION_GROUP object, 8.1.1.1
automatic sections, 8.3.1

B

background DML, 10.5
base-letter conversion, 3.2.8.2
BASIC_LEXER, 3.2.5
BASIC_SECTION_GROUP object, 8.1.1.1
BFILE column, 3.2.1.1
indexing, 3.3.6.2
BINARY format column value, 3.2.2.2
BLOB column, 3.2.1.1
indexing, 3.3.6.2
blocking operations
tuning queries with, 7.6
bypassing rows, 3.2.3

C

cantaloupe dispenser, A.1
case-sensitive
ABOUT query, 4.1.8.2
indexing, 3.2.7
queries, 4.1.8
thesaurus, 9.1.2
catalog application, 2.4
example, 2.4
CATSEARCH, 4.1.2
creating index for, 3.3.7.3
operators, 4.3
SQL example, 4.1.2.1
structured query, 4.1.2.1
CATSEARCH queries, 2.4
CHAR column, 3.2.1.1
Character Large Object (CLOB), 2.3
character set
indexing, 3.2.4
indexing mixed, 3.2.4.1
character set column, 3.2.1.6
charset column, 3.2.4.1
CHARSET_FILTER, 3.1.3.2, 3.2.4
Chinese indexing, 3.2.8.5
CHINESE_VGRAM_LEXER, 3.2.8.5
classification
Decision Tree (supervised), 6.4.1
rule-based, 6.3
simple, see rule-based classification
supervised, 6.4
SVM (supervised), 6.4.2
unsupervised
classification application
example, 2.5
CLOB (Character Large Object) datatype, 2.3
CLOB column, 3.2.1.1
indexing, 3.3.6.2
clustering, see unsupervised classification
column types
supported for indexing, 3.2.1.1
composite words
indexing, 3.2.8.4
concordance, 5.1.3.3
CONTAINS
operators, 4.2
PL/SQL example, 4.1.1.2
query, 4.1.1
SQL example, 4.1.1.1
structured query, 4.1.1.3
CONTAINS query, 2.3
CONTEXT grammar, 4.2
CONTEXT index
about, 3.1.1
creating, 3.3.1, 3.3.6
HTML example, 2.3, 3.3.6.3, A.2.2
couch, self-tipping, A.1
counting hits, 4.2.10
CREATE INDEX statement, 3.3.5
CREATE TABLE permissions, 11.2.1.7
CREATE_INDEX_SCRIPT, 10.4
CREATE_POLICY_SCRIPT, 10.4, 10.4
CREATE_STOPLIST procedure, 3.3.4, 3.3.4.3
CTX_CLS.TRAIN procedure, 6.4
CTX_DDL.SYNC_INDEX procedure, 2.3, 3.5.2.1
CTX_DOC.POLICY_SNIPPET procedure, 5.1.3.3
CTX_DOC.SNIPPET procedure, 5.1.3.3
CTX_INDEX_ERRORS view, 3.4.1, 10.2
CTX_OUTPUT.END_QUERY_LOG, 4.1.19
CTX_OUTPUT.START_QUERY_LOG, 4.1.19
CTX_PENDING view, 10.2
CTX_REPORT, 3.5.3.5
CTX_REPORT package, 10.4
CTX_REPORT_QUERY_LOG_SUMMARY, 4.1.19
CTX_REPORT_TOKEN_TYPE, 10.4
CTX_REPORT.CREATE_INDEX_SCRIPT, 10.4
CTX_REPORT.CREATE_POLICY_SCRIPT, 10.4, 10.4
CTX_REPORT.DESCRIBE_INDEX, 10.4
CTX_REPORT.DESCRIBE_POLICY, 10.4
CTX_REPORT.INDEX_SIZE, 10.4
CTX_REPORT.INDEX_STATS, 10.4
CTX_REPORT.QUERY_LOG_SUMMARY, 10.4
CTX_REPORT.TOKEN_INFO, 10.4
CTX_THES package
about, 9.1.1.1
CTX_USER_INDEX_ERRORS view, 3.4.1, 10.2
CTX_USER_PENDING view, 10.2
CTXAPP role, 2.2, 10.1
CTXCAT grammar, 4.3
CTXCAT index
about, 3.1.1
about performance, 7.7.17
automatic synchronization, 2.4
creating, 2.4
example, 3.3.7
ctxkbtc
example, 9.3.2.5
ctxload
load thesaurus example, 9.1.1.3, 9.3.1, 9.3.2.4
CTXRULE index, 6.3.2
about, 3.1.1
allowable queries, 6.3.2
creating, 2.5.1, 3.3.8
lexer types, 6.3.2
limitations, 6.3.2
parameters, 6.3.2
CTXSYS user, 10.1
and DBA permissions, 11.2.1.1
and effective user, 11.2.1.3
and procedure ownership, 11.2.1.4
CREATE TABLE permissions, 11.2.1.7
migrating procedures owned by, 11.2.1.2, 11.2.2
preferences, 11.2.1.4
synching and optimizing other indexes, 11.2.1.5, 11.2.1.6
CTXXPATH index, 1.6.3.2
about, 3.1.1

D

data storage
index default, 3.3.6.2
preference example, 3.3.2.1.4
datastore
about, 3.1.3.1, 3.3.1
DATE column, 3.3.6.2
DBA permissions and CTXSYS, 11.2.1.1
DBMS_JOB.SUBMIT procedure, 3.5.2.1
Decision Tree supervised classification, 6.4.1
default thesaurus, 9.1.4
DEFAULT_INDEX_MEMORY, 7.8.2
defaults
index, 3.3.6.2
DESCRIBE_INDEX, 10.4
DETAIL_DATASTORE, 3.2.1.2.1
about, 3.2.1.8
diacritical marks
characters with, 3.2.8.2
DIRECT_DATASTORE, 3.2.1.2.1
about, 3.2.1.8
example, 3.3.2.1.1
DML
view pending, 3.5.1
DML processing
background, 10.5
DML queue, 10.2
document
classification, 3.3.8, 6
document format
affect on index performance, 7.8.4
affect on performance, 7.7.5
document formats
filtering, 3.2.2
supported, 3.2.1.7
document invalidation, 3.5.3.3
document presentation
about, 5.3
document sections, 3.3.3
document services
about, 5.3
DOMAIN_INDEX_NO_SORT hint
better throughput example, 7.3.2
drjobdml.sql script, 3.5.2.1
DROP INDEX command, 3.4.2
DROP_STOPLIST procedure, 3.3.4.3
dropping an index, 3.4.2

E

effective user, 11.2.1.3
EQUIV operator, 4.2.2
errors
DML, 10.2
viewing, 3.4.1
explain plan, 4.1.10
exporting statistics, 7.1
extensible query optimizer, 7.1

F

feedback
query, 4.1.9
field section
definition, 8.1.2.2
nested, 8.1.2.2.2
repeated, 8.1.2.2.3
visible and invisible, 8.1.2.2.1
file paths
storing, 3.2.1.3
FILE_DATASTORE, 3.1.3.1
about, 3.2.1.3, 3.2.1.8
example, 3.3.2.1.4
filter
about, 3.1.3.2, 3.3.1
filtering
custom, 3.2.2.3
index default, 3.3.6.2
to plain text and HTML, 5.3
filtering documents, 3.2.2
FIRST_ROWS hint, 4.2.9
better response time example, 7.2.2.1
better throughput example, 7.3.2
format column, 3.2.1.6, 3.2.2.2, 3.2.3
formats
filtering, 3.2.2
supported, 3.2.1.7
fragmentation of index, 3.5.3.2, 7.9.2
viewing, 3.5.3.5
full themes
obtaining, 5.2.1.2.2
functional lookup, 7.7.6
fuzzy matching, 3.2.9
default, 3.3.6.2
fuzzy operator, 4.2.5

G

garbage collection, 3.5.3.3
German
alternate spelling, 3.2.8.3
composite words, 3.2.8.4
gist
definition, 5.2
example, 5.2.2.1
GIST procedure, 5.2.2
grammar
alternative, 4.1.18
CTXCAT, 4.3
grammar CONTEXT, 4.2
granting roles, 2.2, 10.1.3

H

HASPATH operator, 8.3.4
examples, 8.3.4.8
HFEEDBACK procedure, 4.1.9
highlighting
about, 5.3
overview, 5.1
highlighting documents, 2.3
highlighting text, 5.1.1
highlighting themes, 5.1.2
hit count, 4.2.10
home air dirtier, A.1
HTML
filtering to, 5.3
indexing, 3.3.2.2, 8.1.1.1
indexing example, 2.3, A.2.2
searching META tags, 8.2.2
zone section example, 3.3.3.1, 8.2.1
HTML_SECTION_GROUP object, 3.3.3.1, 8.1.1.1, 8.2.1
with NULL_FILTER, 2.3, 3.3.2.2, A.2.2

I

IGNORE
format column value, 3.2.3
IGNORE format column value, 3.2.2.2
importing statistics, 7.1
index
about, 3.1
creating, 3.3, 3.3.5
dropping, 3.4.2
getting report on, 10.4
optimizing, 3.5.3, 3.5.3.6
rebuilding, 3.4.4
statistics on, 10.4
structure, 3.1.2, 3.5.3.1
synchronizing, 3.5.2, 10.5
viewing information on, 10.4
index defaults
general, 3.3.6.2
index engine
about, 3.1.3.5
index errors
viewing, 3.4.1
index fragmentation, 3.5.3.2, 7.9.2
index maintenance, 3.4
index memory, 7.8.2
index synchronization, 2.3
index types
choosing, 3.1.1
INDEX_SIZE, 10.4
INDEX_STATS, 10.4
INDEX_STATS procedure, 3.5.3.5
indexed lookup, 7.7.6
indexing
and views, 3.1.7
bypassing rows, 3.2.3
considerations, 3.2
overview of process, 3.1.3
parallel, 3.1.6, 7.8.5
resuming failed, 3.4.3
special characters, 3.2.6
indexing performance
FAQs, 7.8
parallel, 7.8.6
indexing time, 7.8.1
INPATH operator, 8.3.4
examples, 8.3.4.2
INSO_FILTER (deprecated), 11.1.1
INSO_OUTPUT_FORMATTING attribute (deprecated), 11.1.1
INSO_TIMEOUT attribute (deprecated), 11.1.1
INSOFILTER directive (deprecated), 11.1.1

J

Japanese indexing, 3.2.8.5
JAPANESE_LEXER, 3.2.8.5
Jdeveloper
Text wizard, 2.3.1, A, B

K

knowledge base
about, 9.4
augmenting, 9.3.2
linking new terms, 9.3.2.3
supported character set, 9.4
user-defined, 9.4.1
Korean indexing, 3.2.8.5
KOREAN_MORPH_LEXER, 3.2.8.5

L

language
default setting for indexing, 3.3.6.2
language specific features, 3.2.8
languages
indexing, 3.2.5
language-specific knowledge base, 9.4.1
lexer
about, 3.1.3.4, 3.3.1
and CTXRULE, 6.3.2
list of themes
definition, 5.2
obtaining, 5.2.1
loading text
about, 3.2.1
LOB columns
improving query performance, 7.7.11
indexing, 3.3.6.2
local partitioned index, 7.7.14
improved response time, 7.2.3
location of text, 3.2.1
logical operators, 4.2.2

M

magnet, pet see pet magnet
maintaining the index, 3.4
marked-up document
obtaining, 5.1.3.1
MARKUP procedure, 2.3, 5.1.3.1
MATCHES
about, 4.1.3
PL/SQL example, 3.3.8.3, 4.1.3.2
SQL example, 4.1.3.1
MATCHES operator, 2.5.1, 6.3.1
materialized views, indexes on
MAX_INDEX_MEMORY, 7.8.2
MDATA operator, 8.1.2.4
MDATA section, 8.1.2.4
memory allocation
index synchronization, 7.9.3
indexing, 7.8.2
querying, 7.7.10
META tag
creating zone section for, 8.2.2.1
metadata
adding, 8.1.2.4
removing, 8.1.2.4
section, 8.1.2.4
migrating from previous releases, 11
migrating procedures, 11.2.1.2
migrating to previous releases, 11.2.2
mixed formats
filtering, 3.2.2.2
mixed query, 8.1.2.4
MULTI_COLUMN_DATASTORE, 3.2.1.2.1
about, 3.2.1.8
example, 3.3.2.1.2
MULTI_LEXER, 3.2.5.2
example, 3.3.2.5
multi-language columns
indexing, 3.2.5.2
multi-language stoplist
about, 3.3.4.1
multiple CONTAINS
improving performance, 7.7.12
MVIEW see materialized views

N

NCLOB column, 3.3.6.2
NEAR operator, 4.2.4
NEAR_ACCUM operator, 4.2.4
nested zone sections, 8.1.2.1.3
NESTED_DATASTORE, 3.2.1.2.1
about, 3.2.1.8
NEWS_SECTION_GROUP object, 8.1.1.1
NOT operator, 4.2.2
NULL_FILTER, 3.1.3.2
example, 2.3, 3.3.2.2, A.2.2
NULL_SECTION_GROUP object, 8.1.1.1
NUMBER column, 3.3.6.2

O

offset information
highlight, 5.1.3.2
operator
MDATA, 8.1.2.4
operators
CATSEARCH, 4.3
CONTAINS, 4.2
logical, 4.2.2
thesaurus, 9.1.1.2
optimizing index, 3.5.3
example, 3.5.3.6
single token, 3.5.3.4
optimizing queries, 4.2.9, 7.1
FAQs, 7.7
response time, 7.2
statistics, 7.1
throughput, 7.3
with blocking operations, 7.6
OR operator, 4.2.2
ora
contains, 1.6.2
Oracle Enterprise Manager, 10.6
Oracle XML DB, 1.6
Oracle9i Text Manager, 10.6
out of line LOB storage
improving performance, 7.7.11

P

parallel indexing, 3.1.6, 7.8.5
partitioned table, 7.8.6
parallel queries, 7.5, 7.7.15
paramstring for CREATE INDEX, 3.3.5
partitioned index, 7.7.14
improved response time, 7.2.3
path section searching, 8.3.4
PATH_SECTION_GROUP
example, 8.3.4.1
pending DML
viewing, 3.5.1
pending updates, 10.2
performance tuning
indexing, 7.8
querying, 7.7
updating index, 7.9
pet magnet, A.1
gist, 5.3.3
illustration, 5.3
themes, 5.3.2
phrase query, 4.1.4
pizza shredder, A.1
plain text
indexing with NULL_FILTER, 3.3.2.2
plain text filtering, 5.3
PL/SQL functions
calling in contains, 4.2.8
preferences
and CTXSYS, 11.2.1.4
creating (examples), 3.3.2
creating with admin tool, 10.6
dropping, 3.4.5
previous releases, migrating from, 11
previous releases, migrating to, 11.2.2
printjoins character, 3.2.6.1
PROCEDURE_FILTER, 3.2.2.3
PSP application, A.2, B.2

Q

query
ABOUT, 4.2.1
analysis, 4.1.19
blocking operations, 7.6
case-sensitive, 4.1.8
CATSEARCH, 4.1.2, 4.1.2.1
CONTAINS, 4.1.1
counting hits, 4.2.10
CTXRULE, 6.3.2
getting report on, 10.4
log, 4.1.19
MATCHES, 4.1.3
mixed, 8.1.2.4
optimizing for throughput, 7.3
overview, 4.1
parallel, 7.5
speeding up with MDATA, 8.1.2.4
viewing information on, 10.4
viewing log of, 10.4
query analysis, 4.1.19
query application
example, 2.3
sample, 1.3.1
query explain plan, 4.1.10
query expressions, 4.1.7
query features, 4.1.20
query feedback, 4.1.9
query language, 4.1.16
query log, 4.1.19, 10.4
query optimization, 4.2.9
FAQs, 7.7
response time, 7.2
query performance
FAQs, 7.7
query relaxation, 4.1.15
query rewrite, 4.1.14
query template, 4.2.6, 4.3.1
QUERY_LOG_SUMMARY, 10.4
queue
DML, 10.2

R

rebuilding an index, 3.4.4
relaxing queries, 4.1.15
REMOVE_SQE procedure, 4.2.7.1
REMOVE_STOPCLASS procedure, 3.3.4.3
REMOVE_STOPTHEME procedure, 3.3.4.3
REMOVE_STOPWORD procedure, 3.3.4, 3.3.4.3
response time
improving, 7.2
optimizing for, 4.2.9
result buffer size
increasing, 7.6
resuming failed index, 3.4.3
rewriting queries, 4.1.14
roles
granting, 2.2, 10.1.3
system-defined, 10.1
rule-based classification, 6.3

S

sample application, A, B
scoring
alternative, 4.1.17
searching
XML, 1.6
section
attribute, 8.1.2.5
field, 8.1.2.2
groups and types, 8.1.2
HTML example, 3.3.3
MDATA, 8.1.2.4
nested, 8.1.2.1.3
overlapping, 8.1.2.1.2
repeated zone, 8.1.2.1.1
special, 8.1.2.6
stop section, 8.1.2.3
types and groups, 8.1.2
zone, 8.1.2.1
section group
about, 3.3.1
and section types, 8.1.2
creating with admin tool, 10.6
section searching
about, 4.1.12, 8.1
enabling, 8.1.1
HTML, 8.2.1
sectioner
about, 3.1.3.3
sectioning
automatic, 8.3.1
path, 8.3.4
security improvements in current release, 11.2.1
self-tipping couch, A.1
SGA memory allocation, 7.8.2
simple classification, see rule-based classification
single themes
obtaining, 5.2.1.2.1
size of index, viewing, 10.4
skipjoins character, 3.2.6.2
SORT_AREA_SIZE, 7.6, 7.7.10, 7.8.2
special characters
indexing, 3.2.6
special sections, 8.1.2.6
spelling
alternate, 3.2.8.3
SQE operator, 4.2.7
statistics
exporting and importing, 7.1
optimizing with, 7.1.1
stem operator, 3.2.9, 4.2.5
stemming
default, 3.3.6.2
improving performance, 7.7.13
stop section, 8.1.2.3
stopclass, 3.3.4.2, 3.3.4.2
stoplist, 3.3.4
about, 3.3.1
creating with admin tool, 10.6
default, 3.3.6.2
multi-language, 3.2.12.1, 3.3.4.1
PL/SQL procedures, 3.3.4.3
stoptheme, 3.3.4.2, 3.3.4.2
about, 3.2.12
definition, 4.1.6.1
stopword, 3.3.4, 3.3.4.2
about, 3.2.12, 4.1.5
case-sensitive, 4.1.8.1.1
storage
about, 3.3.1
STORE_SQE procedure, 4.2.7, 4.2.7.1
stored query expressions, 4.2.7
storing text, 3.2.1
about, 3.2.1.2
structure of index, 3.5.3.1
structured query
example, 3.3.7
supervised classification, 6.4
Decision Tree, 6.4.1
SVM supervised classification, 6.4.2
memory requirements, 6.4.2
SYN operator, 9.2.1
SYNC_INDEX procedure, 2.3, 3.5.2.1
synching and optimizing other indexes, 11.2.1.5, 11.2.1.6
synchronize index, 2.3
synchronizing index, 3.5.2, 10.5
improving performance, 7.9
synonyms
defining, 9.2.1

T

talking pillow, A.1
template queries, 4.2.6, 4.3.1
text column
supported types, 3.2.1.1
TEXT format column value, 3.2.2.2
text highlighting, 5.1.1
Text Manager tool, 10.6
text storage, 3.2.1
theme functionality
adding, 9.4.1
theme highlighting, 5.1.2
theme summary
definition, 5.2
themes
indexing, 3.2.8.1
THEMES procedure, 5.2.1
thesaural queries
about, 4.1.11
thesaurus
about, 9.1
adding to knowledge base, 9.3.2
case-sensitive, 9.1.2
DEFAULT, 9.1.4
default, 9.1.4
defining terms, 9.2
hierarchical relations, 9.2.2
loading custom, 9.3.1
operators, 9.1.1.2
supplied, 9.1.5
using in application, 9.3
thesaurus operator, 4.2.5
throughput
improving query, 7.3
tildes
indexing characters with, 3.2.8.2
TOKEN_INFO, 10.4
TOKEN_TYPE, 10.4
tracing, 7.4
TRAIN procedure, 6.4
tuning queries
for response time, 7.2
for throughput, 7.3
increasing result buffer size, 7.6
with statistics, 7.1

U

umlauts
indexing characters with, 3.2.8.2
unsupervised classification, 6.5
updating index performance
FAQs, 7.9
updating your applications, 11
URL_DATASTORE
about, 3.2.1.8
example, 3.3.2.1.3
URLs
storing, 3.2.1.4
user
creating Oracle Text, 2.2
system-defined, 10.1
USER_DATASTORE, 3.1.7
about, 3.2.1.8
USER_FILTER, 3.2.2.3

V

VARCHAR2 column, 3.2.1.1
viewing information on indexes and queries, 10.4
viewing size of index, 10.4
views
and indexing, 3.1.7
materialized

W

wildcard operator, 4.2.5
improving performance, 7.7.13
WITHIN operator, 3.3.3
wizard
Oracle Text addin, 2.3.1, A, B
word query, 4.1.4
case-sensitivity, 4.1.8.1
wordlist
about, 3.3.1

X

XML DB, 1.6
XML documents
attribute searching, 8.3.2
doctype sensitive sections, 8.3.3
indexing, 8.1.1.1
section searching, 8.3
XML searching, 1.6
XML_SECTION_GROUP object, 8.1.1.1

Z

zone section
definition, 8.1.2.1
nested, 8.1.2.1.3
overlapping, 8.1.2.1.2
repeating, 8.1.2.1.1
PKVN>4PKfUIOEBPS/dcommon/blafdoc.cssc@charset "utf-8"; /* Copyright 2002, 2011, Oracle and/or its affiliates. All rights reserved. Author: Robert Crews Version: 2011.8.12 */ body { font-family: Tahoma, sans-serif; /* line-height: 125%; */ color: black; background-color: white; font-size: small; } * html body { /* http://www.info.com.ph/~etan/w3pantheon/style/modifiedsbmh.html */ font-size: x-small; /* for IE5.x/win */ f\ont-size: small; /* for other IE versions */ } h1 { font-size: 165%; font-weight: bold; border-bottom: 1px solid #ddd; width: 100%; text-align: left; } h2 { font-size: 152%; font-weight: bold; text-align: left; } h3 { font-size: 139%; font-weight: bold; text-align: left; } h4 { font-size: 126%; font-weight: bold; text-align: left; } h5 { font-size: 113%; font-weight: bold; display: inline; text-align: left; } h6 { font-size: 100%; font-weight: bold; font-style: italic; display: inline; text-align: left; } a:link { color: #039; background: inherit; } a:visited { color: #72007C; background: inherit; } a:hover { text-decoration: underline; } a img, img[usemap] { border-style: none; } code, pre, samp, tt { font-family: monospace; font-size: 110%; } caption { text-align: center; font-weight: bold; width: auto; } dt { font-weight: bold; } table { font-size: small; /* for ICEBrowser */ } td { vertical-align: top; } th { font-weight: bold; text-align: left; vertical-align: bottom; } li { text-align: left; } dd { text-align: left; } ol ol { list-style-type: lower-alpha; } ol ol ol { list-style-type: lower-roman; } td p:first-child, td pre:first-child { margin-top: 0px; margin-bottom: 0px; } table.table-border { border-collapse: collapse; border-top: 1px solid #ccc; border-left: 1px solid #ccc; } table.table-border th { padding: 0.5ex 0.25em; color: black; background-color: #f7f7ea; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; } table.table-border td { padding: 0.5ex 0.25em; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; } span.gui-object, span.gui-object-action { font-weight: bold; } span.gui-object-title { } p.horizontal-rule { width: 100%; border: solid #cc9; border-width: 0px 0px 1px 0px; margin-bottom: 4ex; } div.zz-skip-header { display: none; } td.zz-nav-header-cell { text-align: left; font-size: 95%; width: 99%; color: black; background: inherit; font-weight: normal; vertical-align: top; margin-top: 0ex; padding-top: 0ex; } a.zz-nav-header-link { font-size: 95%; } td.zz-nav-button-cell { white-space: nowrap; text-align: center; width: 1%; vertical-align: top; padding-left: 4px; padding-right: 4px; margin-top: 0ex; padding-top: 0ex; } a.zz-nav-button-link { font-size: 90%; } div.zz-nav-footer-menu { width: 100%; text-align: center; margin-top: 2ex; margin-bottom: 4ex; } p.zz-legal-notice, a.zz-legal-notice-link { font-size: 85%; /* display: none; */ /* Uncomment to hide legal notice */ } /*************************************/ /* Begin DARB Formats */ /*************************************/ .bold, .codeinlinebold, .syntaxinlinebold, .term, .glossterm, .seghead, .glossaryterm, .keyword, .msg, .msgexplankw, .msgactionkw, .notep1, .xreftitlebold { font-weight: bold; } .italic, .codeinlineitalic, .syntaxinlineitalic, .variable, .xreftitleitalic { font-style: italic; } .bolditalic, .codeinlineboldital, .syntaxinlineboldital, .titleinfigure, .titleinexample, .titleintable, .titleinequation, .xreftitleboldital { font-weight: bold; font-style: italic; } .itemizedlisttitle, .orderedlisttitle, .segmentedlisttitle, .variablelisttitle { font-weight: bold; } .bridgehead, .titleinrefsubsect3 { font-weight: bold; } .titleinrefsubsect { font-size: 126%; font-weight: bold; } .titleinrefsubsect2 { font-size: 113%; font-weight: bold; } .subhead1 { display: block; font-size: 139%; font-weight: bold; } .subhead2 { display: block; font-weight: bold; } .subhead3 { font-weight: bold; } .underline { text-decoration: underline; } .superscript { vertical-align: super; } .subscript { vertical-align: sub; } .listofeft { border: none; } .betadraft, .alphabetanotice, .revenuerecognitionnotice { color: #f00; background: inherit; } .betadraftsubtitle { text-align: center; font-weight: bold; color: #f00; background: inherit; } .comment { color: #080; background: inherit; font-weight: bold; } .copyrightlogo { text-align: center; font-size: 85%; } .tocsubheader { list-style-type: none; } table.icons td { padding-left: 6px; padding-right: 6px; } .l1ix dd, dd dl.l2ix, dd dl.l3ix { margin-top: 0ex; margin-bottom: 0ex; } div.infoboxnote, div.infoboxnotewarn, div.infoboxnotealso { margin-top: 4ex; margin-right: 10%; margin-left: 10%; margin-bottom: 4ex; padding: 0.25em; border-top: 1pt solid gray; border-bottom: 1pt solid gray; } p.notep1 { margin-top: 0px; margin-bottom: 0px; } .tahiti-highlight-example { background: #ff9; text-decoration: inherit; } .tahiti-highlight-search { background: #9cf; text-decoration: inherit; } .tahiti-sidebar-heading { font-size: 110%; margin-bottom: 0px; padding-bottom: 0px; } /*************************************/ /* End DARB Formats */ /*************************************/ @media all { /* * * { line-height: 120%; } */ dd { margin-bottom: 2ex; } dl:first-child { margin-top: 2ex; } } @media print { body { font-size: 11pt; padding: 0px !important; } a:link, a:visited { color: black; background: inherit; } code, pre, samp, tt { font-size: 10pt; } #nav, #search_this_book, #comment_form, #comment_announcement, #flipNav, .noprint { display: none !important; } body#left-nav-present { overflow: visible !important; } } PKr.hcPKfUIOEBPS/dcommon/oracle-logo.jpgPjJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222'7" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE!KEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEzE7V%ȣOΏ9??:a"\fSrğjAsKJ:nOzO=}E1-I)3(QEQEQEQEQEQEQE֝Hza<["2"pO#f8M[RL(,?g93QSZ uy"lx4h`O!LŏʨXZvq& c՚]+: ǵ@+J]tQ]~[[eϸ (]6A&>ܫ~+כzmZ^(<57KsHf妬Ϧmnẁ&F!:-`b\/(tF*Bֳ ~V{WxxfCnMvF=;5_,6%S>}cQQjsOO5=)Ot [W9 /{^tyNg#ЄGsֿ1-4ooTZ?K Gc+oyڙoNuh^iSo5{\ܹ3Yos}$.nQ-~n,-zr~-|K4R"8a{]^;I<ȤL5"EԤP7_j>OoK;*U.at*K[fym3ii^#wcC'IIkIp$󿉵|CtĈpW¹l{9>⪦׺*ͯj.LfGߍԁw] |WW18>w.ӯ! VӃ :#1~ +މ=;5c__b@W@ +^]ևՃ7 n&g2I8Lw7uҭ$"&"b eZ":8)D'%{}5{; w]iu;_dLʳ4R-,2H6>½HLKܹR ~foZKZ࿷1[oZ7׫Z7R¢?«'y?A}C_iG5s_~^ J5?œ tp]X/c'r%eܺA|4ծ-Ե+ْe1M38Ǯ `|Kյ OVڅu;"d56, X5kYR<̭CiطXԮ];Oy)OcWj֩}=܅s۸QZ*<~%뺃ȶp f~Bðzb\ݳzW*y{=[ C/Ak oXCkt_s}{'y?AmCjޓ{ WRV7r. g~Q"7&͹+c<=,dJ1V߁=T)TR՜*N4 ^Bڥ%B+=@fE5ka}ędܤFH^i1k\Sgdk> ֤aOM\_\T)8靠㡮3ģR: jj,pk/K!t,=ϯZ6(((((((49 xn_kLk&f9sK`zx{{y8H 8b4>ÇНE|7v(z/]k7IxM}8!ycZRQ pKVr(RPEr?^}'ðh{x+ՀLW154cK@Ng C)rr9+c:׹b Жf*s^ fKS7^} *{zq_@8# pF~ [VPe(nw0MW=3#kȵz晨cy PpG#W:%drMh]3HH<\]ԁ|_W HHҡb}P>k {ZErxMX@8C&qskLۙOnO^sCk7ql2XCw5VG.S~H8=(s1~cV5z %v|U2QF=NoW]ո?<`~׮}=ӬfԵ,=;"~Iy7K#g{ñJ?5$y` zz@-~m7mG宝Gٱ>G&K#]؃y1$$t>wqjstX.b̐{Wej)Dxfc:8)=$y|L`xV8ߙ~E)HkwW$J0uʟk>6Sgp~;4֌W+חc"=|ř9bc5> *rg {~cj1rnI#G|8v4wĿhFb><^ pJLm[Dl1;Vx5IZ:1*p)إ1ZbAK(1ׅ|S&5{^ KG^5r>;X׻K^? s fk^8O/"J)3K]N)iL?5!ƾq:G_=X- i,vi2N3 |03Qas ! 7}kZU781M,->e;@Qz T(GK(ah(((((((Y[×j2F}o־oYYq $+]%$ v^rϭ`nax,ZEuWSܽ,g%~"MrsrY~Ҿ"Fت;8{ѰxYEfP^;WPwqbB:c?zp<7;SBfZ)dϛ; 7s^>}⍱x?Bix^#hf,*P9S{w[]GF?1Z_nG~]kk)9Sc5Ո<<6J-ϛ}xUi>ux#ţc'{ᛲq?Oo?x&mѱ'#^t)ϲbb0 F«kIVmVsv@}kҡ!ˍUTtxO̧]ORb|2yԵk܊{sPIc_?ħ:Ig)=Z~' "\M2VSSMyLsl⺿U~"C7\hz_ Rs$~? TAi<lO*>U}+'f>7_K N s8g1^CeКÿE ;{+Y\ O5|Y{/o+ LVcO;7Zx-Ek&dpzbӱ+TaB0gNy׭ 3^c T\$⫫?F33?t._Q~Nln:U/Ceb1-im WʸQM+VpafR3d׫é|Aү-q*I P7:y&]hX^Fbtpܩ?|Wu󭏤ʫxJ3ߴm"(uqA}j.+?S wV ~ [B&<^U?rϜ_OH\'.;|.%pw/ZZG'1j(#0UT` Wzw}>_*9m>󑓀F?EL3"zpubzΕ$+0܉&3zڶ+jyr1QE ( ( ( ( ( ( ( (UIdC0EZm+]Y6^![ ԯsmܶ捆?+me+ZE29)B[;я*wGxsK7;5w)}gH~.Ɣx?X\ߚ}A@tQ(:ͧ|Iq(CT?v[sKG+*רqҍck <#Ljα5݈`8cXP6T5i.K!xX*p&ќZǓϘ7 *oƽ:wlຈ:Q5yIEA/2*2jAҐe}k%K$N9R2?7ýKMV!{W9\PA+c4w` Wx=Ze\X{}yXI Ү!aOÎ{]Qx)#D@9E:*NJ}b|Z>_k7:d$z >&Vv󃏽WlR:RqJfGإd9Tm(ҝEtO}1O[xxEYt8,3v bFF )ǙrPNE8=O#V*Cc𹾾&l&cmCh<.P{ʦ&ۣY+Gxs~k5$> ӥPquŽўZt~Tl>Q.g> %k#ú:Kn'&{[yWQGqF}AЅ׮/}<;VYZa$wQg!$;_ $NKS}“_{MY|w7G!"\JtRy+贾d|o/;5jz_6fHwk<ѰJ#]kAȎ J =YNu%dxRwwbEQEQEQEQEQEQEQEQEQE'fLQZ(1F)hQ@X1KEQE-Q@ 1KE3h=iPb(((1GjZ(-ʹRPbR@ 1KE7`bڒyS0(-&)P+ ڎԴP11F)h&:LRmQ@Q@Š((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((([ufT5K9 ر1S^q|&o2R}E"Ȟib!8ct@><7kV$PFC#zepZZǍO $< @(7ĺp^N]IX.@ IHrL KXi2ǁ@h^S Y3h$#`pÃ*'ypo3g=EhQ^W'{ƾ4r ovk-҉5m6R.]B5 |V2]yS9#n@}+CaQn+t |Pu˝_ Eka͌rYۇ~AhǾg,AZ]G{n9ƀ6(x-h%@WR2#5xAѮTwWI8#>ƀ5(7zwp]ɝA G^ox-5y.д8I $lp~]uzSVa!-P7h(מU3>Vҩzvv Ү`GlNOXỏNs^!hl>.[#{p8}vQX,ޙy%4Kc '# U8m6mRm.-BS|2Qx9^H=hc wxJ;!9 8Prp?lPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP^?:*?ֽt>,T {|a>cķ -,t{;Kvc[s\*r8e<;cĺ~"%ظaM4Eq amĐ2cikOMִ7oYJYx 6o_~<a]ZRݒlf IV$Fk5Ok)LdAM38DqץzGWB O}^F%٘9$\Pqy{-ؖkY$&)˪+Zo+61)F6J2p# ǟ_Jc[`U u|#(Xl|%k |M.ONYLfVGjc;rv] ~Ѥɞ2kzP>k/Hqרxo߅|#_d# ?%(H$a؎?*6LwBD26eoW1KRQxR^l;/#6:;IaXTs@ḴE&NkAvF$@h'cRQᏋ ڽp~Y/n7P7y_b_lcfK/Ye9.2%Aݶ3 eXoG~g7,jH* `gP,>vK-GNH qc#9'g䲴 g8[aS|oG|%?}᫳ffRY=c ]/Yhrj67BUei8ˆ1 c8]OAo>Wu>z@CaQn('uG(*?m!nS'}K/X׮ 2B#kt j='t9!mg./q4EU H$gSz4~7n̐ Fb\ى Mu7/kzr^E\47-Fqer4<#/:u݆[3T;@Q^G? j[/Rk9I$o78p|V;X+.|Sox7mՔW0IHA'E g&͞w1۹P _⮈I4bT4ҲFIUrR6o&&kvJvo8Ͻs&|'_{{ V.] ʻN0[o6R:C!ˑrރs(@@f մnTϷr<3x$r+'u^x:Ŧkm (|w@ ~!nCWuM3GҼ?؆ e ːmffs&#Z]&vnX̭GG`='$cqichúM=ў2E^ uW]xM&"8e*͐APH ,xG-)}Pߠl 8[ 25mEH{kiDHvʐxc8#.zZ?dyyۣhgS֛zȫ[#%`qQA?k@ස_riז6]<b``=f_gj7]4MI%h1$ $$ևxW_)%$B(=((((((((((((((((((-ZxİYqހ(i;G^ֶ(C] vb\ ~pCǒ 33+b~O@&p'I;={:_-b 'g,D0$g2jQ@*C2;k;tIG$O$NI{>.g}g1M$2&Fx<$5Q@·N{ ^ V2gi z`0?W:K"0Y2F򮢊+mW5q1RJoQ@e%JU#GBkRiBq"$gb2Y,}$YYQ{G@%$y$#e ēK2II%F',y>Q@uH"ɔOgDzOmooݦK'o5_XYvrYAwk&7 tnJӻIm&t !XnpOs4 sJ o^@/gx ~i85H4pFʧA!@>^oF4X&#c2x}}qZ(_|II%ãGbѨP[址Arh/GeN;n;3iLJ-TtOYdTwZ-}qo{k; @Y!A+>U{srWnDގ#[ ݥv`nJ Lsmg'kuM #r0N# b*Ƴ7ci3@6F\rnOzg?9egq,B#4J|ՕdT+1V h+¾!_rvGwr'ppvas+b Mw˸<5{><L:*Wpz5E|2wKQ}gSO[,KvF63x( *m{yZvxCf5׵W gx- v'q#{3Ht߈7چmK%YQܱ.$lg @ 3=)>FV X?ަ9?>3_x:Wh]=RUqЩVq$+ 6m_['Ye;Tp";(hjl 8m[gTQmp3mp +_ B_k7rmXʧkl5%IyZ襠((((((((((%O`?_4`ֹ>gGEo\3%gW񕿌/+[`̑.PX)rC!;DDWi M7 I_,,(ǀҷ<7 xG:d4i$ +m(;s5P;Ƈm,Z檺 吸^7ʆ2Ly# s7/ym"WiZUevv(I9$I$@W8RE0f8v,Ox+M6w455ӫ0bUF0+q;NWp{9<`ASs*b -ϷXA=@80(osWIHh̑S\ nd~NK#:`oVUFT+'ym"h%BG"WR0Aw߳ς$u[( (p]=}8 |_L/5(qB ,`)#9N A|9Tv-kSdW]8GN \Ջi<Ӽa,cP6FQR$a9t#@:J(9=vxO GM }Y\!(/+B+#?ë1 kvmp$8?>a0x+%lP $ž29F8rN0; aj)y*j[0VU  E]1ʐNAZυtRcYlc(g@ qj\^GZD̛܌a'Xcѷ3@ ]Y%t¹Þ3)8MO 8X+H58?ZP_o,.໵JMA 0? I>ɦ=TD{ϞӃ"g0' x?@}h:lvi;gg `ep2}MG^5ӖZ| I 0*89R@8s>!|1Oj1HUU`&9 p3y$P**Ѿ+HRUԶ`7ҫFA*c ]gFK绚 n՘1U\ Aր8?P'Tۊ{}o&Wd>i 壏)HgМHO +M𾳮S>qԪ6l&3!OARxzt֭<+qdbB0JT2X?sjU|*/+Ȓ@7jEEZ7?i^JږUh%QWwLakWiz\sA-\3]:*Tc;zϞ w;sSnj5[76~TI7(v̈K1' qYHw߳9//VAEn:GON(> Kt+ζ!2~UM7Vuv K4,$g{_O\˧iwmmnvƀ(q|1qV=wqe0>ȈH=K sgݩ^Y$=OAxI熿k|Ú!|'xv pmz卥ئ݆l= Lwm"v߱N3&4(((((((((((+_hτ jqϫIn$([tJV ޳Ҿ:.6buo$qn\H_N3PQ\?_4?}6Um,fI]k( VԦ|O˨]L$mgϭzQEQEQE^SӮl/#-nxfMnF0dҬQ@&xsGImc.-w1cO$MhQEQ^W⩾,3,-4-%&$sxv`$(u`wkDxIH]9d:Whz͟t;-^IJH%s["4(-l-BWK{2cN:d vʌ(oz>:Y<۹.iYdnJYa~SrkO-mGwz"-[Sg]AߏWN_뗟kPxU#ucעO<6\K0DF dOhJ+]+e߂DЭx#< 6Q 1֧|}ƶ  ~g n«d(*KdzQ@vKo%|?oG6HxAK?x^(Mԥ1@ѦÄm5,7nU< +?\_Xt'x#FGVSFz //h6\;#fX ubvn'D((((((_?#yhOt:̌;Aln;b(ïVh$];<W!;q(((((((((((7_[2uy'kk<>vnXrp]$~Co,I;X3>܀dEs_ "h%$E [pAj iw6L|KX32A= @]/Ti|M/[n`w˄#n<8v>%xQ~ ZھE*gQFR~-Ip 뺕Ư ~YRf}u!pPvT'%d\:|5w.'.z12+HX|梖$ 994~DmZ6I0y$ v.p='/ƳMG!F"D$#=¨ўKV*Y?)jx}5Bk!,T to?a~m_rڢo#)?\~V$H<|Y`Zç {WrxzG#"@>j)b@Ó@_K9&EɾCo7Jj:Gs|2n\k>Tѿ{b/BO3*a s֧>?k7-[&LDYc#$O{mG=ϲ0LE%)ۗu*%O65KN(]Th"VoMmӠ`CHڭUnpO |_ }RWT6˿$ w{?f{iqxgk_3rYU68'< ׍h"zs;F  ILᏇb UdDA,ꟳ$kRԴ[t{clp2 A< szG R&_d3y*]^+uQ  iVW\8ɉӓ2XeOxC᮹ 7:~Y +n9䝤ǜ|3^kh=ݺVq2e%Uom$gW'@^ៈ$&{v Dwiz>c޹pF2YB&ClCj%2A+$ AsUռ5 I++ >#Wx@4}F=F;*ʲ;Hc'=hu/z>mę[[Dl=ÎFF[{? xdX8S !;Tp%Gu ?{1`|2pH;K<=/uMg\=u0{*J3Ý͗?/P^?'KmqϰW5ҿhWFvǀżHB~\(g'dQWQOQk'#D$n9Va9_qyVOvtIC\ӭ=8̍#F@G$MCҀ$qco56q n'/"`G^o+cf3Nރ EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPW j?eûOoxnw QEq|2uEܗwm䏏c]ͤjyrhn A[ۧL@73r~c8Q@~_|PռihZ-yx s?4hsim/ ̂$('imtz͆ dW5,N>YT$(w-CPu8; 真uPݎ WYU Jdd &~.arߋu-SXt[_]+:۠ul.K9||{%x?RKDlLavP9`uJk}sMM]ܤcŽ`83|o#Y. V{ـ@*},3OL~9OQYHbRgqR A,`0e#P”/ѵ楦?Lyyx`=;uacoiqv$0vdpV(?Oo4x5гDѢ!Ċsp1^Ex*Y?)zG{Öe>u|va[P^ []ipO&Jv-k0 Ol)&2@( ?>,$P W`tm9\~x^ާaUmfٲ&ȰG$uH Oracle Legal Notices

Oracle Legal Notices

Copyright Notice

Copyright © 1994-2016, Oracle and/or its affiliates. All rights reserved.

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Warranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

Hazardous Applications Notice

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

Third-Party Content, Products, and Services Disclaimer

This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.

Alpha and Beta Draft Documentation Notice

If this document is in preproduction status:

This documentation is in preproduction status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.

Private Alpha and Beta Draft Documentation Notice

If this document is in private preproduction status:

The information contained in this document is for informational sharing purposes only and should be considered in your capacity as a customer advisory board member or pursuant to your beta trial agreement only. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described in this document remains at the sole discretion of Oracle.

This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your access to and use of this confidential material is subject to the terms and conditions of your Oracle Master Agreement, Oracle License and Services Agreement, Oracle PartnerNetwork Agreement, Oracle distribution agreement, or other license agreement which has been executed by you and Oracle and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced, or distributed to anyone outside Oracle without prior written consent of Oracle. This document is not part of your license agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates.

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

Oracle Logo

PKS\UKPKfUIOEBPS/dcommon/oracle.gifJGIF87aiyDT2F'G;Q_oKTC[ 3-Bq{ttsoGc4I)GvmLZ).1)!ꑈ53=Z]'yuLG*)g^!8C?-6(29K"Ĩ0Яl;U+K9^u2,@@ (\Ȱ Ë $P`lj 8x I$4H *(@͉0dа8tA  DсSP v"TUH PhP"Y1bxDǕ̧_=$I /& .)+ 60D)bB~=0#'& *D+l1MG CL1&+D`.1qVG ( "D2QL,p.;u. |r$p+5qBNl<TzB"\9e0u )@D,¹ 2@C~KU 'L6a9 /;<`P!D#Tal6XTYhn[p]݅ 7}B a&AƮe{EɲƮiEp#G}D#xTIzGFǂEc^q}) Y# (tۮNeGL*@/%UB:&k0{ &SdDnBQ^("@q #` @1B4i@ aNȅ@[\B >e007V[N(vpyFe Gb/&|aHZj@""~ӎ)t ? $ EQ.սJ$C,l]A `8A o B C?8cyA @Nz|`:`~7-G|yQ AqA6OzPbZ`>~#8=./edGA2nrBYR@ W h'j4p'!k 00 MT RNF6̙ m` (7%ꑀ;PKl-OJPKfUIOEBPS/dcommon/doccd_epub.jsM /* Copyright 2006, 2012, Oracle and/or its affiliates. All rights reserved. Author: Robert Crews Version: 2012.3.17 */ function addLoadEvent(func) { var oldOnload = window.onload; if (typeof(window.onload) != "function") window.onload = func; else window.onload = function() { oldOnload(); func(); } } function compactLists() { var lists = []; var ul = document.getElementsByTagName("ul"); for (var i = 0; i < ul.length; i++) lists.push(ul[i]); var ol = document.getElementsByTagName("ol"); for (var i = 0; i < ol.length; i++) lists.push(ol[i]); for (var i = 0; i < lists.length; i++) { var collapsible = true, c = []; var li = lists[i].getElementsByTagName("li"); for (var j = 0; j < li.length; j++) { var p = li[j].getElementsByTagName("p"); if (p.length > 1) collapsible = false; for (var k = 0; k < p.length; k++) { if ( getTextContent(p[k]).split(" ").length > 12 ) collapsible = false; c.push(p[k]); } } if (collapsible) { for (var j = 0; j < c.length; j++) { c[j].style.margin = "0"; } } } function getTextContent(e) { if (e.textContent) return e.textContent; if (e.innerText) return e.innerText; } } addLoadEvent(compactLists); function processIndex() { try { if (!/\/index.htm(?:|#.*)$/.test(window.location.href)) return false; } catch(e) {} var shortcut = []; lastPrefix = ""; var dd = document.getElementsByTagName("dd"); for (var i = 0; i < dd.length; i++) { if (dd[i].className != 'l1ix') continue; var prefix = getTextContent(dd[i]).substring(0, 2).toUpperCase(); if (!prefix.match(/^([A-Z0-9]{2})/)) continue; if (prefix == lastPrefix) continue; dd[i].id = prefix; var s = document.createElement("a"); s.href = "#" + prefix; s.appendChild(document.createTextNode(prefix)); shortcut.push(s); lastPrefix = prefix; } var h2 = document.getElementsByTagName("h2"); for (var i = 0; i < h2.length; i++) { var nav = document.createElement("div"); nav.style.position = "relative"; nav.style.top = "-1.5ex"; nav.style.left = "1.5em"; nav.style.width = "90%"; while (shortcut[0] && shortcut[0].toString().charAt(shortcut[0].toString().length - 2) == getTextContent(h2[i])) { nav.appendChild(shortcut.shift()); nav.appendChild(document.createTextNode("\u00A0 ")); } h2[i].parentNode.insertBefore(nav, h2[i].nextSibling); } function getTextContent(e) { if (e.textContent) return e.textContent; if (e.innerText) return e.innerText; } } addLoadEvent(processIndex); PKo"nR M PKfUIOEBPS/ccapp019.gif!IGIF89a  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜIͅ~Qϟ@ * |B?᳤Djʵ+A0^IYi!T˷/J 0~Ó?[Iң:'^ͺװc˞M۸s+T`>{8G +!K䉡% '( CJӫ_Ͼ˗߻?GxGqSQ!W%hWA}cZͧv'bV$ןqNxjFu qrAS@; @G܈@2YDY=2U^`;8s?FxX[\ifH&KS #@)]y?Pl/mb]p PC.IZX?@|@EbR+Qjj^DŽ:`>[2 ĞfȲ$l#- -Nk-G^kv[Q:m:ngn+oҋuoL^| sp2 qVO UqbO̫"rɹL'.rjLsK3\:s@ I?M-j$L7PGQHmXCME-&8d-dmvB۵7ͶCnrPoz+7~ x nA 7͎?NP2n y/1).9E\zҙÌZҨ.m\W_> IB#pF:򑐌$!qIZ򒘔c62:蓠 y8Q PVGTO6x9̤.w>. f&))bW?c o%3z3WV{FfW-0My;f]ZЃJ[Ҙδ7iNk0ȹ5Y('3U( zQRzc%L.ϸ2/B-0 BNf;4 $8(KaZmkz}s!ՂNq|dhhr;̐VsC ~ΖB;ψfȅvJ^B;͈X'v b0HF~/@b`E8u}Wrj@F2i?ù@^رQ %#ֻ4bX)/& V!T)k5$0@`ILb5O(:_vE=~P S"!E|mFZ!'% G7'$(Q S]UI@ߕ]72<Â|71Y\V]zHA*B|k $;H68_{9+ |H B-0O\wIÉ Jmz}h .|wS(̯?g g-7@QJy0Py2lg h{rg@FzG}gX@ ŧA|з'}`XYtl!]:EUQ Ao@7]uaaY!F8*t 1u#&qz1~w$~(}x 18YQA[LāPwwVtHnE!3[VXXl8dx f aU! x=ZKVT}%M0aLqw!dojAQtd4W5]4)ބVEX"SFhPd굋 J2a=WN]'UcR8v GG'5(҇(gnHE6"#eb&XhoANgjq?(yxW('XnOO&uPѨ^n@5mD{VIq\+!u$qr`TYV97V\ٕV gihQTM G5GVrrpr8 YQQ22NjTX4#|W$!G(!1b$1I]'!!˜1ؙ(x\@Q %kՎDΖJH a c]eiWfᆫ((v sHXnP*!Dw nQRMVRXs0Bd1"n(XG@>i>y`i`줛Wțf yPz: `yTft͙oȞrY# Xi7!Ye?-Xf1d9=ZsQУ[^X RSjxQ Jw^9dZd*} ن96D!ꖔ 2IiT1=qMh,VAvى=ɧdWViə|@#1ٓZ{r$8jaq(~c!Rُh jq)&#ykmr!2b9b#&pA&U#2/lJ]t*!QݸAYh6gDﺓO QrvT;`j(uŘܡFTH)n1Us!Q"+)Lj$FS8)ieD;N4o:mdNaLs"Ku(:[":pqv{Yk"$ dU ʬ!E"#!,r;t1Ph{\[PpuU(Y;ayn+R)yd({ѷ\q.A?Ѹ!񸐫 %a[-+oKv@kk{qr,7 t{[V kJlQ %DU& 'frK+kg3HYq!A+{ {SQBN7%'PP۳:hs%[z@Da) ==v!L1_qLfW*MR3\;6LX<qaVMבg1d)"VE1}"%pR"?;DM5,dEo1d6 B=4ïuF&Kk +Lx #'i!:Q{>iI:jqAOM6%9#8Mai@'_)=[BpwkJ"P_rAPK§>;n'ջ?ڊMBqɬl&{Ɋ|j8R$Qws+}ȇXȸN Mk5(UqA" t hE)<)qqSQ<EXas)f܆ ?,бr B>? ?,dK` <d"Q "&ͱ} m Љ?ÒMQu#7iѓBC܆qa0!H."^Pp`* q?]A RGq=mCC-%,+ǟw̭ءӄ 0ۧ1ɏ-Xx<#?DZ=d;SA#ݭh|] آbu;ce}?PM?8ʼ9m,Dc>,l[]bj$^^)} H֝:a!m)L;=q{["%m;oD;UGF/ZҸvshFM^?Z%Ne;#ڍ-t}#) ^HF@N PC.6Wbk>;d;p޺!4' n*1#ѰJ ^a>2I .%J~P#nn'@)ZZ!'!6Qtͽ.}^[~^NN z;^!YA12.@ P )N^^Nlނ/Cٌ1{n gX &?o'g ߥOKOo pJ.02?4Sz*N^8LO|w ~0.^GI: b?$C1X_N}n__a??f1WY߶[ms @#QAx|lMѷ @"a@Cvs&Uy߾=ףOx ! sO}?Ŀg >> l~$.}/OoOx o26 $XBC%"E"@El`N9HvbKKs1eΤYM2_ʧ@ #ZQIgP!ÂCNZj҃ һի|7t,уA =۶&QSc˝_Аәbcȑ%tœ5o9r֊y&]t: 2ݚqY͙Wܓ)uo'jJu{i7٫-8vvɂס\ݻ--{†a!V>z},C{p@rztA#p XC6P+/b#?<=Zt7bE O|C1F $)źHdE$`F3QHpr\G(2@ $nk2δJ5;RH-یHYN5A@`\((I!l6`b{mKzQn#"LA"D cc.4hkt26h@fƀ wci\(5Jf#$;( alU@EFjnH:$yIa&ǁtғ4$*it"~( v72R$F+6RM\I-iuK) aAb@T0D!X"M04C3YsK1LR0"g9x&tnIVbH .xN9aNJR?=OyxdfE#ǓcdbP(9#%DMpt0:2Q(tJ HMaqsM%(d>2MdSn&mO h#^DceB:0 PS]5GYNmӕHѹfow$ gv9d깡uFW4D8nS+E7xal ㄋf.c8o K1M6H7t;]"H@sL=!@uKyՓ 5= v}N`_~wCw{n| ?˽g|Jw.|!E|=yЇ^'}Mzԧ^g}]z;l{^}}{_'~|'_g~=~}g_~}_'~_5_E_ @@,@<L+l@|@@ @ @ T @@@  ,A Preface

Preface

This Preface contains these topics:

Audience

The Oracle Text Application Developer's Guide, is intended for users who perform the following tasks:

  • Develop Oracle Text applications

  • Administer Oracle Text installations

To use this document, you need to have experience with the Oracle object relational database management system, SQL, SQL*Plus, and PL/SQL.

Documentation Accessibility

Our goal is to make Oracle products, services, and supporting documentation accessible, with good usability, to the disabled community. To that end, our documentation includes features that make information available to users of assistive technology. This documentation is available in HTML format, and contains markup to facilitate access by the disabled community. Accessibility standards will continue to evolve over time, and Oracle is actively engaged with other market-leading technology vendors to address technical obstacles so that our documentation can be accessible to all of our customers. For more information, visit the Oracle Accessibility Program Web site at

http://www.oracle.com/accessibility/

Accessibility of Code Examples in Documentation

Screen readers may not always correctly read the code examples in this document. The conventions for writing code require that closing braces should appear on an otherwise empty line; however, some screen readers may not always read a line of text that consists solely of a bracket or brace.

Accessibility of Links to External Web Sites in Documentation

This documentation may contain links to Web sites of other companies or organizations that Oracle does not own or control. Oracle neither evaluates nor makes any representations regarding the accessibility of these Web sites.

TTY Access to Oracle Support Services

Oracle provides dedicated Text Telephone (TTY) access to Oracle Support Services within the United States of America 24 hours a day, seven days a week. For TTY support, call 800.446.2398.

Structure

This document contains:

Chapter 1, "Understanding Oracle Text Application Development"

This chapter explains the basic features of the query, catalog, and classification applications that you can build with Oracle Text.

Chapter 2, "Getting Started with Oracle Text"

This chapter explains how to get started on building a simple query applications using Oracle Text.

Chapter 3, " Indexing with Oracle Text"

This chapter describes how to index your document set. It discusses considerations for indexing as well as how to create CONTEXT, CTXCAT, and CTXRULE indexes.

Chapter 4, "Querying with Oracle Text"

This chapter describes how to query your document set. It gives examples for how to use the CONTAINS, CATSEARCH, and MATCHES operators.

Chapter 5, "Presenting Documents in Oracle Text"

This chapter describes how to present documents to the user of your query application.

Chapter 6, "Classifying Documents in Oracle Text"

This chapter describes how to build classification applications.

Chapter 7, "Tuning Oracle Text"

This chapter describes how to tune your queries to improve response time and throughput.

Chapter 8, "Searching Document Section in Oracle Text"

This chapter describes how to enable section searching in HTML and XML.

Chapter 9, "Working With a Thesaurus in Oracle Text"

This chapter describes how to work with a thesaurus in your application. It also describes how to augment your knowledge base with a thesaurus.

Chapter 10, "Administering Oracle Text"

This chapter describes Oracle Text administration.

Chapter 11, "Migrating Oracle Text Applications"

This chapter describes how to migrate your applications from earlier versions of Oracle Text.

Appendix A, "CONTEXT Query Application"

This appendix describes a sample Oracle Text CONTEXT Web application and the wizard used to produce it.

Appendix B, "CATSEARCH Query Application"

This appendix describes an Oracle Text CATSEARCH example Web application.

Related Documents

For more information about Oracle Text, refer to:

For more information about Oracle Database, refer to:

For more information about PL/SQL, refer to:

You can obtain Oracle Text technical information, collateral, code samples, training slides and other material at:

http://www.oracle.com/technology/products/text/

Many books in the documentation set use the sample schemas of the seed database, which is installed by default when you install Oracle Database. Refer to Oracle Database Sample Schemas for information on how these schemas were created and how you can use them yourself.

Printed documentation is available for sale in the Oracle Store at

http://oraclestore.oracle.com/

To download free release notes, installation documentation, white papers, or other collateral, please visit the Oracle Technology Network (OTN). You must register online before using OTN; registration is free and can be done at

http://www.oracle.com/technology/membership/

If you already have a username and password for OTN, then you can go directly to the documentation section of the OTN Web site at

http://www.oracle.com/technology/documentation/

Conventions

This section describes the conventions used in the text and code examples of this documentation set. It describes:

Conventions in Text

We use various conventions in text to help you more quickly identify special terms. The following table describes those conventions and provides examples of their use.

Convention Meaning Example
Bold Bold typeface indicates terms that are defined in the text or terms that appear in a glossary, or both. When you specify this clause, you create an index-organized table.
Italics Italic typeface indicates book titles or emphasis. Oracle Database Concepts

Ensure that the recovery catalog and target database do not reside on the same disk.

UPPERCASE monospace (fixed-width) font Uppercase monospace typeface indicates elements supplied by the system. Such elements include parameters, privileges, datatypes, Recovery Manager keywords, SQL keywords, SQL*Plus or utility commands, packages and methods, as well as system-supplied column names, database objects and structures, usernames, and roles. You can specify this clause only for a NUMBER column.

You can back up the database by using the BACKUP command.

Query the TABLE_NAME column in the USER_TABLES data dictionary view.

Use the DBMS_STATS.GENERATE_STATS procedure.

lowercase monospace (fixed-width) font Lowercase monospace typeface indicates executable programs, filenames, directory names, and sample user-supplied elements. Such elements include computer and database names, net service names and connect identifiers, user-supplied database objects and structures, column names, packages and classes, usernames and roles, program units, and parameter values.

Note: Some programmatic elements use a mixture of UPPERCASE and lowercase. Enter these elements as shown.

Enter sqlplus to start SQL*Plus.

The password is specified in the orapwd file.

Back up the datafiles and control files in the /disk1/oracle/dbs directory.

The department_id, department_name, and location_id columns are in the hr.departments table.

Set the QUERY_REWRITE_ENABLED initialization parameter to true.

Connect as oe user.

The JRepUtil class implements these methods.

lowercase italic monospace (fixed-width) font Lowercase italic monospace font represents placeholders or variables. You can specify the parallel_clause.

Run old_release.SQL where old_release refers to the release you installed prior to upgrading.


Conventions in Code Examples

Code examples illustrate SQL, PL/SQL, SQL*Plus, or other command-line statements. They are displayed in a monospace (fixed-width) font and separated from normal text as shown in this example:

SELECT username FROM dba_users WHERE username = 'MIGRATE';

The following table describes typographic conventions used in code examples and provides examples of their use.

Convention Meaning Example
[ ]
Anything enclosed in brackets is optional.
DECIMAL (digits [ , precision ])
{ }
Braces are used for grouping items.
{ENABLE | DISABLE}
|

A vertical bar represents a choice of two options.
{ENABLE | DISABLE}
[COMPRESS | NOCOMPRESS]
...
Ellipsis points mean repetition in syntax descriptions.

In addition, ellipsis points can mean an omission in code examples or text.

CREATE TABLE ... AS subquery;

SELECT col1, col2, ... , coln FROM employees;
Other symbols You must use symbols other than brackets ([ ]), braces ({ }), vertical bars (|), and ellipsis points (...) exactly as shown.
acctbal NUMBER(11,2);
acct    CONSTANT NUMBER(4) := 3;
Italics
Italicized text indicates placeholders or variables for which you must supply particular values.
CONNECT SYSTEM/system_password
DB_NAME = database_name
UPPERCASE
Uppercase typeface indicates elements supplied by the system. We show these terms in uppercase in order to distinguish them from terms you define. Unless terms appear in brackets, enter them in the order and with the spelling shown. Because these terms are not case sensitive, you can use them in either UPPERCASE or lowercase.
SELECT last_name, employee_id FROM employees;
SELECT * FROM USER_TABLES;
DROP TABLE hr.employees;
lowercase
Lowercase typeface indicates user-defined programmatic elements, such as names of tables, columns, or files.

Note: Some programmatic elements use a mixture of UPPERCASE and lowercase. Enter these elements as shown.

SELECT last_name, employee_id FROM employees;
sqlplus hr/hr
CREATE USER mjones IDENTIFIED BY ty3MU9;

Conventions for Windows Operating Systems

The following table describes conventions for Windows operating systems and provides examples of their use.

Convention Meaning Example
Choose Start > menu item How to start a program. To start the Database Configuration Assistant, choose Start > Programs > Oracle - HOME_NAME > Configuration and Migration Tools > Database Configuration Assistant.
File and directory names File and directory names are not case sensitive. The following special characters are not allowed: left angle bracket (<), right angle bracket (>), colon (:), double quotation marks ("), slash (/), pipe (|), and dash (-). The special character backslash (\) is treated as an element separator, even when it appears in quotes. If the filename begins with \\, then Windows assumes it uses the Universal Naming Convention. c:\winnt"\"system32 is the same as C:\WINNT\SYSTEM32
C:\> Represents the Windows command prompt of the current hard disk drive. The escape character in a command prompt is the caret (^). Your prompt reflects the subdirectory in which you are working. Referred to as the command prompt in this manual.
C:\oracle\oradata>
Special characters The backslash (\) special character is sometimes required as an escape character for the double quotation mark (") special character at the Windows command prompt. Parentheses and the single quotation mark (') do not require an escape character. Refer to your Windows operating system documentation for more information on escape and special characters.
C:\> exp HR/HR TABLES=emp QUERY=\"WHERE job='REP'\"
HOME_NAME
Represents the Oracle home name. The home name can be up to 16 alphanumeric characters. The only special character allowed in the home name is the underscore.
C:\> net start OracleHOME_NAMETNSListener
ORACLE_HOME and ORACLE_BASE In releases prior to Oracle8i release 8.1.3, when you installed Oracle components, all subdirectories were located under a top level ORACLE_HOME directory.

This release complies with Optimal Flexible Architecture (OFA) guidelines. All subdirectories are not under a top level ORACLE_HOME directory. There is a top level directory called ORACLE_BASE that by default is C:\oracle\product\10.1.0. If you install the latest Oracle release on a computer with no other Oracle software installed, then the default setting for the first Oracle home directory is C:\oracle\product\10.1.0\db_n, where n is the latest Oracle home number. The Oracle home directory is located directly under ORACLE_BASE.

All directory path examples in this guide follow OFA conventions.

Refer to Oracle Database Installation Guide for 32-Bit Windows for additional information about OFA compliances and for information about installing Oracle products in non-OFA compliant directories.

Go to the ORACLE_BASE\ORACLE_HOME\rdbms\admin directory.

PKh\7llPKfUI OEBPS/rcf.htm2 Send Us Your Comments

Send Us Your Comments

Oracle Text Application Developer's Guide,, 10g Release 2 (10.2)

B14217-01

Oracle welcomes your comments and suggestions on the quality and usefulness of this publication. Your input is an important part of the information used for revision.

  • Did you find any errors?

  • Is the information clearly presented?

  • Do you need more information? If so, where?

  • Are the examples correct? Do you need more examples?

  • What features did you like most about this manual?

If you find any errors or have any other suggestions for improvement, please indicate the title and part number of the documentation and the chapter, section, and page number (if available). You can send comments to us in the following ways:

  • Electronic mail: infodev_us@oracle.com

  • FAX: (650) 506-7227. Attn: Server Technologies Documentation Manager

  • Postal service:

    Oracle Corporation
    Server Technologies Documentation Manager
    500 Oracle Parkway, Mailstop 4op11
    Redwood Shores, CA 94065
    USA

If you would like a reply, please give your name, address, telephone number, and electronic mail address (optional).

If you have problems with the software, please contact your local Oracle Support Services.

PKtm7 2 PKfUIOEBPS/ccapp010.gif'@GIF89a  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜIͅ~Qϟ@ * |B?᳤Djʵ+A0^IYi!T˷/J 0~Ó?[Iң:'^ͺװc˞M۸s+T`>{8G +!K䉡% '( CJӫ_Ͼ˗߻?GxGqSQ!W%hWA}cZͧv'bV$ןqNxjFu qrAS@; @G܈@2YDY=2U^`;8s?FxX[\ifH&KS #@)]y?Pl/mb]p PC.IZX?@|@EbR+Qjj^DŽ:`>[2 ĞfȲ$l#- -Nk-G^kv[Q:m:ngn+oҋuoL^| sp2 qVO UqbO̫"rɹL'.rjLsK3\:s@ I?M-j$L7PGQHmXCME-&8d-dmvB۵7ͶCnrPoz+7~ x nA 7͎?NP2n y/1).9E\zҙÌZҨ.m\W_P>񏀔 pBFTJZ0N(GQqp<$Br[8+upP៱Zn2_-OG?x#~?NJSq-,F }j!6{z.R|PT'F?sQqTy~Tɐ^ܬJ[R\S@ 4͏ Sk՞Bei9\}j RTJ.IR<8ox rWkeUOUvI%29)=7N]xR3!U=HwCc yz8p" lP:-jdJP[0& la*:D~LA4=v %)̱Z5ll$GE\2Zo"OgwRV1fIwX4t}VtZTXw+'NjEe)9lv?%\ywn'sUaB2klQ%(:V?åO.Rkw1lɵXx&N9iq$at@.Ժ)sZ)5O[dEYS>,o -πMBhco*)ILFXq4iь鰼cǢ?CH#vby{.l!Zָεwk^'ziN}0F-Mrʱ :?}09 O4WPj+=jW8N`MW uv a<#&)bE 4`1g.3#E{묋| a;s0w-0uȸ7N w{HF2'|'+jY5ĕ4\lZ3-[RM"v9 @k߇_ mkznXW0$&1 k]p6}bO"_\)uz%/kof@dNýrD%^Rtu)5;bϵߨSwN+V1uu#e-ۊRpwPחwfAI=őR90OԾ6i8}PުGPvKns v/~"0yP!~}uW]ttj00{:{ {W (U|aWAFtESAq;@&[+9I2\A'7Gkl@pWM:Gx &HuPā\05f4xdA>^k Yk}8K(M8}v)8XxkZx \ a0t t1Y6VQ[L0"ц|Fv!qcodj1sd4pV\4)U0j)uFl$MoQ"Jzx.yuUQFH PQ긎v Gsj8爏b_HE6"#erdďg`F 7'$fofNfՃ&uM tA6XNQEKMq^qPA{'气LٔsvsДR9Tٔx ЅdJe#}$`$SIG\eYdTbL|H%#ϤFipy59'qJr4r&Mu_yvr(H(Z{@dP %TUDvJ:tXX Z)_h0uٙDxǹhؖN# pWnP* GZk Z`)S"KM1UGHr0bu`_qWrI@TJcj1MiIkph Q_5u/GQA`Ȝ wupyY`OYaLӣEw" Ay#K!>9e1aAZIYXZ'Лa#HiNajFI'P  2PvMu2WTɞ[d@Ӄ1}YF{r$/jqq(scGiV] _J=yp{mjlBTM&/,3!#6l 'tZNٙ9 xꛠh{9QHqA%GyQo*F)] |z-ƂT;plщQGjrԉL5*grcE)(YrыH"Y:WL 4 l$Mx+!Ir/ˊU$ 7IT+o8SX"$dcy,ƴ axJ(Lv!Xf{t\kP@tU@^ⶵ}!AE~({]/? ! z ۶ۭ[.'ؠk6'a{I| `vS+%U& &k ;}e|E{X 7Q!M %'P۾++ܫ 彤+k狫 DR%C=c'Djqӱ&"лDdSW*M1OLd(V1`oTJV#"E1#AS G!%ӿ SN4tnd6 B=0ism:jqANL(%9#8L`;ZBY`"%d<ʡDJ4s*|*SprcYeBq8QW\;TɽLkd˻lrv>` MҶX | 6K)-⛙xrGۭ%\uW)F3MZ 7NMRlDCA\Cהj6ץךku SHF7K !S:b1j5;Tp w xn[%1KIW>so]!^0$N[|>[n' 0 zM1L<|֒|N0..ҙnO@ P'[QYl5]5|P ]D%QnkϜ |ھ̮Vk~Y`C?T'a vOuP?CZDe` `BJ&(*,*P^!r(|V>5 7O9O{'pI?K?M<>?RvTV[1OC ^ | "A7鈯 |~_a/ce_  w?Ů i&ޮ;/~0Nv| >^퇟? ?Q7q7yq o2Ott. ?$X!dC )W_DؒG!E$Y$Ȏb)P!CzdΤYM9%ZA @ 3ԩSz8U +Qo'V,w1YSc[qmrW.Lg_&ljOK /f1aJ N{\ٲuٳ_?vK,EhUTkرeϦo/W~'o# '|sຑ/865skO^#BIJ#ؓMga`^j}. `t>RoWP>O#r\ `gZ1 Ds蠟Ÿճu:} Sh@Y:r7D +P.7Œ-s0QSܳm [27fu[J-÷ZIvdJwSd; 1HQ !ϢZ'? Е3+CdUmTRf g說*kUxuxRI7X9%MBb+.kKFTK1a~=z,"ɞ4:$|͢PIV6+1ZGn[6!:;Lj..r1Fm8wU΃=onmp d û+#&ǼB/bk H|SݷDt']&W p ##Rd%].`qauD6~S5@Jحe80;DՄ8F9ȴ%GSQyrVviD巙ԋsTR07Vi%Kl](O̠sy^Z3ܔ{2σJ<B]I6e-mfdZ!!$F-dr4'- pƦgjn~AF˨Xjsv/[Me@i9"b>:mf7׮$(;#Ȏ[]ˣ6] hP[" mXX&kBC^Ml5T&7jo6F4oGEp<wGq^G#8[%-w6)5>#fK3IO_Wq|‹$\[:7s}BW/SkL(9`ٍr-Mkg{ۙu+|LG_؍8g'A>4 '| x'^OxȯհFaEg^<Q^'}M{zg=z4eO{ܗ<ΐ_'~?r]5_y>|C?}>~_5ݾ{H߿G~(~u~}e*7pn(@<@Ll@op@ @  ?ҿ?{S"nj @J=»? A;yx_xAGRATgpA$Gހt G8t.2ByxP-%C?D,fkDENP6/C0ܢLMDOPE5 748?ܢUlO BE7/|T\EWEAEK,EZ SB}A=TO2TEDmmTHGTbTK=JTNMT TQMP-UN#UTS]UߋGW-VթaNaр;PKl''PKfUIOEBPS/ccapp017.gif1GIF89as}@@@fyyy???ߵ??3;;;```>>>sss<<<ppprrr000PPPvvvLLL ϥ߲ ؐr&&&䔔OO?,,,ooo//&gggXXX___󯯌OOOJJJ///:::ooY__L666777lllƚ999uuuėiii444555ɉmmm888 ttt'''˜MMMSSSUUUQQQwwwBBBZZZ~~~hhh---ddd(((***}}}HHHxxxDDDqqq222^^^VVVbbb+++NNNGGG!,s} H*\ȰÇ#JHŋ3jȱǏ C*P@ 30a "cʜI͛8R`00Jr*]ʴӧKY ALE ׯ`e5RX֌طpʝD >2\ n LL(X,+ьmL6q'(HLix]5Pm IGMM>5X6l+_|@0X5bPȀxg,ӫ_Ͼ˗$ _@_,_z@E@5$-)8߄q\ ֵTl4sq=Yt|X@C587fI%U_%g@y&А%'bExd%@U=qGL(&e3&J-H;7KI#iXQ%g|'oQai T} P0I ~Nb˔j2GtꪬJérZ @%ɂH_3򉕓-AU"i6 2̶v뭷Bq*O%ʑIN9! 2dׁ>[g *Dj 7 .Ltk vTl ,/ۣTЁR~ْgr|SG0 \ū˰HdA?G-u20an'%5aH4S-0 'hn6C]cmwDHiQ-8-,#7޲ڄ v> q ~ y[1  /?Ca.qCAUl~,W%\_~^ ۪  ʌ q#BY@WLϳ{_=o+@YP ME>Юgf~v&%@gjt{ݶ\UGX `# 3J%6A,A# #8A~R@d (| sD5mKu22T<$* !LbOe4`n Ȱ"*T'VCR 4 c@\js":@4PQHd!*Rb؋ԥ/،]eS`0$*;=BaM\ J)҈ -m-(Xt0!"pILK n!}"ŔT)kEz%T +pqre9@!|!B&y \ `b %(+B%b=,PN\BP ^uRU| H. h8ԅg"5%ICcDEaZn9nKTKV,k2 wSfvXj^S2!4UTAB6Ummt3f8-\g?/yfehHor׫زU@ <\Ǻz 0q3핊#AJĮD$ W!̅Ѐb~u`$ mY᎘ ٖFp +&D[Wu#4De_$,D\ -(`ʋj9\>T<17.'bj͊0W2qs>,@;s@\o{7/|ěAqc<B?->v OIo\S!Ucz3iA e G?e AO}VPwv Ƹ(:Ѕ.íOO[LGAoΌc{;?"*8?t H{`X$@cf?eV&qbV(y#o>QL2Fw_%3ZzTG+2'IL1p @]]՛viN |O:JF)&ب9J:޺Ȭ:z<`7P7PV^Xnf;أJmf`; (G ZJː  `U)0$~KKa\0 :hZ`J9P 7P8 Bdb,x3f:̀ Pb B ?P[?khZq(˽1_!Ak+ f:ˠK[@@`;+kܷ˝7Yk^ISRCA{*F9˾[ C)||\˛9{ : Ͷx{7@J9Llv J3lW3K@P3@X}ͧϓA~~ڽ,͸|F|@@ma!ɥ9 @Yk*ʳx7 [*@tKZեi°[w ̣浶,M?V  =O=;YPDp<ęMkˆ(:Z]çLǜ6 ѢɳOo қ]K\F{˄uA\Ӫeۀ]wk*CY9ݼ;@PփօœĜN !Vy[Nًm Upk٘=؛ 2m M.SJiQ՜m*oq[ŋZ=򻿥g..2mw{+ʭ=oGBk@FV pcWmԟ/̧:=<5A-̈́]|I^Kn~wڦ| LaG=Lt>$.&(>.uFv|~NNϠ׾ QJq꾻>߽Ţ<<Ȩm 9!MyA6}|r.r9d̸N߷H{ \P "?$_&sp-@yx}+2Q8:O4p)o_6oLNPR?T_m)?GI_Kod_fh^w]lcvx_X1âsu ߅ߑ[_kmi@ O؁ka1\ \<@F]oO6 ;Ol_m_500$X ' JC%B@35nG!E$YI)U bٓ >@v"ӧO&,X@A*,SQLE`UYnzWaŎ%[G\̬ysE;vӗD"UtF,FfԨB#Eis{ QUfeϦ]vvli8pƌaÆ*C 6)ѤK+2D"Ed`B0Rh2eʚ=beH:N(0 I PJ ¶+K\QLˌ@4oK&OPCuԎ"MJް#P J1-M20[$_dWRb)NhTdUv #6w8Zp Q-=KYsH6iĄ!)8vYz뵗 # >PXrDEGZe\С]bXcC,>add4LT0xnHjI6QCP".X#dv14`1W!KUf f!d8lfS6*I:"U{o5H;Y$D}V[4"O C œU 4boKc su7a5cO K@nxM7#tq] t yA ;PKֽPKfUIOEBPS/acase.htm~ CONTEXT Query Application

A CONTEXT Query Application

This appendix describes how to build a simple Web search application using the CONTEXT index type, whether by writing your own code or using the Oracle Text Wizard. The following topics are covered:

A.1 Web Query Application Overview

A common use of Oracle Text is to index HTML files on Web sites and provide search capabilities to users. The sample application in this appendix indexes a set of HTML files stored in the database and uses a Web server connected to Oracle Database to provide the search service.

This appendix describes two versions of the Web query application:

  • One using PL/SQL Server Pages (PSP)

  • One using Java Server Pages (JSP)

Both versions of these applications can be produced by means of a query application wizard, which produces the necessary code automatically.

You can view and download both the PSP and JSP application code, as well as the text query application wizard, at the Oracle Technology Network Web site:

http://www.oracle.com/technology/products/text

The text query application wizard Web page also contains complete instructions on how to use the wizard.

Figure A-1 shows what the JSP version of the text query application looks like. This application was created with the Oracle Text application wizard.

Figure A-1 The Text Query Application

Description of search01.gif follows


Figure A-2 shows the results of the text query.

Figure A-2 The Text Query Application with Results

Description of search02.gif follows


The application returns links to documents containing the search term. Each document has four links:

A.2 The PSP Web Application

This application is based on PL/SQL server pages. Figure A-3, "The PSP Web Application" illustrates how the browser calls the PSP-stored procedure on Oracle Database through a Web server.

Figure A-3 The PSP Web Application

Description of ccapp012.gif follows


A.2.1 Web Application Prerequisites

This application has the following requirements:

  • Your Oracle Database (version 8.1.6 or higher) is up and running.

  • You have the Oracle PL/SQL gateway running

  • You have a Web server such as Apache up and running and correctly configured to send requests to the Oracle Database server.

A.2.2 Building the Web Application

This section describes how to build the PSP Web application.


Step 1 Create your Text Table

You must create a text table to store your HTML files. This example creates a table called search_table as follows:

create table search_table (tk numeric primary key, title varchar2(2000), 
  text clob);

Step 2 Load HTML Documents into Table Using SQL*Loader

You must load the text table with the HTML files. This example uses the control file loader.ctl to load the files named in loader.dat. The SQL*Loader command is as follows:

% sqlldr userid=scott/tiger control=loader.ctl 

Step 3 Create the CONTEXT index

If you are using the text query wizard: The wizard produces a script to create an index. (See the instructions on the download Web page for the wizard.) Run that script.

If you are not using the wizard: Index the HTML files by creating a CONTEXT index on the text column as follows. Since you are indexing HTML, this example uses the NULL_FILTER preference type for no filtering and uses the HTML_SECTION_GROUP type:

create index idx_search_table on search_table(text)
  indextype is ctxsys.context parameters
  ('filter ctxsys.null_filter section group CTXSYS.HTML_SECTION_GROUP');

Step 4 Compile search_htmlservices Package in Oracle Database

The application must present selected documents to the user. To do so, Oracle Database must read the documents from the CLOB in search_table and output the result for viewing, This is done by calling procedures in the search_htmlservices package. The file search_htmlservices.sql must be compiled. You can do this at the SQL*Plus prompt:

SQL> @search_htmlservices.sql

Package created.

Step 5 Compile the search_html PSP page with loadpsp

The search page is invoked by calling search_html.psp from a browser. You compile search_html in Oracle Database with the loadpsp command-line program:

% loadpsp -replace -user scott/tiger search_html.psp
"search_html.psp": procedure "search_html" created.

See Also:

Oracle Database Application Developer's Guide - Fundamentals for more information about using PSP

Step 6 Configure Your Web Server

You must configure your Web server to accept client PSP requests as a URL. Your Web server forwards these requests to the Oracle Database server and returns server output to the browser. Refer to Figure A-3.

You can use the Oracle WebDB Web listener or Oracle Application Server, which includes the Apache Web server. See your Web server documentation for more information.

Step 7 Issue Query from Browser

You can access the query application from a browser using a URL. You configure the URL with your Web server. An example URL might look like:

http://mymachine:7777/mypath/search_html

The application displays a query entry box in your browser and returns the query results as a list of HTML links, as shown in Figure A-1 and Figure A-2.

A.2.3 PSP Sample Code

This section lists the code used to build the example Web application. It includes the following files:

A.2.3.1 loader.ctl

This example shows a sample loader.ctl file. It is used by sqlldr to load the data file, loader.dat.

LOAD DATA 
        INFILE 'loader.dat'
        INTO TABLE search_table 
        REPLACE 
        FIELDS TERMINATED BY ';'
        (tk             INTEGER,
         title          CHAR,
         text_file      FILLER CHAR,
         text           LOBFILE(text_file) TERMINATED BY EOF)

A.2.3.2 loader.dat

This example shows a sample loader.dat file. Each row contains three fields: a reference number for the document, a label (or "title"), and the name of the HTML document to load into the text column of search_table. The file has been truncated for this example.

1;   Pizza Shredder;Pizza.html
2;   Refrigerator w/ Front-Door Auto Cantaloupe Dispenser;Cantaloupe.html
3;   Self-Tipping Couch;Couch.html
4;   Home Air Dirtier;Mess.html
5;   Set of Pet Magnets;Pet.html
6;   Esteem-Building Talking Pillow;Snooze.html
      . . .
28;   Shaggy Found Inspiration For Success In Jamaica ;shaggy_found.html
29;   Solar Flare Eruptions Likely ;solar_flare.html
30;   Supersonic Plane Breaks Food Barrier ;food_barrier.html
31;   SOUNDSCAN REPORT: Recipe for An Aspiring Top Ten;urban_groove_1.html
      . . .

A.2.3.3 search_htmlservices.sql

set define off
create or replace package search_htmlServices as
  procedure showHTMLDoc (p_id in numeric);
  procedure showDoc  (p_id in varchar2, p_query in varchar2);
end;
/
show errors;

create or replace package body search_htmlServices as

  procedure showHTMLDoc (p_id in numeric) is
    v_clob_selected   CLOB;
    v_read_amount     integer;
    v_read_offset     integer;
    v_buffer          varchar2(32767);
   begin


     select text into v_clob_selected from search_table where tk = p_id;
     v_read_amount := 32767;
     v_read_offset := 1;
   begin
    loop
      dbms_lob.read(v_clob_selected,v_read_amount,v_read_offset,v_buffer);
      htp.print(v_buffer);
      v_read_offset := v_read_offset + v_read_amount;
      v_read_amount := 32767;
    end loop;
   exception
   when no_data_found then
     null;
   end;
 end showHTMLDoc;


procedure showDoc (p_id in varchar2, p_query in varchar2) is

 v_clob_selected   CLOB;
 v_read_amount     integer;
 v_read_offset     integer;
 v_buffer          varchar2(32767);
 v_query           varchar(2000);
 v_cursor          integer;

 begin
   htp.p('<html><title>HTML version with highlighted terms</title>');
   htp.p('<body bgcolor="#ffffff">');
   htp.p('<b>HTML version with highlighted terms</b>');

   begin
     ctx_doc.markup (index_name => 'idx_search_table',
                     textkey    => p_id,
                     text_query => p_query,
                     restab     => v_clob_selected,
                     starttag   => '<i><font color=red>',
                     endtag     => '</font></i>');

     v_read_amount := 32767;
     v_read_offset := 1;
     begin
      loop
        dbms_lob.read(v_clob_selected,v_read_amount,v_read_offset,v_buffer);
        htp.print(v_buffer);
        v_read_offset := v_read_offset + v_read_amount;
        v_read_amount := 32767;
      end loop;
     exception
      when no_data_found then
         null;
     end;

     exception
      when others then
        null; --showHTMLdoc(p_id);
   end;
end showDoc;
end;
/
show errors


set define on

A.2.3.4 search_html.psp

<%@ plsql procedure="search_html" %>
<%@ plsql parameter="query" default="null" %>
<%! v_results numeric := 0; %>

<html>
<head>
  <title>search_html Search </title>
</head>
<body>

<%

If query is null Then
%>

  <center>
    <form method=post action="search_html">
     <b>Search for: </b>
     <input type=text name="query" size=30>&nbsp;
     <input type=submit value=Search>
  </center>
<hr>

<% 
  Else
%>

   <p>
   <%!
      color varchar2(6) := 'ffffff';
   %>

   <center>
     <form method=post action="search_html">
      <b>Search for:</b>
      <input type=text name="query" size=30 value="<%= query %>">
      <input type=submit value=Search>
     </form>
   </center>
   <hr>
   <p>

   <%
     -- select statement 
    for doc in (
                select /*+ FIRST_ROWS */ rowid, tk, title, score(1) scr
                from search_table
                where contains(text, query,1) >0
                order by score(1) desc
               ) 
         loop
           v_results := v_results + 1;
           if v_results = 1 then

   %>

             <center>
              <table border="0">
                <tr bgcolor="#6699CC">
                  <th>Score</th>
                  <th>Title</th>
                </tr>

  <%      end if; %>
          <tr bgcolor="#<%= color %>">
           <td> <%= doc.scr %>% </td>
           <td> <%= doc.title %>
           [<a href="search_htmlServices.showHTMLDoc?p_id=
                  <%= doc.tk %>">HTML</a>]
           [<a href="search_htmlServices.showDoc?p_id=
                  <%= doc.tk %>&p_query=<%= query %>">Highlight</a>]
           </td>
         </tr>

   <%
          if (color = 'ffffff') then
               color := 'eeeeee';
             else
               color := 'ffffff';
          end if;

     end loop; 
   %>

    </table>
   </center>

<% 
  end if;
%>
</body></html>

A.3 The JSP Web Application

Creating the JSP-based Web application involves most of the same steps as those used in building the PSP-based application (see "Building the Web Application"). You can use the same loader.dat and loader.ctl files. However, with the JSP-based application, you do not need to do the following:

  • Compile the search_htmlservices package

  • Compile the search_html PSP page with loadpsp

A.3.1 Web Application Prerequisites

This application has the following requirements:

  • Your Oracle database (version 8.1.6 or higher) is up and running.

  • You have a Web server such as Apache up and running and correctly configured to send requests to the Oracle Database server.

A.3.2 JSP Sample Code

This section lists the Java code used to build the example Web application. It includes the following files:

  • search_html.jsp

    The code for this file was generated by the text query application wizard. (Some longer lines have been split to make the code easier to read.)

A.3.2.1 search_html.jsp

<%@ page import="java.sql.*, java.util.*, java.net.*, 
   oracle.jdbc.*, oracle.jsp.dbutil.*" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<% oracle.jsp.util.PublicUtil.setReqCharacterEncoding(request, "UTF-8"); %>
<jsp:useBean id="name" class="oracle.jsp.jml.JmlString" scope ="request" >
<jsp:setProperty name="name" property="value" param="query" />
</jsp:useBean>
 
<%
String connStr="jdbc:oracle:thin:@jsmith-pc.us.oracle.com:1521:zippy922";
 
java.util.Properties info=new java.util.Properties();
Connection conn = null;
ResultSet rset = null;
OracleCallableStatement callStmt = null;
Statement stmt = null;
String userQuery = null;
String myQuery = null;
URLEncoder myEncoder;
int count=0;
int loopNum=0;
int startNum=0;
if (name.isEmpty()) {
%>
  <html>
    <title>Text Search</title>
    <body>
      <table width="100%">
        <tr bgcolor="#336699">
          <td><font face="arial, helvetica" align="left" 
          color="#CCCC99" size=+2>Text Search</td>
        </tr>
      </table>
    <center>
      <form method = post>
      Search for:
      <input type=text name=query size = 30>
      <input type=submit value="Search">
      </form>
    </center>
    </body>
  </html>
 
<%}
 
else {
%>
  <html>
    <title>Text Search</title>
    <body text="#000000" bgcolor="#FFFFFF" link="#663300" 
          vlink="#996633" alink="#ff6600">
      <table width="100%">
        <tr bgcolor="#336699">
          <td><font face="arial, helvetica" align="left" 
                 color="#CCCC99" size=+2>Text Search</td>
        </tr>
      </table>
    <center>
      <form method = post action="TextSearchApp.jsp">
      Search for:
      <input type=text name="query" value="<%=name.getValue() %>" size = 30>
      <input type=submit value="Search">
      </form>
    </center>
<%
  try {
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver() );
    info.put ("user", "jsmith");
    info.put ("password","hello");
    conn = DriverManager.getConnection(connStr,info);
    stmt = conn.createStatement();
    userQuery =   request.getParameter("query");
    myQuery =   URLEncoder.encode(userQuery);
    String numStr =   request.getParameter("sn");
    if(numStr!=null)
      startNum=Integer.parseInt(numStr);
    String theQuery =   translate(userQuery);
    callStmt =(OracleCallableStatement)conn.prepareCall("begin "+
         "?:=ctx_query.count_hits(index_name=>'ULTRA_IDX1', "+
         "text_query=>?"+
         "); " +
         "end; ");
    callStmt.setString(2,theQuery);
    callStmt.registerOutParameter(1, OracleTypes.NUMBER);
    callStmt.execute();
    count=((OracleCallableStatement)callStmt).getNUMBER(1).intValue();
    if(count>=(startNum+20)){
%>
    <font color="#336699" FACE="Arial,Helvetica" SIZE=+1>Results
           <%=startNum+1%> - <%=startNum+20%> of <%=count%> matches
<%
    }
    else if(count>0){
%>
    <font color="#336699" FACE="Arial,Helvetica" SIZE=+1>Results
           <%=startNum+1%> - <%=count%> of <%=count%> matches
<%
    }
    else {
%>
    <font color="#336699" FACE="Arial,Helvetica" SIZE=+1>No match found
<%
    }
%>
  <table width="100%">
  <TR ALIGN="RIGHT">
<%
  if((startNum>0)&(count<=startNum+20))
  {
%>
    <TD ALIGN="RIGHT">
    <a href="TextSearchApp.jsp?sn=<%=startNum-20 %>&query=
            <%=myQuery %>">previous20</a>
    </TD>
<%
  }
  else if((count>startNum+20)&(startNum==0))
  {
%>
    <TD ALIGN="RIGHT">
    <a href="TextSearchApp.jsp?sn=<%=startNum+20 
          %>&query=<%=myQuery %>">next20</a>
    </TD>
<%
  }
  else if((count>startNum+20)&(startNum>0))
  {
%>
    <TD ALIGN="RIGHT">
    <a href="TextSearchApp.jsp?sn=<%=startNum-20 %>&query=
              <%=myQuery %>">previous20</a>
    <a href="TextSearchApp.jsp?sn=<%=startNum+20 %>&query=
              <%=myQuery %>">next20</a>
    </TD>
<%
  }
%>
  </TR>
  </table>
<%
    String ctxQuery = "select /*+ FIRST_ROWS */ rowid, 'TITLE',
     score(1) scr from 'ULTRA_TAB1' where contains('TEXT', '"+theQuery+"',1 )
     > 0 order by score(1) desc";
    rset = stmt.executeQuery(ctxQuery);
    String color = "ffffff";
    String rowid = null;
    String fakeRowid = null;
    String[] colToDisplay = new String[1];
    int myScore = 0;
    int items = 0;
    while (rset.next()&&items< 20) {
      if(loopNum>=startNum)
      {
        rowid = rset.getString(1);
        fakeRowid = URLEncoder.encode(rowid);
        colToDisplay[0] = rset.getString(2);
        myScore = (int)rset.getInt(3);
        items++;
        if (items == 1) {
%>
        <center>
          <table BORDER=1 CELLSPACING=0 CELLPADDING=0 width="100%"
            <tr bgcolor="#CCCC99">
              <th><font face="arial, helvetica" color="#336699">Score</th>
              <th><font face="arial, helvetica" color="#336699">TITLE</th>
              <th> <font face="arial, helvetica" 
                       color="#336699">Document Services</th>
            </tr>
<%   } %>
      <tr bgcolor="#FFFFE0">
        <td ALIGN="CENTER"> <%= myScore %>%</td>
        <td> <%= colToDisplay[0] %>
        <td>
        </td>
      </tr>
<%
      if (color.compareTo("ffffff") == 0)
        color = "eeeeee";
      else
        color = "ffffff";
      }
      loopNum++;
    }
} catch (SQLException e) {
%>
    <b>Error: </b> <%= e %><p>
<%
} finally {
  if (conn != null) conn.close();
  if (stmt != null) stmt.close();
  if (rset != null) rset.close();
  }
%>
  </table>
  </center>
  <table width="100%">
  <TR ALIGN="RIGHT">
<%
  if((startNum>0)&(count<=startNum+20))
  {
%>
    <TD ALIGN="RIGHT">
    <a href="TextSearchApp.jsp?sn=<%=startNum-20 %>&query=
               <%=myQuery %>">previous20</a>
    </TD>
<%
  }
  else if((count>startNum+20)&(startNum==0))
  {
%>
    <TD ALIGN="RIGHT">
    <a href="TextSearchApp.jsp?sn=<%=startNum+20 %>&query=
          <%=myQuery %>">next20</a>
    </TD>
<%
  }
  else if((count>startNum+20)&(startNum>0))
  {
%>
    <TD ALIGN="RIGHT">
    <a href="TextSearchApp.jsp?sn=<%=startNum-20 %>&query=
          <%=myQuery %>">previous20</a>
    <a href="TextSearchApp.jsp?sn=<%=startNum+20 %>&query=
          <%=myQuery %>">next20</a>
    </TD>
<%
  }
%>
  </TR>
  </table>
  </body></html>
<%}
 
%>
<%!
   public String translate (String input)
   {
      Vector reqWords = new Vector();
      StringTokenizer st = new StringTokenizer(input, " '", true);
      while (st.hasMoreTokens())
      {
        String token = st.nextToken();
        if (token.equals("'"))
        {
           String phrase = getQuotedPhrase(st);
           if (phrase != null)
           {
              reqWords.addElement(phrase);
           }
        }
        else if (!token.equals(" "))
        {
           reqWords.addElement(token);
        }
      }
      return getQueryString(reqWords);
   }
 
   private String getQuotedPhrase(StringTokenizer st)
   {
      StringBuffer phrase = new StringBuffer();
      String token = null;
      while (st.hasMoreTokens() && (!(token = st.nextToken()).equals("'")))
      {
        phrase.append(token);
      }
      return phrase.toString();
   }
 
 
   private String getQueryString(Vector reqWords)
   {
      StringBuffer query = new StringBuffer("");
      int length = (reqWords == null) ? 0 : reqWords.size();
      for (int ii=0; ii < length; ii++)
      {
         if (ii != 0)
         {
           query.append(" & ");
         }
         query.append("{");
         query.append(reqWords.elementAt(ii));
         query.append("}");
      }
      return query.toString();
   }
%>
PK ~~PKfUIOEBPS/cthes.htmp~ Working With a Thesaurus in Oracle Text

9 Working With a Thesaurus in Oracle Text

This chapter describes how to improve your query application with a thesaurus. The following topics are discussed in this chapter:

9.1 Overview of Oracle Text Thesaurus Features

Users of your query application looking for information on a given topic might not know which words have been used in documents that refer to that topic.

Oracle Text enables you to create case-sensitive or case-insensitive thesauri which define synonym and hierarchical relationships between words and phrases. You can then retrieve documents that contain relevant text by expanding queries to include similar or related terms as defined in the thesaurus.

You can create a thesaurus and load it into the system.


Note:

The Oracle Text thesauri formats and functionality are compliant with both the ISO-2788 and ANSI Z39.19 (1993) standards.

9.1.1 Oracle Text Thesaurus Creation and Maintenance

Thesauri and thesaurus entries can be created, modified, and deleted by all Oracle Text users with the CTXAPP role.

9.1.1.1 CTX_THES Package

To maintain and browse your thesaurus programatically, you can use the PL/SQL package, CTX_THES. With this package, you can browse terms and hierarchical relationships, add and delete terms, and add and remove thesaurus relations.

9.1.1.2 Thesaurus Operators

You can also use the thesaurus operators in the CONTAINS clause to expand query terms according to your loaded thesaurus. For example, you can use the SYN operator to expand a term such as dog to its synonyms as follows:

'syn(dog)'

9.1.1.3 ctxload Utility

The ctxload utility can be used for loading thesauri from a plain-text file into the thesaurus tables, as well as dumping thesauri from the tables into output (dump) files.

The thesaurus dump files created by ctxload can be printed out or used as input for other applications. The dump files can also be used to load a thesaurus into the thesaurus tables. This can be useful for using an existing thesaurus as the basis for creating a new thesaurus.

9.1.2 Using a Case-sensitive Thesaurus

In a case-sensitive thesaurus, terms (words and phrases) are stored exactly as entered. For example, if a term is entered in mixed-case (using either the CTX_THES package or a thesaurus load file), the thesaurus stores the entry in mixed-case.


Note:

To take full advantage of query expansions that result from a case-sensitive thesaurus, your index must also be case-sensitive.

When loading a thesaurus, you can specify that the thesaurus be loaded case-sensitive using the -thescase parameter.

When creating a thesaurus with CTX_THES.CREATE_THESAURUS, you can specify that the thesaurus created be case-sensitive.

In addition, when a case-sensitive thesaurus is specified in a query, the thesaurus lookup uses the query terms exactly as entered in the query. Therefore, queries that use case-sensitive thesauri allow for a higher level of precision in the query expansion, which helps lookup when and only when you have a case-sensitive index.

For example, a case-sensitive thesaurus is created with different entries for the distinct meanings of the terms Turkey (the country) and turkey (the type of bird). Using the thesaurus, a query for Turkey expands to include only the entries associated with Turkey.

9.1.3 Using a Case-insensitive Thesaurus

In a case-insensitive thesaurus, terms are stored in all-uppercase, regardless of the case in which they were entered.

The ctxload program loads a thesaurus case-insensitive by default.

When creating a thesaurus with CTX_THES.CREATE_THESAURUS, the thesaurus is created case-insensitive by default.

In addition, when a case-insensitive thesaurus is specified in a query, the query terms are converted to all-uppercase for thesaurus lookup. As a result, Oracle Text is unable to distinguish between terms that have different meanings when they are in mixed-case.

For example, a case-insensitive thesaurus is created with different entries for the two distinct meanings of the term TURKEY (the country or the type of bird). Using the thesaurus, a query for either Turkey or turkey is converted to TURKEY for thesaurus lookup and then expanded to include all the entries associated with both meanings.

9.1.4 Default Thesaurus

If you do not specify a thesaurus by name in a query, by default, the thesaurus operators use a thesaurus named DEFAULT. However, Oracle Text does not provide a DEFAULT thesaurus.

As a result, if you want to use a default thesaurus for the thesaurus operators, you must create a thesaurus named DEFAULT. You can create the thesaurus through any of the thesaurus creation methods supported by Oracle Text:

  • CTX_THES.CREATE_THESAURUS (PL/SQL)

  • ctxload


    See Also:

    Oracle Text Reference to learn more about using ctxload and the CTX_THES package

9.1.5 Supplied Thesaurus

Although Oracle Text does not provide a default thesaurus, Oracle Text does supply a thesaurus, in the form of a ctxload load file, that can be used to create a general-purpose, English-language thesaurus.

The thesaurus load file can be used to create a default thesaurus for Oracle Text or it can be used as the basis for creating thesauri tailored to a specific subject or range of subjects.


See Also:

Oracle Text Reference to learn more about using ctxload and the CTX_THES package

9.1.5.1 Supplied Thesaurus Structure and Content

The supplied thesaurus is similar to a traditional thesaurus, such as Roget's Thesaurus, in that it provides a list of synonymous and semantically related terms.

The supplied thesaurus provides additional value by organizing the terms into a hierarchy that defines real-world, practical relationships between narrower terms and their broader terms.

Additionally, cross-references are established between terms in different areas of the hierarchy.

9.1.5.2 Supplied Thesaurus Location

The exact name and location of the thesaurus load file is operating system dependent; however, the file is generally named dr0thsus (with an appropriate extension for text files) and is generally located in the following directory structure:

<Oracle_home_directory>
    <interMedia_Text_directory>
       sample
           thes

See Also:

Oracle Database installation documentation specific to your operating system for more information about the directory structure of Oracle Text

9.2 Defining Terms in a Thesaurus

You can create synonyms, related terms, and hierarchical relationships with a thesaurus. The following sections give examples.

9.2.1 Defining Synonyms

If you have a thesaurus of computer science terms, you might define a synonym for the term XML as extensible markup language. This enables queries on either of these terms to return the same documents.

XML
SYN Extensible Markup Language

You can thus use the SYN operator to expand XML into its synonyms:

'SYN(XML)'

is expanded to:

'XML, Extensible Markup Language'

9.2.2 Defining Hierarchical Relations

If your document set is made up of news articles, you can use a thesaurus to define a hierarchy of geographical terms. Consider the following hierarchy that describes a geographical hierarchy for the U.S state of California:

California
   NT Northern California
       NT San Francisco
       NT San Jose
   NT Central Valley
       NT Fresno
   NT Southern California
       NT Los Angeles

You can thus use the NT operator to expand a query on California as follows:

'NT(California)'

expands to:

'California, Northern California, San Francisco, San Jose, Central Valley,
  Fresno, Southern California, Los Angeles'

The resulting hitlist shows all documents related to the U.S. state of California regions and cities.

9.3 Using a Thesaurus in a Query Application

Defining a custom thesaurus enables you to process queries more intelligently. Since users of your application might not know which words represent a topic, you can define synonyms or narrower terms for likely query terms. You can use the thesaurus operators to expand your query into your thesaurus terms.

There are two ways to enhance your query application with a custom thesaurus so that you can process queries more intelligently:

  • Load your custom thesaurus and issue queries with thesaurus operators

  • Augment the knowledge base with your custom thesaurus (English only) and use the ABOUT operator to expand your query.

Each approach has its advantages and disadvantages.

9.3.1 Loading a Custom Thesaurus and Issuing Thesaurus-based Queries

To build a custom thesaurus, follow these steps:

  1. Create your thesaurus. See "Defining Terms in a Thesaurus" in this chapter.

  2. Load thesaurus with ctxload. For example, the following example imports a thesaurus named tech_doc from an import file named tech_thesaurus.txt:

    ctxload -user jsmith/123abc -thes -name tech_doc -file tech_thesaurus.txt 
    

  1. Use THES operators to query. For example, you can find all documents that contain XML and its synonyms as defined in tech_doc:

    'SYN(XML, tech_doc)'
    

9.3.1.1 Advantage

The advantage of using this method is that you can modify the thesaurus after indexing.

9.3.1.2 Limitations

This method requires you to use thesaurus expansion operators in your query. Long queries can cause extra overhead in the thesaurus expansion and slow your query down.

9.3.2 Augmenting Knowledge Base with Custom Thesaurus

You can add your custom thesaurus to a branch in the existing knowledge base. The knowledge base is a hierarchical tree of concepts used for theme indexing, ABOUT queries, and deriving themes for document services.

When you augment the existing knowledge base with your new thesaurus, you query with the ABOUT operator which implicitly expands to synonyms and narrower terms. You do not query with the thesaurus operators.

To augment the existing knowledge base with your custom thesaurus, follow these steps:

  1. Create your custom thesaurus, linking new terms to existing knowledge base terms. See "Defining Terms in a Thesaurus" and "Linking New Terms to Existing Terms".

  2. Load thesaurus with ctxload. See "Loading a Thesaurus with ctxload".

  3. Compile the loaded thesaurus with ctxkbtc compiler. "Compiling a Loaded Thesaurus" later in this section.

  4. Index your documents. By default the system creates a theme component to your index.

  5. Use ABOUT operator to query. For example, to find all documents that are related to the term politics including any synonyms or narrower terms as defined in the knowledge base, issue the query:

    'about(politics)'
    

9.3.2.1 Advantage

Compiling your custom thesaurus with the existing knowledge base before indexing enables faster and simpler queries with the ABOUT operator. Document services can also take full advantage of the customized information for creating theme summaries and Gists.

9.3.2.2 Limitations

Use of the ABOUT operator requires a theme component in the index, which requires slightly more disk space. You must also define the thesaurus before indexing your documents. If you make any change to the thesaurus, you must recompile your thesaurus and re-index your documents.

9.3.2.3 Linking New Terms to Existing Terms

When adding terms to the knowledge base, Oracle recommends that new terms be linked to one of the categories in the knowledge base for best results in theme proving.


See Also:

Oracle Text Reference for more information about the supplied English knowledge base

If new terms are kept completely separate from existing categories, fewer themes from new terms will be proven. The result of this is poor precision and recall with ABOUT queries as well as poor quality of gists and theme highlighting.

You link new terms to existing terms by making an existing term the broader term for the new terms.

9.3.2.3.1 Example: Linking New Terms to Existing Terms

You purchase a medical thesaurus medthes containing a a hierarchy of medical terms. The four top terms in the thesaurus are the following:

  • Anesthesia and Analgesia

  • Anti-Allergic and Respiratory System Agents

  • Anti-Inflammatory Agents, Antirheumatic Agents, and Inflammation Mediators

  • Antineoplastic and Immunosuppressive Agents

To link these terms to the existing knowledge base, add the following entries to the medical thesaurus to map the new terms to the existing health and medicine branch:

health and medicine
 NT Anesthesia and Analgesia
 NT Anti-Allergic and Respiratory System Agents
 NT Anti-Inflamammatory Agents, Antirheumatic Agents, and Inflamation Mediators
 NT Antineoplastic and Immunosuppressive Agents

9.3.2.4 Loading a Thesaurus with ctxload

Assuming the medical thesaurus is in a file called med.thes, you load the thesaurus as medthes with ctxload as follows:

ctxload -thes -thescase y -name medthes -file med.thes -user ctxsys/ctxsys

9.3.2.5 Compiling a Loaded Thesaurus

To link the loaded thesaurus medthes to the knowledge base, use ctxkbtc as follows:

ctxkbtc -user ctxsys/ctxsys -name medthes 

9.4 About the Supplied Knowledge Base

Oracle Text supplies a knowledge base for English and French. The supplied knowledge contains the information used to perform theme analysis. Theme analysis includes theme indexing, ABOUT queries, and theme extraction with the CTX_DOC package.

The knowledge base is a hierarchical tree of concepts and categories. It has six main branches:

  • Science and technology

  • Business and economics

  • Government and military

  • Social environment

  • Geography

  • Abstract ideas and concepts


    See Also:

    Oracle Text Reference for the breakdown of the category hierarchy

The supplied knowledge base is like a thesaurus in that it is hierarchical and contains broader term, narrower term, and related term information. As such, you can improve the accuracy of theme analysis by augmenting the knowledge base with your industry-specific thesaurus by linking new terms to existing terms.


Note:

Oracle Text supplied knowledge bases may not necessarily be installed when Oracle Text is installed. You may need to separately install the knowledge bases if they have not been installed. For more information, refer to the Oracle Database installation guide for your platform.

You can also extend theme functionality to other languages by compiling a language-specific thesaurus into a knowledge base.

Knowledge Base Character Set

Knowledge bases can be in any single-byte character set. Supplied knowledge bases are in WE8ISO8859P1. You can store an extended knowledge base in another character set such as US7ASCII.

9.4.1 Adding a Language-Specific Knowledge Base

You can extend theme functionality to languages other than English or French by loading your own knowledge base for any single-byte whitespace delimited language, including Spanish.

Theme functionality includes theme indexing, ABOUT queries, theme highlighting, and the generation of themes, gists, and theme summaries with CTX_DOC.

You extend theme functionality by adding a user-defined knowledge base. For example, you can create a Spanish knowledge base from a Spanish thesaurus.

To load your language-specific knowledge base, follow these steps:

  1. Load your custom thesaurus using ctxload.

  2. Set NLS_LANG so that the language portion is the target language. The charset portion must be a single-byte character set.

  3. Compile the loaded thesaurus using ctxkbtc:

ctxkbtc -user ctxsys/ctxsys -name my_lang_thes

This command compiles your language-specific knowledge base from the loaded thesaurus. To use this knowledge base for theme analysis during indexing and ABOUT queries, specify the NLS_LANG language as the THEME_LANGUAGE attribute value for the BASIC_LEXER preference.

9.4.1.1 Limitations

The following limitations apply for adding knowledge bases:

  • Oracle supplies knowledge bases in English and French only. You must provide your own thesaurus for any other language.

  • You can only add knowledge bases for languages with single-byte character sets. You cannot create a knowledge base for languages which can be expressed only in multibyte character sets. If the database is a multibyte universal character set, such as UTF-8, the NLS_LANG parameter must still be set to a compatible single-byte character set when compiling the thesaurus.

  • Adding a knowledge base works best for whitespace delimited languages.

  • You can have at most one knowledge base for each NLS_LANG language.

  • Obtaining hierarchical query feedback information such as broader terms, narrower terms and related terms does not work in languages other than English and French. In other languages, the knowledge bases are derived entirely from your thesauri. In such cases, Oracle recommends that you obtain hierarchical information directly from your thesauri.


    See Also:

    Oracle Text Reference for more information about theme indexing, ABOUT queries, using the CTX_DOC package, and the supplied English knowledge base

PKx&ou~p~PKfUIOEBPS/view.htmk0 Presenting Documents in Oracle Text

5 Presenting Documents in Oracle Text

This chapter describes document presentation. The following topics are covered:

5.1 Highlighting Query Terms

In Oracle Text query applications, you can present selected documents with query terms highlighted for text queries or with themes highlighted for ABOUT queries.

You can generate three types of output associated with highlighting:

  • A marked-up version of the document

  • Query offset information for the document

  • A concordance of the document, in which occurrences of the query term are returned with their surrounding text

5.1.1 Text highlighting

For text highlighting, you supply the query, and Oracle Text highlights words in document that satisfy the query. You can obtain plain-text or HTML highlighting.

5.1.2 Theme Highlighting

For ABOUT queries, the CTX_DOC procedures highlight and mark up words or phrases that best represent the ABOUT query.

5.1.3 CTX_DOC Highlighting Procedures

These are the highlighting procedures in CTX_DOC:

  • CTX_DOC.MARKUP and CTX_DOC.POLICY_MARKUP

  • CTX_DOC.HIGHLIGHT and CTX_DOC.POLICY_HIGHLIGHT

  • CTX_DOC.SNIPPET and CTX_DOC.POLICY_SNIPPET

The POLICY and non-POLICY versions of the procedures are equivalent, except that the POLICY versions do not require an index.

5.1.3.1 Markup Procedure

The CTX_DOC.MARKUP and CTX_DOC.POLICY_MARKUP procedures take a document reference and a query, and return a marked-up version of the document. The output can be either marked-up plaintext or marked-up HTML. For example, you might specify that a marked-up document be returned with the query term surrounded by angle brackets (<<<tansu>>>) or HTML (<b>tansu</b>).

CTX_DOC.MARKUP and CTX_DOC.POLICY_MARKUP are equivalent, except that CTX_DOC.POLICY_MARKUP does not require an index.

You can customize the markup sequence for HTML navigation.

5.1.3.1.1 CTX_DOC.MARKUP Example

The following example is taken from the Web application described in Appendix A, "CONTEXT Query Application". The procedure showDoc takes an HTML document and a query, creates the highlight markup—in this case, the query term will display in red—and outputs the result to an in-memory buffer. It then uses htp.print to display it in the browser.

procedure showDoc (p_id in varchar2, p_query in varchar2) is

 v_clob_selected   CLOB;
 v_read_amount     integer;
 v_read_offset     integer;
 v_buffer          varchar2(32767);
 v_query           varchar(2000);
 v_cursor          integer;

 begin
   htp.p('<html><title>HTML version with highlighted terms</title>');
   htp.p('<body bgcolor="#ffffff">');
   htp.p('<b>HTML version with highlighted terms</b>');

   begin
     ctx_doc.markup (index_name => 'idx_search_table',
                     textkey    => p_id,
                     text_query => p_query,
                     restab     => v_clob_selected,
                     starttag   => '<i><font color=red>',
                     endtag     => '</font></i>');

     v_read_amount := 32767;
     v_read_offset := 1;
     begin
      loop
        dbms_lob.read(v_clob_selected,v_read_amount,v_read_offset,v_buffer);
        htp.print(v_buffer);
        v_read_offset := v_read_offset + v_read_amount;
        v_read_amount := 32767;
      end loop;
     exception
      when no_data_found then
         null;
     end;

     exception
      when others then
        null; --showHTMLdoc(p_id);
   end;
end showDoc;
end;
/
show errors
set define on

See Also:

Oracle Text Reference for more information about CTX_DOC.MARKUP and CTX_DOC.POLICY_SNIPPET

5.1.3.2 Highlight Procedure

CTX_DOC.HIGHLIGHT and CTX_DOC.POLICY_HIGHLIGHT take a query and a document and return offset information for the query in either plaintext or HTML formats. This offset information can be used to write your own custom routines for displaying documents.

CTX_DOC.HIGHLIGHT and CTX_DOC.POLICY_HIGHLIGHT are equivalent, except that CTX_DOC.POLICY_HIGHLIGHT does not require an index.

With offset information, you can display a highlighted version of document as desired. For example, you can display the document with different font types or colors rather than using the standard plain text markup obtained from CTX_DOC.MARKUP.


See Also:

Oracle Text Reference for more information about using CTX_DOC.HIGHLIGHT and CTX_DOC.POLICY_HIGHTLIGHT

5.1.3.3 Concordance

CTX_DOC.SNIPPET and CTX_DOC.POLICY_SNIPPET produce a concordance of the document, in which occurrences of the query term are returned with their surrounding text. This result is sometimes known as Key Word in Context, or KWIC, because instead of returning the entire document (with or without the query term highlighted), it returns the query term in text fragments, allowing a user to see it in context. You can control the way the query term is highlighted in the returned fragments.

CTX_DOC.SNIPPET and CTX_DOC.POLICY_SNIPPET are equivalent, except that CTX_DOC.POLICY_SNIPPET does not require an index.


See Also:

Oracle Text Reference for more information about CTX_DOC.SNIPPET and CTX_DOC.POLICY_SNIPPET

5.2 Obtaining Lists of Themes, Gists, and Theme Summaries

The following table describes lists of themes, gists, and theme summaries.

Table 5-1 Lists of Themes, Gists, and Theme Summaries

Output Type Description
List of Themes A list of the main concepts of a document.

You can generate list of themes where each theme is a single word or phrase or where each theme is a hierarchical list of parent themes.

Gist Text in a document that best represents what the document is about as a whole.
Theme Summary Text in a document that best represents a given theme in the document.

To obtain this output, you use procedures in the CTX_DOC supplied package. With this package, you can do the following:

  • Identify documents by ROWID in addition to primary key

  • Store results in-memory for improved performance

5.2.1 Lists of Themes

A list of themes is a list of the main concepts in a document. Use the CTX_DOC.THEMES procedure to generate lists of themes.


See Also:

Oracle Text Reference to learn more about the command syntax for CTX_DOC.THEMES

5.2.1.1 In-Memory Themes

The following example generates the top 10 themes for document 1 and stores them in an in-memory table called the_themes. The example then loops through the table to display the document themes.

declare
 the_themes ctx_doc.theme_tab;

begin
 ctx_doc.themes('myindex','1',the_themes, numthemes=>10);
 for i in 1..the_themes.count loop
  dbms_output.put_line(the_themes(i).theme||':'||the_themes(i).weight);
  end loop;
end;

5.2.1.2 Result Table Themes

To create a theme table:

create table ctx_themes (query_id number, 
                         theme varchar2(2000), 
                         weight number);
5.2.1.2.1 Single Themes

To obtain a list of themes where each element in the list is a single theme, issue:

begin
ctx_doc.themes('newsindex','34','CTX_THEMES',1,full_themes => FALSE);
end;
5.2.1.2.2 Full Themes

To obtain a list of themes where each element in the list is a hierarchical list of parent themes, issue:

begin
ctx_doc.themes('newsindex','34','CTX_THEMES',1,full_themes => TRUE);
end;

5.2.2 Gist and Theme Summary

A gist is the text of a document that best represents what the document is about as a whole. A theme summary is the text of a document that best represents a single theme in the document.

Use the procedure CTX_DOC.GIST to generate gists and theme summaries. You can specify the size of the gist or theme summary when you call the procedure.


See Also:

Oracle Text Reference to learn about the command syntax for CTX_DOC.GIST

5.2.2.1 In-Memory Gist

The following example generates a nondefault size generic gist of at most 10 paragraphs. The result is stored in memory in a CLOB locator. The code then de-allocates the returned CLOB locator after using it.

declare
  gklob clob;
  amt number := 40;
  line varchar2(80);

begin
 ctx_doc.gist('newsindex','34','gklob',1,glevel => 'P',pov => 'GENERIC',       numParagraphs => 10);
  -- gklob is NULL when passed-in, so ctx-doc.gist will allocate a temporary
  -- CLOB for us and place the results there.
  
  dbms_lob.read(gklob, amt, 1, line);
  dbms_output.put_line('FIRST 40 CHARS ARE:'||line);
  -- have to de-allocate the temp lob
  dbms_lob.freetemporary(gklob);
 end;

5.2.2.2 Result Table Gists

To create a gist table:

create table ctx_gist (query_id  number,
                       pov       varchar2(80), 
                       gist      CLOB);

The following example returns a default sized paragraph level gist for document 34:

begin
ctx_doc.gist('newsindex','34','CTX_GIST',1,'PARAGRAPH', pov =>'GENERIC');
end;

The following example generates a nondefault size gist of ten paragraphs:

begin
ctx_doc.gist('newsindex','34','CTX_GIST',1,'PARAGRAPH', pov =>'GENERIC',        numParagraphs => 10);
end;

The following example generates a gist whose number of paragraphs is ten percent of the total paragraphs in document:

begin 
ctx_doc.gist('newsindex','34','CTX_GIST',1, 'PARAGRAPH', pov =>'GENERIC', maxPercent => 10);
end;

5.2.2.3 Theme Summary

The following example returns a theme summary on the theme of insects for document with textkey 34. The default Gist size is returned.

begin
ctx_doc.gist('newsindex','34','CTX_GIST',1, 'PARAGRAPH', pov => 'insects');
end;

5.3 Document Presentation and Highlighting

Typically, a query application enables the user to view the documents returned by a query. The user selects a document from the hit list and then the application presents the document in some form.

With Oracle Text, you can display a document in different ways. For example, you can present documents with query terms highlighted. Highlighted query terms can be either the words of a word query or the themes of an ABOUT query in English.

You can also obtain gist (document summary) and theme information from documents with the CTX_DOC PL/SQL package.

Table 5-2 describes the different output you can obtain and which procedure to use to obtain each type.

Table 5-2 CTX_DOC Output

Output Procedure
Plain text version, no highlights CTX_DOC.FILTER
HTML version of document, no highlights CTX_DOC.FILTER
Highlighted document, plain text version CTX_DOC.MARKUP
Highlighted document, HTML version CTX_DOC.MARKUP
Highlight offset information for plain text version CTX_DOC.HIGHLIGHT
Highlight offset information for HTML version CTX_DOC.HIGHLIGHT
Theme summaries and gist of document. CTX_DOC.GIST
List of themes in document. CTX_DOC.THEMES


See Also:

The Oracle Text Reference

Figure 5-1 shows an original document to which we can apply highlighting, gisting, and theme extraction in the following sections.

Figure 5-1 Sample Document for Highlighting, Gisting, and Theme Extraction

Description of pet01.gif follows


5.3.1 Highlighting Example

Figure 5-2 is a screen shot of a query application presenting the document shown in Figure 5-1 with the query term pet highlighted. This output was created using the text query application produced by a wizard described in Appendix A, "CONTEXT Query Application".

Figure 5-2 Pet Highlighted in Pet Magnet Document

Description of pethilit.gif follows


5.3.2 Document List of Themes Example

Figure 5-3 is a screen shot of a query application presenting a list of themes for the document shown in Figure 5-1. This output was created using the text query application produced by a wizard described in Appendix A, "CONTEXT Query Application".

Figure 5-3 Query Application Displaying Document Themes

Description of pettheme.gif follows


5.3.3 Gist Example

Figure 5-4 is a screen shot of a query application presenting a gist of the document shown in Figure 5-1. This output was created using the text query application produced by a wizard described in Appendix A, "CONTEXT Query Application".

Figure 5-4 Query Application Presenting Document Gist

Description of petgist1.gif follows


PKCf9|kkPKfUIOEBPS/search01.gifS3GIF89a@c{!)1s9BBBJJRRZZZcckss{{{J{JRZk!)1!1B!R!Z!Z!k!s))9)c)19B19J1BJ1c1c1k19JR9Rc9BJRBJZBZkBsBsJJRJZkJZsJkJ{JRZRcRRZRkR{RRRZZcZ91Zcscccck{c{cccccck{{kssZsksss)s9sJsZsksssssss1{!{9{R{Z{c{{{k)cJ)RRZZZ)Μ)1Μ9֜R1RkƜk֜s{R眭ΜƔZZ9ck!1Zs)B!J)kεεZ!ssssss罌{εֽc1ΔΔ1ΥkΥέ9εƜΜ9B!J!֜{ֵ֭֜έ޽BJR!R1cBsRsZ{)1B{c{樓9Bs|JΔν{)19Js!,@cEЁA :a#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜi0l`ϟ<(AX+`@PJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKnYxWAQ +XX4È+^̸ǐ#KL˘3k̹ϠCMӨXmB0b1ࠂmۭcͻ Nȓ+_μУKNسνOӫ_Ͼ}w {[lbބ, هyh& 6F(Vhfv ($h(֧B9W0 A]4<@)Di$ͨ$BL2< =Xf\v`T7ihfpfCniUpS߂aj衈&袌:U Ĥ@`1d馚 hVz)f):#묲c뭸 N4SœpQ((&6쳊s amf-v7 IKjF:찳νS9j4x"ТG,W|>UI誫-V /SnǑ+2&˫NK8LC >[lB H'L7#>H{ j05+WwZrk3:,>$C :h9mxPwL5`cˋ~k*3>㜭:i:t Hޠ.褃ԉxkjxC>씣6϶/j =>/?E!>PE,e:h?>@T3 췟 {^&;{G8!`h3`:ЁT!FaGZ@.A|C-ɠ3"륤{4qD0D,tfH~|[Nũqr3&$I,(3`LPRA މ8,(0MR?ؒC' ?^7+l! chBtx#NS>4$M)r]C<%O`#@:j;QCRbh4 7` V(F{H/GsJ`xE4de Y2SD6K |d"9Jo*8i*HL줾3)RaVL,pKe.u ࡛(5J4AQ-â?J&K~i28I@ R8 IӚ͛^!c@rZRgIxRR]=ʹ&RL P ސ%T `DI >ӂfcDY͆,@/DkSLzGHzÖ *}^BR59m})6e:3)֦ p}<91 FjQmrL2tvN`s:[^OPa7 *@Ŀq[0F>ZChW4 ĨZ{GAJ3-SJF@ʵ4,ƚl5H$+j)iԘ(. NG`5/9kWxgζd`6Sar qi)r[R ǿ6_)9@t?hsq4eX'/"@Q>bdٍ8^&:MF.p,<-Ki/'[gP'=J;"01)mjhrt 8c`bunS˄u?6\uP}+@/L Q8C&l_pi,3&[rLJo8a^/Q\EJ%Z L]|F7Q1LyAy?"&~+T]K\_tEGHBw&t{؁)&-̧>wue]uvT7vu*X.;fov3GE"FFU yg~r6AV6lUQ]PqZ؅^t0TR_=ɤg_ȆW8qUq Mbx+eQz[f]HtQ(SC[sihqXx؉8Xxq".%)'X| 6-|/|2p73N}z!_f@Fx'Q8d 1 ޣq fBf7e 2j =Hc7W #r"_F$lhUL_p3g.V&U(* "9$Y&y# \W$r&vVG* ,Y&.nHHoԇ&O  }zB`0\P @ "xifkll5(cV_jhbRZXsdVG71tрŇwjpLVEie)Hqiؘ5ɒ'b+|9ɋU|WAy&K?hr `H>a@M 1w܁ cōQc6XhQ7Qc iiy&#i%ehBix j✫dX&vG7ziᨎV&Ŝeٞy1 "8)v9eB)Xu!|8"+{D#gꠚI MH P &qPti pzuY [Fzj&x Ys PU6z&bzԠCJ]a`/Z&f&(Jt=AVZ3Z ^jS)Rz8IDgZ.oDr+D鐚G9AU2 y8B $J 4\6|8:<>@BA܉}i ͠;N".LpMm- =QǰpxH-#N^.@| .k=K肮lޭEt^MNŌnNٝ=I=}m p}y=ꥮKPO j]ܗ cԯ^ \.̬~뿮2 xp -}ظ ~흾Ğ)O^~ЅڇօG.˽"HmNfN?>~m~}~k.ݳ _ܾ ]Í OPExM~؀x~"|>DN>ޮ]3ui}?NxE} Xp^̽H- h m?SD뉭".qO܀Mmkc9-/n@>mai-jLO_|4 p-̳&O ? Ю̥H =sO"~|o E>\ mu˟;M/?LnO_ gۀa޼uۂ%x >60g:Q#D*A`CCnڸB7|xI+gl0“479E)5(TfØ5uT(Nr]eZuśW^}X`… @Ap//nY>ę]|n.<+윔)ގY31h#:|`] = 8ANJz}pK}(O-=1 pJn2Zƶv;5ǟ_~NllN>BFR3(-­tMhÈЮ\DdC|s)v[p%*E$Ntq cJ bdQEQiH+C'%$g4(Hh:рћ5k-dM7߄3N9! 1 ;Л8 7/'55"PN`_~D$PCqл2$TR4--D -SD3UGdGUM0S~BKA17J^覻QG5B\⌺, (3[m[os@<sχ6]ue t7^y祷^½@=5t8`^F8a ×@zEln~z{IeG?}} __~/g& D* fπ[W6?ρ ad#04(?h3Dr#] ^JiP_ C 5$%tCЇ?b8D"шGDbD&6щOb8E*VъW$_l0Bp"D ]gwY!_`q 9ġ wc R 1YpB =# I=0s#G\"wd&5INvғ.ї ~QC28D HKHe.uK\q*n_B! Y ?F! e #BD6 'ؠٌ ƼPӚM)󌇔c1)@,όf_,A~]&9ҌTx@Fza`Ђ4aZjKVm]RP8+ uf* s kF$ISa('# iIMJS4ۋGA*RQP^OVu[T CʈA>hZ)K%4`A:Wn8iPcTB*:X>A(WmAq"M,PWB =*ahWj_X0%ble;[ֶmnXַnp ZGίQ.FbKޖpj--1XRvw AH ;,**w+M[6Q``AV3-D|a1߽:6f~KVw(/} X2gt-2wqEC=h λACs'gn8LTJ!/Wv{̌C9r'GyV^W/ye>s7ǹuk׆m߯@Dq(bJ6%b])LøĶmȀ;r \ZTnw{xG46īoaCYXZܽy{Í;z҂xz/!S|3Dnt}E?zҗG}Uzַ}e?{[yx[W~?|maھ!` pDɎlCʶ/$3z}l0, 0wa7 8+8pe[<2!a*!KC@d@ 8?r: c8?<ڼұA9ڽ :%:fHt뢣 ?5y:\ax2%/©9xl:[m%n/so9l6;dT) +;;wKBb@rCCDDEܫ fpDI|J$9=Dǃ/AQ$\]^AYDcD 9Xdjh B,@;@XC]a)x E[(4%Xt+XCpDW¸>eVQ%o(0C0eZ#)hD,;ū*=/BD #0| EG9GWС;)fh9ρhaɞŠJջI =,;ʥ=|YQ$T=꟫Lƭ,P8[QlFXzF4rBV&8hLoG]:{aa ?).yC9z=ǦG0&zI4r8ɔ<.h9tLL,M ;@<%$͈QdLԺ+pYLEiJKlsNtJdNI\N儆kAӫN-G=Nx"$Db|"$>T؁Dʯ KB Ng|:go|(o@KX>LL]2DaCmX(Cr 9QDLXQ!E,&['@xI3apr,)iP3͉/zM+R<;\zŚWLQ{

^1IUT팇%TkXMY|Ny_? ^>}߽3ŇJ0eE^N$hX^IeC%_!ͩHeɥTa6`=SaDU?aB y! ]{B!,T6 `MXB&Lb\ap6`5a}6V{4[*2Ԯu5&,h3>~#u&Fɂh 9^2XnW*Z3j7cn40tc 1c=\EV-k-[JIdAeNI^|0TOS~T=Zgx|V.T6AE=fT_Y54杄X_`eSS_NVnnS^FKX>MT[NRWe=n6gfs={StGXce\XYjF߆^eiIq^`u[J_Ȇ ZaNIvR8?TnaNTQ3`a9"k3k2%M H 2QŕQT嫕K~i pMad&&?FZ=Mo8ojv63,g ѬbvԶWU\7z/q'@=M@J,;ͻ3B&o 7N,;fb+#GW؟uE>qvUl!' mNFXPԖm m|Umv.eDn&BDmI^nt< ;sFJ-K^RtZtt@7_|fsGO^!胴JU& ֐PA@kppp\eӱhKpόFMZ\mbg#VjCժ V$-q8Urf,̆ M8# Xk[jr O,l1OL.xH}_35,C+oj7j8ҦȱsXW B0WꗃO;oI;ޏXmə2I˩Sx=9S8(x*<@#\oÉ X./@fȱ$ċ"?{aJ&a*7r#̘'arhÎ`C Qć0 &XH6g_Rđ+-%ir &hIq_R\"+؃ra* (lQHZrH\NHx\f t$>8c \eЕN%EQ&qG_S/)DfP$Yl"ePO yOrFĦOTZcS*U RzrљpҥP'4l[p)g^+``SsTl;qs0tI_zgD+A6Ð(VQ` v]F$M<DŽ(=H3P-5a|RAȃtͅ$%iKӪ5&hWL?)0&pXF|Qu4iBE8~Cj7#[L xFtWHM:Lw ٸ$VIWG$r#;t)r<>J;]޷*Bλar+|&S b~Ez@WK5L$!j?8! l0נ9SxwU0'^R0s/852OsAFpiЌX`Z!ɡIE@# (CD{ @: OωǢRHM4yJc*әn+MU*'.>)P}ҠF%v'QOzk'KWS*VUp1Y' a6e3~vT־65h>X!#hkL #^ ua pϐ3_W~Edkh^:\=Nieak^5 l΀ w`kA8D' E&?9S򕳼.9c.Ӽ69s2 F?:ғ3(3B.D36pF`8\)8 :r ;wƳ3,<=ˬv^J֮ {S|f/3<#/S<3s|tГ6<9̠66®ӾY{_/TߑGZ䭉|U 0E`)9ֿ>s>/??ӯ?/~O{K~)*> ^5 FN V^ f>R6] \`I[ ^%B ֠  ` }`RZ ߥ ]ձ`q`3^!fn!v~!!!!!ơ!6Z7!a* !`3<"$F$N"%V%^"&f&n"'v'~"(("))"**"+fb#V IA*4-".."//"00#11#2&2.#363>#4F#1`b!"6f6n#7v7~#88#99#:c+">7" #<#=֣=#>>cȱ;c!#?$AA$B&B;V7|D2V@F$EVE^$FfFn$GvG~$HH$IdE6<$]$#Z38C$*IJΤM$NN$OO$P%E{4=CLdNNP>%TFTN%UVU^%V 5C΅047qڡ٤SƋG(F%\Ӌd%UUeF%c%H%E%U&P&V& %MRex%dr̥\`fjdZF< XfnA4qf\f&]rEL$ I&k`/ HڦkfM/@f.i\Bdt&,)fRkxX&>e/A@*lub'4 g.9gkt~vrgunrnfsyzyG{niRd~.wr~H)sVv\dCXe* @]XgQEh|%R:if)!k^dGhYgwOm(j/~dl',x"'nR\vz'^gf'>vjs)'fBB~iB),H)Pikii_n遴)(jiv'~(HixDn&f@\87XhƁh%@!ZiZg(>iRF **Xio5)kBBfҪ⪛p")j>hh)dꫦ)E ^mkp*VfjvgŴ+j,+f뱢k~k쀙V+ų%k\+jRWZ\`jd^(@*8CXjCrf6}&AS*)]vix\Ȧ,hRȢ,x\rq4Xf}Z⡳,kD’kBi,zkmn,ǖ*-\--"ʭ\P-knҬnɆڲ,kv+nnf-Z-,*--6nܪr7L-f&..n nmҞrm6Fjnn.**,_1l&3dހȁo@]6HNJH Cf0-fp# `@Ư0,>@byC!h+DnZj$p G ϰ!i0<0'$<  CH0W1mp _p0J10p0KqfCGg00c00 q;Cog2p 7p*ix0W #q+"T#p%+ s1*%(_ 1s/ sl[''H( C' ?!"r˱$1,+A3rr{)r12i*gqCsk2'-$'H+Or,>@ӯ3|pm%xR6 2;/7&k`hKb7 4Fgf7kB4(Kp{l7S:+ HI0sqV0!2G#6Mq3os<44N1CJtJt\7+tO/A&DqSt){|t4rJ R+{rB SpQ3 W'4NgPwuCCX+.ATOuU5/C0`oUt&tPqK wb]KuMMwUQuNOor[v:vY6VC[$@A dCouN3(1.;4D*p&_ugpTCQst.YAs,v+pج80tK3u tp.7b6}kXw,wP~GwytJz/[7uw7mgS2V1c7pxL2C[Bz뵀5TH7eu]w_x|s0{8.3pGk÷UOx,ox?kqDvƳtw%wvSr[6G 7y2jo9kmv߳0v3~m٥4Mss~vsst"wQ2ws x5[yw4_?}a8$78?g'(:8xqky4]pEv.sǯw8kpں}kvrtrws:k4N]/xVWzJ7 ZKu_W{pIçVҺ;A1Pt[xsN3:o;g퇯sK/s6L0@S(p7:9م&p\͖$7Ŀoŋȯ #&OG#Asv}:>  oȼAfow >=ٓ{xP<9@6`-JF Р@ "|0"Ń/X*,5$kÉ'E[$i )|"O>Q:h͛sqTX1ubɘTr@9WWVqbL 4kމ3nMR0J xB8GIe' y#YfGv#tRTĹ7kaVcTeo߽6-U_G2ۖ/1&"^ ~`o`GZH {u/O#\7"ܸj 3 ?.t)ޘP 7aL+jɶOdн :r@ZQb:iƱ3*M ʔTUR2cH6^uVXvj~HO=L? tӁ 5 Dy~4埅衉.裑.:n駡Z|aݩZꥵٛ[)k^>.EN`Oܪm;Oz!\rr+_\=e3(/?{I/QO]YtsgztAoq]y)DϬO^o硏^驯^_/Owoh__@4@. t!A N}`>0A nAB%4 QB-t aCΐ5 qC=a-اE4D%.MtE$Q2RE-n]F RQe4јF5ml#G9ΑuE8摏}HAq4!HE.',d#!IIN#-IMn$ 1IQ4eCAt+aKYΒ-qK]/La41Le.t3LѴ5Mmn7Nqٜrt;OyΓ99'Dړ?PU>aB. uC!QD1Qn?+z~%5IQR2*5 Δ5]i2MWTEeKxјj2 ;RMi<Sn]jGP,ժ4}1:ZF3LJJ{aXb#S̾Ғ=%[N.guؗМ,7ʿVka[ϊLeiV2[iYJenaIV 1`wKSF%l]kcY՝NWUeyU`ΒȵxkJ6Ur ߙRkM]{W7euU4o[V򪷦ȍi(rJ2npQbG#kapi Ƴl{[_ϴ1p ]͝Y OUUIZ@F/+ /;4 2L7n&3%c+}f&e=ǽSJڒ3 V ϷUp/-ӝ.bAVjgiHRurZhVZ[u-o{O׽>h)&n[YbJn5}TVt}mmS90噡Bz]%V.k{w=jb:2g=iY9v%-ޚ!q؛4.fc3;,kk:ǵs[[\-w9b).x٭y pVdԊݛ* oMkG.K!ǘi*k8S/rd/]7cGmwQtY2ج]m·nVxeU0ݟUKwo*/{a !i߯iNCuMCϛ7 |&uK٭^1uWLӼ;V+p7x/WO՗&-zog)][W~џş_w~Ͽg'pO)p 0pG0E (-105p9=A0EpIM7PU p]0)9hH p0upy}0@/)\hP@ ዜA p 1`!`0  Ѝ0۰p`HhT` P0qo\ EAhH=шqeH7 s0ޡgM@azc\vqJHoJ]haq(1kQfrV1` q1wQf!1ц1Ahieױq(2q1!M(3HPP%2q2%3h#}#Q%1#7ڑ07 $EN%P&5!5/!ur(G"QiQq1#")A q(qR``҃Q2+[b$S)Y"('5 v1[8,(`}}C/?21A('2ha1*9r Rq/22*,E+Q3h3Ih-"Wq#R2o.5's&].a RB8/78s 1q":=)#}#4S%:4U5hY47+Qq7Ra:!"iR%)2S36;!򳃌38>0{q9 C@T:3F YHQ\2653C'?2ݒDQ+3%&+JmՅf4$C:T{0Y5:sH]9tH9Ap;##%aB'W2qr_UB2"AV4^뒃JO'{#&4/sH]7^VudרaMvD6e=d]P6fsbŨeiv4gify7(bYgfh9:i6jvjjj6!RvkPlm ,vmٶmm6nvn!~h6voSmPwp Wppooqq!7r%wr1Pq(q-7s51ws=ssAwtIEtQ7utUu]Xuewv!)vivqWl7wywhw}7xrvxx xwyWy7zxzxWzw{y{77|ɷ|/ 7}շw}{}zw~y~xwwvx u txxs%o#x-Xi+5f3x=xd;E8TCxMHKU:Sx]([excxmkusx} { xXXxxxؔxXxx8y8!x8嘏x؍x8Yy ,"!9%y)-195y9=A9EyIMQ9UyY]a9e8G<`y}9y9y9y9y9yly 9yٹ9y鹞9y:z :zٜ %z)-1:5z9=A:EzIMQ:UzY]a:ezim5: ;PKGkSSPKfUIOEBPS/pettheme.gifGIF89a5Zk199BJRRRRZZZZckkksssss{!k!!!1!!1!19!9J!9s)R)c)s11911B11c19B19J1c1{11199999BJ9BR9JR9sBJZBRcBc!JB!JZsJcsJc{J{RRZRcRR!RZcRsRRZ!)Z!cZ91ZcsZZckcccck{ck{csc{ccckksskssZsssss)s)s1sJsJssZssssss1ss{{!{!){!c{9{Z{k{c)Rk΄քJ{kΔZ))9֜R1RZscs{{RΜ9Z9))9kZsέΔ))JZ!ssss{νΜεƽB!Δ1ΜcΥέ9εƜΔ9J!ֵ֜֜֜֜cֽ9ֽkJ޵޽֭JJ!Z)Z9s)sZ1Bc)kﵥkΔ޵9ε{)19J֌֜!,5`A!@x#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜ`!  d@N hA *QӧPJJիXjʵׯ`ÊKٳhӪ]˶۷p:] "KÈ+^̸ǐ#K˘3?hB AӨS^ͺװc˞M۸sͻ v(zحνOӫ_Ͼ˟OϿ ( ;Qu$Vhfv N4 ?dЁz@zMy!(4h8cIR@)R@H&c @F" Gш\v`)dihlp)tix橧B=!à &*#h:g`zZ8zC9/2=~ 9΃jm/P$|j DY=Ø9}z^oO&큏+4᧯wk@{ۺ߉ I;wpNT\r(ȃ'(A6d!(DGP>zb"ac{1q/N$,_ B찇1 վElu#g!IKֿq)d+ &@ͪA 6챍acYH%`PT(G T<{A@td a8>Nӛ?3 %CBܓ=v0dPMImEHa.O#H8ơw(G j%`B"'1#? KG :釖]6^"@}G/JB$3IziTZ9(ȟQ+;)+(C}tK\*m RH/gQb0&20՜=jαSi5qr+Sހ#*kR&0atH/1bl D eϯC+&i,:K>5Cb5bO@i'+$Ѣ-NZtHЬ`w> PT%ʪ VUQWX*㬩B`.1fdB1!L(:׆Gk -kR K5Z!T)x0tia*b$#8iMsħc/3 (PwZ P q;prĶ(OYv& 3.KGȷ#p>挎 J+?zx?'@;a=x4P/bvtMFCЙ)RcИ>k]Y xM jM|iO#Ż(mJhҾ]'PRrLJ-Gr1fBBs/*6B/}d5_%]TA%mD#0g@Ȁnz{n8Uj%i>BTW&G(vi0I5zay]}f!D5"٤GJ=4n)s'B+S>JM_bZjr>p>B"}DX"5MY{\k&$*Fr:wekln7)DVs{ hK83 f@PYPW P!Ks'$fq,8j0e3 s#Mg#@{ǃ X`C6X :[HMXGO84YD6"4o 0qg@i'|~mCXw487evjvvu׎"HbcAw(VXJ`W#PgЁ` WAG AGR(EtM 1ؑYq 1u7 zY!{)X2I=z@&cI!i!TЇItPMYpQ9!h؋z@Bi_9Vu_9HiB[BqZ#z|!鸎~h١ Hx1)2dKduKɈ  `pPQY ?B "Iw a 9*e L*G / 9>2ӛX)y7UY :i@XW9uIz9+GXYzkX%tnIٗ @IxI1B(rG(t7I-䘏W*0H` iP  5 p p 0zybٚ癤iia86S)!$HrithiZyr4C¥giarj ` H2&4)$LZ C$R6ᡉmjh PPKx(=k0<@AgCnJ7qhfijB:3XQoh}S*$!yyr jJAc:[(ʨ*{ivJ#j0"*JKgxP +j!2B N03G+|AR7 aVвね8P'.D q%q1Av`{P<>dEN!S9Rzp "&$ q>ЛۛWjj+IRxѰ;# +*怵$@ #0"Kڈ'3H䲡uj /TRb{ՔQM -ѻ;n  _G և #-"  q ٛAa[M;۫K꛿1.KuJ=RjK;R\|!"C( Р߅k!<  ʏX Qb H"/@BВ=ٔ]ٖ}ٜ٘ٚٞ٠ڢ=ڤ]ڦ}ڨڪڬڮڰ]ڗO" <}۸ۺۼ۾=]}ȝʽ7<Ѣ/JP}ݶ}ڽ=]}=]}Эҭ~ >^ ">$^&~.02>4^6)>--~>@B>D^NFFNPR>3+= Z I]^dg_bpmJLn[z r{e~k. ` @~M{.飮 皰-xn-r.t~,쁎.>ǎ`^ɮݴnݗ~߾znnͮN[î>N߂^E<.^=N n~.  _^ |pNľo"?@K݌~n zN>_, 9-8=! Oמ^,L | XžO,?`U 1G-ܾegݝ@rp腮l/ ~=|N8*^Tݺn?]>^tN[~߭}?oD~? A ݸg/B q f?/޾z?nvn뺿՝O@ iMhB-JTl;NF$N8ۼIS۔R]n##EeRt8`K7VS7%gJA ]XԤ@6 ҩ/)1eE!֚1OɲkG!$ivIsX`… FXbƍ;@x`o0QX)鹾&(phqBTEYBeҖ# j]*J|HLuzV^eu'UyT0x2Xp`c1|AuFG=E1$@D0A**,:É5k/X3C9C $3&6B0: (:E 즋#DQ H1&{B%{țnf#Ѐ mR\QPDdM7߄3N9t20%.?5SSӯڲ)4@*"҄MHJ FnP""B-/CMяd 9HBҐ eH{d$%9IJVҒd&5INvғe(E9JRҔDe*UJVҕ\%#%F^e.uK^*H%{9LbӘǔ/׿+τf49DeVљې5Mnvӛf0ooӜf4! v2`;QpoDg>b(@1Px<WOf1 ut(E-zQƄ£iHE:RԤ'EiJURԥ/iLe:SԦ7iNuPf?a Phaӛ0ԊM! 5| Wij*ZիB!a( A&k\:Wծwk^aT$dm `B6ֱldח80a _U;/B@@DUC UͪLr6 -F[Ӧ =kaFQgr{$& /$ L,`+YvwST0/ ,fPpjbBQUC"땅(`+=}7{_vꗿl;a w0?4wBw~HR:l׻',e]{ IHzPؼU "kףVoT=2Cd!Eie.w_s_jDGgi H":P(3c\dsADaDY("t( 1#mhD#:I A]DzҟՀiMw  e=kZַuuk^׿v=̅ # FUFCYT5(wssENCj"ZF|_1=JǠ1/$N/# Rzַ VO#fk .Z!&EE>r'GyUr/ye>s7yur5+vЅ>tGϵWCh湌0A=f/\ٖɶHctPouD@v3T2/$gGnC$!h3ǽSqA/a-7˰ 1;~w}}s4cKB|o嗀\G}UzۣSe?{}shgpgBO?ȢO(Nd0F m]!iw[ˆ8pG!o?xAgS?e6#OC~ ӽj8S? 5E B#Rh Ĥ׻C$4A[84#*0ᣈ4}msY7R<B6ho#7D0rk,%a+k68[+(x'A{ w4Y2(#j;C (T<3چP84JB.¹.PBkYl DTEdD@@IJAAh>$(HBPZ: E1/Cm{Yp$$t$G:c.c($47`m`IPBCF1aF4:r+FRcBYCC?xFBd3pFlT1vJ-Fy1Fӓ!$kĂ4ȃD pD$ĉJ=y$FqhÂ1./8(h3L ;|2Hʃ#6˂cd,]dYpɒGp`t?ȁ +v$D`E?8DP>"$G ʔ4hKǥzJYJ(tD[KKy`Hjc'KJEUV(̳D̄LL d$lȜcHAtHZ'ДXHITTdu2,,jܶ,>[$7ԳZT̂YPsÌդƠʊh͛Eʸ?Bȁ?p˼Khxͫ8#(h8KNC*J-7O'8: (BK˾㫇l$\$PMLH eP $U%$E |P”!lЉ(%!SJjlPP/8d,#]z',>&`'lV"-A#ELMU E$[PS-Y 6N/W$ԳDSjT e|ƪ,H-mP\^M\xO"Z$\%Z$.0Q]EPRjV[HLXW9kA -|nW%UM1[ݔzpwD/8$4z},\d,R N~-jɯ\\%5CTOhP-Pɝ\<-:Fv\,0:DCPcߪUm1:ӵ],p]%ޯ3UпMGL&`(d L ÄU4cE__)m_l_HaLeQ=5 U5MQQLH_G VcZ Q1V``{x`_^KZ{ `9`G aE~Q L& bHHJbg9DEJC@[|RT[,F2lՉn>ӼhF(M/KGvۼz(bOh05E|B~MI)B+C7F8چdJT(SJƸ0N7d3O;>v]݂X=Q6O-UeV>:Ӻ鵇HJV ae8n-cmWlc>MX4ָ AsdƶrkuZ79FWZAxBDcmSt\̂MBk{km(_6Sea*mNӻ^_VJ(fe53/0778YF<3OJӢk7x] 5C0s!sNfR]$jnFTLnOo 5hnvgᘅNhSu^uEHgtYU[nDa u^`e]vvZW_Pl`ѩSv$vrjHYSx`f'q3FGjqsq/:YMӌH/@W=mΝӜ+,':Dx>Cå,'L;O5G:QmX*n!7=j AOy,0P:@Gn yoy._n~^wv[UPwvNGQ|W'v G.@{F~Lt6{VHLoiOX .pNXaRojo{<[^doo讏n//w\7A/.|G&xLmzm}q$O/QB[?cLU‚0wjܗ$@recM{;d*;GU Dk: Dϣ('hlY(P D?B5kĈ'IbȐBQ % /ab0PWFme(ѬY3ԶzvʲI3".?*(QGś2'MxՔJiH6=5^V`F0+ͱ>Ֆ..U 0),>EdzCY}J#mv^0js"/Ip"?g#_\ I^(Y( )(1YaL HyD(1j,z0v#+ "I$5v,1@D%@~MVA#jDPA@F"(MިR{dB2]{ZB~7X@Wf0.$]7mJuha3]t`5e(BM:W\g6iԢpSq)_ڕU z:ץ**j%Xͺdꪖ*jWAVzfoR& t;=uIiIGwԉw׹xřz|Jb巟(_, Jܖ28x1 B/z"h"*袑 'ѤG_@>ZY0TarM)s9 +̳j2@! :HcX9%Y@DCD1T=j=hPC=Q1jexۄ jOHی%dSޅg,f)2 +1nأ=ؐ09Pcmy孏J鬜:dvS;^ʾw߶nHa.}USDY-oTG%d-nC2LrK "D#Woo"%@FAvC{ɇ0 9HCPHA, bCFTifF@bF@ i6/$ .b(* %*DTNX5 i,xC9G@3b&& ?qH#FE1ihzBGHg@٨FEѐ5J3g#07{D2J&xIѣ=2فA~T%.<ʕiJ4( yK&> 0˚s6ta./HLsB)|mc˨i7oBP7ҙ㘦몎5)(cYX<$n!!Jx / 8R[X B# IP6S X H\IK_ Uf5sE51m*Z3$1"d,׹NdLYŪVCk[:GTʬr+^j׼~e$TWU y2D8((j]) )GlЂd"ӕl%eӢ^`A ĕD Vr;D2Mh(.tU PzI5rE»ƅCW y#^^ShG}^wUg|+ׄl4MVv{}0#`'pl"ԄJ rpY),RAU( # m[1e$/hc@R300¼B{ 9@D>K@d#Kmj[vϓ4]gD3*4_|YKҖ4ck3sZ 0PGň(@H##6dZbUco坈BJB~ L"^WE / \5~ {7䍵lhGӮ6^@5~7-yӻPn}7.Ǥ R(8i A-K,ƈЄ,^A{-qle\k"u57hE/zfQDF@7c[C4M q9YМ8h6/1N:ԣ.SV:ֳs^:.8;Ӯn;vwC."l;bj +tx{cۓ[w";-''=c/Ӿ=s=O[>t~:WB +S]O>@yʍh40?soY?蓮mп??  &. 6 FrYZL]YyQ=U  ֠  *J\fߌC* 0!DV M^!fn!lu neژ_]]!EH!֡!!!  "!!""&"."#6#>HDZn`=DE))"**"++",Ƣ,"-֢-".."//"0$" f"!@2.#363>#4F4N#5V5^#6f6nc!v`"#8#99#::#;;#<ƣ<-#Dž#0B=?#@@$AAb7>=a>#?$DFDN$EVEB=XCC^G~$HH$IFWFcA11vdI$M֤M$NI2dJF$LL$QQ%R=TDF=QM%U#z$Vb%U"Q1tltWReVY%ZTZ%[N[%\ƥ[Υ]Dॾ%__&aB`R̊8qJ B( _&_Z%K$A=lf$߉YDteTZZhf&td@aRWilj&g4#i0t%qthR1AWʦmfXZ_]Bg?BfopsWNgZf='m.'DCs"xYgfjzi'vfexx n>gyzgA^Scҟ=Ȃdn h_emh&o4S:+g']z(hfnDf]ghrhD0Ȩ~0un&uwh'zV'R)`')gWNZ锞%*fDQ o+&z*]*"6fڈ,_?NհhDyܓD}q"&ffVb%gr6t*vBltFXg% #X'i8eJtB~D\R'Ύl֦NJl&+Ţhf,D+^^gm,§˾jDmAf1!bq,)HJDX'\>mҺAJ+flm|,smVm,z-؊W-)x,*mlΩR+^.w B.,lʎe&+*^,Ӟ",z"h貖*D߄@ AH(DCD)l14~CgfJĤC)#HsvfzoZ/jomj g~or:BDj+!J\zȂkBRf.⥶үfmfr0 Kn0*K000׺C)߁w~ǯe #D00+v/ W#e2kN.~Bކ3ςFp6kF/D0 S0D+X%+' ۯW/˂?!, /&&Fd(2ϩBl>gtkRj@Kp020+D|0^s1&ël-4/;q+j$o0;mC"$2ǰҰ(61)tt-00[6['8k8/ (5$˯DD337+F>q:;30qDEjs"4@2k+Lk4=W,0HfD?4"WoWsI6It&z4j2br2A!H,2G0\pW0/r-D=j8)T_oXn3^o1wAYh@(D>#HX.^Ku5uN:KGOa[o5];7o`W5|*.wtm.tWuFM4\cu(BSbAiG645K6UiC_vfvB:d`XS'mODn?#hhbsZvuR[+7k3t'D6ckD475k 61!(oRA,rl'kŲ2crWL7Ic,ZnF5* 0J4jB?DLAfop'y"a/}%bZ0`xFvgApW58%pC1d6puwx)bxx70xWzO o{GKnjd}7#'wB8/†(n>5v{wO"4㩧s`ID&7^o_8+p5r&zgxi r"zp#m8{+/SqK#6W{jFK9D|gT{j ,3rE&4_z${d׶ÿg{/@`O"DHЈB_)_\1ʷ˃]Ǽ1||'~}=߽O~2k@g~=S~[1J>{~݃>S1X=~~j0A%ڳ~?C>}oF飾o~Ņ<]dRM>?= >鷾.T׃^ݳ>@h@ʘabAc X)bd15n")WnȐeK dIKMf5$X,;{|$NcDqi'.C\).% &-)EVO\4Lb%C`d-JJb[Q_ )g\X^5ʳ/B+RWUMUIڶԸy楁#YW1šeZYnǏ.*QNɲDB] Ubk_;xWڔJ6,1P`"c}{6?aҿ_~3h)$^bBMA, {,Q쐢0F 1JȮRRA gT46C@)ӆrF\9LR2|dQ&+_,QCdqQR 2)G[L˨l̳M5ul D,lTPN@1/ SϼPŔI99|O3ϙ<2G,1(\Ԙ+iOV(VO>O]SUa-cMdmgVێ)"iV;Vo_|Y?o@4ga菁S!A N`?ρAB%42( /} aCΐ5t^y6D!\w6".MtX#(E-nqx)d,A.e41CG9|F%Α}(C dHE.@GNd ;I^';'ъ"2; XO I8dZ%ZJCP].oY<`A,f.+]LQcǫ,/t40mH Rs,8MT#I)FfҙK.kj<+HNꬡ? (#s'>N:|' GI4ͧ+YXTJRn"DkWUet@'Sr JCJ6i3Z*=ZhUg17Y̩5 6*ZεSF嶴E,j:ۍ4mCԫbkZ{gb*[EU1ɱHv1}6,Ii.˶5e5 ڃ,]^`׽om˥VB &pWP$[W$0z PExdC;6劰n#w ֌df\_r7O`@ Uh $#\'v6qo0r/cZ^-=M 5z5z_ٗkf01 nhZ5Ch|bqm{x׾s9MIOY?5`/TIJx~z^j/v U{N17IfF6U qzkf Ѐ'_2i/ؔژr/\u{#Ɂv]η#-"'W-q7eypcgv[zY+NbGU;'0/GnPgp+A2P+6W5;420E3Ȳ,U tNsJ7Sw(+8r6-ls+53 ˱;Ls*g<5_<:9;?pB5tC)4ȄL&(C9tDIT6C#DUtED-HDY4Fe\`tFq4GEF)FuGx4HHGtH4ItIIItJԢ󋲳JtKuJ׈6aLɴLL4MtMٴMM4NtNNN4M K~4,4 P P5QuQQQ!5R%UQaR-R15S5SaOSŧI! TMTQ5UUuUYU]Ua5VeuVURiVq5WuuWqSAWGTIWXXiVuYYS5ZGXZZYUYu[W}UZy[ɵ\wU[5]T5\UyƕU[!^5Fa^cuUNu ]IU_^^`OuLU`Nb@U1VcaU_vU! J]d'^5auaaQa%T)`aVedaTbK`K U;vc_gWUhdQvjuGeU5gYeCg6ikgqVgUk{fgcAhchiShdj6z4OsFuVTklcf]KoeVncaKU_gm%WUnvsmj96cvraݶT!^0v (puKNt^khTWu vQuvS7[biwqit7mCww5v7tSb=VnGrMreyyxUuoAVyki@j9w}[s|ϗ^^caWl+{wec"uVvfW7aV{W_^W7q%Vh5bmc7zu^=7~mW}ٷQ}YUqEvٖh1u}mrqj#bwwcv)7UeX=g綂7镉8iQm-v^VAnm|tOX|vsY؅xt`xUgTVb׊t8h8U)bGwQ5s+XXc UwW1Xps8!b)Iِ+oWn۸mؕnxEU5Myi[7a-Vqt99756%ؒx39Yl9y{ql9z1ّY+oyy9Q(oy*P?WYu6vgXb)]hWq1my':UzcrS ez֝6juYU:s|ᷤyQբp]rysYmٙa_zcڦקUVpzU8dM:WzBB1oe5OZ:G٩o9mv٪gUY[Kqًiyca\ZzZit6z-;sZ{{گZ/{إ=vA+1[MYn׵1[~k7SU:yoٶ9{=8az %{ [WuvC׺ev[o{gKEc֔Ep7y%׻C8;շZ '۰{`u?Z;x6čEĝY=AYW~vcS}WuUI|ɕmEVm97}QǑ|[:܅|ɑ\ɩ|ɇ]+׽H;?]])OJ1`>链O?}=~t_^MqIԙ=my%_O龗ߵ~}/Bz.|1ĉ+FWȞƍ;z2ȑ$K<2ʕ,[| 3̙4kڼaz 8@Y| " (crh5B}j=wsOըt+sZ7ާ#aÂ{ ň3Ō;~ 9ɔGgСE&]SUx+[` r]чM߸s <9Dĕ;=ԫܙYPF*e[ x=~ȪgO!q*${n' X k*ǜu .`>bevyG(Q\U~3͕ U%ڗ`ǡBAsyP\#p FHdFdMH,qwU+6W"wЊ\v%ZWm]xߕ袦"+Aו42Xs6~ h$O^x{.hrr6 i9h^i5ݡ%:gFjifFaG+k l[]qklJl^-MV,J .̆K]fn Ҷ=͊RD-:iarTbM&p/.KH_qoq r"]$r*r s̒EދEL2 t1m7C;'B? ubפ:..uNK v@ F^}}s]7rϝ0و^Mvy'n6Y+kt/8v ,/ĩ \Jj)fV7p㢏6 @¦ס{n6h&+.|J>X&)Lmm )GzyotF $9NK<;΃G(,)EOQ"B$-##U 4JqO]c rѐ,%Ix4)d<+U +YGܡ'"@eLdkL8G4bcŒ rR$%3'97z\cs y2p8 .s>Qv1 Qo˙/+:uFtD1jQr}I Qp)K%Xғʴ)J_AtNOIWӛT:jzӤ..E5*B:Ƙ*uU5hTF:Ru6Ίmll]U) ׸ʵes]2usc*TԿ|-,*X6Bҫa+4fk[-6|r,d?3\*9KAkզvs*fEvPm׼ɦGy,˓[^̭d'[Skhֆf|n ޗvG&KJ\)ֆwEB:kmᢨG5AFwfZ5``޿Ȑ! ΕjE^Ieaec56nbA] $Wj*=\ R^x>Z r]\#0;h<,ȸ:U8I1K vXXֲeT-t55(s%@C,Ze[-֕ɰ?t^zX3H:AkZSqhbX™g?w7 AuTl1Ċ*w&|HXI{"nd*g2W̲]?܏,6jW{ZƶgJ/K=Ôn̬%Ur pܻ7+|&?p{ SW|+a*^?sd"/ߚp$ \~|v"l|9:wit|18ї+]#CO~V>"ShӼz]Q8,mDp6Z:כ*nJl}-y{N'Qc`\}e+^%~8]=91%.~,Or!Ouir_.\40FSCf6s~"iSX@;MD1 pZ>?W/.?ʱ`>1~=ձScF5S]~lH?~`~alQ>e0$/d~)TdB}}{71fl0jg~#6pT9$ցyΦFg q$X3g7F=>KkƂ=R&W87{86K)=nQJEH'sgY(&d7X28ȁRyT!M !1~(Hwő<:Q{e5hn9s;t&=j=%PPk^|K=kA8R2lЗshL6w_xZvwtvlpH\<޵(ȋ5yb%f+h([YwoR$VH8|WݸxtoXHtxZvqVcfwr+Cr1hBȎ;'ibٍ s Ɛ.9_q॑{qvvQP!őaw&XfɈ$xb%yl7r+ 8R?IyUjDIq՘zXlw%[$Dk|ScЃU/!OvNx=cP 9iY;I&afayQ'ckijIqc0aRy2 # W062 4A&ki! ԧ8~p2xR@vQ L0)f_f= e~]90HVԛXid> X)]-e=9[jjAhiGީ䉏)8щP%NjXt'ūt™]WVmpwu !gRLجvђeԥY'J zR]NYY=/ ʭbq9y1SqɯC拥`Gרkg=BEz xq3Gg *J|Gȧ|?"Әa^\\Q}Bxׇ:jԔ@s4>Jᢆ JyA#Ú.%gKGXB#qzH;A)O8O,%A֜y;[#\(I3hExN(hҶnZh1A'!HX#;~$Jtp۸Sq4䷑`+˟@/)K@?d* \;8Joh+һv뻦;]d7MuB $\Ot=&㋉9]fo&K&[yk4au9l~X=Ɖhzl[ı؊˿Mnޚ;tAoZm'/LSܫ%'R.l6ë?[kv vؚ{W} JaD`uwmnrK1 c vi**Cǜ Tʅ ZI'kJسjJ˝ܿ!}6/ƕ9,x'ŬT< jL;ؼsͷE#B)bqlQȲ.͆P(_S=ݪ; O Q*Ta͑f' .fTLԇ`gf{x:d-5L+ Qr[_`-؃m9y׈׭ ؄M؆}T׍4ؐ-ؒ͸l]z}]3ǚ0ك ڸ)ڣ5ڰ٫ ś*ŵNځۢbZl ׏ǭ)C۾m0ԝ4ݸ}ɴݞ-"&lH. =)޶nDȄ==w•_w;|ȉLל߄ߑߟ| Ɇ3~X8cX1:~F~˿Dʦ,NLvXf@~-==lJ~&X>;ZdZU]c48hAcH;p>cz)=[c^D0g^#⌰&YȺ}F=ٯܞkϙM>ބN]؀z#M4胱렎_^Үenᗎض?Mt[trpFԺ\%M(B'E,.m.ӜNO6.Ly>^ D. b~e.\aCCE]`H.JmO?WMY,G˜VTEܱ׸ӭ-?/_n)tS|ѸsC'o_\{ϧ_~ٳ+ݥZϦ9堋$Gc㧻~%[r t 4KB$RTqE[tEt/-~O8]"ȯ#K6t ɣ4s)CDs$nĖ24aK0sd-@3 @P91'KNEsL 'ڎ:zD3-W*qQ$sRJ+R0͜F p)rh$R&I #~(0Ͱ2w r\ETQH{W{U(L5XdeMS8]GDk>;Q`hQ/PqkC[~Taq(;07aw_~YҴ6yExa+%a#>rO8^7<'ydKͤwaDbMfsf eU~6㙃`)dVz}yFb[&hqjBi:Lmeh6.zvm†e[,B֪fo 1pW|qwq#|rr3|s3gpC3bZ{ߘ_vfw}dÿxsfJagG__O$b4(e$`-"z#AlMxezFޖHc'JH(jDDJ!s8DtfW D%<&Q+Ra٬$N D uUҺt m' kKd3 .Qs \~47'niC!ӗX$#uF(U:kHc%-)&MtGO`/>aQ"0F񒳤eT2Eqғ *P)zt=Ÿ!HA$*'i< g\/Xdg;BM9ĦKw&J?:L&M;]JkɅa2.G+ާDpºnfå! %pЫ8?䪚34RC1Bk6$ ɸ'l%1uQ;8),5z1&%9AiDEDF$,(rI}TC247 8r,<:X4@YLd9~U$M F#SDh<5i$?jÕY#5Y۵Tød֜jN#OA茸V$xo눥*\]Kd6PmKմ;lҖ/ 5dϝH0*ю=6͉aOA 4B 2D_FuT9K݃0ٛ~@J(T@{T:zKJSIj *ˊȧS|[ű1L1!Sk4m!NP XIZmI3,%|2lǜp%m13E"+$dEjhV U_?Ҕ>@㼷PlN0XZ!7Q 㨴 ˚yJkX#yMڤ5tϳ559Ӽ? w08K؏T j()z1Է0DO2&tT~%yNYàAK\Y~Ӷ}&Z ΪZ͜*Ϡ-d 0ٕ(?9Z\&Wx#OlU2Źp P8L?q;A Zyو-\U )t:O2O}\ڗzIF(R8ݭ )PnZ;tЌR[(tzMQ;ݾ7Y^?.5׼K^݇%ߡ^#TQ%@}___-+%-qU"R>H.=`v-_"i`+e ~K ^```IES`  tXQʚE-~a@aQ]QaaK U]aLEbR`ⳙYhU]xՎbDbL>7]uK}`}4.VFŇQ# rA*LR#,cWD x0W$dmڢ\U=b=`4N4%̉U҄cC8:L C9%/ݶ!NbNZeIM5֍eF 1‘!.ͣ=,u4ӪT{ZUfF"1UDX $õmgOeWqq&e> Huffz )duJ~gEG 2LS!])=_N=IvYݲ>R^pr]0;P͠]ՈiM,f!^Nni'}NjThead+^r~j0#L4.NTY3N뤮蔤[ -QkQN='ӽyRl¾^`Ǯ~lɾ-^Y êlna+~Q҆bIm"f Nٞ& J-sN̮C(vj3,2md&!bvVi˷9.f}dGeQ] ԴؓN"BMx&fPgcvk$/B檜GnzZ.o}} 7 NلQ9Tcy> BU+Q(<_.o :nOZ̨ D]t@.$>r$ ꊘ;piY+a,WX 36?89ND7_s>Os), @*='dnS<IuFuUAu*ttktW7>GJZuAuu^+!DG\oauRL' nHvcfO5_?{KnV'n/oGco+&T`e:wNwZw`I8Tsى\8~[UGUg@dU9<wg̘JAX1-4U~륍ro0xxFp5a~eN pф ovw~wlxfpZ᧾ ͦ&'tYؓ',Z`"]F) Ez jPz8ĥ?۰]){EJ{YzXv>ѧy{xXws/|Wk >:[77ԓh8]*PEz|7o,gxd@rvy'Ua/}}Zg~Gtf~ ~}Ogl^_?A/wt u^u $p "LPBB(q"Ŋ/b̨q#ǎ? )r$ɒ&OLr%K)s!F(0P*#To(ѢF"Mt)ӦNBԞPVbͪjÖ^ +v,ٲfϢM%Ͷ6qhխv޾~ruv0†#NxKmg͹OAcάY)͞?x4ҦONcR :?](l{TƏ#O,5oJ[yePk߶ۯ ֍u;WÏyדZsmǔ;AO' 2ؠ,}vgG nDQSʆ'lQ߈a3χ9J#CYh,4alW[ 7 z95QzNfWHG0Q&Fs$d.7DՁV〥@f yq `1zYP+CMP!z&Z90)f) b5CiSbPV"zyfoOBv'L %ĺë-d+*l2l[QKؤ.V;e~d);kcb>WH]p;00"JrDIgZ;,ǫSk%+5(Or=EX AǺ)We[C0"! KhBP*\! [BR2aZA{4π+C1_!zqf?"X"j/8B5@'b1kɠ6XLuUb1sE-10baoF$wC jcX *ސYhhS#IC? P8!SB:ϐ鐏%:2A3ɨ{ll1F2#eyqoq#J̤<*t1bF;Gj~xR|-qh˻md.C`I֟5(H=mJE?d'iO V3Y1]KaXp2%[IJ7Q7?xΕ=+:|S+<%@0=H%?BMmf 3IQ”zM(L%a6PI](Wz3JL6G1@YVInBBԂJS.p/]*Ys1."NzjC܂SM2Ur.-+a ;ΕpQF\0涟*|;iEI-,iowXĚG ,KݖXG7;]3:hI ؈Av,-qu2Jp\SwQtC3bYѭwݬ475vU*/{ɗ΁LK7=kB Y~ FP|50W;U|!+l $0;\78)[b3.X*~OlF3)^1jEy 8GrqTf,'Jr ;ǤGt2Zvx\2 #eI5f~"-9yspR9kFGE(֬CϏr0嶍,m_Ca.Јt _;ۡ6EQj;q)Z8w3kEUJ׆ ӍhXkcanRO̱²yXәF68i6o*4u۝hVn{=[_>?4wf;<>??o?_???o??I\&z!B`JI`Zb`jr`z>`` ` ` `  ` :`R` f`"a*2a:֠=@rr`Ra zaav Jjr!Cʂ @ @ @ @xA(abL|,#rb  C b))b*"a(#&A&Cj>`a/4TLD E4Ȃ@\`(=@1B|1$.F`<6c8n# |`"#:^`;@D| B\`!%~8FC9ZcJ#+C;#>Q"eR>* b(TTN(@a=<6.6$/AeeHd@4HMAANN$"0ATfb ;g#* &14B(iiN蝮RlƦR`' >j`2‰c,"h=l(@`A%bA @TV)#l_C@$`B ȤB)vd1؃| c"¦=:v&)gC,e6C,4JRiF`FrTRUv+*͂,"ܥV01=B+Zb!^h02B B(`6z C@6j7è>)B*&"C"槰P(*()k.;n q+e W+g+ *' G61@ױ&c`b*1b ' #r" ! #,+ ;"cr&%%[n$k%72$k)rirz)!q,kZ=O0-r..r//s0 0s11#s2+23s3;3Cs4K4Ss5[5cs6k6ss5+<N(@99s::s;;s<>s??t@ @tAA#tB+@#8@@DKDStE[EctFkFstG{GtHHtIItJJtKKtLLtM۴M?tNNtOOuP PuQQ#uR+R3uS;SCuTKTSuU[UcuVkVsuW{uN;PKnfPKfUIOEBPS/query.htm Querying with Oracle Text

4 Querying with Oracle Text

This chapter describes Oracle Text querying and associated features. The following topics are covered:

4.1 Overview of Queries

The basic Oracle Text query takes a query expression, usually a word with or without operators, as input. Oracle Text returns all documents (previously indexed) that satisfy the expression along with a relevance score for each document. Scores can be used to order the documents in the result set.

To issue an Oracle Text query, use the SQL SELECT statement. Depending on the type of index you create, you use either the CONTAINS or CATSEARCH operator in the WHERE clause. You can use these operators programatically wherever you can use the SELECT statement, such as in PL/SQL cursors.

Use the MATCHES operator to classify documents with a CTXRULE index.

4.1.1 Querying with CONTAINS

When you create an index of type CONTEXT, you must use the CONTAINS operator to issue your query. An index of type CONTEXT is suited for indexing collections of large coherent documents.

With the CONTAINS operator, you can use a number of operators to define your search criteria. These operators enable you to issue logical, proximity, fuzzy, stemming, thesaurus and wildcard searches. With a correctly configured index, you can also issue section searches on documents that have internal structure such as HTML and XML.

With CONTAINS, you can also use the ABOUT operator to search on document themes.

4.1.1.1 CONTAINS SQL Example

In the SELECT statement, specify the query in the WHERE clause with the CONTAINS operator. Also specify the SCORE operator to return the score of each hit in the hitlist. The following example shows how to issue a query:

SELECT SCORE(1), title from news WHERE CONTAINS(text, 'oracle', 1) > 0;

You can order the results from the highest scoring documents to the lowest scoring documents using the ORDER BY clause as follows:

SELECT SCORE(1), title from news 
           WHERE CONTAINS(text, 'oracle', 1) > 0
           ORDER BY SCORE(1) DESC;

The CONTAINS operator must always be followed by the > 0 syntax, which specifies that the score value returned by the CONTAINS operator must be greater than zero for the row to be returned.

When the SCORE operator is called in the SELECT statement, the CONTAINS operator must reference the score label value in the third parameter as in the previous example.

4.1.1.2 CONTAINS PL/SQL Example

In a PL/SQL application, you can use a cursor to fetch the results of the query.

The following example issues a CONTAINS query against the NEWS table to find all articles that contain the word oracle. The titles and scores of the first ten hits are output.

declare 
  rowno number := 0; 
begin 
  for c1 in (SELECT SCORE(1) score, title FROM news 
              WHERE CONTAINS(text, 'oracle', 1) > 0
              ORDER BY SCORE(1) DESC) 
  loop 
    rowno := rowno + 1; 
    dbms_output.put_line(c1.title||': '||c1.score); 
    exit when rowno = 10; 
  end loop; 
end; 

This example uses a cursor FOR loop to retrieve the first ten hits. An alias score is declared for the return value of the SCORE operator. The score and title are output to standard out using cursor dot notation.

4.1.1.3 Structured Query with CONTAINS

A structured query, also called a mixed query, is a query that has a CONTAINS predicate to query a text column and has another predicate to query a structured data column.

To issue a structured query, you specify the structured clause in the WHERE condition of the SELECT statement.

For example, the following SELECT statement returns all articles that contain the word oracle that were written on or after October 1, 1997:

SELECT SCORE(1), title, issue_date from news 
           WHERE CONTAINS(text, 'oracle', 1) > 0
           AND issue_date >= ('01-OCT-97') 
           ORDER BY SCORE(1) DESC;

Note:

Even though you can issue structured queries with CONTAINS, consider creating a ctxcat index and issuing the query with CATSEARCH, which offers better structured query performance.

4.1.2 Querying with CATSEARCH

When you create an index of type CTXCAT, you must use the CATSEARCH operator to issue your query. An index of type CTXCAT is best suited when your application stores short text fragments in the text column and other associated information in related columns.

For example, an application serving an online auction site might have a table that stores item description in a text column and associated information such as date and price in other columns. With a CTXCAT index, you can create b-tree indexes on one or more of these columns. The result is that when you use the CATSEARCH operator to search a CTXCAT index, query performance is generally faster for mixed queries.

The operators available for CATSEARCH queries are limited to logical operations such as AND or OR. The operators you can use to define your structured criteria are greater than, less than, equality, BETWEEN, and IN.

4.1.2.1 CATSEARCH SQL Query

A typical query with CATSEARCH might include a structured clause as follows to find all rows that contain the word camera ordered by the bid_close date:

SELECT FROM auction WHERE CATSEARCH(title, 'camera', 'order by bid_close desc')> 0;

The type of structured query you can issue depends on how you create your sub-indexes.

As shown in the previous example, you specify the structured part of a CATSEARCH query with the third structured_query parameter. The columns you name in the structured expression must have a corresponding sub-index.

For example, assuming that category_id and bid_close have a sub-index in the ctxcat index for the AUCTION table, you can issue the following structured query:

SELECT FROM auction WHERE CATSEARCH(title, 'camera', 'category_id=99 order by bid_close desc')> 0;

4.1.2.2 CATSEARCH Example

The following example shows a field section search against a CTXCAT index using CONTEXT grammar by means of a query template in a CATSEARCH query.

-- Create and populate table
create table BOOKS (ID number, INFO varchar2(200), PUBDATE DATE);
 
insert into BOOKS values(1, '<author>NOAM CHOMSKY</author><subject>CIVIL
   RIGHTS</subject><language>ENGLISH</language><publisher>MIT
   PRESS</publisher>', '01-NOV-2003');
 
insert into BOOKS values(2, '<author>NICANOR PARRA</author><subject>POEMS 
  AND ANTIPOEMS</subject><language>SPANISH</language>
  <publisher>VASQUEZ</publisher>', '01-JAN-2001');
 
insert into BOOKS values(1, '<author>LUC SANTE</author><subject>XML
  DATABASE</subject><language>FRENCH</language><publisher>FREE
  PRESS</publisher>', '15-MAY-2002');
 
commit;
 
-- Create index set and section group
exec ctx_ddl.create_index_set('BOOK_INDEX_SET');
exec ctx_ddl.add_index('BOOKSET','PUBDATE');
 
exec ctx_ddl.create_section_group('BOOK_SECTION_GROUP',
      'BASIC_SECTION_GROUP');
exec ctx_ddl.add_field_section('BOOK_SECTION_GROUP','AUTHOR','AUTHOR');
exec ctx_ddl.add_field_section('BOOK_SECTION_GROUP','SUBJECT','SUBJECT');
exec ctx_ddl.add_field_section('BOOK_SECTION_GROUP','LANGUAGE','LANGUAGE');
exec ctx_ddl.add_field_section('BOOK_SECTION_GROUP','PUBLISHER','PUBLISHER'); 
 
-- Create index
create index books_index on books(info) indextype is ctxsys.ctxcat
  parameters('index set book_index_set section group book_section_group');
 
-- Use the index
-- Note that: even though CTXCAT index can be created with field sections, it
-- cannot be accessed using CTXCAT grammar (default for CATSEARCH).
-- We need to use query template with CONTEXT grammar to access field 
-- sections with CATSEARCH
 
select  id, info from books
where catsearch(info,
'<query>
      <textquery grammar="context">
              NOAM within author and english within language
      </textquery>
 </query>',
'order by pubdate')>0; 

4.1.3 Querying with MATCHES

When you create an index of type CTXRULE, you must use the MATCHES operator to classify your documents. The CTXRULE index is essentially an index on the set of queries that define your classifications.

For example, if you have an incoming stream of documents that need to be routed according to content, you can create a set of queries that define your categories. You create the queries as rows in a text column. It is possible to create this type of table with the CTX_CLS.TRAIN procedure.

You then index the table to create a CTXRULE index. When documents arrive, you use the MATCHES operator to classify each document

4.1.3.1 MATCHES SQL Query

A MATCHES query finds all rows in a query table that match a given document. Assuming that a table querytable has a CTXRULE index associated with it, you can issue the following query:

SELECT classification FROM querytable WHERE MATCHES(query_string,:doc_text) > 0;

Note the bind variable :doc_text which contains the document CLOB to be classified.

Putting it all together for a simple example:

   create table queries (
      query_id      number,
      query_string  varchar2(80)
    );

    insert into queries values (1, 'oracle');
    insert into queries values (2, 'larry or ellison');
    insert into queries values (3, 'oracle and text');
    insert into queries values (4, 'market share');

    create index queryx on queries(query_string)
      indextype is ctxsys.ctxrule;

    select query_id from queries
     where matches(query_string, 
                   'Oracle announced that its market share in databases 
                    increased over the last year.')>0

This query will return queries 1 (the word oracle appears in the document) and 4 (the phrase market share appears in the document), but not 2 (neither the word larry nor the word ellison appears, and not 3 (there is no text in the document, so it does not match the query).

Note that in this example, the document was passed in as a string for simplicity. Typically, your document would be passed in a bind variable.

The document text used in a matches query can be VARCHAR2 or CLOB. It does not accept BLOB input, so you cannot match filtered documents directly. Instead, you must filter the binary content to CLOB using the AUTO_FILTER filter. For the following example, we make two assumptions: one, that the document data is in bind variable :doc_blob; and, two, that we have already defined a policy, my_policy, that CTX_DOC.POLICY_FILTER can use:

  declare
    doc_text clob;
  begin
    -- create a temporary CLOB to hold the document text
    doc_text := dbms_lob.createtemporary(doc_text, TRUE, DBMS_LOB.SESSION);
 
    -- create a simple policy for this example
    ctx_ddl.create_preference(preference_name => 'fast_filter',
                        object_name       => 'AUTO_FILTER');
    ctx_ddl.set_attribute(preference_name => 'fast_filter',
                        attribute_name    => 'OUTPUT_FORMATTING',
                        attribute_value   => 'FALSE');
    ctx_ddl.create_policy(policy_name     => 'my_policy',
                        filter            => 'fast_filter);

    -- call ctx_doc.policy_filter to filter the BLOB to CLOB data
    ctx_doc.policy_filter('my_policy', :doc_blob, doc_text, FALSE);

    -- now do the matches query using the CLOB version
    for c1 in (select * from queries where matches(query_string, doc_text)>0)
    loop
      -- do what you need to do here
    end loop;

    dbms_lob.freetemporary(doc_text);
  end;

The procedure CTX_DOC.POLICY_FILTER filters the BLOB into the CLOB data, since you need to get the text into a CLOB to issue a MATCHES query. It takes as one argument the name of a policy you have already created with CTX_DDL.CREATE_POLICY. (See the Oracle Text Reference for information on CTX_DOC.POLICY_FILTER.)

If your file is text in the database character set, you can create a BFILE and load it to a CLOB using the function DBMS_LOB.LOADFROMFILE, or you can use UTL_FILE to read the file into a temp CLOB locator.

If your file needs AUTO_FILTER filtering, you can load the file into a BLOB instead, and call CTX_DOC.POLICY_FILTER as previously shown.


See Also:

Chapter 6, "Classifying Documents in Oracle Text" for more extended classification examples

4.1.3.2 MATCHES PL/SQL Example

The following example assumes that the table of queries profiles has a CTXRULE index associated with it. It also assumes that the table newsfeed contains a set of news articles to be categorized.

This example loops through the newsfeed table, categorizing each article using the MATCHES operator. The results are stored in the results table.

PROMPT  Populate the category table based on newsfeed articles
PROMPT
set serveroutput on;
declare
  mypk   number;
  mytitle varchar2(1000);
  myarticles clob;
  mycategory varchar2(100);
  cursor doccur is select pk,title,articles from newsfeed;
  cursor mycur is  select category from profiles where matches(rule, myarticles)>0;  
  cursor rescur is select category, pk, title from results order by category,pk;

begin
  dbms_output.enable(1000000);
  open doccur;
  loop
    fetch doccur into mypk, mytitle, myarticles;
    exit when doccur%notfound;
    open mycur;
    loop
      fetch mycur into mycategory;
      exit when mycur%notfound;
      insert into results values(mycategory, mypk, mytitle);
    end loop;
    close mycur;
    commit;
  end loop;
  close doccur;
  commit;

end;
/

The following example displays the categorized articles by category.

PROMPT  display the list of articles for every category
PROMPT
set serveroutput on;

declare
  mypk   number;
  mytitle varchar2(1000);
  mycategory varchar2(100);
  cursor catcur is select category from profiles order by category;
  cursor rescur is select pk, title from results where category=mycategory order by pk;

begin
  dbms_output.enable(1000000);
  open catcur;
  loop
    fetch catcur into mycategory;
    exit when catcur%notfound;
    dbms_output.put_line('********** CATEGORY: '||mycategory||' *************');
open rescur;
    loop
      fetch rescur into mypk, mytitle;
      exit when rescur%notfound;
dbms_output.put_line('**  ('||mypk||'). '||mytitle);
    end loop;
    close rescur;
    dbms_output.put_line('**');
dbms_output.put_line('*******************************************************');
  end loop;
  close catcur; 
end;
/

See Also:

Chapter 6, "Classifying Documents in Oracle Text" for more extended classification examples

4.1.4 Word and Phrase Queries

A word query is a query on a word or phrase. For example, to find all the rows in your text table that contain the word dog, you issue a query specifying dog as your query term.

You can issue word queries with both CONTAINS and CATSEARCH SQL operators. However, phrase queries are interpreted differently.

4.1.4.1 CONTAINS Phrase Queries

If multiple words are contained in a query expression, separated only by blank spaces (no operators), the string of words is considered a phrase and Oracle Text searches for the entire string during a query.

For example, to find all documents that contain the phrase international law, you issue your query with the phrase international law.

4.1.4.2 CATSEARCH Phrase Queries

With the CATSEARCH operator, the AND operator is inserted between words in phrases. For example, a query such as international law is interpreted as international AND law.

4.1.5 Querying Stopwords

Stopwords are words for which Oracle Text does not create an index entry. They are usually common words in your language that are unlikely to be searched on by themselves.

Oracle Text includes a default list of stopwords for your language. This list is called a stoplist. For example, in English, the words this and that are defined as stopwords in the default stoplist. You can modify the default stoplist or create new stoplists with the CTX_DDL package. You can also add stopwords after indexing with the ALTER INDEX statement.

You cannot query on a stopword by itself or on a phrase composed of only stopwords. For example, a query on the word this returns no hits when this is defined as a stopword.

You can query on phrases that contain stopwords as well as non-stopwords such as this boy talks to that girl. This is possible because the Oracle Text index records the position of stopwords even though it does not create an index entry for them.

When you include a stopword within your query phrase, the stopword matches any word. For example, the query:

'Jack was big'

matches phrases such as Jack is big and Jack grew big assuming was is a stopword. Note that this query matches grew, even though it is not a stopword.

4.1.6 ABOUT Queries and Themes

An ABOUT query is a query on a document theme. A document theme is a concept that is sufficiently developed in the text. For example, an ABOUT query on US politics might return documents containing information about US presidential elections and US foreign policy. Documents need not contain the exact phrase US politics to be returned.

During indexing, document themes are derived from the knowledge base, which is a hierarchical list of categories and concepts that represents a view of the world. Some examples of themes in the knowledge catalog are concrete concepts such as jazz music, football, or Nelson Mandela. Themes can also be abstract concepts such as happiness or honesty.

During indexing, the system can also identify and index document themes that are sufficiently developed in the document, but do not exist in the knowledge base.

You can augment the knowledge base to define concepts and terms specific to your industry or query application. When you do so, ABOUT queries are more precise for the added concepts.

ABOUT queries perform best when you create a theme component in your index. Theme components are created by default for English and French.

4.1.6.1 Querying Stopthemes

Oracle Text enables you to query on themes with the ABOUT operator. A stoptheme is a theme that is not to be indexed. You can add and remove stopthemes with the CTX_DLL package. You can add stopthemes after indexing with the ALTER INDEX statement.

4.1.7 Query Expressions

A query expression is everything in between the single quotes in the text_query argument of the CONTAINS or CATSEARCH operator. What you can include in a query expression in a CONTAINS query is different from what you can include in a CATSEARCH operator.

4.1.7.1 CONTAINS Operators

A CONTAINS query expression can contain query operators that enable logical, proximity, thesaural, fuzzy, and wildcard searching. Querying with stored expressions is also possible. Within the query expression, you can use grouping characters to alter operator precedence. This book refers to these operators as the CONTEXT grammar.

With CONTAINS, you can also use the ABOUT query to query document themes.


See Also:

"The CONTEXT Grammar" in this chapter

4.1.7.2 CATSEARCH Operator

With the CATSEARCH operator, you specify your query expression with the text_query argument and your optional structured criteria with the structured_query argument. The text_query argument enables you to query words and phrases. You can use logical operations, such as logical and, or, and not. This book refers to these operators as the CTXCAT grammar.

If you want to use the much richer set of operators supported by the CONTEXT grammar, you can use the query template feature with CATSEARCH.

With structured_query argument, you specify your structured criteria. You can use the following SQL operations:

  • =

  • <=

  • >=

  • >

  • <

  • IN

  • BETWEEN

You can also use ORDER BY clause to order your output.


See Also:

"The CTXCAT Grammar" in this chapter

4.1.7.3 MATCHES Operator

Unlike CONTAINS and CATSEARCH, MATCHES does not take a query expression as input.

Instead, the MATCHES operator takes a document as input and finds all rows in a query (rule) table that match it. As such, you can use MATCHES to classify documents according to the rules they match.


See Also:

"Querying with MATCHES" in this chapter

4.1.8 Case-Sensitive Searching

Oracle Text supports case-sensitivity for word and ABOUT queries.

4.1.8.1 Word Queries

Word queries are case-insensitive by default. This means that a query on the term dog returns the rows in your text table that contain the word dog, Dog, or DOG.

You can enable case-sensitive searching by enabling the mixed_case attribute in your BASIC_LEXER index preference. With a case-sensitive index, your queries must be issued in exact case. This means that a query on Dog matches only documents with Dog. Documents with dog or DOG are not returned as hits.

4.1.8.1.1 Stopwords and Case-Sensitivity

If you have case-sensitivity enabled for word queries and you issue a query on a phrase containing stopwords and non-stopwords, you must specify the correct case for the stopwords. For example, a query on the dog does not return text that contains The Dog, assuming that the is a stopword.

4.1.8.2 ABOUT Queries

ABOUT queries give the best results when your query is formulated with proper case. This is because the normalization of your query is based on the knowledge catalog which is case-sensitive. Attention to case is required especially for words that have different meanings depending on case, such as turkey the bird and Turkey the country.

However, you need not enter your query in exact case to obtain relevant results from an ABOUT query. The system does its best to interpret your query. For example, if you enter a query of ORACLE and the system does not find this concept in the knowledge catalog, the system might use Oracle as a related concept for look-up.

4.1.9 Query Feedback

Feedback information provides broader term, narrower term, and related term information for a specified query with a context index. You obtain this information programatically with the CTX_QUERY.HFEEDBACK procedure.

Broader term, narrower term, and related term information is useful for suggesting other query terms to the user in your query application.

The feedback information returned is obtained from the knowledge base and contains only those terms that are also in the index. This increases the chances that terms returned from HFEEDBACK produce hits over the currently indexed document set.


See Also:

Oracle Text Reference for more information about using CTX_QUERY.HFEEDBACK

4.1.10 Query Explain Plan

Explain plan information provides a graphical representation of the parse tree for a CONTAINS query expression. You can obtain this information programatically with the CTX_QUERY.EXPLAIN procedure.

Explain plan information tells you how a query is expanded and parsed without having the system execute the query. Obtaining explain information is useful for knowing the expansion for a particular stem, wildcard, thesaurus, fuzzy, soundex, or ABOUT query. Parse trees also show the following information:

  • Order of execution

  • ABOUT query normalization

  • Query expression optimization

  • Stop-word transformations

  • Breakdown of composite-word tokens for supported languages


    See Also:

    Oracle Text Reference for more information about using CTX_QUERY.EXPLAIN

4.1.11 Using a Thesaurus in Queries

Oracle Text enables you to define a thesaurus for your query application.

Defining a custom thesaurus enables you to process queries more intelligently. Since users of your application might not know which words represent a topic, you can define synonyms or narrower terms for likely query terms. You can use the thesaurus operators to expand your query to include thesaurus terms.

4.1.12 Document Section Searching

Section searching enables you to narrow text queries down to sections within documents.

Section searching can be implemented when your documents have internal structure, such as HTML and XML documents. For example, you can define a section for the <H1> tag that enables you to query within this section using the WITHIN operator.

You can set the system to automatically create sections from XML documents.

You can also define attribute sections to search attribute text in XML documents.


Note:

Section searching is supported for only word queries with a CONTEXT index.

4.1.13 Using Query Templating

Query templates are an alternative to the existing query languages. Rather than passing a query string to CONTAINS or CATSEARCH, you pass a structured document which contains the query string in a tagged element. Within this document, you can enable additional query features:

4.1.14 Query Rewrite

Query applications sometimes parse end user queries, interpreting a query string in one or more ways using different operator combinations. For example, if a user enters a query of kukui nut, your application might issue the queries {kukui nut} and {kukui or nut} in order to increase recall.

The query rewrite feature enables you to submit a single query that expands the original query into the rewritten versions. The results are returned with no duplication.

You specify your rewrite sequences with the query template feature. The rewritten versions of the query are executed efficiently with a single call to CONTAINS or CATSEARCH.

The following template defines a query rewrite sequence. The query of {kukui nut} is rewritten as follows:

{kukui} {nut}

{kukui} ; {nut}

{kukui} AND {nut}

{kukui} ACCUM {nut}

The query rewrite template for these transformations is as follows:

select id from docs where CONTAINS (text,
 '<query>
   <textquery lang="ENGLISH" grammar="CONTEXT"> kukui nut
     <progression>
       <seq><rewrite>transform((TOKENS, "{", "}", " "))</rewrite></seq>
       <seq><rewrite>transform((TOKENS, "{", "}", " ; "))</rewrite></seq>
       <seq><rewrite>transform((TOKENS, "{", "}", "AND"))</rewrite></seq>
       <seq><rewrite>transform((TOKENS, "{", "}", "ACCUM"))</rewrite></seq>
     </progression>
   </textquery>
  <score datatype="INTEGER" algorithm="COUNT"/>
</query>')>0;

4.1.15 Query Relaxation

Query relaxation enables your application to execute the most restrictive version of a query first, progressively relaxing the query until the required number of hits are obtained.

For example, your application might search first on black pen and then the query is relaxed to black NEAR pen to obtain more hits.

The following query template defines a query relaxation sequence. The query of black pen is issued in sequence as

{black} {pen}

{black} NEAR {pen}

{black} AND {pen}

{black} ACCUM {pen}

The query rewrite template for these transformations is as follows:

select id from docs where CONTAINS (text,
 '<query>
   <textquery lang="ENGLISH" grammar="CONTEXT">
     <progression>
       <seq>{black} {pen}</seq>
       <seq>{black} NEAR {pen}</seq>
       <seq>{black} AND {pen}</seq>
       <seq>{black} ACCUM {pen}</seq>
     </progression>
   </textquery>
   <score datatype="INTEGER" algorithm="COUNT"/>
</query>')>0;

Query hits are returned in this sequence with no duplication as long as the application needs results.

Query relaxation is most effective when your application needs the top n hits to a query, which you can obtain with the FIRST_ROWS hint or in a PL/SQL cursor.

Using query templating to relax a query as such is more efficient than re-executing a query.

4.1.16 Query Language

When you use the multi-lexer to index a column containing documents in different languages, you can specify which language lexer to use during querying. You do so using the lang parameter in the query template.

With the MULTI_LEXER in previous releases, you could only change the query language by altering the session language before executing the query.

select id from docs where CONTAINS (text,
'<query><textquery lang="french">bon soir</textquery></query>')>0;

4.1.17 Alternative Scoring

You can use query templating to specify alternative scoring algorithms to use, other than the default.

select id from docs where CONTAINS (text,
'<query>        
 <textquery grammar="CONTEXT" lang="english"> mustang  </textquery>     
 <score datatype="float" algorithm="DEFAULT"/>     
</query>')>0

4.1.18 Alternative Grammar

Query templating enables you to use the CONTEXT grammar with CATSEARCH queries and vice-versa.

select id from docs where CONTAINS (text,
'<query> 
  <textquery grammar="CTXCAT">San Diego</textquery>
  <score datatype="integer"/>
</query>')>0;

4.1.19 Query Analysis

Oracle Text enables you to create a log of queries and to analyze the queries it contains. For example, suppose you have an application that searches a database of large animals, and your analysis of its queries shows that users are continually searching for the word mouse; this analysis might induce you to rewrite your application so that a search for mouse redirects the user to a database of small animals instead of simply returning an unsuccessful search.

With query analysis, you can find out

  • Which queries were made

  • Which queries were successful

  • Which queries were unsuccessful

  • How many times each query was made

You can combine these factors in various ways, such as determining the 50 most frequent unsuccessful queries made by your application.

You start query logging with CTX_OUTPUT.START_QUERY_LOG. The query log will contain all queries made to all context indexes that the program is using until a CTX_OUTPUT.END_QUERY_LOG procedure is issued. Use CTX_REPORT.QUERY_LOG_SUMMARY to get a report of queries made.


See Also:

Oracle Text Reference for syntax and examples for these procedures

4.1.20 Other Query Features

In your query application, you can use other query features such as proximity searching. Table 4-1 lists some of these features.

Table 4-1 Other Oracle Text Query Features

Feature Description Implement With
Case Sensitive Searching Enables you to search on words or phrases exactly as entered in the query. For example, a search on Roman returns documents that contain Roman and not roman. BASIC_LEXER when you create the index
Base Letter Conversion Queries words with or without diacritical marks such as tildes, accents, and umlauts. For example, with a Spanish base-letter index, a query of energía matches documents containing both energía and energia. BASIC_LEXER when you create the index
Word Decompounding

(German and Dutch)

Enables searching on words that contain specified term as sub-composite. BASIC_LEXER when you create the index
Alternate Spelling

(German, Dutch, and Swedish)

Searches on alternate spellings of words BASIC_LEXER when you create the index
Proximity Searching Searches for words near one another NEAR operator when you issue the query
Stemming Searches for words with same root as specified term $ operator at when you issue the query
Fuzzy Searching Searches for words that have similar spelling to specified term FUZZY operator when you issue the query
Query Explain Plan Generates query parse information CTX_QUERY.EXPLAIN PL/SQL procedure after you index
Hierarchical Query Feedback Generates broader term, narrower term and related term information for a query CTX_QUERY.HFEEDBACK PL/SQL procedure after you index.
Browse index Browses the words around a seed word in the index CTX_QUERY.BROWSE_WORDS PL/SQL after you index.
Count hits Counts the number of hits in a query CTX_QUERY.COUNT_HITS PL/SQL procedure after you index.
Stored Query Expression Stores the text of a query expression for later reuse in another query. CTX_QUERY.STORE_SQE PL/SQL procedure after you index.
Thesaural Queries Uses a thesaurus to expand queries. Thesaurus operators such as SYN and BT as well as the ABOUT operator.

Use CTX_THES package to maintain thesaurus.


4.2 The CONTEXT Grammar

The CONTEXT grammar is the default grammar for CONTAINS. With this grammar, you can add complexity to your searches with operators. You use the query operators in your query expression. For example, the logical operator AND enables you to search for all documents that contain two different words. The ABOUT operator enables you to search on concepts.

You can also use the WITHIN operator for section searching, the NEAR operator for proximity searches, the stem, fuzzy, and thesaural operators for expanding a query expression.

With CONTAINS, you can also use the CTXCAT grammar with the query template feature.

The following sections describe some of the Oracle Text operators.


See Also:

Oracle Text Reference for complete information about using query operators

4.2.1 ABOUT Query

Use the ABOUT operator in English or French to query on a concept. The query string is usually a concept or theme that represents the idea to be searched on. Oracle Text returns the documents that contain the theme.

Word information and theme information are combined into a single index. To issue a theme query, your index must have a theme component which is created by default in English and French.

You issue a theme query using the ABOUT operator inside the query expression. For example, to retrieve all documents that are about politics, write your query as follows:

SELECT SCORE(1), title FROM news 
           WHERE CONTAINS(text, 'about(politics)', 1) > 0
           ORDER BY SCORE(1) DESC;

See Also:

Oracle Text Reference for more information about using the ABOUT operator

4.2.2 Logical Operators

Logical operators such as AND or OR allow you to limit your search criteria in a number of ways. Table 4-2 describes some of these operators.

Table 4-2 Logical Operators

Operator Symbol Description Example Expression
AND &
Use the AND operator to search for documents that contain at least one occurrence of each of the query terms.

Score returned is the minimum of the operands.

'cats AND dogs'
'cats & dogs'
OR |
Use the OR operator to search for documents that contain at least one occurrence of any of the query terms.

Score returned is the maximum of the operands.

'cats | dogs'
'cats OR dogs'

NOT ~ Use the NOT operator to search for documents that contain one query term and not another. To obtain the documents that contain the term animals but not dogs, use the foZallowing expression:
'animals ~ dogs'
ACCUM , Use the ACCUM operator to search for documents that contain at least one occurrence of any of the query terms. The accumulate operator ranks documents according to the total term weight of a document. The following query returns all documents that contain the terms dogs, cats and puppies giving the highest scores to the documents that contain all three terms:
'dogs, cats, puppies'
EQUIV =
Use the EQUIV operator to specify an acceptable substitution for a word in a query. The following example returns all documents that contain either the phrase alsatians are big dogs or German shepherds are big dogs:
'German shepherds=alsatians are big dogs'

4.2.3 Section Searching

Section searching is useful for when your document set is HTML or XML. For HTML, you can define sections using embedded tags and then use the WITHIN operator to search these sections.

For XML, you can have the system automatically create sections for you. You can query with the WITHIN operator or with the INPATH operator for path searching.

4.2.4 Proximity Queries with NEAR and NEAR_ACCUM Operators

You can search for terms that are near to one another in a document with the NEAR operator.

For example, to find all documents where dog is within 6 words of cat, issue the following query:

'near((dog, cat), 6)'

The NEAR_ACCUM operator combines the functionality of the NEAR operator with that of the ACCUM operator. Like NEAR, it returns terms that are within a given proximity of each other; however, if one term is not found, it ranks documents according to the frequency of the occurrence of the term that is found.


See Also:

Oracle Text Reference for more information about using the NEAR and NEAR_ACCUM operators

4.2.5 Fuzzy, Stem, Soundex, Wildcard and Thesaurus Expansion Operators

You can expand your queries into longer word lists with operators such as wildcard, fuzzy, stem, soundex, and thesaurus.

4.2.6 Using CTXCAT Grammar

You can use the CTXCAT grammar in CONTAINS queries. To do so, use a query template specification in the text_query parameter of CONTAINS.

You might take advantage of the CTXCAT grammar when you need an alternative and simpler query grammar.


See Also:

Oracle Text Reference for more information about using these operators

4.2.7 Stored Query Expressions

You can use the procedure CTX_QUERY.STORE_SQE to store the definition of a query without storing any results. Referencing the query with the CONTAINS SQL operator references the definition of the query. In this way, stored query expressions make it easy for defining long or frequently used query expressions.

Stored query expressions are not attached to an index. When you call CTX_QUERY.STORE_SQE, you specify only the name of the stored query expression and the query expression.

The query definitions are stored in the Text data dictionary. Any user can reference a stored query expression.


See Also:

Oracle Text Reference to learn more about the syntax of CTX_QUERY.STORE_SQE

4.2.7.1 Defining a Stored Query Expression

You define and use a stored query expression as follows:

  1. Call CTX_QUERY.STORE_SQE to store the queries for the text column. With STORE_SQE, you specify a name for the stored query expression and a query expression.

  2. Call the stored query expression in a query expression using the SQE operator. Oracle Text returns the results of the stored query expression in the same way it returns the results of a regular query. The query is evaluated at the time the stored query expression is called.

    You can delete a stored query expression using REMOVE_SQE.

4.2.7.2 SQE Example

The following example creates a stored query expression called disaster that searches for documents containing the words tornado, hurricane, or earthquake:

begin
ctx_query.store_sqe('disaster', 'tornado | hurricane | earthquake');
end;

To execute this query in an expression, write your query as follows:

SELECT SCORE(1), title from news 
   WHERE CONTAINS(text, 'SQE(disaster)', 1) > 0
   ORDER BY SCORE(1);

See Also:

Oracle Text Reference to learn more about the syntax of CTX_QUERY.STORE_SQE

4.2.8 Calling PL/SQL Functions in CONTAINS

You can call user-defined functions directly in the CONTAINS clause as long as the function satisfies the requirements for being named in a SQL statement. The caller must also have EXECUTE privilege on the function.

For example, assuming the function french returns the French equivalent of an English word, you can search on the French word for cat by writing:

SELECT SCORE(1), title from news 
   WHERE CONTAINS(text, french('cat'), 1) > 0
   ORDER BY SCORE(1);

See Also:

Oracle Database SQL Reference for more information about creating user functions and calling user functions from SQL

4.2.9 Optimizing for Response Time

A CONTAINS query optimized for response time provides a fast solution for when you need the highest scoring documents from a hitlist.

The following example returns the first twenty hits to standard out. This example uses the FIRST_ROWS(n) hint and a cursor.

declare 
cursor c is  
  select /*+ FIRST_ROWS(20) */ title, score(1) score 
    from news where contains(txt_col, 'dog', 1) > 0 order by score(1) desc; 
begin 
  for c1 in c 
  loop 
    dbms_output.put_line(c1.score||':'||substr(c1.title,1,50)); 
    exit when c%rowcount = 21; 
  end loop; 
end; 
/

4.2.9.1 Other Factors that Influence Query Response Time

Besides using query hints, there are other factors that can influence query response time such as:

4.2.10 Counting Hits

To count the number of hits returned from a query with only a CONTAINS predicate, you can use CTX_QUERY.COUNT_HITS in PL/SQL or COUNT(*) in a SQL SELECT statement.

If you want a rough hit count, you can use CTX_QUERY.COUNT_HITS in estimate mode (EXACT parameter set to FALSE). With respect to response time, this is the fastest count you can get.

To count the number of hits returned from a query that contains a structured predicate, use the COUNT(*) function in a SELECT statement.

4.2.10.1 SQL Count Hits Example

To find the number of documents that contain the word oracle, issue the query with the SQL COUNT function as follows:

SELECT count(*) FROM news WHERE CONTAINS(text, 'oracle', 1) > 0;

4.2.10.2 Counting Hits with a Structured Predicate

To find the number of documents returned by a query with a structured predicate, use COUNT(*) as follows:

SELECT COUNT(*) FROM news WHERE CONTAINS(text, 'oracle', 1) > 0 and author = 'jones';

4.2.10.3 PL/SQL Count Hits Example

To find the number of documents that contain the word oracle, use COUNT_HITS as follows:

declare count number;
begin
  count := ctx_query.count_hits(index_name => my_index, text_query => 'oracle', exact => TRUE);
 dbms_output.put_line('Number of docs with oracle:');
 dbms_output.put_line(count);
end;

See Also:

Oracle Text Reference to learn more about the syntax of CTX_QUERY.COUNT_HITS

4.3 The CTXCAT Grammar

The CTXCAT grammar is the default grammar for CATSEARCH. This grammar supports logical operations such as AND and OR as well as phrase queries.

The CATSEARCH query operators have the following syntax:

Table 4-3 CATSEARCH Query Operator Syntax

Operation Syntax Description of Operation
Logical AND a b c Returns rows that contain a, b and c.
Logical OR a | b | c Returns rows that contain a, b, or c.
Logical NOT a - b Returns rows that contain a and not b.
hyphen with no space a-b Hyphen treated as a regular character.

For example, if the hyphen is defined as skipjoin, words such as web-site treated as the single query term website.

Likewise, if the hyphen is defined as a printjoin, words such as web-site treated as web site with the space in the CTXCAT query language.

" " "a b c" Returns rows that contain the phrase "a b c".

For example, entering "Sony CD Player" means return all rows that contain this sequence of words.

( ) (A B) | C Parentheses group operations. This query is equivalent to the CONTAINS query (A &B) | C.

4.3.1 Using CONTEXT Grammar with CATSEARCH

In addition, you can use the CONTEXT grammar in CATSEARCH queries. To do so, use a query template specification in the text_query parameter.

You might use the CONTAINS grammar as such when you need to issue proximity, thesaurus, or ABOUT queries with a CTXCAT index.


See Also:

Oracle Text Reference for more information about using these operators

PKQZZPKfUIOEBPS/title.htme Oracle Text Application Developer's Guide, 10g Release 2 (10.2)

Oracle® Text

Application Developer's Guide

10g Release 2 (10.2)

B14217-01

June 2005


Oracle Text Application Developer's Guide, 10g Release 2 (10.2)

B14217-01

Copyright © 2004, 2005, Oracle. All rights reserved.

The Programs (which include both the software and documentation) contain proprietary information; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited.

The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. This document is not warranted to be error-free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose.

If the Programs are delivered to the United States Government or anyone licensing or using the Programs on behalf of the United States Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the Programs, including documentation and technical data, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement, and, to the extent applicable, the additional rights set forth in FAR 52.227-19, Commercial Computer Software—Restricted Rights (June 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065

The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup, redundancy and other measures to ensure the safe use of such applications if the Programs are used for such purposes, and we disclaim liability for any damages caused by such use of the Programs.

Oracle, JD Edwards, PeopleSoft, and Retek are registered trademarks of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

The Programs may provide links to Web sites and access to content, products, and services from third parties. Oracle is not responsible for the availability of, or any content provided on, third-party Web sites. You bear all risks associated with the use of such content. If you choose to purchase any products or services from a third party, the relationship is directly between you and the third party. Oracle is not responsible for: (a) the quality of third-party products or services; or (b) fulfilling any of the terms of the agreement with the third party, including delivery of products or services and warranty obligations related to purchased products or services. Oracle is not responsible for any loss or damage of any sort that you may incur from dealing with any third party.

PKu1/jePKfUIOEBPS/txtgloss.htm Glossary

Glossary

alternate spelling

In Oracle Text, alternate spelling refers specifically to the use of spelling variations in German, Swedish, and Dutch; these variations may be indexed if the BASIC_LEXER attribute ALTERNATE_SPELLING has been specified.

attribute

An attribute is an optional parameter associated with a preference. For example, the BASIC_LEXER preference includes the base_letter attribute, which can have either the value of YES (perform base-letter conversions) or NO (do not perform such conversions). Attributes are set with the CTX_DDL.SET_ATTRIBUTE procedure or with the ALTER INDEX statement. See also: preference, base-letter conversion.

attribute section

A user-defined section, representing an attribute of an XML document, such as AUTHOR or TITLE. Attribute sections are added to section groups with CTX_DDL.ADD_ATTR_SECTION or with the ALTER INDEX statement. See also: AUTO_SECTION_GROUP, section, XML_SECTION_GROUP.

AUTO_SECTION_GROUP

A section group used to automatically crate a zone section for each start-and end-tag pair in an XML document; attribute sections are automatically created for XML tags that have attributes. See also: attribute section, section, section group, XML_SECTION_GROUP, zone section.

base-letter conversion

The conversion of a letter with alternate forms (such as accents, umlauts, or cedillas) to its basic form (for example, without an accent).

BASIC_SECTION_GROUP

A section group used to define sections where the start and end tags are of the form <tag> and </tag>. It does not support non-basic tags, such as comment tags or those with attributes or unbalanced parentheses. See also: HTML_SECTION_GROUP, section, section group.

case

Case refers to the capitalization of a word or letter, where upper-case letters are capitals (M instead of m, for example). Not all languages have case. Mixed-case indexing is supported for some languages, notably those of Western Europe.

classification

Also known as document classification. The conceptual separation of source documents into groups, or clusters, based on their content. For example, a group of documents might be separated into clusters concerning medicine, finance, and sports.

Oracle Text includes rule-based classification, in which a person writes the rules for classifying documents (in the form of queries), and Oracle Text performs the document classification according to the rules; supervised classification, in which Oracle Text creates classification rules based on a set of sample documents; and clustering (also known as unsupervised classification), in which the clusters and rules are both created by Oracle Text.

clustering

Also known as unsupervised classification. See: classification.

CONTEXT index

The basic type of Oracle Text index; an index on a text column. A CONTEXT index is useful when your source text consists of many large, coherent documents. Applications making use of CONTEXT indexes use the CONTAINS query operator to retrieve text.

CTXAPP role

A role for application developers that enables a user to create Oracle Text indexes and index preferences, and to use PL/SQL packages. This role should be granted to Oracle Text users.

CTXCAT index

A combined index on a text column and one or more other columns. Typically used to index small documents or text fragments, such as item names, prices and descriptions typically found in catalogs, the CTXCAT index typically has better mixed-query performance than the CONTEXT index.

Applications query this index with the CATSEARCH operator. This index is transactional, automatically updating itself with DML to the base table.

CTXRULE index

A CTXRULE index used to build a document classification application. The CTXRULE index is an index created on a table of queries, where the queries serve as rules to define the classification criteria. This index is queried with the MATCHES operator.

CTXSYS user

The CTXSYS user is created at install time. The CTXSYS user can view all indexes; sync all indexes; run ctxkbtc, the knowledge base extension compiler; query all system-defined views; and perform all the tasks of a user with the CTXAPP role.

CTXXPATH index

An index used to speed up existsNode() queries on an XMLType column

datastore

In Oracle Text, datastore refers to the method of storing text. The method is determined by specifying a storage preference of a particular type. For example, the DIRECT_DATASTORE type stores data directly into the text column, while the URL_DATASTORE specifies that data is stored externally in a location specified by a URL.

endjoin

One or more non-alphanumeric characters that, when encountered as the last character in a token, explicitly identify the end of the token. The characters, as well as any startjoin characters that immediately follow it, are included in the Text index entry for the token. For example, if ++ is specified as an endjoin, then C++ will be recognized and indexed as a single token. See also: printjoin, skipjoin, startjoin.

field section

A field section is similar to a zone section, with the main difference that the content between the start and end tags of a field section can be indexed separately from the rest of the document. This enables field section content to be "hidden" from a normal query. (The INPATH and WITHIN operators may be used to find the term in such a section.) Field sections are useful when there is a single occurrence of a section in a document, such as a filed in a news header. Field sections are added to section groups with the CTX_DDL.ADD_FIELD_SECTION procedure or with the ALTER INDEX statement. See also: INPATH operator, section, WITHIN operator, zone section.

filtering

One of the steps in the Oracle Text index-creation process. Depending on the filtering preferences associated with the creation of the index, one of three things happens during filtering: Formatted documents are filtered into marked-up text; text is converted from a non-database character set to a database character set; or no filtering takes place (HTML, XML, and plain-text documents are not filtered).

fuzzy matching

A fuzzy-matching query is one in which the query is expanded to include words that are spelled similarly to the specified term. This type of expansion is helpful for finding more accurate results when there are frequent misspellings in a document set. Fuzzy matching is invoked with the FUZZY query operator.

HASPATH operator

A CONTAINS query operator used to find XML documents that contain a section path exactly as specified in the query. See also: PATH_SECTION_GROUP.

highlighting

Generically, in Oracle Text, highlighting refers to generating a version of a document, or document fragments, with query terms displayed or called out in a special way.

Specifically, there are three forms of highlighting. First, CTX_DOC.MARKUP returns a document with the query term surrounded by plaintext or HTML tags. Second, CTX_DOC.HIGHLIGHT returns offsets for the query terms, allowing the user to mark up the document as desired. Third, CTX_DOC.SNIPPET produces a concordance, with the query term displayed in fragments of surrounding text. markup.

HTML_SECTION_GROUP

A section group type used for defining sections in HTML documents. See also: BASIC_SECTION_GROUP, section, section group.

INPATH operator

A CONTAINS query operator used to search within tags, or paths, of an XML document. It enables more generic path denomination than the WITHIN operator. See also: WITHIN operator.

Key Word in Context (KWIC)

In Oracle Text, a presentation of a query term with the text that surrounds it in the source document. This presentation may consist of a single instance of the query term, several instances, or every instance in the source document. The CTX_DOC.SNIPPET procedure produces such a presentation. Also known as Key Word in Context (KWIC).

knowledge base

Oracle Text includes a knowledge base, which is a hierarchical tree of concepts used for theme indexing, ABOUT queries, and deriving themes for document services. The knowledge base may be optionally installed. You can create your own knowledge base or extend the standard Oracle Text knowledge base.

lexer

The Oracle Text lexer breaks source text into tokens—usually words—in accordance with a specified language. To extract tokens, the lexer uses parameters as defined by a lexer preference. These parameters include the definitions for the characters that separate tokens, such as whitespace, and whether to convert text to all uppercase or not. When theme indexing is enabled, the lexer analyses text to create theme tokens.

When an application needs to index a table containing documents in more than one language, it can utilize the MULTI_LEXER (the multilingual lexer) and create sub-lexers to handle each language. Each sub-lexer is added to the main multi-lexer with the CTX_DDl.ADD_SUB_LEXER procedure.

markup

A form of highlighting. The CTX_DOC.MARKUP and CTX_DOC.POLICY_MARKUP procedures take a query term and a document, and return the document with the query terms marked up; that is, surrounded either by plaintext characters or HTML tags. You can use predefined markup tags or specify your own. In comparison, CTX_DOC.HIGHLIGHT and CTX_DOC.POLICY_HIGHLIGHT return offsets for query terms, so you can add your own highlighting tags. See also: highlighting.

MDATA

See: metadata.

MDATA section

An MDATA section contains user-defined index metadata. Use of this metadata can speed up mixed CONTAINS queries. See also: metadata, mixed query, section.

metadata

Metadata is information about a document that is not part of a document's regular content. For example, if an HTML document contains <author>Mark Twain</author>, author is considered the metadata type and Mark Twain is considered the value for author.

Sections containing metadata, known as MDATA sections, can be added to a document with the CTX_DDL.ADD_MDATA_SECTION procedure. Taking advantage of metadata can speed up mixed queries. Such queries can be made with the MDATA operator. See also: mixed query, section.

mixed query

A query that searches for two different types of information; for example, text content and document type. For example, a search for Romeo and Juliet in <title> metadata is a mixed query.

NEWS_SECTION_GROUP

A section group type used for defining sections in newsgroup-formatted documents as defined by RFC 1036. See also: section, section group.

normalized word

The form of a word after it has been transformed for indexing, according to transformational rules in effect. Depending on the rules in effect, the normalized form of a word may be the same as the form found in the source document. The normalized form of a word may also include both the original and transformed versions. For example, if New German Spelling has been specified, the word Potential is normalized to both Potenzial and Potential.

NULL_SECTION_GROUP

The default section group type when no sections are defined or when only SENTENCE or PARAGRAPH sections are defined. See also: section, section group, special section.

PATH_SECTION_GROUP

A section group type used for indexing XML documents. It is similar to the AUTO_SECTION_GROUP type, except that it enables the use of the HASPATH and INPATH operators. See also: AUTO_SECTION_GROUP, HASPATH operator, INPATH operator, section, section group.

preference

A preference is an optional parameter that affects the way Oracle Text creates an index. For example, a lexer preference specifies the lexer to use when processing documents, such as the JAPANESE_VGRAM_LEXER. There are preferences for storage, filtering, lexers, classifiers, wordlist, section types, and more. A preference may or may not have attributes associated with it. Preferences are set with the CTX_DDL.CREATE_PREFERENCE procedure. See also: attribute.

printjoin

One or more non-alphanumeric character that, when they appear anywhere in a word (beginning, middle, or end), are processed as alphanumeric and included with the token in an Oracle Text index. This includes printjoins that occur consecutively.

For example, if the hyphen (-) and underscore (_) characters are defined as printjoins, terms such as pseudo-intellectual and _file_ are stored in the Oracle Text index as pseudo-intellectual and _file_.

Printjoins differ from endjoins and startjoins in that position does not matter. For example, $35 will be indexed as one token if $ is defined as a startjoin or a printjoin, but as two tokens if it is an endjoin. See also: endjoin, printjoin, startjoin.

rule-based classification

See: classification.

section

A section is a subdivision of a document; for example, everything within an <a>...</a> section of an HTML page.

Dividing a document into sections and then searching within sections enables you to narrow text queries down to blocks of text within documents. Section searching is useful when your documents have internal structure, such as HTML and XML documents. You can also search for text at the sentence and paragraph level.

Section searching is performed with the HASPATH, ISPATH, or WITHIN operator. Sections searching is enabled by the used of the section group when indexing.

The various section types include attribute, field, HTML, MDATA, special, stop, XML, and zone sections.

section group

A section group identifies a type of document set and implicitly indicate the tag structure for indexing. For instance, to index HTML tagged documents, you use the HTML_SECTION_GROUP. section group type. Likewise, to index XML tagged documents, you can use the XML_SECTION_GROUP section group type. Section groups are declared with the CTX_DDL.CREATE_SECTION_GROUP procedure or with the ALTER INDEX statement. See also: section.

skipjoin

A non-alphanumeric character that, when it appears within a word, identifies the word as a single token; however, the character is not stored with the token in the Text index. For example, if the hyphen character '-' is defined as a skipjoin, the word pseudo-intellectual is stored in the Text index as pseudointellectual. See also: endjoin, printjoin, startjoin.

startjoin

One or more non-alphanumeric characters that, when encountered as the first character in a token explicitly identify the start of the token. The characters, as well as any other startjoins characters that immediately follow it, are included in the Text index entry for the token. For example, if '$' is defined as a startjoin, then $35 is indexed as a single token. In addition, the first startjoins character in a string of startjoins characters implicitly ends the previous token. See also: endjoin, printjoin, skipjoin.

stemming

The expansion of a query term to include all terms having the same root word. For example, stemming the verb talk yields talking, talks, and talked, as well as talk (but not talkie). Stemming is distinct from wildcard expansion, in which results are related only through spelling, not through morphology. See also: wildcard expansion.

special section

A document section that is not bounded by tags. Instead, sections are formed by plaintext document structures such as sentences and paragraphs. Special sections are added to a section group with the CTX_DDL.ADD_SPECIAL_SECTION procedure. See also: section, section group.

stop section

A section that, when added to an AUTO_SECTION_GROUP, causes the information for document sections of that type to be ignored during indexing; the section content may still be searched, however. Stop sections are added to section groups with the CTX_DDL.ADD_STOP_SECTION procedure. See also: AUTO_SECTION_GROUP, section, section group.

stopclass

A class of tokens, such as NUMBERs, that are to be skipped over during indexing. Stopclasses are specified by adding them to stoplists with CTX_DDL.ADD_STOPCLASS. See also: stoplist.

stoplist

A list of words, known as stopwords, themes (stopthemes), and data classes (stopclasses) that are not to be indexed. By default, the system indexes text using the system-supplied stoplist that corresponds to a given database language.

Oracle Text provides default stoplists for most common languages including English, French, German, Spanish, Chinese, Dutch, and Danish. These default stoplists contain only stopwords. Stoplists are created with CTX_DDL.CREATE_STOPLIST or with the ALTER INDEX command. See also: stopclass, stoptheme, stopword.

stoptheme

A theme to be skipped over during indexing. Stopthemes are specified by adding them to stoplists with CTX_DDL.ADD_STOPTHEMES. See also: stoplist.

stopword

A word to be skipped over during indexing. Stopwords are specified by adding them to stoplists with CTX_DDL.ADD_STOPWORD. They can also be dynamically added to an index using the ALTER INDEX command. See also: stoplist.

sub-lexer

See: lexer.

supervised classification

See: classification.

theme

A topic associated with a given document. A document may have many themes. A theme does not have to appear in a document; for example, a document containing the words San Francisco may have California as one of its themes.

Theme components are added to indexes with the INDEX_THEMES attribute of the BASIC_LEXER preference; they may be extracted from a document with CTX_DOC.THEMES and queried with the ABOUT operator.

unsupervised classification

Also known as clustering. See: classification.

wildcard expansion

The expansion of a query term to return words that fit a given pattern. For example, expansion of the query term %rot% would return both trot and rotten. Wildcard expansion is distinct from stemming. See also: stemming.

whitespace

Characters that are treated as blank spaces between tokens. The predefined default values for whitespace are 'space' and 'tab'. The BASIC_LEXER uses whitespace characters (in conjunction with punctuations and newline characters) to identify character strings that serve as sentence delimiters for sentence and paragraph searching.

WITHIN operator

A CONTAINS query operator used to search for query terms within a given XML document section. It is similar to the INPATH operator, but less generic. See also: INPATH operator.

wordlist

An Oracle Text preference that enables features such as fuzzy, stemming, and prefix indexidng for better wildcard searching, as well as substring and prefix indexing, which improves performance for wildcard queries with CONTAINS and CATSEARCH. Wordlists are created with the CTX_DDL.ADD_WORDLIST procedure or with the ALTER INDEX statement. See also: preference.

XML section

A section that defined by XML tags, enabling XML section searching. Indexing with XML sections permits automatic sectioning as well as declaring document-type-sensitive sections. XML section searching includes attribute searching as well as path section searching with the INPATH, HASPATH, and WITHIN operators. See also: section.

XML_SECTION_GROUP

A section group used for identifying XML documents for indexing. See also: section, section group.

zone section

The basic type of document section; a body of text delimited by start and end tags in a document. Zone sections are well suited for defining sections in HTML and XML documents. Zone sections are added to section groups with the CTX_DDL.ADD_ZONE_SECTION procedure or with the ALTER INDEX statement. See also: field section, section, section group.

PKԇmPKfUIOEBPS/ccapp002.gifOSGIF89aX_  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~,X_ H*\ȰÇ#JHŋ3jȱǏ CIɓ˔K |i*&/m S&͚>ids?@o iOB&ݹjSOF:VWfXhӪ]˶-EivFJsJ;0o]r-.aaGv㿗 WƼYs_ʟ-wfsiρE&װcg+۸rg NqL%>μsK3:H}.sNm/ͯ>| "L"F:򑐌C(JZ-y&7Lr9cd<)ʱ-f#%*UI)c0XҲ7.K]-؄0Ib2/Yy4Ќ49f0܄5MMj_IrL:v$B(oS6:>~ @JЂM@'[2О G@`N!DJ%N5pS& Rgq>zG6tQUњO!&sP $t(; lhx)1O 4 _$isx# qh9 9R; Y|cf@08K Tu$.ɴJ6EWv# n+Y+ցzyZ LGx`s xgݎ&śVCg]bQV4de31jl#09\^Is7l02v   1m' !$ɖE]gy DB D7] vP#'ՅhLR&]ُu u0"#bpVR!%acqL}Sgs(r`9X!FRf+iVqmnqzP 0@;.P'dr5Y#:IC7(1XiGURr<D'T#)-Ws#zVߐU! ^5gXP2IRnP:K:1`a!!kAlAG @'yu= pY /g i:bw3\-v,y]<͏֡{~? Ӏ! MC(cՀX 5fY3nQ|&Qd 7Ԡ < nԀn ɽV m-?Sa NՐ @ ȞL(Dc"a0$?p(,_02 לMx J]C_q?L!yNkmnBMX! LsePUX kj  moSqbu/wX \܌ sR]RSfLL\0 /w-p躿@ aef\#2ֿү,"s`Iiȝ` ɯeB?$XA y}%NXD^G!Anj&I)UdK1eΤYS$@6u|kΞ?g~U2>NZUYnڕA(<>X,Ōǎ$)[qΥg]AԻw% 3)͔_HVb%O\Y%c[g]tʻMUݑu뎀#,0la0 )۸tg75ת=:A|:w-+ϯtOW}}\g\Ƭ}p3N>,B﷌q?0Cʩ9 3;K ș uj6q mĽpDo^rH"Rx {4^qFaӱ+qJ|>sL2s$I.t3*[Dx3n7eB1F6t?eOB[ړϊ2f@ҐN930DG=LҲ2JKuPMOSYbԣ_}ƚV_MM4Xd қ3VYhe7;;d=֎ruuW^Țk6&H;buig}7^S^~ -\^3&suIFM5y7՗:P ;]0sc7lI&KX`L k6 s> H4z `6fQ2RN0bYVeefgTIYWrfmaj.?kG竸ﰡ<'fUk|iz*(+ $W8A(A AJ겥[Aixg8 d!۾@WA;w( # SaŽ@ wCù)>WxOxK-D(4@ lHGح#5j#R;ZZELŔ5mXEFgjd#FKEAFb;>Gd+gTCaFjlktlFƐ +GrčJBo]zk yIiw\g(+ut K;ͩ#U} 4JՉST&\Ӽԉ,XY͓ZUVZ^_}`m%VY;VP@aQf+Ega TowJVZVJ,I|o¹v&GM1h"}hhhvT@ eC{b`^.Ρ#JJ9\P ]^LC|% *nf<W[GK@NJ  S#Y[Cej._]/FHϬDr1N]ݣB[S¨"ӅlU ֨\q IȭG |h` vTLbBV*D^` =QavlLLI.O\lv ~LTt h\p^KF`g؜iCۜͅEȃEn>?(\ $!39p;9 Bط(q TR9gxkmvcjKLW W͎cD;]/gn w [umObN /_ i 4,V#~,@!Lk4 fDH b4o PNOl>,7NHso < WEtTbua2s܀k?PϻD @4aPjMTc!+,/]gWI]%gu `?3a7n%έt((T5w=pq:X+S0Evsg'^0P#yxxxxg*W WմǠшc3󀭊WXw/*Ew{gwSo>GHm oiI4|xߓHDKNǹnP|tCu?x4E>f}QH}_@oS z1zEՐWv$ \\ &~ ẓo Ef zQOM EXɉݺߎ/~0nwqUI9 Gfޯ渗1}yW躇Bh/>1NNƠhZI73n „ .!?H`$#0 I K+ҬifG@4'РB_ ym4фH&|j;>bǒ-D >Iܖ_Z|ژ=M@@(@A?H `@l7;U¬G6gO`<[0aÈ5180P~ȍ` #ʟ%UTѳBu sw`Ҹ_]@' } DSA8 J8!B R!^@8) HZ)"-BH\m;-FD6=#s;#%%IAђ|.Ԓ?4ґ$ِ^u/{A 3LO~]7e3{ѝE-T4KVڔ&BYD&\!dT0򍀡e))7CL]*T.+?E#UZkmuW`5,@" Vrd#}[7S|/Qe"%PQ R* )*kpfqht3QZ$L) 8ʇ0zz1z'lnp_d)')oʪOr/Ü*NBHY)A0Mfv;H |ֱV_쒙L4c7\C}#03fT@7π]B zc.d̉kwtq|aAe.d%Bt &fڥükم*tf}5ԇkl 춙dd2}#www-wQR/[1j: JzK(T֟ !, CPW-ad%hS{C9aڞt*r]-A ԙ !1B0]%71[g8AI Y$EQތ՝5-!n8r\ )h8/0Q " S$H-GЄ"qFr 8AUrt*YAd![ٲd'CEazq )/W@1eD3i:\J=Ҽʀ Of]4وqk5ͩhĤ7΄ s&)tⳟa))@p?PQ\= w4(D3Q5TA(9%ZQѢ(HSRt4AJ)Ғ5 #Jcӝ<ݨH]WғPRe+iBrөԧT]H5DFBmi*W !j^b=-n-6!׹ҵr[TUV A*_*P=ZS浱\&"+R6plJgjfrѤ)B1+ђ M;o&gicQ].U0W[@-p֗qG[2mnpZ"0[.t;jbҭnނ6mwIQxgI${˞/sF7_-xf>0#,n I+ sx /M`=&>>|Ŧ˩Q,'.g+YBQxD96Bzմ.4>2KcN~2,)SyrB\-sYWfB,.{&FN24̸.܈[vf6'93Vߜ8lt>e[ą0[{PƁF񠑫9e~n}Hy 5Q AJcĤjJ:e_Ӈ{+]ɽn٭%lTW]kM򗟭FՎٷq}Eo6-iu+w KS/Y }.Wro+B fv@oj"83oU9yWkI艷⼮Hٝj8rbVuww9i^6E7ag@4UzStǚH(խ.Jo:n3V;Rr{F w;kkt ĈO|^a<3s3o7~>s؏>Q{????/?8?`fT` *- p)SF`lA ^hYSvc. Ơ   &  &T!!.!(SF@!^Yv!q!!f6VaM֡CA a! = !!N.b(#F)$V%^"&f&n"'vbޡ'/! ҡ()"$yb"+ބ+!,bM"֢-2D#."02%#11#2&2.c"323ʡ)>cD1Zbc1jr#1zc0)#5r0#;;#<ƣ<#O#=z=4#z#fA $AA$B&B.d8McCVE^$FfE,"'Jdc5^HG#HHrIڄ9IUJnJR:XLJȃN? ԙdvdP6QBQ%q! \A%\03 @TR1ep8|C8 X6VWf>S… VE[fCdJZ[[bKn@V7A`K(ChZ@CP\ Z[%Ufg^Z],d Ձ 8Dm_ B^\hZ"iRiJ@ RźfGT/RH \`A'O g%T'I aJfn>DPZ%|~lNM'OئT'%~TK]>u҅|V} 'cMO. @LgLgTZH|7D | ~NWڗg8j lHT MP s&|R^ᖋ"( ;TT^LB;|u $D)m [:)]-VRxiH©i$D>D!>:bTX.Tأ&b!٤W~䥢Y4&5f f&{MD '5)Ҩ JpiFIŰ&Z*R;o HlFgA^ HWi CtijŒ6q Fٲ2kS$vxIFp޸HMb"B;lJxE4ա [0"3 rV N#T,ԫft*XJYEIO\KA& <\f zdbf}dJ+* JHGH)R W%k*VjMlDԭkdRbIDI٢D "j1&FjLit /hk&.N4Š)٤]&HԧvjaJQn&TEbʭ-o/1of)pl2B4F&nEv#i* >0 0ZhA0 sp̰A#^=)3*XcY1*mB 1//p910-*v*0x1=C}J)iq)qM؈XM8p؄ŸXjD_/@A+ {1٪:}:Ō/aEXWP;dwtT{A_@Xk2pDhHh_d37^v$Kdbu9frw˷;[nώÆFĄ3H7_^ʔF܆fb`=7жK JHtt٘ȏE1BXoȏmy[{clLEҼʍR2[LCHDh'ʄHȄc&)=?6F<b+/%O/,K=UP=|%G@0S܌3.B01BxXG;fF`f!(0oFH 8xݍN9lh7Ex˒/)8/}t[~dhkt~CLJJPߖxwqD~2~&1L_oL@@,Ļ Nc0|H9Q>yc>tVS'_L|Io0FG+9'(=g0B@~L F9vdGB4y/Qt R%˗3iP';L$OC5ziR4әJQMRa3 x׍UAA0 `xEH- 05RQ"ޥ'G5ӯPYNGzO 7vrdD230vo96Yh_)W95H9c׶}wnXoظ瞍wr˙%zt17wqoOl|xʫ}ig$)bD߂Ʈ{+5=,^_4r#>^症#)Vе>zP  \ У 8+4 M11G.|> hȗ~%#)O*P((.To`x$w>钠g(?u#8+Р:;?@ӱ=k ?p} Ag*P @ԣF rP^YTB[9.8} -1<+C~IGޭ᛼>?MN~QW 3UG&Lko\虹c0XjHWNV뙍#ވtCgclY#戁ލI'ތRY'"hk: Lv"HhwC5o : ?vw<{q#ݜ=tC!xCzKwG6Mz-N|w~xBUGf { 0G w#_cmߒ?d6/)b6/9b #}b⠅!J쓷 {H>-QHWՃEb>!ún7P~x B ^Gh`o"մT1lYk,0ġ49yCp#XD#1[AD' XEӽt\/`K!I<YJ .%AaP°j d% L( UHF$)!cDX$>v.4CP i]")L.B/B #9ʒ婚MS X޵a2ԃGȥo6,ENQC3Yt@sVK59,8wNp@T:AйNtk! .~z;b3V {Ц1 YǬ $[PW3d6%RSqb>堄T!e2TL$V0\ Xnd31Db TqdI`HUL)MavY?M\1Ke~RZǒx &>YB~jB%=ijMsKM L^64qıF ’WXk2/ ٤f% 28EPMoyWR5A4KPu&2RfBg ,q.eV2sU872Ybe(قZzs3}ں.4PO0Eyj@%aq%v-)K*uLHkF^Lþ"˶Tmuo(w.hREҢk1M- Yj0)=hHDf.gϸfV~v̟F*4Ƕk6A,Ќ-sdG#VDO{–׉l("#IY, 떶 ٮڼ, P[%TL̢J3HeJ7Rݠ@JY"$Ԧ'cKSǠtD TQxViZ@v tCǐFIunb:i#آaC$)9=lgoFkvkcmkOԏ󑭒͸=s[N]o(_ ~{KہI8aݓ?()Aq<2 ߋpD̫C.Ue+Nj<^r|~y CBMnZXoNN=w7?֏t@2PH9'^Iuj=أ(v7#ԕڝs:΅̹]A;ov{;㈗ xݳ??zk]ί|Iq7fIIR_z׿֧'B{u~F&WQn_G2xKT}ⷿx JL?~d?q~co~W_3 o$P0Vo!oNN7:.(S𔲏_cPg#Zwe!$&PPp p)( po㘐"NP 0 M ߸ ] U/ Y/ a 0 7aŏ go )'0 /,(GOP P7:(pXFO} c7Uǥ {n܁Q0<q:1qձ} Cq q  Q74Q!n!yjl r""w"Mdlـ >$5MGR$R%K.$u%K1&_n&s&osR'Y2{r~(r<)9)7*+,R,ǒ,,-R-ג-nQQ+6$Ŋ/R///r#.!U0S1112#S2'2+2+S. v.4CS4G4K43S 7334_6cS6gRr55w6w7{7kSn7R8r9S89:S:::;S;0;;9Sm>6S?839@T@ATAAAB4?#BsoB+)C'ArCCCEDGTJDQDE4EYtECEaE=4FitFMt0UD]tGeGmGqT u4GyH}H4I#D4B tCÍ'rz(KyhKwKuKTtLLLŔ#4MMהLLMTM7M4NtNN4:"JQ" ;PKMYOOPKfUI OEBPS/lof.htm  List of Figures PK&IZ PKfUIOEBPS/ccapp014.gifhGIF89as}򿿿@@@fyyy??3???쵵ױ>>>;;; sss000vvvPPPpppސ```<<< ߲￯JJJooo//&666__L&&&ϥ,,,XXXۏrgggooY///ᔔ:::999777ӏՅOO?___555uuuOOO rrriii É]]]lllbbbwww}}}mmm'''NNNŊfff444SSS{{{kkk888!!!+++dddtttnnn\\\---CCCMMMRRR333AAAɘZZZTTTYYY~~~Ă***BBBKKK[[[222ccc!,s} H*\ȰÇ#JHŋ3jȱǏ CIɓ(SD@(I͛8K 1 H`b@r*]ʴӒ4 Ta 20 ӯ`ỀQ@,Sv`]K](bI{È xq"  5˘^XAbىgMJ# E +M6mNŅ &%p2eȓ+?h?>`ʼn (h׾Oӫ_Ͼdf_e1ˀ2 LOBQ* -c BEgX!y .E(TC de\h@+@XL РbP| v%c䑎 0J+DU pcK7( dBA egf%l*ւ4#9)g O9 s&Cj.D؉ #Ac.2 ڵ&턤#0 cꩨ|E Jđ@ÚUYRP`kn4LnaZ*LfAf,|0Fye`n(v8l 3,#N6/κnF&n+ڲ g gUOXEYHT[ ng OL0c<IŇn<(w*rH'* T$AGTP@ Jg(aR}SvUS-6)m2#l ^eH|eBjk[u#$)$Sp-0F_bG"ÂrN@I5pӺ6da*6Eoifkѡ|`aN(8O޽.lC]DHI앿?@2~65dܯjTW ~CںG'I#h "4C' @9 Pb?G$6ےn~4BGYٷN |@(E3GʈG4@K߸fӪӬJx-nS y&t#-Õ ʲ{T`a숴- @võ(/21hJba\ >2?rwIxH{e 2F0N0jLpi,<' L'$ LhP,Xq! 08qH0DLQZ0.$>niUJJWRFtl (#e4$ I a늁 j\ Q@t iqSdx;U y, XͪV$rbL`,զQ\2,PTYpݪW!* D2ΠjꏐKBYZ zk\'H+׾δ+rhGKڦ.֡Xc9*buRlg &òY5t6}iK9%Mm&^ϵX R[VX-7up"%\4vj5SAWԵ-n-rp 67Q2F&d_22{+ ܡ Uh-H4d`]jH &0! "aGq! G!x 0 6nWo7r jط3C.;fH^'܌b Qd=PO12( N."S9.аIp \ qB=f*0 tD=9zF Б"\6 4/g $= bĆ/Xg,#HHطCr~NDӛNל/ԛLc8ɘO@CM&7!@ #e9j- 1(ِi Fȶ /e9"ӂwZY0o|z(ʫKW:HvA"PBe q;|J`QƉԧNK uq{[ -,(L8Ʒ]|H #yGzcà@&B*O|q|"d3('O[ϼ7{Mq|'ԣ5u@Qd'Oo20ي"B%` dT@` TE (q[IϾ{P{29#2O/?DূYJh6JpW8 PFF tʻ0驉a˹pˬqf!sjצEl*j$ j}Z;wȏ _'Yk1_ +K{${s8P2ؗ:~5xfoxwy׋}w dm!B+ԙFŻ+'|W<ZHb7d1 @5 (p)xEwL' z˺滏G+ň;TW̞![\<Ţثۦ+2:0kwzg#iX]B'1h2ʠ@PO\Ю~L@@0@9Wˌ~L@POsl>\13n賞È~V軮~^.Q P~؞ھ>nun|Ptx u 6#x.Nxܺ鿮.?_d^mZ$_&Ooܓۧ)P68:<>@<0 4_ 2quAJ>POUYfU(HLd].0cjbx?э_ ne+?^}Z][NC ?.n.A9 S8KOw\>Y|oq$?_ ?AM *r0⿵@y Þ^GO"$2P @ 0HPA .<(?$NXE4nG!E$YI)Udْ$dRI&a38hЀ dڴÈNUYn5$&j9C Xu %qe A=T !Cj"dJjYd5ŕ@Se Xe$FǜNAA =(D L*"sTRKO1,4Upc M4iM(.1D)X *{CyB@ .\PTH`c f$bf@ x]v1 Ivia!t︃?E IđN0$b!-2xd8-jv pb̾Hcp(B2kr h-@o3‰r"i8*hZs؟ ;PK %PKfUIOEBPS/qcatwiz1.gifdyGIF89aڣ֝ĻLLJ达冦׉#Y!nJt0bzzv|nu```ӵع330dūϝ3{ [yjjjRRTHdTr:VttorߓAA>bsQjbd[$?쩵߻ϛ\\Yyգ񶶤llֵmncTսRlӣͻQSH1>`۝IJXXS k!wo^^_{"P>ZErƝ_ᝯ=kOO1KBGF)Ŕ䨨2˝$$#n␲ߧ1Nȝȵ[ߋ֒{6R,*GҜl]0#Pq" ܟYYɸhS?//STUT돮͙C`֤ookѷ͝׸ⷷǿzlnOONӣl˙QYyhh`fffp/,rǗLj1c!, B*\ȰÇ#JHŋ3jȱǏ CVȴ<R\re(aʜI͛8o6ɳg@ylѣH*]ʴӧO#թWjʵׯ`ÊKjyQ窭pߚkKݻx˷߿LÈ+^̸c&NLrdɖ3k̹|&S'2ЧOPװc˞M۩'ֽ{$ݿ}Nȓ mW0"F קOϤӟ${ǂ45V` 63FC0f>ab#hb(9Ѐ" 0(1&b8HB<$I$đH&$'L6.O"TAd}de`)f }bhlGpʜt̝wz|Yɟ*ZIkƢ6\D*餔J B dɦr駠fzI^ jbj7䤕+zL92[뮼+ݰ‚gޑ޲מ|ʇg 8 &r~Xb()(9c? oJdLNITjP0`@ lBppiqx.ӧZ (\4Z\\j0Ǭ ,k\bşq Ι]h*F󁂮:4vǝ";]y)yYG^}Շ_,~e}"2Hm[K>&.Ϋ8 hoF.Hr\s% Nq8pg%wL衇<퐢\i)z*˧^Ro|*A>bG3`J3>`sP<ǫ T ,pEJߐ:4 ]Rkh5g<C# 1 A,` ^ v:"uAxn`Crn:B<ԡ.3&C Px.N]#Qx8ĭhqw{I.g&BsV <%,t #J'ӱ)uc]P1.d#P2>QwXK4L$"1+\#$% |k?P@0 tXD5aitF@Е,{W.vK&TWyF?2jV@.@:`8f?qϳӞ"FaYC:(b1U Fͭ)VEtgmn.C!o2Y$ɫqQhQ~e F2r Lg]F'6QuqcdGAv#wDBᏢ1@#c0+&Ndd@vrĠZ`wx.2Al,"~p (!B B8bDa#3 Y,A0,\PV "Gg5>fo g`(8@C,fQ!!a,:@ 1LA0 ,ZVs @uxD! Q  S  ĉ&R|}eHL"*&RJذ2t/}bjiO#я=|rG5jRu`#>FPL `F 0 a%_tc3(:щqd؄h׌P BQp EB ,j8?1=T@&0Da4B/@AC(Zh4BosA1Xdb`۞? iP4B"@zBwk#\PPmD.pq>!]Q'jadaTTԑ*<_r";zN$NJOtjiZSTdyTKF_꧚ԏd*UQjMVA3x<B5VS5j*O wbd6s+;P.#`uAEv:݈?D@B FGhk?p^ t. 1},1d01eFw#@fcPfL4I55ANNNN R {tOwc s7E7ePC;CR.oii}3HgRaRp(0w:p~.FSWc"WC)>v   " P&jڨ(`.ZZfr ( ҠҰH]??95v0 i@d]M[5I6Tq--Z7 B7u b!YC}!#"Do6aE/vC0 G~^R~ǗjB)fcGSS3HGH;pp`ک p Irձ?N5܁LIj5LQ6!#-k3\*7_*.|c}#Di*"9 m"n8$'Reqit&FF:Sc* (&*  VypE:;@tkkZ`{{Z۱"Z@%{.`$-2;4[6[G9 w:˳G@?G@A[LHJL۴N+P T[VWX Xk|e`bkY|hh+YK Yn۶n[r;t[er;X5X[ { ]@{۸+ +{+ 1ع+;i/J䰻ۻ/ڻ뻮+K;Ǜλ([;؋۽;[雾۽싾ܻ( {k;;L <<\l /L` P0p .02\6|8:<>BZ\H|Lb* p-ǀȂ<Ȅ\Ȇ|ȈȊȌȎȐɒ<ɔ\ɖdI ɜɞpJ7t+ٞL/= PӒ # s;M,ڝ `㒠i0i-'p J ]^T 5ԇ (wPpnpp?tR7A ;R̰N1׃ @ ;1 A`#.1#;0#p>N4_*/~ θ` I:M A ?Jl ? ܮ0 T`P p; o>7P ^ AQ0-?,oߙ `x0lXOP70l7.0# F-J/W`#5V>pA5?#'0\U_~y0AW@:!xWc'C$NjyP\{.P{pAc, "DžQY#ȆxTKOA%ZQI.eڔh2Z35BBbpZ56 @ibEE> uժ萠Z t0zjd0<_y=a  q3‹\Uc`(r1-ft[5| xbpPkQDTT>`WDSŏ'_1PZ1H 8v$^$r6ڶP 4&bH%JKeBL  Ay (aT a5N`&3$EH!oT S74rJ*)\YMFaF?b-TA+sΞNfM p OH#tRJ+,R-J@*PgRTSUuUV[ O=:u4AEkW^{W`vXb5XdUvYfuYhvZju֐\u۲F5`5\tUw]vu]xw^z^|w_~_ojcVxaރ( (b3xc;cCydK6dSVye[vecfjfs֙mX8T¬zh6hviisV=o~ YTWI(d@ӮHchzĥA zo>ZQ6Qq𢪱rOy铼 >$".ssF'PAz@ F%GwdAOd,j8cJI:Gs&hNk\AaPvīQEb9kpo!$jU + j IA~ŌaZAraȐ:`? 3t&0A9UC~ Pp6poz&QMF^m #=1bG1$C2@v<#8$ X69W@n DI!jHsHp N(*9cPT A`C9LP0R^娞*1 ۈ&5olb#$(dA -`gp bxG1 *s|6vL(X@! ݴcLE+p{(\'l~8' V60xC؁ADʇҊ\UG/\PPJ` h^E  eNtb9 $@P0ˣs)x lU̪&=Ρ y @ȅģuQnDȀ9)C X<1pTs:fqWW 6A^i> h֛A<'w DQ` 0