ࡱ> UWPQRSTkc` 6-bjbj:: 3{P{PZ0{''''(((4,d!hD~MdJnBƱ(v oHHHHHHH$Lh:OH(NH'' RIdIII'(HIHII, h(@(C= 6 %K3> IdJ/4 PPO=P(O= 2 I\U HH2dJ~M~M~MDL™~M~M~M™(*:,''''''NI  SQL Server Megaservers: Scalability, Availability, Manageability Jim Gray, Microsoft Research Richard Waymire, SQL Server Development March 2003 Summary: Microsoft SQL Server"! has evolved to support huge databases and applications, including multiterabyte databases used by millions of people. SQL Server achieves this scalability by supporting scale up on symmetric multiprocessor (SMP) systems, allowing users to add processors, memory, disks and networking to build a large single node, as well as scale out on multinode clusters, allowing a huge database to be partitioned into a cluster of servers, each server storing part of the whole database, and each doing a part of the work, while the database remains accessible as a single entity. Using scale out, SQL Server 2000 achieved the top Transaction Processing Council Benchmark C (TPC-C) performance results of any database system on any platform. .NET servers and SQL Server clusters provide high availability and automated management. SQL Server supports high availability through built-in failover and replication technologies. SQL Server also provides a powerful management model based on a user interface, wizards, a job scheduler for repetitive tasks, and SQL-DMO for scripting application-specific operations. SQL Server architecture accommodates modular growth, automated configuration, maintenance, and programming of large server farms. Copyright The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication. This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. 2003 Microsoft Corporation. All rights reserved. Microsoft, ActiveX, BackOffice, .NET, Visual Basic, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners. Table of Contents  TOC \o "1-5" \h \z  HYPERLINK \l "_Toc36027283" Introduction  PAGEREF _Toc36027283 \h 1  HYPERLINK \l "_Toc36027284" SQL Server 2000 and Windows Server 2003: SMP and Clustered Megaservers  PAGEREF _Toc36027284 \h 2  HYPERLINK \l "_Toc36027285" SQL Server 2000: Scalability, Availability, Manageability  PAGEREF _Toc36027285 \h 3  HYPERLINK \l "_Toc36027286" Scalability and Availability Features  PAGEREF _Toc36027286 \h 4  HYPERLINK \l "_Toc36027287" Scalability Metrics  PAGEREF _Toc36027287 \h 7  HYPERLINK \l "_Toc36027288" Kinds of Growth  PAGEREF _Toc36027288 \h 7  HYPERLINK \l "_Toc36027289" Scale Up, Scale Out, and Speed Up  PAGEREF _Toc36027289 \h 7  HYPERLINK \l "_Toc36027290" Scalable Hardware Architectures  PAGEREF _Toc36027290 \h 13  HYPERLINK \l "_Toc36027291" Technology Trends Encourage Building Scalable Systems  PAGEREF _Toc36027291 \h 13  HYPERLINK \l "_Toc36027292" Computer Architecture Choices for SMPs and Clusters  PAGEREF _Toc36027292 \h 14  HYPERLINK \l "_Toc36027293" SMP Systems  PAGEREF _Toc36027293 \h 14  HYPERLINK \l "_Toc36027294" SMP Scalability  PAGEREF _Toc36027294 \h 15  HYPERLINK \l "_Toc36027295" Cluster Architectures  PAGEREF _Toc36027295 \h 16  HYPERLINK \l "_Toc36027296" Shared-Disk and Shared-Nothing Clusters  PAGEREF _Toc36027296 \h 16  HYPERLINK \l "_Toc36027297" SQL Server 2000 Clusters  PAGEREF _Toc36027297 \h 17  HYPERLINK \l "_Toc36027298" SQL Server Performance Improvements  PAGEREF _Toc36027298 \h 18  HYPERLINK \l "_Toc36027299" SQL Server Software Scalability Architecture  PAGEREF _Toc36027299 \h 20  HYPERLINK \l "_Toc36027300" SQL Server 2000 Application Architecture  PAGEREF _Toc36027300 \h 20  HYPERLINK \l "_Toc36027301" Cluster Transparency  PAGEREF _Toc36027301 \h 20  HYPERLINK \l "_Toc36027302" Distributed Systems Techniques  PAGEREF _Toc36027302 \h 20  HYPERLINK \l "_Toc36027303" Distributed Partitioned Views  PAGEREF _Toc36027303 \h 22  HYPERLINK \l "_Toc36027304" Partitioned Data and Data Pipes  PAGEREF _Toc36027304 \h 22  HYPERLINK \l "_Toc36027305" Distributed Transactions  PAGEREF _Toc36027305 \h 23  HYPERLINK \l "_Toc36027306" Transparent Partitioning and Parallel Database Techniques  PAGEREF _Toc36027306 \h 23  HYPERLINK \l "_Toc36027307" Data Partitioning Example: TPC-C and 1 Billion Transactions per Day  PAGEREF _Toc36027307 \h 23  HYPERLINK \l "_Toc36027308" High-Availability Databases with Microsoft Cluster Service  PAGEREF _Toc36027308 \h 24  HYPERLINK \l "_Toc36027309" Data Replication for Data Marts and Disaster Recovery  PAGEREF _Toc36027309 \h 25  HYPERLINK \l "_Toc36027310" SQL Server and Windows Server 2003 Manageability  PAGEREF _Toc36027310 \h 26  HYPERLINK \l "_Toc36027311" Scalable Windows Server 2003 Management  PAGEREF _Toc36027311 \h 26  HYPERLINK \l "_Toc36027312" Scalable SQL Server Management  PAGEREF _Toc36027312 \h 27  HYPERLINK \l "_Toc36027313" Summary  PAGEREF _Toc36027313 \h 28  Introduction Many successful companies are expanding their online applications as their businesses explode with the growth of e-business, line of business applications, and business intelligence. Now that every Internet and intranet user is a potential client, applications face huge user and transaction loads. Most companies are now building megaservers, managing terabytes of information and supporting millions of customers and users. Database systems are at the core of these megaservers. Scalable systems provide a way to grow the network, servers, database, and applications by simply adding more hardware. Scalable computer systems can grow an application's client base, database, and throughput without application reprogramming. The expanded server is as easy to manage on a per-user basis as the smaller system.  Figure 1: Scale up and scale out. As Figure 1 shows, systems can grow by: Adding hardware to a single node or upgrading to a larger node. This is known as scale up. Adding more nodes and spreading the data and workload among them. This is known as scale out. A scalable system allows the designer to start small and grow the system as large as necessary. Some applicationsfor example customer relationship managementneed small nodes, perhaps as small as portable computers that can store parts of the database and perform parts of the application. Ideally, all the nodes of this distributed system present the same operations and programming interfaces. To date, most scalability has been achieved thorough symmetric multiprocessor (SMP) scale up, that is, by adding more processors, memory, disks, and network cards to a single server. Several vendors have shown that SMP servers can offer a 10-fold scale-up over uniprocessor systems on commercial workloads. Eventually, however, a single-node architecture hits a bottleneck and cannot feasibly grow any further. This bottleneck appears as diminishing returns or prohibitively expensive hardware. To grow much beyond a factor of 10, application designers have gravitated to a cluster scale-out architecture in which the workload and database are partitioned among an array of SMP nodes. Scale-out systems grow by adding more nodes to the cluster. Although it is in fact an array of nodes, the cluster is programmed and managed as a single system. Ideally, this partitioning is transparent to the clients and to the application. All truly large systems are built as scale-out clusters: the IBM MVS Geoplex and SP2, the HP VMScluster and NonStop Himalaya, and the NCR Teradata system are just a few examples. Clusters are also appearing in the form of storage area networks from EMC, HP, IBM, and others. Unlike increasingly larger SMP systems, clusters can grow in small increments using commodity components, and the relative independence of cluster nodes gives a natural failover and high-availability design. However, clustering poses management challenges, because more components must be managed. SQL Server 2000 and Windows Server 2003: SMP and Clustered Megaservers Microsoft Windows Server 2003 and SQL Server"! 2000 support both SMP scale-up and cluster scale-out architectures. SQL Server scales down to run on portable computers and even runs on Windows CE, and scales up to run on huge servers. It delivers impressive peak performance for both transaction processing and data warehouse applications. Although the most common SMP hardware systems are 2-way, 4-way, and 8-way, SQL Server 2000 and Windows Server 2003 can run on SMP hardware systems with up to 64 nodes. These systems can have up to 64 gigabytes (GB) of memory with the 32-bit Intel architecture, and up to 4 terabytes of memory with Intel's new 64-bit Itanium architecture. To date, the largest configurations supported by SQL Server 2000 running on Windows Server 2003 are 32 processors with 512 GB of memory. These systems demonstrate excellent SMP scalability, both on audited benchmarks and in real applications. Today, a single CPU can support 14,000 users accessing a 1-terabyte database, an 8-processor node can support more than 92,000 concurrent users accessing a SQL Server managing billions of records on a 8-terabyte disk array, and a 32-CPU node can support 290,000 users accessing a SQL Server database hosted on 24-terabyte disk array. The largest of these servers are capable of processing more than 1 billion business transactions per day. A cluster of SQL Server SMP nodes can do even more. In one benchmark, HP demonstrated a 32-node cluster of 8-way Xeon processors supporting more than 575,000 concurrent users, and a 53-terabyte database processed 709,220 Transaction Processing Council Benchmark C (TPC-C) transactions per minute (tpmC), at a cost of less than $15 per tpmC. Based on the TPC-C metrics, SQL Server 2000 has the best peak performance and best price/performance of any database system in the world. SQL Server is also excellent at decision-support and data-mining tasks, demonstrating outstanding performance and price/performance on the popular TPC-H query set. SQL Server performance has been more than doubling each year since 1995, as measured by the TPC-C benchmark. Price/performance has been improving at a similar rate. The combination of continuing hardware and software improvements will continue this trend in the near future. SQL Server 2000: Scalability, Availability, Manageability SQL Server 2000 Enterprise Edition uses Windows 2000 Server and Windows Server 2003 features to build megaservers. SQL Server uses the extra processors to run extra execution threads and uses the extra memory to store more of the database in memory. The SQL Server relational engine supports high-speed transaction processing, as well as demanding data warehouse applications. The query execution engine exploits multiprocessor and multidisk systems, through parallel hybrid-hash joins and merge joins. The query processor has many innovations including hash teams, joining covering indexes, bit-vector filtering within hash joins, and transparent application access to views of value-based partitioned tables within a cluster. The query executor uses large main memories (up to 512 GB), large asynchronous I/O, and intraquery parallelism for good SMP performance on decision support queries. The optimizer has many special techniques for star schemas and other richly indexed databases. It optimizes batch updates by sorting them before they are applied to the base tables and the indices. The query processor exposes and uses native OLE DB, so it can integrate data from heterogeneous data sources. Using these techniques, SQL Server has the best TPC-C performance and best SMP scalability on nonclustered Intel systems, and the best peak performance on a cluster of SMPs. SQL Server 2000 supports indexed views that are important for report-oriented applications. SQL Server also includes powerful analytical (OLAP) tools to build and process data cubes. It also includes, data mining tools and a text-indexing and retrieval component. Distributed transactions allow partitioning of SQL Server databases among servers running Windows Server 2003, as well as servers running Windows 2000 Server, Windows XP , and Windows CE. Distributed transactions also allow SQL Server to participate in transactions that span DB2/MVS, UNIX, and Windows nodes, including databases from IBM and Oracle. Microsoft Distributed Transaction Coordinator supports the XOpen XA interfaces, and automatically manages the work of transactions that span these nodes. Microsoft and HP built clusters of 32-node and 45-node clusters that could process one billion transactions per day using Microsoft Distributed Transaction Coordinator. This cluster contained 32 servers running SQL Server, each storing part of the database. Microsoft COM+ managed the application and coordinated transactions among the servers. Scalability and Availability Features SQL Server 2000 has powerful scalability and reliability features including: Log shipping for hot standby servers. Updateable partitioned views among cluster nodes. Large memory support (up to 16 terabytes). SMP support (up to 64 processors). Support for large Windows Server 2003 Data Center Server clusters. Support for multiple instances of SQL Server 2000 on a single server. Integration with Active Directory to provide location-transparent access to servers running SQL Server. Improved parallelism in data and database management operations. Indexed views and snowflake schema to support large-scale data warehouses. Native XML support for Internet and data interchange operations. Notification Services to support client caching and messaging applications. SQL Server uses the Microsoft Cluster Service to support symmetric virtual servers: each SQL Server cluster node acts as a hot standby for up to three others, while still performing useful work. For disaster recovery, SQL Server supports log shipping from one server to a remote server; in case of catastrophic failure at the primary server, the second server can recover within minutes and continue offering service to customers. SQL Server has a well-earned reputation for easy installation and management: Enterprise Manager allows an operator to monitor and manage multiple instances of SQL Server from a single console embedded within the Windows Server 2003 master console. The database is largely self-tuning. As memory is added, SQL Server uses it; as memory pressure from other applications increases, SQL Server releases it. Similarly, SQL Server dynamically grows and shrinks the database and log space based on demand. The system computes database statistics and performs other housekeeping tasks automatically, freeing the database administrators and operators to focus on higher-level issues. SQL Server provides an extensive collection of wizards to help administrators automate standard tasks. There is a job scheduler to perform these tasks on a regular basis. The alert system records events in the Windows event log, and alerts the operator by e-mail or page. It also optionally invokes a user-defined database procedure for each event class. SQL Server 2000 supports multiple instances on one SMP node. A single large SMP node can host multiple servers each serving multiple databases. SQL Server supports exabyte-sized databases; the only practical limit is how long it takes to backup, recover, and reorganize the database. In addition, the SQL Server product has made enormous strides in this area over the last few years: backup and restore are now incremental and restartable. Computer Associated backed up 2.6 terabytes per hour and restored at 2.2 terabytes per hour with only a 25 percent degradation in online throughput. Even more impressively, SQL Server can recover a 2.5-terabyte database from a disk shadow copy in 11 minutes, using Windows Server 2003 shadow-disk technology. These rates are improving with improved storage and network technologies. For more information, search on "Multi-Terabyte Backup Benchmarking," at the Computer Associates website at http://ca.com/. SQL Server is designed to monitor and tune itself automatically as the load or hardware environment changes. Tools have been added to help design the database, to watch the system, to display system status and query plans graphically, to recommend reorganization, and to help the operator manage routine tasks. A sophisticated built-in workflow system orchestrates data scrubbing, data transformation, and data loading typical of most data marts and data warehouses. Finally, a wizard examines the system workload and recommends better physical designs. Clusters allow SQL Server to scale out to arbitrarily large databases. Windows Server 2003 clusters provide modular growth, allowing customers to buy just what they need, and grow the system by adding processing, storage, and network modules to the server as demand rises. Microsoft simplifies building and managing these megaservers; indeed, Microsoft wants to bring the ease of Plug and Play to enterprise clusters, and is automating much of the work of configuring and managing a cluster. SQL Server 2000 offers transparent access to data partitioned in such clusters. Partitioned clusters potentially allow a multi-hundred-terabyte database. Such a system should be big enough for almost any application; moreover, if current price trends continue, by 2005, such a cluster could be built from commodity components for a few million dollars. The following table documents the scalability status of SQL Server. The numbers cited are not hard limits, but instead indicate how far Microsoft expects the tools to scale. SQL Server 2000 Scalability as of March 2003TechnologiesActive UsersThroughputDatabase SizeSMP, failover, parallel query, distributed transactions, SQL Server Enterprise Manager400,000300,000 transactions per minute250 million transactions per day40 terabytesClusters of SMPs, failover, parallel query, distributed transactions, SQL Server Enterprise Manager700,000500,000 transactions per minute 1 billion transactions per day60 terabytesData warehousing and decision support, star schemas, complex query optimization, data cubes, data mining technologies1002,000 queries per hour3 terabytesAt the other end of the scalability spectrum, SQL Server 2000 has scaled down to small Windows systems, and offers disconnected operation for these systems to support mobile applications. A Windows CE version of SQL Server is available. Scalability Metrics Kinds of Growth As organizations grow and acquire more data, they must deal with increased transaction workloads and larger databases. Each major increment presents new scalability challenges. Scalability covers several kinds of growth: Growing user population and network loads. If the user population doubles, the network and database workload probably does too. Growing database size. With databases commonly reaching hundreds of gigabytes, operations such as backup, restore, and load can become bottlenecks. Growing transaction complexity. Application designers are building more intelligence into applications, relieving users of tedious tasks. Increasingly, applications are used for data mining and data analysis. Growing applications. As applications become easier and less expensive to build, organizations are using computers in new ways. These new applications increase the load on existing databases and servers. Growing numbers of servers. Clustered and distributed applications involve many nodes. As desktops and portable computers grow in power, they acquire local data stores and replicas of key data sources. Scalable systems allow a large number of nodes to be managed easily from a single location. Scale Up, Scale Out, and Speed Up An ideal system's performance scales linearly; that is, if you double the number of processors and disks, throughput doubles, or response time is cut in half. These results are known as linear scale up and linear speed up, respectively. Linear scaling is rarely achieved in practice, however, because it requires all aspects of the system to be perfectly scalable. It is tempting to simplify scalability to a single metric, such as the number of processors a system can support. However, many database applications are very I/O intensive, so adding CPUs to an I/O-bound system will not make it faster. Microsoft SQL Server running on today's typical 4-processor servers can achieve performance comparable to other software running on hardware with 10 processors. SQL Server 2000 and Windows Server 2003 support 64 GB of main memory on Intel 32-bit architectures, and up to 4 terabytes of main memory on the Intel Itanium 64-bit architecture. Huge main memory reduces I/O traffic and gives SQL Server a substantial performance boost. SQL Server 2000 also supports 32-way SMPs and large clusters built from these SMPs. There is no universally accepted measure of scalability. However, useful information can be gained from Transaction Processing Performance Council (TPC) benchmarks (see http://www.tpc.org). The TPC is a nonprofit organization that defines industry-standard transaction processing and database benchmarks. Members of the council today include all major database vendors and suppliers of server hardware systems. They have defined a series of benchmarks, TPC-A, TPC-B, TPC-C, TPC-D, TPC-H, TPC-R, and TPC-W. TPC-C is the industry-standard benchmark for measuring the performance and scalability of OLTP systems. TPC-C tests a broad cross-section of database functionality including inquiry, update, and queued minibatch transactions. The specification is strict in critical areas such as database transparency and transaction isolation. Many consider TPC-C a good indicator of real-world OLTP system performance. Independent auditors audit the benchmark results, and a full disclosure report is filed with the TPC. These reports contain a lot of information about how easy the various systems are to use and how much the systems cost. The audited results in the following table show that SQL Server 2000 and Microsoft Windows Server 2003 deliver excellent SMP scalability for up to 32 processors. Indeed, it has better TPC-C performance and price-performance than any SMP result (or cluster result) reported by Oracle or DB2 on any platform. SMP Performance and Price Performance (8 to 64 cpus) on the TPC-C Benchmark* SQL Server vs. DB2 vs. Oracle DatabaseHardwareCPUstpmC$/tpmCSystem CostAvailability SQL Server 2000 Enterprise HP Proliant DL760-G2 8P8115,025 $7.69$ 884,2163/31/2003Oracle 9i R2 Enterprise Edition IBM eServer pSeries 660 - 6M1 8105,025$23.45$2,462,4019/21/2001DB2/AS400 V4 R5IBM eServer iSeries 400 - 840-2420-1 24163,776 $51.58$8,448,137 12/15/2000Oracle 9i R2 Enterprise EditionIBM eServer pSeries 690 32427,761$17.75$7,591,03805/31/03Oracle 9i R2 Enterprise EditionHP 9000 Superdome 64423,414$15.64$6,621,0728/26/2002SQL Server 2000 Enterprise 64-bitNEC Express 5800/1320Xc C/S 32433,108$12.98$5,619,5286/30/03*Best SMP results from each database vendor as of March 6, 2003. The table shows recent SMP TPC-C benchmarks of SQL Server and the best comparable results of the other database vendors on 8-way and 32-way SMP servers. It shows that SQL Server on an 8-way SMP server supporting over 100,000 tpmC and accessing an 8-terabyte database, SQL Server has the best 8-way SMP performancebetter than any 8-way UNIX systems running DB2 or Oracle. The Microsoft solution is also three times less expensive. On 32-processor systems, SQL Server achieves slightly better performance than the best reported Oracle result. Overall, SQL Server has better peak performance than DB2 or Oracle, and is typically much less expensive than the UNIX solutions. The previous table showed the best TPC-C results for single-node SMPs the scale-up metric. In fact, most large servers are actually farms of Web servers that front-end clustered database servers. This is the scale-out design, for which performance results are shown in the following table. Clustered Performance and Price Performance (8 to 64 cpus) on the TPC-C Benchmark* SQL Server vs. DB2 vs. Oracle Clustered DatabaseHardwareCPUstpmC$/tpmCSystem CostAvailability SQL Server 2000 Enterprise EditionHP ProLiant DL760-900-256P272 (34x8)709,220$14.96$ 10,603,80310/15/01Oracle 9i R2 Enterprise HP ProLiant DL580-PDC 32P 32 (8x4)138,362$17.38$2,404,5033/5/03Oracle 9i R2 Enterprise HP ProLiant DL580-PDC 32P 32 (8x4)137,261$18.46$2,533,0959/6/02SQL Server 2000 Enterprise Edition**HP Proliant DL760-G2 8P 8 (1x8)115,025 $7.69$ 884,2163/31/03*Best cluster results as of March 6, 2003. **This nonclustered result is shown for comparison purposes.  EMBED Excel.Chart.8 \s  Figure 2: Throughput vs. CPUsSQL Server has long dominated the scale-out category of the TPC-C benchmark. As expected, these scale-out results are substantially higher than those scale-up results possible with SMPs. SQL Server 2000 holds the top performance spots. SQL Server 2000 delivers the best performance and the best price/performance of any database system. Its performance is 60 percent higher than the performance of its closest competitor. Two Oracle results are reported here, one on Windows 2000 Server and one on Linux, using nearly identical hardware (although the benchmarks are done about 6 months apart, so the Linux hardware is slightly cheaper). The best SQL Server result is more than five times better than Oracle's best cluster result; indeed, Oracle's best cluster result is more comparable to a single node, 8-CPU SQL Server result. Also, the Oracle price/performance is uniformly worse. In summary, it is fair to say that the TPC-C results show that SQL Server has the best peak performance and the best price/performance of any product on any platform. SQL Server 2000 scales nearly linearly on a cluster of HP nodes running Windows 2000 Server. Figure 2 above shows the thousands of transactions processed as a cluster grows by adding groups of 8-processor SMPs. The cluster starts with 16, then 24, and then 32 SQL Server nodes. (The actual node counts are 17, 26, and 34; the extra nodes act as transaction coordinators.) The largest system consists of 272 CPUs, serving a 58-terabyte database spread across more than 3,000 disks. The largest system should be enough for even the largest e-commerce sites, but if not, the cluster can be grown by adding more nodes to the cluster. These numbers are beyond anything reported by any other system on any platform. SQL Server on a cluster of HP DL76-9000 servers shows near-linear scale out as nodes are added (once the initial cost of the scale-out design is paid). This shows the scalability from 17 to 26 to 34 8-processor SMP nodes (272 CPUs in all). As the system scales up, disks and network bandwidth are added along with processors and memory. The TPC-W benchmark models a Web server application with much more complex transactions. The primary metrics are the performance metric of Web Interactions Per Second (WIPS) and the price-performance metric of $/WIPS. To date, only IBM/DB2 and SQL Server have reported results. The best results so far are shown in the table below. Best Results on TPC-W Benchmark (100,000 Items)*DatabaseHardwareWIPS$/WIPSAvailability SQL Server 2000 Enterprise EditionUnisys ES 7000010,440$106.737/10/01IBM DB2 UDB 7.2IBM eServer xSeries 430 7,554$136.806/8/01Oracle No entry---*Best SMP results of each vendor as of March 6, 2003. Turning to decision support and reporting workloads, the TPC has defined a widely reported workload, TPC-H, The TPC Benchmark"!H (TPC-H) is a decision support benchmark that defines a suite of business oriented ad-hoc queries and concurrent data modifications. The benchmark illustrates decision support systems that analyze large data volumes with complex queries. The performance metric reported by TPC-H is called the TPC-H Composite Query-per-Hour Performance Metric (QphH@Size). SQL Server has reported TPC-H results in the 100-GB and 300-GB categories. The best results for 300 GB are shown in the table below. No clear pattern emerges from this table. However, SQL Server is among the least expensive solutions and has respectable performance on a 16-processsor SMP server. SQL Server vs. SMP UNIX Solutions on the TPC-H Benchmark (300 GB) Database Hardware CPUsQphH @300 GB$/QphH @300 GBSystem CostAvailability DateInformix XPS 8.31 FD1HP Alpha Server ES40 Model 6/667162,832$1,058$2,995,03402/14/01SQL Server 2000 Enterprise Edition. 64-bitUnisys ES7000 Orion 130164,774$219$1,043,15303/31/03Oracle 9i R2 Enterprise EditionHP Alpha Server ES45 Model 68/1000165,976$453$2,706,06306/01/02IBM DB2 UDB 7.2HP ProLiant DL760 x900-64P6412,995$199$2,573,870 06/20/02*Best performance results of each vendor as of March 6, 2003. TPC results are confirmed by many other benchmarks tests from the likes of SAP, PeopleSoft, and others. The following table summarizes these benchmarks. They show that SQL Server ranks first in several significant end-user benchmarks. Best Results on Application BenchmarksBenchmarkWorld RecordWinnerTPC-C709,220 tpmC $14.96 per tpmCSQL ServerTPC-W21,139 WIPS @ 10,000 $32.62 per WIPSSQL ServerTPC-H27,094 QphH @ 3 TB $240 per QphHOracleSAP R/3 Sales & Distribution47,528 concurrent usersIBMSAP R/3 Retail3.2 billion sales data line items/hrSQL ServerGreat Plains Software2,400 concurrent usersSQL ServerOnyx57,000 concurrent usersSQL ServerPivotal eRelationship20,000 concurrent usersSQL ServerCA Brightstor Backup2.6 terabytes per hourSQL ServerPeopleSoft eBill Pmt191,694 payments per hourSQL ServerPeopleSoft CRM 8.425,400 concurrent usersSQL ServerPeopleSoft Financials15,000 concurrent usersIBMJ.D. Edwards OneWorld9,000 concurrent usersOracleThe best performance metric, of course, is how well the system scales for your application. That is impossible to know in advance, but you can estimate scalability by examining standard benchmarks and by looking at applications in related industries. Scalable Hardware Architectures Technology Trends Encourage Building Scalable Systems Today, commodity components make up the fastest and most reliable computers, networks, and storage devices. The entire computer industry uses the same family of RAM chips that go into computers. Memory prices for commodity computers are often three to ten times less than the price of the same memory for a proprietary computer. Meanwhile, the intense competition among microprocessor vendors has created incredibly fast processing chips. Indeed, the most powerful supercomputers are built from such chips. Conventional water-cooled mainframes are moving to this higher-speed technology. Still, commodity workstations and servers rival and often outstrip the performance of mainframes. The pace of change in this commodity market is so rapid that the low end is years ahead of the installed base of conventional mainframe and minicomputer architectures. On the networking side, commodity computer interconnects are also making extraordinary progress. Ethernet speeds have graduated to 120 MB per second. Switched Ethernet gives a 100-fold speed up in local networks at commodity prices. Ten-gigabit and 40-gigabit Ethernet networks are on the horizon. Switched Ethernet, fiber-channel, and other new interconnection technologies offer inexpensive high-speed system area networks (SANs) that will be the basis of clustered architectures in the next few years. As for storage, the highest-performance and most reliable disks are 3.5" SCSI disks. They have doubled in capacity every year, and are rated at a 50-year mean time to hardware failure. Today, 74-GB disks are standard, and 300-GB disks are available for high-capacity applications. By the end of 2005, disks of 1-terabyte capacity are predicted. In early 2003, $1,000 buys 300 GB of disk capacity. This is a 10,000-fold improvement over disks of 20 years ago. These low prices explain why today's typical servers are configured with several terabytes of disk capacity: such disks cost about $3,000 per terabyte. The chart also suggests that by 2005, servers will typically have 50 terabytes of disk storage, and that by the end of the decade, petabyte-sized disk stores will be common. These will contain very large databases. Computer Architecture Choices for SMPs and Clusters The proliferation of many processors, disks, and networks poses an architectural challenge: What hardware architecture best exploits these commodity components? No single winner has emerged, but there is broad agreement that three generic architectures can provide scalability: shared memory, shared disk, and shared nothing. Shared memory is used by SMP systems, while shared disk and shared memory are used by clusters. Windows 2000 Server and Windows Server 2003 support all these architectures, and will evolve in parallel as these architectures evolve. SMP Systems SMP grows a server by adding multiple processors to a single shared memory. The system grows by adding memory, disks, network interfaces, and processors. SMP is the most popular way to scale beyond a single processor. The SMP software model, often called the shared-memory model, runs a single copy of the operating system with application processes running as if they were on a single-processor system. SMP systems are relatively easy to program, and they leverage the benefits of industry-standard software and hardware components. SQL Server 2000 is designed to scale well on SMP systems. The practical limits for general-purpose use today on a single SMP node are: 64 processors. 512 gigabytes of main memory. 30 terabytes of protected storage (400 74-GB disk drives configured as 60 hardware RAID sets and 10 logical volumes) per node. 400,000 active clients accessing a SQL Server via the IIS Web server or some transaction monitor. These are the maximum sizes Microsoft has seen. Typical large servers are half this size or less. With time, SQL Server, Windows, and hardware technology will improve to support even larger configurations. SMP Scalability Today, SMP is by far the most popular parallel hardware architecture, and with good reason. SMP servers based on industry-standard Intel microprocessors deliver astonishing performance and price/performance for database platforms. Intel markets an 8-way SMP board based on the Xeon processor that is incorporated in servers from many hardware vendors. Intel 8x Xeon servers have been the workhorses of client-server and e-commerce computing for the last few years. Now 32-processor Xeons and Intel's 64-bit Itanium architecture are also maturing. The most impressive SMP numbers take advantage of the massive main memory enabled by these Itanium processors. SQL Server achieves nearly linear SMP scalability on the TPC-C online transaction processing benchmark. Throughput (transactions per minute) increases as CPUs are added. SMP systems become increasingly expensive to build as microprocessor speeds increase. The price steps are modest as a system scales up from 1 processor to 4 processors. Going to 8 processors is also relatively easy. Going beyond 32 processors, however, is a challenge, prices rise steeply, and the returns diminish. At the software level, multiple processors concurrently accessing shared resources must be serialized. This serialization limits the practical scalability for individual applications in shared-memory SMP systems. These software bottlenecks in operating systems, database systems, and applications are as significant as the hardware limitations. Nonetheless, SMP systems are the most common form of scalability and will remain so for many years to come. Intel Xeon, and Itanium processors give very powerful and inexpensive SMP nodes. Diminishing Returns on SMP Performance with Added CPUsDatabaseHardwareCPUstpmC$/tpmCSys CostAvailableSQL Server 2000 Standard Edition Dell PowerEdge 2650/2.4/1P116,256$2.78$46,5029/11/02SQL Server 2000 Enterprise EditionHP ProLaint ML530G3 2P226,725$3,72$99,2113/31/03SQL Server 2000 Enterprise EditionHP ProLiant DL580-G2/2GHz 4P477,905$5.32$413,76412/31/02SQL Server 7.0 Enterprise EditionHP ProLiant DL760-G2 8P8115,025$7.69$884,2163/31/03SQL Server 2000 Enterprise EditionUnisys ES7000 Orion 23032234,325$11.59$2,715,3103/31/03SQL Server 2000 Enterprise 64-bitNEC Express 5800/1320Xc C/S32433,108$12.98$5,619,5286/30/03Oracle 9i Enterprise IBM eServer pSeries 690 32427,760$17.75$7,179,5985/31/03 The table above shows that SQL Server delivers good performance on standard and widely available SMPs. Using commodity hardware SQL Server delivers very cost-effective database support. Comparing the 32-processor SQL Server system to a 32-processor Oracle UNIX computer shows that the UNIX system costs 1.6 times as much, but delivers only 18 percent better performance. Windows Server 2003 clusters provide scale out, allowing customers to add processing, storage, and network services to a pre-existing configuration. The picture to the right shows a cluster that grew from one 8-cpu node to a six-node 48-cpu cluster by adding one node at a time. In this case, each node is an SMP megaserver Clusters are often built with commodity components and commodity interconnects. Dual interconnects give fault tolerance. Cluster Architectures A cluster is a set of loosely coupled, independent computer systems that behave as a single system. The cluster nodes may be single-processor systems, or they can be SMPs. The nodes may be connected by a commodity network or by a proprietary, very high-speed communications bus. The computers in a cluster cooperate so that clients see the cluster as if it were a single very high-performance, highly reliable server. Because the cluster is modular, it can be scaled out incrementally and at low cost by adding servers, disks and networking. Microsoft believes that the cluster is the most economical way to achieve scalability beyond 8 processors. Cluster architectures allow scale out to systems more powerful than any single SMP node. When demand exceeds the capacity of commodity SMP nodes, or when fault tolerance demands a second failover server, forming a cluster from multiple nodes is an attractive option. SQL Server 2000 and Windows clusters bring scalability and fault tolerance to the commodity marketplace. Microsoft has built clustering technology directly into the Windows 2000 Server and Windows Server 2003 operating systems; this technology works well with commodity servers and interconnects, and it leverages special hardware accelerators from vendors like HP, Dell, HP, IBM, and Unisys. Microsoft BackOffice products such as SQL Server, Internet Information Server, and Exchange take advantage of this clustering support. Many third-party products have also been ported to this architecture. Shared-Disk and Shared-Nothing Clusters There are two basic models for clusters: shared disk and shared nothing. In a shared-disk cluster, all processors have direct access to all disks (and data), but they do not share main memory. An extra layer of software, called a distributed cache or lock manager, is required to manage cache concurrency globally among processors. IBM's DB2/OS390 SysPlex and Oracle Parallel Server are common examples of the shared-disk parallel database architecture. Because the lock or cache manager serializes access to data, the shared-disk cluster has some of the same scalability limitations that shared-memory SMP systems have. A shared-nothing cluster, by contrast, is a federation of database systems. Each node in a shared-nothing cluster is a free-standing computer with its own resources and operating system. Each node has its own memory and disk storage; nodes communicate with one another by exchanging messages across a shared interconnect. Each is a unit of service and availability. Each node owns and provides services for some disks, tapes, network links, database partitions, or other resources. In case of node failure, the disks of one node may fail over to an adjacent node, but at any instant, only one node is managing each disk. It is easier to build shared-nothing clusters from commodity components. SQL Server 2000 Clusters SQL Server 2000 supports the shared-nothing cluster model with distributed partitioned views and with distributed transactions. A table can be partitioned by primary key values into disjoint member tables, each stored at one node of the cluster. A distributed partition view defined at each node unifies the member tables into a location-transparent view at each node. Applications can use this view to access the union of the member tables as a virtual table.  Figure 3: Price/performance vs. performance. The clustered SQL Server TPC-C benchmark results described earlier used distributed partition views in a shared-nothing cluster of up to 34 nodes. The resulting performance exceeds the performance reported for any other database system by a wide margin. Indeed, Figure 3 below shows the performance of SQL Server on this growing cluster, as well as the price/performance ($/tmpC) against performance (tpmC) of all reported systems over 100,000 tpmC as of December 2002. SQL Server has the best performance and the best price/performance by a wide margin. Notice that price/performance for SQL Server is about $13/tpmC for systems ranging from 100,000 tpmC to 700,000 tpmC. The UNIX systems are more expensive and deliver less throughput. SQL Server Performance Improvements The performance improvements over time of SQL Server on the TPC-C benchmark are impressive. The graphs below show the peak throughput and peak price/performance reports of SQL Server since early 1995. The performance has improved from 2,455 tpmC to 709,220 tpmC, a 290-fold improvement in 7 years. The price has meanwhile dropped from about $240/tpmC to less than $3/tpmC. This is approximately a 90-fold price improvement. Annualized, this represents a 125 percent improvement in performance and a 65 percent improvement in price each year. In round numbers, performance has doubled and price halved every year for the past 7 years. With the introduction of clustering in SQL Server 2000, there is no practical limit on how large a transaction processing database you can build with SQL Server. Figure 4: SQL Server performance gains since 1995 The performance and price/performance data for SQL Server have improved dramatically over the last 7 years. These graphs show progress on the TPC-C benchmark from 1995 to 2003. The upper graphs are linear, and the lower are semi-log to show the growth rate.A single instance of SQL Server on Windows can support thousands of users accessing a database containing billions of records. Such systems are capable of supporting a user community exceeding 250,000 or a much larger community of Internet users who are occasionally connected to the server. Just to give a sense of scale, the largest American banks have about 10,000 tellers, and the largest telemarketing organizations have fewer than 10,000 active agents; these systems could support the traditional front office of huge corporations. As a demonstration, the SQL Server team built a large multimedia database, called TerraServer. It stores several terabytes of satellite images of the earth, 10 million square kilometers in all. The images are stored in 350 million database records on 324 HP StorageWorks"! disks. The server has been on the Internet since June 1998. In that time, it has served 6 billion queries to several million visitors. A second demonstration, also using SQL Server, partitioned a 1 billion-record banking database among 20 servers running SQL Server, each running on one of 20 nodes. The database partitioning was managed by the application. COM+ and Microsoft Distributed Transaction Coordinator were used to coordinate transactions that involved more than two servers. Using partitioned views, SQL Server 2000 demonstrated extraordinary performance: a peak of 709,220 tpmC at $14.96/tpmC on a 34-node cluster. This is a nearly 6-fold increase over the single-node performance, and involves a 54-terabyte database. By adding more nodes, that system could scale to even higher performance. These examples show that SQL Server can handle huge transaction volumes (millions per day), huge user communities (tens of thousands) and huge databases (terabytes). The product has moreover been improving by a factor of 2 to 3 each year. The improvements are partly due to faster and less expensive hardware, but SQL Server itself has been improving very rapidly. We believe that both the hardware and software improvements will continue at this blistering pace for the foreseeable future. SQL Server Software Scalability Architecture SQL Server 2000 Application Architecture SQL Server 2000 is designed to fit into the .NET architecture. Its tools and support system help customers build Active Server Pages and COM+ objects that implement the business logic and access data managed by SQL Server. Each Windows node typically has a single SQL Server address space managing all the SQL databases at that node. SQL Server runs as a main address space with several pools of threads. Some threads are dedicated to housekeeping tasks like logging, buffer-pool management, servicing operations requests, and monitoring the system. A second, larger pool of threads performs user requests. These threads execute stored procedures or SQL statements requested by the clients. Typically, SQL Server is used in a client/server environment where clients on other computers connect to the server and either issue SQL requests or, more commonly, run stored procedures typically written in the Transact-SQL language. Clients may also be colocated at the server node. SQL Server uses a built-in transaction processing (TP) monitor facility, Open Data Services, to support large numbers of clients. In practice, this configuration has scaled to 5,000 concurrent clients. Beyond that size, it makes sense to either partition the application into a cluster of nodes, or use a Web server or TP monitor to connect clients to SQL server. Common TP monitors such as CICS, Tuxedo, and Top End have been ported to Windows and interface with SQL Server. Increasingly, applications are being built using Internet Information Services (IIS) and Active Server Pages (ASPs) for presentation. These ASPs use Microsoft Visual Basic Scripting Edition or JavaScript to invoke business-logic COM objects that in turn call SQL Server using the Active Data Objects (ADO) interface. An object request broker and distributed transaction manager are built into Windows. Cluster Transparency Cluster transparency allows applications to access data and objects anywhere in the cluster as though the data were local; data can move from one partition to another without affecting behavior of the application programs. Being able to add nodes to the system and move data to those new nodes without changing the applications, makes transparency the key to modular growth. Transparency is also key to high availability, allowing data to fail over from one node to another when the first node fails. Distributed Systems Techniques Distributed systems techniques are the key to building transparency in clusters. By structuring applications and systems as modules that interact via remote procedure calls, applications become more modular, and they can be distributed among nodes of the cluster. The client calls upon a service by name. The procedure call either invokes the service locally or uses a remote procedure call if the service is remote. Microsoft has invested heavily in structuring its software as components that interact via remote procedure calls. The resulting infrastructure is variously called OLE (object linking and embedding), COM (component object model), DCOM (distributed COM), Microsoft ActiveX (the Internet-centric extensions of COM), and most recently COM+. Many aspects of COM+ are in place today and more are coming soon. In particular, with Windows and SQL Server 2000, Microsoft delivers the following: COM+ is a core part of Windows Server. It allows any object to be safely and efficiently invoked, so that one program can invoke other programs running anywhere in the network. It combines the features of a transaction manger with the features of an object request broker and a TP monitor. It is the core of Microsoft's distributed object mechanisms. Distributed transactions allow applications to do work at many SQL Server database partitions, as well as other resource mangers, and automatically and transparently get the ACID distributed-transaction semantics. OLE DB allows SQL Server and other data integrators to access data from any data source. OLE DB interfaces are being built for almost all data sources. Most Microsoft data storage components have an OLE DB interface (for example, Exchange Server, Active Directory, Word, and Excel), and OLE DB interfaces are rapidly appearing for legacy data stores like VSAM and RMS. Database Management Objects (DMO) is a COM externalization of all the management interfaces to SQL Server. Using DMO, customers and ISVs can build tools to manage local and remote computers running SQL Server. Windows also includes a reliable queuing mechanism, Message Queuing, that allows applications to issue deferred invocations. These queues work for disconnected nodes as well, allowing them to submit work that will be processed when the node reconnects to the main network. SQL Server 2000 now includes a notification service that provides a robust and scalable way to signal clients when the state of the database changes. This can be used to manage stock levels, delivery schedules, and other situations where timely action is required when the database state changes. Windows already supports these features along with many other cluster facilities including cluster security (domains), cluster software management (System Management Server), cluster naming (Distributed Name Service and Active Directory), and cluster performance monitoring (System Monitor). SQL Server complements these facilities with management tools built into Enterprise Manger that allow it to manage and monitor an array of servers running SQL Server. A key goal of Windows and SQL Server is to make the cluster as easy to manage and use as a single large system. Windows and SQL Server have facilities to manage and balance application servers across a cluster of many nodes. Active Directory tracks objects and gives clients transparent access to them. Windows clusters have a common console and a simple management model for all the components. Clusters have the added benefit that fault tolerance masks many system faults and provides highly available services. Distributed Partitioned Views SQL Server allows users to partition a table into many member tables, and then create a partitioned view over the set of member tables. Such views are called distributed partition views. Each member table can be stored at a different node of the cluster. If the view definition is replicated at each cluster node, applications can access the whole table from any node as though the table were stored locally. Distributed partitioned views are created as follows. First, the table is partitioned on the prefix of the primary key field. These subtables, called member tables, all have the same schema as the original table, except that they have an additional integrity constraint on the partitioning attributes that limit the range of values of the partitioning field (for example, customer_ID between 1000000 and 2000000). A union view is created that combines all these tables. Then, at each of the members of the cluster, the administrator performs these steps: The administrator defines the member table and populates it with the data for that member table. The administrator defines a link to all the other members of the federation, so that SQL Server 2000 can access the other nodes as part of its distributed query processing. The administrator defines the distributed partitioned view as a union of the member tables. Thereafter, the applications can efficiently access the distributed partitioned view and the underlying member tables as though all the data were local. The SQL Server 2000 query optimizer and Microsoft Distributed Transaction Coordinator (MS DTC) assure that programs execute efficiently, and that they get ACID properties. Partitioned Data and Data Pipes SQL Server has always allowed customers to partition their databases and applications among instances of SQL Server running on several nodes. Clients connect to an application at one of the servers. If a client requests access to data at another node, the application can either access the data through Transact-SQL, or it can make a remote procedure call to the instance of SQL Server at the other node. For example, each warehouse of a distributed application might store all the local orders, invoices, and inventory. When an item is backordered or a new shipment arrives from the factory, the local system has to perform transactions that involve both the warehouse and the factory nodes. In this case, the application running on a server at the warehouse can access the factory data directly, or it can invoke a stored procedure at the factory server. MS DTC and SQL Server automatically manage the data integrity between the factory and the warehouse. After data and applications are partitioned among multiple servers in a cluster, there needs to be a convenient and high-performance way to move data among these servers. Data pipes make it easy to ship data between servers by capturing result sets returned by remote procedure calls directly in node-local tables. This approach can be used by many applications as an alternative to distributed query. Distributed Transactions Distributed transactions are an integral part of Windows Server and one more step toward a full Windows Server cluster facility. To create a distributed transaction, applications declare BEGIN DISTRIBUTED TRANSACTION, and MS DTC then manages the transaction automatically. MS DTC also connects SQL Server to the open transaction standard X/Open XA. Clients can connect to TP monitors like CICS, Encina, and Tuxedo, which in turn route requests to the servers. The use of TP monitors to route transactions to the appropriate servers is another approach to distributing the application. A TP monitor also allows SQL Server to participate in transactions distributed across many nodes. Lastly, Windows Server 2003 includes Microsoft COM+, an embedded transaction monitor. COM+ dispatches client requests to application servers. All these approaches make it relatively easy to partition data and applications among servers in a cluster. Transparent Partitioning and Parallel Database Techniques Everything described so far exists; you can acquire and use it today. Indeed, many customers are installing SQL Server on their servers, scaling up to 8-way SMP hardware systems, and then scaling out beyond that by partitioning their databases and applications. Often, these partitions are placed close to the actual data users: data collection is placed in the retail outlets, a data mart of recent activity is placed in the accounting group, and a data warehouse is placed in the planning and marketing group. Each of these applications is fairly separate and partitions naturally. In addition, the data flows among the groups are well-defined. Replication and data pipes make it easy to move data among servers. The systems are very scalable. The graphical and operations interfaces, combined with Microsoft Visual Basic scripting, are used to automate the operation of many computers running SQL Server. Over the next few years, Microsoft expects to add transparent partitioning of data among computers running SQL Server, allowing partitioned data without requiring that the application be made aware of the partitioning. After partition transparency is in place, the SQL Server group expects to provide parallel query decomposition. That is, large data queries typical of decision-support applications will be decomposed into components that can be independently executed by multiple nodes of a partitioned database. Data Partitioning Example: TPC-C and 1 Billion Transactions per Day Distributed partitioned views in SQL Server make possible the very high TPC-C performance discussed in the previous sections, almost twice the peak performance of any other DBMS. The great part about that design is that it can be grown to manage twice as much data and process even more transactions by just adding more nodes and more federated SQL Servers to the cluster. Microsoft, Intel, and Compaq cooperated to build a large (140-CPU, 45-node, 4-terabyte) system running the DebitCredit transaction in a classic three-tier DCOM+ SQL Server 7.0 application. Twenty front-end nodes simulated 160,000 connected users submitting transactions at the rate of 14,000 transactions per second. Twenty server nodes each stored equal portions of the database in an instance of SQL Server. That system did not use distributed partitioned views; rather, the application had to manage the data partitioning manually. The client nodes simulated the network and made DCOM calls to objects on the client that in turn made ODBC calls to the servers. The servers collectively stored 1.6 billion account records and were sized for 30 billion history records. The servers ran 85 percent of the transactions locally, and 15 percent of the transactions were remote. MS DTC coordinated the distributed transactions. Five nodes were dedicated to this function. The system was run continuously at the Microsoft Executive Briefing Center for a year, and processed about 1.1 billion transactions each day, approximately five times more transactions than the travel industry, 10 times more than all the credit card transactions in a day, and one thousand times larger than the largest stock exchange. Today, we would do that application with partitioned distributed views on SQL Server 2000. High-Availability Databases with Microsoft Cluster Service SQL Server Enterprise Edition offers fault tolerance and high availability by providing failover from one server to another when the first server fails or needs to be taken out of service for maintenance. The failover mechanism works as follows. Two Windows Server 2003 servers are configured as a cluster. These two servers can support two instances of SQL Server. Each server manages a partition of the application database. So far, this is just standard SQL Server technology. With SQL Server Enterprise Edition, each server can be made a virtual server that continues to offer service, even if the underlying node is taken offline by a fault or for system maintenance. To achieve this, the SQL Server databases are placed on shared SCSI disks accessible to both servers. If one server fails, the other server takes ownership of the disks and restarts the failed server on the surviving node. The restarted server recovers the database and begins accepting client connections. For their part, clients reconnect to the virtual server when the primary server fails. A Windows 2000 Server feature, Microsoft Cluster Service, allows the virtual server name and IP address to migrate among the nodes, so that clients are unaware that the server has moved. Microsoft Cluster Service is available in Windows 2000 Server, as well as Windows Server 2003 Enterprise Edition and Windows Server 2003 Datacenter Server. SQL Server Enterprise Edition provides native setup support to set up virtual servers. After configuration, the virtual servers look just like any other server in the network, except that they can tolerate hardware failures. SQL Server failover is completely automatic. Detecting and recovering from failure takes only a few minutes. When the failed node is repaired, it is restarted and it becomes the new backup server. If desired, the node can fall back to the original server when it is repaired. Data Replication for Data Marts and Disaster Recovery Data replication helps configure and manage partitioned applications. Many applications naturally partition into disjoint sections. For example, hotel, retail, and warehouse systems have strong geographic locality. The applications and databases can accordingly be broken into servers for geographic areas. Similarly, customer care, sales force automation, and telemarketing applications often have strong partitioning. Nonetheless, all these applications need some shared global data. They also need periodic reporting and disaster recovery via electronic vaulting. Data replication helps solve these problems by propagating changes automatically from one database to another. Replication can propagate changes to a SQL Server system at a remote site for disaster recovery. Then, if the primary site fails, the backup site can recover and offer service. The same mechanism can be used to allow one site to act as a data warehouse for data-capture OLTP systems. The data warehouse in turn may publish its data to many data marts that provide decision support data to analysts. Some applications dispense with the data warehouse and have the operational systems publish updates to the data marts directly. SQL Server has a data replication system that is both powerful and simple to use. A graphical user interface in Enterprise Manager allows the administrator to tell operational databases to publish their updates, and allows other nodes to subscribe to these updates. This publish-distribute-subscribe metaphor allows one-to-one and one-to-many publications. Cascading distributors can scale the replication mechanism to huge numbers of subscribers. Replication is in transaction units, so each subscriber sees the database from a consistent point in time. SQL Server applications routinely publish tens of megabytes of updates per hour. Publication can be immediate, periodic, or on demand. Replication is fully automatic and easy to administer. SQL Server and Windows Server 2003 Manageability Because Microsoft provides easy installation of the operating system and database using graphical tools and wizards, it is relatively easy to build huge systems with SQL Server. SQL Server also includes wizards to set up operational procedures. These huge systems involve thousands of client systems, and huge databases; therefore, manageability is the challenge. Loading, dumping, and reorganizing 100-GB databases, at the 3 MB/sec data rate of most tape drives, takes 10 hours with one tape drive. Defining and managing the security attributes of 10,000 different users is also a daunting task. Configuring the hardware and software for 10,000 clients is another time-consuming task. Microsoft recognizes that manageability is the largest barrier to scalability. Microsoft's solution to these problems is described in the product documentation. This section summarizes the administrative facilities of Windows Server 2003 and SQL Server 2000. Scalable Windows Server 2003 Management Managing the software and hardware configurations of thousands of clients is probably the most challenging task of operating large client-server systems. Windows Server 2003 and Microsoft System Management Server automate many of these tasks. First, Windows security provides a domain concept and a single logon for each application running on Windows. Windows security provides user groups. Large user populations can be managed by authorizing groups and adding users to groups. The Windows 2000 Server security mechanism works as a collection of security servers (domain controllers) spread among the network nodes. This distribution provides both scalability and availability. Individual domains have been scaled to more than 40,000 users. Windows security scales beyond that size by partitioning into a multidomain architecture with trust relationships among domains. The security system has both a programmatic and an intuitive graphical interface that allows any node to manage the network security. Second, Microsoft System Management Server allows a single administrator to manage the software configuration, licensing, and upgrades of tens of thousands of clients. System Management Server automates most tasks, and tries to minimize exception situations that only an expert can solve. In addition, the Windows DHCP protocol automatically assigns TCP/IP addresses to nodes on demand, thereby eliminating time-consuming and error prone tasks, allowing node mobility, and conserving the address pool. Finally, Windows Server 2003 has built-in tools to log errors, manage disk space, set priorities, and monitor system performance. All these tools can manage a cluster of client and server nodes. The previous illustration shows System Monitor at one node tracking the CPU and network utilization of several nodes. Each Windows node has more than 500 performance counters for its internal behavior. SQL Server, Microsoft Exchange, and many other products ported to Windows integrate with System Monitor. Indeed, SQL Server adds more than 75 performance counters and integrates with the Windows event log to announce events. Scalable SQL Server Management SQL Server Enterprise Manager is a breakthrough in managing database servers. It gives administrators a visual way to manage and operate many SQL systems from a single console. The key features of SQL Server Enterprise Manager are: A graphical administration interface to control and monitor the operation of many servers and the clients accessing them. A job scheduler that runs periodic administrative tasks such as dumps, reorganizations, and integrity checks. A Data Management Objects mechanism that allows administrators to automate exception handling and to automate tasks, either by writing Visual Basic scripts or letting a wizard write the script. These procedures can use e-mail and a Telephony API (TAPI)-based beeper system to report results or notify operators. An extension mechanism that allows third parties to add new administrative tools. A fully graphical interface to configure and manage database replication. Integration with Active Directory, which registers servers and databases by name in a location-transparent way. SQL Server Enterprise Manager also includes wizards to set up routine operations. It provides a wizard to set up automatic backup, reorganization, and operations tasks. It provides another wizard to publish Web pages routinely from the database to the Internet or to an intranet. It also provides wizards to help set up data replication. Utilities to load, backup, recover, check, and reorganize large databases are key to operating a system with huge databases. Backing up a multiterabyte database using a single high-performance tape drive will take several hours, or even days. By using multiple disks and tapes in parallel, SQL Server and Windows 2000 Server have shown multiterabyte rates: 2.6 terabytes/hour online backup with a 26 percent additional CPU load, and 2.2 terabytes/hour online restore with a 12 percent additional CPU load. Backup and restore from disk is even faster. The SQL Server Enterprise Manager job scheduler, using commodity tape robots, orchestrates the backup/restore process. Backups can be done either at full speed or in the background at a slower rate. By doing incremental backups and by increasing the degree of parallelism, huge databases can be backed up in a few hours. Using the shadow-copy technology of Windows Server 2003, backups and restores of multiterabyte databases can be done in minutes. Summary Windows Server 2003 and SQL Server scale up to huge databases on a single SMP server and scale out to multiple servers each executing a part of the application and storing a partition of the database. SQL Server Enterprise Manager makes it easy to configure and manage these servers. OLE transactions, replication, and data pipes make it easy to move data and requests among them. Today, a single instance of SQL Server can support more than 250,000 active users connected to a single server via IIS and ADO/ODBC. These servers can process several million transactions in an 8-hour day. They support databases with billions of records spread across a hundred disks holding terabytes of data. A Windows Server 2 * , : P R h j btuû󳯳k`h6mHnHu2jh6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu$jh9hEh60JdUmHnHuh6jh6Uh6JOJQJh6Jh/n0JJCJ h h/n0Jn h/n0JJh/nhU (h=h0JJCJ hjh/nU$  * , Nfbt^>C #B #B #gdc:gd6gd6Jgd6Jgd/ndpZ,,,5-=>?XYZ[\]^_`{|𶠶o^𶠶 jRh6UmHnHu2jh6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu*h6B*CJOJQJaJmHnHphu$jh9hEh60JdUmHnHuhmHnHu j\h6UmHnHuh6mHnHujh6UmHnHu|}~8źypVFh9hEh60JdhmHnHu2jh6h6>*B*UmHnHphuh6mHnHu*h6B*CJOJQJaJmHnHphuhmHnHu jHh6UmHnHujh6UmHnHuh6mHnHuh9hEh60JdmHnHu$jh9hEh60JdUmHnHu2jh6h6>*B*UmHnHphu89:;<=>?@[\]^qrs¬ž{žpp_¬ž j4h6UmHnHuh6mHnHu2jh6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu*h6B*CJOJQJaJmHnHphu$jh9hEh60JdUmHnHuhmHnHujh6UmHnHu j>h6UmHnHu>D/I<VW J!!%"""TD #C #B ##$%>?@ABźypVźE j h6UmHnHu2jh6h6>*B*UmHnHphuh6mHnHu*h6B*CJOJQJaJmHnHphuhmHnHu j*h6UmHnHujh6UmHnHuh6mHnHuh9hEh60JdmHnHu$jh9hEh60JdUmHnHu2jh6h6>*B*UmHnHphuBCDEFabcdɦɛ{pVɛ2jh6h6>*B*UmHnHphuhmHnHu jh6UmHnHujh6UmHnHuh6mHnHu2jh6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu*h6B*CJOJQJaJmHnHphu$jh9hEh60JdUmHnHu9:;<opq¬ž{žpp_¬ž jh6UmHnHuh6mHnHu2jh6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu*h6B*CJOJQJaJmHnHphu$jh9hEh60JdUmHnHuhmHnHujh6UmHnHu j h6UmHnHu ()*,-źypVźE jh6UmHnHu2jsh6h6>*B*UmHnHphuh6mHnHu*h6B*CJOJQJaJmHnHphuhmHnHu jh6UmHnHujh6UmHnHuh6mHnHuh9hEh60JdmHnHu$jh9hEh60JdUmHnHu2j}h6h6>*B*UmHnHphu-./01LMNOdefǾǤǙynXǾ>2j_ h6h6>*B*UmHnHphu*h6B*CJOJQJaJmHnHphuhmHnHu jh6UmHnHujh6UmHnHuh6mHnHu2jih6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu.h6B*CJKHOJQJaJmHnHphu$jh9hEh60JdUmHnHu  '()BCDFGHIJKfg׻רm\׻ר j!h6UmHnHu2jU!h6h6>*B*UmHnHphuh6mHnHu.h6B*CJKHOJQJaJmHnHphu$jh9hEh60JdUmHnHuhmHnHu j h6UmHnHujh6UmHnHuh6mHnHuh9hEh60JdmHnHughiźypVźE j#h6UmHnHu2jA#h6h6>*B*UmHnHphuh6mHnHu*h6B*CJOJQJaJmHnHphuhmHnHu j"h6UmHnHujh6UmHnHuh6mHnHuh9hEh60JdmHnHu$jh9hEh60JdUmHnHu2jK"h6h6>*B*UmHnHphu9:;<defɦɛ{pVɛ2j-%h6h6>*B*UmHnHphuhmHnHu j$h6UmHnHujh6UmHnHuh6mHnHu2j7$h6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu*h6B*CJOJQJaJmHnHphu$jh9hEh60JdUmHnHu5679:;<=>YZ¬ž{žpp_¬ž j&h6UmHnHuh6mHnHu2j#&h6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu*h6B*CJOJQJaJmHnHphu$jh9hEh60JdUmHnHuhmHnHujh6UmHnHu j%h6UmHnHuZ[\yz{źypVźE j(h6UmHnHu2j(h6h6>*B*UmHnHphuh6mHnHu*h6B*CJOJQJaJmHnHphuhmHnHu j'h6UmHnHujh6UmHnHuh6mHnHuh9hEh60JdmHnHu$jh9hEh60JdUmHnHu2j'h6h6>*B*UmHnHphu456OPQSTUVWXstuvɦɛ{pVɛ2j)h6h6>*B*UmHnHphuhmHnHu j)h6UmHnHujh6UmHnHuh6mHnHu2j)h6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu*h6B*CJOJQJaJmHnHphu$jh9hEh60JdUmHnHu5 6 7 P Q R T U V W X Y t u ¬ž{žpp_¬ž jl+h6UmHnHuh6mHnHu2j*h6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu*h6B*CJOJQJaJmHnHphu$jh9hEh60JdUmHnHuhmHnHujh6UmHnHu jv*h6UmHnHuu v w (!)!*!C!D!E!G!H!źypVźE jX-h6UmHnHu2j,h6h6>*B*UmHnHphuh6mHnHu*h6B*CJOJQJaJmHnHphuhmHnHu jb,h6UmHnHujh6UmHnHuh6mHnHuh9hEh60JdmHnHu$jh9hEh60JdUmHnHu2j+h6h6>*B*UmHnHphuH!I!J!K!L!g!h!i!j!!!!!!!!!!!!!!!!!""""ɦɛ{pVɛ2j.h6h6>*B*UmHnHphuhmHnHu jN.h6UmHnHujh6UmHnHuh6mHnHu2j-h6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu*h6B*CJOJQJaJmHnHphu$jh9hEh60JdUmHnHu"" """#"$"%"&"'"B"C"D"E"c"d"e"~"""""""""""¬ž{žpp_¬ž j:0h6UmHnHuh6mHnHu2j/h6h6>*B*UmHnHphuh6mHnHuh9hEh60JdmHnHu*h6B*CJOJQJaJmHnHphu$jh9hEh60JdUmHnHuhmHnHujh6UmHnHu jD/h6UmHnHu""""""""""""""&& &&*&,&-&H&T&U&&&'źyokc_WPW_Lk_kDkhSh5hS h+h+h+h+5h+j1h+Uhjh6KHU*h6B*CJOJQJaJmHnHphuhmHnHu j01h6UmHnHujh6UmHnHuh6mHnHuh9hEh60JdmHnHu$jh9hEh60JdUmHnHu2j0h6h6>*B*UmHnHphu"""$& &,&-&V&QkdX$$Ifl  y t 6P644 lag;s$&P#$/Ifgd+$&P#$/Ifgd+TV&&'(*P-./156788ywwwwuwwwwwuC0EƀQs&C0EƀQs& ''..////11779::%;.;X;n;=E>>>>"?O?BBBBCCCqFFtGvGGLLLN4O`QRRSSTTUUUUVV`VcVVVWWXXYY5ZjhUmHnHu h5 h?8h *hh=h?8 hD. hhShh hSh hhhF h0JnhD. hhSh5B8P?BBC  6`04 PamVnVVVVW&W`P6666$$$$&`#$/Ifa$gd?8$$$&`#$/IfkdZ$$IfP\ " >  6`04 Pa&W'WWWWW`S<<<$$&`#$/Ifa$gd?8 $&`#$/Ifkd[$$IfP\ " >  6`04 PaWWXXXYY`^\Z^^kdw\$$IfP\ " >  6`04 PaY5ZZ[y6C0EƀQs&C0EƀQs&C0EƀQs&5ZLZZZ[[f\\ggggggh hhhhh h"h_h`h|hhhhhh%i&iiiiiiiiiDjEjjjjjjjjjjjjjjjlmm m m-m8mLm޹޹h?8h}J *hSzCJaJhSzCJaJ *hCJaJhB* KHmHnHphuhCJaJmH sH hCJaJ h}JCJ hSzCJhSzh h5?[f\]]_`bd|fg!hywuuuuuub$$$$o&`#$/Ifa$C0EƀQs&C0EƀQs& !h"h+h4h9h>hEhQh_hllllll$$$$o&`#$/Ifa$$$$ $o&`#$/Ifa$ikdS]$$IfP4(#x# 6`o04 Paf4_h`h|h'$$$o&`#$/Ifkd]$$IfP֞<(# F 6`o04 Pa|hhhhhhh$$$$o&`#$/Ifa$$$$o&`#$/Ifhhh'$$$o&`#$/Ifkd_$$IfP֞<(# F 6`o04 Pahhi iii%i$$$$o&`#$/Ifa$$$$o&`#$/If%i&i0i'$$$o&`#$/Ifkd#`$$IfP֞<(# F 6`o04 Pa0i6i^iaijiqi}ii$$$$o&`#$/Ifa$$$$o&`#$/Ifiii'$$$o&`#$/IfkdAa$$IfP֞<(# F 6`o04 Paiiiiiii$$$$o&`#$/Ifa$$$$o&`#$/Ifii j'$$$o&`#$/Ifkd_b$$IfP֞<(# F 6`o04 Pa jj j(j/j:jDj$$$$o&`#$/Ifa$$$$o&`#$/IfDjEjgj' $$$IfgdSzkd}c$$IfP֞<(# F 6`o04 Pagjjjjjjj$$$$Ifa$gdSz $$$IfgdSzjjjmn.,*%gd}Jkdd$$IfP֞<(# F04 PaLmSmwm=n?nnooo.o1onoooooop>p?pXpspppppq#q(qoqpqqqqqqqq(ttv!vvvHySy6zz*{Y{Z{{{|űš hCJ hCJ ho(hYv2hB*phh+h5jPkhU&j0B hB*OJQJUVphhjhUh?8hCJaJmH sH  h5hCJaJ h}JCJh=h}Jh4n0o1o:oCoHoMoTo`onoikde$$IfP46$$ 6`04 Paf4$$&`#$/Ifa$ noooo'$$&`#$/Ifa$kdDf$$IfP֞ :6$J8 6`04 Paooooooo$$&`#$/Ifa$$$&`#$/Ifa$ooo'$$&`#$/Ifa$kd@g$$IfP֞ :6$J8 6`04 Paopp%p,p7p>p$$&`#$/Ifa$$$&`#$/Ifa$>p?pXp%$$&`#$/Ifa$kdBh$$IfPi֞ :6$J8 6`04 PaXpsp|ppppp$$&`#$/Ifa$$$&`#$/Ifa$ppp%$$&`#$/Ifa$kdHi$$IfPi֞ :6$J8 6`04 Pappppppq$$&`#$/Ifa$$$&`#$/Ifa$qq2qoq'%%kdNj$$IfP֞ :6$J8 6`04 Paoqqqquuxy*{[{db`bbbW $$Ifa$skdp$$Ifl!P t 6P(0644 la$(&P#$/Ifgd$(&P#$/Ifgd [{\{e{n{s{z{{ $$Ifa$akdq$$IfP46$$04 Paf4{{{{{{{TNNEE< $$Ifa$ $$Ifa$$Ifkd#r$$IfPr P<6$  804 Pa{{{{||$|TNNEE< $$Ifa$ $$Ifa$$Ifkds$$IfPr P<6$  804 Pa$|&|6|H|L|P|T|TNNEEE $$Ifa$$Ifkds$$IfPr P<6$  804 PaT|V||sTRPPG $$Ifa$kdt$$IfPr P<6$  804 Pa||}}G_esЀԀ߀ !BC^ӃՃԄބSTHKӘטǝʝhU (hCJaJ h5hFh} hU% hCJ jhUmHnHu hCJhCJaJmH sH hCJaJmHsHh5CJaJhCJaJhCJaJhhh?87ʀЀ݀ $$Ifa$akdu$$IfP4!"04 Paf4 !B.(($Ifkd.v$$IfP֞ 4 !T8804 PaBEKR]f $$Ifa$fg.(($Ifkd)w$$IfP֞ 4 !T8804 PaÁ́ $$Ifa$́́.(($Ifkd*x$$IfP֞ 4 !T8804 Pa)2 $$Ifa$23C^.(($Ifkd+y$$IfP֞ 4 !T8804 Pa^ahmy $$Ifa$.,*kd,z$$IfP֞ 4 !T8804 PaԃՃ߃~wkd-{$$Ifl4#$  t 0644 laf4p $$Ifa$"NHH< $$Ifa$gdYo$Ifkd{$$IflF #    t06    44 lap"#)NYrll` $$Ifa$gdYo$Ifkd|$$IflF #   t06    44 laYZ`rll` $$Ifa$gdYo$Ifkd,}$$IflF #   t06    44 la„rll` $$Ifa$gdYo$Ifkd}$$IflIF #   t06    44 la„Ä҄rll` $$Ifa$gdYo$IfkdN~$$IflF #   t06    44 la0;rll` $$Ifa$gdYo$Ifkd~$$IflF #   t06    44 la;<AYdrll` $$Ifa$gdYo$Ifkdp$$IflF #   t06    44 lade{rll` $$Ifa$gdYo$Ifkd$$IflF #   t06    44 la˅օrll` $$Ifa$gdYo$Ifkd$$IflF #   t06    44 laօׅrll` $$Ifa$gdYo$Ifkd#$$IflF #   t06    44 la%=Hrll` $$Ifa$gdYo$Ifkd$$IflF #   t06    44 laHI_w{rll` $$Ifa$gdYo$IfkdE$$IflF #   t06    44 la{|rll` $$Ifa$gdYo$Ifkdւ$$IflF #   t06    44 la͇OZSÐNrpnlpppplpjpkdg$$IflF #   t06    44 la NɕHw4C0EƀQs&C0EƀQs&C0EƀQs&Hyǚ]R $$Ifa$C0EƀQs& RS\ejov $$Ifa$akd$$IfP4$$0$4 Paf4ɞ.((($Ifkd$$IfP֞bx$*80$4 PaĞŞ˞ўӞמٞ۞ܞߞ %+-139fǟߟbƠ '37hU (jhUmHnHuhU%hhCJaJhU (hU (CJaJhU (hCJaJmHsHhU (hCJaJmH sH hU (hCJaJhU (h2OCJaJ>ɞ˞Ҟ؞J$$EƀړqIfa$ $$Ifa$ $$Ifa$gdF #.(($Ifkd~$$IfP֞bx$*80$4 Pa#%,2:B $$Ifa$ $$Ifa$gdFBCf.(($Ifkd$$IfP֞bx$*80$4 Pa $ $Ifa$ $$Ifa$ $$Ifa$gdFǟߟ.(($Ifkd$$IfP֞bx$*80$4 Paߟ $$Ifa$ $$Ifa$gdF$<.(($Ifkd$$IfP֞bx$*80$4 Pa<?GNYa $$Ifa$ $$Ifa$gdFab.(($Ifkd$$IfP֞bx$*80$4 PaŠ $$Ifa$ $$Ifa$gdFŠƠ.(($Ifkd$$IfP֞bx$*80$4 Pa ' $$Ifa$ $$Ifa$gdF'()\.,**kd$$IfP֞bx$*80$4 Pa7>KRenuy{أ "ЬլįůñDZܱvw #˴̴(ǿǸjhUhh5hjhUmHnHu hsQ5 hsQhsQhsQhsQ5hsQjhsQU *hhp h0JnjhpUmHnHuh=h} hU (h8\r`ů±d$ &`#$/Ifgdp$d$ &`#$/Ifa$gdp ±ñ˴ $Ifgdskd$$Ifll t 6` 0644 la !"#MGGGGGG$IfG$EƀlFIfikd$$IflL#L$ t0L$644 la#$%&'(*G$EƀlFIf$If*+E=|gr (~||z|kd$$Ifl0#P t0L$644 larsp{OP^ef  opX[(,,,,,,,,,,,,,,,,,,,,,,,,,,hZh0J>mHnHujh60J>U h60J>h6jh6UUhF hCJ h0JOJQJ h0J *hh= h0JnjhUmHnHuhh3:(Yw4C0EƀQs&C0EƀQs&C0EƀQs&Y+<e02y644C0EƀQs&!C0EƀQs& C0EƀQs&2Pv#uC5EƀQs&.C5EƀQs&.#y4N`.x@&gdyMC5EƀQs&.& ,sT W  t ofUy6C0EƀQs&$C0EƀQs&#C0EƀQs&"Ny6C0EƀQs&'C0EƀQs&&C0EƀQs&%FN))*++,,,,,,,,,,,+&`#$CEƀq003 cluster of a 32 such servers can process well in excess of 700,000 business transactions per minutemore than a billion transactions per dayagainst a database of more than 50 terabytes. By using clustering, there is virtually no limit to the size and throughput of a SQL Server 2000 system. The addition of automatic failover, COM+, .NET XML Web services, and large main memory Itanium processors are the most recent steps toward Windows Server 2003 clusters running SQL Server that can scale both up and out. SQL Server performs these tasks with unrivaled price/performance and ease of use. SQL Server 2000 has the best performance of any product on the standard TPC-C benchmark. Additionally, the performance of SQL Server, Windows Server 2003, and the underlying hardware has more than doubled each year for the last three years. Microsoft expects this trend to continue for several more years. SQL Server has impressive scalability today. Even more impressive performance is expected in future releases. For more information about SQL Server, see http://approjects.co.za/?big=sql, or visit the SQL Server Forum on the Microsoft Network (GO WORD: MSSQL).      PAGE 2  PAGE 28 In round numbers, performance has doubled and price has dropped in half every year for the seven years 1995-2002. ,,,,,,,,,,,,,,,,/-0-1-2-3-4-5-6-8+&`#$+h]h +hh]h`h,*---.-4-6-h h65h6h65CJaJD 00&P1P/R :p6J/ =!&"#$%88 70&PP/R / =!&"#$%88 @ 00&PP/R :p3D/ =!"#$%88 nqYރX:`YJ0[$& L@%0I[bI3Csn%4RY-90 '8+s8m[qTQ,~a7|R$  ]r4k^hG;hp|kTIR^sRε/T%"f[ZԖ̱SQ71׾ ݑQn,qe8vҤPHk4CԻН:v*L$VHMYx dSh} #fcH\#xMTȑgMq`P0*l 0T݆;5dT{p\7sʤ<=e@ 10z WnXrhz/rS*ʏ/p3zO IyhzPіe]ˀb뢃,{k?4|d9Y=c\AE"G6 ׇ00 (|+h+$c F@v(qMߓ#BhM)ʇvkbQB:u]fU7GK -W M@9iFh+T'%ף20e8ayB@hrU >. lhPM&9@%g-xXQ# &u]J<ԧ%D(vq36c*|xkԒ@ufouxQiE| oVxx\e".Q\=,P:&24fiPbN=)?؆~%P=nu:y';>a _7K\EF_H@]1:՞>za)rTz Do&A,#ڮ^0s/0}n`B}zIh׀^/9u*/ɱ< 굣M[H%/V룧Pߦu-~GPF s%BRʄ%֎3KK^!P;&s4yF4-37 Bo$%V۱L6Bnb W5}ɺn>zVvgQZgd 2y TwW-$PCxߪa??qSFEbřZʯSԆ3^ >jc]``.,G^2="R (PLsVדs=kl֠Fa‹R#Zz IR!P0@Q,5/`J1EH4vH;]t@7}5ӿRUjdok]c5@"jO58W/z+Dڏ ;P|oE{@Ln}=JVf"[< l<*XHo!ҾPDə^RSel [D% TᶤTLNOZ&\rKZ_=RM PCjA״-w_hG5QYhj_ jBjpsG7eHŔ]Nqdb[H[;sE n*TYJҽ/MAhsQF @q1!*|xG|ԗ0VחPN\(~DNӗM2upW |T *^g\I9 P'DT3R edq(/^U Yix DoG5hC_`䂫zR% c-;m "uo~D4sFa\a@1 Zi̒3U`BzPIKKʇ^S7(XL:g8?ÓLT!~E: hT[ݠ%XSP-P iTLjhU;~V5dm@ĊEIeBi@"70-`! wp uX@A i>+F'wM[$3: G~#yq\U"-Ƅd:86DЈoC+(оHgEV^Y0/L;R#m%>Ha՜s*{OT g"ikKJCA2&,:|FCu NڒAb;nL_nj4rQ5B"Mvh`GqϣkK2Mb`S=[(i9{}-_0fp7~xC랟- [%9op!&$R|i:v߈*@HJ5a2},LBBuP7ςfj[#QLo^PLkeI6aT<]0-+<"&P]cPIO}2_I+bҖmbc՚A,Z :ZQ_T=x@ֹ[7tZ8`F$B*)ӘJZ-H(`*Z{_= p:jNDy)guk3}4hըTFg[fpB8v9^ҏ@4z\A2kp-$ʸm)8eB@xI9nl OҒJ=Vq  ?.訔z2#pբ@ U:hA@5WG"UC(wNX9FLˀj\S5LX7dHUsp4t+@}P$oZf6 iR}[RV}zŎ8n!CQh(ᑲ[dεҦ=HG^5=|gq | Gok{faG-Q+ !gȶfNBsI.4j{7?fӝ۝,MI~'RtyUcL_ ˹j˶-hIBFI.O-6PQދ|e$L iШ I˓76adVj@IE9Pq$k@BBAX)^q 8zHjQ* >m#1ta1|wn@ XCw0~Mtt&oj0[8Ш[.pjxzZlըE86_ZspIENDB`nG\0R^=wDPNG  IHDRyRpPLTE'$&)%#+5.-*51--/<;/5,7:966?7*7(eK ALeX 99Hh B XBif= ÃAmnTΉ=@z'#Zj삀KA''374*\U% ȹ\ dp1yyJò@2b$N9+PzqRh<2>>ziKt29gII\= neӄl-\Y@y5u ϙ SdPM$x!O sM쬜 mcWACpjtff&:>3'vY+ $O?/ٱ=C,-%ahuZC" I6|+e} >t &!eVnk\I^29M_ZQ/}v}e+WX؊WyniĔ?O~;@T\]1jM,[7mB6@ ЮPLR nt)5pȚF/O޺}֭7o޺9sihGg_ XsT+響RR\yY+/ 4p?1>pђd7DHPg*-ɛnmahUJ4ZTm ߜMktlV{Vn p\jAT3+|n$`^^xqܢgXhSg̤tYvyH#gο^WooƦDN|R ,MF'Sаwr<Ogތ9#6:ssԸkpƺR)M %YVe-B\`OA~[BwK.7z\gzu ={s.++וM_qK" &ZLl}΁tgpS%#"qgZ8Okʒ EUY%"&plH e"P(+Td?kIrI&/@I7XmbZt0=߽YGkq>]V^V޲OW>wNt OH'J1ttth`%&EmU;k^1ojTњK3@/Ke+_(VP(K^O,Zh W`}2*a@ؑڣ]eý[G%S\yXˁvawBnॗ{6` gnM;̺5ziG>k1]4o`וf775~?ckip>j18_>{SUuDT°5Z?<s\is݅مAɲRjw0,ᆤHtfz"䏸COJ~܀M?4ufƚ5m3!U?|I2Uo*jteg:íZsu[+Oіؖh$gڰ4˜|2\ s4meѽOUOwXX+cq Hht\'c2s]:=<=tu@YO[jطOݲXѩSoMO3񶷚ڌq5_嚙֝zm4RVue \a w{suVr'8_5}t9O EqA$DMqnu[ʹO75:-sA=PؾR!tɵOm2MiV6Vss\p r>RwΊs7( K0t-2F(#!st 􇏑 X Y?20Nv a:C|#Ѩ:|<22d\g< >'3#a{=fnؠV}@8I_< Rz趔qbKh)..Ԍ󬥼fLS'lW^x /c~vس>E"|[h8e/~f/r {䲟eZ2Sntu4QZE1--m5mKX없?E14ԉiuEECWWp k2ڎYnwoIXD@/ #OO'|ӧoךjsa!Ce/ B/꭛E_T9^3_T0"ԩ2 !+ZN)P K}w@g&8VN=/X!:EĠ3Z~Qz"oͦH3[Y'8/h2XikU]ԥUW׭vz]J&kM ?Դm/fHJQU(*3Ưri{c+Vk(VQN7?0$)vY;"9W=~נ@v[~0w̝lwMt~{lm,88_"{ !*_`-^zN& ?g,m{LP7{nYaϹO/{hd1qnʦՁYbW%igGhkDfK-|V$9*hţKșȜ,rL$/J:' (ҝ,sµCvX^T̜fCː29ʊ˶O =qd .Ad 4ʋ (BZJU5Օ56|(Z`j>0v rlIIiHܐܘo(3GO(G(N G_^vu:Psu]D=e-+R,SzKVtF}_+IQ^pQu6u `ө%08?NxambmnIIy&Ə~7CPrGT&;N;w!]HNOv'[;ҿfOr`ODsBhkp[`'5-Ec뎭5g|.jw$<̵ױSais5볕E%EKUU$_+rIBƷBԒ9i14aN&%q5떂D$Рq*v' |GnqZ8535;\K砬TI>im#M:ϩ&znKJ" &+J4˳ůS%/L-{!$@J'ra.,2s21aYܲD(/l$w3v#p9eY\'b6tTxb":AHR'>c9'%ٟ0zJ5 -]i. (}g1h*>+ѥ\% ߪJxKDZ!"9 &Bd4X]ʥ>fC&2٤3,KKK[FAlNaد&"hT&9RXrnʲAob, E\?MA#9w4V-R~ESKNXbsb,ӖbSv2/{|{Myyiē~Kb\4ECWq̧:x#b:kIm-Ml#$',)r&>I$/$B?2zOgcaHsAWgҭ}}祓'п]v$:CZZQsVԲ"[Ѡ3OvYCw'U&u²[wKrAouit1b՛{YWw+B-\?wX1K8OG*.]Fbx.rƉIH=N|e)Ÿʼnk?P]S(}&1m2_l(i=sXoI ޵Wʑ#w-;-yQ,+7ݧO>KO=`~IRޢ+iiiۃ<$<,awB'^N`#Lѝ OV`~a>\8xԠ]y%e,} UqhAھ-}+-9I%(nߗ!'1Ȃ1]OiHr9d;`h qvL,ۅEbTtaLVɠkտ>.f":=HDt ُ/.^0cq0mMS? V EⷷE-{Ȁ:+Zhtu/vR q i =0ıasAPMV"ʻ*9Bgɞ ][uǸOw8j1mio :d D"R$2u^& /Z,5ŶޮD1tbƃT4"Be$=uNX t%–D罬dz~b4'b9}vQ햗A0*2Ypb7"iI` ?/A0fwkv ECNq]>}}mx4FQݱ OxzxkdP%jld.c<2okfX y"kdRWNMџ05IOi!k@MGD{#cŧ SQx |bq{<,#MM%Jo-l,)5IU wzϷC(_QYЫp6X ..+vpa=4b2;:agڃMY*c6Gg|p.N>b,orF:E{&^ '<IX[ЋLR]܎SVcEӿ)9>8y*pAl[¾3nNnaLgMvCb fd8mvM:vYn`?HGdL#ve6ul[MLDoLJ>[Qq%-Gl|R`,|';eu+*\ySG'("vbg&ɖçϞ;M'sڃCz1h}3rhK tԖޫ4.m[Z>p4N:/N ])hDrP~F!NKCnkRPŮ GQcƾDA&ʖq+rV yzwDWvy3b& Q JGцџ`dMo+޾ݹҩ $nQСU%l;)9-m84o&\`Sj+:ZD\\ O%obsVo)+nU^4"mZeo'¸B;Òg Xl^ FGC0޷i-cn%!~]jCy~dGTZ(A[kUR̪c s5y~L ~<!x*'g=ꪪWjÇ1C"ʶ@pI =.LmmRS꼬71ndt0dl,=_EI }.I!L=GEcPKQvHK}刾ժ\}INJ,z'7<Ԫ's=x|0n67i;ϛ}pZbmk!ff/ V(>LLÃcNjjڢS/2qx}M S'fst_4×~tY ``"oH^=0wDd:gš'P)ggn6&ỏ>;f˜ݾp)%ɪ;fb|>_d,< V4sKq:119&9ϋv?ʈ[Oז jm5m,Ey眇e<^egV?O{aO䌥YonrNm: )1 |/d SеMV; $.-/@s0zEV˩V+vF.w*ͥ KwӨ5)mfeRM5';86>P gw?=WgI!MX<"7ۜ1daʡit.E}VP]אXؙ\bX5uW=8v;/NxA-,Or-pSj-u^_ oxp{<{zEE&7t!͵fmųf}{z{pq:ǣX^0&.41+r#jk<q\\FQ*&2|1fNx:ɬv(IU-IZ:IۮиEa瀮|T( '*ۃNz)܎<4z|Oxl2[}PX m>/ah -nGywD'WSd+i1j~)0uffFd&я.9+,'l;di'l֑M[O,[,,\<|='sEnu;v~衷cokox̼vLE'Dp.$[Loqvo?_Mh. Rx2,okxZWh9ͩ&:u_~怜plB9ԒyރVsG'}>n;69-3xK1xϘ9E'g968}pH=N7AwNChbS-;Xs1:PKm1|̇=4iD oYF4T|bi)[q۬JzBSWF|h/QVvOơ'D2EOɟEQc*v# F'M#*'1c :;\o]2p!/~3~ ݬZkVnLEaa9X~d̊;͖v,Yl*m:"vR >MG|nMEˏ}nthfvmz?Qt-:(P~vň,C \y0%T[V>eRouGՂCy }ރ+W.|R9ٳ1->m˖%E@0ě{{v$TS`ck 9zD6Gtvic^h pk)r@"Yo(*T ;%:_mktXl]Y2Ut9]r?}|Ygvͻ28M䗂AMn!HoI@~#v> tݢ<dG}kS]jtGط@~aD+Z 7:VHٵ&O甕fx@r1gNjNίN]{,f m|fAՄ<% DcM5APVy.:hhh?,&Iw4no>#f^pֺۼׅ +xrrl^OK:\d>džIw}8xq+o#&OW~}~`3iO%vPmCX&T^vldL XQ^l`w|[ [}z491)IY-:}߆5ɔal0wP˓ :Wg?8 @G-1yLXb"!E h$8iަk/-;2ZQiFj GA#;r m?1mZ#<f۪Xޖ^DY*f\sLΝ,f? Aqp0ؽ1-!#>]p ID3?4JGy@cqe$G&"j"jMՈ# {G%#sA70c)Md9dɡQOk-0 Pk'sL_l+1E53,>=:z3-ДKDc?] E(:s#E&R8OOi(՞h"/\bgL5lA.0rG\b]\9f@: cH a?0wDB|f; 61& >^ iQN> Eqjǩzj \$sGH)57ƫoOvlGUT% qLo8ճIH8oݹuރ_|1{J$:0C^?187ۛ+36DL5D$ŅT$'}WL"b(+nNQ[.byj ayC4fI/:z} a&OES4u95^ 7n%tJy:tǡy~yp- 8?+hDpr\7] 3Kho0{qsZ@B`ѢO8uEoLFy\'.@2mVa"bGXA][]qnڹ{o<}յ!A _ _#*ysDpN`(4=}c6v^`"!Grz>Ϥ9TSkSCADCA=IJc(3׉Fe{;=jؓYsi%M YÆ yE yWz""~7y`T(QL[Ksio2{QB(!W=rlbJ)ӭ_WX*Y/pfdW F&f{[5FEgѓD]Zn׬x|u+*._h m`E 1"cA,GRmg^yb$lF~"p306J0{!0$ 0k/GU2|fQIo~:'_7 EBGAq-<֍x!cz,2}驏C=**=9RA+*EKh7mNh( 09*W)FkZx99a+YE%rը:Мc)DwV- ^X9_ oܾ{6{[351uOݹqNtj,@_C2MR}08j"ɐ4S3SFHVT@.ejXQz=|H\Bgnt%WplEEL{7P x~W޹}wo`~ зܸkSaCR A:_Έ_A)WK$IE4BJ1+f+|F^+i)5%%N.<#,=G '#Gy{@0$HΏPo^NGoݽ 7?]'lD~}R,봛^LXĚCAΠWpX+zΧ3y};+4ZUc<%z_|xQRzy|L1ъ"%:2}pPp0BSӑ4ݸ6=5{^#;֕ױRЦ{}b+V^ \Q ZvB__? =2s؃Q11}'x6UudP ۗӞ{:1ܣz7H~  x'm}Y7aٸYeE]U*GȓU KKI!7'"2WX㟻ܺ{44{}`ߙfmɰ99nPƭ#_$cяO9ܳ'[c71*g)$QjZXX^>y&4Ug|,Hν{/w޿6=!¿qYSAiB}):'vD C*~B7 >rQFUkSE*GXA[Qoِ֭;dkM2>{Ga!{w{x<߿wgdrp7naaB `_{f~:EI6Zp8c.GA6oqW:jڞFϷiYy;v$Jp6\4$⽿wމEqW _Vl8xq.$) 뎆d4I f>qyGh ؽ*pt>yŬm8ԵN\ Ր<4+vDRkۼP" I00:D"_4xpr✕BnEXL ˒" GؚQ_?P{#C).=QcA{;ΑpӀ2w;q`$y~7___eN1{w&8՜ې}Ȥ$"d-4Y_h2bn36^̼*F7ч+UV篬ؕZjG{pJD@p;&8߉N߹?tb$&<*MߙKwoߺs! oyOezB:Y^@(+lʃJebʆ;@yӫGyP^>m}^/1豋gZ)F?![H>8 {Ѡ: {K_>ZE'i'8pynbJ-W=%_X|(K$9}| ]zN/2~|@Q?p {O fyQA{@vlq߳1=q噔MPz6pnڃۮ)Y)dw݈n{_F!o!DQQC"__ƨn"8 R{t&S&^ 1n%ܧ'-OO? xlz汔ƚgfI^JJD B'ec|fj@M ^]±kWI"ǿCVQ9"nfADXxTXT._蚴 .~^pPD WjӮ]8 MLa-9] {L$U;72wݺ#H䓸q-R$`qMr=۟I{9-1-G3( &[%c7t0~ kԬ!"Ђ2ژI{y>Qy AyJDfk֦#GvrL`_~%Fwb 亀7'Ev -dϡL=&3])օe9g3،IuYLFbrj^NA}}+2G0~*s a?NJΥʘH愎$})g(ۇ@szLNLlQBwBDbn;<-xgs+"lkSr&C*;s9<3#9ֿL)^\wjz ?ؕ}sGaWcoD]n9"!{<j׏[Xna"ʆw/a'|s\vV@чT,/fp \t%_x7w4FܑQ5KN4gBϠAd.o0N]㣟ėE?~ +IENDB`nz +CeW3PNG  IHDR"V PLTEBbKGDH cmPPJCmp0712HsIDATx^\( I @'ngl'Ȣ(H^AC Az^ -<+"zf]xCef"D42⥶p,?Q|!rw%^vqBqT;j{l~i)1a\tr5i =$񇗆\I`PeT각ѓMB^kful *s1#, LN|77\3s(s!( @Ttywm{:{.D]ŵm-^ɂŃc/TQ0@dn7f! յ5P&s3]{qLz,e_˨緙żxZB-r eA;v*ȵxCD.`$U>Л~O$##YS~<;̈́3@S~,|E:"+PͰ(ʎEml & k3>3,p/C,z)]>.J<2'2?˟ȿӱhXɢ؍d fzgb!;#́wOJh}COaD(l 8t?)bh1 O6t%@6p1ܙ?<-pOQɹ`6xQxgh 7fEUK8quh AtDDo[PŤCyfWE9vK;3oy5MU%YBd)Ь߇H=KFB=0244Ceֱ9Ϛ.gÝGC-Eջ"`uՁbZCqWSb.{kHDFk(>/kgC9""/<#$_-ajځ&S3 %>bQ=j)kZO"U3\,jKc` +AJPbɭ4Z@)al>8B`gg4_=I?.7HLjJi{Na#gc*EBcF uQ!RG}y$}7韇R"}mi!՛KT#}.N{ځ֕F>xI?Gh.v!/C6uJ"E̵+\I0eQ& ۺ=悔gQv(WzQ1.ϸj. Fw]^ <hBb1C`%F\IĤ_NMZ>ﮐ6EwQ];:wE|l&}:zZ n@$ЭBtN k <].R܍iu0w_SIE]$Z=6QE+Dv,CbQlMv^]]!ZGKh h67EM+Y⑲RU]WVV-i5ΙBW@}ȗIzP{91إzaUpv ٍi5tP#Xpf^) vrU۬ R"˪P}&:d7FwH=_36ξ=2Os>]i!+n4σdRҗ꥙#DPy8(pRo6C {C5?hJK *ߏsbh6j߫8vB!e(m** ݤLJ!קA65M ^߿COӛ|2DQ(U Q36^lJPQ70~^U5|`O/_++kwBtDMjE<cUVW2 T!bq vWC[ ڿ噪 * PHE Uf/ QGQ e `Jga8"_dX 3D Ȇ`Xgt[U,iKIQk~JAuUxd 9)]{MFJԵ>yL^/ZfE /ZNr!Ջ]ix7dӛLC o ^,q6~TNX!"EM:Z&WZxE$ш4 9t2BHf,`C[/*, z-A [`\RZKjm 5=KǶ.P*w\orV$RFC; u}E' 72ӾFMXdNr5]R?R֢+} sx6U{y+IE$K;^t*J\-DB9K}xʓ+ۺt4$}U}Keq8еaR)D49)Vu]lTeuN5Kb-M}b*8Q!+:W,-—j6{L4f Ң/lX3.J>GG tt1ۼskeo\}B@mӃ-B[I֋nՈ:zJ9`#OH?Qs8p( # : ]&qyY{fZ[We6\]Q}wk}I탤c΂&qgEDeY/JIcLҬ{@0IDPlXֹ}zsx\u4tѻԵe+/b>gB<u+s1cEE/"wZ<$8[(@uM4}$}uxF[^cyv IS=HAFTtX]OWYx'^U-,J:y0}t,D{9_TyJK@?aM9i}Jmy Cc^uyIM:A۳(]%  мU{zâ{1Gf!]CŻvw7.6sכTeoR{O*l?Hzo g!د=X‚4#l]o4 / r(#ՋzCDGas- N t`:ǯgq|PdIENDB`@= "&rQY4 X^w?mN]\4 x[}l[?ىmb얶tiCvViԮNc Dj kJ&W I,HibUPMU[I+Ha"iT!޹{֩w߹{9w] Dj`:b<, wX ٲ#  x# 7KZ ߻j[%0$rT&*{?]\vy  ߓV%}sܓKG)m>7[bNgYsz 6H.iyl֎KQPVrip #7/|^[uiQ?Vו^z p7݅ϤzZ1R73queW>Xu}` Hc17d=Aq ˈNLS̈w 7u*g&7^zK"UjcMAs`?iOi)-?c:ZvjjR~u1ǽ |p} ِ&y+k3FðC qa0<{`y}(EN/>_3<6sN{V.jVrj~DiÄϤG5Q !jj? $%J("zakmy uӭhmx߄D1F=>U[Vf-JW_rH?F HA_bHz_ڱVOGM80YZ"4/|:{1 Nne/F_O'ZcǬt)>&6|QP (:g@J142CQ8ȼ"cn3]k49&kTrl__ag ʶ2L;ئ s6Ѷړl(m? ˎbewl1;sm_.BzmNא^Gjl+D7؜-g wmI통oՋZ.|6bUvjخRgT s'ڮaFe^-f(E}3J:[rX6r1{M,wܦ2~S{u|!{U{lKF(XjWj5x:`9FEus.:d^:yTI3eSɊpm%cz2:b6G\̕1:a}+/ْthyy~ԓ~j=ֲ-~Tv]nE.N?~w:8O;ӗbw|ODt8@k|(g$j'tQ;_)m#2M\ڰ;1l_ӝt3P~E]2~\p2־Nt+nc#ې-Fg!Ux%<_l1P Bp<Kwʱt>q(9s*ǤO>!ѷwgvV8haw ScL]L1Ja csNg^cT-vHg7_$aǨ#U;mD;cK\],aaag,TqW[쐮DB $ӐÎFXUyc!ox,;Bف]?1[cTyrib"fV bvs1\v]l* f㛋٪6KͦZlg=J=G}o됿/Xwi'魃0n-ʧg#BHo?\1||JrEnO5%S`LPNG  IHDRbgPLTEc1Μ{"|BbKGDH cmPPJCmp0712HsIDATx^휇8 '`IlHpMP0{YB}P_F xH}>/ZCH B|Pk, In{_!PiFwUVyg%.خ`%rYvK:G4+] P&0%P0 W *H#8#LAEd=UP`&RMNphjʶd*_6D BVk7jsB1jS.O}b 5,]4*ᔙQ7&FD''Bmt}ep-뜉Ѻ'eMe2k򎉾H͓5PczQbST')%dXH-.15[8I Pd炻Pi̡̛yX5f36 M:S3hw3/O(|Y֖gªpo?M@ŊR:Ku O^v^sH } |{2[ Zw U/T|f8i"xȒhW+'G-5+*OEr* vPQ~SaXpzD Twt<4o a DmW2Ɓ\K.**o*˵d ׭t%>lNv%ߤͮ% oz]"{S3l 7PQ_1!{m6F)0BaB,@]#_,o).lJx:X*gi*/V,c^/60X@=)a7fR 'G-5%*OEr**TLA%Pw9jtGLAi.BTvyƁ\K.NCSR SD .H53")Lm\K8=ϯ_:Ve _R8:й 2E K-¡BŇ؇ ad8:vzOӲѻax=aojH5RR GVVeP/K9Ds З@Ux2!\ũ Iyj *DUX_i "F[ W>ۜ^T)G=*.Gdi|t\R"z2_GCLQBo^?rBڮMtyqUJRv-D7JꫦVPPDWDΒÊ+]nj(UՍ3xFIΚzԬ!; u*Njkn \M!SAf U\p55! 4jI k8ʏĆuP5J`yFj $Ҍ@ u)H)%:٥k5oJ !iTƓÑjor0]Fku^eN:uCSH,ޤ%e*`!D&T)5&o'Ğ~eXSSɋPe@Y G*\.Ph:v"UHBq>]̘~9r:/TW 4sݯnWvvsUXgjI^ XM]ꬎm>}dsiԕlRDJYa:Xzn@[&Թi9ȸ5|4CQ__lʼSnzIi&aˠn̸O>x1y2M?I1M=k?HuΑS+)$Bc;`!-W> zM!ќ#6&!3@$R]#d?6̢P1V9]S\S@;Fqu>T\і=rZꎞ"SYQ6m=Q *O1R!.G0u .AS((~9Ra]: *nk?#*O)F%~bm=h|W*AmI CPqrŝ6IQCFT3ȁTPaYFF3ԗAauDmCZQɽáZQ<-lcMu Uaa+y{`jcWa'c> 4ҧ:98>Y?RS3?+@4듾9\ufR| jXX` /IskLϲoSԭЮp ݢs՜%3̙hӷf25ʢIF叆̱ڇ>J nI )Kι7#Rh_VQ>sAh6d+NPO E>Ђ'"5ʌUك:_҄~7֭f'08t':NѤ!v}%]CMQ/NR^1謒oW6\SӫF~9~*PDMW~ACP*Fb5QSLS_υ33PK}=ލ6dk,AMIV(Qi? `S8:ġxQ*"C_I4X>캭HMᠤ a_ HW:?_Ae%RsSw~zt}Fr2*i:^"O͙V&O& R8ak*/bR{幩Jܲ0U+rLVDBn|l3N@=8sj]6Hֳ05J3 cx 2,~^ B߱{ u9ԊﯗFusL/Z[}?l4RØ0.nRT T#6K2g$5S30H@ N*,SPj'*3Pmkr 0/= yH'p%Em%+ RY\8T<h>p@5bW{*PS'swKwOo/Խ ;Kim֚q?5+4RX"x9mRE[cZgP oN`iHxA%gϲgE i'Ѻ-9izT8 jRX?5'P' ʳ6]u81}AUiLۯVYKRSibT 3k iTftS3eL ┆F uó3;;}f]b#HvVͶy D<397'*IQ8) 7HH].2H2Y;j;d\F*!oW ,[5CZ- 3Wϟ`AE*T#ق$p_cZy^5rᛇZ=rPM^.Kѭ~v쾏5~֜6vEuR]M}|!r;[-tuwUvR8. =gEݐ_;#(pnm[=aZϢGІ*M}SOnm!*R&EHƢgqF{p] ]Q~ո] =-ٓKu Ә>'db*+sr)rKQwY֛],|>}弤%֮3_,.c^{.#}_=a[re2Ǻa]2)pe̓.k{,Vr^cMtdb1Xkur΋ [[\ߺ$]?Xqq-}͖YYY;v-Ϟ>yޞ=~3ovKw k+Bgy蔨(gΆN8D;f8pc6=.ʑt Yp}ce(α}6v?s}' P \.6fty6>X^[%:kԔ m`37`g5a7'=lVlU6ozm֖=C;/?~;|#C_ǻOugg|~uhCֿ_?cf e06t(39mƍv hD6y$/DG,!>t$5lZf&<};s&=}wh6o\?-\ %K\,5kmܰL-[ܱl؏w/'0~ݷz=r؟>9}gsOw/?G_~}"| ȿS!%a9Qy=Gc*qc+q7r#_OOPOțIx[8GOckؘ}n qgΓIw:c8ϜzYOv/3g4lg}ۘcf7׌9ǘseO˽?:X~y-׷9-?ۻsa~qg?̏ '<ѕ:ٍc99?O1ϝ?ϙ_:6ÛRDݐ"S<Ƚ)?*JYPj4!>r Rpj(EK=}l(;EI+ZWAerPXC3tAm^DkAL:h \7A1zxMqxf;(|׬BٍjA!{ppA'N1VѢ FYѱVaF)5苺΄0ܐQH3FٌQTKFfq? u{F_eM>3ޕѮ5 dF32hF1z'HQ6e JD])>f2;Q9h8ʣ<Gmq000 xsxu|ap1xKɻpA>0sWA>0Qyw>00\P; xe-j񁗆^8#x@àwA>0^8ɻ;o "^qw|-a`ɻ((  7x[G 0J\/ xeKo (I@I%K xu|a`RȻpoR: \>08J&Vxc.}2 .^8ʔ!x@àw>0k.xwX}a`eɻp<`@a`q@ ^ qwAn>00ra^ ,>0(g9>0p@5 p/O xs//|aw^9>0p |a`׆ Ȼ>0 |a`׆/; >0p8*w/xW8Ȼo 6 LxqHxu|a`A7 LxqHxu|a`qH9 nQxo}aw/; r|a7K xo}aw>0kGJaxsT>0/; >0p jQ 8T•gnv!Cp)UFje#ʃ2t# 2Mg:}N8:d1K˹ޕsGrAդnpU\!HhKyL ,c#C=zGz?#G]wyWȯ|wn>^@,cOmR5j[SWO?̰}<-u{wrk{{C=zGz?#G]wyWUwYg]z#G~G~G{=z._#G?5Cezr[U1^<,̺V׶ݷ MC]wϏ=!Es]Mt 1S1]20ӡgB@~udXΗ1~EvQ6zT ]GΊc#9V?ΰ|ҝaHH=jűE7XK7Bk8M1C243OiBc0~eC鮰|"M~ҏ`܌t 3EƮ g|ҟUHc1~M2~ia/QsX /c"cda2Cτ!5}&؏_~mǞF鞰|!Kq+Dz >( s7͏$.&AO@~ueLSdLSMdiS&t_?cş㶿g:F,G>2M[tEɘi2@OD~ud8V{˱:2V2[H=j?ű-c,Q,_ X>Y~6A(>BA2c4|4DƯ]MʘȘ, "?M:2V|&(o|0,Pz0,Lז1E1Q2S@!C̏NrlEY'txM3S%41z4 t3X>猴< e$JeI2&)2&HT1zd*a8D20eBבq8Lc,HXƠH,"tG5!?HqHZce;!cǑq ,(=B:}ȘȘ(MD)OqK<%2Z8c!2(2&Jt1z d:S+c"cdL5'A"?I辱Z8JƉLDROx'1Dt,L1(c"cdL5'A"?I:2NT'[q",Qz",LԖ1]1E2f)!3.t#1Bc#aBHX"LԖ1]1E2f)!3żq?&)2&HT1zdxtΉR|Ή91(XbP: H!|ΉXxvQ6zd#c"cdtZ`qt,BTdF',(%NH}ݱh2@LD~udLRُ~L%9I ؏Nُi~L% aq g?*#I ;Ra?I$mc%_ =A% -c"cdt ]3Ș2Z1 (K12)2FKF =҉8Ș93-yH%aI2U[xEɘh2@LD~udTW:2f23aI2XI1dLTTd&ct'd2BU1+2HD1z2c#jyuWYհCհRyuJ,ZX6ZXV ^qcueeJe#}ĸ\7&?F=A;$] }:L2Ud%ǛBבq⼺YΫ;-6Xv6X6 -Ep8d >r']G튟{"wY>](-BǝMnK?e7Jezce+.F@B~}|~?5sH(;Dȟ(t]'(2KI&c8 ?A~,F#*0qk}.>r0 ]G_'ُ- ,QX~rHf&c!!ueC6Xd uudܧ8oyu,>X -@E~q@(t*~vegWr²_hc!2NTd/'O,֐r^=bWr²_۴el@263@o L5]*Ϋz2JezΫcðCð2B[Ɖ%dq<􉐓?Q>FX1^:KEq# #!tc0Sd<,0OsF]WF"cdL6;!pWGX=nr刐z?sTY,rcgc4&o(áQBוq"c?8d} `'?۲>o>˟Bi-&c48H'c1/u~ƺhlo}! ue8\25C9+S1N2&qНw ]GӊxRYK<,J夐2F+2Nq&dѐqȏ7V$c"cd2#GBF!?R>aG;קw$Ys,PXN 9F[F"cdL6;!I&c?!#ud<ǿ[~x(}-c"8yHqHG]GFc|Tј"WŏKƳ(T:27xVƭ,(;:Jۆ!ud,bS{1،@[sN[48H'ㄮ#c1_)0q]␽$c1[_ABWBו1\qd`29Bוq"p8d}XA6|cQ\ȷa( C"!hK3\)EdiS&t]c%c =2 Bוq"(8d},x+c"cdt ȏ%1HcK r$ ]WEDɘn2&BOLG~udfS'bsWW8Vocecl XY>Bb8VɱZ2VclZMq2(2&Jt1z d:S#cMű,mZc6њB1"c"S2NɐiO~ɏ].>r G ]Gk;,b'@&!?A:2olul96R!3*t]c%c =&Wd`2r ]G;:n{wY:AwB&#)tBDјk:Aփ*:A+?F(0Y_.>r8]W0E/%& F~ue|Y%!_EBו"S~,<%W&cw= B~?Ev ; Bב1DO~)佲лC@~wʘ+LX IOIƆ`j`'/)2/m֗#1>V`4􇐍 H{mB ?N:1ogf[ 6`%T\_9\cèYk2h}}<֚.<ˣ"~{{Twt=ۊv5񯈼_"_7:+.^EƊ|FYr=+}Q;EkOB,sz˥ǕzMeRoSz^m{s6z_ [rzƼe=90Pն\l|\=4>c;w~r\)5?XxNާc.us8:R$:fΥiul9K[1{qRg' T=yQO\pQ?:.!_z0km[Vt3}>{riAAƳצhJ_5rB ]Ef-qUcO{Uqi?:!Z:=RmKRY;Ok[j[QR>}:]lfU^rW@TCyiܻwA gzdklqu].f2|rCK||0>[|#݇9G#ˉ~/%]ZG-Gs亵3vŻ3Br_!ߘL!p߲5#(kh9bE[ߡ0o*ﲵݡ UAڮCTL Ep_~o|k6:3hq*F{Tט#>gis#ݾ\=aDC2B.,_k]/V |mzݦ`_[{*:NX.g*/׭}U9_}=Y|_y\ ^wϽy xt~y~\wÏo~|nYj[-ƻ'x:wbesj2Z}dk[#d4Ex"-[5Z3/iˬΝ;ύ8wf_/,tq(t~VPNyVl1cJTcjF8֯kؓN\8`N'p̞5 g9/[2۷mClo1ߧN<}ؐ%bcFg+ȉUeqX6KM6cz6{VsB/jŖ/{^՚mlgmm3Ç:2u Twv g_6aC;o B[aC=٨#ѦlرhW8Md'MBXLt4N'KNJB[SXzZڛefٷ3gݳ}aE -]+]< mݲ\;{7ޟ~}N8Sӧ~apx^6uo?ky~EE9ȿS!%a9Qy=Gc*qc+q7r#_OOPOțIx[8GOckؘ}n qgΓIw:c8ϜzYOv/3g4lg}ۘcf7׌9ǘseO{^{zu&u[|os[~wC#cG??љO)?y+?u8ss~c;%?+3tl7PF͉!E6y{S(U %3ioC~ } M PJ #l{B)PZgwP:VAYU堰 f? j6/"5u]Q& }4k =\kVF5᠐=~ 8j{Am+hQRXEFU0j JfE]FgB n(l(%N3j8^`Ժ=2 ѦquhWFIaQ~2 CE`{4H(\%FsqLF~3՝ͨg#tf1&}ܵFFOl3ڿQl\ǨFC~ m>hIF'N3zĩ4/AԬa/rUEN+qZXU8ir5\icuNtqQSᴨ.G洦'ᴪ>pn) rpZ)s ksݒS8{>ÜB1N)98JOrz .Oq|g8y8Uxm"V8~Szpj؁SW9~ 78~oqbos*mHQrz=N5#Ҹ9=SHPǜ6!1 Hպpr"4]9MEۍS R"!8Fsԃt 2 }%HH#5CBZHԂZT $tme1.wx6{X3\+έm0>s>]*3Z{rw^ᙇϟY@ .Eŋiɒ%tRZl-_VXA+WUVիi͚5vZZn_6l@7nM6͛i˖-uVڶmm߾vA;w]v?@wiϞ=O?޽{_~G+߿~7:p}:s ={G5krیvQuaw:.q먇#ucǽ}4ṭhbMG3Gy8u"G5kgo-ުQy[MuV֝׆WV:^*z~XKoU~qo`EojoI_ g[wxVÂyUVpp.ުVn-\[uuەֽV-\ ުvVujV+{]oUMAuW[f7_yo]/7|uoV޺ l3UUDxjUOormx6lT[*UVu֩8n8y:ݰ馛=wntSު- \xK+ʕ/o] JުR޺6+Udoyf`J׼f`J>onxcaz Fu6l.n[7[5˭ܧ7^eo][+ uf`gzk7+T-o P!7oU.d3B6V j*uXY*寒[aæ|yTU|囁]jtU[[i->GyCk[:"7pnA7oXn3lYoXeæ,oU2[f`WfT2e2eo3V2*f`2W[zl\Fo.}{mؔ.󖪷J޺?GYtz*UY>oRmo]%o]Q,͵ng%]o]/U(q9%J\[e z3D Eo645޺Bn/~ټu6Vks/t*}RVPkz30((o6Moz˷t{2nyf``EUR[嵺-f˼x_޺<[[zl^o+vfVb׊ K.pVzKbŮ uf`bW[f`ѢJmo _ꭢEΛEWoyf`Ѣy{+ 6l ⭢E[ꛁEX4gy mj,޺6l.[Ez.iH.&odH{njj޺B_zE-6ETx]z/v޺6Tmk-7vz/@-Uossuhoyf󖪷vT7lV+kb30 {[:o\-o]z˷(pfe@>7,\޺_,k[Zl\[*߰{2n_5o][>oz߿*rmxJ}Jz+:[Zoo- t{߿f[jy+/_]ևaoXǗ)ofw}xjE?[W7,yԷ [~~>oz u~~[f` "*tǃU =uZzݭN>E[v[@iIfȫmÓO~nэx 0>k[ڙuX|o^[ro5G]=_#G~ʹJsך?"|y?GQQK˳(,O 6W΀P2>ˋ(<, V`r=!BJK{!{j.8@.*_-~BВm~̒ҏoJ BԖ"c/d>G~,Fc8往\js.~ٴ'do<*ُ,.,Q]XR~4Ɓ P }X>DayG~2Rd/8r ]W%0q C`QqX,׎#,tGXI&c?0 ƁBבxhF.AX' ]GƏ+0kX5%GtF`(Xc!1_+0i:vQ6 o_CBוq" 8d!8D2Wd#}_}(dc!2Wd"GC8r X8WJΰ|ҝaHH=] U`4o #$'tEO`$7Z2v'ڞ\ vQv@|*(-{(>l9;,9W(BՖ1Bqd4ǁ12Bוq"8dт#e8J27Gq,x0_*>n7,ϫ__z>~Uo` ^(,=-$E q8 qud4 G)0ncGExk9tud8Vwʱ2V{{SH=Ǫ4A{mmeF5rhbnkzfiJd2Y?,P?,}-Eƾ/@~BבqڱGZ֎|`+c!2+2L1` l}% Eƽ7 X X /׊ah< _ ]WɊ%c8!8Y:2~|<`y( ,ؓ|; +2򍐓d8Vȱz2VG2G2Tȉ2NTd/'8r2' Xx1Q1dc d<c#həa?;]78A1\2N28Ҙ_']W(EHc2F=^c,<Ɖ%dq<kD8V| 0(=QB 0Nqce%2ZHc!1+2OZ1 (!k)cLH0FAƀ1J:2F(㟲c,(8!k8Eqd5'q d,]WXE)1dX0 ]G x\iK?NeJO%\I2F)2FJ1TQ1`眓r9ks&2'2AH=hxGƣ/'aChX& g<*>ϫ~9ϫMNrK~F( $$8!ceVd,L`ÿhȘH2?F??ZZ5EJADX⅌В1Yq} sA~9c2,i( SH=Ty%,j*,( KzΫi䊯+l4ME4X֖q"$k2NHc~"t_?J1+ýfyG:,(Kz#Ce?c,̹uudT\;˵eȄeJg’.mc%c $0&׏8\-ʏxi+H`rS$c8 bޙq?zdEƉ1dɐ`,t]'K8q2!-t]##$cH(0F ]WE(o2F121Bו1N1Z2:Mh0A:'tho]ϵdecpxD ]Gc-cu,Pz,B9Vg*X>΄e6Jτez=5k/.w(-,ӅӒqwW%>̆eJ;#jy9dWe.J,!eWd&c !/tc0Α?ȏ\3@H9C92cbYgW1V-~}g(뤅( Ԗ1I1A2 `LLcueVd,L`cueLTd)&c<!S(tc0WǛd<[q>,Pz>,s3(2V- `Y `'+?Vi-bXbX 9s9+`Y+`Y*sJűZK;-cu%,kPz%,˄sRʱZ2VWW\8m%cD0& X8mrֵհCհRϱFoxRH=q"cmxq-,Pz-,ԓqXCz(Bi˘/SLx0&BguE: X6X 'f~N~fXfX6~Vg,,(MB& yWC-dRyu"cc0eJez284s9?J.!2*2&I 1 `LيsNS9p˜ ^Ά!skMϏ1T~?gl"C齰d %~xOCxA/B:}x@qh)׎G,kXX~Rϵb?r²_HNE8ɘl2Ɓ=^Bבw}x݇CEC&}8v<(׎֖0,P0,s8s|>,X c,DF"cdL6[Bו1A1V2&`LLcud<>>,',QX@飰c,$1ȩ8,'Q8, -TE48dLT`*tRW곖y/XN_!dc%c $0&]WxEɘh2ƀ12B1b<)B~m~ET:'a9.d)1dLc d:S+c"cd4S tʘȘ,`t? X8?< ?(} 1iy9hWOr֜wR#?gvg`9rJ8m$cɘ$T0& ]WdEFdL3`LLcud< k^<>/㰽e}/9l鐙bn=G_?^Am3˖gNud$Z?(K?яdD ]GF?3KU3-$Tԕ$t]%T1iSQW}ǘȘ*`̀2c,33gb|`ڄtj˘Ș,`L 4hW\;^kÎ;ƨzE%-X/d銌)1dLc:dx)s0zX1^Emj[ǢD B E,-c"S2N0#c1yU9mWa^ hSk3X>hxDb}Td&c`t ]WtEɘi212B1c]˻UޥJ*kQ!|* k:ZJb)+> Rg6~ O,-FTTVH=?[Q1?%+*+" g<ިI2v0v# /c"cdj2&=^ӄ#c%X^nk]MUW_AH=ueyW[ʘG1"t]1dt12 B1M'3h77c Bi˘Ș,`L 4ʘȘ"3M0Cf1]:2VQ]X2V瑱`VRϱZUSXL*+ '͊Uxl;iBבb?v:c,$[ljE.Hbo%!+c"cdf21r3#c űC^Z50VoRϱZ[{~o:[LՖ1S1]20 9BבNg@˳ܝxv \wv!SeLSdLSMd0ANcud8s ˜S\wBi˘Ș"3M0c2]2f*2K&c:3!g1S:2(1̲v`kF֎sdaa`zB :DΫ,j̣16zi2f*2K&c:3!g1S:26RXc06b6XWTc!2f*2K&c:3!g1S:26QsF9gei99&s TG~ cS[()zcsEђ1L lDHca1*Ϋc:2bOC16Ry)8ُ~d \H=>~eozcKEƉ1L%['c+EHcal /c"cd4S t8U1M2N78r: 7V}W1E1Q2`L4pPs&9'2<9a5`ι_4m3% 13)tRdFcm|l2+2HL1鐙byHg1U1I2fI`t;Bבaŵc\;,kX+C=>|@Dm*2I&cBNTĨC[^G[+䶸OmkKmdrNг2}.06qeQuH[k8/62Ɗ5>C='xFrsφkQ};>|`_}}O/?t?! Oߒ*1\1ږA3~`s}tk2OMQRGcn.u=yY<liz_(5ּgde/Ro'M1n>C _.gxb2n7o,y|~s_0nc` ڻD\s+>,w1lmgѾWL(㥘sW^L"NLDzxvsj2ZuhYH2Y;x|?#e/F}W>juܹs?xktr7{}XG/ k+Bgy蔨(gΆN8D;f8pc6=.ʑt Yp}ce(α}6v?s}' P \.6fty6>X^[%:kԔ m`37`g5a7'=lVlU6ozm֖=C;/?~;|#C_ǻOugg|~uhCֿ_?cf e06t(39mƍv hD6y$/DG,!>t$5lZf&<};s&=}wh6o\?-\ %K\,5kmܰL-[ܱl؏w/'0~ݷz=r؟>9}ge_} ޯW__AA|79RZVe7ѣq;7"w#G? U8OOTGMy<&<>Vw&<)t'OI1xZ]<=n^c<̩iir >sFCF|ַ9 nvSws>|\Ƴq̿/\p?_%XK?.y/[Ǹ+?WxZkV?׮y[$x?7nxo [6?Ƿnyo8;whw|cL?e+U{_|/o_6Ǹ~{<?t}1̏=!?v#c??_'S'qs~??g1_9sMfDǐ5'ٜAmNYV1o(OCK! oJ(RPaJG φ:ZtбʪuT.5tP0AQy9SGu2a8Ypp98 *6ARPny\ e7:=;hQepPs:h[FebF*2ZQ[dT6/2:hpCF!e3FQ-uzQu|Q[6|̨{WFz0J C׌c0юo(bޣuFoD"Eg4(u0d2ɨlF=a35YU72zb ]eڽh>F0zchqFO2:qUN}8m4(~ 4f8- {YN㴽<*r^ʜިfN`Nsz&8Sڜ2ԼEu9=z758=qU9=ԀӼwcNqM8k7/2NɜS ^'_얜?݃!N(NqJi9Uzm8uySӜ?iϳ>ǩ h 9jǩKڴP˜SjʩkN xi{Sw8mCzq>u %~8B:? ΈO8@օާ!5i*Rnb*u4 1Lo|i5ҽSHT [/9EGDԢx$h'kTw,7F4{3̖ !w:AZe׶\ksms^pg?>Bd-\-ZD/%KҥKiٲe|rZb\VZEW5kڵkiݺu~zڰamܸ6mD7o-[֭[i۶m}v>s+)A "% j* @ !$tMA[h (*"=)Pnrwgxgw%/z_\\3(_Իgox骦%k=W^rԛoU+rKJ*uLtJm}TK&NG ^r\lvMjKNRym$|Tz.xUsᣛkK.(BR}t9Nj^r\.'dQJr}sm>*h=#+)W^r\#rR^$%wI*>KJu[QFQjyyڤ%r=WHK&>&]/z.jNRIX>1/9+-zsoݐ~^*GTz9X$/]\ Ro\^RE:#U/z#zI\7*^5/쒏RpUpҵI*KzG9N^* y8OR)d@/U-W%%7\>*_\ԻN |棫%W\ϵ^r%}s߂^rG)p'Gv7/Huc"zɍsߦ*/\"{ɽsGK%l=J>N^*yI%e pRyORiQ^ΩI%HK.TKK+yss^ۣWs=GK%m=2]/G)Q I2*NrԛL"u%Km>*[SoK.k%g%Wq𑷷y骦GKK>K% r'9>RJ+$}ta%s}t-{KJ3T>*}}Tbsm>InzT JeJpRy5dΝRoGW\5士]j=Gr+e>*}]ӥzI*j *tMJRq|^*IGj^r^{n^ZI죫"ޕ>^r\G]/ry.#g{I2oiz;a=7yRoKΕs G^\Q #k󑓼TBs>K&9>*IJzj"v%IsHK/9?t%W\υ߬E-oנtߣEζ:_zXH J cA2cY-6"tJS:|%._3u%Vصrj#x 1`z.s9nqc;C}?Z?8O^o#R-$322f9T-Ώ*Bj&]g~C,9s_|_.9ԏsttP١~C3gYrWskPΡ~C?W:^8krJ e&2df1mmdC8) V]sU5:,| ^a:4vH:B}|]& %?_}f݆4؟d`SK(]gPZ֝ z ]G!(~ O6 ( qzz@!;h8b@aV8l`=rdG"욡Ҋ?td[qߛ(-q/5a(ߦۍҖ~cXd1YN݅^b(uFeCdQl?1cex'1m2`"tO;:1eO?q-lXǢ %cb;v+c-qhh!la ®5~>[fɰN@+`m+2EC8r ]Wm8# GqudLT;>4w$"Τ:m'@m)2&v&`0)N1 e#}QCIl$/ -Sޣ0F>gtB >bLTX#QȱF'1*)BR1:c1Y2PdlCMơ`9Z!1g?Ŝ/T, G)2MM`9a0^+Ʃ(#Мq1NŜ1S?ƑBבg|bc:LXcOryasΗ L9B0:q"h5Gq x0IqlXBfxVW|)_Fn3{d3B2SdlML`9Ä+c"cgba2Ncd(#0ƣ~Pqo>q,KȑZ2SQ_=!y a=lԳ.@Iĸ O 9N[qq|\q?KqR_2SdlML`&9X[ Ed P1&i:wb ' Jb\<|!ㅮ#REƓĸL+`ԗq"c+blk2= ]`I` O=կ2S2?.R(y<Jbm+dі\בqb_ǚR_] Vbf2cd0atz0FkҗװkXbOud\2Z7L/Zg#zXEL]-m'*2cWq'Bqud\;_DEX `{h%n&x0@1@:2WSFXGVmC#^&c C "t7(2IJ NH}d`0ӎaܨ؎Q;^q#3]WPEƮd c(d8C+c"cbg212Bבqb;^voqQXo!e Qd{` 9&McΣ1_9rbΣ1QĜMBsCÕO!{֏(MO(^^|WNiX?B꙯>ۏqTLϰ+{֮!>--W}lci~|ደ~3B9?nQ( -/z sBW_X!㋘_7 -c"cWbm212Bs*h&[1W/-c"cwbk21 2aBב%Xcui< /aP9(ԗbĘwa1 !õeRdCL`c=a|~c0r1 ~%c,&7I],@udܭ؀JֻSH?`.!7y[Fa]BFibiF1s>AOs>2F[DE8dc"d #^ŵqֱE 0:1^q 17cxȸOovq ?Rvܯ؎-[K)?Rv<ؒ3X^!d<A9@)89sXDO(m01q`)YIkVwKkV3~ t)E}^i=!*8isX1kK\);5#B8U(v귈?[ѯ3~W;R\"Gwho3~2EyMb`=Ǝ -4EQ8di38M2&)2!Q&c<Q!\'?l_Aswȱx sO>*tO1ߛ)Ś>x O섐F'18w4wX B9wQlǞ_j3`gЎLԖ1Nq13'N g;eYc/zs!6YԒWf;%1\|8bwXʦu]`1-t]#{@11`qX0 ]WE~8dc d<c#9/?`}欐2&+2%&c!S,th3F@㟘3.O6 }6C2.Td 'qB.B8`Lcud8w c4w\\7/q+t]c11`ъ}qh80F ]WHE8d c$d #al0ơPa;r21^dY_X_dS]W)Éqɘ)8E2f+2cɘ lȹ`3c8 3 gq=a[ٕa4gKϮ8 dI*~3>+}/B ]Gs򑔓r[, "7OӜ?sF9sŒ ʘ8MD0@Ncudd)09c<$b9˒9ò##wa)L|[ئRX[x.t]g+2c8 l{ӎ׊ˢl.@l 12r:5U2f*2N 18Wud,mQQ$EPڒ,r8Sq<1382 3at_G?R Z{ [Y%p_Y!eTd@!&c:3!ES^{  Л,^dV%t]`1ѐq`qX0 ]WlE@b 33hY+c"c1N2g>Gf ]GƊr!k"uUO+Z17&]G*ϑÈ-Z nB/U:2ְ=M35D>^ò #cML9x VS5qQC m3'cɘLl0f ]WtEƱh212BבEz~5Uz~%յDBư:q5T)AxZWSdmSɘȩ`LɊCqɘdT0& ]WŊo2.be`\,t]cɘF.toQɓ('& \䵄-1d!~XWq<&xLc]u1k xYy }V>]ei!>% SDa iC墿rr..5DFh8hʸ@1Mƹ`\ #c#Kӈ-2e) -͡W`̤.Koa;Ĝ㰩se\K&0.\Bבb.E|)k9hfBԖ1Cq19 Bבbɦ@9-cDi\E2f*2N 1`+qɸ +!׀qudU|ve/]fm, ;ٕ6ϒ->Lz =m 2$ƶ:ri-rvqbo-|mW)2&cɸ *xbYL1gsAiXsbN!g{j%߬Jt\~Z:2WQ.F#w=r+1d\ B:2vT+(jGQ+iG{3v׭otb30;Y֣ ]W1dqudV`\M!g], 7]^Klbbv]ІV!|ֺ3H3HK użWbYH=Aꦘ笧<)醼'eRd I&L0kue\Aq&0.\ EBוq"c1F`+غ-E0b6q"0.#qɘ T40 W]q=gJ91Bݲ'|mW+2&TqWCjS1_Hf)_ԞW F[lE@b 33hBו1Mq41N0S.b+ueLUdAcMd0B1U:2R6ќœ/r݅+Zko|8⹖|s96`†QLTXlu߅eޥ^=IcK ֬ZtQ̶6pLW~܉Kc:]ǭARw|Ƕg߯A>>770[[T)K#zrpfUi0׎Prhx}B۾=ݝ=Jxα+s ,9{8Gb.sNu9{^sۋtcd8xh4w:GZ=G6cch^sܕ9st6Cǘ%t-*p16=]-ОoNLd, ~x垥UW?{<ϯ\}|]xŗͨm||Ϋؓu9dݝ:pwJK~߫6?r/d?/?8Y4ن^4osZ[l1;+n4ڼ1c+c+xilUp?~%ip-MwwܾͤsǸh&]GMU~- s%y*;\J~K13*ZHiڿg]~߄cN+2d緼Pۙ;P݈!^xi߶t/ V<]]M]MYl[lZi}Fzޗe[*?-; j)۱8r5 ~Q>?ֲ͇YOܸ=a-e.*Z˶Ξ:zx k?r'=e>y~E/i+;m?m}y^/xُCF D:МWן e Pc/.Cg rͥ nFyk֪U%b)M,C1C~]ZǛ\%rU#a+bȧ7X#v7q* ^%Fsָ7]SX)|l[n꼋067Ki>ߕa9g- Ňf<-M-O9rL9W>sSJ:NA9UQ \jv7lKIUZ UuvW{WWU?_W|U!Z_ WcAbAE{\(O\(#_*ܧB?tVƁOq*d~8^<ҽwsd9gص\gfX84^汮[z]G cǎK%R~Go 1>k^xWrW qfΝӦzGo.ic>~D_~>KXm{DZ~nۆw}w/`w'`_.YJ[-gaE+e]55ŊZ'of}V\mnNV\ݬч6Y}1ՑV\?|:Ҋk{ Sf[gefsfu̵.?ײкx"\epM+Wu[ p}<0Qc7:>䓸֧=,y[Z_ye\6믽kn}7q;vZw۳,Z?cؿLK~;jc@[fݍ'hn`df78qP}矍0|~h|yhqK1Woofi|mwƱCB'ɟS''OEƙg_ƹ_`oH2r%6ub 6ډM܅xN;~s%?Ku??z˸ۏ5~ cF>ЏFɰl?m>[_zc6Q݋U?-sؽ_1oq~lY?vee_lGe+{rRַYYfV񵲅w[o+;j], oPFZYV`ekB`geS4+{2ul++=ʾ\`e//K,sůVe#}l8V9gyle-_2 M?`e>ñYى#V(}9ie~lV93X*m[X`} cy-h }T3ءqniwk,zطjɍ v55Xf{:0Ζ`i ]`oݍc3kjp; Z a0. `v5X}{^cؾ{~o kl=`3ؿ Vchu7X14`\ v=` V%`Q y "`N2X0}1`A (`ߠ4X(DX3`Q"1 ^G3`/M6 (-S J)1̂S J8 B tBٌ+J(P|2t1wfoxJ?lJk(q}%iH{1߄ْ77kކ^аfҾ[kk{]}ȑ#쫯b_5oѣGٷ~˾;߳~رcĉ짟~b'OdNbOf?3;s ;{,C:ľ 石>}ll߾}l޽O>a1裏؇~={>ll׮]c;wd.;f][|6۝lhakiZv;mfF[Sښqƍ֐[ik@[}VWlVǶ[-l^X}G^zB~eFW$=rRyT\W︲F/fwoP4r.k_g#a/1ݝZŸWKfK vwqvq6ra+] v׎qyk[^mK+8w^.=v׏q6!˔an=782ek/8Ke%vqnS+˕cn]5 o> cnl8y|Ħ%vfAm3'ƸFNq.1F/KǸvm*T=簻Q%Qb8*17q.-989]#6.GT=J8Blbnݑ-bmUk/\nW.1%vq6vwqng/)VaW쮼4 vq6rGUbwbv1.ݥ>b+9]1&Gvsg#]svq~sw 2{}Tۍ727q.1/c/ܑe تUc4S61F.GժbwW-{8bJn*fwg۪WgnlbWg%Q $7]ui&.W-尻_3]1"8vq`4S`wg#%Qb6z 17qncwW#b\K}Vraaov1dwGM c&n1^*Vݵf2[Ÿ\n$vq9.[1.7.ncw']awga^1ζ|3sؔɁKRot~1ofnn9bv1d/ُJmnr/ƙndvwq+}Ħ5U쮺4Sݽbn1Nbwgas`wG[Mυ\SG58B0ȉb\Mb\{~T0InLv7q,ƙ cQ.ay JU{(V7y&ڛ(QvVYDޫemˠ4!o*J|Mr7_Wkn,'U^q8v-5sιjku?LɞTϹv#BSF>Fk]'paFZڰr! ]Wƹ!a2fC s+JExbb2.r W ]GT,d>6XbLe3gAA}ud8Sh]:2.<0FaYmYQ?K:2.W\'_B䫤u \l-W ]W銌8d }:d ]W4E8dLniB0:qK)_-}ޱjX@T]*wTɗQNFWb JeBNז1Uq15B>U:2RlԎHc^v\.t(2$u00ROu\Ja`roa=r*S+4EQ8d} Oy銌c1dLVӅ#zFi<ksr?aܨȸ7Xoz!eLWdK&ctLԧ MQq&|ƌSG81Ezqud|Xv?FF;>$d1d}6<г7143soa; ș!t]g+2c8 ly-tU9(<&ŜGc93lVs< )ٌ Xo#BK+bl_uoa= r ꓄+c" ba2BOLF}ud|N>M}uWCWRϾb;>KUjn[aY!l- =G/I mAn,/*穯,7_ -c"@bn2@LB}ueLPdD#LX ɨO[7 cil_[FCLD}ue\N1&< !~ud|InM/onK[ԳWR\}MWW -c"be2CO$8Sq<13τBLʘ8G Г!SQ,tO_1&(2"&c,dqg~t#[by>u=6z d x{~%>^F1WdDQ&!G|؏c Q#tUdA$w qFg1Td|wK;;Fg1tg~EDA㿇>J/~L'{ 0ѨD*0~@P.-láGBƠ>R:2~l?0=(l2B>PF1F(2"&chG]Wƙ1d}&dg ]GƏsG9dQ(~CxO g~ud}O7f?>z^ދҖ1P &聐!WJquAXC\XH=AvGԎn qz㧊 S0}O_H=?Sd<@$t֟z2f X#oa6xԏG7R;A}#hCBَ_)[}IG{p/u_K!õe UdJM 衂K!eLQdF&c"ȩO(jvA;Rv%L[5+oa= 2aB0:G۟>[C9+c"cWbm2A G}=F>mۓ~x9Bבb;HxJjhS>vQH=ۑy3 ]W7c]~ t];+2%F&ΐ]QY2SdNMƶAv@};ؕ{AC!Q*tO*iY;Nb'1wRϹ3HW37gXatY4,s>ഐ2vVdKLF?!9䬦sYŹ4礹,s>㴐meO>161 Av9YMsiIY9XN؎LƑ!ǡ_:2 \ =_;=S-lCCF>\2NRdF}L` '~=c SdN}May]=2B0:7_x>| ۥ#o2)-Q\2(2#F1z Tԧ?c99bXsNH=cyg;/oy({=389Qw7H[؎>;#u?hoi!yݜXo'C>Y2+2$&c x$ a0_(F-cv$p Ǡ~ueG]Mq'B~ueLVdJMɐO*Nj4%g<˿mLB}ueRdCLУ cQ%t^KpEd p{$ JOb@`ʘ8MD)SQ"t]8?8q|[!x41^ѽ,B6FBו"Xdl%䝨o)t]')2v#>&c0IQ?I2*2v%&cPpԇ ]GF>P`+Ҝ+tX[zud^:2V׬X݅R^b`}8(]=rꃅ+DEF?bj2>2#cEŸm#q"hՊ>BW+ACVRC26Ud,E|>&c#M!ueUU[!Vc,FPn@ %ʖ g~ueLRdBLxISP$t];cq" P1p]W8E8d8,F>7v&,9r ]GF_y@}DԏsZ_[i=e(Q?B2UdlFL^B{}iGO;^Kad }H[+"cmbl`2v~BU0gR*0Ɨ{. C!G~ueLTdL#M8艐)Om} [0 /cEۈ'>QG:2<6LWZABו"cebn2-[ ]WAwc?ACQ?H:1p-3N6Z򾖚rΙ_w3wo?h1~z^~,v6F՚8}ψH?ـ> s8F|._le 8n6svyM>_me 8X:_A϶lؙL> >wb.[GzIޯz-l z)v+-0f\QF:8:GbWsܓ98GZ.s^CL}kkB{&pB~jڹ$[=x yŦR݋Z5r"+v+o7.uW-FdcW%m;}OKl} ܳTUЫʽYTh/ߟoSQ W}Ӱm5/ߟoX{R8SRN\X|xʽuddq +J"F g0x]ҸŸ*+K}ǡ/5]ƛkn7MI簿{fuԔ-߳&тlI/-t.vWy3^kJg]9GO| _u5[N*Jy{$rygaqX*ٗ| oiqr=XY|6~@AlmyRm^J-Ų{Nll>Jk5J^A@\iѧ@׃=)ъc:o!#Fn1"O#{aArPNG  IHDRblKM0PLTEO&IbKGDH cmPPJCmp0712OmIDATx흻vgjgN_D-qԌŵITQHfe[Os*$wZ8;Il`7NR rvt.x߳}:W&sXIGsbq0՗HrH*$PY[XH'W#9 Bq J#qyp2-0PoˡYlrhtp*5$ևC8t9An$pϡn/9t`DLwOz1C}'r@T[\2ruv39`rOD@(Չ1Ù1H8i1'|m"a~Q+3WG .`+/~t2.?ssGaXׯ~EfF&h\i* 9,zCOA{ZiC2?T>آH!N`bmV0r @c|9 .R'( _sv(ˍ_xy90$1? .ؙؔA倬g_{p<2Kjqċ%]E\[_.;O"ʏsq3 OBsq3'y([#%bt4ȋ$F2-@!C.H{) hkZnlybC`ǐ`0@E[| * 4G@ˁ> `^ C O/%aBwz%Ìˈ#6m#6k=C7V^3Ʋ GęNSk6O GĨY]rmij:b'_,hD8aMR$bCRpF8CcpZ瑈]+H{g9ZDp^) vN [6r@ Uy[rOIf9je *; T~ĒeZH!딸l\#J,^!i&,ϮCY% u۷r(LljYM@9$>#F[-DSB@!${}(FSE7~x @6\mD^4%U){IV}h3[Q %'y}zgqǀ(V|dCy|Lgl@T1.>|^\86IzU/WìMT#+xYRp@t bA5^ſ9tH0)9V>Gms $Pn7q@aY<8VH&KC ʡ?3mn5sP@*!$o9`ms df tHSY6B ˄f&Ral)u6”XVŋr@c`퀰g 3mn;j89PLpp kd:$(bk$jG$ mxL?P9`o@"ms T"7<s$9.fOfCӑ'|< ̸i͝[sV9l:2  ., 8fN¬YxtdDYP|A"r&Q uy q`tW~@F~ȈɸcR%sglIİ#_t Jgӳ3Iĸ# ܂k];2v(oEgP/bב#J6]GFD;]"? ^p&ZȈm~%ݑö##u NYf6t*HŮ7́}BXvvdUJ[#S+a~ёvQN ̔Rv1av~R k'o>Gj%vwY)Q821?ߪA8bewʡ.̤6sd,91$_"w8Tų~&VCAhPV}*5~ۧc~cQWϡ3'30&~m(ma6tO%0Jh>;s}6J:_9G*@U:qZ * p:ikurj: jq-[@N7q xSJ(0NnK!RH0pve.ɤHsi;wK@$\Bj6 w bfa Z38 ebHs80<fa7xW<8lՂIAd+ 2̥ wL%H:^g8j6 ,>KaA$21E)3PГEWd<]K d(\gU!Tۉ/5*JfQ;gc÷pϴ7J.U߅mXӈ &zeߍvjv̽" Xr=aޗ3QL* l6H'5ΟDCxCKj$lAC͖ M;"8=aIx@ bXDr~wixb&z)8D?<19KD?'zje, UI["9llP>6q VO}A/ P]#?>6$<;v8l[Y?}ltwpi0`Öe4N$ uKr8NVü簁aK* $h"($DwRi s/a[5+^[8*-nlVo5ae>B(hphc4r3^.d`&X`G!^Zxgt%&xB) n)@9T+=`@=Ѓ-#{ 0)>⠁]]hrh):8I+*k*G qhuA En_I; 8H%X IqBqC@8ʡ!-L9đ ò5wԐ/e'WI 3EN+E4z3pEɠ8Iߨ+B=#'L/eDKP~F29Zg@c(MA~ؒC;wXnS?I _>{4RM"}!,iSZ!Dב ^M 3LLY8ƛsXۥv .]*ƑvNܥ~A'H&"r0Uf$T]T) –l\b0(c)&Ub6=ڃWھ*,bԦU¨i'^ &v8\m!^]w}e0 D9~3G OY;'j}BsSx6lR9[|'2{šfRU K64*8TN "ǁ` ~ {6݆,V ^4ĕOvDm ;c:<8+(KZпYaЦ%/{OPi욌&j ӷyoYNjE$Nò]w4 GRd:怗|v`ut8 KC5 [Rz{k*S/\˰F@c"8nˀohd0Ox2 6[F&<=nÉqijoq7{a|/{I9Ip=;κl 99 *6|9 =АS ]'aȡ!&J?oeʱ3 m >CU"v{5yE y3P 氮;ġ"]ZP?(n4CE":v{hOkGo}9-cw*+.Cm.fs(Z~)rCo3~X-MakVZ!+g0h &r(:*ܰ2_wk9şΡyO6\Ra\k r&CX?bzPttk=CSM\9!@O\mY}9=Iue&`p@O #Cz p X zO8dWփCnB*.yqH[FAϼev*!i@OC*a7cRC>:`A$DqN_𱮈*Tq( ,;)J|>qhOe+G9%"vm/&W$":"rD۵T-6Ká:;kBơw `)89F'pFҁRhm7eЋPrAI@ TGrl|l"Xm ۀR)8l `Xl~Cw"܌=f؂m>Ws Bw}zv:rj$u8C9l#l9=nl9Hg<tDJwɽl-p:Yq6^`r@ܗ.Ƃmna(NFmna ^67@j8Pmnǁls?`r ܑ%>Ƃma,Fma$VmŁls/`q ܍5v6@ !R 9mȁlsK`{rܔ:́Y#79o6}s雃Mtt[Ƞ;sݛC9tݜCw9ޠ;sݖ27GLIENDB`n]yxp[nfmw@PNG  IHDRϦPLTE++-===)c!k)s)k)s5o1s!9s1{1{9{!9{!9!B)B1B1JBB)B)J1J9J9RBJBZ1J1R9RBBBZJBBbC?h~6jjTXZkppmcZ~~mJJTWNc_qss}s{{{9R{smk!9ZBZBcBcJcJkJkRkRkRsRsZZZsZsZ{cZkkcskkc{k{owsssckkksss{{sƔ{{{քքތތޔ甽IOӃscks{Zc֭ƽƜƜƭƭƽƽƽ֭ƥΥΥέέεֵֽ޽ޜ眽{ƌƜƵƽƽΜέ֥ք֌ֵֽ֭֭֜cތޜޭ޽i.bKGDH cmPPJCmp0712Hs*IDATx^] l6"(MbRK&u nKBJTH&$r)T"l-㾔(xԚ1C5)7@7ViD\ٽ}%j켾gm]8 u L]f NI'tSLq)=>cԆiSO>~z}}3gl0a֙f5jl\ڸ˖-R_rW-ꪫ׮XyJnXyV#ܼzk֬]ںuӭylزyn=[ٻg[t]﫿h s9wp߮zqwxƍxK ӦO~F35'1㜥0k>YÁkcmk-9@ `<,l}ȁalh$HS/su,sT1O9m'g4| 3f@$@ky8P%reK 2'+Vc@V;PܚdER,W$yqD߿Ò _}Kx<H\$RDoR.}5d*N&SiɄstw\GDzѷx~3Lv^ؕ}ZFlw\tfC'Tx4 eWCց{V5pO90 S9LT7¬E&ѾS*$qSj>aTbsH %-$R;\nB;B!ma ' *zυY־iJ)|%6-T֛iK ixU!iUBqleJٖQ:lY)˶T%$53j8Vefw-iZF͊ZMX1ffH0D? {{}-a!َ*W?~S ~Bye1!"h pѢqvwY9kȨ;=,LHͳ'i+s_>+hvGc6Yz~{W?IY۶_pw5~,u_ma°@۱%Ȥo@4{̯Vv7IkJieimqc=PЋJriўH&lbz3Uޢ_πHb}Ŷ?ߖ*O@ ՝e >ߊ@M;[QQ|?0ttx Z^Ku/Kj}NF~NR[>ZRYg/;U~ dbW΂KXKaUqGvMX*H%sXsw"c3HGH@ǀZD&@&@Gc`~eU#jVo o t$HojDjZM" =VX-Q+PvI$Б@"52Ԫ7j7:HF7PZ5V`F@&@GPF ߨ($H @k@-hbGSXGe9pSV;k;&z7x^M Sf)1osJO֊ro5gk}K2CA/A`-LdH*Fӹc3t(^eeڍC'w|l#I8nLsNIENDB`nVpŪsHB4W՜PNG  IHDR ]vPLTEFB/Jj58!k&p/uG-w]i9bhaiYtkus0D?^hUhs9+O]wPw|mkm?sE@JcyYV]whz~sʖ̷ayki֨Ì̜ƜΜҔޒ$?¿&̾DZ{tmmŽk˥έ˥˴ƵзήЬј͔ޘ鱢ȴȳҴϩεҜӯƽ˽ӔֱԠνֽ42:N=B^)UJPT`TRZZZZZalcZcckgZZ5#;sh\ZVsswsx⁆⎊딄uxW抢䃹߈甌ޘ瘐ޜ眔窎ޥ룜⤥Ⳡ筭ɛ޿ޭ޽޽ҵ޹ֽ&jXEpuXUT0ZQF/ ozQBz0/2cQH RυT/YXENt1Vc/DzaO&g2Vï;(]иQ@?՗׏G( V~LU~[dl~uF(2NI'yhd3hiieb*{׻mn 2/wZ I[-NSh䘚D\hqt H!G1D2M]DJUv &`ԅ WB"0^r7hmF Je%8A.Qc$Zؘ2(0hP| Ѝ ŶAv-SZc^Xpフo2UĘ _,yg⻺Q!WUP8<1}rG cJEָ rC8@3FZ%?h~0K 9IFCc꘬321 #g>et\NnèpD;]y+2TꥋTw)à7&KqʘWL`,(iٍQ4^!VJΘAd '"M蔟 AuM#U,XnZ6a3hwu6"ᘇZ1zmizRS?FŘH:).Vl#m,L4A귘VTh)0Z\0r.{ӝYZW,J\S0w: /<3K4Ŵ hh0c<~bhŽ0:cB=.:nK7CX vdBYEII  /l2aL"bdG #ªJ{8:I<lbS豵KJ8ˤc SD^Q^FSŸ_|pNИ\Fz,ƶ@:OVC-DM42/^Q{QE;U;#A1Ђ5pD4Ds4/DsM.tXPz-[=iIHыsϗoW"bOl#||$1t;W, )W\g G(Jk gpfxW/\ёw@Rc !&CLk+"QF80 ]js;h-7^m3z jBX60P"Nw9PuV`P Yr| W^:~T"+eaVvtz}T ͇/WR\Qg:&q-{)/,fdPA =1m3:0`w/٫ա{!s[핫f1~u[]&gM0a32yީҢOL͋Tx2ec,ǒ]A+Wݓą+L#5 3Ơukoeaf*be΁mw.{k|sײ;7'^M>rrF͖I"SVebN`WWEʒ`& Oc9AT]4D}^{P=/ۀTȚjfp9+b{ؙh(ܱm(M%ߛRnY23 !sitge=;9AWb=Ʌݒ,wzg@[HK0qS1e(///Z7 0ـ91dŤ  Zg>)q-1ym" Jy={{2nYU`CvD,QXarJ4X0|e6*GbozFf[Uʬv^΂ov­КW._n٭v ! IoC$;Oo)t(䧐 Er}i8A/ 9xu38lG z!CWVPt*ܑ!o=Qx1/BAr7tu\fM efN 1'8xs&QȜaL/\G>}YiňJ fcLfPrt]&cXOj }/ 4;ζpѷa{6~_viycŔCs?FG׮=%T?FXd,``xL9WӷG^dKVC{pr3 ބs7m<\|ݔmm[3jm˂-TRÍAWdJySxi:h #RT.ym筊eo{pe8̧r>ۢ$s|ef.5.֨Op $uXp8qLԨ# 5We| GM/3׬*.bvCh{QQڤX걷^PXo'EZiQF [ZR+ys3!sUߗLf:=e.(iQ&tzHȍ2ڡPg,+s脫 45:Aw*h qb  >ٔ:PO>w8;u=uZ-TV(1f} lCC"CCWz8 b/ 7gDZ#W_c$:8CQp&6a&{;AAވ! 05=kZMJpE <#(TrU!7 _K$ Jw71&}ys8y_w$IP]P蘦KTNM+/LC `!k0lARum1Mo>Pe1QE' 9Jyw[w2@3ЖZ3#Hcׅ#O(_d{*T*/+ďƘ'n[ؒQBr Rp@'cFwRJuz^wJkS %`zF&R=ފ0Wg֙JԃBed+_f((i )@1 O2I[0 @>G%1Sꉦu,~{;#(ac80QԬ HҴ74&'Iv0MTRT0FɤPUm)C("% `#QT8Tjl ykjS '9cIrހc^-M L1EQRe+IF1 >1R6Gٳ71FYQPJv8fIp`?7;o t :[ˁid.MTD8cZ9iN:FިFpj{1~0Sm2WaYɫ%Ud)Ó1&_b"|e9+1M9# ԜZbp9m )6y͵UcucI0FT-F go '(0ß01Z(S0ͽfM1~P6 5BǞ:%60F/0J"gZLFSBm -UkiW2FqXWxE8l +(X\\HvCњ k6֩?ZN62FCJFu JC)t#`,绞kn⢄p)J+\@D^qxqw6Ȧj >h34u Mf_hjF-1Y.N7ѢOc|67gt; Pm\(; 9 Y@uwc댡}ΞFxM6âOhjCI4U;% #/-eV%1TݶǗ׍  2$` 5c JA4BW̝FZbdp` h@,^mtFI54~PbB1=iDY0_kx>0Gڴdy H⇋ i{u w1 }ԩ`tȗݳ2tnCC!A=d2@񥇅*E 1eWZ1\R@tFvƐd8c:K_! A7 M ' D$Q(q}5c{1ȏQ1ٰQu1Yu4J^`F2pٚna֙s1.FF ~:iDZ% QX✬ldF@F`Ec`5˶LB4cFY+ F ڨ!0 RB/ VR1t'Y䰃VH50U0 /cimTS_0%3|w@R $EY/c4fr𢍨G:%/1*VA_>N%,Ook+KEZJZ 9cDz.e3D%I|: l֮~VnAt 7˫Uvz!IJ'ưiPCxCYa`t7*Þm?1FRSM:#(>Z7(JM/qɁ>ELipihu8th2K+q-~?rWқ^/YUvrZ@UDoQci,KZu`U?WLZ(_W ]T*CȥQDusm\1kh)Lq*bL5R X+BZ)^ ,dJ<%^7')ޅzut}%y5mg(`ޙq4$1fw\S0V╂1r "LyEXvNj$vf .5A=j߫X%D zc,;H/ch0zFu!EaŞR̳'c" =cd 1kޏ"F^1B`tÄU}0O FS; oslcOU١Ty5d7A*Gr6J4Pv- cqU1ڊ$ˆ1_Ь57c%cs` " hQkzc[DY9\=i nDEio4aY~O{_ Jzr-LV &ol\И.ÒSuXRO5(etiLVI%}O[fML(Nk52c\C2XqCW"~0IQԑ*.]lǎBn ^ChPυviDnU^SsIk0J[uJ4e^7e;蔕j|"cmqLdqRK }^qD8n4h$Q 3>OXh Ƙ JJ/xF3VFOmv{Di#bG]>&1Z JGcYjdFY9,Bg|(H;Q]sh3ԈR3JīctrQVrSV wޯq;%]h"W(HTy1\njf SbLTh@`'1v< .z#}Lg̎M:]܌%֚R(,ׁ@1E/c.,5 JzMP b$X%ctW\j+0P]/`v`1Ɂcޅ߯%}JT)\^Gm aTi`Ɏ_AgKS =rPakGcidW< V :'tBFΌ:E)UTuFtjvH4cz,Rc&bli@G* | ѻlD=t!K Krd~dMYPa"%@0Mbk銙wJ0' Ƙ:fi2t Վ*S'=|AIM,!Qj2ƽ[^2FK/g޿ H?FhƯc3^%|ᐔQ~}lpo護w<{1bFI t78cR2|` KH׫K;\L`CggTni1%K/{2/,S: h=g"'[o=RǤ&ߣ1w/!w]qGbU$ Pd'ne I/nqC\T*#%`F0FTE'@(n<.Ww"8>uG8V:+-Wʀ1 vp p`8cꩢd%cCp>Ns1B<` DI+"gWd}܌͋TH) $gUs ;SkD'tseT0?[Ę7մL|R7AǤ= K"=_EgFXk~F GNq;3Jm0x7 vg40/19 ˄KJI؃Lj}#t$+4߃)Ƭdi :F1c╘1_ t:S[SJsX5W=t7mvmD| PgS|E0 Ŵbs1\drx}FIDI1@ -##j`̍ ,}H>:<5/MgL*[^y~kWHQɏ[Q; 1$IJ?w b b$LSb1g c4$hv\1KHc7i/H(D #EX%DZZ[(#KIK) v'C g}yR?ݝsvF\z<5%$|CD0%lnLNŝ2\{0^9P87cl#WTE@*'XO1);Ԥ!(9w^7ͣ00x@R}1㶄q U^\]]"DHg=*q矖c$ץ^7qH 1ႨY҉1x΢%0(<2W؞sLJ]/vcɞ7*LOyA5CtMo_ZbN3oj0) V:@Ujj%#=iE4g&80rE7G^_j&U4|GF2$` ;i%|*ةB֓Xt kCx'1o%4o71"L DAy@CXKaܒbn!4uCtY.ʅC4FıO@=?gcVϺ RW;wm~M.\JKw) :`?vJ+Hq0BgrPb D\91TFC/Sv[0F3ZCLGUx4Q:Wd'n0iVoL:ioU[ޚ^o}{00"^ etNc'~_wM\rNP:FJƜUj4 \dG'׏!-GbJ $ ?;Z] ̫XIX5N>r>De`ALiHˑ^1W0j!sݤ3F%9M}t6i&1ED:wCZ,vxP9ƍ`:l}MWw+P'z#VZ'{C_;=~yD)%IϮJsuBmc^:zfoFc!39aZ8/Dod DJYp&M!kD axF v J1FWa:P*aѱ1fj^m@[kJcvp{ͽ=$JĘz80ObEiJ!Lھ*t# `>yݴ7/p ВP*.8^\E)tk~ J8lQ_ӚK[m![cV|>"΁!Az;HϨE A 1-QLDC#k\96c3h]` 3xytbc,csΞ<{Z'~׳M 5$J%:Li 1>r0I 0X3Xk~hP!.ItPzC]N]^0VIs#6֓%+إ.ҤV7;6q~R-}?=gyV{ov yLf٤5 |R lCWN&!KْF;h [p4xxcjb oKK- 6&d| sZ n @ťNTg'OjQ2'nf$bO3'^{C}:;mWo)H 3_JJ*.|1&ƨX}AΘê -d83x1ZDSpN$sz=o~smԊĿ' 31sp"[Nyr:f܁V `2wwJ2.m.= U6t?knj.HqgC}J}E'>L8#O `T뺟cf=nI}={RaBAt_\{_o~9H\YfG1pCHIPP[.S'"۫Gڕps1REi-gᬥ}P3YJS/*PA^֒c$~dXbû5JΠoYG^HQBHևX= īcмU<3^ eB4N9ҝʜ4d+dՆCΒe(ޯINRC4nqe}VL-!`x8]K=?SSpS%`q1#~ uس'H15@^?F^/""䶚?kb0180);3M\'eeD!Ƽ^?y0R}v0?1U5E#{;wVm,uHxF;%THMzKrf#5[ȿ}ǎ@3Ͻ mzVvhJ`&1Tu*^CV>JCkwfL,v*z޺\ɭ6I)j:%n_8x'ן/5 Y i'_V1BUs@(^dá6;_X(ie t!Evܻcmc;_QE"H%TlQ^o0;nlʾO&)[N:j~;ҭL3*rKݸ[ɝz@ /uߞ\N `LvrVA``J䳾O~ڦ`e$fXV0FX={W ^?Fj)g+b}흜1I;{'@_w3']gŝwnDG9vV֧3ϗLZf炵cȁ0\ M~ʰXj~RΣ'gO`IL;X~$t̃/Yb L|,^?FdFVmO' 5klp0.bbMyR{ӦEg?0\˜1L9 ƓoئsّwkI5sOA}MpS ({n'YfY-5NvDRa`{b ${ˎ h{975Ø6,FE[Ys-IM`L^N1eaWn>6ϊz&딷{[X0?p4w-c֯J'm)2/Zo<4T < vzSx([ް~Ζ* ~a{|L](ȟSpTUc/cUaGr~k୻? IZqA}$iVܥX}~hV;o鹢 0lb0m]F>rދM ⺰+w oi6o[T]; MЎ#紟eX@_itmp8G趻}؜򗏮xx#In:)7}g]Q#3CGCvǑjr$B ZM~떣i 笙;h?Ҍm[/vvor'Mz(y;-_130j*{';vlú/lÁҀ(|>_Wp1˖xXؼp+;C˖ew/͙,{8íwN>voXVX};z|/{G^[GY|êrs,gݝFeiym=r9͗rv/\vtnn@ˎ޺bsȦ ܽ}ѣK_[A-G?|ѿ^_yGAC5oQhohJDYݶp܅V»-pn]rW VsW]Y3ӗaoݽmK.2so4q.vޚ]:Sŝ,}?w/[s,_^nқkf&lsnޡMw[|/n[|ևxܣӷ OKY83:I~±lyKns(խ-yK^q1F+Gjܭd 9ފKovy{{6xMuû~SނJ|sf}3ܿMi[rZqY?~el5w;ҷO(1O:̒Ҭ'O6?zu nwcAw?xSnږ>-MIOu}\UZ8577?U_?L2]RRxߞR2aŶI&Jg&4V||ދ߫D?p Uvm(.)Μ0mfb۫ɜQV] JB/>Xw־gק p;m{7yn8D$8v&X7cY"بkG_|O#ORSJqwхd\L WWeoRHy~dR3E}%A4szLNzXz)pТxZcVاhƍbG_ӯχZhĞ?~cX5<ݪP}:UJu_,|EJo}gfqTx*5>+gtBǎH^Ou͊sn~m/3H/ 鯴[|12(s%}^i2*qagb0d6LfɚG^-'BDZ`Lf;e1aUftpɄ|g&&?_ -39n8/㮦 lIliԈV굘v9y}%,J("鶮w+r;&*_]hZOc6po+MzA6x Nݶ*+TX[kZ7>m[oEd0+aaUͳ>0ӂ'n{0тV3@^vfª'"D) &5%@Kdh>cxt-f -w@]-<[0ΙPV3ήX@r%ыt׸r lJȋB3|b3Q 3VU17Pj)+h)Iӷs(9nL:.:gs҈c&ܴWRˍi9/[psϟ2SgESך)SN!,#rӷɞB"M$3I1FNzi ?%i~b׭ziSez8)'iNk\1ba2qC);vBmZ4k~m{]+到k m_}*U3'zzy"e^QeaAZ)n^wZ ̖9<Ӣ3X4@G{%Az[<`LVl@DExkEFc^`D($+/}ƹxC0{w"opw >0t]v8 . Z|aWɂ~fr1>gUX 9߼ͱ|o߇=^HT3UϺ S1^AUrt13s<3gNWd n(US#x|CW!SBg"a8j$|% K]:+Bi}`?Ὡk$`{?2NcIed׉gq)Д`y]_b8'V2BFѽN~ڛ EU}v՟cszI3Q0·׿ҷx`ڗßErݯU|iGڞv.`K1^qxL>?%[k 1"~80|uǿ=93njCQ7y|8pn1_}7Bqb62v"/IǼ8ʦ_#"^_+ LR$+F_C#xp=TC+OJY9cox#7 ?,nf؋\.L)lsy, :6z∨E.*? b/r95;N< Y(|YL9 Vfl<0gȭ6r=߱c5+ L<KRzB=)IENDB`nDGKjo;lgϒ{ uPNG  IHDRT/PLTE)./sNM7UX_`nWssh{kkw{o6+;.Jg7P@VS\grb9'}Xx[{{s{{{~s{s~~{{{{{{{k{e({To!BRk{##QOk~gyELTeTxNvtzw|і\͊†ܘʖڔ祜œ眽ﭨƵƫѹʮϭگ11N1FFWUs9sBsJuWޠΐRƬg`ޔkΔsƽ{{{ƌΌ֥猄좭ƵƵƽƽέӵڵ쳭=ccky~oyƌҖƥϫӏ랽ƽƽνƽƽƵƽνƹ޽ƽενֵ޻ννƽεvbKGDH cmPPJCmp0712HsCIDATx^} y#R,G*k=cg$v\֒2m AŻ k*1$B%N$n<4ibiG,VpOg=v;]@۝%[(duCC!%N{~cIF?LkߺC|= 2c+0W-[䖻l ѰO;wL];wcKLdNw="^nLay{d_ /|> d??|?r ߰~`뷌o݂ډ7uߕc[::s:vܹ% N1`k@v.]c!d\Pxo7 $L  C= ݏ?.X~0u71{*ǔ(`ݷw>>vx'n߷ؾ+w[)`Eg|LH!!2 ] 8P/ 1>X<$@ ×1@2a|?7 9f<̭?y+2y+^׏n[[ܻy;|W#Wa0s60!?:SL14HS"@`܇ +_1k2ڒ1k"- %39q=q:ekFى}Waz(;3}~coN"ʜ{؎f䒙;Yeg>{䝂WI1*J|NH,nEtYFB`̹` dz<p˔)^gfx TD2bEOEI*eȒ$lъ"+n_ΛVVj GI'_*ESF̆Jud0T(\"910l凘"Sp S.8P,XّWxJ{KSf4ax!XbF ^/"[xIP!4' 4 ,$ hI,ֱ5;77`LP%JfU_^6uc{B\{QФ nhuCT8@6* 3H>,fdGFex|wʰU^&8O<3'WᱤT"TeV# fAր s UY;*"U B&_!(!U*0BC၆ƅ   0`C5F$܈ &d`I/N`|6o\4rE+oO[f+\  'Z7QHq$ 8 yIt*TD3-X)FHimlĐD+́8u ?B63offgOD!I9mW=)hZ%HcQKx' hAt#9Ц$;Av܄|F pt4#Vc.z+d)>aO %]v`/v5 h*8 KxUya sF(1]HS oS5)ÛMbzL*9t["5+_*RE8DW.:VE:$/!&fKcIX?3H J.ԗD5t&$LYCBW_0roߨ}{ϞK_0eaal{8h(w޺ahWvkj2j;> l`w>M4L*[)cyq_yR(s0BJba. |QG0jf㶍_|mAK3&&겱/~P?\"P2߲`73>MpSjeNY*6m}qqٴ_;o'ꑄE&̆MuB|=(DPHe<#1FX@=l'7![wȳ-Ҧccsu-:6:mu;%q֡rX%uy>L1>͉JMHt鶝k ,KU~2jyǃ]k3jfP!w)GrD'r1-OUvVڥ# ULL ~QiLQd ^ʸ8*+Y\L 1Rܨs\+ 3Yp8R>H ŠFL0d`[S03LLۨbSMvŘ!l`.`,6aYx̆kF $,u? c"K e1k HZ- QV` +T?`ݪӰ?0]حSj=$&12tkTKIՓSXb&]smwo % "r d?@@(&F2vrAz4BfEiLTDJK.0_4, #3WdB{>"vLU XXMSIR@V)Tj # *k$e`9)mٲTG7VǴt'43&f0WēI+'T:9B=/l,G`7zl/*W&myfP 2y_{c'&:[zI`O(O}w9AXh/%аiDG}b5*3SR"J5z^7Ʊ5Tcq_t1S7xv^1u{ .eLʹ (Do Bt3샆0h,!vgCP'$l|ni{'@X''E3(BfI'ﳲ'6I!Hay|[,qokmKt .9mTW"ȭm߽:Ptw-h(d(/U4Ys(Zg(zLQS`NS-) EW%f% $UoJ&{TW5V6[#JC|x!gƶ-Fabܜ hVaقB&.<+RPY5m~I6"*))8wkJ!gX~?SۧK cnxr,E9 ;gp-N:{/i9˯:fn^m:O r?6qܦ!3oz gs{™#UwקmJQ]U -eb }(hՅ~LMe"$S GQh'īhu{~tY+9vOWq+z[TUTtUZfDV (ٓuz< XD/ʈyjFڴD|aŴ@ĒZє f%Q[S /Nu 8Ydh,E PJb6)*H|IH -gU,ɄW^pM)Rvj\4G9÷9 ^1mW[ZoF:irJQjڪLہtcsպ;+ʪS4m`w?&~I&DZMbX wiJQ7J]^Ҵ'´YEg-t]Shc& `,2:eZӲ (ކi)D؂{amJ12)u˜Yғ,RN*?gH|U#dY3EIL11pNm =[0$0|KU=+ytQ7M17n*$=@p3 k2U_xT)M;;)DufI4fe Sв!G|](M>E.Op/uaa%l.P\_%e DP5ӁPX|  Z208xpB":5 CqǸ7))_h<[X~aeYO7=J &*Mhi) -zm _7 mdzݝ^L3{M+41[URgd 4QmB3! EDoQX.C')ߣ&}C2xR eml* 1 ӞfTc]?s cL}muEf<aWyEQ~Û&nmݲe+I?2JQA.2xE$"!yw%SM>2 2O1Lp[qoB 6S$ Q]< K!)1)+Mh{;~[OWNWm|Wl޲d9JS8ٛẖ\MHCw(o"th%XHj? he. mJQn7t*:_K9Z)HwB~>:#?G}l*aGDʣ+>c?̣a~g=³Ē/D* r8 b Skuu!m3 x,^b@̨ɰ>_}?F஻oWQ)[uc^)64<,H#P;tٹW _<2$JA74G'f VYbಫ㾟~dH9nR*tȊ;t5^'C ӱ[O@c{Nc>kܡs165aOq#bfjU?&Y[_?xULcNM @fE2O[bؔׄvASkWw=DU l]:Mik#k-~* vFg/H}];ސB1=1N#"Dvc) Vb"o,.hϺ=NIjl.MK%RmT[״@Xy.v`LBIŘν-([)y!09"AkF6Z64$vQG ^;]8*:IHp]rWKN+u땖m+DL| B&W88<˒"tJU)Gx%),G^oCɋ2FS$ӑMIPyL}& pnMFMn. Nn h ~tat] g2 8vi4M$LCPai5/<X,x fnŢ|W+nsÅ ɓlPaod/H3-?vhBirmP8#Pg s ԳW"'g0Sy-]PuwRcbV 2h>HTj#2 77Kp-*f)_)3 fSqX4ֈ1N9aLq(AcԲ&gU@6^5 g9HF4&+C+$Տy/D3$kSg$wc Ëؒ`b[.zzҴ L(#+|k)4ֈ1 uqbjP&礛j군l(ܭ<˰I ܊%maǎ#vd*gQwI&j(e[+`07`aL_V17QKh&8aU۴Agxxnvyyg0Y.|LtGN4m"xmH0;3Wblnh>6CV_^={fU([g`j9 ]*"MCKA`VB% ni+K5)^F4lJke儽rb>AaPtCg`MfCO'":A&,Z[W4/P5MxtÜg,c ^%d~ķe#PeKA@[Y06uAlT"Z[ER)%^)Ic\B%50O^`xN5EeÐ`^Jk#RN(Bҋ΋C"c\KC/9s "4/4*Gkd7PR/ϛfd҄8_SMg"w>G|QE܀Ԝm/ *u"ҔR6Ƹin1JET[Ex̫9taz|3DTRV^~zɎݹ$iL*Ge:a ) &BM<<Ǵ%\LY3!J!DJ(:|uy]X^;AVT'TmK$"o8ߡ۱k)[C_@0RkJ6%i5L,rߋ3$"0+ٟ߸nu osT*b a 1C0貖mdYTаUbĘH^И]Yf +'! vaٚmj6 s`k"NcCGr ]BKUX0-ɮT@c]tۆ[ۈċ7S/ ^*<"#R"O%\tb{Jg^ _P):Ǟj b-3#u*ux?I[["myDBR\V`Iq2J1i[%Y^Dul6eE4!H.]UEynTZŒwZCDNQޜ/nއ_\`OPԋdp4ElEK_>/{%\,)L tႽJR!8DlZIʅ3Y<@E TRiaѦ"I; ["i-B|kϙY wo]TtG ixtytH9!}Kln(0^C Ÿ T<[}%GL+ l[@FE^KJ!M9DK[0ƜF0ra] 2`KsGŘHki *R %&X%mB$2Z 6tbcɒSBRӘH_{J"HK?^%^?fvBH4Nv(D>Ƙe"Rȸ 9f!M^\vP%iu5x$F煴0=2Z5`rVCr+A $21X"9xpU6e䋎IΜX?;B<_M25ߤs_<nV[6j4˗EʈT&‹GDSJƉKBY)QlNdFj0vq':Gս$G,Bhb:_9qiJmVfcNRj1GvEN+PQ`UK L%j D@:ٮ|],=co`:Y< i:~O t 2~<$Ë㊼. @axaq2{\|n$^ )]RmʅQW<:2"!CDMϙ]l?0r; oy$DRNL1` `E1~Nc[ Q|#n:ĘWN;ֆgtۖgBj},_PPD6\Y.[.22SN]f$TQ=^?4*FfVnkHL; bELLEYTYԚpБ(H}12{oBf6i)?lKVrvPD>W7O)1^?|cH>G?E2MTp~nn21"8tjZL*u#rWJKc"TgH imAYWAt5x7I *i iL&)&ibd(^`K'Hd%b}b6bpl)H/j23_>+- #@æ43Aot1h[mUC2pNԍ^|>&W08d|gJrTu+Yj],2 ?v vΉD뒑1#SjH ¡y=9L QcgS| nc iE(U>m}HpAMbU"y4a1HBcaj\]wNvKv9ŘĽWJ2ݣhkuC5M#0$-oN/G'LiJDp.'J{Cc^GӌHxN~yєSQ]:}j< B9F6<~ qd-3 /ddg}iͪh-.Hɯ^bQvIx`3i7E S#g( #MĦq_ڑ^h B0f:nvVyV̝DtP7bh7eZK#J^F)0^㘫'%ۘU!D#LŹG:ɾ1ϵwI1$yyC@o̫7-0u앴ywK0> 9gԸ8AJ$4 ń HգP",!OP6JcK۔p w9Q탘# 2GK%j&/aL.1!ꋦe&Z ^,C(cGl7 ƀAZ<ĤZ/]0)o}5%^++u~S.}c޲|I g0Or;<3TkFMqZy0!ޭjv'2ϧA>0U_~R%eft*0sP,2dyy_:n}9-(H`V-!8xu #D@MTKMFms95cWtgzI|ڤ&Ik:݃"V p#)eNr;pNtRMD-I9D1RsR Bdu8bJ:fu6HA|tvsD$yNdYI<3%ɟy=/0A2x]Y__#M/ogftke;EHnsJ0UBNuZ]ZPFMwNڼ0ID7pz_,z$d4 ˡ ֚Lډ%2 ?. C]Trѡ3쳽z%ֵ}"R)fMϪ* B41NnOnHX(i@S%Yש@DHHrT+]GǻΦ21$ygo=o Z}wnc~T%xU\AVl:yI"ķC\VELt~'AQxǣO_ps;@Cpz01~Wt@O$- ÒzUd˚/\FDk8/ F4Ob. s:C)D/.-D(!xThnHݲA:|Ts ̚Hr1CO1` ~T˪`,V UMiD1At]RP_v)ȑ@KەRv8O}:מE|)iŕ&= ;D|BJWJ1uJ^TFyF3o쮻LBGe16pZ~~9sgvv@4'IUA#lKj2CoKkD n]||6=f&cǬ~x= s &ZAJX+AI%_a JЃ/zJ/] H!L{r:ߓ$5etF.ԛ%,ΤkSRVkIIw*?FbQ䇤Mȟ W4aQi\IL9i6§ R!+` қi;D$z՟m$HnT$hG z'c %^tW57y!]wJU!7'O)\,Ɛ 1mI)hS0ԩ%n p0DaJ`f9 ^4&Sg46kv.~ +" ns+:3H FgtDKZ;++*:`Lp "1(L %BA^eZ]?d%ŐC 2o:,U4 vy D`I+»k%\.K09Ȑti!_bľvp,BnD+x<3-/{$2iq& 1IM'Auꕈq}*`Hn('1tyVEPmxR<& pz+Ή36RT8mcdv2t_1|tD _͓b5X6zf#^'+5oOkC7 /&:rȊWQh҉uZ7aO+Ypg5gwK.)DQ)j,қO^o<L4,28,&Ȩ'{SpI)Iuw Z{Ǎ7Ο}aLDpzv7)q~u.]d:AV.zJ^xƲتgzc;쥛>~u 8-a_η^% *u,jW_> ht;~mE3U͜N2Q˜.[ %˺BV8(A,+Y0<:ZYuU46kxJBm 5w<>g޽N:}{ϫ*X;Gc9]LBW_:>qCʪr,7 uWx2@'fXTڇt?w;UϩL)Kp.s!ڏ%Ơ'00YAQ,YFF6U*~/N?Gz A+]53AbL *iqXys/{OuvSLS*|OӶs pp~74d0nXiXNXfc;8;㵰VLsN/X20+~Nd^g殸%[y[fIL=ᚪFvex#2,b Cu]F9GVNb [R]o|;jY}7]*_3PB:韒|d'7yPP83FR{Ӓ/ R,) ISk)__%ynG7#3:֘kէu?JfúrnS+Vo|U#vƞ]M髷3=wko5jw~3RiHI.Ia lӨ[K2B,n>/׋C8dncisrt^ ! /tRX_Ƈb5gϱrԊy0/1zxy˗vz>w+__5LHX`p8 3!`}~7~(Oẹ+9P\uwޘ)sC4=?L0484LF|*֟<34) mTeqmb6(K`(t3̄lܰ>#׵/OAnaCoGvܹiX+Iqf*wY~〴 _wuSGvGyM➯-o0~Ѩo=X!16U pz.Y(W rr"2oL#|9_n`"cٽ0_a&J- Q.s .d>=lP,MIU#o*W5oxdo') Sd83Qa䫹\M_h6|-l c]1ڞ]o?x(0W>κ(!y߱QqBl0Ar&cTyy!3L&t;5* W 6NLRW)7cq r]+Vްa,~<}Zf!FdJ?dQ.V:/RR(qhc̝:6"yJdFDV^Kn|f]GQ2jrbDW{ " B&tR"?,ԫ_ʼIENDB`Dd0P d  C 2ASQLLrgBlocks"b)Hx^Żxu'C<D'nHx^Żxu'C\9GeݱqYp>\9GeݱqYp>\9GeݱqYp>\9GeݱqYp>\9GeݱqYp>\9GeݱqYp>+؉ WڅW ~3 >!7FCpX !n^4H9h{-( / qca$  Zf 1!3-B{iuYBL@L^`]``eS.02"6XkE( ̴ Zf 1!3-B{iuYBL@L^`]``eS.02"6XkE( ̴ Zf 1!3-B{iuYBL@L^`]``eS.02SG(Ŗ8l W~ .tg,c0gd>ú7:36|Oz|rzV6 m5Le?w~H^?~<uMgn3.0`b |u=((z9Ayº1H|<sB DG P-GtB`t 4ApцdR9}MA|Sm6>APJJhZ<8w;>z>PR" 'S)裇RJ,!Q5l_g0N+2_~l sJT hOiA8aiRNA<;}2򂆴SJY1GuK[Ij\I/hPSE ʹ[!-Bu\ '3IJ;aA&UnKOUݲK o);V5t]ܴUUTI~밖m|N!_~`Z"flŦ.` u DVv뤈 ϧnx#2_Nv%x;WC_gQ[U"iȌm7#cVZj[]I:s6 2 S?~rGpz ۧx JD9D{T゗&Ok ߙ¾o\$ gݚZaQQD5ՒK'6+)Usf7*ƚ-ӂ5H>KJͭĪb\WR%Aq  ~U~lƢi;jڌ $V1~jyO?]P",޵lIDԸ)q4wwkJP$h8cS ^P)/kd5.},y/ Eпɐ#3- eji!*h$]!) M*5)"pDU%Y9T ;Ms Ʀ2Hj%MXRG> SGYggwO6ɓJݽL}1f7nY`,0 r\ޟ-xTn%I*+>ljGYU٨$Eh|T7 2$K3h/luU~蝶TCmT5P{yi̡yN6s3MYe0gBD;_0ڌ07_WyZ M0O mPJQ玸aO\-w~)ihk.T0}2zI"gۀ^Rgdmtց2N[4MK'Z_W{b|F/EGv5>'Qg9+7rAſt_g_/T~;t,JUr=&#'7_oi/n= x6p?`ܝ%&Ul.` BR}vw.4桝WZ Aeu?YOY+iY ?Hf)>eWzEH?tW*T-|-DU+ڝʿ5 iƨFU_] t 94N-X A 2-X1ɣf6a`)c0. ̛T!:C.% V&wKhcpzX'=& xAct9n~#Mhvt.h Mدu/#M!ЎMЙ욠Ǻn}Ȇ>k#M!>k#M!>k#M!>k#M!>k#M!>k#M!>N\,/ڡ@r)7>zI>:[Q7/fq%10l, 켎 Ƒ׭>]l, 4p&1'nh&RZW> 4PNG  IHDRyONAPLTE   ) 2'!" %%#5,%..01/6JB5JJ1 EFZJ-RJ)fLFA@D?NCMMNCJJNhm]sRsZX_sZ{R{ZkZsRsZ{RxWTliomtUzt`zzpn|r|{zxoy}ŤȷɶƽƽƵʽƭƵνƽƽενʼͺúνƽƽֽεƵνƽ?0bKGDH cmPPJCmp0712Hs"IDATx^|XSWo*$#刐@ArB tZ|)̴˫bc4xPsHHI &:V`i70̭yәewExmN|#}5o`7s+ן@ \$a"򭧿gs=O<@‹jh8w~6}nl8x|;?n}/wVk|aoÇ[Oj{ W-BWVox\<FңΝ{\ u7ģI![ 3)TƷ%׷k/?TI =nili;w']Y9#%qB Ơdm|*ކ~9Wn`'&A %5)| ~ǽPP+T[F$šPRiIh#HJM} _zwPy+ Cf+ $.tݻ8s[6vsFAf@I12(rɌo@L XmFz҃Wi( ZrƖ("N_ro 4%5h2ub/Ij&+w3,cɬќ?< ,eϸ!}vRW{w>x~e.a86q?nf"j}7)kjc.]2tjkihh|1+9N{PW\e 5㧘 Wջ`?߸WД泗,F$+b~m cMĝ|m\DgbSc՞]ZPAAl+iE.1qd'C2iWǾ[1sFAc6ٵo0eQW!O*Cœl&cݾ rŇ:#w{ Xc0JT܇Ge'Ӯ][5kll=Xo8V"⯪(yڄ .$}ձ\y>WNkDЫ/Ju  =:w]IIyL@mPz8.KC$<`N.NF]%qn: ܖDxNe$iuAQ;Ȇwoiwme%YΙGRFahePhSjp't$ʎ?(el? hzM.O*LͮߡJeK 'WΝ6-">p2N">D1id teD`p h#>-Jv5gv%0YDPuO=Gt:?cODP Fx .B;o,q(熠a"@ȊpKCD[~zooؼe뷷nyf˖-[FKK[bexsR9g҈+q'B- |o\xm'Op|%ʺ%)([(3=>sW1fJe8r%i3j`08 B[v# lGĊ(9;%"\=i FeDF4UiwUOj?oFnsHK&eRs J)(qV:`)bW☃0eN%`q٘+`(8Kt?uo]zw'jۜt5(3'3"KMp^Ď&gH6:TG|jiF%ے=G!Y^!&qxM|K!P)!W8 S7\ޞ?zvR2w###"bُ账$)~&N?Gv"#3Š(EC G\ mmM-G[^`65 >o'%ےԧE # M##v}'2"Ӎ5Y X؜F {s碋 o nGGoCwFw#7GnO"3 GBc#ct51hpv(8C##C@0>:|;ŸM@m ;g0&1o8Hv8pkz ]Шᡷl$ :_й#AO[sو<#nXOD:Z,FcDp>g(ڀYCwQh35ްmi, e7rW_=;M&w좸!,&k&NYd8,fs>;'bqYŗIMM˸p(79i)w9"D'try!(lQ64Oښ7D]}SAo]ӡCzeWJD7eX<>S}`VlY_smδe˖q 1It%~(;tnS CoRdeL5=P\& 5Zw$ f>8я~zκQ]/?G,\LmC|P*:\ r< BU6"-?n3Ҹ@Q[3פR.'#2;&ƛ+mu^7 {#c # hA}^Paz~]ÇJ.rHUP,Sež#Ue"5z+erEzhLm %t X#z^ 1cJy̰ce(KЖiQwc磿18sTr{ -ĕBlֈq%IE;.'WZ+ 4Fr e*%}t>(U*\\spťJZ-Tk<@+#5(}hąݸ2F@) 8p`z`7erck5\efq(d ^R8G&)TXɵc  lSרnĕBOh0/Ĺf˘^$ ËIsR+v9JK=_*6\lzЯtv:Z 3zT .[+jm HdT,r_5z_,lv *Ǭ#@,^@dX"0@5]g((|\Aˆ &KK{!wY AAAyFD@ )ysL#JҼN"ݎK4Ѡe"} L[:-}&L J%臎̕}ZpqpJglvxE\^vDPP*&5^(@j!сvWn̠↍[zW"@-*R&cЎԝH;Dr;Ap\Vd}KMV .(JZa ֈ JJ&j{%(j\(|Pu߳Q7|ttdD<쬉~ym/<01 ^~ێxU{Q IAus˫^ e׽ C y\F !P\|8)a؎˴QLAIe~3l,`Śz:vJ4 2ܷ i07lS֗V,_ Hnֽ jЕ[]^ tZwUmvk\QVT@̢r ! xj9/=uU+~{Gu^(Nqf"lشb+Vm#TъS1rOwu˂1Omî!2: 1bv4E~%`dqn8}ϜE0[HmCS}W{=)PPe̛Xs+f7n*.e,eQ/]TdzȐ 2S6:2Vw:8pi䴮[ O8/0rSue|)tq3P(Ni>;W \/RڸEΎACGuj 2Z.>u+aj5VdyvK'Z+;mWj&w>'J 3g O qrl֠2 [5UPYR W{&uWbt‚5k0S"rjڮRaE;>N-JVfs H°mO\AKŝ?&&B5wO/*+v;pq j(mW"¨#xJ blj2JYH- & ^A e2^I2YYPҿ<۩e~C"zo 9Gp:B/kB![Q(Zv.\.R5`@+beU!c^ê}../WyW@HkJ)F9Dؒ W ץ_-棭?xcbP^w5•IcЋ +x[0Il N nHI%D'RC +*wl51uw/ɺU#rpe!̐ocTH!T+y2cR/C/PI1pRp yeȈḼ\+?烧 .O7|fRUW"r]Q*(O=Rw:;=n0e\A${:R+j8,FNv%^1'yYV&Cd^-b 9B~ +:fL ~2 8k׫Ę#Wa"W"AJ֊O8ii2%C̬xFVcBa~B#>lo" Xǧ,0$K^{ h^(0 T=2Ax;.Ĝ}3")߮Aۤ1H-f*-uiҥ MjjݎZ:ilYJr`Q/W9cqqčRfa (#PdPr]OabP!9DZVJІ +TRυ+[BP@G 5Qn%2I@e3UqW -yjG.c O#+oxbfX87/pI^.88@5;&//9V,]0'GPN Fxb(슝7?OcM*SjOӒQ8v̐'UR>FLb0W~"{m2&ps cL&X-C+䫠oK7l]- 6/ aq!L,i4:*A\鰙Lce$)ٝ=\0Le8!/" .1Fn+ V[!*:zL'F p)xmDd\!zL0R 0ll]:ֻ 6Q䉮 xUr-VWL*KC=-3#U)P UDIVCEZ&f~F9|HG(I.SA*z@Mr)E dB1K{d5ewI{&SE}VbT켦qi&SD\" vHÃN.sHmT$lt[X_ 5}FrB J tm#"L9U-57 2Z xT^m25!d,ddnX\VMHbNY1:6:^w_L8Z-3L2BZ*3Jji~\ @Y| MvݢpÕ ,Ep@L"XS-ba {LiƸ,P}f0R2^gywJCڼ< 㰸U7z$hu6I+/E<,I\&!"/[a:CMd:D&&2aS}p^29Vb]'ta9R9e!+P`Iqjn#&U;h!{5%%&57z42r:-)[[jp,I舆iȑ/DcblD-ܽ)ѝ!CEMaT |&0cA(Qԩ[cÉbrk-Lze-|l1:hsy._qGp,iv<]gaTo:;=3|>Dwc+/| 7?n&q#3ã2:9XZ=z\yß\ ?K\'?DO/}xҥK.Kmѷc4unf|\p{c$ %ʛȄDx7%37uLrLKI|:f[L5 5#v #v>#v #v:V P 6`05 5>5 544 P$$If!vh5 5>5 5#v #v>#v #v:V P 6`0,5 5>5 544 P$$If!vh5 5>5 5#v #v>#v #v:V P 6`0,5 5>5 544 P$$If!vh5 5>5 5#v #v>#v #v:V P 6`0,5 5>5 544 P$$If!vh5x##vx#:V P4 6`o05x#44 Pf4$$If!vh5 55555F5#v #v#v#v#v#vF#v:V P 6`o05 55555F544 P$$If!vh5 55555F5#v #v#v#v#v#vF#v:V P 6`o0,5 55555F544 P$$If!vh5 55555F5#v #v#v#v#v#vF#v:V P 6`o0,5 55555F544 P$$If!vh5 55555F5#v #v#v#v#v#vF#v:V P 6`o0,5 55555F544 P$$If!vh5 55555F5#v #v#v#v#v#vF#v:V P 6`o0,5 55555F544 P$$If!vh5 55555F5#v #v#v#v#v#vF#v:V P 6`o0,5 55555F544 P $$If!vh5 55555F5#v #v#v#v#v#vF#v:V P0,5 55555F544 P$$If!vh5$#v$:V P4 6`05$44 Pf4$$If!vh5J5585555#vJ#v#v8#v#v:V P 6`05J5585544 P$$If!vh5J5585555#vJ#v#v8#v#v:V P 6`0,5J5585544 P$$If!vh5J5585555#vJ#v#v8#v#v:V Pi 6`0,5J5585544 P$$If!vh5J5585555#vJ#v#v8#v#v:V Pi 6`0,5J5585544 P$$If!vh5J5585555#vJ#v#v8#v#v:V P 6`0,5J5585544 PDd 0 b  c $A? ?3"`?2  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOlVYi[\]^_`abcdefghjmnopqrstuvwxyz{|}~Root Entry  FRKX@Data WordDocument 3ObjectPoolpKRK_1108535856!FpKpKOle CompObjbObjInfo  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNP !FMicrosoft Excel ChartBIFF8Excel.Chart.89qOh+'0@H\p  Jim Gray Jim GrayMicrosoft Excel@D2@XV]Workbook Z9SummaryInformation( DocumentSummaryInformation81TableQ 8\pJim Gray Ba= =h<=9X@"1PArial1PArial1PArial1PArial1$PArial1 PArial1iPArial1nPArial1PArial1PArial1PArial1ZPArial1ZPArial1iPArial1PArial1PArial"$"#,##0_);\("$"#,##0\)!"$"#,##0_);[Red]\("$"#,##0\)""$"#,##0.00_);\("$"#,##0.00\)'""$"#,##0.00_);[Red]\("$"#,##0.00\)7*2_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_).))_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)?,:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)6+1_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)"Yes";"Yes";"No""True";"True";"False""On";"On";"Off"],[$ -2]\ #,##0.00_);[Red]\([$ -2]\ #,##0.00\) #,##0.000000 #,##0.0000 #,##0.000                + ) , *     ` Chart1$Sheet1FSheet2iRCDocuments and SettingsgrayMy DocumentsToDoSQL scaleScalablity graphs 2.xlsSheet1Sheet2YZa@RGAZi@QT!AZq@(Ȥ%AY"jb(3 A@@  tpmCcpus }  8"cp??3` 1 ` 1 ` Fz ` z ` z  (   l  s *|" A@<3<3]|"X$ $<%tpmC vs cpus HP DL760-9000 scaleout<_ $t@3d23 M NM4 3QQ ;Q ;Q3_  NM   d4E4D$% MP.3O& Q4$% MP.3O& Q4FAW) 3O3*#M&43*N#M&! M4523   f ad @"B  `43d" 3_ M NM  MM<4444ea@i@q@eRGAQT!A(Ȥ%Ae> ( 8  dMbP?_*+%"??>U   Da@# 1@ Di@ 9@ Dq@cA@ Dd& 999 (  j  0NMM?p]`$  8"??3` 1` 1` Fz  ` z ` z 0(  l  s *"" A@44]"" $ $<%tpmC vs cpus HP DL760-9000 scaleout< i $t@3d T1 23 M NM4 3QQ ;Q ;Q3_  NM   d4E4D$% MP.3O&Q4$% MP.3O&Q4FA\_ o 3O3*#M& 43*N#M& ! M4523   f ad @"B  `43d" 3_ M NM  MM<4444ea@i@q@eRGAQT!A(Ȥ%Ae >@7 8  dMbP?_*+%"??U>@7 ՜.+,D՜.+,H PXx  Microsoft Corporation8 Sheet1Sheet2Chart1  WorksheetsCharts8@,_AdHocReviewCycleID_EmailSubject _AuthorEmail_AuthorEmailDisplayName_ReviewingToolsShownOnce'@SQL megaservers papergray@microsoft.com Jim GrayOh+'0D<     $,4<MSDN Authoring TemplateSQL Server Scalabiit:  Jim Gray@SQL Server Scalability, Enterprise, Trustworthy, MegaServers`Originally w|=TEO&nP?gk'`!|=TEO&nP?g$!:xX]hU>wv&IV&E*a8۴)>D OBFHLnm [hD"_EKĖRlR;NOӤ]&Η~s^:m'%2$"KYGJ h(-P>vF#-ݟƧ^[ >(kWu *boYs 7зbS16?z㨲+leZ8hW <\ 7砮^jj^oTR[cQmCՆYj?326RPsPm%oXjWRVb!S,LfYj7Yn2N~g΅3, ,}R֍jXj2MZ+~+"<U԰\SF9~phNžvaj-R^{9\9a`';AŽ6N8aÄ V @Xa2fDph{" mZ5t~Zx%洎-uҿ 7ο9~ qk ܈2.ӣ|OR>=ʧK(.ӣ|OR>=ًDq<#l)vy [&lpF5T^e=?Q29pn|z;ݡck}ƌ94ZH,MYkRc >V4˲~˾DOƫ8_dxD^ɸjvewlW03ov]煼oaEĻ9<bw6X|*ۧ9v Cٛ)iξAO༬9 3ҜXFd-Q;=ߌ".XIKaG (Q%ev]Y]VBN,ܯnKj;$d_=4ZgL$}n"+"΋ZV3F՜y-A9_:zOY6ZAV vmXy+}lpE,_.MLOc ҶmB_|xy%C3˭Q0l$$If!vh5#v:V l! t 6P(065/ $$If!vh5$#v$:V P405$44 Pf4$$If!vh5 5 5855#v #v #v8#v#v:V P05 5 585544 P$$If!vh5 5 5855#v #v #v8#v#v:V P0,5 5 585544 P$$If!vh5 5 5855#v #v #v8#v#v:V P0,5 5 585544 P$$If!vh5 5 5855#v #v #v8#v#v:V P05 5 585544 P$$If!vh5"#v":V P405"44 Pf4$$If!vh55T5585855#v#vT#v#v8#v#v:V P055T5585544 P$$If!vh55T5585855#v#vT#v#v8#v#v:V P0,55T5585544 P$$If!vh55T5585855#v#vT#v#v8#v#v:V P0,55T5585544 P$$If!vh55T5585855#v#vT#v#v8#v#v:V P0,55T5585544 P$$If!vh55T5585855#v#vT#v#v8#v#v:V P0,55T5585544 P$$If!vh5$#v$:V l4  t 065$f4p $$If!vh5 5 5 #v :V l  t065 p$$If!vh5 5 5 #v :V l t06,5 $$If!vh5 5 5 #v :V l t06,5 $$If!vh5 5 5 #v :V lI t06,5 $$If!vh5 5 5 #v :V l t06,5 $$If!vh5 5 5 #v :V l t06,5 $$If!vh5 5 5 #v :V l t06,5 $$If!vh5 5 5 #v :V l t06,5 $$If!vh5 5 5 #v :V l t06,5 $$If!vh5 5 5 #v :V l t06,5 $$If!vh5 5 5 #v :V l t06,5 $$If!vh5 5 5 #v :V l t06,5 $$If!vh5 5 5 #v :V l t06,5 $$If!vh5 5 5 #v :V l t06,5 $$If!vh5$#v$:V P40$5$44 Pf4$$If!vh555*55855#v#v#v*#v#v8#v:V P0$555*558544 P$$If!vh555*55855#v#v#v*#v#v8#v:V P0$,555*558544 P$$If!vh555*55855#v#v#v*#v#v8#v:V P0$,555*558544 P$$If!vh555*55855#v#v#v*#v#v8#v:V P0$,555*558544 P$$If!vh555*55855#v#v#v*#v#v8#v:V P0$,555*558544 P$$If!vh555*55855#v#v#v*#v#v8#v:V P0$,555*558544 P$$If!vh555*55855#v#v#v*#v#v8#v:V P0$,555*558544 P$$If!vh555*55855#v#v#v*#v#v8#v:V P0$,555*558544 PcDd 50  # A" vjMUT#l9 Ɍ'@= vjMUT#l9 S |kNw7 x\ pUG$SxyWᦁtpW S0rkT 38T)2Œ #[C ݻ9ޓ9?{#)P" +P(@8>)cx|T=rP]w; $2+FNeph:sSNa So K CT@6󭑲7H/Xx;؅3q4ԴBg`f.ERǣ2ү1ޏzqo;="U_ٮ%|p!> C46V(Lf"Px{h>YokM^^+0\&?PKO }k8ʤK>\:*#}o ! Qbu/ԞojcDư56ַm~5gNcĶ4KSm𭕶(\'MN,#<˲y>/gOl'Ǘ7SY].ʊw[1 ]䱀,4*P;r*+ *U}Z|7{;!IX;yovҲPN(J;>͡=4E>i89ߦf(60_J|CQ&u֝粍i7Snll]mD*Ҫt8Wy%80 eTٞQ{r\g۞S.3Qu䧵46k͚|&5y&@-^;Z&ض{ n7ۇyEh4ӟNZx m5y&?uZӿYos5\M5y.u@U>,|&Hɯh+_O4*MJG59c}F| c8ޮe0w{K 7'Yk/fp{rcňy8\4=v\!o%Meg0 Nv,G:H2r وuH{廏 |z=0uRUH{.Bzi?jƷCo^K|߶(M߆m&E| W{o!DWDWro?;ŷPv佈I9H 9H{_{䯺Ew6нڋK迁&E|= |ynt_Oq(6y/⣱ |46\*[!6^O]\ˌ8(l^K|_U9W佈o]^C[!^WNoXG E]"Io7h6ۋ!зx/ {dc-t/,v )igW`N][ں&t8}; u6ZmENX `r?E,gBp{%ry (>[Biy ]} \GONQ,4^oyE,T ~y֛2_E^晵4T4$砶F767'bֿF+}?ȕ~ X+k85D͖!O?K|ΐ[qҚz䝬N}c lx!Nwd[]{6wV yh Uۦ)Eq=>jsV΂~͝u{Nu&Ci SY֍wЃ/x4/2nI^?Ig~O?[.\ Wϙ{d (8ݍ?eM^ָNzkU3,d_o8zc\4y1 `:5\r?N3ҵ>ŧ[(2~:MY+/{T^">L3Nw*j4lN3|XMau[ǗrI݉6u|$C:NBcYSl_3eo}f7}asՆޯR^s7NRcNQlH'U]n;}5ӦmA6{f n4"φxtwfX8Vڑa11>xnͤhD~]0**W@3-˅f^ReMeFӕ2LuOSJ^asFR18W4mwϓ3U9U2! v jcU햶Q냝nʤ|%j y߻'Ft)d ~Dž|CGU+' oR 60%-@ya.6Bn#l_]' brS/%\We]o@4º>mo\ie=(z%co܄C~kCvAZR&[+?[+#uV~uvg7MBYX~٤,-.k L-7n2wQO IY r?ҧPoξIY33k&g gډIM%3?_f5#<f>9!aи˘6/TCK NC~'2|/!,q\+bQQa3'!}`7HC# ,'W$$If!vh5#v:V l t 6` 06,5~$$If!vh5L$#vL$:V lL t0L$65L$$$If!vh5P5#vP#v:V l t0L$65P5y@ Normal,APPLY ANOTHER STYLEd<<!B*OJQJ_HmH phsH tH @ "Heading 1,h1,Level 1 Topic Heading$dp<@&,5B*CJ$KHOJQJ_HmH phsH tH d@d I+"Heading 2,h2,Level 2 Topic Heading@&n@n I+"Heading 3,h3,Level 3 Topic Heading@& B*ph333@ 3Heading 4,h4,First Subheading,Level 4 Topic Heading d@&CJ@ 4Heading 5,h5,Second Subheading,Level 5 Topic Heading d@&CJ@ 3Heading 6,h6,Third Subheading,Level 6 Topic Heading d@&CJDA@D Default Paragraph FontVi@V  Table Normal :V 44 la (k(No List XOX Text,td<<!B*OJQJ_HmH phsH tH :O: Figure,fig dZOZCode,c d<(B*OJQJ_HmHnHphsH tH uDO12D Label in List 2,l25FO2F Text in List 2,t2 ^.O. Label,l5R 8Footnote Text,ft,Used by Word for text of Help footnotes B*phJO1bJ Numbered List 2,nl2  & F?,Or,Syntax,sbOb Table Footnote,tf!d$(P$dNCJ& <Footnote Reference,fr,Used by Word for Help footnote symbolsB*H*DOD Code Embedded,ce CJOJQJLOL Label Embedded,le5>*CJOJQJ6O6 Link Text,lt>*B* DOD Link Text Popup,ltp>*B* 4O4 Link ID,lid<B*XOX Table Spacing After,tsa dCJ FOFCode in List 2,c2 ^^O^ Conditional Marker,cm<B*CJOJQJehfHNO2N Figure in List 2,fig2 "^NO2N Figure Embedded,fige #dxO12x Table Footnote in List 2,tf2!$d$(P$dNCJDOabD Label in List 1,l1%5FObF Text in List 1,t1 &h^hFOrFCode in List 1,c1 'h^hNObN Figure in List 1,fig1 (h^hxOabx Table Footnote in List 1,tf1!)d$(P$dNCJ<O< HTML<B*CJOJQJehfH^ @^ Footer,f+$d$a$%B* CJOJQJ_HmH phsH tH >O> Alert Text,at ,h^hTOaT Alert Text in List 1,at1 -^TO1T Alert Text in List 2,at2 .8^8ZOZ Revision History,rh /]6<B* phJOaJ Bulleted List 1,bl1 0 & F8LOL Text Indented,ti1hh]h^hRO1"R Bulleted List 2,bl22 & F= >OB> Defined Term,dt3@O2@ Definition,d4h^hJOaRJ Numbered List 1,nl1 5 & F:@O@ Glue Link Text,glt6LOrL Index Tag,it7] <B*ph,@, Header,h8ZOZ Code Featured Element,cfe5CJOJQJBOB Copyright,copy:d$CJT!T Index Heading,ih ;d@& B* CJphX X  Index 1,idx1<Ld$^`L B* CJphO Print Division Title,pdt=$dHa$(5B* CJ(OJQJ_HmH phsH tH F)@F Page Number,pn5B* CJOJQJ~O~Print MS Corp,pms?$d<a$,B* CJOJQJ_HmHnHphsH tH u\O\ Slugline,slug$@$dL 9&P#$+D ./a$CJ TT  TOC 1,toc1A hd<@& B* CJphB@"B  TOC 2,toc2 Bh^h B* ph8@!28  TOC 3,toc3 C^8@!B8  TOC 4,toc4 D8^8< R<  Index 2,idx2 E^< b<  Index 3,idx3 F^bOqb Multilanguage Marker Auto,mmaB*CJOJQJO (Multilanguage Marker Explicit Begin,mmebHd$ B*CJphrOr &Multilanguage Marker Explicit End,mmeeI B* ph(O( Bold,b5:O: Bold Italic,bi56' 8Comment Reference,cr,Used by Word to flag author queries 7Comment Text,ct,Used by Word for text of author queriesM,O, Italic,i6<OA< Label Special,lsOnOn Print Division Number,pdnPd]5;@xCJFOF Strikethrough,strike7S*6O!6 Subscript,subH*:O1: Superscript,supH*D@!D  TOC 5,toc5T (#^KH66 TOC 6U 8 ^66 TOC 7V 8 ^66 TOC 8W 8 x^x66 TOC 9X 8 @^@jOaj Numbered List Indented,nliY & FK ^HOHMastheadZX_HmHnHsH tH uJOJ Subheading 1,sh1 [d@& CJ~O~Legalese-Space#\dL( x0$]^#CJOJQJ_HmHnHsH tH u8O8Legalese] X>O> Legal Title ^`^`CJPOP Title Page 3 _8]85CJKHOJQJJB@J Body Text`dx] B*ph*O!* Legal 1aHO"H Legalb`x^`B*CJOJQJphJO!2J I+ TOC Heading cd@& B*CJ ph6U@A6 Hyperlink >*B*phOqR%Code Font Translatable in List 1,cft1&e  8p @ @@@@@@@@@ B*ph~Ob~Code Font Translatable,cft&f  h8p @ @@@@@@@@@ B*phhO1rh Defined Term in List,dt1ghd^h B*phbOAb Definition in List,d1hdx^ B*ph4O4 HTMLRef5B* OJQJ@O@ Link Text Bold,ltb5&O& HTMLLoc"O" RmhlJOJ Subheading 2,sh2 md@& CJ4O4 Trademark,trCJVOV List in Table,litodx B*ph,O, HTMLRefIntHOH Text Nonlocalizable,tnqN>@"N Titler$@&a$5CJ KHOJQJ\aJ \O2\ Bulleted List Nonlocalizable,blnsH@BH  Balloon TexttCJOJQJ^JaJFV@QF FollowedHyperlink >*B* ph@j@ Comment Subjectv5\*Oq* trademark>O> head315CJOJQJ\aJo(vwxyzvwxyz} 2F22 !z!z "zz zzzzzzz z z z z zzzzzzzzzzzzzzzz 8$j-`7AmIpM%XoclQsvj{L78cC%\1. G:& U a  4tz%-,61cDaN  {[K #$%)+V,- 4777+8V8y889j9997::3<<.=*>>?@@CFJIJJJWJdJoJ}J~JJJK*K+KKKKKKKZL^LuLLMMOWP#QIRkRShUVX9[m\\\\\\\]]]]9]Q]S]\]b]l]v]w]]]]]]]]]]]^^'^.^:^E^F^f^^^^^^^^^^^^^^__$_A_D_L_S_^_f_g__Iboccccdd ddd+d,dPdldwdddddddddddddde0e9eAeHeSeZe[eeeeeeeee,fIfgfJmnopp"p+p0p7pEpFpipypppppppppppppppppq0trtst}ttttttttttuuuu#u$uOugujupuuuuuuuuuuuuuuvvv%v*v6v?v@vjwwwwwwwwwwww xxxx>xExFxcx{xxxxxxxxxxxxy!y"y8yPy[y\yqyyyyyyyyyyzzz4z8z9zOzfzmznz{{ ~ XggGkؑ"',3<FGXkɒ#@BIOXab A]`hoz”ʔєܔZ/NěiOQ׫ثګ۫ܫݫޫ߫9R{[/Ѽƾn" 3<6_ ExS{5eF\GrbX<,#@  YYiuvxz|(#p(#0(#(#(#(#(# (#(#(#0(#(#(#(#(#(#(#!(#|$0$$  $$$$ $$$$$ $$$$$$$$$$$$$$$$$$$$ $$ $$"X g3X glX gX= X gD $0$$$$$0$$$$$$"3lh0>Llh0>L3lh0>L3llh0>L(]lh0>L3lh0>L3lh0>Ll$l$$#3h>>h>>lh>>quh>>quh>>l$! ;  #$$#<  LZ<  LZ3<  LZ<  LZ$l$p!P0L3P0LlP0LX= P0LlP0Ll$l(#( ( ( ( Z( Z( Z& ( Z( Z( Z& ( Z( Z( Z& ( Z( Z( Z& ( Z( Z( Z& ( Z( Z( Z;( Z( Z( Z;( Z( Z( Z;( Z( Z( Z;( Z( Z( Z;( Z( Z( Z;( Z( Z( Z;( Z( Z( Z;$$0$$$ $$$$$$$$$$$$$$$@$v>LLv>LL(]v>LL3v>LL3v>LL3v>LL3v>LLlv>LL3$)$$$$$$$$$$Z$Z) $t#xxxxxxxxxxxx$.,$$$$$$0$$$$0$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$ $$$0$ $$$$0$$$$$$$$$0$$$$0$$$$$$$0$$$$$$$$(#!r!(#!$!(#!$!R DaN  1  ObNCkCXyB{o[K #7$$%)+V,i-- 4_7777+8V8y889j9997::3<<.=*>>?@@CFlIJIJJJWJdJoJ}J~JJJK*K+KKKKKKKZL^LuLLLoMMMFNrNNOWP#QIRkRShUVX9[m\\\\\\\]]]]9]Q]S]\]b]l]v]w]]]]]]]]]]]^^'^.^:^E^F^f^^^^^^^^^^^^^^__$_A_D_L_S_^_f_g__Iboccccdd ddd+d,dPdldwdddddddddddddde0e9eAeHeSeZe[eeeeeeeeee,fIfgfhfijJmnopp"p+p0p7pEpFpipypppppppppppppppppqPs0trtst}ttttttttttuuuu#u$uOugujupuuuuuuuuuuuuuuvvv%v*v6v?v@v~vjwwwwwwwwwwww xxxx>xExFxcx{xxxxxxxxxxxxy!y"y8yPy[y\yqyyyyyyyyyyzzz4z8z9zOzfzmznzi{{{ ~K Xgg6Gkؑ"',3<FGXkɒ#@BIOXab A]`hoz”ʔєܔZ/NěEiOQb׫ثګ۫ܫݫޫ߫9$R{[/Ѽƾn" 3<6_ ExS{5eF\Gr0bX<1,# U  @  YYZfghituvwxyz{|Z00000000000000000:0c0B0B0B0C0B0C0C0B0C0C0D0T0D0T0T0C0B0C0C0D0D0D0D0D0D0C0C0B0C0C0B0T000000 0 08 008 000000007$07$07$07$07$00i-0i-(0i-0_78 00_78 00_78 00_78 00_78 00_78 00_78 00_78 00 _78 00 _78 00 _78 00 _70_70_78 00 _78 00_78 00_78 00_78 00_70_70_70_70_70_7 0_7 0_7 0_7 0_7 0_7 0_7 0_7 0_7 0_7 0_7 0_7 0_7 0_7 0_70_7 0_7 0_7 0_7 0_7 0_7 0_7 0_7 0_70(0oM0M0M8 00M8 00M8 00M8 00M8 00M(0oM0IR0IR0IR0IR0IR0IR0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR0IR0IR0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR0IR0IR0IR 0IR 0IR0IR0IR0IR0IR0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR0IR0IR0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR0IR0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR 0IR0(0i{0{0{0{0{(0i{0K80K008 008 008 008 000H0060606060606 06 06 06 06 06 06 06 06 06 0606 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06060680K000H000H00i0i0i 0i 0i(0i{0b0b 0b 0b0b0b0b0b0b0b0b0b0b0b0b 0b 0b 0b0b0b0b0b0(0$0R0R0R(0$0800ƾ0ƾ8 00ƾ8 00ƾ8 00ƾ8 00ƾ8 00ƾ8 00 ƾ0ƾ0ƾ8000: 50: 50: 5008000080000080000800{0{0{(0$0000(0$0\0\0\0\0\0000000(000000(0008 00!8 00"8 00#8 00$8 00%8 00&00000000000)00H@+0@+0@0+0@0+0+0@080!00I+0)00I+0)00)00 0wIJJJ}J~J*K+KKKLL\\]]v]w]]]E^F^^^__f_g_cc+d,dddddZe[eeegfhfppEpFppppppprtsttt#u$uuuuu?v@vwwwwwwxxExFxxxxxxx!y"y[y\yyyyyzz8z9zmznzFGab׫ث+00+0p+0+0p+0+0p+0T+0p+0 +0p+0  +0p+0  +0p+0p+0p+0+0p+0+0p+0<+0p+0t+0p+04~+0p+0l~+0p+0~+0p+0(+0p+0 !`+0p+0"#+0p+0$%؉+0p+0&'+0p+0()H+0p+0*++0p+0,-+0p+0./ +0p+001X+0p+023+0p+045ȑ+0p+067+0p+089@+0p+0:;x+0p+0<=+0p+0>?膳+0p+0@A +0p+0BCX+0p+0DE+0p+0FG$+0p+0HI\+0p+0JK+0p+0LM̯+0p+0NO+0p+0PQ<+0p+0RSt+0p+0TU+0p+0VW䰳+0p+0XYX+0p+0Z[+0p+0\]+0p+0^_+0p+0`a8+0p+0bcp+0p+0de+0p+0fg+0p+0hi+0p+0jkP+0p+0lm+0p+0no+0p+0pq+0p+0rs+0p+0tuH+0p  """"""///2|8B-gZu H!""'5ZLm|7,6- >"V&8nCCDGJUUmV&WWY[!h_h|hhh%i0iiii jDjgjjnnoooo>pXpppqoq[{{{$|T| Bf́2^"Y„;dօH{NHRɞ#Bߟ<aŠ'\±#*(Y2#&,6-    5-1 F G f t     : u /JLMOn A\_`b-HKLNmz "=@ACb%Jehik"=@ACbx7RUVXw 2m3o&Xsvwy!<?@Baj,fEfGf X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%̕:"),2!t!tSTb$qYރX c fA . win2kscrnS`TS`T"` ? c hA. winperfmonS`TS`T"`  @ c fA. dblscreenS`TS`T"`  C c lA . availabilityS`TS`T"` p E C 2Adoubleclints"`B S  ?MZěث/F<,5/)"6T:%%VTB(#?TE$TJF$N@4 t;z &p@=#&S @>Z{%@?%v @@`$ @tB_Toc309123998B_Toc309455873B_Toc315659546B_Toc314733365 _Toc475447553 _Toc322849225 _Toc324842129 _Toc324932745 _Toc324933980 _Toc35740949 _Toc35747268 _Toc35747349 _Toc35747998 _Toc36027282 _Toc336335601 _Toc475335091 _Toc475335092 _Toc475447555 _Toc36027283 _Toc337025140 _Toc337025320 _Toc337026067 _Toc337026092 _Toc337026167 _Toc337026212 _Toc475335093 _Toc475447556 _Toc36027284 _Toc475335094 _Toc475447557 _Toc36027285 _Toc475447558 _Toc36027286 _Toc475335095 _Toc475335096 _Toc475447560 _Toc36027287 _Toc340287159 _Toc475335097 _Toc475447561 _Toc36027288 _Toc475335098 _Toc475447562 _Toc36027289 _Toc352461670 _Toc475335099 _Toc475447563 _Toc36027290 _Toc475335100 _Toc475447564 _Toc36027291 _Toc475335101 _Toc475447565 _Toc36027292 _Toc475335102 _Toc475447566 _Toc36027293 _Toc475335103 _Toc475447567 _Toc36027294 _Toc475335104 _Toc475447568 _Toc36027295 _Toc475335105 _Toc475447569 _Toc36027296 _Toc475335106 _Toc475447570 _Toc36027297 _Toc475335107 _Toc475447571 _Toc36027298 _Toc475335108 _Toc475447572 _Toc36027299 _Toc475335109 _Toc475447573 _Toc36027300 _Toc475335110 _Toc475447574 _Toc36027301 _Toc475335111 _Toc36027302 _Toc475447575 _Toc36027303 _Toc475335112 _Toc475447576 _Toc36027304 _Toc475335113 _Toc475447577 _Toc36027305 _Toc475335114 _Toc475447578 _Toc36027306 _Toc475335115 _Toc475447579 _Toc36027307 _Toc475335116 _Toc475447580 _Toc36027308 _Toc475335117 _Toc475447581 _Toc36027309 _Toc475335118 _Toc475446817 _Toc475447582 _Toc36027310 _Toc475335119 _Toc475447583 _Toc36027311 _Toc475434319 _Toc475447584 _Toc36027312 _Toc475434320 _Toc475447585 _Toc36027313  7$8$i-i-j-_7`7:JJpMMMMMrNIRIR~v~vi{j{{{{KL67/iOݦc$%RRR/Ѽƾ {{\\001b  jklmnop !"#$%&'()*+,-./0123456789:;<=?@>ABCDEFGHIKJLMNOPRSQTUVWXYZ[\]^_`abcdefghiqrsC0 0 ~$~$~$---77FMMMMMMjRjRjR{{{{{{{FFF...DDDQQQzzzммм aaaa;;;          TEU\EVmWXY ZL[\]  '"L'"'"'" '"L'"'"'" '"L'"'"'" '"L'"'"'" '"L'" '"!'" "'"L#'"$'"%'" &'"L''"('")'" *'"L+'",'"-'" .'"L/'"0'"1'" 2'"L3'"4'"5'"6'"T7'"8'"9'":'"T;'"<'"='">'"T?'"@'"A'"$B'"tC'"D'"E'"4F'"G'"H'"<I'"J'"K'"DL'"M'" N'"LO'"P'"Q'"TR'"S'"T'"U'"TV'"W'"X'"Y'"TZ'"['"\'"]'"T^'"_'"`'"\a'"b'"c'"dd'"e'"f'"lg'"h'"i'"tj'"k'"<l'"|n'"o'"p'"<q'"|r'"s'"t'"<u'"|v'"w'"Dx'"y'"z'"L{'"|'"}'"T~'"'"'"'"T'"'"'"'"T'"'"'"'"T'"'"'"'"T'"'"'"'"T'"'"'"\'"'"$'"'"4'"t'"'"'"4'"t'"'"'"4'"t'"'"'"4'"t'"'"'"4'"t'"'"'"4'"t'"'"'"4'"t'"'"'"4'"t'"'"'"4'"t'"'"'"|'"'"'"'"'"Œ'"Ì'"Č'" Ō'" ƌ'" nj'" Ȍ'" Ɍ'" ʌ'" ˌ'" ̌'" ͌'"$ Ό'"d ό'" Ќ'", ь'"l Ҍ'" ӌ'" Ԍ'",Ռ'"l֌'"،'"ٌ'",ڌ'"lی'"܌'"݌'",l'",'"l'"'"'",'"l'"'"'",'"l'"'"'",'"l'"'"2 7""""(#a$a$$%')*4+D,,,002222\5V8r@@~J_WWXXXXXXXX-YZZ[[[[#\#\m\m\\\-]-]l]]]]]]:^S^S^f^^^^^__^_m_m______4`4`f`f```lblbcc?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~5!:""""+#d$d$$%')*7+G,,,002222_5Y8u@@JbWWXXXXXXXX0YZZ[[[[&\&\p\p\\\7]7]u]]]]]]D^]^]^i^^^^___e_p_p______7`7`i`i```obobccFdFdddddeeYeueueeeffj nnnooo`p`pppppppqZqZqqqqqqqrrrrss&t&tBt\t>u>uuuuuu>v|vvvwwxIx~xxxy7zd|WQM:QQHH*Б`{{ؓؓ99 C@ȨvZp2# u{X(r  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~A*urn:schemas-microsoft-com:office:smarttags stocktickerukA*urn:schemas-microsoft-com:office:smarttags stocktickerca8*urn:schemas-microsoSummaryInformation( tDocumentSummaryInformation8 CompObjOjritten for SQL Server 2000 launch. Revised in late 2002 by Gray, Levine, Waymire msdn.dot Jim Gray7Microsoft Word 11.0@@:d@=@zJ)՜.+,D՜.+,d  px   White PaperMSFT8 7      !"#$%&'()*+,-./0123456 MSDN Authoring Template TitleL P    8 @  _PID_HLINKS_AdHocReviewCycleID_EmailSubject _AuthorEmail_AuthorEmailDisplayName_PreviousAdHocReviewCycleID_ReviewingToolsShownOnceA 5 _Toc360273135 _Toc360273125 _Toc360273115 _Toc360273104 _Toc360273094 _Toc360273084 _Toc360273074 _Toc360273064 _Toc360273054 _Toc360273044z _Toc360273034t _Toc360273024n _Toc360273014h _Toc36027300=b _Toc36027299=\ _Toc36027298=V _Toc36027297=P _Toc36027296=J _Toc36027295=D _Toc36027294=> _Toc36027293=8 _Toc36027292=2 _Toc36027291=, _Toc36027290<& _Toc36027289<  _Toc36027288< _Toc36027287< _Toc36027286< _Toc36027285< _Toc36027284< _Toc36027283v UMegaservers White Papertresyk@microsoft.comTresy Kilbourne1d  FMicrosoft Word Document MSWoft-com:office:smarttagsCity9*urn:schemas-microsoft-com:office:smarttagsplace8*urn:schemas-microsoft-com:office:smarttagsdate D01020305061011121520200020012002200321263303156789DaylsMonthtransYear      `lW"a"""T/]/002255<]D]]]]]]]]^j^q^r^y^eeefppppqqrsttttttuu$x(x9x=x*y7y_yiyyyFzNzŀpy̒ԒBHJNPWXa/8+4&epZ ((3344]BaB9]P]dde/eee7o:ottuuvv#?BHINOWX`Q`]`$1f i   b e Z::::::::::::::::: 0 JJ~JJJK+KKKKKZLL\9]Q]w]]F^f^^^$_A_g_cdde0eeeeIfhfppsttt$uOuuuvv@vwxxnzXEG#@A]iaZ1 1 G G e f 9 : mn lm  ab$%abvw1223%&`aZZ\\]]_`bceisz=|}6Z~xp=jQb^:VF^`:26bJZr{*b(] yZe Vg  V  v8uovAwp m93~l |Xݰz^N v[ K!)zR3% R(&>'4& p( VB- k;/=> &kP@ g,p=E.!0Ng^E>" J _XJ w0P 5R n?U|dVZU |U \uX l_ ]y` @J`4pb id Ij 8LkvN+fm Kjm ph2tqG,S56briQ?sAy 9.{`YtU~ ^`.^`.88^8`.^`. ^`OJQJo( ^`OJQJo( 88^8`OJQJo( ^`OJQJo(hh^h`. hh^h`OJQJo(*hh^h`.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`.hh^h`. hh^h`OJQJo(h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(8^`.hh^h`.h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo( hh^h`OJQJo(h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(hh^h`o(. hh^h`OJQJo( hh^h`OJQJo(hh^h`.h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJQJo(h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH hh^h`OJQJo( hh^h`OJQJo(h^`.h^`.hL^`L.hm m ^m `.h==^=`.h L ^ `L.h^`.h^`.h}L}^}`L.hh^h`.h hh^h`OJQJo(h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`.hh^h`. hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`.h^`. hh^h`OJQJo( hh^h`OJQJo(h ^`OJQJo(hhh^h`.hh^h`.^`o(()ee^e`.5L5^5`L.  ^ `.  ^ `.L^`L.uu^u`.EE^E`.L^`L.h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. hh^h`OJQJo(M>pbVZU]y`R3%'4&N+fmleVg l_KjmtU~V |U" J(][_XJkP@idw0Pp(5R6br DK!Ij@J`wp\uXVB-z^6brx&6br&6br&~}|6br&6br&6br&6br&@J`@J`\uX\uXp=Ep=Etqtqn?Uovpov&8Lk&Ng^Em9|gxExFxcx{xxxxxxxxxxxxy!y"y8yPy[y\yqyyyyyyyyyyzzz4z8z9zOzfzmznzؑ"',3<FGkɒ#@BIOXab A]`hoz”ʔєܔO׫ثZ"@L?& #$pq@@@@@,@@.@`@@|@@@@|@@P@UnknownJim GrayCharles LevineCharles LevineCharles Levine20030307T14068074;sCharles Levine Gz Times New Roman5Symbol3& z Arial7&  Verdana?5 z Courier NewYMicrosoft Logo 95Symbol;" Helvetica5& zaTahoma;Wingdings7Tms Rmn"qȈhh sSs& ;s))!>4dq 3qHP?=2JC:\windows\profiles\a-cheria\application data\microsoft\templates\msdn.dotMSDN Authoring TemplateSQL Server Scalabiit: <SQL Server Scalability, Enterprise, Trustworthy, MegaServersJim GrayJim Gray=                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < rdDocWord.Document.89q