ࡱ> ;uwdefghijklmnopqrstz{|}~n o p q r s bcdefgh_<Babcd~[ F bjbj .J ΐΐ m88{%{%7774S7S7S7h7? S72kIVffffn.QT,t0v0v0v0v0v0v06E9v07m6 @v0{%{%ffQ/2$888 {% f68ft08t088J 17(0f ȍh%S7!`0S2<2" 9. 9(097(08D 8 L v0v07v298 A$:  Software Testing Confidential  Table of Contents  TOC \o "1-2" \h \z  HYPERLINK \l "_Toc66267053" 1 Introduction to Software  PAGEREF _Toc66267053 \h 7  HYPERLINK \l "_Toc66267054" 1.1 Evolution of the Software Testing discipline  PAGEREF _Toc66267054 \h 7  HYPERLINK \l "_Toc66267055" 1.2 The Testing process and the Software Testing Life Cycle  PAGEREF _Toc66267055 \h 7  HYPERLINK \l "_Toc66267056" 1.3 Broad Categories of Testing  PAGEREF _Toc66267056 \h 8  HYPERLINK \l "_Toc66267057" 1.4 Widely employed Types of Testing  PAGEREF _Toc66267057 \h 8  HYPERLINK \l "_Toc66267058" 1.5 The Testing Techniques  PAGEREF _Toc66267058 \h 9  HYPERLINK \l "_Toc66267059" 1.6 Chapter Summary  PAGEREF _Toc66267059 \h 9  HYPERLINK \l "_Toc66267060" 2 Black Box and White Box testing  PAGEREF _Toc66267060 \h 11  HYPERLINK \l "_Toc66267061" 2.1 Introduction  PAGEREF _Toc66267061 \h 11  HYPERLINK \l "_Toc66267062" 2.2 Black box testing  PAGEREF _Toc66267062 \h 11  HYPERLINK \l "_Toc66267063" 2.3 Testing Strategies/Techniques  PAGEREF _Toc66267063 \h 13  HYPERLINK \l "_Toc66267064" 2.4 Black box testing Methods  PAGEREF _Toc66267064 \h 14  HYPERLINK \l "_Toc66267065" 2.5 Black Box (Vs) White Box  PAGEREF _Toc66267065 \h 16  HYPERLINK \l "_Toc66267066" 2.6 WHITE BOX TESTING  PAGEREF _Toc66267066 \h 18  HYPERLINK \l "_Toc66267067" 3 GUI Testing  PAGEREF _Toc66267067 \h 23  HYPERLINK \l "_Toc66267068" 3.1 Section 1 - Windows Compliance Testing  PAGEREF _Toc66267068 \h 23  HYPERLINK \l "_Toc66267069" 3.2 Section 2 - Screen Validation Checklist  PAGEREF _Toc66267069 \h 25  HYPERLINK \l "_Toc66267070" 3.3 Specific Field Tests  PAGEREF _Toc66267070 \h 29  HYPERLINK \l "_Toc66267071" 3.4 Validation Testing - Standard Actions  PAGEREF _Toc66267071 \h 30  HYPERLINK \l "_Toc66267072" 4 Regression Testing  PAGEREF _Toc66267072 \h 33  HYPERLINK \l "_Toc66267073" 4.1 What is regression Testing  PAGEREF _Toc66267073 \h 33  HYPERLINK \l "_Toc66267074" 4.2 Test Execution  PAGEREF _Toc66267074 \h 34  HYPERLINK \l "_Toc66267075" 4.3 Change Request  PAGEREF _Toc66267075 \h 35  HYPERLINK \l "_Toc66267076" 4.4 Bug Tracking  PAGEREF _Toc66267076 \h 35  HYPERLINK \l "_Toc66267077" 4.5 Traceability Matrix  PAGEREF _Toc66267077 \h 36  HYPERLINK \l "_Toc66267078" 5 Phases of Testing  PAGEREF _Toc66267078 \h 39  HYPERLINK \l "_Toc66267079" 5.1 Introduction  PAGEREF _Toc66267079 \h 39  HYPERLINK \l "_Toc66267080" 5.2 Types and Phases of Testing  PAGEREF _Toc66267080 \h 39  HYPERLINK \l "_Toc66267081" 5.3 The VModel  PAGEREF _Toc66267081 \h 40  HYPERLINK \l "_Toc66267082" 6 Integration Testing  PAGEREF _Toc66267082 \h 43  HYPERLINK \l "_Toc66267083" 6.1 Generalization of module testing criteria  PAGEREF _Toc66267083 \h 44  HYPERLINK \l "_Toc66267085" 7 Acceptance Testing  PAGEREF _Toc66267085 \h 49  HYPERLINK \l "_Toc66267086" 7.1 Introduction Acceptance Testing  PAGEREF _Toc66267086 \h 49  HYPERLINK \l "_Toc66267087" 7.2 Factors influencing Acceptance Testing  PAGEREF _Toc66267087 \h 49  HYPERLINK \l "_Toc66267088" 7.3 Conclusion  PAGEREF _Toc66267088 \h 50  HYPERLINK \l "_Toc66267089" 8 SYSTEM TESTING  PAGEREF _Toc66267089 \h 51  HYPERLINK \l "_Toc66267090" 8.1 Introduction to SYSTEM TESTING  PAGEREF _Toc66267090 \h 51  HYPERLINK \l "_Toc66267091" 8.2 Need for System Testing  PAGEREF _Toc66267091 \h 51  HYPERLINK \l "_Toc66267092" 8.3 System Testing Techniques  PAGEREF _Toc66267092 \h 52  HYPERLINK \l "_Toc66267093" 8.4 Functional techniques  PAGEREF _Toc66267093 \h 53  HYPERLINK \l "_Toc66267094" 8.5 Conclusion:  PAGEREF _Toc66267094 \h 53  HYPERLINK \l "_Toc66267095" 9 Unit Testing  PAGEREF _Toc66267095 \h 54  HYPERLINK \l "_Toc66267096" 9.1 Introduction to Unit Testing  PAGEREF _Toc66267096 \h 54  HYPERLINK \l "_Toc66267097" 9.2 Unit Testing Flow:  PAGEREF _Toc66267097 \h 55  HYPERLINK \l "_Toc66267098" Unit Testing Black Box Approach  PAGEREF _Toc66267098 \h 56  HYPERLINK \l "_Toc66267099" Unit Testing White Box Approach  PAGEREF _Toc66267099 \h 56  HYPERLINK \l "_Toc66267100" Unit Testing FIELD LEVEL CHECKS  PAGEREF _Toc66267100 \h 56  HYPERLINK \l "_Toc66267101" Unit Testing Field Level Validations  PAGEREF _Toc66267101 \h 56  HYPERLINK \l "_Toc66267102" Unit Testing User Interface Checks  PAGEREF _Toc66267102 \h 56  HYPERLINK \l "_Toc66267103" 9.3 Execution of Unit Tests  PAGEREF _Toc66267103 \h 57  HYPERLINK \l "_Toc66267104" Unit Testing Flow :  PAGEREF _Toc66267104 \h 57  HYPERLINK \l "_Toc66267105" DISADVANTAGE of Unit Testing  PAGEREF _Toc66267105 \h 59  HYPERLINK \l "_Toc66267106" Method for Statement Coverage  PAGEREF _Toc66267106 \h 59  HYPERLINK \l "_Toc66267107" RACE COVERAGE  PAGEREF _Toc66267107 \h 60  HYPERLINK \l "_Toc66267108" 9.4 Conclusion  PAGEREF _Toc66267108 \h 60  HYPERLINK \l "_Toc66267109" 10 Test Strategy  PAGEREF _Toc66267109 \h 62  HYPERLINK \l "_Toc66267110" 10.1 Introduction  PAGEREF _Toc66267110 \h 62  HYPERLINK \l "_Toc66267111" 10.2 Key elements of Test Management:  PAGEREF _Toc66267111 \h 62  HYPERLINK \l "_Toc66267112" 10.3 Test Strategy Flow :  PAGEREF _Toc66267112 \h 63  HYPERLINK \l "_Toc66267113" 10.4 General Testing Strategies  PAGEREF _Toc66267113 \h 65  HYPERLINK \l "_Toc66267114" 10.5 Need for Test Strategy  PAGEREF _Toc66267114 \h 65  HYPERLINK \l "_Toc66267115" 10.6 Developing a Test Strategy  PAGEREF _Toc66267115 \h 66  HYPERLINK \l "_Toc66267116" 10.7 Conclusion:  PAGEREF _Toc66267116 \h 66  HYPERLINK \l "_Toc66267117" 11 TEST PLAN  PAGEREF _Toc66267117 \h 68  HYPERLINK \l "_Toc66267118" 11.1 What is a Test Plan?  PAGEREF _Toc66267118 \h 68  HYPERLINK \l "_Toc66267119" Contents of a Test Plan  PAGEREF _Toc66267119 \h 68  HYPERLINK \l "_Toc66267120" 11.2 Contents (in detail)  PAGEREF _Toc66267120 \h 68  HYPERLINK \l "_Toc66267121" 12 Test Data Preparation - Introduction  PAGEREF _Toc66267121 \h 71  HYPERLINK \l "_Toc66267122" 12.1 Criteria for Test Data Collection  PAGEREF _Toc66267122 \h 72  HYPERLINK \l "_Toc66267123" 12.2 Classification of Test Data Types  PAGEREF _Toc66267123 \h 79  HYPERLINK \l "_Toc66267124" 12.3 Organizing the data  PAGEREF _Toc66267124 \h 80  HYPERLINK \l "_Toc66267125" 12.4 Data Load and Data Maintenance  PAGEREF _Toc66267125 \h 82  HYPERLINK \l "_Toc66267126" 12.5 Testing the Data  PAGEREF _Toc66267126 \h 83  HYPERLINK \l "_Toc66267127" 12.6 Conclusion  PAGEREF _Toc66267127 \h 84  HYPERLINK \l "_Toc66267128" 13 Test Logs - Introduction  PAGEREF _Toc66267128 \h 85  HYPERLINK \l "_Toc66267129" 13.1 Factors defining the Test Log Generation  PAGEREF _Toc66267129 \h 85  HYPERLINK \l "_Toc66267130" 13.2 Collecting Status Data  PAGEREF _Toc66267130 \h 86  HYPERLINK \l "_Toc66267131" 14 Test Report  PAGEREF _Toc66267131 \h 92  HYPERLINK \l "_Toc66267132" 14.1 Executive Summary  PAGEREF _Toc66267132 \h 92  HYPERLINK \l "_Toc66267133" 15 Defect Management  PAGEREF _Toc66267133 \h 95  HYPERLINK \l "_Toc66267134" 15.1 Defect  PAGEREF _Toc66267134 \h 95  HYPERLINK \l "_Toc66267135" 15.2 Defect Fundamentals  PAGEREF _Toc66267135 \h 95  HYPERLINK \l "_Toc66267136" 15.3 Defect Tracking  PAGEREF _Toc66267136 \h 96  HYPERLINK \l "_Toc66267137" 15.4 Defect Classification  PAGEREF _Toc66267137 \h 97  HYPERLINK \l "_Toc66267138" 15.5 Defect Reporting Guidelines  PAGEREF _Toc66267138 \h 98  HYPERLINK \l "_Toc66267139" 16 Automation  PAGEREF _Toc66267139 \h 101  HYPERLINK \l "_Toc66267140" 16.1 Why Automate the Testing Process?  PAGEREF _Toc66267140 \h 101  HYPERLINK \l "_Toc66267141" 16.2 Automation Life Cycle  PAGEREF _Toc66267141 \h 103  HYPERLINK \l "_Toc66267142" 16.3 Preparing the Test Environment  PAGEREF _Toc66267142 \h 105  HYPERLINK \l "_Toc66267143" 16.4 Automation Methods  PAGEREF _Toc66267143 \h 108  HYPERLINK \l "_Toc66267145" 17 General automation tool comparison  PAGEREF _Toc66267145 \h 111  HYPERLINK \l "_Toc66267146" 17.1 Functional Test Tool Matrix  PAGEREF _Toc66267146 \h 111  HYPERLINK \l "_Toc66267147" 17.2 Record and Playback  PAGEREF _Toc66267147 \h 111  HYPERLINK \l "_Toc66267148" 17.3 Web Testing  PAGEREF _Toc66267148 \h 112  HYPERLINK \l "_Toc66267149" 17.4 Database Tests  PAGEREF _Toc66267149 \h 112  HYPERLINK \l "_Toc66267150" 17.5 Data Functions  PAGEREF _Toc66267150 \h 112  HYPERLINK \l "_Toc66267151" 17.6 Object Mapping  PAGEREF _Toc66267151 \h 113  HYPERLINK \l "_Toc66267152" 17.7 Image Testing  PAGEREF _Toc66267152 \h 114  HYPERLINK \l "_Toc66267153" 17.8 Test/Error recovery  PAGEREF _Toc66267153 \h 114  HYPERLINK \l "_Toc66267154" 17.9 Object Name Map  PAGEREF _Toc66267154 \h 114  HYPERLINK \l "_Toc66267155" 17.10 Object Identity Tool  PAGEREF _Toc66267155 \h 115  HYPERLINK \l "_Toc66267156" 17.11 Extensible Language  PAGEREF _Toc66267156 \h 115  HYPERLINK \l "_Toc66267157" 17.12 Environment Support  PAGEREF _Toc66267157 \h 116  HYPERLINK \l "_Toc66267158" 17.13 Integration  PAGEREF _Toc66267158 \h 116  HYPERLINK \l "_Toc66267159" 17.14 Cost  PAGEREF _Toc66267159 \h 116  HYPERLINK \l "_Toc66267160" 17.15 Ease Of Use  PAGEREF _Toc66267160 \h 117  HYPERLINK \l "_Toc66267161" 17.16 Support  PAGEREF _Toc66267161 \h 117  HYPERLINK \l "_Toc66267162" 17.17 Object Tests  PAGEREF _Toc66267162 \h 117  HYPERLINK \l "_Toc66267163" 17.18 Matrix  PAGEREF _Toc66267163 \h 118  HYPERLINK \l "_Toc66267164" 17.19 Matrix score  PAGEREF _Toc66267164 \h 118  HYPERLINK \l "_Toc66267165" 18 Sample Test Automation Tool  PAGEREF _Toc66267165 \h 119  HYPERLINK \l "_Toc66267166" 18.1 Rational Suite of tools  PAGEREF _Toc66267166 \h 119  HYPERLINK \l "_Toc66267167" 18.2 Rational Administrator  PAGEREF _Toc66267167 \h 120  HYPERLINK \l "_Toc66267168" 18.3 Rational Robot  PAGEREF _Toc66267168 \h 124  HYPERLINK \l "_Toc66267169" 18.4 Robot login window  PAGEREF _Toc66267169 \h 125  HYPERLINK \l "_Toc66267170" 18.5 Rational Robot main window-GUI script  PAGEREF _Toc66267170 \h 126  HYPERLINK \l "_Toc66267171" 18.6 Record and Playback options  PAGEREF _Toc66267171 \h 127  HYPERLINK \l "_Toc66267172" 18.7 Verification points  PAGEREF _Toc66267172 \h 129  HYPERLINK \l "_Toc66267173" 18.8 About SQABasic Header Files  PAGEREF _Toc66267173 \h 131  HYPERLINK \l "_Toc66267174" 18.9 Adding Declarations to the Global Header File  PAGEREF _Toc66267174 \h 131  HYPERLINK \l "_Toc66267175" 18.10 Inserting a Comment into a GUI Script:  PAGEREF _Toc66267175 \h 131  HYPERLINK \l "_Toc66267176" 18.11 About Data pools  PAGEREF _Toc66267176 \h 132  HYPERLINK \l "_Toc66267177" 18.12 Debug menu  PAGEREF _Toc66267177 \h 132  HYPERLINK \l "_Toc66267178" 18.13 Compiling the script  PAGEREF _Toc66267178 \h 133  HYPERLINK \l "_Toc66267179" 18.14 Compilation errors  PAGEREF _Toc66267179 \h 134  HYPERLINK \l "_Toc66267180" 19 Rational Test Manager  PAGEREF _Toc66267180 \h 136  HYPERLINK \l "_Toc66267181" 19.1 Test Manager-Results screen  PAGEREF _Toc66267181 \h 137  HYPERLINK \l "_Toc66267182" 20 Supported environments  PAGEREF _Toc66267182 \h 139  HYPERLINK \l "_Toc66267183" 20.1 Operating system  PAGEREF _Toc66267183 \h 139  HYPERLINK \l "_Toc66267184" 20.2 Protocols  PAGEREF _Toc66267184 \h 139  HYPERLINK \l "_Toc66267185" 20.3 Web browsers  PAGEREF _Toc66267185 \h 139  HYPERLINK \l "_Toc66267186" 20.4 Markup languages  PAGEREF _Toc66267186 \h 139  HYPERLINK \l "_Toc66267187" 20.5 Development environments  PAGEREF _Toc66267187 \h 139  HYPERLINK \l "_Toc66267188" 21 Performance Testing  PAGEREF _Toc66267188 \h 140  HYPERLINK \l "_Toc66267189" 21.1 What is Performance testing?  PAGEREF _Toc66267189 \h 140  HYPERLINK \l "_Toc66267190" 21.2 Why Performance testing?  PAGEREF _Toc66267190 \h 140  HYPERLINK \l "_Toc66267191" 21.3 Performance Testing Objectives  PAGEREF _Toc66267191 \h 141  HYPERLINK \l "_Toc66267192" 21.4 Pre-Requisites for Performance Testing  PAGEREF _Toc66267192 \h 141  HYPERLINK \l "_Toc66267193" 21.5 Performance Requirements  PAGEREF _Toc66267193 \h 142  HYPERLINK \l "_Toc66267194" 22 Performance Testing Process  PAGEREF _Toc66267194 \h 143  HYPERLINK \l "_Toc66267195" 22.1 Phase 1 Requirements Study  PAGEREF _Toc66267195 \h 144  HYPERLINK \l "_Toc66267196" 22.2 Phase 2 Test Plan  PAGEREF _Toc66267196 \h 145  HYPERLINK \l "_Toc66267197" 22.3 Phase 3 Test Design  PAGEREF _Toc66267197 \h 145  HYPERLINK \l "_Toc66267198" 22.4 Phase 4 Scripting  PAGEREF _Toc66267198 \h 146  HYPERLINK \l "_Toc66267199" 22.5 Phase 5 Test Execution  PAGEREF _Toc66267199 \h 147  HYPERLINK \l "_Toc66267200" 22.6 Phase 6 Test Analysis  PAGEREF _Toc66267200 \h 147  HYPERLINK \l "_Toc66267201" 22.7 Phase 7 Preparation of Reports  PAGEREF _Toc66267201 \h 148  HYPERLINK \l "_Toc66267202" 22.8 Common Mistakes in Performance Testing  PAGEREF _Toc66267202 \h 149  HYPERLINK \l "_Toc66267203" 22.9 Benchmarking Lessons  PAGEREF _Toc66267203 \h 149  HYPERLINK \l "_Toc66267204" 23 Tools  PAGEREF _Toc66267204 \h 151  HYPERLINK \l "_Toc66267205" 23.1 LoadRunner 6.5  PAGEREF _Toc66267205 \h 151  HYPERLINK \l "_Toc66267206" 23.2 WebLoad 4.5  PAGEREF _Toc66267206 \h 151  HYPERLINK \l "_Toc66267207" 23.3 Architecture Benchmarking  PAGEREF _Toc66267207 \h 158  HYPERLINK \l "_Toc66267208" 23.4 General Tests  PAGEREF _Toc66267208 \h 159  HYPERLINK \l "_Toc66267209" 24 Performance Metrics  PAGEREF _Toc66267209 \h 160  HYPERLINK \l "_Toc66267210" 24.1 Client Side Statistics  PAGEREF _Toc66267210 \h 160  HYPERLINK \l "_Toc66267211" 24.2 Server Side Statistics  PAGEREF _Toc66267211 \h 161  HYPERLINK \l "_Toc66267212" 24.3 Network Statistics  PAGEREF _Toc66267212 \h 161  HYPERLINK \l "_Toc66267213" 24.4 Conclusion  PAGEREF _Toc66267213 \h 161  HYPERLINK \l "_Toc66267214" 25 Load Testing  PAGEREF _Toc66267214 \h 163  HYPERLINK \l "_Toc66267215" 25.1 Why is load testing important ?  PAGEREF _Toc66267215 \h 163  HYPERLINK \l "_Toc66267216" 25.2 When should load testing be done?  PAGEREF _Toc66267216 \h 163  HYPERLINK \l "_Toc66267217" 26 Load Testing Process  PAGEREF _Toc66267217 \h 164  HYPERLINK \l "_Toc66267218" 26.1 System Analysis  PAGEREF _Toc66267218 \h 164  HYPERLINK \l "_Toc66267219" 26.2 User Scripts  PAGEREF _Toc66267219 \h 164  HYPERLINK \l "_Toc66267220" 26.3 Settings  PAGEREF _Toc66267220 \h 164  HYPERLINK \l "_Toc66267221" 26.4 Performance Monitoring  PAGEREF _Toc66267221 \h 165  HYPERLINK \l "_Toc66267222" 26.5 Analyzing Results  PAGEREF _Toc66267222 \h 165  HYPERLINK \l "_Toc66267223" 26.6 Conclusion  PAGEREF _Toc66267223 \h 165  HYPERLINK \l "_Toc66267224" 27 Stress Testing  PAGEREF _Toc66267224 \h 167  HYPERLINK \l "_Toc66267225" 27.1 Introduction to Stress Testing  PAGEREF _Toc66267225 \h 167  HYPERLINK \l "_Toc66267226" 27.2 Background to Automated Stress Testing  PAGEREF _Toc66267226 \h 168  HYPERLINK \l "_Toc66267227" 27.3 Automated Stress Testing Implementation  PAGEREF _Toc66267227 \h 170  HYPERLINK \l "_Toc66267228" 27.4 Programmable Interfaces  PAGEREF _Toc66267228 \h 170  HYPERLINK \l "_Toc66267229" 27.5 Graphical User Interfaces  PAGEREF _Toc66267229 \h 171  HYPERLINK \l "_Toc66267230" 27.6 Data Flow Diagram  PAGEREF _Toc66267230 \h 171  HYPERLINK \l "_Toc66267231" 27.7 Techniques Used to Isolate Defects  PAGEREF _Toc66267231 \h 172  HYPERLINK \l "_Toc66267232" 28 Test Case Coverage  PAGEREF _Toc66267232 \h 174  HYPERLINK \l "_Toc66267233" 28.1 Test Coverage  PAGEREF _Toc66267233 \h 174  HYPERLINK \l "_Toc66267234" 28.2 Test coverage measures  PAGEREF _Toc66267234 \h 174  HYPERLINK \l "_Toc66267235" 28.3 Procedure-Level Test Coverage  PAGEREF _Toc66267235 \h 175  HYPERLINK \l "_Toc66267236" 28.4 Line-Level Test Coverage  PAGEREF _Toc66267236 \h 175  HYPERLINK \l "_Toc66267237" 28.5 Condition Coverage and Other Measures  PAGEREF _Toc66267237 \h 175  HYPERLINK \l "_Toc66267238" 28.6 How Test Coverage Tools Work  PAGEREF _Toc66267238 \h 175  HYPERLINK \l "_Toc66267239" 28.7 Test Coverage Tools at a Glance  PAGEREF _Toc66267239 \h 177  HYPERLINK \l "_Toc66267240" 29 Test Case points-TCP  PAGEREF _Toc66267240 \h 178  HYPERLINK \l "_Toc66267241" 29.1 What is a Test Case Point (TCP)  PAGEREF _Toc66267241 \h 178  HYPERLINK \l "_Toc66267242" 29.2 Calculating the Test Case Points:  PAGEREF _Toc66267242 \h 178  HYPERLINK \l "_Toc66267243" 29.3 Chapter Summary  PAGEREF _Toc66267243 \h 180  Introduction to Software Evolution of the Software Testing discipline The effective functioning of modern systems depends on our ability to produce software in a cost-effective way. The term software engineering was first used at a 1968 NATO workshop in West Germany. It focused on the growing software crisis! Thus we see that the software crisis on quality, reliability, high costs etc. started way back when most of todays software testers were not even born! The attitude towards Software Testing underwent a major positive change in the recent years. In the 1950s when Machine languages were used, testing is nothing but debugging. When in the 1960s, compilers were developed, testing started to be considered a separate activity from debugging. In the 1970s when the software engineering concepts were introduced, software testing began to evolve as a technical discipline. Over the last two decades there has been an increased focus on better, faster and cost-effective software. Also there has been a growing interest in software safety, protection and security and hence an increased acceptance of testing as a technical discipline and also a career choice!. Now to answer, What is Testing? we can go by the famous definition of Myers, which says, Testing is the process of executing a program with the intent of finding errors The Testing process and the Software Testing Life Cycle Every testing project has to follow the waterfall model of the testing process. The waterfall model is as given below 1.Test Strategy & Planning 2.Test Design 3.Test Environment setup 4.Test Execution 5.Defect Analysis & Tracking 6.Final Reporting According to the respective projects, the scope of testing can be tailored, but the process mentioned above is common to any testing activity. Software Testing has been accepted as a separate discipline to the extent that there is a separate life cycle for the testing activity. Involving software testing in all phases of the software development life cycle has become a necessity as part of the software quality assurance process. Right from the Requirements study till the implementation, there needs to be testing done on every phase. The V-Model of the Software Testing Life Cycle along with the Software Development Life cycle given below indicates the various phases or levels of testing.  Broad Categories of Testing Based on the V-Model mentioned above, we see that there are two categories of testing activities that can be done on software, namely, Static Testing Dynamic Testing The kind of verification we do on the software work products before the process of compilation and creation of an executable is more of Requirement review, design review, code review, walkthrough and audits. This type of testing is called Static Testing. When we test the software by executing and comparing the actual & expected results, it is called Dynamic Testing Widely employed Types of Testing From the V-model, we see that are various levels or phases of testing, namely, Unit testing, Integration testing, System testing, User Acceptance testing etc. Let us see a brief definition on the widely employed types of testing. Unit Testing: The testing done to a unit or to a smallest piece of software. Done to verify if it satisfies its functional specification or its intended design structure. Integration Testing: Testing which takes place as sub elements are combined (i.e., integrated) to form higher-level elements Regression Testing: Selective re-testing of a system to verify the modification (bug fixes) have not caused unintended effects and that system still complies with its specified requirements System Testing: Testing the software for the required specifications on the intended hardware Acceptance Testing: Formal testing conducted to determine whether or not a system satisfies its acceptance criteria, which enables a customer to determine whether to accept the system or not. Performance Testing: To evaluate the time taken or response time of the system to perform its required functions in comparison Stress Testing: To evaluate a system beyond the limits of the specified requirements or system resources (such as disk space, memory, processor utilization) to ensure the system do not break unexpectedly Load Testing: Load Testing, a subset of stress testing, verifies that a web site can handle a particular number of concurrent users while maintaining acceptable response times Alpha Testing: Testing of a software product or system conducted at the developers site by the customer Beta Testing: Testing conducted at one or more customer sites by the end user of a delivered software product system. The Testing Techniques To perform these types of testing, there are two widely used testing techniques. The above said testing types are performed based on the following testing techniques. Black-Box testing technique: This technique is used for testing based solely on analysis of requirements (specification, user documentation.). Also known as functional testing. White-Box testing technique: This technique us used for testing based on analysis of internal logic (design, code, etc.)(But expected results still come requirements). Also known as Structural testing. These topics will be elaborated in the coming chapters Chapter Summary This chapter covered the Introduction and basics of software testing mentioning about Evolution of Software Testing The Testing process and lifecycle Broad categories of testing Widely employed Types of Testing The Testing Techniques Black Box and White Box testing Introduction Test Design refers to understanding the sources of test cases, test coverage, how to develop and document test cases, and how to build and maintain test data. There are 2 primary methods by which tests can be designed and they are: BLACK BOX WHITE BOX Black-box test design treats the system as a literal "black-box", so it doesn't explicitly use knowledge of the internal structure. It is usually described as focusing on testing functional requirements. Synonyms for black-box include: behavioral, functional, opaque-box, and closed-box. White-box test design allows one to peek inside the "box", and it focuses specifically on using internal knowledge of the software to guide the selection of test data. It is used to detect errors by means of execution-oriented test cases. Synonyms for white-box include: structural, glass-box and clear-box. While black-box and white-box are terms that are still in popular use, many people prefer the terms "behavioral" and "structural". Behavioral test design is slightly different from black-box test design because the use of internal knowledge isn't strictly forbidden, but it's still discouraged. In practice, it hasn't proven useful to use a single test design method. One has to use a mixture of different methods so that they aren't hindered by the limitations of a particular one. Some call this "gray-box" or "translucent-box" test design, but others wish we'd stop talking about boxes altogether!!! Black box testing Black Box Testing is testing without knowledge of the internal workings of the item being tested. For example, when black box testing is applied to software engineering, the tester would only know the "legal" inputs and what the expected outputs should be, but not how the program actually arrives at those outputs. It is because of this that black box testing can be considered testing with respect to the specifications, no other knowledge of the program is necessary. For this reason, the tester and the programmer can be independent of one another, avoiding programmer bias toward his own work. For this testing, test groups are often used, Though centered around the knowledge of user requirements, black box tests do not necessarily involve the participation of users. Among the most important black box tests that do not involve users are functionality testing, volume tests, stress tests, recovery testing, and benchmarks . Additionally, there are two types of black box test that involve users, i.e. field and laboratory tests. In the following the most important aspects of these black box tests will be described briefly. Black box testing - without user involvement The so-called ``functionality testing'' is central to most testing exercises. Its primary objective is to assess whether the program does what it is supposed to do, i.e. what is specified in the requirements. There are different approaches to functionality testing. One is the testing of each program feature or function in sequence. The other is to test module by module, i.e. each function where it is called first. The objective of volume tests is to find the limitations of the software by processing a huge amount of data. A volume test can uncover problems that are related to the efficiency of a system, e.g. incorrect buffer sizes, a consumption of too much memory space, or only show that an error message would be needed telling the user that the system cannot process the given amount of data. During a stress test, the system has to process a huge amount of data or perform many function calls within a short period of time. A typical example could be to perform the same function from all workstations connected in a LAN within a short period of time (e.g. sending e-mails, or, in the NLP area, to modify a term bank via different terminals simultaneously). The aim of recovery testing is to make sure to which extent data can be recovered after a system breakdown. Does the system provide possibilities to recover all of the data or part of it? How much can be recovered and how? Is the recovered data still correct and consistent? Particularly for software that needs high reliability standards, recovery testing is very important. The notion of benchmark tests involves the testing of program efficiency. The efficiency of a piece of software strongly depends on the hardware environment and therefore benchmark tests always consider the soft/hardware combination. Whereas for most software engineers benchmark tests are concerned with the quantitative measurement of specific operations, some also consider user tests that compare the efficiency of different software systems as benchmark tests. In the context of this document, however, benchmark tests only denote operations that are independent of personal variables. Black box testing - with user involvement For tests involving users, methodological considerations are rare in SE literature. Rather, one may find practical test reports that distinguish roughly between field and laboratory tests. In the following only a rough description of field and laboratory tests will be given. E.g. Scenario Tests. The term ``scenario'' has entered software evaluation in the early 1990s . A scenario test is a test case which aims at a realistic user background for the evaluation of software as it was defined and performed It is an instance of black box testing where the major objective is to assess the suitability of a software product for every-day routines. In short it involves putting the system into its intended use by its envisaged type of user, performing a standardised task. In field tests users are observed while using the software system at their normal working place. Apart from general usability-related aspects, field tests are particularly useful for assessing the interoperability of the software system, i.e. how the technical integration of the system works. Moreover, field tests are the only real means to elucidate problems of the organisational integration of the software system into existing procedures. Particularly in the NLP environment this problem has frequently been underestimated. A typical example of the organisational problem of implementing a translation memory is the language service of a big automobile manufacturer, where the major implementation problem is not the technical environment, but the fact that many clients still submit their orders as print-out, that neither source texts nor target texts are properly organised and stored and, last but not least, individual translators are not too motivated to change their working habits. Laboratory tests are mostly performed to assess the general usability of the system. Due to the high laboratory equipment costs laboratory tests are mostly only performed at big software houses such as IBM or Microsoft. Since laboratory tests provide testers with many technical possibilities, data collection and analysis are easier than for field tests. Testing Strategies/Techniques Black box testing should make use of randomly generated inputs (only a test range should be specified by the tester), to eliminate any guess work by the tester as to the methods of the function Data outside of the specified input range should be tested to check the robustness of the program Boundary cases should be tested (top and bottom of specified range) to make sure the highest and lowest allowable inputs produce proper output The number zero should be tested when numerical data is to be input Stress testing should be performed (try to overload the program with inputs to see where it reaches its maximum capacity), especially with real time systems Crash testing should be performed to see what it takes to bring the system down Test monitoring tools should be used whenever possible to track which tests have already been performed and the outputs of these tests to avoid repetition and to aid in the software maintenance Other functional testing techniques include: transaction testing, syntax testing, domain testing, logic testing, and state testing. Finite state machine models can be used as a guide to design functional tests According to Beizer the following is a general order by which tests should be designed: Clean tests against requirements. Additional structural tests for branch coverage, as needed. Additional tests for data-flow coverage as needed. Domain tests not covered by the above. Special techniques as appropriate--syntax, loop, state, etc. Any dirty tests not covered by the above. Black box testing Methods Graph-based Testing Methods Black-box methods based on the nature of the relationships (links) among the program objects (nodes), test cases are designed to traverse the entire graph Transaction flow testing (nodes represent steps in some transaction and links represent logical connections between steps that need to be validated) Finite state modeling (nodes represent user observable states of the software and links represent transitions between states) Data flow modeling (nodes are data objects and links are transformations from one data object to another) Timing modeling (nodes are program objects and links are sequential connections between these objects, link weights are required execution times) Equivalence Partitioning Black-box technique that divides the input domain into classes of data from which test cases can be derived An ideal test case uncovers a class of errors that might require many arbitrary test cases to be executed before a general error is observed Equivalence class guidelines: If input condition specifies a range, one valid and two invalid equivalence classes are defined If an input condition requires a specific value, one valid and two invalid equivalence classes are defined If an input condition specifies a member of a set, one valid and one invalid equivalence class is defined If an input condition is Boolean, one valid and one invalid equivalence class is defined Boundary Value Analysis Black-box technique that focuses on the boundaries of the input domain rather than its center BVA guidelines: If input condition specifies a range bounded by values a and b, test cases should include a and b, values just above and just below a and b If an input condition specifies and number of values, test cases should be exercise the minimum and maximum numbers, as well as values just above and just below the minimum and maximum values Apply guidelines 1 and 2 to output conditions, test cases should be designed to produce the minimum and maxim output reports If internal program data structures have boundaries (e.g. size limitations), be certain to test the boundaries Comparison Testing Black-box testing for safety critical systems in which independently developed implementations of redundant systems are tested for conformance to specifications Often equivalence class partitioning is used to develop a common set of test cases for each implementation Orthogonal Array Testing Black-box technique that enables the design of a reasonably small set of test cases that provide maximum test coverage Focus is on categories of faulty logic likely to be present in the software component (without examining the code) Priorities for assessing tests using an orthogonal array Detect and isolate all single mode faults Detect all double mode faults Multimode faults Specialized Testing Graphical user interfaces Client/server architectures Documentation and help facilities Real-time systems Task testing (test each time dependent task independently) Behavioral testing (simulate system response to external events) Intertask testing (check communications errors among tasks) System testing (check interaction of integrated system software and hardware) Advantages of Black Box Testing More effective on larger units of code than glass box testing Tester needs no knowledge of implementation, including specific programming languages Tester and programmer are independent of each other Tests are done from a user's point of view Will help to expose any ambiguities or inconsistencies in the specifications Test cases can be designed as soon as the specifications are complete Disadvantages of Black Box Testing Only a small number of possible inputs can actually be tested, to test every possible input stream would take nearly forever Without clear and concise specifications, test cases are hard to design There may be unnecessary repetition of test inputs if the tester is not informed of test cases the programmer has already tried May leave many program paths untested Cannot be directed toward specific segments of code which may be very complex (and therefore more error prone) Most testing related research has been directed toward glass box testing Black Box (Vs) White Box An easy way to start up a debate in a software testing forum is to ask the difference between black box and white box testing. These terms are commonly used, yet everyone seems to have a different idea of what they mean. Black box testing begins with a metaphor. Imagine youre testing an electronics system. Its housed in a black box with lights, switches, and dials on the outside. You must test it without opening it up, and you cant see beyond its surface. You have to see if it works just by flipping switches (inputs) and seeing what happens to the lights and dials (outputs). This is black box testing. Black box software testing is doing the same thing, but with software. The actual meaning of the metaphor, however, depends on how you define the boundary of the box and what kind of access the blackness is blocking. An opposite test approach would be to open up the electronics system, see how the circuits are wired, apply probes internally and maybe even disassemble parts of it. By analogy, this is called white box testing, To help understand the different ways that software testing can be divided between black box and white box techniques, consider the Five-Fold Testing System. It lays out five dimensions that can be used for examining testing: 1.People(who does the testing) 2. Coverage (what gets tested) 3. Risks (why you are testing) 4.Activities(how you are testing) 5. Evaluation (how you know youve found a bug) Lets use this system to understand and clarify the characteristics of black box and white box testing. People: Who does the testing? Some people know how software works (developers) and others just use it (users). Accordingly, any testing by users or other non-developers is sometimes called black box testing. Developer testing is called white box testing. The distinction here is based on what the person knows or can understand. Coverage: What is tested? If we draw the box around the system as a whole, black box testing becomes another name for system testing. And testing the units inside the box becomes white box testing. This is one way to think about coverage. Another is to contrast testing that aims to cover all the requirements with testing that aims to cover all the code. These are the two most commonly used coverage criteria. Both are supported by extensive literature and commercial tools. Requirements-based testing could be called black box because it makes sure that all the customer requirements have been verified. Code-based testing is often called white box because it makes sure that all the code (the statements, paths, or decisions) is exercised. Risks: Why are you testing? Sometimes testing is targeted at particular risks. Boundary testing and other attack-based techniques are targeted at common coding errors. Effective security testing also requires a detailed understanding of the code and the system architecture. Thus, these techniques might be classified as white box.Another set of risks concerns whether the software will actually provide value to users. Usability testing focuses on this risk, and could be termed black box. Activities: How do you test? A common distinction is made between behavioral test design, which defines tests based on functional requirements, and structural test design, which defines tests based on the code itself. These are two design approaches. Since behavioral testing is based on external functional definition, it is often called black box, while structural testingbased on the code internalsis called white box. Indeed, this is probably the most commonly cited definition for black box and white box testing.Another activity-based distinction contrasts dynamic test execution with formal code inspection. In this case, the metaphor maps test execution (dynamic testing) with black box testing, and maps code inspection (static testing) with white box testing.We could also focus on the tools used. Some tool vendors refer to code-coverage tools as white box tools, and tools that facilitate applying inputs and capturing inputsmost notably GUI capture replay toolsas black box tools. Testing is then categorized based on the types of tools used. Evaluation: How do you know if youve found a bug? There are certain kinds of software faults that dont always lead to obvious failures. They may be masked by fault tolerance or simply luck. Memory leaks and wild pointers are examples. Certain test techniques seek to make these kinds of problems more visible. Related techniques capture code history and stack information when faults occur, helping with diagnosis. Assertions are another technique for helping to make problems more visible. All of these techniques could be considered white box test techniques, since they use code instrumentation to make the internal workings of the software more visible. These contrast with black box techniques that simply look at the official outputs of a program. White box testing is concerned only with testing the software product, it cannot guarantee that the complete specification has been implemented. Black box testing is concerned only with testing the specification, it cannot guarantee that all parts of the implementation have been tested. Thus black box testing is testing against the specification and will discover faultsofomission, indicating that part of the specification has not been fulfilled. White box testing is testing against the implementation and will discover faultsofcommission, indicating that part of the implementation is faulty. In order to fully test a software product both black and white box testing are required. White box testing is much more expensive than black box testing. It requires the source code to be produced before the tests can be planned and is much more laborious in the determination of suitable input data and the determination if the software is or is not correct. The advice given is to start test planning with a black box test approach as soon as the specification is available. White box planning should commence as soon as all black box tests have been successfully passed, with the production of flowgraphs and determination of paths. The paths should then be checked against the black box test plan and any additional required test runs determined and applied. The consequences of test failure at this stage may be very expensive. A failure of a white box test may result in a change which requires all black box testing to be repeated and the re-determination of the white box paths To conclude, apart from the above described analytical methods of both glass and black box testing, there are further constructive means to guarantee high quality software end products. Among the most important constructive means are the usage of object-oriented programming tools, the integration of CASE tools, rapid prototyping, and last but not least the involvement of users in both software development and testing procedures Summary : Black box testing can sometimes describe user-based testing (people); system or requirements-based testing (coverage); usability testing (risk); or behavioral testing or capture replay automation (activities). White box testing, on the other hand, can sometimes describe developer-based testing (people); unit or code-coverage testing (coverage); boundary or security testing (risks); structural testing, inspection or code-coverage automation (activities); or testing based on probes, assertions, and logs (evaluation). WHITE BOX TESTING Software testing approaches that examine the program structure and derive test data from the program logic. Structural testing is sometimes referred to as clear-box testing since white boxes are considered opaque and do not really permit visibility into the code. Synonyms for white box testing Glass Box testing Structural testing Clear Box testing Open Box Testing Types of White Box testing A typical rollout of a product is shown in figure 1 below.  The purpose of white box testing Initiate a strategic initiative to build quality throughout the life cycle of a software product or service. Provide a complementary function to black box testing. Perform complete coverage at the component level. Improve quality by optimizing performance. Practices : This section outlines some of the general practices comprising white-box testing process. In general, white-box testing practices have the following considerations: The allocation of resources to perform class and method analysis and to document and review the same. Developing a test harness made up of stubs, drivers and test object libraries. Development and use of standard procedures, naming conventions and libraries. Establishment and maintenance of regression test suites and procedures. Allocation of resources to design, document and manage a test history library. The means to develop or acquire tool support for automation of capture/replay/compare, test suite execution, results verification and documentation capabilities. 1 Code Coverage Analysis 1.1 Basis Path Testing A testing mechanism proposed by McCabe whose aim is to derive a logical complexity measure of a procedural design and use this as a guide for defining a basic set of execution paths. These are test cases that exercise basic set will execute every statement at least once. 1.1.1 Flow Graph Notation A notation for representing control flow similar to flow charts and UML activity diagrams. 1.1.2 Cyclomatic Complexity The cyclomatic complexity gives a quantitative measure of 4the logical complexity. This value gives the number of independent paths in the basis set, and an upper bound for the number of tests to ensure that each statement is executed at least once. An independent path is any path through a program that introduces at least one new set of processing statements or a new condition (i.e., a new edge). Cyclomatic complexity provides upper bound for number of tests required to guarantee coverage of all program statements. 1.2 Control Structure testing 1.2.1 Conditions Testing Condition testing aims to exercise all logical conditions in a program module. They may define: Relational expression: (E1 op E2), where E1 and E2 are arithmetic expressions. Simple condition: Boolean variable or relational expression, possibly proceeded by a NOT operator. Compound condition: composed of two or more simple conditions, Boolean operators and parentheses. Boolean expression : Condition without Relational expressions. 1.2.2 Data Flow Testing Selects test paths according to the location of definitions and use of variables. 1.2.3 Loop Testing Loops fundamental to many algorithms. Can define loops as simple, concatenated, nested, and unstructured. Examples:  Note that unstructured loops are not to be tested . rather, they are redesigned. 2 Design by Contract (DbC) DbC is a formal way of using comments to incorporate specification information into the code itself. Basically, the code specification is expressed unambiguously using a formal language that describes the code's implicit contracts. These contracts specify such requirements as: Conditions that the client must meet before a method is invoked. Conditions that a method must meet after it executes. Assertions that a method must satisfy at specific points of its execution Tools that check DbC contracts at runtime such as JContract [http://www.parasoft.com/products/jtract/index.htm] are used to perform this function. 3 Profiling Profiling provides a framework for analyzing Java code performance for speed and heap memory use. It identifies routines that are consuming the majority of the CPU time so that problems may be tracked down to improve performance. These include the use of Microsoft Java Profiler API and Suns profiling tools that are bundled with the JDK. Third party tools such as JaViz [http://www.research.ibm.com/journal/sj/391/kazi.html] may also be used to perform this function. 4 Error Handling Exception and error handling is checked thoroughly are simulating partial and complete fail-over by operating on error causing test vectors. Proper error recovery, notification and logging are checked against references to validate program design. 5 Transactions Systems that employ transaction, local or distributed, may be validated to ensure that ACID (Atomicity, Consistency, Isolation, Durability). Each of the individual parameters is tested individually against a reference data set. Transactions are checked thoroughly for partial/complete commits and rollbacks encompassing databases and other XA compliant transaction processors. Advantages of White Box Testing Forces test developer to reason carefully about implementation Approximate the partitioning done by execution equivalence Reveals errors in "hidden" code Beneficent side-effects Disadvantages of White Box Testing Expensive Cases omitted in the code could be missed out. GUI Testing What is GUI Testing? GUI is the abbreviation for Graphic User Interface. It is absolutely essential that any application has to be user-friendly. The end user should be comfortable while using all the components on screen and the components should also perform their functionality with utmost clarity. Hence it becomes very essential to test the GUI components of any application. GUI Testing can refer to just ensuring that the look-and-feel of the application is acceptable to the user, or it can refer to testing the functionality of each and every component involved. The following is a set of guidelines to ensure effective GUI Testing and can be used even as a checklist while testing a product / application. Section 1 - Windows Compliance Testing Application Start Application by Double Clicking on its ICON. The Loading message should show the application name, version number, and a bigger pictorial representation of the icon. No Login is necessary. The main window of the application should have the same caption as the caption of the icon in Program Manager. Closing the application should result in an "Are you Sure" message box Attempt to start application twice. This should not be allowed - you should be returned to main window. Try to start the application twice as it is loading. On each window, if the application is busy, then the hour glass should be displayed. If there is no hour glass, then some enquiry in progress message should be displayed. All screens should have a Help button (i.e.) F1 key should work the same. If Window has a Minimize Button, click it. Window should return to an icon on the bottom of the screen. This icon should correspond to the Original Icon under Program Manager. Double Click the Icon to return the Window to its original size. The window caption for every application should have the name of the application and the window name - especially the error messages. These should be checked for spelling, English and clarity, especially on the top of the screen. Check does the title of the window make sense. If the screen has a Control menu, then use all un-grayed options. Check all text on window for Spelling/Tense and Grammar. Use TAB to move focus around the Window. Use SHIFT+TAB to move focus backwards. Tab order should be left to right, and Up to Down within a group box on the screen. All controls should get focus - indicated by dotted box, or cursor. Tabbing to an entry field with text in it should highlight the entire text in the field. The text in the Micro Help line should change - Check for spelling, clarity and non-updateable etc. If a field is disabled (grayed) then it should not get focus. It should not be possible to select them with either the mouse or by using TAB. Try this for every grayed control. Never updateable fields should be displayed with black text on a gray background with a black label. All text should be left justified, followed by a colon tight to it. In a field that may or may not be updateable, the label text and contents changes from black to gray depending on the current status. List boxes are always white background with black text whether they are disabled or not. All others are gray. In general, double-clicking is not essential. In general, everything can be done using both the mouse and the keyboard. All tab buttons should have a distinct letter. Text Boxes Move the Mouse Cursor over all Enterable Text Boxes. Cursor should change from arrow to Insert Bar. If it doesn't then the text in the box should be gray or non-updateable. Refer to previous page. Enter text into Box Try to overflow the text by typing to many characters - should be stopped Check the field width with capitals W. Enter invalid characters - Letters in amount fields, try strange characters like + , - * etc. in All fields. SHIFT and Arrow should Select Characters. Selection should also be possible with mouse. Double Click should select all text in box. Option (Radio Buttons) Left and Right arrows should move 'ON' Selection. So should Up and Down. Select with mouse by clicking. Check Boxes Clicking with the mouse on the box, or on the text should SET/UNSET the box. SPACE should do the same. Command Buttons If Command Button leads to another Screen, and if the user can enter or change details on the other screen then the Text on the button should be followed by three dots. All Buttons except for OK and Cancel should have a letter Access to them. This is indicated by a letter underlined in the button text. Pressing ALT+Letter should activate the button. Make sure there is no duplication. Click each button once with the mouse - This should activate Tab to each button - Press SPACE - This should activate Tab to each button - Press RETURN - This should activate The above are VERY IMPORTANT, and should be done for EVERY command Button. Tab to another type of control (not a command button). One button on the screen should be default (indicated by a thick black border). Pressing Return in ANY no command button control should activate it. If there is a Cancel Button on the screen, then pressing should activate it. If pressing the Command button results in uncorrectable data e.g. closing an action step, there should be a message phrased positively with Yes/No answers where Yes results in the completion of the action. Drop Down List Boxes Pressing the Arrow should give list of options. This List may be scrollable. You should not be able to type text in the box. Pressing a letter should bring you to the first item in the list with that start with that letter. Pressing Ctrl - F4 should open/drop down the list box. Spacing should be compatible with the existing windows spacing (word etc.). Items should be in alphabetical order with the exception of blank/none, which is at the top or the bottom of the list box. Drop down with the item selected should be display the list with the selected item on the top. Make sure only one space appears, shouldn't have a blank line at the bottom. Combo Boxes Should allow text to be entered. Clicking Arrow should allow user to choose from list List Boxes Should allow a single selection to be chosen, by clicking with the mouse, or using the Up and Down Arrow keys. Pressing a letter should take you to the first item in the list starting with that letter. If there is a 'View' or 'Open' button besides the list box then double clicking on a line in the List Box, should act in the same way as selecting and item in the list box, then clicking the command button. Force the scroll bar to appear, make sure all the data can be seen in the box.  HYPERLINK "http://members.tripod.com/~bazman/" \l "top"  INCLUDEPICTURE "http://members.tripod.com/~bazman/checklist_files/top.gif" \* MERGEFORMATINET  Section 2 - Screen Validation Checklist Aesthetic Conditions: Is the general screen background the correct color? Are the field prompts the correct color? Are the field backgrounds the correct color? In read-only mode, are the field prompts the correct color? In read-only mode, are the field backgrounds the correct color? Are all the screen prompts specified in the correct screen font? Is the text in all fields specified in the correct screen font? Are all the field prompts aligned perfectly on the screen? Are all the field edit boxes aligned perfectly on the screen? Are all group boxes aligned correctly on the screen? Should the screen be resizable? Should the screen be allowed to minimize? Are all the field prompts spelt correctly? Are all character or alphanumeric fields left justified? This is the default unless otherwise specified. Are all numeric fields right justified? This is the default unless otherwise specified. Is all the micro-help text spelt correctly on this screen? Is all the error message text spelt correctly on this screen? Is all user input captured in UPPER case or lowercase consistently? Where the database requires a value (other than null) then this should be defaulted into fields. The user must either enter an alternative valid value or leave the default value intact. Assure that all windows have a consistent look and feel. Assure that all dialog boxes have a consistent look and feel. Validation Conditions: Does a failure of validation on every field cause a sensible user error message? Is the user required to fix entries, which have failed validation tests? Have any fields got multiple validation rules and if so are all rules being applied? If the user enters an invalid value and clicks on the OK button (i.e. does not TAB off the field) is the invalid entry identified and highlighted correctly with an error message? Is validation consistently applied at screen level unless specifically required at field level? For all numeric fields check whether negative numbers can and should be able to be entered. For all numeric fields check the minimum and maximum values and also some mid-range values allowable? For all character/alphanumeric fields check the field to ensure that there is a character limit specified and that this limit is exactly correct for the specified database size? Do all mandatory fields require user input? If any of the database columns don't allow null values then the corresponding screen fields must be mandatory. (If any field, which initially was mandatory, has become optional then check whether null values are allowed in this field.) Navigation Conditions: Can the screen be accessed correctly from the menu? Can the screen be accessed correctly from the toolbar? Can the screen be accessed correctly by double clicking on a list control on the previous screen? Can all screens accessible via buttons on this screen be accessed correctly? Can all screens accessible by double clicking on a list control be accessed correctly? Is the screen modal? (i.e.) Is the user prevented from accessing other functions when this screen is active and is this correct? Can a number of instances of this screen be opened at the same time and is this correct? Usability Conditions: Are all the dropdowns on this screen sorted correctly? Alphabetic sorting is the default unless otherwise specified. Is all date entry required in the correct format? Have all pushbuttons on the screen been given appropriate Shortcut keys? Do the Shortcut keys work correctly? Have the menu options that apply to your screen got fast keys associated and should they have? Does the Tab Order specified on the screen go in sequence from Top Left to bottom right? This is the default unless otherwise specified. Are all read-only fields avoided in the TAB sequence? Are all disabled fields avoided in the TAB sequence? Can the cursor be placed in the microhelp text box by clicking on the text box with the mouse? Can the cursor be placed in read-only fields by clicking in the field with the mouse? Is the cursor positioned in the first input field or control when the screen is opened? Is there a default button specified on the screen? Does the default button work correctly? When an error message occurs does the focus return to the field in error when the user cancels it? When the user Alt+Tab's to another application does this have any impact on the screen upon return to the application? Do all the fields edit boxes indicate the number of characters they will hold by there length? e.g. a 30 character field should be a lot longer Data Integrity Conditions: Is the data saved when the window is closed by double clicking on the close box? Check the maximum field lengths to ensure that there are no truncated characters? Where the database requires a value (other than null) then this should be defaulted into fields. The user must either enter an alternative valid value or leave the default value intact. Check maximum and minimum field values for numeric fields? If numeric fields accept negative values can these be stored correctly on the database and does it make sense for the field to accept negative numbers? If a set of radio buttons represents a fixed set of values such as A, B and C then what happens if a blank value is retrieved from the database? (In some situations rows can be created on the database by other functions, which are not screen based, and thus the required initial values can be incorrect.) If a particular set of data is saved to the database check that each value gets saved fully to the database. (i.e.) Beware of truncation (of strings) and rounding of numeric values. Modes (Editable Read-only) Conditions: Are the screen and field colors adjusted correctly for read-only mode? Should a read-only mode be provided for this screen? Are all fields and controls disabled in read-only mode? Can the screen be accessed from the previous screen/menu/toolbar in read-only mode? Can all screens available from this screen be accessed in read-only mode? Check that no validation is performed in read-only mode. General Conditions: Assure the existence of the "Help" menu. Assure that the proper commands and options are in each menu. Assure that all buttons on all tool bars have a corresponding key commands. Assure that each menu command has an alternative (hot-key) key sequence, which will invoke it where appropriate. In drop down list boxes, ensure that the names are not abbreviations / cut short In drop down list boxes, assure that the list and each entry in the list can be accessed via appropriate key / hot key combinations. Ensure that duplicate hot keys do not exist on each screen Ensure the proper usage of the escape key (which is to undo any changes that have been made) and generates a caution message "Changes will be lost - Continue yes/no" Assure that the cancel button functions the same as the escape key. Assure that the Cancel button operates, as a Close button when changes have been made that cannot be undone. Assure that only command buttons, which are used by a particular window, or in a particular dialog box, are present. (i.e) make sure they don't work on the screen behind the current screen. When a command button is used sometimes and not at other times, assures that it is grayed out when it should not be used. Assure that OK and Cancel buttons are grouped separately from other command buttons. Assure that command button names are not abbreviations. Assure that all field labels/names are not technical labels, but rather are names meaningful to system users. Assure that command buttons are all of similar size and shape, and same font & font size. Assure that each command button can be accessed via a hot key combination. Assure that command buttons in the same window/dialog box do not have duplicate hot keys. Assure that each window/dialog box has a clearly marked default value (command button, or other object) which is invoked when the Enter key is pressed - and NOT the Cancel or Close button Assure that focus is set to an object/button, which makes sense according to the function of the window/dialog box. Assure that all option buttons (and radio buttons) names are not abbreviations. Assure that option button names are not technical labels, but rather are names meaningful to system users. If hot keys are used to access option buttons, assure that duplicate hot keys do not exist in the same window/dialog box. Assure that option box names are not abbreviations. Assure that option boxes, option buttons, and command buttons are logically grouped together in clearly demarcated areas "Group Box" Assure that the Tab key sequence, which traverses the screens, does so in a logical way. Assure consistency of mouse actions across windows. Assure that the color red is not used to highlight active objects (many individuals are red-green color blind). Assure that the user will have control of the desktop with respect to general color and highlighting (the application should not dictate the desktop background characteristics). Assure that the screen/window does not have a cluttered appearance Ctrl + F6 opens next tab within tabbed window Shift + Ctrl + F6 opens previous tab within tabbed window Tabbing will open next tab within tabbed window if on last field of current tab Tabbing will go onto the 'Continue' button if on last field of last tab within tabbed window Tabbing will go onto the next editable field in the window Banner style & size & display exact same as existing windows If 8 or less options in a list box, display all options on open of list box - should be no need to scroll Errors on continue will cause user to be returned to the tab and the focus should be on the field causing the error. (i.e the tab is opened, highlighting the field with the error on it) Pressing continue while on the first tab of a tabbed window (assuming all fields filled correctly) will not open all the tabs. On open of tab focus will be on first editable field All fonts to be the same Alt+F4 will close the tabbed window and return you to main screen or previous screen (as appropriate), generating "changes will be lost" message if necessary. Microhelp text for every enabled field & button Ensure all fields are disabled in read-only mode Progress messages on load of tabbed screens Return operates continue If retrieve on load of tabbed window fails window should not open Specific Field Tests Date Field Checks Assure that leap years are validated correctly & do not cause errors/miscalculations. Assure that month code 00 and 13 are validated correctly & do not cause errors/miscalculations. Assure that 00 and 13 are reported as errors. Assure that day values 00 and 32 are validated correctly & do not cause errors/miscalculations. Assure that Feb. 28, 29, 30 are validated correctly & do not cause errors/ miscalculations. Assure that Feb. 30 is reported as an error. Assure that century change is validated correctly & does not cause errors/ miscalculations. Assure that out of cycle dates are validated correctly & do not cause errors/miscalculations. Numeric Fields Assure that lowest and highest values are handled correctly. Assure that invalid values are logged and reported. Assure that valid values are handles by the correct procedure. Assure that numeric fields with a blank in position 1 are processed or reported as an error. Assure that fields with a blank in the last position are processed or reported as an error an error. Assure that both + and - values are correctly processed. Assure that division by zero does not occur. Include value zero in all calculations. Include at least one in-range value. Include maximum and minimum range values. Include out of range values above the maximum and below the minimum. Assure that upper and lower values in ranges are handled correctly. Alpha Field Checks Use blank and non-blank data. Include lowest and highest values. Include invalid characters & symbols. Include valid characters. Include data items with first position blank. Include data items with last position blank. Validation Testing - Standard Actions Examples of Standard Actions - Substitute your specific commands Add View Change Delete Continue - (i.e. continue saving changes or additions) Add View Change Delete Cancel - (i.e. abandon changes or additions) Fill each field - Valid data Fill each field - Invalid data Different Check Box / Radio Box combinations Scroll Lists / Drop Down List Boxes Help Fill Lists and Scroll Tab Tab Sequence Shift Tab Shortcut keys / Hot Keys Note: The following keys are used in some windows applications, and are included as a guide. KeyNo ModifierShiftCTRLALTF1HelpEnter Help ModeN/AN/AF2N/AN/AN/AN/AF3N/AN/AN/AN/AF4N/AN/AClose Document / Child window.Close Application.F5N/AN/AN/AN/AF6N/AN/AN/AN/AF7N/AN/AN/AN/AF8Toggle extend mode, if supported.Toggle Add mode, if supported.N/AN/AF9N/AN/AN/AN/AF10Toggle menu bar activation.N/AN/AN/AF11, F12N/AN/AN/AN/ATabMove to next active/editable field.Move to previous active/editable field.Move to next open Document or Child window. (Adding SHIFT reverses the order of movement).Switch to previously used application. (Holding down the ALT key displays all open applications).AltPuts focus on first menu command (e.g. 'File').N/AN/AN/A HYPERLINK "http://members.tripod.com/~bazman/" \l "top"  INCLUDEPICTURE "http://members.tripod.com/~bazman/checklist_files/top.gif" \* MERGEFORMATINET  Control Shortcut Keys KeyFunctionCTRL + ZUndoCTRL + XCutCTRL + CCopyCTRL + VPasteCTRL + NNewCTRL + OOpenCTRL + PPrintCTRL + SSaveCTRL + BBold*CTRL + IItalic*CTRL + UUnderline** These shortcuts are suggested for text formatting applications, in the context for which they make sense. Applications may use other modifiers for these operations. Regression Testing What is regression Testing Regression testing is the process of testing changes to computer programs to make sure that the older programming still works with the new changes. Regression testing is a normal part of the program development process. Test department coders develop code test scenarios and exercises that will test new units of code after they have been written. Before a new version of a software product is released, the old test cases are run against the new version to make sure that all the old capabilities still work. The reason they might not work because changing or adding new code to a program can easily introduce errors into code that is not intended to be changed. The selective retesting of a software system that has been modified to ensure that any  HYPERLINK "http://www.webopedia.com/TERM/R/bug.html" bugs have been fixed and that no other previously working functions have failed as a result of the reparations and that newly added features have not created problems with previous versions of the software. Also referred to as verification testing Regression testing is initiated after a  HYPERLINK "http://www.webopedia.com/TERM/R/programmer.html" programmer has attempted to fix a recognized problem or has added source code to a program that may have inadvertently introduced errors. It is a quality control measure to ensure that the newly modified code still complies with its specified requirements and that unmodified code has not been affected by the maintenance activity. Test Execution Test Execution is the heart of the testing process. Each time your application changes, you will want to execute the relevant parts of your test plan in order to locate defects and assess quality. Create Test Cycles During this stage you decide the subset of tests from your test database you want to execute. Usually you do not run all the tests at once. At different stages of the quality assurance process, you need to execute different tests in order to address specific goals. A related group of tests is called a test cycle, and can include both manual and automated tests Example: You can create a cycle containing basic tests that run on each build of the application throughout development. You can run the cycle each time a new build is ready, to determine the application's stability before beginning more rigorous testing. Example: You can create another set of tests for a particular module in your application. This test cycle includes tests that check that module in depth. To decide which test cycles to build, refer to the testing goals you defined at the beginning of the process. Also consider issues such as the current state of the application and whether new functions have been added or modified. Following are examples of some general categories of test cycles to consider: sanity cycle checks the entire system at a basic level (breadth, rather than depth) to see that it is functional and stable. This cycle should include basic-level tests containing mostly positive checks. normal cycle tests the system a little more in depth than the sanity cycle. This cycle can group medium-level tests, containing both positive and negative checks. advanced cycle tests both breadth and depth. This cycle can be run when more time is available for testing. The tests in the cycle cover the entire application (breadth), and also test advanced options in the application (depth). regression cycle tests maintenance builds. The goal of this type of cycle is to verify that a change to one part of the software did not break the rest of the application. A regression cycle includes sanity-level tests for testing the entire software, as well as in-depth tests for the specific area of the application that was modified. Run Test Cycles (Automated & Manual Tests) Once you have created cycles that cover your testing objectives, you begin executing the tests in the cycle. You perform manual tests using the test steps. Testing Tools executes automated tests for you. A test cycle is complete only when all tests-automatic and manual-have been run. With Manual Test Execution you follow the instructions in the test steps of each test. You use the application, enter input, compare the application output with the expected output, and log the results. For each test step you assign either pass or fail status. During Automated Test Execution you create a batch of tests and launch the entire batch at once. Testing Tools runs the tests one at a time. It then imports results, providing outcome summaries for each test. Analyze Test Results After every test run one analyze and validate the test results. And have to identify all the failed steps in the tests and to determine whether a bug has been detected, or if the expected result needs to be updated. Change Request Initiating a Change Request A user or developer wants to suggest a modification that would improve an existing application, notices a problem with an application, or wants to recommend an enhancement. Any major or minor request is considered a problem with an application and will be entered as a change request. Type of Change Request Bug the application works incorrectly or provides incorrect information.(for example, a letter is allowed to be entered in a number field) Changea modification of the existing application. (for example, sorting the files alphabetically by the second field rather than numerically by the first field makes them easier to find) Enhancementnew functionality or item added to the application. (for example, a new report, a new field, or a new button) Priority for the request Lowthe application works but this would make the function easier or more user friendly. Highthe application works, but this is necessary to perform a job. Criticalthe application does not work, job functions are impaired and there is no work around. This also applies to any Section 508 infraction. Bug Tracking Locating and repairing software bugs is an essential part of software development. Bugs can be detected and reported by engineers, testers, and end-users in all phases of the testing process. Information about bugs must be detailed and organized in order to schedule bug fixes and determine software release dates. Bug Tracking involves two main stages: reporting and tracking. Report Bugs Once you execute the manual and automated tests in a cycle, you report the bugs (or defects) that you detected. The bugs are stored in a database so that you can manage them and analyze the status of your application. When you report a bug, you record all the information necessary to reproduce and fix it. You also make sure that the QA and development personnel involved in fixing the bug are notified. Track and Analyze Bugs The lifecycle of a bug begins when it is reported and ends when it is fixed, verified, and closed. First you report New bugs to the database, and provide all necessary information to reproduce, fix, and follow up the bug. The Quality Assurance manager or Project manager periodically reviews all New bugs and decides which should be fixed. These bugs are given the status Open and are assigned to a member of the development team. Software developers fix the Open bugs and assign them the status Fixed. QA personnel test a new build of the application. If a bug does not reoccur, it is Closed. If a bug is detected again, it is reopened. Communication is an essential part of bug tracking; all members of the development and quality assurance team must be well informed in order to insure that bugs information is up to date and that the most important problems are addressed. The number of open or fixed bugs is a good indicator of the quality status of your application. You can use data analysis tools such as re-ports and graphs in interpret bug data. Traceability Matrix A traceability matrix is created by associating requirements with the products that satisfy them. Tests are associated with the requirements on which they are based and the product tested to meet the requirement. Below is a simple traceability matrix structure. There can be more things included in a traceability matrix than shown below. Traceability requires unique identifiers for each requirement and product. Numbers for products are established in a configuration management (CM) plan.  HYPERLINK "http://www.jiludwig.com/Configuration_Management.html"   INCLUDEPICTURE "http://www.jiludwig.com/Traceability_Concept.gif" \* MERGEFORMATINET  Traceability ensures completeness, that all lower level requirements derive from higher level requirements, and that all higher level requirements are allocated to lower level requirements. Traceability is also used in managing change and provides the basis for test planning. SAMPLE TRACEABILITY MATRIX A traceability matrix is a report from the requirements database or repository. The examples below show traceability between user and system requirements. User requirement identifiers begin with "U" and system requirements with "S."  INCLUDEPICTURE "http://www.jiludwig.com/Forward_Traceability.gif" \* MERGEFORMATINET  Tracing S12 to its source makes it clear this requirement is erroneous: it must be eliminated, rewritten, or the traceability corrected.  INCLUDEPICTURE "http://www.jiludwig.com/Backward_Traceability_1.gif" \* MERGEFORMATINET  In addition to traceability matrices, other reports are necessary to manage requirements. What goes into each report depends on the information needs of those receiving the report(s). Determine their information needs and document the information that will be associated with the requirements when you set up your requirements database or repository Phases of Testing Introduction The Primary objective of testing effort is to determine the conformance to requirements specified in the contracted documents. The integration of this code with the internal code is the important objective. Goal is to evaluate the system as a whole, not its parts Techniques can be structural or functional. Techniques can be used in any stage that tests the system as a whole (System testing ,Acceptance Testing, Unit testing, Installation, etc.) Types and Phases of Testing SDLC DocumentQA DocumentSoftware Requirement Specification Requirement ChecklistDesign DocumentDesign ChecklistFunctional SpecificationFunctional ChecklistDesign Document & Functional SpecsUnit Test Case DocumentsDesign Document & Functional SpecsIntegration Test Case DocumentsDesign Document & Functional SpecsSystem Test Case DocumentsUnit / System / Integration Test Case DocumentsRegression Test Case DocumentsFunctional Specs, Performance CriteriaPerformance Test Case DocumentsSoftware Requirement Specification, Unit / System / Integration / Regression / Performance Test Case DocumentsUser Acceptance Test Case Documents. The VModel    Integration Testing One of the most significant aspects of a software development project is the integration strategy. Integration may be performed all at once, top-down, bottom-up, critical piece first, or by first integrating functional subsystems and then integrating the subsystems in separate phases using any of the basic strategies. In general, the larger the project, the more important the integration strategy. Very small systems are often assembled and tested in one phase. For most real systems, this is impractical for two major reasons. First, the system would fail in so many places at once that the debugging and retesting effort would be impractical Second, satisfying any white box testing criterion would be very difficult, because of the vast amount of detail separating the input data from the individual code modules. In fact, most integration testing has been traditionally limited to ``black box'' techniques. Large systems may require many integration phases, beginning with assembling modules into low-level subsystems, then assembling subsystems into larger subsystems, and finally assembling the highest level subsystems into the complete system. To be most effective, an integration testing technique should fit well with the overall integration strategy. In a multi-phase integration, testing at each phase helps detect errors early and keep the system under control. Performing only cursory testing at early integration phases and then applying a more rigorous criterion for the final stage is really just a variant of the high-risk "big bang" approach. However, performing rigorous testing of the entire software involved in each integration phase involves a lot of wasteful duplication of effort across phases. The key is to leverage the overall integration structure to allow rigorous testing at each phase while minimizing duplication of effort. It is important to understand the relationship between module testing and integration testing. In one view, modules are rigorously tested in isolation using stubs and drivers before any integration is attempted. Then, integration testing concentrates entirely on module interactions, assuming that the details within each module are accurate. At the other extreme, module and integration testing can be combined, verifying the details of each module's implementation in an integration context. Many projects compromise, combining module testing with the lowest level of subsystem integration testing, and then performing pure integration testing at higher levels. Each of these views of integration testing may be appropriate for any given project, so an integration testing method should be flexible enough to accommodate them all. Combining module testing with bottom-up integration.  INCLUDEPICTURE "http://hissa.nist.gov/HHRFdata/Artifacts/ITLdoc/235/fig7-1.gif" \* MERGEFORMATINET  Generalization of module testing criteria Module testing criteria can often be generalized in several possible ways to support integration testing. As discussed in the previous subsection, the most obvious generalization is to satisfy the module testing criterion in an integration context, in effect using the entire program as a test driver environment for each module. However, this trivial kind of generalization does not take advantage of the differences between module and integration testing. Applying it to each phase of a multi-phase integration strategy, for example, leads to an excessive amount of redundant testing. More useful generalizations adapt the module testing criterion to focus on interactions between modules rather than attempting to test all of the details of each module's implementation in an integration context. The statement coverage module testing criterion, in which each statement is required to be exercised during module testing, can be generalized to require each module call statement to be exercised during integration testing. Although the specifics of the generalization of structured testing are more detailed, the approach is the same. Since structured testing at the module level requires that all the decision logic in a module's control flow graph be tested independently, the appropriate generalization to the integration level requires that just the decision logic involved with calls to other modules be tested independently. Module design complexity Rather than testing all decision outcomes within a module independently, structured testing at the integration level focuses on the decision outcomes that are involved with module calls. The design reduction technique helps identify those decision outcomes, so that it is possible to exercise them independently during integration testing. The idea behind design reduction is to start with a module control flow graph, remove all control structures that are not involved with module calls, and then use the resultant "reduced" flow graph to drive integration testing. Figure 7-2 shows a systematic set of rules for performing design reduction. Although not strictly a reduction rule, the call rule states that function call ("black dot") nodes cannot be reduced. The remaining rules work together to eliminate the parts of the flow graph that are not involved with module calls. The sequential rule eliminates sequences of non-call ("white dot") nodes. Since application of this rule removes one node and one edge from the flow graph, it leaves the cyclomatic complexity unchanged. However, it does simplify the graph so that the other rules can be applied. The repetitive rule eliminates top-test loops that are not involved with module calls. The conditional rule eliminates conditional statements that do not contain calls in their bodies. The looping rule eliminates bottom-test loops that are not involved with module calls. It is important to preserve the module's connectivity when using the looping rule, since for poorly-structured code it may be hard to distinguish the ``top'' of the loop from the ``bottom.'' For the rule to apply, there must be a path from the module entry to the top of the loop and a path from the bottom of the loop to the module exit. Since the repetitive, conditional, and looping rules each remove one edge from the flow graph, they each reduce cyclomatic complexity by one. Rules 1 through 4 are intended to be applied iteratively until none of them can be applied, at which point the design reduction is complete. By this process, even very complex logic can be eliminated as long as it does not involve any module calls.  INCLUDEPICTURE "http://hissa.nist.gov/HHRFdata/Artifacts/ITLdoc/235/fig7-2.gif" \* MERGEFORMATINET  Incremental integration Hierarchical system design limits each stage of development to a manageable effort, and it is important to limit the corresponding stages of testing as well. Hierarchical design is most effective when the coupling among sibling components decreases as the component size increases, which simplifies the derivation of data sets that test interactions among components. The remainder of this section extends the integration testing techniques of structured testing to handle the general case of incremental integration, including support for hierarchical design. The key principle is to test just the interaction among components at each integration stage, avoiding redundant testing of previously integrated sub-components. To extend statement coverage to support incremental integration, it is required that all module call statements from one component into a different component be exercised at each integration stage. To form a completely flexible "statement testing" criterion, it is required that each statement be executed during the first phase (which may be anything from single modules to the entire program), and that at each integration phase all call statements that cross the boundaries of previously integrated components are tested. Given hierarchical integration stages with good cohesive partitioning properties, this limits the testing effort to a small fraction of the effort to cover each statement of the system at each integration phase. Structured testing can be extended to cover the fully general case of incremental integration in a similar manner. The key is to perform design reduction at each integration phase using just the module call nodes that cross component boundaries, yielding component-reduced graphs, and exclude from consideration all modules that do not contain any cross-component calls. Figure 7-7 illustrates the structured testing approach to incremental integration. Modules A and C have been previously integrated, as have modules B and D. It would take three tests to integrate this system in a single phase. However, since the design predicate decision to call module D from module B has been tested in a previous phase, only two additional tests are required to complete the integration testing. Modules B and D are removed from consideration because they do not contain cross-component calls, the component module design complexity of module A is 1, and the component module design complexity of module C is 2.  INCLUDEPICTURE "http://hissa.nist.gov/HHRFdata/Artifacts/ITLdoc/235/fig7-7.gif" \* MERGEFORMATINET  Acceptance Testing Introduction Acceptance Testing In software engineering, acceptance testing is formal testing conducted to determine whether a system satisfies its acceptance criteria and thus whether the customer should accept the system. The main types of software testing are: Component. Interface. System. Acceptance. Release. Acceptance Testing checks the system against the "Requirements". It is similar to systems testing in that the whole system is checked but the important difference is the change in focus: Systems Testing checks that the system that was specified has been delivered. Acceptance Testing checks that the system delivers what was requested. The customer, and not the developer should always do acceptance testing. The customer knows what is required from the system to achieve value in the business and is the only person qualified to make that judgment. The forms of the tests may follow those in system testing, but at all times they are informed by the business needs. The test procedures that lead to formal 'acceptance' of new or changed systems. User Acceptance Testing is a critical phase of any 'systems' project and requires significant participation by the 'End Users'. To be of real use, an Acceptance Test Plan should be developed in order to plan precisely, and in detail, the means by which 'Acceptance' will be achieved. The final part of the UAT can also include a  HYPERLINK "http://www.yourwindow.to/information-security/gl_parallelrunning.htm" parallel run to prove the system against the current system. Factors influencing Acceptance Testing The User Acceptance Test Plan will vary from system to system but, in general, the testing should be planned in order to provide a realistic and adequate exposure of the system to all reasonably expected events. The testing can be based upon the  HYPERLINK "http://www.yourwindow.to/information-security/gl_userrequirementsspecificationurs.htm" User Requirements Specification to which the system should conform. As in any system though, problems will arise and it is important to have determined what will be the expected and required responses from the various parties concerned; including Users; Project Team; Vendors and possibly Consultants / Contractors. In order to agree what such responses should be, the End Users and the Project Team need to develop and agree a range of 'Severity Levels'. These levels will range from (say) 1 to 6 and will represent the relative severity, in terms of business / commercial impact, of a problem with the system, found during testing. Here is an example which has been used successfully; '1' is the most severe; and '6' has the least impact :- 'Show Stopper' i.e. it is impossible to continue with the testing because of the severity of this error / bug Critical Problem; testing can continue but we cannot go into production (live) with this problem Major Problem; testing can continue but live this feature will cause severe disruption to business processes in live operation Medium Problem; testing can continue and the system is likely to go live with only minimal departure from agreed business processes Minor Problem ; both testing and live operations may progress. This problem should be corrected, but little or no changes to business processes are envisaged 'Cosmetic' Problem e.g. colours; fonts; pitch size However, if such features are key to the business requirements they will warrant a higher severity level. The users of the system, in consultation with the executive sponsor of the project, must then agree upon the responsibilities and required actions for each category of problem. For example, you may demand that any problems in severity level 1, receive priority response and that all testing will cease until such level 1 problems are resolved. Caution. Even where the severity levels and the responses to each have been agreed by all parties; the allocation of a problem into its appropriate severity level can be subjective and open to question. To avoid the risk of lengthy and protracted exchanges over the categorisation of problems; we strongly advised that a range of examples are agreed in advance to ensure that there are no fundamental areas of disagreement; or, or if there are, these will be known in advance and your organisation is forewarned. Finally, it is crucial to agree the Criteria for Acceptance. Because no system is entirely fault free, it must be agreed between End User and vendor, the maximum number of acceptable 'outstandings' in any particular category. Again, prior consideration of this is advisable. N.B. In some cases, users may agree to accept ('sign off') the system subject to a range of conditions. These conditions need to be analysed as they may, perhaps unintentionally, seek additional functionality which could be classified as  HYPERLINK "http://www.yourwindow.to/information-security/gl_scopecreep.htm" scope creep. In any event, any and all fixes from the software developers, must be subjected to rigorous  HYPERLINK "http://www.yourwindow.to/information-security/gl_systemtesting.htm" System Testing and, where appropriate  HYPERLINK "http://www.yourwindow.to/information-security/gl_regressiontesting.htm" Regression Testing. Conclusion Hence the goal of acceptance testing should verify the overall quality, correct operation, scalability, completeness, usability, portability, and robustness of the functional components supplied by the Software system. SYSTEM TESTING Introduction to SYSTEM TESTING For most organizations, software and system testing represents a significant element of a project's cost in terms of money and management time. Making this function more effective can deliver a range of benefits including reductions in risk, development costs and improved 'time to market' for new systems. Systems with software components and software-intensive systems are more and more complex everyday. Industry sectors such as telecom, automotive, railway, and aeronautical and space, are good examples. It is often agreed that testing is essential to manufacture reliable products. However, the validation process does not often receive the required attention. Moreover, the validation process is close to other activities such as conformance, acceptance and qualification testing. The difference between function testing and system testing is that now the focus is on the whole application and its environment. Therefore the program has to be given completely. This does not mean that now single functions of the whole program are tested, because this would be too redundant. The main goal is rather to demonstrate the discrepancies of the product from its requirements and its documentation. In other words, this again includes the question, ``Did we build the right product?'' and not just, ``Did we build the product right?'' However, system testing does not only deal with this more economical problem, it also contains some aspects that are orientated on the word ``system''. This means that those tests should be done in the environment for which the program was designed, like a mulituser network or whetever. Even security guide lines have to be included. Once again, it is beyond doubt that this test cannot be done completely, and nevertheless, while this is one of the most incomplete test methods, it is one of the most important. A number of time-domain software reliability models attempt to predict the growth of a system's reliability during the system test phase of the development life cycle. In this paper we examine the results of applying several types of Poisson-process models to the development of a large system for which system test was performed in two parallel tracks, using different strategies for test data selection. we will test that the functionality of your systems meets with your specifications, integrating with which-ever type of development methodology you are applying. We test for errors that users are likely to make as they interact with the application as well as your applications ability to trap errors gracefully. These techniques can be applied flexibly, whether testing a financial system, e-commerce, an online casino or games testing. System Testing is more than just functional testing, however, and can, when appropriate, also encompass many other types of testing, such as: security load/stress performance browser compatibility localisation Need for System Testing Effective software testing, as a part of software engineering, has been proven over the last 3 decades to deliver real business benefits including: reduction of costsReduce rework and support overheadsincreased productivityMore effort spent on developing new functionality and less on "bug fixing" as quality increasesreduce commercial risksIf it goes wrong, what is the potential impact on your commercial goals? Knowledge is power, so why take a leap of faith while your competition step forward with confidence?These benefits are achieved as a result of some fundamental principles of testing, for example, increased independence naturally increases objectivity. Your test strategy must take into consideration the risks to your organisation, commercial and technical. You will have a personal interest in its success in which case it is only human for your objectivity to be compromised. System Testing Techniques Goal is to evaluate the system as a whole, not its parts Techniques can be structural or functional Techniques can be used in any stage that tests the system as a whole (acceptance, installation, etc.) Techniques not mutually exclusive Structural techniques stress testing - test larger-than-normal capacity in terms of transactions, data, users, speed, etc. execution testing- test performance in terms of speed, precision, etc. recovery testing - test how the system recovers from a disaster, how it handles corrupted data, etc. operations testing - test how the system fits in with existing operations and procedures in the user organization compliance testing - test adherence to standards security testing - test security requirements Functional techniques requirements testing - fundamental form of testing - makes sure the system does what its required to do regression testing - make sure unchanged functionality remains unchanged error-handling testing - test required error-handling functions (usually user error) manual-support testing - test that the system can be used properly - includes user documentation intersystem handling testing - test that the system is compatible with other systems in the environment control testing - test required control mechanisms parallel testing - feed same input into two versions of the system to make sure they produce the same output Unit Testing Goal is to evaluate some piece (file, program, module, component, etc.) in isolation Techniques can be structural or functional In practice, its usually ad-hoc and looks a lot like debugging More structured approaches exist Functional techniques input domain testing - pick test cases representative of the range of allowable input, including high, low, and average values equivalence partitioning - partition the range of allowable input so that the program is expected to behave similarly for all inputs in a given partition, then pick a test case from each partition boundary value - choose test cases with input values at the boundary (both inside and outside) of the allowable range syntax checking - choose test cases that violate the format rules for input special values - design test cases that use input values that represent special situations output domain testing - pick test cases that will produce output at the extremes of the output domain Structural techniques statement testing - ensure the set of test cases exercises every statement at least once branch testing - each branch of an if/then statement is exercised conditional testing - each truth statement is exercised both true and false expression testing - every part of every expression is exercised path testing - every path is exercised (impossible in practice) Error-based techniques basic idea is that if you know something about the nature of the defects in the code, you can estimate whether or not youve found all of them or not fault seeding - put a certain number of known faults into the code, then test until they are all found mutation testing - create mutants of the program by making single changes, then run test cases until all mutants have been killed historical test data - an organization keeps records of the average numbers of defects in the products it produces, then tests a new product until the number of defects found approaches the expected number Conclusion: Hence the system Test phase should begin once modules are integrated enough to perform tests in a whole system environment. System testing can occur in parallel with integration test, especially with the top-down method. Unit Testing Introduction to Unit Testing Unit testing. Isn't that some annoying requirement that we're going to ignore? Many developers get very nervous when you mention unit tests.Usually this is a vision of a grand table with every single method listed, along with the expected results and pass/fail date. It's important, but not relevant in most programming projects. The unit test will motivate the code that you write. In a sense, it is a little design document that says, "What will this bit of code do?" Or, in the language of object oriented programming, "What will these clusters of objects do?" The crucial issue in constructing a unit test is scope. If the scope is too narrow, then the tests will be trivial and the objects might pass the tests, but there will be no design of their interactions. Certainly, interactions of objects are the crux of any object oriented design. Likewise, if the scope is too broad, then there is a high chance that not every component of the new code will get tested. The programmer is then reduced to testing-by-poking-around, which is not an effective test strategy. Need for Unit Test How do you know that a method doesn't need a unit test? First, can it be tested by inspection? If the code is simple enough that the developer can just look at it and verify its correctness then it is simple enough to not require a unit test. The developer should know when this is the case. Unit tests will most likely be defined at the method level, so the art is to define the unit test on the methods that cannot be checked by inspection. Usually this is the case when the method involves a cluster of objects. Unit tests that isolate clusters of objects for testing are doubly useful, because they test for failures, and they also identify those segments of code that are related. People who revisit the code will use the unit tests to discover which objects are related, or which objects form a cluster. Hence: Unit tests isolate clusters of objects for future developers. Another good litmus test is to look at the code and see if it throws an error or catches an error. If error handling is performed in a method, then that method can break. Generally, any method that can break is a good candidate for having a unit test, because it may break at some time, and then the unit test will be there to help you fix it. The danger of not implementing a unit test on every method is that the coverage may be incomplete. Just because we don't test every method explicitly doesn't mean that methods can get away with not being tested. The programmer should know that their unit testing is complete when the unit tests cover at the very least the functional requirements of all the code. The careful programmer will know that their unit testing is complete when they have verified that their unit tests cover every cluster of objects that form their application. Life Cycle Approach to Testing Testing will occur throughout the project lifecycle i.e., from Requirements till User Acceptance Testing.The main Objective to Unit Testing are as follows : To execute a program with the intent of finding an error.; To uncover an as-yet undiscovered error ; and Prepare a test case with a high probability of finding an as-yet undiscovered error. Levels of Unit Testing UNIT 100% code coverage INTEGRATION SYSTEM ACCEPTANCE MAINTENANCE AND REGRESSION Concepts in Unit Testing: The most 'micro' scale of testing; To test particular functions or code modules. Typically done by the programmer and not by testers. As it requires detailed knowledge of the internal program design and code. Not always easily done unless the application has a well-designed architecture with tight code; Unit Testing Flow:  interface local data structures boundary conditions independent paths error handling paths   Types of Errors detected The following are the Types of errors that may be caught Error in Data Structures Performance Errors Logic Errors Validity of alternate and exception flows Identified at analysis/design stages Unit Testing Black Box Approach Field Level Check Field Level Validation User Interface Check Functional Level Check Unit Testing White Box Approach STATEMENT COVERAGE DECISION COVERAGE CONDITION COVERAGE MULTIPLE CONDITION COVERAGE (nested conditions) CONDITION/DECISION COVERAGE PATH COVERAGE Unit Testing FIELD LEVEL CHECKS Null / Not Null Checks Uniqueness Checks Length Checks Date Field Checks Numeric Checks Negative Checks Unit Testing Field Level Validations Test all Validations for an Input field Date Range Checks (From Date/To Dates) Date Check Validation with System date Unit Testing User Interface Checks Readability of the Controls Tool Tips Validation Ease of Use of Interface Across Tab related Checks User Interface Dialog GUI compliance checks Unit Testing - Functionality Checks " Screen Functionalities " Field Dependencies " Auto Generation " Algorithms and Computations " Normal and Abnormal terminations " Specific Business Rules if any.. Unit Testing - OTHER MEASURES FUNCTION COVERAGE LOOP COVERAGE RACE COVERAGE Execution of Unit Tests Design a test case for every statement to be executed. Select the unique set of test cases. This measure reports whether each executable statement is encountered. Also known as: line coverage, segment coverage and basic block coverage. Basic block coverage is the same as statement coverage except the unit of code measured is each sequence of non-branching statements. Example of Unit Testing: int invoice (int x, int y) { int d1, d2, s; if (x<=30) d2=100; else d2=90; s=5*x + 10 *y; if (s<200) d1=100; else if (s<1000) d1 = 95; else d1 = 80; return (s*d1*d2/10000); } Unit Testing Flow :  EMBED PBrush   EMBED PBrush   EMBED PBrush  Advantage of Unit Testing Can be applied directly to object code and does not require processing source code. Performance profilers commonly implement this measure. DISADVANTAGE of Unit Testing Insensitive to some control structures (number of iterations) Does not report whether loops reach their termination condition Statement coverage is completely insensitive to the logical operators (|| and &&). Method for Statement Coverage -Design a test-case for the pass/failure of every decision point -Select unique set of test cases This measure reports whether Boolean expressions tested in control structures (such as the if-statement and while-statement) evaluated to both true and false. The entire Boolean expression is considered one true-or-false predicate regardless of whether it contains logical-and or logical-or operators. Additionally, this measure includes coverage of switch-statement cases, exception handlers, and interrupt handlers Also known as: branch coverage, all-edges coverage, basis path coverage, decision-decision-path testing "Basis path" testing selects paths that achieve decision coverage. ADVANTAGE: Simplicity without the problems of statement coverage DISADVANTAGE This measure ignores branches within boolean expressions which occur due to short-circuit operators. Method for Condition Coverage: -Test if every condition (sub-expression) in decision for true/false -Select unique set of test cases. Reports the true or false outcome of each Boolean sub-expression, separated by logical-and and logical-or if they occur. Condition coverage measures the sub-expressions independently of each other. Reports whether every possible combination of boolean sub-expressions occurs. As with condition coverage, the sub-expressions are separated by logical-and and logical-or, when present. The test cases required for full multiple condition coverage of a condition are given by the logical operator truth table for the condition. DISADVANTAGE: Tedious to determine the minimum set of test cases required, especially for very complex Boolean expressions Number of test cases required could vary substantially among conditions that have similar complexity Condition/Decision Coverage is a hybrid measure composed by the union of condition coverage and decision coverage. It has the advantage of simplicity but without the shortcomings of its component measures This measure reports whether each of the possible paths in each function have been followed. A path is a unique sequence of branches from the function entry to the exit. Also known as predicate coverage. Predicate coverage views paths as possible combinations of logical conditions Path coverage has the advantage of requiring very thorough testing FUNCTION COVERAGE: This measure reports whether you invoked each function or procedure. It is useful during preliminary testing to assure at least some coverage in all areas of the software. Broad, shallow testing finds gross deficiencies in a test suite quickly. LOOP COVERAGE This measure reports whether you executed each loop body zero times, exactly once, twice and more than twice (consecutively). For do-while loops, loop coverage reports whether you executed the body exactly once, and more than once. The valuable aspect of this measure is determining whether while-loops and for-loops execute more than once, information not reported by others measure. RACE COVERAGE This measure reports whether multiple threads execute the same code at the same time. Helps detect failure to synchronize access to resources. Useful for testing multi-threaded programs such as in an operating system. Conclusion Testing irrespective of the phases of testing should encompass the following : Cost of Failure associated with defective products getting shipped and used by customer is enormous To find out whether the integrated product work as per the customer requirements To evaluate the product with an independent perspective To identify as many defects as possible before the customer finds To reduce the risk of releasing the product Test Strategy Introduction This Document entails you towards the better insight of the Test Strategy and its methodology. It is the role of test management to ensure that new or modified service products meet the business requirements for which they have been developed or enhanced. The Testing strategy should define the objectives of all test stages and the techniques that apply. The testing strategy also forms the basis for the creation of a standardized documentation set, and facilitates communication of the test process and its implications outside of the test discipline. Any test support tools introduced should be aligned with, and in support of, the test strategy. Test Approach/Test Architecture are the acronyms for Test Strategy. Test management is also concerned with both test resource and test environment management. Key elements of Test Management: Test organization the set-up and management of a suitable test organizational structure and explicit role definition. The project framework under which the testing activities will be carried out is reviewed, high level test phase plans prepared and resource schedules considered. Test organization also involves the determination of configuration standards and the definition of the test environment. Test planning the requirements definition and design specifications facilitate in the identification of major test items and these may necessitate the test strategy to be updated. A detailed test plan and schedule is prepared with key test responsibilities being indicated. Test specifications required for all levels of testing and covering all categories of test. The required outcome of each test must be known before the test is attempted. Unit, integration and system testing configuration items are verified against the appropriate specifications and in accordance with the test plan. The test environment should also be under configuration control and test data and results stored for future evaluation. Test monitoring and assessment ongoing monitoring and assessment of the integrity of the development and construction. The status of the configuration items should be reviewed against the phase plans and test progress reports prepared providing some assurance of the verification and validation activities. Product assurance the decision to negotiate the acceptance testing program and the release and commissioning of the service product is subject to the product assurance role being satisfied with the outcome of the verification activities. Product assurance may oversee some of the test activity and may participate in process reviews. A common criticism of construction programmers is that insufficient time is frequently allocated to the testing and commissioning of the building systems together with the involvement and subsequent training of the Facilities Management team. Testing and commissioning is often considered by teams as a secondary activity and given a lower priority particularly as pressure builds on the program towards completion. Sufficient time must be dedicated to testing and commissioning as ensuring the systems function correctly is fairly fundamental to the projects success or failure. Traditionally the responsibility for testing and commissioning is buried deep within the supply chain as a sub-contract of a sub-contract. It is possible to gain greater control of this process and the associated risk through the use of specialists such as Systems Integration who can be appointed as part of the professional team. The time necessary for testing and commissioning will vary from project to project depending upon the complexity of the systems and services that have been installed. The Project Sponsor should ensure that the professional team and the contractor consider realistically how much time is needed. Fitness for purpose checklist: Is there a documented testing strategy that defines the objectives of all test stages and the techniques that may apply, e.g. non-functional testing and the associated techniques such as performance, stress and security etc? Does the test plan prescribe the approach to be taken for intended test activities, identifying: the items to be tested, the testing to be performed, test schedules, resource and facility requirements, reporting requirements, evaluation criteria, risks requiring contingency measures? Are test processes and practices reviewed regularly to assure that the testing processes continue to meet specific business needs? For example, e-commerce testing may involve new user interfaces and a business focus on usability may mean that the organization must review its testing strategies. Test Strategy Flow : Test Cases and Test Procedures should manifest Test Strategy.  Test Strategy Selection Selection of the Test Strategy is based on the following factors Product Test Strategy based on the Application to help people and teams of people in making decisions. Based on the Key Potential Risks Suggestion of Wrong Ideas. People will use the Product Incorrectly Incorrect comparison of scenarios. Scenarios may be corrupted. Unable to handle Complex Decisions. Determination of Actual Risk. Understand the underlying Algorithm. Simulate the Algorithm in parallel. Capability test each major function. Generate large number of decision scenarios. Create complex scenarios and compare them. Review Documentation and Help. Test for sensitivity to user Error. Test Strategy Execution: Understand the decision Algorithm and generate the parallel decision analyzer using the Perl or Excel that will function as a reference for high volume testing of the app. Create a means to generate and apply large numbers of decision scenarios to the product. This will be done using the GUI test Automation system or through the direct generation of Decide Right scenario files that would be loaded into the product during test. Review the Documentation, and the design of the user interface and functionality for its sensitivity to user error. Test with decision scenarios that are near the limit of complexity allowed by the product Compare complex scenarios. Test the product for the risk of silent failures or corruptions in decision analysis. Issues in Execution of the Test Strategy The difficulty of understanding and simulating the decision algorithm The risk of coincidal failure of both the simulation and the product. The difficulty of automating decision tests General Testing Strategies Top-down Bottom-up Thread testing Stress testing Back-to-back testing Need for Test Strategy The objective of testing is to reduce the risks inherent in computer systems. The strategy must address the risks and present a process that can reduce those risks. The system concerns on risks then establish the objectives for the test process. The two components of the testing strategy are the Test Factors and the Test Phase.   Test Factor The risk or issue that needs to be addressed as part of the test strategy. The strategy will select those factors that need to be addressed in the testing of a specific application system. Test Phase The Phase of the systems development life cycle in which testing will occur. Not all the test factors will be applicable to all software systems. The development team will need to select and rank the test factors for the specific software systems being developed. The test phase will vary based on the testing methodology used. For example the test phases in as traditional waterfall life cycle methodology will be much different from the phases in a Rapid Application Development methodology. Developing a Test Strategy The test Strategy will need to be customized for any specific software system. The applicable test factors would be listed as the phases in which the testing must occur. Four test steps must be followed to develop a customized test strategy. Select and rank Test Factors Identify the System Developmental Phases Identify the Business risks associated with the System under Development. Place risks in the Matrix TestFactors\Test PhaseRequirementsDesignBuildDynamic TestIntegrateMaintain Conclusion: Test Strategy should be developed in accordance with the business risks associated with the software when the test team develop the test tactics. Thus the Test team needs to acquire and study the test strategy that should question the following: What is the relationship of importance among the test factors? Which of the high level risks are the most significant? What damage can be done to the business if the software fails to perform correctly? What damage can be done to the business if the business if the software is not completed on time? Who are the individuals most knowledgeable in understanding the impact of the identified business risks? Hence the Test Strategy must address the risks and present a process that can reduce those risks. The system accordingly focuses on risks thereby establishes the objectives for the test process. TEST PLAN What is a Test Plan? A Test Plan can be defined as a document that describes the scope, approach, resources and schedule of intended test activities. It identifies test items, the features to be tested, the testing tasks, who will do each task, and any risks requiring contingency planning. The main purpose of preparing a Test Plan is that everyone concerned with the project are in sync with regards to the scope, responsibilities, deadlines and deliverables for the project. It is in this respect that reviews and a sign-off are very important since it means that everyone is in agreement of the contents of the test plan and this also helps in case of any dispute during the course of the project (especially between the developers and the testers). Purpose of preparing a Test Plan A Test Plan is a useful way to think through the efforts needed to validate the acceptability of a software product. The completed document will help people outside the test group understand the 'why' and 'how' of product validation. It should be thorough enough to be useful but not so thorough that no one outside the test group will read it. Contents of a Test Plan Purpose Scope Test Approach Entry Criteria Resources Tasks / Responsibilities Exit Criteria Schedules / Milestones Hardware / Software Requirements Risks & Mitigation Plans Tools to be used Deliverables References Procedures Templates Standards/Guidelines Annexure Sign-Off Contents (in detail) Purpose This section should contain the purpose of preparing the test plan Scope This section should talk about the areas of the application which are to be tested by the QA team and specify those areas which are definitely out of scope (screens, database, mainframe processes etc). Test Approach This would contain details on how the testing is to be performed and whether any specific strategy is to be followed (including configuration management). Entry Criteria This section explains the various steps to be performed before the start of a test (i.e.) pre-requisites. For example: Timely environment set up, starting the web server / app server, successful implementation of the latest build etc. Resources This section should list out the people who would be involved in the project and their designation etc. Tasks / Responsibilities This section talks about the tasks to be performed and the responsibilities assigned to the various members in the project. Exit criteria Contains tasks like bringing down the system / server, restoring system to pre-test environment, database refresh etc. Schedules / Milestones This sections deals with the final delivery date and the various milestone dates to be met in the course of the project. Hardware / Software Requirements This section would contain the details of PCs / servers required (with the configuration) to install the application or perform the testing; specific software that needs to be installed on the systems to get the application running or to connect to the database; connectivity related issues etc. Risks & Mitigation Plans This section should list out all the possible risks that can arise during the testing and the mitigation plans that the QA team plans to implement incase the risk actually turns into a reality. Tools to be used This would list out the testing tools or utilities (if any) that are to be used in the project (e.g.) WinRunner, Test Director, PCOM, WinSQL. Deliverables This section contains the various deliverables that are due to the client at various points of time (i.e.) daily, weekly, start of the project, end of the project etc. These could include Test Plans, Test Procedure, Test Matrices, Status Reports, Test Scripts etc. Templates for all these could also be attached. References Procedures Templates (Client Specific or otherwise) Standards / Guidelines (e.g.) QView Project related documents (RSD, ADD, FSD etc) Annexure This could contain embedded documents or links to documents which have been / will be used in the course of testing (e.g.) templates used for reports, test cases etc. Referenced documents can also be attached here. Sign-Off This should contain the mutual agreement between the client and the QA team with both leads / managers signing off their agreement on the Test Plan. Test Data Preparation - Introduction A System is programmed by its data. Functional testing can suffer if data is poor, and good data can help improve functional testing. Good test data can be structured to improve understanding and testability. Its contents, correctly chosen, can reduce maintenance effort and allow flexibility. Preparation of the data can help to focus the business where requirements are vague. The first stage of any recogniser development project is data preparation. Test data should however, be prepared which is representative of normal business transactions. Actual customer names or contact details should also not be used for such tests. It is recommended that a full test environment be set up for use in the applicable circumstances. Each separate test should be given a unique reference number which will identify the Business Process being recorded, the simulated conditions used, the persons involved in the testing process and the date the test was carried out. This will enable the monitoring and testing reports to be co-coordinated with any feedback received. Tests must be planned and thought out a head of time; you have to decide such things as what exactly you are testing and testing for, the way the test is going to be run and applied, what steps are required, etc. Testing is the process of creating, implementing and evaluating tests. Effective quality control testing requires some basic goals and understanding: You must understand what you are testing; if you're testing a specific functionality, you must know how it's supposed to work, how the protocols behave, etc. You should have a definition of what success and failure are. In other words, is close enough good enough? You should have a good idea of a methodology for the test, the more formal a plan the better; you should design test cases. You must understand the limits inherent in the tests themselves. You must have a consistent schedule for testing; performing a specific set of tests at appropriate points in the process is more important than running the tests at a specific time. Roles of Data in Functional Testing Testing consumes and produces large amounts of data. Data describes the initial conditions for a test, forms the input, is the medium through which the tester influences the software. Data is manipulated, extrapolated, summarized and referenced by the functionality under test, which finally spews forth yet more data to be checked against expectations. Data is a crucial part of most functional testing. This paper sets out to illustrate some of the ways that data can influence the test process, and will show that testing can be improved by a careful choice of input data. In doing this, the paper will concentrate most on data-heavy applications; those which use databases or are heavily influenced by the data they hold. The paper will focus on input data, rather than output data or the transitional states the data passes through during processing, as input data has the greatest influence on functional testing and is the simplest to manipulate. The paper will not consider areas where data is important to non-functional testing, such as operational profiles, massive datasets and environmental tuning. A SYSTEM IS PROGRAMMED BY ITS DATA Many modern systems allow tremendous flexibility in the way their basic functionality can be used. Configuration data can dictate control flow, data manipulation, presentation and user interface. A system can be configured to fit several business models, work (almost) seamlessly with a variety of cooperative systems and provide tailored experiences to a host of different users. A business may look to an application's configurability to allow them to keep up with the market without being slowed by the development process, an individual may look for a personalized experience from commonly-available software. FUNCTIONAL TESTING SUFFERS IF DATA IS POOR Tests with poor data may not describe the business model effectively, they may be hard to maintain, or require lengthy and difficult setup. They may obscure problems or avoid them altogether. Poor data tends to result in poor tests, that take longer to execute. GOOD DATA IS VITAL TO RELIABLE TEST RESULTS An important goal of functional testing is to allow the test to be repeated with the same result, and varied to allow diagnosis. Without this, it is hard to communicate problems to coders, and it can become difficult to have confidence in the QA team's results, whether they are good or bad. Good data allows diagnosis, effective reporting, and allows tests to be repeated with confidence,. GOOD DATA CAN HELP TESTING STAY ON SCHEDULE An easily comprehensible and well-understood dataset is a tool to help communication. Good data can greatly assist in speedy diagnosis and rapid re-testing. Regression testing and automated test maintenance can be made speedier and easier by using good data, while an elegantly-chosen dataset can often allow new tests without the overhead of new data. A formal test plan is a document that provides and records important information about a test project, for example: project and quality assumptions project background information resources schedule & timeline entry and exit criteria test milestones tests to be performed use cases and/or test cases Criteria for Test Data Collection This section of the Document specifies the description of the test data needed to test recovery of each business process. Identify Who is to Conduct the Tests In order to ensure consistency of the testing process throughout the organization, one or more members of the Business Continuity Planning (BCP) Team should be nominated to co-ordinate the testing process within each business unit, a nominated testing and across the organization. Each business process should be thoroughly tested and the coordinator should ensure that each business unit observes the necessary rules associated with ensuring that the testing process is carried out within a realistic environment. This section of the BCP should contain the names of the BCP Team members nominated to co-ordinate the testing process. It should also list the duties of the appointed co-ordinators. Identify Who is to Control and Monitor the Tests In order to ensure consistency when measuring the results, the tests should be independently monitored. This task would normally be carried out by a nominated member of the Business Recovery Team or a member of the Business Continuity Planning Team. This section of the BCP will contain the names of the persons nominated to monitor the testing process throughout the organization. It will also contain a list of the duties to be undertaken by the monitoring staff. Prepare Feedback Questionnaires It is vital to receive feedback from the persons managing and participating in each of the tests. This feedback will hopefully enable weaknesses within the Business Recovery Process to be identified and eliminated. Completion of feedback forms should be mandatory for all persons participating in the testing process. The forms should be completed either during the tests (to record a specific issue) or as soon after finishing as practical. This will enable observations and comments to be recorded whilst the event is still fresh in the persons mind. This section of the BCP should contain a template for a Feedback Questionnaire. Prepare Budget for Testing Phase Each phase of the BCP process which incurs a cost requires that a budget be prepared and approved. The 'Preparing for a Possible Emergency' Phase of the BCP process will involve the identification and implementation of strategies for back up and recovery of data files or a part of a business process. It is inevitable that these back up and recovery processes will involve additional costs. Critical parts of the business process such as the IT systems, may require particularly expensive back up strategies to be implemented. Where the costs are significant they should be approved separately with a specific detailed budget for the establishment costs and the ongoing maintenance costs. This section of the BCP will contain a list of the testing phase activities and a cost for each. It should be noted whenever part of the costs is already incorporated with the organizations overall budgeting process. Training Core Testing Team for each Business Unit In order for the testing process to proceed smoothly, it is necessary for the core testing team to be trained in the emergency procedures. This is probably best handled in a workshop environment and should be presented by the persons responsible for developing the emergency procedures. This section of the BCP should contain a list of the core testing team for each of the business units who will be responsible for coordinating and undertaking the Business Recovery Testing process. It is important that clear instructions are given to the Core Testing Team regarding the simulated conditions which have to be observed. Conducting the Tests The tests must be carried out under authentic conditions and all participants must take the process seriously. It is important that all persons who are likely to be involved with recovering a particular business process in the event of an emergency should participate in the testing process. It should be mandatory for the management of a business unit to be present when that unit is involved with conducting the tests. Test each part of the Business Recovery Process In so far as it is practical, each critical part of the business recovery process should be fully tested. Every part of the procedures included as part of the recovery process is to be tested to ensure validity and relevance. This section of the BCP is to contain a list of each business process with a test schedule and information on the simulated conditions being used. The testing co-ordination and monitoring will endeavor to ensure that the simulated environments are maintained throughout the testing process, in a realistic manner. Test Accuracy of Employee and Vendor Emergency Contact Numbers During the testing process the accuracy of employee and vendor emergency contact information is to be re-confirmed. All contact numbers are to be validated for all involved employees. This is particularly important for management and key employees who are critical to the success of the recovery process. This activity will usually be handled by the HRM Department or Division. Where, in the event of an emergency occurring outside of normal business hours, a large number of persons are to be contacted, a hierarchical process could be used whereby one person contacts five others. This process must have safety features incorporated to ensure that if one person is not contactable for any reason then this is notified to a nominated controller. This will enable alternative contact routes to be used. Assess Test Results Prepare a full assessment of the test results for each business process. The following questions may be appropriate: Were objectives of the Business Recovery Process and the testing process met - if not, provide further comment Were simulated conditions reasonably "authentic" - if not, provide further comment Was test data representative - if not, provide further comment Did the tests proceed without any problems - if not, provide further comment What were the main comments received in the feedback questionnaires Each test should be assessed as either fully satisfactory, adequate or requiring further testing. Training Staff in the Business Recovery Process All staff should be trained in the business recovery process. This is particularly important when the procedures are significantly different from those pertaining to normal operations. This training may be integrated with the training phase or handled separately. The training should be carefully planned and delivered on a structured basis. The training should be assessed to verify that it has achieved its objectives and is relevant for the procedures involved. Training may be delivered either using in-house resources or external resources depending upon available skills and related costs. Managing the Training Process For the BCP training phase to be successful it has to be both well managed and structured. It will be necessary to identify the objective and scope for the training, what specific training is required, who needs it and a budget prepared for the additional costs associated with this phase. Develop Objectives and Scope of Training The objectives and scope of the BCP training activities are to be clearly stated within the plan. The BCP should contain a description of the objectives and scope of the training phase. This will enable the training to be consistent and organized in a manner where the results can be measured, and the training fine tuned, as appropriate. The objectives for the training could be as follows : "To train all staff in the particular procedures to be followed during the business recovery process". The scope of the training could be along the following lines : "The training is to be carried out in a comprehensive and exhaustive manner so that staff become familiar with all aspects of the recovery process. The training will cover all aspects of the Business Recovery activities section of the BCP including IT systems recovery". Consideration should also be given to the development of a comprehensive corporate awareness program for communicating the procedures for the business recovery process. Training Needs Assessment The plan must specify which person or group of persons requires which type of training. It is necessary for all new or revised processes to be explained carefully to the staff. For example it may be necessary to carry out some process manually if the IT system is down for any length of time. These manual procedures must be fully understood by the persons who are required to carry them out. For larger organizations it may be practical to carry out the training in a classroom environment, however, for smaller organizations the training may be better handled in a workshop style. This section of the BCP will identify for each business process what type of training is required and which persons or group of persons need to be trained. Training Materials Development Schedule Once the training needs have been identified it is necessary to specify and develop suitable training materials. This can be a time consuming task and unless priorities are given to critical training programmes, it could delay the organization in reaching an adequate level of preparedness. This section of the BCP contains information on each of the training programmes with details of the training materials to be developed, an estimate of resources and an estimate of the completion date. Prepare Training Schedule Once it has been agreed who requires training and the training materials have been prepared a detailed training schedule should be drawn up. This section of the BCP contains the overview of the training schedule and the groups of persons receiving the training. Communication to Staff Once the training is arranged to be delivered to the employees, it is necessary to advise them about the training programmes they are scheduled to attend. This section of the BCP contains a draft communication to be sent to each member of staff to advise them about their training schedule. The communication should provide for feedback from the staff member where the training dates given are inconvenient. A separate communication should be sent to the managers of the business units advising them of the proposed training schedule to be attended by their staff. Each member of staff will be given information on their role and responsibilities applicable in the event of an emergency. Prepare Budget for Training Phase Each phase of the BCP process which incurs a cost requires that a budget be prepared and approved. Depending upon the cross charging system employed by the organization, the training costs will vary greatly. However, it has to be recognized that, however well justified, training incurs additional costs and these should be approved by the appropriate authority within the organization. This section of the BCP will contain a list of the training phase activities and a cost for each. It should be noted whenever part of the costs is already incorporated with the organizations overall budgeting process. Assessing the Training The individual BCP training programmes and the overall BCP training process should be assessed to ensure its effectiveness and applicability. This information will be gathered from the trainers and also the trainees through the completion of feedback questionnaires. Feedback Questionnaires Assess Feedback Feedback Questionnaires It is vital to receive feedback from the persons managing and participating in each of the training programmes. This feedback will enable weaknesses within the Business Recovery Process, or the training, to be identified and eliminated. Completion of feedback forms should be mandatory for all persons participating in the training process. The forms should be completed either during the training (to record a specific issue) or as soon after finishing as practical. This will enable observations and comments to be recorded whilst the event is still fresh in the persons mind. This section of the BCP should contain a template for a Feedback Questionnaire for the training phase. Assess Feedback The completed questionnaires from the trainees plus the feedback from the trainers should be assessed. Identified weaknesses should be notified to the BCP Team Leader and the process strengthened accordingly. The key issues raised by the trainees should be noted and consideration given to whether the findings are critical to the process or not. If there are a significant number of negative issues raised then consideration should be given to possible re-training once the training materials, or the process, have been improved. This section of the BCP will contain a format for assessing the training feedback. Keeping the Plan Up-to-date Changes to most organizations occur all the time. Products and services change and also their method of delivery. The increase in technological based processes over the past ten years, and particularly within the last five, have significantly increased the level of dependency upon the availability of systems and information for the business to function effectively. These changes are likely to continue and probably the only certainty is that the pace of change will continue to increase. It is necessary for the BCP to keep pace with these changes in order for it to be of use in the event of a disruptive emergency. This chapter deals with updating the plan and the managed process which should be applied to this updating activity. Maintaining the BCP It is necessary for the BCP updating process to be properly structured and controlled. Whenever changes are made to the BCP they are to be fully tested and appropriate amendments should be made to the training materials. This will involve the use of formalized change control procedures under the control of the BCP Team Leader. Change Controls for Updating the Plan It is recommended that formal change controls are implemented to cover any changes required to the BCP. This is necessary due to the level of complexity contained within the BCP. A Change request Form / Change Order form is to be prepared and approved in respect of each proposed change to the BCP. This section of the BCP will contain a Change Request Form / Change Order to be used for all such changes to the BCP. Responsibilities for Maintenance of Each Part of the Plan Each part of the plan will be allocated to a member of the BCP Team or a Senior Manager with the organization who will be charged with responsibility for updating and maintaining the plan. The BCP Team Leader will remain in overall control of the BCP but business unit heads will need to keep their own sections of the BCP up to date at all times. Similarly, HRM Department will be responsible to ensure that all emergency contact numbers for staff are kept up to date. It is important that the relevant BCP coordinator and the Business Recovery Team are kept fully informed regarding any approved changes to the plan. Test All Changes to Plan The BCP Team will nominate one or more persons who will be responsible for co-ordinating all the testing processes and for ensuring that all changes to the plan are properly tested. Whenever changes are made or proposed to the BCP, the BCP Testing Co-ordinator will be notified. The BCP Testing Co-ordinator will then be responsible for notifying all affected units and for arranging for any further testing activities. This section of the BCP contains a draft communication from the BCP Co-ordinator to affected business units and contains information about the changes which require testing or re-testing. Advise Person Responsible for BCP Training A member of the BCP Team will be given responsibility for co-ordinating all training activities (BCP Training Co-ordinator). The BCP Team Leader will notify the BCP Training Co-ordinator of all approved changes to the BCP in order that the training materials can be updated. An assessment should be made on whether the change necessitates any re-training activities. Advise Person Responsible for BCP Training A member of the BCP Team will be given responsibility for co-ordinating all training activities (BCP Training Co-ordinator). The BCP Team Leader will notify the BCP Training Co-ordinator of all approved changes to the BCP in order that the training materials can be updated. An assessment should be made on whether the change necessitates any re-training activities. Problems which can be caused by Poor Test Data Most testers are familiar with the problems that can be caused by poor data. The following list details the most common problems familiar to the author. Most projects experience these problems at some stage - recognizing them early can allow their effects to be mitigated. Unreliable test results. Running the same test twice produces inconsistent results. This can be a symptom of an uncontrolled environment, unrecognized database corruption, or of a failure to recognize all the data that is influential on the system. Degradation of test data over time. Program faults can introduce inconsistency or corruption into a database. If not spotted at the time of generation, they can cause hard-to-diagnose failures that may be apparently unrelated to the original fault. Restoring the data to a clean set gets rid of the symptom, but the original fault is undiagnosed and can carry on into live operation and perhaps future releases. Furthermore, as the data is restored, evidence of the fault is lost. Increased test maintenance cost If each test has its own data, the cost of test maintenance is correspondingly increased. If that data is itself hard to understand or manipulate, the cost increases further. Reduced flexibility in test execution If datasets are large or hard to set up, some tests may be excluded from a test run. If the datasets are poorly constructed, it may not be time-effective to construct further data to support investigatory tests. Obscure results and bug reports Without clearly comprehensible data, testers stand a greater chance of missing important diagnostic features of a failure, or indeed of missing the failure entirely. Most reports make reference to the input data and the actual and expected results. Poor data can make these reports hard to understand. Larger proportion of problems can be traced to poor data A proportion of all failures logged will be found, after further analysis, not to be faults at all. Data can play a significant role in these failures. Poor data will cause more of these problems. Less time spent hunting bugs The more time spent doing unproductive testing or ineffective test maintenance, the less time spent testing. Confusion between developers, testers and business Each of these groups has different data requirements. A failure to understand each others data can lead to ongoing confusion. Requirements problems can be hidden in inadequate data It is important to consider inputs and outputs of a process for requirements modeling. Inadequate data can lead to ambiguous or incomplete requirements. Simpler to make test mistakes Everybody makes mistakes. Confusing or over-large datasets can make data selection mistakes more common. Unwieldy volumes of data Small datasets can be manipulated more easily than large datasets. A few datasets are easier to manage than many datasets. Business data not representatively tested Test requirements, particularly in configuration data, often don't reflect the way the system will be used in practice. While this may arguably lead to broad testing for a variety of purposes, it can be hard for the business or the end users to feel confidence in the test effort if they feel distanced from it. Inability to spot data corruption caused by bugs A few well-known datasets can be more easily be checked than a large number of complex datasets, and may lend themselves to automated testing / sanity checks. A readily understandable dataset can allow straightforward diagnosis; a complex dataset will positively hinder diagnosis. Poor database/environment integrity If a large number of testers, or tests, share the same dataset, they can influence and corrupt each others results as they change the data in the system. This can not only cause false results, but can lead to database integrity problems and data corruption. This can make portions of the application untestable for many testers simultaneously. Classification of Test Data Types In the process of testing a system, many references are made to "The Data" or "Data Problems". Although it is perhaps simpler to discuss data in these terms, it is useful to be able to classify the data according to the way it is used. The following broad categories allow data to be handled and discussed more easily. Environmental data Environmental data tells the system about its technical environment. It includes communications addresses, directory trees and paths and environmental variables. The current date and time can be seen as environmental data. Setup data Setup data tells the system about the business rules. It might include a cross reference between country and delivery cost or method, or methods of debt collection from different kinds of customers. Typically, setup data causes different functionality to apply to otherwise similar data. With an effective approach to setup data, business can offer new intangible products without developing new functionality - as can be seen in the mobile phone industry, where new billing products are supported and indeed created by additions to the setup data. Input data Input data is the information input by day-to-day system functions. Accounts, products, orders, actions, documents can all be input data. For the purposes of testing, it is useful to split the categorization once more: FIXED INPUT DATA Fixed input data is available before the start of the test, and can be seen as part of the test conditions. CONSUMABLE INPUT DATA Consumable input data forms the test input It can also be helpful to qualify data after the system has started to use it; Transitional data Transitional data is data that exists only within the program, during processing of input data. Transitional data is not seen outside the system (arguably, test handles and instrumentation make it output data), but its state can be inferred from actions that the system has taken. Typically held in internal system variables, it is temporary and is lost at the end of processing. Output data Output data is all the data that a system outputs as a result of processing input data and events. It generally has a correspondence with the input data (cf. Jackson's Structured Programming methodology), and includes not only files, transmissions, reports and database updates, but can also include test measurements. A subset of the output data is generally compared with the expected results at the end of test execution. As such, it does not directly influence the quality of the tests. Organizing the data A key part of any approach to data is the way the data is organized; the way it is chosen and described, influenced by the uses that are planned for it. A good approach increases data reliability, reduces data maintenance time and can help improve the test process. Good data assists testing, rather than hinders it. Permutations Most testers are familiar with the concept of permutation; generating tests so that all possible permutations of inputs are tested. Most are also familiar with the ways in which this generally vast set can be cut down. Pair wise, or combinatorial testing addresses this problem by generating a set of tests that allow all possible pairs of combinations to be tested. Typically, for non-trivial sets, this produces a far smaller set of tests than the brute-force approach for all permutations, The same techniques can be applied to test data; the test data can contain all possible pairs of permutations in a far smaller set than that which contains all possible permutations. This allows a small, easy to handle dataset - which also allows a wide range of tests. This small, and easy to manipulate dataset is capable of supporting many tests. It allows complete pairwise coverage, and so is comprehensive enough to allow a great many new, ad-hoc, or diagnostic tests. Database changes will affect it, but the data maintenance required will be greatly lessened by the small size of the dataset and the amount of reuse it allows. Finally, this method of working with fixed input data can help greatly in testing the setup data. This method is most appropriate when used, as above, on fixed input data. It is most effective when the following conditions are satisfied. Fortunately, these criteria apply to many traditional database-based systems: Fixed input data consists of many rows Fields are independent You want to do many tests without loading / you do not load fixed input data for each test. To sum up, permutation helps because: Permutation is familiar from test planning. Achieves good test coverage without having to construct massive datasets Can perform investigative testing without having to set up more data Reduces the impact of functional/database changes Can be used to test other data - particularly setup data Partitioning Partitions allow data access to be controlled, reducing uncontrolled changes in the data. Partitions can be used independently; data use in one area will have no effect on the results of tests in another. Data can be safely and effectively partitioned by machine / database / application instance, although this partitioning can introduce configuration management problems in software version, machine setup, environmental data and data load/reload. A useful and basic way to start with partitions is to set up, not a single environment for each test or tester, but to set up three shared by many users, so allowing different kinds of data use. These three have the following characteristics: Safe area Used for enquiry tests, usability tests etc. No test changes the data, so the area can be trusted. Many testers can use simultaneously Change area Used for tests which update/change data. Data must be reset or reloaded after testing. Used by one test/tester at a time. Scratch area Used for investigative update tests and those which have unusual requirements. Existing data cannot be trusted. Used at tester's own risk! Testing rarely has the luxury of completely separate environments for each test and each tester. Controlling data, and the access to data, in a system can be fraught. Many different stakeholders have different requirements of the data, but a common requirement is that of exclusive use. While the impact of this requirement should not be underestimated, a number of stakeholders may be able to work with the same environmental data, and to a lesser extent, setup data - and their work may not need to change the environmental or setup data. The test strategy can take advantage of this by disciplined use of text / value fields, allowing the use of 'soft' partitions. 'Soft' partitions allow the data to be split up conceptually, rather than physically. Although testers are able to interfere with each others tests, the team can be educated to avoid each others work. If, for instance, tester 1's tests may only use customers with Russian nationality and tester 2's tests only with French, the two sets of work can operate independently in the same dataset. A safe area could consist of London addresses, the change area Manchester addresses, and the scratch area Bristol addresses. Typically, values in free-text fields are used for soft partitioning. Data partitions help because: Allow controlled and reliable data, reducing data corruption / change problems Can reduce the need for exclusive access to environments/machines Clarity Permutation techniques may make data easier to grasp by making the datasets small and commonly used, but we can make our data clearer still by describing each row in its own free text fields, allowing testers to make a simple comparison between the free text (which is generally displayed on output), and actions based on fields which tend not to be directly displayed. Use of free text fields with some correspondence to the internals of the record allows output to be checked more easily. Testers often talk about items of data, referring to them by anthropomorphic personification - that is to say, they give them names. This allows shorthand, but also acts as jargon, excluding those who are not in the know. Setting this data, early on in testing, to have some meaningful value can be very useful, allowing testers to sense check input and output data, and choose appropriate input data for investigative tests. Reports, data extracts and sanity checks can also make use of these; sorting or selecting on a free text field that should have some correspondence with a functional field can help spot problems or eliminate unaffected data. Data is often used to communicate and illustrate problems to coders and to the business. However, there is generally no mandate for outside groups to understand the format or requirements of test data. Giving some meaning to the data that can be referred to directly can help with improving mutual understanding. Clarity helps because: Improves communication within and outside the team Reduces test errors caused by using the wrong data Allows another method way of doing sanity checks for corrupted or inconsistent data Helps when checking data after input Helps in selecting data for investigative tests Data Load and Data Maintenance An important consideration in preparing data for functional testing is the ways in which the data can be loaded into the system, and the possibility and ease of maintenance. Loading the data Data can be loaded into a test system in three general ways. Using the system you're trying to test The data can be manually entered, or data entry can be automated by using a capture/replay tool. This method can be very slow for large datasets. It uses the system's own validation and insertion methods, and can both be hampered by faults in the system, and help pinpoint them. If the system is working well, data integrity can be ensured by using this method, and internally assigned keys are likely to be effective and consistent. Data can be well-described in test scripts, or constructed and held in flat files. It may, however, be input in an ad-hoc way, which is unlikely to gain the advantages of good data listed above. Using a data load tool Data load tools directly manipulate the system's underlying data structures. As they do not use the system's own validation, they can be the only way to get broken data into the system in a consistent fashion. As they do not use the system to load the data, they can provide a convenient workaround to known faults in the system's data load routines. However, they may come up against problems when generating internal keys, and can have problems with data integrity and parent/child relationships. Data loaded can have a range of origins. In some cases, all new data is created for testing. This data may be complete and well specified, but can be hard to generate. A common compromise is to use old data from an existing system, selected for testing, filtered for relevance and duplicates and migrated to the target data format. In some cases, particularly for minor system upgrades, the complete set of live data is loaded into the system, but stripped of personal details for privacy reasons. While this last method may seem complete, it has disadvantages in that the data may not fully support testing, and that the large volume of data may make test results hard to interpret. Not loaded at all Some tests simply take whatever is in the system and try to test with it. This can be appropriate where a dataset is known and consistent, or has been set up by a prior round of testing. It can also be appropriate in environments where data cannot be reloaded, such as the live system. However, it can be symptomatic of an uncontrolled approach to data, and is not often desirable. Environmental data tends to be manually loaded, either at installation or by manipulating environmental or configuration scripts. Large volumes of setup data can often be generated from existing datasets and loaded using a data load tool, while small volumes of setup data often have an associated system maintenance function and can be input using the system. Fixed input data may be generated or migrated and is loaded using any and all of the methods above, while consumable input data is typically listed in test scripts or generated as an input to automation tools. When data is loaded, it can append itself to existing data, overwrite existing data, or delete existing data first. Each is appropriate in different circumstances, and due consideration should be given to the consequences. Testing the Data A theme bought out at the start of this paper was 'A System is Programmed by its Data'. In order to test the system, one must also test the data it is configured with; the environmental and setup data. Environmental data is necessarily different between the test and live environment. Although testing can verify that the environmental variables are being read and used correctly, there is little point in testing their values on a system other than the target system. Environmental data is often checked manually on the live system during implementation and rollout, and the wide variety of possible methods will not be discussed further here. Setup data can change often, throughout testing, as the business environment changes particularly if there is a long period between requirements gathering and live rollout. Testing done on the setup data needs to cover two questions; Does the planned/current setup data induce the functionality that the business requires? Will changes made to the setup data have the desired effect? Testing for these two questions only becomes possible when that data is controlled. Aspects of all the elements above come into play; The setup data should be organized to allow a good variety of scenarios to be considered The setup data needs to be able to be loaded and maintained easily and repeatable The business needs to become involved in the data so that their setup for live can be properly tested When testing the setup data, it is important to have a well-known set of fixed input data and consumable input data. This allows the effects of changes made to the setup data to be assessed repeat ably and allows results to be compared. The advantages of testing the setup data include: Overall testing will be improved if the quality of the setup data improves Problems due to faults in the live setup data will be reduced The business can re-configure the software for new business needs with increased confidence Data-related failures in the live system can be assessed in the light of good data testing Conclusion Data can be influential on the quality of testing. Well-planned data can allow flexibility and help reduce the cost of test maintenance. Common data problems can be avoided or reduced with preparation and automation. Effective testing of setup data is a necessary part of system testing, and good data can be used as a tool to enable and improve communication throughout the project. The following points summarize the actions that can influence the quality of the data and the effectiveness of its usage: Plan the data for maintenance and flexibility Know your data, and make its structure and content transparent Use the data to improve understanding throughout testing and the business Test setup data as you would test functionality Test Logs - Introduction Test Problem is a condition that exists within the software system that needs to be addressed. Carefully and completely documenting a test problem is the first step in correcting the problem. The following four attributes should be developed for all the test problems: Statement of condition. Tells what it is. Criteria Tells what should be. These two attributes are the basis for a finding. If a comparison between the two gives little or no practical consequence, no finding exists. Effect: Tells why the difference between what is and what should be is significant Cause: Tells the reasons for the deviation. Identification of the cause is the necessary as a basis for corrective action. A well developed problem statement will include each of these atttributes.When one or more these attributes is missing, questions almost arise, such as Criteria: Why is the current state inadequate? Effect: How significant is it? Cause: What could have cause of the problem? Factors defining the Test Log Generation Document Deviation: Problem statements begin to emerge by process of comparision.Essentially the user compares what is with what should be. When a deviation is identified between what is found to actually exist and what the user thinks is correct or proper , the first essential step toward development of a problem statement has occurred. It is difficult to visualize any type of problem that is not in some way characterized by this deviation. The What is: can be called the statement of condition. The What should be shall be called the Criteria. These concepts are the first two and the most basic , attributes of a problem statement. The documenting of the deviation is describing the conditions, as they currently exist, and the criteria, which represents what the user desires. The actual deviation will be the difference or gap between what is and what is desired. The statement of condition is uncovering and documenting the facts, as they exist. What is a fact? The statement of condition will of course depend on the nature and extent of the evidence or support that is examined and noted. For those facts, making up the statement of condition, the I/S professional will need to ensure that the information is accurate, well supported, and worded as clearly and precisely as possible. The statement of condition should document as many of the following attributes as appropriate of the problem. Activities Involved:- The specific business or administered activities that are being performed during Test Log generation are as follows: Procedures used to perform work. The specific step-by step activities that are utilized in producing the output from the identical activities. Outputs /Deliverables The products that are produced from the activity. Inputs - The triggers,events,or documents that cause this activity to be executed. Users/Customers served The organization ,individuvals,or class users/customers serviced by this activity. Deficiencies noted The status of the results of executing this activity and any appropriate interpretation of those facts. The Criterion is the users statement of what is desired. It can be stated in the either negative or positive terms. For example , it could indicate the need to reduce the complaints or delays as well as desired processing turn around time. Work Paper to describe the problem, and document the statement of condition and the statement of criteria. For example the following Work paper provides the information for Test Log Documentation: Field Requirements: Field Instructions for Entering Data Name of Software Tested : Put the name of the S/W or subsystem tested. Problem Description: Write a brief narrative description of the variance uncovered from expectations Statement of Conditions: Put the results of actual processing that occurred here. Statement of Criteria: Put what testers believe was the expected result from processing Effect of Deviation: If this can be estimated , testers should indicate what they believe the impact or effect of the problem will be on computer processing Cause of Problem: The testers should indicate what they believe is the cause of the problem, if known. If the testers re unable to do this , the work paper will be given to the development team and they should indicate the cause of the problem. Location of the Problem: The Tests should document where problem occurred as closely as possible. Recommended Action: The testers should indicate any recommended action they believe would be helpful to the project team. If not approved, the alternate action should be listed or the reason for not following the recommended action should be documented. Name of the S/W tested: Problem Description Statement of Condition Statement of Criteria Effect of Deviation Cause of a Problem Location of the Problem Recommended Action Collecting Status Data Four categories of data will be collected during testing. These are explained in the following paragraphs. Test Results Data This data will include, Test factors -The factors incorporated in the plan, the validation of which becomes the Test Objective. Business objective The validation that specific business objectives have been met. Interface Objectives-Validation that data/Objects can be correctly passed among Software components. Functions/Sub functions-Identifiable Software components normally associated with the requirements of the software. Units- The smallest identifiable software components Platform- The hardware and Software environment in which the software system will operate. Test Transactions, Test Suites, and Test Events These are the test products produced by the test team to perform testing. Test transactions/events: The type of tests that will be conducted during the execution of tests, which will be based on software requirements. Inspections A verification of process deliverables against deliverable specifications. Reviews: Verification that the process deliverables / phases are meeting the users true needs. Defect This category includes a Description of the individual defects uncovered during the testing process. This description includes but not limited to : Data the defect uncovered Name of the Defect Location of the Defect Severity of the Defect Type of Defect How the defect was uncovered(Test Data/Test Script) The Test Logs should add to this information in the form of where the defect originated , when it was corrected, and when it was entered for retest. Storing Data Collected during Testing It is recommended that a database be established in which to store the results collected during testing. It is also suggested that the database be put in online through client/server systems so that with a vested interest in the status of the project can be readily accessed for the status update. As described the most common test Report is a simple Spread sheet , which indicates the project component for which the status is requested, the test that will be performed to determine the status of that component, and the results of testing at any point of time. Developing Test Status Reports Report Software Status Establish a Measurement Team Inventory Existing Project Measures Develop a Consistent Set of Project metrics Define Process Requirements Develop and Implement the Process Monitor the Process The Test process should produce a continuous series of reports that describe the status of testing. The test reports are for use of testers, test managers, and the software development team. The frequency of the test reports should be based on the discretion of the team and extensiveness of the test process. Use of Function/Test matrix: This shows which tests must be performed in order to validate the functions and also used to determine the status of testing. Many organizations use spreadsheet package to maintain test results. The intersection can be coded with a number or symbol to indicate the following: 1=Test is needed, but not performed 2=Test currently being performed 3=Minor defect noted 4=Major defect noted 5=Test complete and function is defect free for the criteria included in this test TEST FUNCTION 1 2 3 4 5 6 7 8 9ABCDEFunction Test Matrix Methods of Test Reporting Reporting Tools - Use of word processing, database, defect tracking, and graphic tools to prepare test reports. Some Database test tools like Data Vision is a database reporting tool similar to Crystal Reports. Reports can be viewed and printed from the application or output as HTML, LaTeX2e, XML, DocBook, or tab- or comma-separated text files. From the LaTeX2e and DocBook output files you can in turn produce PDF, text, HTML, PostScript, and more. Some query tools available for Linux-based databases include: QMySQL dbMetrix PgAccess Cognos Powerhouse This is not yet available for Linux; Cognos is looking into what interest people have in the product to assess what their strategy should be with respect to the Linux ``market.'' GRG - GNU Report Generator The GRG program reads record and field information from a dBase3+ file, delimited ASCII text file or a SQL query to a RDBMS and produces a report listing. The program was loosely designed to produce TeX/LaTeX formatted output, but plain ASCII text, troff, PostScript, HTML or any other kind of ASCII based output format can be produced just as easily. Word Processing: One way of increasing the utility of computers and word processors for the teaching of writing may be to use software that will guide the processes of generating, organizing, composing and revising text. This allows each person to use the normal functions of the computer keyboard that are common to all word processors, email editors, order entry systems, and data base management products. From the Report Manager, however, you can quickly scan through any number of these reports and see how each person's history compares. A one-page summary report may be printed with either the Report Manager program or from the individual keyboard or keypad software at any time. Individual Reports include all of the following information. Status Report Word Processing Tests or Keypad Tests Basic Skills Tests or Data Entry Tests Progress Graph Game Scores Test Report for each test Test Director: Facilitates consistent and repetitive testing process Central repository for all testing assets facilitates the adoption of a more consistent testing process, which can be repeated throughout the application life cycle Provides Analysis and Decision Support Graphs and reports help analyze application readiness at any point in the testing process Requirements coverage, run schedules, test execution progress, defect statistics can be used for production planning Provides Anytime, Anywhere access to Test Assets Using Test Directors web interface, tester, developers, business analysts and Client can participate and contribute to the testing process Traceability throughout the testing process Test Cases can be mapped to requirements providing adequate visibility over the test coverage of requirements Test Director links requirements to test cases and test cases to defects Manages Both Manual and Automated Testing Test Director can manage both manual and automated tests (Win Runner) Scheduling of automated tests can be effectively done using Test Director Test Report Standards - Defining the components that should be included in a test report. Statistical Analysis - Ability to draw statistically valid conclusions from quantitative test results. Testing Data used for metrics Testers are typically responsible for reporting their test status at regular intervals. The following measurements generated during testing are applicable: Total number of tests Number of Tests executed to date Number of tests executed successfully to date Data concerning software defects include Total number of defects corrected in each activity Total number of defects entered in each activity. Average duration between defect detection and defect correction Average effort to correct a defect Total number of defects remaining at delivery Software performance data us usually generated during system testing, once the software has been integrated and functional testing is complete. Average CPU utilization Average memory Utilization Measured I/O transaction rate Test Reporting A final test report should be prepared at the conclusion of each test activity. This includes the following Individual Project Test Report Integration Test Report System Test Report Acceptance test Report These test reports are designed to document the results of testing as defined in the testplan.The test report can be a combination of electronic data and hard copy. For example, if the function matrix is maintained electronically, there is no reason to print that, as paper report will summarize the data, draws appropriate conclusions and present recommendations.9 - Purpose of a Test Report: The test report has one immediate and three long term purposes. The immediate purpose is to provide information to customers of the software system so that they can determine whether the system is ready for production , and if so, to assess the potential consequences and initiate appropriate actions to minimize those consequences. The first of the three long term uses is for the project to trace problems in the event the application malfunctions in production. Knowing which functions have been correctly tested and which ones still contain defects can assist in taking corrective actions. The second long term purpose is to use the data to analyze the rework process for making changes to prevent the defects from occurring in the future. These defect prone components identify tasks/steps that if improved, could eliminate or minimize the occurrence of high frequency defects. The Third long term purpose is to show what was accomplished in case of an Y2K lawsuit. Individual Project Test Report These reports focus on the Individual projects(software system),when different testers should test individual projects, they should prepare a report on their results. Integration Test Report Integration testing tests the interfaces between individual projects. A good test plan will identify the interfaces and institute test conditions that will validate interfaces. Given is the Individual Project test report except that conditions tested are interfaces. 1.Scope of Test This section indicates which functions were and were not tested2.Test Results This section indicates the results of testing, including any variance between what is and what should be3.What works/What does not work - This section defines the functions that work and do not work and the interfaces that work and do not work4. Recommendations This section recommends actions that should be taken to Fix functions /Interfaces that do not work. Make additional improvementsSystem Test Reports A System Test plan standard that identified the objective of testing , what was to be tested, how was it to be tested, and when tests should occur. The system test Report should present the results of executing the test plan. If these details are maintained Electronically , then it need only be referenced , not included in the report. Acceptance Test Report There are two primary objectives of Acceptance testing Report .The first is to ensure that the system as implemented meets the real operating needs of the user/customer. If the defined requirements are those true needs, testing should have accomplished this objective. The second objective is to ensure that software system can operate in the real world user environment, which includes people skills and attitudes, time pressures, changing business conditions, and so forth. The Acceptance Test Report should encompass these criterias for the User acceptance respectively. Conclusion The Test Logs obtained from the execution of the test results and finally the test reports should be designed to accomplish the following objectives: Provide Information to the customer whether the system should be placed into production, if so the potential consequences and appropriate actions to minimize these consequences. One Long term objective is for the Project and the other is for the information technology function. The project can use the test report to trace problems in the event the application malfunction in production. Knowing which functions have been correctly tested and which ones still contain defects can assist in taking corrective actions. The data can also be used to analyze the developmental process to make changes to prevent defects from occurring in the future. These defect prone components identify tasks/steps that if improved, could eliminate or minimize the occurrence of high frequency defects in future. Test Report A Test Report is a document that is prepared once the testing of a software product is complete and the delivery is to be made to the customer. This document would contain a summary of the entire project and would have to be presented in a way that any person who has not worked on the project would also get a good overview of the testing effort. Contents of a Test Report The contents of a test report are as follows: Executive Summary Overview Application Overview Testing Scope Test Details Test Approach Types of testing conducted Test Environment Tools Used Metrics Test Results Test Deliverables Recommendations These sections are explained as follows: Executive Summary This section would comprise of general information regarding the project, the client, the application, tools and people involved in such a way that it can be taken as a summary of the Test Report itself (i.e.) all the topics mentioned here would be elaborated in the various sections of the report. Overview This comprises of 2 sections Application Overview and Testing Scope. Application Overview This would include detailed information on the application under test, the end users and a brief outline of the functionality as well. Testing Scope This would clearly outline the areas of the application that would / would not be tested by the QA team. This is done so that there would not be any misunderstandings between customer and QA as regards what needs to be tested and what does not need to be tested. This section would also contain information of Operating System / Browser combinations if Compatibility testing is included in the testing effort. Test Details This section would contain the Test Approach, Types of Testing conducted, Test Environment and Tools Used. Test Approach This would discuss the strategy followed for executing the project. This could include information on how coordination was achieved between Onsite and Offshore teams, any innovative methods used for automation or for reducing repetitive workload on the testers, how information and daily / weekly deliverables were delivered to the client etc. Types of testing conducted This section would mention any specific types of testing performed (i.e.) Functional, Compatibility, Performance, Usability etc along with related specifications. Test Environment This would contain information on the Hardware and Software requirements for the project (i.e.) server configuration, client machine configuration, specific software installations required etc. Tools used This section would include information on any tools that were used for testing the project. They could be functional or performance testing automation tools, defect management tools, project tracking tools or any other tools which made the testing work easier. Metrics This section would include details on total number of test cases executed in the course of the project, number of defects found etc. Calculations like defects found per test case or number of test cases executed per day per person etc would also be entered in this section. This can be used in calculating the efficiency of the testing effort. Test Results This section is similar to the Metrics section, but is more for showcasing the salient features of the testing effort. Incase many defects have been logged for the project, graphs can be generated accordingly and depicted in this section. The graphs can be for Defects per build, Defects based on severity, Defects based on Status (i.e.) how many were fixed and how many rejected etc. Test Deliverables This section would include links to the various documents prepared in the course of the testing project (i.e.) Test Plan, Test Procedures, Test Logs, Release Report etc. Recommendations This section would include any recommendations from the QA team to the client on the product tested. It could also mention the list of known defects which have been logged by QA but not yet fixed by the development team so that they can be taken care of in the next release of the application. Defect Management Defect A mismatch in the application and its specification is a defect. A software error is present when the program does not do what its end user expects it to do. Defect Fundamentals A Defect is a product anomaly or flaw. Defects include such things as omissions and imperfections found during testing phases. Symptoms (flaws) of faults contained in software that is sufficiently mature for production will be considered as defects. Deviations from expectation that is to be tracked and resolved is also termed a defect. An evaluation of defects discovered during testing provides the best indication of software quality. Quality is the indication of how well the system meets the requirements. So in this context defects are identified as any failure to meet the system requirements. Defect evaluation is based on methods that range from simple number count to rigorous statistical modeling. Rigorous evaluation uses assumptions about the arrival or discovery rates of defects during the testing process. The actual data about defect rates are then fit to the model. Such an evaluation estimates the current system reliability and predicts how the reliability will grow if testing and defect removal continue. This evaluation is described as system reliability growth modelling Defect Life Cycle  Defect Tracking After a defect has been found, it must be reported to development so that it can be fixed. The Initial State of a defect will be New. The Project Lead of the development team will review the defect and set it to one of the following statuses: Open Accepts the bug and assigns it to a developer. Invalid Bug The reported bug is not valid one as per the requirements/design As Designed This is an intended functionality as per the requirements/design Deferred This will be an enhancement. Duplicate The bug has already been reported. Document Once it is set to any of the above statuses apart from Open, and the testing team does not agree with the development team it is set to document status. Once the development team has started working on the defect the status is set to WIP ((Work in Progress) or if the development team is waiting for a go ahead or some technical feedback, they will set to Dev Waiting After the development team has fixed the defect, the status is set to FIXED, which means the defect is ready to re-test. On re-testing the defect, and the defect still exists, the status is set to REOPENED, which will follow the same cycle as an open defect. If the fixed defect satisfies the requirements/passes the test case, it is set to Closed. Defect Classification The severity of bugs will be classified as follows: CriticalThe problem prevents further processing and testing. The Development Team must be informed immediately and they need to take corrective action immediately.HighThe problem affects selected processing to a significant degree, making it inoperable, Cause data loss, or could cause a user to make an incorrect decision or entry. The Development Team must be informed that day, and they need to take corrective action within 0 24 hours.MediumThe problem affects selected processing, but has a work-around that allows continued processing and testing. No data loss is suffered. These may be cosmetic problems that hamper usability or divulge client-specific information. The Development Team must be informed within 24 hours, and they need to take corrective action within 24 - 48 hours.LowThe problem is cosmetic, and/or does not affect further processing and testing. The Development Team must be informed within 48 hours, and they need to take corrective action within 48 - 96 hours. Defect Reporting Guidelines The key to making a good report is providing the development staff with as much information as necessary to reproduce the bug. This can be broken down into 5 points: 1) Give a brief description of the problem 2) List the steps that are needed to reproduce the bug or problem 3) Supply all relevant information such as version, project and data used. 4) Supply a copy of all relevant reports and data including copies of the expected results. 5) Summarize what you think the problem is. When you are reporting a defect the more information you supply, the easier it will be for the developers to determine the problem and fix it. Simple problems can have a simple report, but the more complex the problem the more information the developer is going to need. For example: cosmetic errors may only require a brief description of the screen, how to get it and what needs to be changed. However, an error in processing will require a more detailed description, such as: 1) The name of the process and how to get to it. Documentation on what was expected. (Expected results) The source of the expected results, if available. This includes spread sheets, an earlier version of the software and any formulas used) Documentation on what actually happened. (Perceived results) An explanation of how the results differed. Identify the individual items that are wrong. If specific data is involved, a copy of the data both before and after the process should be included. Copies of any output should be included. As a rule the detail of your report will increase based on a) the severity of the bug, b) the level of the processing, c) the complexity of reproducing the bug. Anatomy of a bug report Bug reports need to do more than just describe the bug. They have to give developers something to work with so that they can successfully reproduce the problem. In most cases the more information correct information given the better. The report should explain exactly how to reproduce the problem and an explanation of exactly what the problem is. The basic items in a report are as follows: Version: This is very important. In most cases the product is not static, developers will have been working on it and if theyve found a bug it may already have been reported or even fixed. In either case, they need to know which version to use when testing out the bug. Product: If you are developing more than one product Identify the product in question. Data: Unless you are reporting something very simple, such as a cosmetic error on a screen, you should include a dataset that exhibits the error. If youre reporting a processing error, you should include two versions of the dataset, one before the process and one after. If the dataset from before the process is not included, developers will be forced to try and find the bug based on forensic evidence. With the data, developers can trace what is happening. Steps: List the steps taken to recreate the bug. Include all proper menu names, dont abbreviate and dont assume anything. After youve finished writing down the steps, follow them - make sure youve included everything you type and do to get to the problem. If there are parameters, list them. If you have to enter any data, supply the exact data entered. Go through the process again and see if there are any steps that can be removed. When you report the steps they should be the clearest steps to recreating the bug. Description: Explain what is wrong - Try to weed out any extraneous information, but detail what is wrong. Include a list of what was expected. Remember report one problem at a time, dont combine bugs in one report. Supporting documentation: If available, supply documentation. If the process is a report, include a copy of the report with the problem areas highlighted. Include what you expected. If you have a report to compare against, include it and its source information (if its a printout from a previous version, include the version number and the dataset used) This information should be stored in a centralized location so that Developers and Testers have access to the information. The developers need it to reproduce the bug, identify it and fix it. Testers will need this information for later regression testing and verification. Summary A bug report is a case against a product. In order to work it must supply all necessary information to not only identify the problem but what is needed to fix it as well. It is not enough to say that something is wrong. The report must also say what the system should be doing. The report should be written in clear concise steps, so that someone who has never seen the system can follow the steps and reproduce the problem. It should include information about the product, including the version number, what data was used. The more organized information provided the better the report will be. Automation What is Automation Automated testing is automating the manual testing process currently in use Why Automate the Testing Process? Today, rigorous application testing is a critical part of virtually all software development projects. As more organizations develop mission-critical systems to support their business activities, the need is greatly increased for testing methods that support business objectives. It is necessary to ensure that these systems are reliable, built according to specification, and have the ability to support business processes. Many internal and external factors are forcing organizations to ensure a high level of software quality and reliability. In the past, most software tests were performed using manual methods. This required a large staff of test personnel to perform expensive, and time-consuming manual test procedures. Owing to the size and complexity of todays advanced software applications, manual testing is no longer a viable option for most testing situations. Every organization has unique reasons for automating software quality activities, but several reasons are common across industries. Using Testing Effectively By definition, testing is a repetitive activity. The very nature of application software development dictates that no matter which methods are employed to carry out testing (manual or automated), they remain repetitious throughout the development lifecycle. Automation of testing processes allows machines to complete the tedious, repetitive work while human personnel perform other tasks. Automation allows the tester to reduce or eliminate the required think time or read time necessary for the manual interpretation of when or where to click the mouse or press the enter key. An automated test executes the next operation in the test hierarchy at machine speed, allowing tests to be completed many times faster than the fastest individual. Furthermore, some types of testing, such as load/stress testing, are virtually impossible to perform manually. Reducing Testing Costs The cost of performing manual testing is prohibitive when compared to automated methods. The reason is that computers can execute instructions many times faster, and with fewer errors than individuals. Many automated testing tools can replicate the activity of a large number of users (and their associated transactions) using a single computer. Therefore, load/stress testing using automated methods require only a fraction of the computer hardware that would be necessary to complete a manual test. Imagine performing a load test on a typical distributed client/server application on which 50 concurrent users were planned. To do the testing manually, 50 application users employing 50 PCs with associated software, an available network, and a cadre of coordinators to relay instructions to the users would be required. With an automated scenario, the entire test operation could be created on a single machine having the ability to run and rerun the test as necessary, at night or on weekends without having to assemble an army of end users. As another example, imagine the same application used by hundreds or thousands of users. It is easy to see why manual methods for load/stress testing is an expensive and logistical nightmare. Replicating Testing Across Different Platforms Automation allows the testing organization to perform consistent and repeatable tests. When applications need to be deployed across different hardware or software platforms, standard or benchmark tests can be created and repeated on target platforms to ensure that new platforms operate consistently. Repeatability and Control By using automated techniques, the tester has a very high degree of control over which types of tests are being performed, and how the tests will be executed. Using automated tests enforces consistent procedures that allow developers to evaluate the effect of various application modifications as well as the effect of various user actions. For example, automated tests can be built that extract variable data from external files or applications and then run a test using the data as an input value. Most importantly, automated tests can be executed as many times as necessary without requiring a user to recreate a test script each time the test is run. Greater Application Coverage The productivity gains delivered by automated testing allow and encourage organizations to test more often and more completely. Greater application test coverage also reduces the risk of exposing users to malfunctioning or non-compliant software. In some industries such as healthcare and pharmaceuticals, organizations are required to comply with strict quality regulations as well as being required to document their quality assurance efforts for all parts of their systems. Automation Life Cycle  SHAPE \* MERGEFORMAT  Identifying Tests Requiring Automation Most, but not all, types of tests can be automated. Certain types of tests like user comprehension tests, tests that run only once, and tests that require constant human intervention are usually not worth the investment to automate. The following are examples of criteria that can be used to identify tests that are prime candidates for automation. High Path Frequency - Automated testing can be used to verify the performance of application paths that are used with a high degree of frequency when the software is running in full production. Examples include: creating customer records, invoicing and other high volume activities where software failures would occur frequently. Critical Business Processes - In many situations, software applications can literally define or control the core of a companys business. If the application fails, the company can face extreme disruptions in critical operations. Mission-critical processes are prime candidates for automated testing. Examples include: financial month-end closings, production planning, sales order entry and other core activities. Any application with a high-degree of risk associated with a failure is a good candidate for test automation. Repetitive Testing - If a testing procedure can be reused many times, it is also a prime candidate for automation. For example, common outline files can be created to establish a testing session, close a testing session and apply testing values. These automated modules can be used again and again without having to rebuild the test scripts. This modular approach saves time and money when compared to creating a new end-to-end script for each and every test. Applications with a Long Life Span - If an application is planned to be in production for a long period of time, the greater the benefits are from automation. What to Look For in a Testing Tool Choosing an automated software testing tool is an important step, and one which often poses enterprise-wide implications. Here are several key issues, which should be addressed when selecting an application testing solution. Test Planning and Management A robust testing tool should have the capability to manage the testing process, provide organization for testing components, and create meaningful end-user and management reports. It should also allow users to include non-automated testing procedures within automated test plans and test results. A robust tool will allow users to integrate existing test results into an automated test plan. Finally, an automated test should be able to link business requirements to test results, allowing users to evaluate application readiness based upon the application's ability to support the business requirements. Testing Product Integration Testing tools should provide tightly integrated modules that support test component reusability. Test components built for performing functional tests should also support other types of testing including regression and load/stress testing. All products within the testing product environment should be based upon a common, easy-to-understand language. User training and experience gained in performing one testing task should be transferable to other testing tasks. Also, the architecture of the testing tool environment should be open to support interaction with other technologies such as defect or bug tracking packages. Internet/Intranet Testing A good tool will have the ability to support testing within the scope of a web browser. The tests created for testing Internet or intranet-based applications should be portable across browsers, and should automatically adjust for different load times and performance levels. Ease of Use Testing tools should be engineered to be usable by non-programmers and application end-users. With much of the testing responsibility shifting from the development staff to the departmental level, a testing tool that requires programming skills is unusable by most organizations. Even if programmers are responsible for testing, the testing tool itself should have a short learning curve. GUI and Client/Server Testing A robust testing tool should support testing with a variety of user interfaces and create simple-to manage, easy-to-modify tests. Test component reusability should be a cornerstone of the product architecture. Load and Performance Testing The selected testing solution should allow users to perform meaningful load and performance tests to accurately measure system performance. It should also provide test results in an easy-to-understand reporting format. Preparing the Test Environment Once the test cases have been created, the test environment can be prepared. The test environment is defined as the complete set of steps necessary to execute the test as described in the test plan. The test environment includes initial set up and description of the environment, and the procedures needed for installation and restoration of the environment. Description - Document the technical environment needed to execute the tests. Test Schedule - Identify the times during which your testing facilities will be used for a given test. Make sure that other groups that might share these resources are informed of this schedule. Operational Support - Identify any support needed from other parts of your organization. Installation Procedures - Outline the procedures necessary to install the application software to be tested. Restoration Procedures - Finally, outline those procedures needed to restore the test environment to its original state. By doing this, you are ready to re-execute tests or prepare for a different set of tests. Inputs to the Test Environment Preparation Process Technical Environment Descriptions Approved Test Plan Test Execution Schedules Resource Allocation Schedule Application Software to be installed Test Planning Careful planning is the key to any successful process. To guarantee the best possible result from an automated testing program, those evaluating test automation should consider these fundamental planning steps. The time invested in detailed planning significantly improves the benefits resulting from test automation. Evaluating Business Requirements Begin the automated testing process by defining exactly what tasks your application software should accomplish in terms of the actual business activities of the end-user. The definition of these tasks, or business requirements, defines the high-level, functional requirements of the software system in question. These business requirements should be defined in such a way as to make it abundantly clear that the software system correctly (or incorrectly) performs the necessary business functions. For example, a business requirement for a payroll application might be to calculate a salary, or to print a salary check. Creating a Test Plan For the greatest return on automated testing, a testing plan should be created at the same time the software application requirements are defined. This enables the testing team to define the tests, locate and configure test-related hardware and software products and coordinate the human resources required to complete all testing. This plan is very much a living document that should evolve as the application functions become more clearly defined. A good testing plan should be reviewed and approved by the test team, the software development team, all user groups and the organizations management. The following items detail the input and output components of the test planning process. Inputs to the Test Planning Process Application Requirements - What is the application intended to do? These should be stated in the terms of the business requirements of the end users. Application Implementation Schedules - When is the scheduled release? When are updates or enhancements planned? Are there any specific events or actions that are dependent upon the application? Acceptance Criteria for implementation - What critical actions must the application accomplish before it can be deployed? This information forms the basis for making informed decisions on whether or not the application is ready to deploy. Test Design and Development After the test components have been defined, the standardized test cases can be created that will be used to test the application. The type and number of test cases needed will be dictated by the testing plan. A test case identifies the specific input values that will be sent to the application, the procedures for applying those inputs, and the expected application values for the procedure being tested. A proper test case will include the following key components: Test Case Name(s) - Each test case must have a unique name, so that the results of these test elements can be traced and analyzed. Test Case Prerequisites - Identify set up or testing criteria that must be established before a test can be successfully executed. Test Case Execution Order - Specify any relationships, run orders and dependencies that might exist between test cases. Test Procedures Identify the application steps necessary to complete the test case. Input Values - This section of the test case identifies the values to be supplied to the application as input including, if necessary, the action to be completed. Expected Results - Document all screen identifier(s) and expected value(s) that must be verified as part of the test. These expected results will be used to measure the acceptance criteria, and therefore the ultimate success of the test. Test Data Sources - Take note of the sources for extracting test data if it is not included in the test case. Inputs to the Test Design and Construction Process Test Case Documentation Standards Test Case Naming Standards Approved Test Plan Business Process Documentation Business Process Flow Test Data sources Outputs from the Test Design and Construction Process Revised Test Plan Test Procedures for each Test Case Test Case(s) for each application function described in the test plan Procedures for test set up, test execution and restoration Executing the Test The test is now ready to be run. This step applies the test cases identified by the test plan, documents the results, and validates those results against expected performance. Specific performance measurements of the test execution phase include: Application of Test Cases The test cases previously created are applied to the target software application as described in the testing environment Documentation - Activities within the test execution are logged and analyzed as follows: Actual Results achieved during test execution are compared to expected application behavior from the test cases Test Case completion status (Pass/Fail) Actual results of the behavior of the technical test environment Deviations taken from the test plan or test process Inputs to the Test Execution Process Approved Test Plan Documented Test Cases Stabilized, repeatable, test execution environment Standardized Test Logging Procedures Outputs from the Test Execution Process Test Execution Log(s) Restored test environment The test execution phase of your software test process will control how the test gets applied to the application. This step of the process can range from very chaotic to very simple and schedule driven. The problems experienced in test execution are usually attributed to not properly performing steps from earlier in the process. Additionally, there may be several test execution cycles necessary to complete all the necessary types of testing required for your application. For example, a test execution may be required for the functional testing of an application, and a separate test execution cycle may be required for the stress/volume testing of the same application. A complete and thorough test plan will identify this need and many of the test cases can be used for both test cycles. The secret to a controlled test execution is comprehensive planning. Without an adequate test plan in place to control your entire test process, you may inadvertently cause problems for subsequent testing. Measuring the Results This step evaluates the results of the test as compared to the acceptance criteria set down in the test plan. Specific elements to be measured and analyzed include: Test Execution Log Review - The Log Review compiles a listing of the activities of all test cases, noting those that passed, failed or were not executed. Determine Application Status - This step identifies the overall status of the application after testing, for example: ready for release, needs more testing, etc. Test Execution Statistics - This summary identifies the total number of tests that were executed, the type of test, and the completion status. Application Defects - This final and very important report identifies potential defects in the software, including application processes that need to be analyzed further. Automation Methods Capture/Playback Approach The Capture/Playback tools capture the sequence of manual operations in a test script that are entered by the test engineer. These sequences are played back during the test execution. The benefit of this approach is that the captured session can be re-run at some later point in time to ensure that the system performs the required behavior. The short-comings of Capture/Playback are that in many cases, if the system functionality changes, the capture/playback session will need to be completely re-run to capture the new sequence of user interactions. Tools like WinRunner provide a scripting language, and it is possible for engineers to edit and maintain such scripts. This sometimes reduces the effort over the completely manual approach, however overall savings is usually minimal. Data Driven Approach Data driven approach is a test that plays back the same user actions but with varying input values. This allows one script to test multiple sets of positive data. This is applicable when large volumes and different sets of data need to be fed to the application and tested for correctness. The benefit of this approach is that the time consumed is less and accurate than manually testing it. Testing can be done with both positive and negative approach simultaneously. Test Script execution: In this phase we execute the scripts that are already created. Scripts need to be reviewed and validated for results and accepted as functioning as expected before they are used live. Steps to be followed before execution of scripts: 1.Test tool to be installed in the machine. 2. Test environment /application to be tested to be installed in the machine. 3. Prerequisite for running the scripts such as tool settings, playback options, necessary data table or data pool updation needs to be taken care. 4.Select the script that needs to be executed and run it 5.Wait until execution is done. 6.Analysis the results via Test manager or in the logs. Test script execution process:  General automation tool comparison Anyone who has contemplated the implementation of an automated test tool has quickly realized the wide variety of options on the market in terms of both the kinds of test tools being offered and the number of vendors. The best tool for any particular situation depends on the system engineering environment that applies and the testing methodology that will be used, which in turn will dictate how automation will be invoked to support the process. This appendix evaluates major tool vendors on their test tool characteristics, test execution capability, tool integration capability, test reporting capability, performance testing and analysis, and vendor qualification. The following tool vendors evaluated are Compuware, Empirix/RSW, Mercury, Rational, and Segue. Functional Test Tool Matrix The Tool Matrix is provided for quick and easy reference to the capabilities of the test tools. Each category in the matrix is given a rating of 1 5. 1 = Excellent support for this functionality, 2 = Good support but lacking or another tool provides more effective support, 3 = Basic/ support only. 4 = This is only supported by use of an API call or third party add-in but not included in the general test tool/below average, 5 = No support. In general a set of criteria can be built up by using this matrix and an indicative score obtained to help in the evaluation process. Usually the lower the score the better but this is subjective and is based on the experience of the author and the test professionals opinions used to create this document. A detailed description is given below of each of the categories used in the matrix. Record and Playback This category details how easy it is to record & playback a test. Does the tool support low-level recording (mouse drags, exact screen location)? Is there object recognition when recording and playing back or does it appear to record ok but then on playback (without environment change or unique ids, etc changes) fail? How easy is it to read the recorded script. When automating, this is the first thing that most test professionals will do. They will record a simple script; look at the code and then playback. This is very similar to recording a macro in say Microsoft Access. Eventually record and playback becomes less and less part of the automation process as it is usually more robust to use the built-in functions to directly test objects, databases, etc. However this should be done as a minimum in the evaluation process because if the tool of choice cannot recognize the applications objects then the automation process will be a very tedious experience. Web Testing Web based functionality on most applications is now a part of everyday life. As such the test tool should provide good web based test functionality in addition to its client/server functions. In judging the rating for this category I looked at the tools native support for HTML tables, frames, DOM, various platforms for browsers, Web site maps and links. Web testing can be riddled with problems if various considerations are not taken into account. Here are a few examples Are there functions to tell me when the page has finished loading? Can I tell the test tool to wait until an image appears? Can I test whether links are valid or not? Can I test web based objects functions like is it enabled, does it contain data, etc. Are there facilities that will allow me to programmatically look for objects of a certain type on a web page or locate a specific object? Can I extract data from the web page itself? E.g. the title? A hidden form element? With Client server testing the target customer is usually well defined you know what network operating system you will be using, the applications and so on but on the web it is far different. A person may be connecting from the USA or Africa, they may be disabled, they may use various browsers, and the screen resolution on their computer will be different. They will speak different languages, will have fast connections and slow connections, connect using MAC, Linux or Windows, etc, etc. So the cost to set up a test environment is usually greater than for a client server test where the environment is fairly well defined. Database Tests Most applications will provide the facility to preserve data outside of itself. This is usually achieved by holding the data in a Database. As such, checking what is in the backend database usually verifies the proper validation of tests carried out on the front end of an application. Because of the many databases available e.g. Oracle, DB2, SQLServer, Sybase, Informix, Ingres, etc all of them support a universal query language known as SQL and a protocol for communicating with these databases called ODBC (JDBC can be used on java environments). I have looked at all the tools support for SQL, ODBC and how they hold returned data e.g. is this in an array, a cursor, a variable, etc. How does the tool manipulate this returned data? Can it call stored procedures and supply required input variables? What is the range of functions supplied for this testing? Data Functions As mentioned above applications usually provide a facility for storing data off line. So to test this, we will need to create data to input into the application. I have looked at all the tools facilities for creating and manipulating data. Does the tool allow you to specify the type of data you want? Can you automatically generate data? Can you interface with files, spreadsheets, etc to create, extract data? Can you randomise the access to that data? Is the data access truly random? This functionality is normally more important than database tests as the databases will usually have their own interface for running queries. However applications (except for manual input) do not usually provide facilities for bulk data input. The added benefit (as I have found) is this functionality can be used for a production reason e.g. for the aforementioned bulk data input sometimes carried out in data migration or application upgrades. These functions are also very important as you move from the record/playback phase, to data-driven to framework testing. Data-driven tests are tests that replace hard coded names, address, numbers; etc with variables supplied from an external source usually a CSV (Comma Separated variable) file, spreadsheet or database. Frameworks are usually the ultimate goal in deploying automation test tools. Frameworks provide an interface to all the applications under test by exposing a suitable list of functions, databases, etc. This allows an inexperienced tester/user to run tests by just running/providing the test framework with know commands/variables. A test framework has parallels to Software frameworks where you develop an encapsulation layer of software (framework) around the applications, databases etc and expose functions, classes, methods etc that is used to call the underlying applications, return data, input data, etc. However to do this requires a lot of time, skilled resources and money to facilitate the first two. Object Mapping If you are in a role that can help influence the design of a product, try to get the development/design team to use standard and not custom objects. Then hopefully you will not need this functionality. However you may find that most (hopefully) of the application has been implemented using standard objects supported by your test tool vendor but there may be a few objects that are custom ones. Most custom objects will behave like a similar standard control here are a few standard objects that are seen in everyday applications. Pushbuttons Checkboxes Radio buttons List views Edit boxes Combo boxes If you have a custom object that behaves like one of these are you able to map (tell the test tool that the custom control behaves like the standard) control? Does it support all the standard controls methods? Can you add the custom control to its own class of control? Image Testing Lets hope this is not a major part of your testing effort but occasionally you may have to use this to test bit map and similar images. Also when the application has painted controls like those in the calculator app found on a lot of windows applications you may need to use this. At least one of the tools allows you to map painted controls to standard controls but to do this you have to rely on the screen co-ordinates of the image. Does the tool provide OCR (optical character recognition)? Can it compare one image against another? How fast does the compare take? If the compare fails how long does that take? Does the tool allow you to mask certain areas of the screen when comparing. I have looked at these facilities in the base tool set. Test/Error recovery This can be one of the most difficult areas to automate but if it is automated, it provides the foundation to produce a truly robust test suite. Suppose the application crashes while I am testing what can I do? If a function does not receive the correct information how can I handle this? If I get an error message how do I deal with that? If I access a web site and get a warning what do I do? I cannot get a database connection how do I skip those tests? The test tool should provide facilities to handle the above questions. I looked at built in wizards of the test tools for standard test recovery (when you finish tests or when a script fails). Error recovery caused by the application and environment. How easy is it to build this into your code? The rating given will depend on how much errors the tool can capture, the types of errors, how it recovers from errors, etc. Object Name Map As you test your application using the test tool of your choice you will notice that it records actions against the objects that it interacts with. These objects are either identified through the co-ordinates on the screen or preferably via some unique object reference referred to as a tag, object ID, index, name, etc. Firstly the tool should provide services to uniquely identify each object it interacts with and by various means. The last and least desirable should be by co-ordinates on the screen. Once you are well into automation and build up 10s and 100s of scripts that reference these objects you will want to have a mechanism that provides an easy update if the application being tested changes. All tools provide a search and replace facility but the best implementations are those that provide a central repository to store these object identities. The premise is it is better to change the reference in one place rather than having to go through each of the scripts to replace it there. I found this to be true but not as big a point as some have stated because those tools that dont support the central repository scheme; can be programmed to reference windows and object names in one place (say via a variable) and that variable can be used throughout the script (where that object appears). Does the Object Name Map allow you to alias the name or change the name given by the tool to some more meaningful name? Object Identity Tool Once you become more proficient with automation testing one of the primary means of identifying objects will be via an ID Tool. A sort of spy that looks at the internals of the object giving you details like the object name, ID and similar. This will allow you to reference that object within a function call. The tool should give you details of some of the objects properties, especially those associated with uniquely identifying the object or window. The tool will usually provide the tester with a point and ID service where you can use the mouse to point at the object and in some window you will see all of that objects IDs and properties. A lot of the tools will allow you to search all the open applications in one swoop and show you the result in a tree that you can look at when required. Extensible Language Here is a question that you will here time and time again in automation forums. How do I get {insert test tool name here} to do such and such, there will be one of four answers. I dont know It cant do it It can do it using the function x, y or Z It cant in the standard language but you can do it like this What we are concerned with in this section is the last answer e.g. if the standard test language does not support it can I create a DLL or extend the language in some way to do it? This is usually an advanced topic and is not encountered until the trained tester has been using the tool for at least 6 12 months. However when this is encountered the tool should support language extension. If via DLLs then the tester must have knowledge of a traditional development language e.g. C, C++ or VB. For instance if I wanted to extend a tool that could use DLLs created by VB I would need to have Visual Basic then open say an ActiveX dll project, create a class containing various methods (similar to functions) then I would make a dll file. Register it on the machine then reference that dll from the test tool calling the methods according to their specification. This will sound a lot clearer as you go on in the tools and this document will be updated to include advanced topics like this in extending the tools capabilities. Some tools provide extension by allowing you to create user defined functions, methods, classes, etc but these are normally a mixture of the already supported data types, functions, etc rather than extending the tool beyond its released functionality. Because this is an advanced topic I have not taken into account ease of use, as those people who have got to this level should have already exhausted the current capabilities of the tools. So want to use external functions like win32api functions and so on and should have a good grasp of programming. Environment Support How many environments does the tool support out the box? Does it support the latest Java release, what Oracle, Powerbuilder, WAP, etc. Most tools can interface to unsupported environments if the developers in that environment provide classes, dlls etc that expose some of the applications details but whether a developer will or has time to do this is another question. Ultimately this is the most important part of automation. Environment support. If the tool does not support your environment/application then you are in trouble and in most cases you will need to revert to manually testing the application (more shelf ware). Integration How well does the tool integrate with other tools. This is becoming more and more important. Does the tool allow you to run it from various test management suites? Can you raise a bug directly from the tool and feed the information gathered from your test logs into it? Does it integrate with products like word, excel or requirements management tools? When managing large test projects with an automation team greater than five and testers totaling more than ten. The management aspect and the tools integration moves further up the importance ladder. An example could be a major Bank wants to redesign its workflow management system to allow faster processing of customer queries. The anticipated requirements for the new workflow software numbers in the thousands. To test these requirements 40,000 test cases have been identified 20,000 of these can be automated. How do I manage this? This is where a test management tool comes in real handy. Also how do I manage the bugs raised as a result of automation testing, etc? Integration becomes very important rather than having separate systems that dont share data that may require duplication of information. The companies that will score larger on these are those that provide tools outside the testing arena as they can build in integration to their other products and so when it comes down to the wire on some projects, we have gone with the tool that integrated with the products we already had. Cost In my opinion cost is the least significant in this matrix, why? Because all the tools are similar in price except Visual Test that is at least 5 times cheaper than the rest but as you will see from the matrix there is a reason. Although very functional it does not provide the range of facilities that the other tools do. Price typically ranges from $2,900 - $5,000 (depending on quantity brought, packages, etc) in the US and around 2,900 - 5,000 in the UK for the base tools included in this document. So you know the tools will all cost a similar price it is usually a case of which one will do the job for me rather than which is the cheapest. Visual Test I believe will prove to be a bigger hit as it expands its functional range it was not that long ago where it did not support web based testing. The prices are kept this high because they can. All the tools are roughly the same price and the volumes of sales is low relative to say a fully blown programming language IDE like JBuilder or Visual C++ which are a lot more function rich and flexible than any of the test tools. On top of the above prices you usually pay an additional maintenance fee of between 10 and 20%. There are not many applications I know that cost this much per license not even some very advanced operating systems. However it is all a matter of supply. The bigger the supply the less the price as you can spread the development costs more. However I do not anticipate a move on the prices upwards as this seems to be the price the market will tolerate. Visual Test also provides a free runtime license. Ease Of Use This section is very subjective but I have used testers (my guinea pigs) of various levels and got them from scratch to use each of the tools. In more cases than not they have agreed on which was the easiest to use (initially). Obviously this can change as the tester becomes more experienced and the issues of say extensibility, script maintenance, integration, data-driven tests, etc are required. However this score is based on the productivity that can be gained in say the first three months when those issues are not such a big concern. Ease of use includes out the box functions, debugging facilities, layout on screen, help files and user manuals. Support In the UK this can be a problem as most of the test tool vendors are based in the USA with satellite branches in the UK. Just from my own experience and the testers I know in the UK. We have found Mercury to be the best for support, then Compuware, Rational and last Segue. However having said that you can find a lot of resources for Segue on the Internet including a forum at  HYPERLINK "http://www.betasoft.com" www.betasoft.com that can provide most of the answers rather than ringing the support line. On their website Segue and Mercury provide many useful user and vendor contributed material. I have also included various other criteria like the availability of skilled resources, online resources, validity of responses from the helpdesk, speed of responses and similar Object Tests Now presuming the tool of choice does work with the application you wish to test what services does it provide for testing object properties? Can it validate several properties at once? Can it validate several objects at once? Can you set object properties to capture the application state? This should form the bulk of your verification as far as the automation process is concerned so I have looked at the tools facilities on client/server as well as web based applications. Matrix What will follow after the matrix is a tool-by-tool comparison under the appropriate heading (as listed above) so that the user can get a feel for the tools functionality side by side. Each category in the matrix is given a rating of 1 5. 1 = Excellent support for this functionality, 2 = Good support but lacking or another tool provides more effective support, 3 = Basic/ support only. 4 = This is only supported by use of an API call or third party add-in but not included in the general test tool/below average, 5 = No support. Record & PlaybackWeb TestingDatabase testsData functionsObject MappingImage testingTest/Error recoveryObject Name MapObject Identity ToolExtensible LanguageEnvironment supportIntegrationCostEase of useSupportObject TestsWinRunner2112112122113211QA Run1212112212212221Silk Test1212111121233321Visual Test3343222412321322Robot1211112411212121 Matrix score Win Runner = 24 QARun = 25 SilkTest = 24 Visual Test = 39 Robot = 24 Sample Test Automation Tool Rational offers the most complete lifecycle toolset (including testing) of these vendors for the windows platform. When it comes to Object Oriented development they are the acknowledged leaders with most of the leading OO experts working for them. Some of their products are worldwide leaders e.g. Rational Robot, Rational Rose, Clear case, RequistePro, etc.Their Unified Process is a very good development model that I have been involved with which allows mapping of requirements to use cases, test cases and a whole set of tools to support the process. Rational Suite of tools Rational RequisitePro is a requirements management tool that helps project teams control the development process. RequisitePro organizes your requirements by linking Microsoft Word to a requirements repository and providing traceability and change management throughout the project lifecycle. A baseline version of RequisitePro is included with Rational Test Manager. When you define a test requirement in RequisitePro, you can access it in Test Manager. Rational Clear Quest is a change-request management tool that tracks and manages defects and change requests throughout the development process. With Clear Quest, you can manage every type of change activity associated with software development, including enhancement requests, defect reports, and documentation modifications. Rational Purify is a comprehensive C/C+ + run-time error checking tool that automatically pinpoints run-time errors and memory leaks in all components of an application, including third-party libraries, ensuring that code is reliable Rational Quantify is an advanced performance profiler that provides application performance analysis, enabling developers to quickly find, prioritize and eliminate performance bottlenecks within an application. Rational Pure Coverage is a customizable code coverage analysis tool that provides detailed application analysis and ensures that all code has been exercised, preventing untested code from reaching the end-user. Rational Suite Performance Studio is a sophisticated tool for automating performance tests on client/server systems. A client/server system includes client applications accessing a database or application server, and browsers accessing a Web server.Performance Studio includes Rational Robot and Rational Load Test. Use Robot to record client/server conversations and store them in scripts. Use Load Test to schedule and play back the scripts. Rational Robot. Facilitates functional and performance testing by automating record and playback of test scripts. Allows you to write, organize, and run tests, and to capture and analyze the results. Rational Test Factory. Automates testing by combining automatic test generation with source-code coverage analysis. Tests an entire application, including all GUI features and all lines of source code. During playback,Rational Load Test can emulate hundreds, even thousands, of users placing heavy loads and stress on your database and Web servers. Rational Test categorizes test information within a repository by project. You can use the Rational Administrator to create and manage projects. The tools that are to discussed here are Rational Administrator Rational Robot Rational Test Manager Rational Administrator What is a Rational Project? A Rational project is a logical collection of databases and data stores that associates the data you use when working with Rational Suite. A Rational project is associated with one Rational Test data store, one RequisitePro database, one Clear Quest databases, and multiple Rose models and RequisitePro projects, and optionally places them under configuration management. Rational administrator is used to create and manage rational repositories, users and groups and manage security privileges. How to create a new project? Open the Rational administrator and go to File->New Project. In the above window opened enter the details like Project name and location. Click Next. In the corresponding window displayed, enter the Password if you want to protect the project with password, which is required to connect to, configure or delete the project. Click Finish. In the configure project window displayed click the Create button. To manage the Requirements assets connect to Requisite Pro, to manage test assets create associated test data store and for defect management connect to Clear quest database.  Once the Create button in the Configure project window is chosen, the below seen Create Test Data store window will be displayed. Accept the default path and click OK button.  Once the below window is displayed it is confirmed that the Test datastore is successfully created and click OK to close the window.  Click OK in the configure project window and now your first Rational project is ready to play with. Rational Administrator will display your TestProject details as below:  Rational Robot Rational Robot to develop three kinds of scripts: GUI scripts for functional testing and VU and VB scripts for performance testing. Robot can be used to: Perform full functional testing. Record and play back scripts that navigate through your application and test the state of objects through verification points. Perform full performance testing. Use Robot and TestManager together to record and play back scripts that help you determine whether a multi-client system is performing within user-defined standards under varying loads. Create and edit scripts using the SQABasic, VB, and VU scripting environments. The Robot editor provides color-coded commands with keyword Help for powerful integrated programming during script development. Test applications developed with IDEs such as Visual Basic, Oracle Forms, PowerBuilder, HTML, and Java. Test objects even if they are not visible in the application's interface. Collect diagnostic information about an application during script playback. Robot is integrated with Rational Purify, Quantify, and PureCoverage. You can play back scripts under a diagnostic tool and see the results in the log. The Object-Oriented Recording technology in Robot lets you generate scripts quickly by simply running and using the application-under-test. Robot uses Object-Oriented Recording to identify objects by their internal object names, not by screen coordinates. If objects change locations or their text changes, Robot still finds them on playback. The Object Testing technology in Robot lets you test any object in the application-under-test, including the object's properties and data. You can test standard Windows objects and IDE-specific objects, whether they are visible in the interface or hidden. Robot login window  Once logged you will see the robot window. Go to File-> New->Script  In the above screen displayed enter the name of the script say First Script by which the script is referred to from now on and any description (Not mandatory).The type of the script is GUI for functional testing and VU for performance testing. Rational Robot main window-GUI script   The GUI Script top pane) window displays GUI scripts that you are currently recording, editing, or debugging. It has two panes: Asset pane (left) Lists the names of all verification points and low-level scripts for this script. Script pane (right) Displays the script. The Output window bottom pane) has two tabs: Build Displays compilation results for all scripts compiled in the last operation. Line numbers are enclosed in parentheses to indicate lines in the script with warnings and errors. Console Displays messages that you send with the SQAConsoleWrite command. Also displays certain system messages from Robot. To display the Output window: Click View Output. How to record a play back script? To record a script just go to Record->Insert at cursor Then perform the navigation in the application to be tested and once recording is done stop the recording. Record-> Stop Record and Playback options Go to Tools-> GUI Record options the below window will be displayed. In this window we can set general options like identification of lists, menus ,recording think time in General tab: Web browser tab: Mention the browser type IE or Netscape Robot Window: During recording how the robot should be displayed and hotkeys details Object Recognition Order: the order in which the recording is to happen . For ex: Select a preference in the Object order preference list. If you will be testing C++ applications, change the object order preference to C++ Recognition Order. Playback options Go to Tools-> Playback options to set the options needed while running the script.  This will help you to handle unexpected window during playback, error recovery, mention the time out period, to manage log and log data. Verification points A verification point is a point in a script that you create to confirm the state of an object across builds of the application-under-test. During recording, the verification point captures object information (based on the type of verification point) and stores it in a baseline data file. The information in this file becomes the baseline of the expected state of the object during subsequent builds. When you play back the script against a new build, Robot retrieves the information in the baseline file for each verification point and compares it to the state of the object in the new build. If the captured object does not match the baseline, Robot creates an actual data file. The information in this file shows the actual state of the object in the build. After playback, the results of each verification point appear in the log in Test Manager. If a verification point fails (the baseline and actual data do not match), you can select the verification point in the log and click View Verification Point to open the appropriate Comparator. The Comparator displays the baseline and actual files so that you can compare them. A verification point is stored in the project and is always associated with a script. When you create a verification point, its name appears in the Asset (left) pane of the Script window. The verification point script command, which always begins with Result =, appears in the Script (right) pane. Because verification points are assets of a script, if you delete a script, Robot also deletes all of its associated verification points. You can easily copy verification points to other scripts if you want to reuse them. List of Verification Points The following table summarizes each Robot verification point. TypeDescriptionAlphanumericCaptures and compares alphabetic or numeric values.ClipboardCaptures and compares alphanumeric data that has been copied to the Clipboard. File ComparisonCompares the contents of two files. File ExistenceChecks for the existence of a specified fileMenuCaptures and compares the text, accelerator keys, and state of menus. Captures up to five levels of sub-menus. Module ExistenceChecks whether a specified module is loaded into a specified context (process), or is loaded anywhere in memory. Object Data Captures and compares the data in objects.Object PropertiesCaptures and compares the properties of objects. Region ImageCaptures and compares a region of the screen (as a bitmap).Web Site Compare Captures a baseline of a Web site and compares it to the Web site at another point in time.Web Site ScanChecks the content of a Web site with every revision and ensures that changes have not resulted in defects.Window Existence Checks that the specified window is displayed before continuing with the playbackWindow Image Captures and compares the client area of a window as a bitmap (the menu, title bar, and border are not captured). About SQABasic Header Files SQABasic header files let you declare custom procedures, constants, and variables that you want to use with multiple scripts or SQABasic library source files. SQABasic files are stored in the SQABas32 folder of the project, unless you specify another location. You can specify another location by clicking Tools General Options. Click the Preferences tab. Under SQABasic path, use the Browse button to find the location. Robot will check this location first. If the file is not there, it will look in the SQABas32 directory. You can use Robot to create and edit SQABasic header files. They can be accessed by all modules within the project. SQABasic header files have the extension .sbh. Adding Declarations to the Global Header File For your convenience, Robot provides a blank header file called Global.sbh. Global.sbh is a project-wide header file stored in SQABas32 in the project. You can add declarations to this global header file and/or create your own. To open Global.sbh: 1.Click File Open SQABasic File. 2.Set the file type to Header Files (*.sbh). 3. Select global.sbh, and then click Open. Inserting a Comment into a GUI Script: During recording or editing, you can insert lines of comment text into a GUI script. Comments are helpful for documenting and editing scripts. Robot ignores comments at compile time. To insert a comment into a script during recording or editing. 1. If recording, click the Display GUI Insert Toolbar button on the GUI Record toolbar. If editing, position the pointer in the script and click the Display GUI Insert Toolbar button on the Standard toolbar. 2. Click the Comment button on the GUI Insert toolbar. 3. Type the comment (60 characters maximum). 4. Click OK to continue recording or editing. Robot inserts the comment into the script (in green by default) preceded by a single quotation mark. For example: ' This is a comment in the script To change lines of text into comments or to uncomment text: 1. Highlight the text. Click Edit Comment Line or Edit Uncomment Line. About Data pools A datapool is a test dataset. It supplies data values to the variables in a script during script playback. Datapools let you automatically pump test data to virtual testers under high-volume conditions that potentially involve hundreds of virtual testers performing thousands of transactions. Typically, you use a datapool so that: Each virtual tester that runs the script can send realistic data (which can include unique data) to the server. A single virtual tester that performs the same transaction multiple times can send realistic data to the server in each transaction. Using Datapools with GUI Scripts If you are providing one or more values to the client application during GUI recording, you might want a datapool to supply those values during playback. For example, you might be filling out a data entry form and providing values such as order number, part name, and so forth. If you plan to repeat the transaction multiple times during playback, you might want to provide a different set of values each time. A GUI script can access a datapool when it is played back in Robot. Also, when a GUI script is played back in a TestManager suite, the GUI script can access the same datapool as other scripts. There are differences in the way GUI scripts and sessions are set up for datapool access: You must add datapool commands to GUI scripts manually while editing the script in Robot. Robot adds datapool commands to VU scripts automatically. There is no DATAPOOL_CONFIG statement in a GUI script. The SQADatapoolOpen command defines the access method to use for the datapool. Although there are differences in setting up datapool access in GUI scripts and sessions, you define a datapool for either type of script using TestManager in exactly the same way. Debug menu The Debug menu has the following commands: Go Go Until Cursor Animate Pause Stop Set or Clear Breakpoints Clear All Breakpoints Step Over Step Into Step Out Note: The Debug menu commands are for use with GUI scripts only. Compiling the script When you play back a GUI script or VU script, or when you debug a GUI script, Robot compiles the script if it has been modified since it last ran. You can also compile scripts and SQABasic library source files manually. . To compile Do thisThe active script or library source fileClick File Compile.All scripts and library source files in the current projectClick File Compile All. Use this if, for example, you have made changes to global definitions that may affect all of your SQABasic files During compilation, the Build tab in the Output window displays compilation results and error messages with line numbers for all compiled scripts and library source files. The compilation results can be viewed in the Build tab of the Output window.  Compilation errors  After the script is created and compiled and errors fixed it can be executed. The results need to be analyzed in the Test Manager. Rational Test Manager Test Manager is the open and extensible framework that unites all of the tools, assets, and data both related to and produced by the testing effort. Under this single framework, all participants in the testing effort can define and refine the quality goals they are working toward. It is where the team defines the plan it will implement to meet those goals. And, most importantly, it provides the entire team with one place to go to determine the state of the system at any time. In Test Manager you can plan, design, implement, execute tests and evaluate results. With Test manager we can Create, manage, and run reports. The reporting tools help you track assets such as scripts, builds, and test documents, and track test coverage and progress. Create and manage builds, log folders, and logs. Create and manage data pools and data types When the script execution is started the following window will be displayed. The folder in which the log is to stored and the log name needs to be given in this window. Test Manager-Results screen  In the Results tab of the Test Manager, you could see the results stored. From Test Manager you can know start time of the script and  Supported environments Operating system WinNT4.0 with service pack 5 Win2000 WinXP(Rational 2002) Win98 Win95 with service pack1 Protocols Oracle SQL server HTTP Sybase Tuxedo SAP People soft Web browsers IE4.0 or later Netscape navigator (limited support) Markup languages HTML and DHTML pages on IE4.0 or later. Development environments Visual basic 4.0 or above Visual C++ Java Oracle forms 4.5 Delphi Power builder 5.0 and above The basic product supports Visual basic, VC++ and basic web pages. To test other types of application, you have to download and run a free enabler program from Rationals website. For more details visit www.rational.com Performance Testing The performance testing is a measure of the performance characteristics of an application. The main objective of a performance testing is to demonstrate that the system functions to specification with acceptable response times while processing the required transaction volumes in real-time production database. The objective of a performance test is to demonstrate that the system meets requirements for transaction throughput and response times simultaneously. The main deliverables from such a test, prior to execution, are automated test scripts and an infrastructure to be used to execute automated tests for extended periods. What is Performance testing? Performance testing of an application is basically the process of understanding how the web application and its operating environment respond at various user load levels. In general, we want to measure the latency, throughput, and utilization of the web site while simulating attempts by virtual users to simultaneously access the site. One of the main objectives of performance testing is to maintain a web site with low latency, high throughput, and low utilization. Why Performance testing? Performance problems are usually the result of contention for, or exhaustion of, some system resource. When a system resource is exhausted, the system is unable to scale to higher levels of performance. Maintaining optimum Web application performance is a top priority for application developers and administrators. Performance analysis is also carried for various purposes such as: During a design or redesign of a module or a part of the system, more than one alternative presents itself. In such cases, the evaluation of a design alternative is the prime mover for an analysis. Post-deployment realities create a need for the tuning the existing system. A systematic approach like performance analysis is essential to extract maximum benefit from an existing system. Identification of bottlenecks in a system is more of an effort at troubleshooting. This helps to replace and focus efforts at improving overall system response. As the user base grows, the cost of failure becomes increasingly unbearable. To increase confidence and to provide an advance warning of potential problems in case of load conditions, analysis must be done to forecast performance under load. Typically to debug applications, developers would execute their applications using different execution streams (i.e., completely exercise the application) in an attempt to find errors. When looking for errors in the application, performance is a secondary issue to features; however, it is still an issue. Performance Testing Objectives The objective of a performance test is to demonstrate that the system meets requirements for transaction throughput and response times simultaneously. This infrastructure is an asset and an expensive one too, so it pays to make as much use of this infrastructure as possible. Fortunately, this infrastructure is a test bed, which can be re-used for other tests with broader objectives. A comprehensive test strategy would define a test infrastructure to enable all these objectives be met. The performance testing goals are: End-to-end transaction response time measurements. Measure Application Server components performance under various loads. Measure database components performance under various loads. Monitor system resources under various loads. Measure the network delay between the server and clients Pre-Requisites for Performance Testing We can identify five pre-requisites for a performance test. Not all of these need be in place prior to planning or preparing the test (although this might be helpful), but rather, the list defines what is required before a test can be executed. First and foremost thing is The design specification or a separate performance requirements document should : Defines specific performance goals for each feature that is instrumented. Bases performance goals on customer requirements. Defines specific customer scenarios. Quantitative, relevant, measurable, realistic, achievable requirements As a foundation to all tests, performance requirements should be agreed prior to the test. This helps in determining whether or not the system meets the stated requirements. The following attributes will help to have a meaningful performance comparison. Quantitative - expressed in quantifiable terms such that when response times are measured, a sensible comparison can be derived. Relevant - a response time must be relevant to a business process. Measurable - a response time should be defined such that it can be measured using a tool or stopwatch and at reasonable cost. Realistic - response time requirements should be justifiable when compared with the durations of the activities within the business process the system supports. Achievable - response times should take some account of the cost of achieving them. Stable system A test team attempting to construct a performance test of a system whose software is of poor quality is unlikely to be successful. If the software crashes regularly, it will probably not withstand the relatively minor stress of repeated use. Testers will not be able to record scripts in the first instance, or may not be able to execute a test for a reasonable length of time before the software, middleware or operating systems crash. Realistic test environment The test environment should ideally be the production environment or a close simulation and be dedicated to the performance test team for the duration of the test. Often this is not possible. However, for the results of the test to be realistic, the test environment should be comparable to the actual production environment. Even with an environment which is somewhat different from the production environment, it should still be possible to interpret the results obtained using a model of the system to predict, with some confidence, the behavior of the target environment. A test environment which bears no similarity to the actual production environment may be useful for finding obscure errors in the code, but is, however, useless for a performance test. Performance Requirements Performance requirements normally comprise three components: Response time requirements Transaction volumes detailed in Load Profiles Database volumes Response time requirements When asked to specify performance requirements, users normally focus attention on response times, and often wish to define requirements in terms of generic response times. A single response time requirement for all transactions might be simple to define from the users point of view, but is unreasonable. Some functions are critical and require short response times, but others are less critical and response time requirements can be less stringent. Load profiles The second component of performance requirements is a schedule of load profiles. A load profile is the level of system loading expected to occur during a specific business scenario. Business scenarios might cover different situations when the users organization has different levels of activity or involve a varying mix of activities, which must be supported by the system. Database volumes Data volumes, defining the numbers of table rows which should be present in the database after a specified period of live running complete the load profile. Typically, data volumes estimated to exist after one years use of the system are used, but two year volumes or greater might be used in some circumstances, depending on the business application. Performance Testing Process                        Activity  NO Deliverable  Internal Deliverable   YES Phase 1 Requirements Study This activity is carried out during the business and technical requirements identification phase. The objective is to understand the performance test requirements, Hardware & Software components and Usage Model. It is important to understand as accurately and as objectively as possible the nature of load that must be generated. Following are the important performance test requirement that needs to be captured during this phase. Response Time Transactions Per Second Hits Per Second Workload No of con current users Volume of data Data growth rate Resource usage Hardware and Software configurations ActivityWork itemsPerformance- Stress Test, Load Test, Volume Test, Spike Test, Endurance TestUnderstand the system and application model Server side and Client side Hardware and software requirements. Browser Emulation and Automation Tool Selection Decide on the type and mode of testing Operational Inputs Time of Testing, Client and Server side parameters. Deliverables DeliverableSampleRequirement Collection EMBED Word.Document.8 \s  Phase 2 Test Plan The following configuration information will be identified as part of performance testing environment requirement identification. Hardware Platform Server Machines Processors Memory Disk Storage Load Machines configuration Network configuration Software Configuration Operating System Server Software Client Machine Software Applications ActivityWork itemsTest Plan PreparationHardware and Software Details Test data Transaction Traversal that is to be tested with sleep times. Periodic status update to the client.Deliverables DeliverableSampleTest Plan EMBED Word.Document.8 \s Phase 3 Test Design Based on the test strategy detailed test scenarios would be prepared. During the test design period the following activities will be carried out: Scenario design Detailed test execution plan Dedicated test environment setup Script Recording/ Programming Script Customization (Delay, Checkpoints, Synchronizations points) Data Generation Parameterization/ Data pooling ActivityWork itemsTest Design GenerationHardware and Software requirements that includes the server components , the Load Generators used etc., Setting up the monitoring servers Setting up the data Preparing all the necessary folders for saving the results as the test is over. Pre Test and Post Test Procedures Deliverables DeliverableSample Test Design EMBED Word.Document.8 \s  Phase 4 Scripting ActivityWork itemsScriptingBrowse through the application and record the transactions with the tool Parameterization, Error Checks and Validations Run the script for single user for checking the validity of scripts Deliverables DeliverableSample Test Scripts EMBED Word.Document.8 \s  Phase 5 Test Execution The test execution will follow the various types of test as identified in the test plan. All the scenarios identified will be executed. Virtual user loads are simulated based on the usage pattern and load levels applied as stated in the performance test strategy. The following artifacts will be produced during test execution period: Test logs Test Result ActivityWork itemsTest ExecutionStarting the Pre Test Procedure scripts which includes start scripts for server monitoring. Modification of automated scripts if necessary Test Result Analysis Report preparation for every cycle  Deliverables DeliverableSample Test Execution EMBED Word.Document.8 \s  EMBED Word.Document.8 \s  Phase 6 Test Analysis ActivityWork itemsTest AnalysisAnalyzing the run results and preparation of preliminary report.  Deliverables DeliverableSample Test Analysis EMBED Word.Document.8 \s  Phase 7 Preparation of Reports The test logs and results generated are analyzed based on Performance under various load, Transaction/second, database throughput, Network throughput, Think time, Network delay, Resource usage, Transaction Distribution and Data handling. Manual and automated results analysis methods can be used for performance results analysis. The following performance test reports/ graphs can be generated as part of performance testing:- Transaction Response time Transactions per Second Transaction Summary graph Transaction performance Summary graph Transaction Response graph Under load graph Virtual user Summary graph Error Statistics graph Hits per second graph Throughput graph Down load per second graph Based on the Performance report analysis, suggestions on improvement or tuning will be provided to the design team: Performance improvements to application software, middleware, database organization. Changes to server system parameters. Upgrades to client or server hardware, network capacity or routing. ActivityWork itemsPreparation of ReportsPreparation of final report.  Deliverables DeliverableSample Final Report EMBED Word.Document.8 \s  Common Mistakes in Performance Testing No Goals No general purpose model Goals =>Techniques, Metrics, Workload Not trivial Biased Goals To show that OUR system is better than THEIRS Analysts = Jury Unsystematic Approach Analysis without Understanding the Problem Incorrect Performance Metrics Unrepresentative Workload Wrong Evaluation Technique Overlook Important Parameters Ignore Significant Factors Inappropriate Experimental Design Inappropriate Level of Detail No Analysis Erroneous Analysis No Sensitivity Analysis Ignoring Errors in Input Improper Treatment of Outliers Assuming No Change in the Future Ignoring Variability Too Complex Analysis Improper Presentation of Results Ignoring Social Aspects Omitting Assumptions and Limitations Benchmarking Lessons Ever build needs to be measured. We should run the automated performance test suite against every build and compare the results against previous results. Also, we should run the performance test suite under controlled conditions from build to build. This typically means measuring performance on "clean" test environments. Performance issues must be identified as soon as possible to prevent further degradation. Performance goals needs to be ensured. If we decide to make performance a goal and a measure of the quality criteria for release, the management team must decide to enforce the goals. Establish incremental performance goals throughout the product development cycle. All the members in the team should agree that a performance issue is not just a bug; it is a software architectural problem. Performance testing of Web services and applications is paramount to ensuring an excellent customer experience on the Internet. The Web Capacity Analysis (WebCAT) tool provides Web server performance analysis; the tool can also assess Internet Server Application Programming Interface and application server provider (ISAPI/ASP) applications. Creating an automated test suite to measure performance is time-consuming and labor-intensive. Therefore, it is important to define concrete performance goals. Without defined performance goals or requirements, testers must guess, without a clear purpose, at how to instrument tests to best measure various response times. The performance tests should not be used to find functionality-type bugs. Design the performance test suite to measure response times and not to identify bugs in the product. Design the build verification test (BVT) suite to ensure that no new bugs are injected into the build that would prevent the performance test suite from successfully completing. The performance tests should be modified consistently. Significant changes to the performance test suite skew or make obsolete all previous data. Therefore, keep the performance test suite fairly static throughout the product development cycle. If the design or requirements change and you must modify a test, perturb only one variable at a time for each build. Strive to achieve the majority of the performance goals early in the product development cycle because: Most performance issues require architectural change. Performance is known to degrade slightly during the stabilization phase of the development cycle. Achieving performance goals early also helps to ensure that the ship date is met because a product rarely ships if it does not meet performance goals. You shouldreuse automated performance tests Automated performance tests can often be reused in many other automated test suites. For example, incorporate the performance test suite into the stress test suite to validate stress scenarios and to identify potential performance issues under different stress conditions. Tests are capturing secondary metrics when the instrumented tests have nothing to do with measuring clear and established performance goals. Although secondary metrics look good on wall charts and in reports, if the data is not going to be used in a meaningful way to make improvements in the engineering cycle, it is probably wasted data. En sure that you know what you are measuring and why. Testing for most applications will be automated. Tools used for testing would be the tool specified in the requirement specification. The tools used for performance testing are Loadrunner 6.5 and Webload 4.5x Tools LoadRunner 6.5 LoadRunner is Mercury Interactives tool for testing the performance of client/server systems. LoadRunner enables you to test your system under controlled and peak load conditions. To generate load, LoadRunner runs thousands of Virtual Users that are distributed over a network. Using a minimum of hardware resources, these Virtual users provide consistent. Repeatable and measurable load to execute your client/server system just as real users would. LoadRunners in depth reports and graphs provide the information that you need to evaluate the performance of your client/server system. WebLoad 4.5 Webload is a testing tool for testing the scalability, functionality and performance of Web-based applications both Internet and Intranet. It can measure the performance of your application under any load conditions. Use WebLoad to test how well your web site will perform under real-world conditions by combining performance, load and functional tests or by running them individually. Webload supports HTTP1.0 and 1.1, including cookies, proxies, SSL, TSL, client certificates, authentifications, persistent connections and chunked transfer coding. Webload generates load by creating virtual clients that emulate network traffic. You create test scripts (called agendas) using Java Scripts that instruct those virtual clients about what to do. When Webload runs the test, it gathers results at a per-client, per-transaction and per-instance level from the computers that are generating the load. Webload can also gather information servers performance monitor. You can watch the results as they occur- Webload displays them in graphs and tables in real-time and you can save and export the results when the test is finished. Performance Testing Tools - summary and comparison This table lists several performance testing tools available on the market. For your convenience we compared them based on cost and OS required.  Tool Name URL Cost OS Description Web Performance Trainer http://www.webperf center.com/loadtesting. html Price ($) per number of virtual users: 1400-100 2495-200 4995-300 7995-1000 11995-5000 Windows NT, Windows 2000, Linux Solaris Load test tool emphasizing ease-of-use. Supports all browsers and web servers; simulates up to 200 users per playback machine at various connection speeds; records and allows viewing of exact bytes flowing between browser and server. Modem simulation allows each virtual user to be bandwidth limited. Can automatically handle variations in session-specific items such as cookies, usernames, passwords, and any other parameter to simulate multiple virtual users. Notes: downloadable, will emulate 25 users, and will expire in 2 weeks (may be extend) Astra LoadTest http://www.astratryand buy.com Price ($) per number of virtual users: 9995-50 17995-100 29995-250 SunOS, HP-UX, IBM AIX, NCR, Windows NT, WIN2000 Mercury's load/stress testing tool; includes record/playback capabilities; integrated spreadsheet parameterizes recorded input to exercise application with a wide variety of data. 'Scenario Builder' visually combines virtual users and host machines for tests representing real user traffic. 'Content Check' checks for failures under heavy load; Real-time monitors and analysis Notes: downloadable, evaluation version Benchmark Factory http://www.benchmark factory.com $ Windows NT, Windows2000 E-commerce load testing tool from Client/Server Solutions, Inc. Includes record/playback, web form processing, user sessions, scripting, cookies, SSL. Also includes pre-developed industry standard benchmarks such as AS3AP, Set-Query, Wisconsin, WebStone, and others. Includes optimized database drivers for vendor-neutral comparisons - MS SQL Server, Oracle 7 and 8, Sybase System 11, ODBC, IBM's DB2 CLI, Informix. Notes: downloadable (?), after submitting information A Page with suggestion to apply for next infos to closest dealers appeared Radview's WebLoad http://www.radview.com $ Win95/98 Windows NT, Windows 2000 Solaris, AIX Supports recording of SSL sessions, cookies, proxies, password authentication, dynamic HTML; multiple platforms Notes: downloadable, Evaluation version does not support SSl MS Web Application Stress Test http://homer.rte.microsoft. com Free Windows NT, Windows2000 Microsoft stress test tool created by Microsoft's Internal Tools Group (ITG) and subsequently made available for external use. Includes record/playback, script recording from browser, SSL, adjustable delay between requests Notes: one of the advanced tools in the listing Rational Suite Performance Studio, Rational SiteLoad http://www.rational.com/ products $ Windows NT, Windows2000, Unix Rational's client/server and web performance testing tool. 'LoadSmart Scheduling' capabilities allow complex usage scenarios and randomized transaction sequences; handles dynamic web pages. Notes: request a cd only. Not downloadable Forecast http://www.facilita.co.uk $ Unix Load testing tool from Facilita Software for web, client-server, network, and database systems Notes: not downloadable Zeus http://webperf.zeus. co.uk/intro.html Free Unix Free web benchmarking/load testing tool available as source code; will compile on any UNIX platform Notes: unsupportable (?), broken download link. E-Load http://www.rswsoftware. com/products/eload_ index.shtml $ Win95/98/ Windows NT Load test tool from RSW geared to testing web applications under load and testing scalability of E-commerce applications. For use in conjunction with test scripts from their e-Tester functional test tool. Allows on-the-fly changes and has real-time reporting capabilities. Notes: downloadable, free cd request, evaluation copy HTTP-Load http://www.acme.com/ software/http_load Free Unix Free load test application to generate web server loads Notes: free and easy. QALoad http://www.compuware. com/products/auto/ releases/QALoad.htm $ Win95/NT - manager; Unix, Windows NT - load test player Compuware's QALoad for load/stress testing of database, web, and char-based systems, works with such middleware as: SQLnet, DBLib or CBLib, SQL Server, ODBC, Telnet, and Web Notes : free cd request SilkPerformer http://www.segue.com/ html/s_solutions/s_perf ormer/s_performer.htm $ Windows NT, Windows 2000 Load and performance testing component of Segue's Silk web testing toolset. Notes: no download. WEBArt http://www.oclc.org/ webart $ Windows 98, Windows NT 4.0, Windows 2000, SunOS/Solaris, AIX, Linux Tool for load testing of up to 100-200 simulated users; also includes functional and regression testing capabilities, and capture/playback and scripting language. Evaluation copy avail. Notes: downloadable Webload http://www.ca.com/ products/platinum/ appdev/fe_iltps.htm $ AIX, Windows NT, Windows 95, Sun Solaris Final Exam WebLoad integration and pre-deployment testing ensures the reliability, performance, and scalability of Web applications. It generates and monitors load stress tests - which can be recorded during a Web session with any browser - and assesses Web application performance under user-defined variable system loads. Load scenarios can include unlimited numbers of virtual users on one or more load servers, as well as single users on multiple client workstations. Notes: downloadable, 15day eval. period Microsoft WCAT load test tool http://msdn.microsoft. com/workshop/server/ toolbox/wcat.asp Free Windows NT, Windows 2000 Web load test tool from Microsoft for load testing of MS IIS on NT Webspray http://www.redhillnet works.com $199 ($99 with discount) Windows 98, Windows NT 4.0, Windows 2000 Load testing tool; includes link testing capabilities; can simulate up to 1,000 clients from a single IP address; also supports multiple IP addresses with or without aliases. Notes: not downloadable WebSizr, WebCorder http://www.technova tions.com/home.htm $ Win95(98), Windows NT, Windows 2000 Load testing and capture/playback tools from Technovations. WebSizr load testing tool supports authentication, cookies, redirects Notes: downloadable, 30 eval. period.  Architecture Benchmarking Hardware Benchmarking - Hardware benchmarking is performed to size the application with the planned Hardware platform. It is significantly different from capacity planning exercise in that it is done after development and before deployment Software Benchmarking - Defining the right placement and composition of software instances can help in vertical scalability of the system without addition of hardware resources. This is achieved through software benchmark test. General Tests What follows is a list of tests adaptable to assess the performance of most systems. The methodologies below are generic, allowing one to use a wide range of tools to conduct the assessments. Methodology Definitions Result: provide information about what the test will accomplish. Purpose: explains the value and focus of the test, along with some simple background information that might be helpful during testing. Constraints: details any constraints and values that should not be exceeded during testing. Time estimate: a rough estimate of the amount of time that the test may take to complete. Type of workload: in order to properly achieve the goals of the test, each test requires a certain type of workload. This methodology specification provides information on the appropriate script of pages or transactions for the user. Methodology: a list of suggested steps to take in order to assess the system under test. What to look for: contains information on behaviors, issues and errors to pay attention to during and after the test. Performance Metrics The Common Metrics selected /used during the performance testing is as below Response time Turnaround time = the time between the submission of a batch job and the completion of its output. Stretch Factor: The ratio of the response time with single user to that of concurrent users. Throughput: Rate (requests per unit of time) Examples: Jobs per second Requests per second Millions of Instructions Per Second (MIPS) Millions of Floating Point Operations Per Second (MFLOPS) Packets Per Second (PPS) Bits per second (bps) Transactions Per Second (TPS) Capacity: Nominal Capacity: Maximum achievable throughput under ideal workload conditions. E.g., bandwidth in bits per second. The response time at maximum throughput is too high. Usable capacity: Maximum throughput achievable without exceeding a pre-specified response-time limit Efficiency: Ratio usable capacity to nominal capacity. Or, the ratio of the performance of an n-processor system to that of a one-processor system is its efficiency. Utilization: The fraction of time the resource is busy servicing requests. Average Fraction used for memory. As tests are executed, metrics such as response times for transactions, HTTP requests per second, throughput etc., should be collected. It is also important to monitor and collect the statistics such as CPU utilization, memory, disk space and network usage on individual web, application and database servers and make sure those numbers recede as load decreases. Cognizant has built custom monitoring tools to collect the statistics. Third party monitoring tools are also used based on the requirement. Client Side Statistics Running Vusers Hits per Second Throughput HTTP Status Code HTTP responses per Second Pages downloaded per Second Transaction response time Page Component breakdown time Page Download time Component size Analysis Error Statistics Errors per Second Total Successful/Failed Transactions Server Side Statistics System Resources - Processor Utilization, Memory and Disk Space Web Server ResourcesThreads, Cache Hit Ratio Application Server ResourcesHeap size, JDBC Connection Pool Database Server ResourcesWait Events, SQL Queries Transaction Profiling Code Block Analysis Network Statistics Bandwidth Utilization Network delay time Network Segment delay time Conclusion Performance testing is an independent discipline and involves all the phases as the mainstream testing lifecycle i.e strategy, plan, design, execution, analysis and reporting. Without the rigor described in this paper, executing performance testing does not yield anything more than finding more defects in the system. However, if executed systematically with appropriate planning, performance testing can unearth issues that otherwise cannot be done through mainstream testing. It is very typical of the project manager to be overtaken by time and resource pressures leading not enough budget being allocated for performance testing, the consequences of which could be disastrous to the final system. There is another flip side of the coin. However there is an important point to be noted here. Before testing the system for performance requirements, the system should have been architected and designed for meeting the required performance goals. If not, it may be too late in the software development cycle to correct serious performance issues. Web-enabled applications and infrastructures must be able to execute evolving business processes with speed and precision while sustaining high volumes of changing and unpredictable user audiences. Load testing gives the greatest line of defense against poor performance and accommodates complementary strategies for performance management and monitoring of a production environment. The discipline helps businesses succeed in leveraging Web technologies to their best advantage, enabling new business opportunity lowering transaction costs and strengthening profitability. Fortunately, robust and viable solutions exist to help fend off disasters that result from poor performance. Automated load testing tools and services are available to meet the critical need of measuring and optimizing complex and dynamic application and infrastructure performance. Once these solutions are properly adopted and utilized, leveraging an ongoing, lifecycle-focused approach, businesses can begin to take charge and leverage information technology assets to their competitive advantage. By continuously testing and monitoring the performance of critical software applications, business can confidently and proactively execute strategic corporate initiatives for the benefit of shareholders and customers alike. Load Testing Load Testing is creation of a simulated load on a real computer system by using virtual users who submit work as real users would do at real client workstations and thus testing the systems ability to support such workload. Testing of critical web applications during its development and before its deployment should include functional testing to confirm to the specifications, performance testing to check if it offers an acceptable response time and load testing to see what hardware or software configuration will be required to provide acceptable response time and handle the load that will created by the real users of the system Why is load testing important ? Load Testing increases the uptime for critical web applications by helping you spot the bottlenecks in the system under large user stress scenarios before they happen in a production environment When should load testing be done? Load testing should be done when the probable cost of the load test is likely less than the cost of a failed application deployment. Thus a load testing is accomplished by stressing the real application under simulated load provided by virtual users. Load Testing Process System Analysis This is the first step when the project decides on load testing for its system. Evaluation of the requirements and needs of a system, prior to load testing will provide more realistic test conditions. For this one should know all key performance goals and objectives like number of concurrent connections, hits per second etc., Another important analysis of the system would also include the appropriate strategy for testing applications. It can be load testing or stress testing or capacity testing. Load Testing is used to test the application against a requested number of users. The objective is to determine whether the site can sustain a requested number of users with acceptable response times. Stress testing is nothing but load testing over extended periods of time to validate an applications stability and reliability. Similarly capacity testing is used to determine the maximum number of concurrent users that an application can manage. Hence for businesses capacity testing would be the benchmark to say that the maximum loads of concurrent users the site can sustain before the system fails. Finally it should also be taken into consideration of the test tool which supports load testing by determining its multithreading capabilities and the creation of number of virtual users with minimal resource consumption and maximal virtual user count. User Scripts Once the analysis of the system is done the next step would be the creation of user scripts. A script recorder can be used to capture all the business processes into test scripts and this more often referred as virtual users or virtual user scripts. A virtual user is nothing but an emulated real user who drives the real application as client. All the business process should be recorded end to end so that these transactions will assist in breakdown of all actions and the time it takes to measure the performance of business process. Settings Run time settings should be defined the way the scripts should be run in order to accurately emulate real users. Settings can configure the number of concurrent connections, test run time, follow HTTP redirects etc., System response times also can vary based on the connection speed. Hence throttling bandwidth can emulate dial up connections at varying modem speeds (28.8 Kbps or 56.6 Kbps or T1 (1.54M) etc. Performance Monitoring Every component of the system needs monitoring :the clients, the network, the webs server, the application server, the database etc., This will result in instantly identifying the performance bottle necks during load testing. But if the tools support real time monitoring then testers would be able to view the application performance at any time during the test. Thus running the load test scenario and monitoring the performance would accelerate the test process thereby producing a more stable application Analyzing Results The last but most important step in load testing is collecting and processing the data to resolve performance bottlenecks. The reports generated can be anything ranging from Number of hits, number of test clients, requests per second, socket errors etc., Hence analyzing the results will isolate bottle necks and determine which changes are needed to improve the system performance. After these changes are made the tests must re run the load test scenarios to verify adjustments. Load Testing with WAST Web Application Stress is a tool to simulate large number of users with a relatively small number of client machines. Performance data on an web application can be gathered by stressing the website and measuring the maximum requests per second that the web server can handle. The next step is to determine which resource prevents the requests per second from going higher, such as CPU, memory, or backend dependencies. Conclusion Load testing is the measure of an entire Web application's ability to sustain a number of simultaneous users and transactions, while maintaining adequate response times. It is the only way to accurately test the end-to-end performance of a Web site prior to going live. Two common methods for implementing this load testing process are manual and automated testing. Manual testing would involve Coordination of the operations of users Measure response times Repeat tests in a consistent way Compare results As load testing is iterative in nature, the performance problems must be identified so that system can be tuned and retested to check for bottlenecks. For this reason, manual testing is not a very practical option. Today, automated load testing is the preferred choice for load testing a Web application. The testing tools typically use three major components to execute a test: A console, which organizes, drives and manages the load Virtual users, performing a business process on a client application Load servers, which are used to run the virtual users With automated load testing tools, tests can be easily rerun any number of times and the results can be reported automatically. In this way, automated testing tools provide a more cost-effective and efficient solution than their manual counterparts. Plus, they minimize the risk of human error during testing. Stress Testing Introduction to Stress Testing This testing is accomplished through reviews (product requirements, software functional requirements, software designs, code, test plans, etc.), unit testing, system testing (also known as functional testing), expert user testing (like beta testing but in-house), smoke tests, etc. All these testing activities are important and each plays an essential role in the overall effort but, none of these specifically look for problems like memory and resource management. Further, these testing activities do little to quantify the robustness of the application or determine what may happen under abnormal circumstances. We try to fill this gap in testing by using stress testing. Stress testing can imply many different types of testing depending upon the audience. Even in literature on software testing, stress testing is often confused with load testing and/or volume testing. For our purposes, we define stress testing as performing random operational sequences at larger than normal volumes, at faster than normal speeds and for longer than normal periods of time as a method to accelerate the rate of finding defects and verify the robustness of our product. Stress testing in its simplest form is any test that repeats a set of actions over and over with the purpose of breaking the product. The system is put through its paces to find where it may fail. As a first step, you can take a common set of actions for your system and keep repeating them in an attempt to break the system. Adding some randomization to these steps will help find more defects. How long can your application stay functioning doing this operation repeatedly? To help you reproduce your failures one of the most important things to remember to do is to log everything as you proceed. You need to know what exactly was happening when the system failed. Did the system lock up with 100 attempts or 100,000 attempts?[1] Note that there are many other types of testing which have not mentioned above, for example, risk based testing, random testing, security testing, etc. We have found, and it seems they agree, that it is best to review what needs to be tested, pick multiple testing types that will provide the best coverage for the product to be tested, and then master these testing types, rather than trying to implement every testing type. Some of the defects that we have been able to catch with stress testing that have not been found in any other way are memory leaks, deadlocks, software asserts, and configuration conflicts. For more details about these types of defects or how we were able to detect them, refer to the section Typical Defects Found by Stress Testing. Table 1 provides a summary of some of the strengths and weaknesses that we have found with stress testing. Table 1 Stress Testing Strengths and WeaknessesStrengthsWeaknessFind defects that no other type of test would findNot real world situationUsing randomization increase coverageDefects are not always reproducibleTest the robustness of the applicationOne sequence of operations may catch a problem right away, but use another sequence may never find the problemHelpful at finding memory leaks, deadlocks, software asserts, and configuration conflictsDoes not test correctness of system response to user input Background to Automated Stress Testing Stress testing can be done manually - which is often referred to as monkey testing. In this kind of stress testing, the tester would use the application aimlessly like a monkey - poking buttons, turning knobs, banging on the keyboard etc., in order to find defects. One of the problems with monkey testing is reproducibility. In this kind of testing, where the tester uses no guide or script and no log is recorded, its often impossible to repeat the steps executed before a problem occurred. Attempts have been made to use keyboard spyware, video recorders and the like to capture user interactions with varying (often poor) levels of success. Our applications are required to operate for long periods of time with no significant loss of performance or reliability. We have found that stress testing of a software application helps in accessing and increasing the robustness of our applications and it has become a required activity before every software release. Performing stress manually is not feasible and repeating the test for every software release is almost impossible, so this is a clear example of an area that benefits from automation, you get a return on your investment quickly, and it will provide you with more than just a mirror of your manual test suite. Previously, we had attempted to stress test our applications using manual techniques and have found that they were lacking in several respects. Some of the weaknesses of manual stress testing we found were: Manual techniques cannot provide the kind of intense simulation of maximum user interaction over time. Humans can not keep the rate of interaction up high enough and long enough. Manual testing does not provide the breadth of test coverage of the product features/commands that is needed. People tend to do the same things in the same way over and over so some configuration transitions do not get tested. Manual testing generally does not allow for repeatability of command sequences, so reproducing failures is nearly impossible. Manual testing does not perform automatic recording of discrete values with each command sequence for tracking memory utilization over time critical for detecting memory leaks. With automated stress testing, the stress test is performed under computer control. The stress test tool is implemented to determine the applications configuration, to execute all valid command sequences in a random order, and to perform data logging. Since the stress test is automated, it becomes easy to execute multiple stress tests simultaneously across more than one product at the same time. Depending on how the stress inputs are configured stress can do both positive and negative testing. Positive testing is when only valid parameters are provided to the device under test, whereas negative testing provides both valid and invalid parameters to the device as a way of trying to break the system under abnormal circumstances. For example, if a valid input is in seconds, positive testing would test 0 to 59 and negative testing would try 1 to 60, etc. Even though there are clearly advantages to automated stress testing, it still has its disadvantages. For example, we have found that each time the product application changes we most likely need to change the stress tool (or more commonly commands need to be added to/or deleted from the input command set). Also, if the input command set changes, then the output command sequence also changes given pseudo-randomization. Table 2 provides a summary of some of these advantages and disadvantages that we have found with automated stress testing. Table 2 Automated Stress Testing Advantages and DisadvantagesAdvantagesDisadvantagesAutomated stress testing is performed under computer controlRequires capital equipment and development of a stress test tool Capability to test all product application command sequencesRequires maintaince of the tool as the product application changesMultiple product applications can be supported by one stress toolReproducible stress runs must use the same input command setUses randomization to increase coverage; tests vary with new seed valuesDefects are not always reproducible even with the same seed valueRepeatability of commands and parameters help reproduce problems or verify that existing problems have been resolvedRequires test application information to be kept and maintainedInformative log files facilitate investigation of problemMay take a long time to execute In summary, automated stress testing overcomes the major disadvantages of manual stress testing and finds defects that no other testing types can find. Automated stress testing exercises various features of the system, at a rate exceeding that at which actual end-users can be expected to do, and for durations of time that exceed typical use. The automated stress test randomizes the order in which the product features are accessed. In this way, non-typical sequences of user interaction are tested with the system in an attempt to find latent defects not detectable with other techniques. To take advantage of automated stress testing, our challenge then was to create an automated stress test tool that would: Simulate user interaction for long periods of time (since it is computer controlled we can exercise the product more than a user can). Provide as much randomization of command sequences to the product as possible to improve test coverage over the entire set of possible features/commands. Continuously log the sequence of events so that issues can be reliably reproduced after a system failure. Record the memory in use over time to allow memory management analysis. Stress the resource and memory management features of the system. Automated Stress Testing Implementation Automated stress testing implementations will be different depending on the interface to the product application. The types of interfaces available to the product drive the design of the automated stress test tool. The interfaces fall into two main categories: Programmable Interfaces: Interfaces like command prompts, RS-232, Ethernet, General Purpose Interface Bus (GPIB), Universal Serial Bus (USB), etc. that accept strings representing command functions without regard to context or the current state of the device. Graphical User Interfaces (GUIs): Interfaces that use the Windows model to allow the user direct control over the device, individual windows and controls may or may not be visible and/or active depending on the state of the device. Programmable Interfaces These interfaces have allowed users to setup, control, and retrieve data in a variety of application areas like manufacturing, research and development, and service. To meet the needs of these customers, the products provide programmable interfaces, which generally support a large number of commands (1000+), and are required to operate for long periods of time, for example, on a manufacturing line where the product is used 24 hours a day, 7 days a week. Testing all possible combinations of commands on these products is practically impossible using manual testing methods. Programmable interface stress testing is performed by randomly selecting from a list of individual commands and then sending these commands to the device under test (DUT) through the interface. If a command has parameters, then the parameters are also enumerated by randomly generating a unique command parameter. By using a pseudo-random number generator, each unique seed value will create the same sequence of commands with the same parameters each time the stress test is executed. Each command is also written to a log file which can be then used later to reproduce any defects that were uncovered. For additional complexity, other variations of the automated stress test can be performed. For example, the stress test can vary the rate at which commands are sent to the interface, the stress test can send the commands across multiple interfaces simultaneously, (if the product supports it), or the stress test can send multiple commands at the same time. Graphical User Interfaces In recent years, Graphical User Interfaces have become dominant and it became clear that we needed a means to test these user interfaces analogous to that which is used for programmable interfaces. However, since accessing the GUI is not as simple as sending streams of command line input to the product application, a new approach was needed. It is necessary to store not only the object recognition method for the control, but also information about its parent window and other information like its expected state, certain property values, etc. An example would be a HELP menu item. There may be multiple windows open with a HELP menu item, so it is not sufficient to simply store click the HELP menu item, but you have to store click the HELP menu item for the particular window. With this information it is possible to uniquely define all the possible product application operations (i.e. each control can be uniquely identified). Additionally, the flow of each operation can be important. Many controls are not visible until several levels of modal windows have been opened and/or closed, for example, a typical confirm file overwrite dialog box for a File->Save As filename operation is not available until the following sequence has been executed: Set Context to the Main Window Select File->Save As Select Target Directory from tree control Type a valid filename into the edit-box Click the SAVE button If the filename already exists, either confirm the file overwrite by clicking the OK button in the confirmation dialog or click the cancel button. In this case, you need to group these six operations together as one big operation in order to correctly exercise this particular OK button. Data Flow Diagram A stress test tool can have many different interactions and be implemented in many different ways. Figure 1 shows a block diagram, which can be used to illustrate some of the stress test tool interactions. The main interactions for the stress test tool include an input file and Device Under Test (DUT). The input file is used here to provide the stress test tool with a list of all the commands and interactions needed to test the DUT.  Figure 1: Stress Test Tool Interactions Additionally, data logging (commands and test results) and system resource monitoring are very beneficial in helping determine what the DUT was trying to do before it crashed and how well it was able to manage its system resources. The basic flow control of an automated stress test tool is to setup the DUT into a known state and then to loop continuously selecting a new random interaction, trying to execute the interaction, and logging the results. This loop continues until a set number of interactions have occurred or the DUT crashes. Techniques Used to Isolate Defects Depending on the type of defect to be isolated, two different techniques are used: System crashes (asserts and the like) do not try to run the full stress test from the beginning, unless it only takes a few minutes to produce the defect. Instead, back-up and run the stress test from the last seed (for us this is normally just the last 500 commands). If the defect still occurs, then continue to reduce the number of commands in the playback until the defect is isolated. Diminishing resource issues (memory leaks and the like) are usually limited to a single subsystem. To isolate the subsystem, start removing subsystems from the database and re-run the stress test while monitoring the system resources. Continue this process until the subsystem causing the reduction in resources is identified. This technique is most effective after full integration of multiple subsystems (or, modules) has been achieved. Some defects are just hard to reproduce even with the same sequence of commands. These defects should still be logged into the defect tracking system. As the defect re-occurs, continue to add additional data to the defect description. Eventually, over time, you will be able to detect a pattern, isolate the root cause and resolve the defect. Some defects just seem to be un-reproducible, especially those that reside around page faults, but overall, we know that the robustness of our applications increases proportionally with the amount of time that the stress test will run uninterrupted. Test Case Coverage Test Coverage Test Coverage is an important measure of quality for software systems. Test Coverage analysis is the process of: Finding areas of a program not exercised by a set of test cases, Creating additional test cases to increase coverage, and Determining a quantitative measure of code coverage, which is an indirect measure of quality. Also an optional aspect of test coverage analysis is: Identifying redundant test cases that do not increase coverage. A test coverage analyzer automates this process. Test coverage analysis is sometimes called code coverage analysis. The two terms are synonymous. The academic world more often uses the term "test coverage" while practitioners more often use "code coverage". Test coverage analysis can be used to assure quality of the set of tests, and not the quality of the actual product. Coverage analysis requires access to test program source code and often requires recompiling it with a special command. Code coverage analysis is a structural testing technique (white box testing). Structural testing compares test program behavior against the apparent intention of the source code. This contrasts with functional testing (black-box testing), which compares test program behavior against a requirements specification. Structural testing examines how the program works, taking into account possible pitfalls in the structure and logic. Functional testing examines what the program accomplishes, without regard to how it works internally. Test coverage measures A large variety of coverage measures exist. Here is a description of some fundamental measures and their strengths and weaknesses Procedure-Level Test Coverage Probably the most basic form of test coverage is to measure what procedures were and were not executed during the test suite. This simple statistic is typically available from execution profiling tools, whose job is really to measure performance bottlenecks. If the execution time in some procedures is zero, you need to write new tests that hit those procedures. But this measure of test coverage is so coarse-grained it's not very practical. Line-Level Test Coverage The basic measure of a dedicated test coverage tool is tracking which lines of code are executed, and which are not. This result is often presented in a summary at the procedure, file, or project level giving a percentage of the code that was executed. A large project that achieved 90% code coverage might be considered a well-tested product. Typically the line coverage information is also presented at the source code level, allowing you to see exactly which lines of code were executed and which were not. This, of course, is often the key to writing more tests that will increase coverage: By studying the unexecuted code, you can see exactly what functionality has not been tested. Condition Coverage and Other Measures It's easy to find cases where line coverage doesn't really tell the whole story. For example, consider a block of code that is skipped under certain conditions (e.g., a statement in an if clause). If that code is shown as executed, you don't know whether you have tested the case when it is skipped. You need condition coverage to know. There are many other test coverage measures. However, most available code coverage tools do not provide much beyond basic line coverage. In theory, you should have more. But in practice, if you achieve 95+% line coverage and still have time and budget to commit to further testing improvements, it is an enviable commitment to quality! How Test Coverage Tools Work To monitor execution, test coverage tools generally "instrument" the program by inserting "probes". How and when this instrumentation phase happens can vary greatly between different products. Adding probes to the program will make it bigger and slower. If the test suite is large and time-consuming, the performance factor may be significant. Source-Level Instrumentation Some products add probes at the source level. They analyze the source code as written, and add additional code (such as calls to a code coverage runtime) that will record where the program reached. Such a tool may not actually generate new source files with the additional code. Some products, for example, intercept the compiler after parsing but before code generation to insert the changes they need. One drawback of this technique is the need to modify the build process. A separate version namely, code coverage version in addition to other versions, such as debug (un optimized) and release (optimized) needs to be maintained. Proponents claim this technique can provide higher levels of code coverage measurement (condition coverage, etc.) than other forms of instrumentation. This type of instrumentation is dependent on programming language -- the provider of the tool must explicitly choose which languages to support. But it can be somewhat independent of operating environment (processor, OS, or virtual machine). Executable Instrumentation Probes can also be added to a completed executable file. The tool will analyze the existing executable, and then create a new, instrumented one. This type of instrumentation is independent of programming language. However, it is dependent on operating environment -- the provider of the tool must explicitly choose which processors or virtual machines to support. Runtime Instrumentation Probes need not be added until the program is actually run. The probes exist only in the in-memory copy of the executable file; the file itself is not modified. The same executable file used for product release testing should be used for code coverage. Because the file is not modified in any way, just executing it will not automatically start code coverage (as it would with the other methods of instrumentation). Instead, the code coverage tool must start program execution directly or indirectly. Alternatively, the code coverage tool will add a tiny bit of instrumentation to the executable. This new code will wake up and connect to a waiting coverage tool whenever the program executes. This added code does not affect the size or performance of the executable, and does nothing if the coverage tool is not waiting. Like Executable Instrumentation, Runtime Instrumentation is independent of programming language but dependent on operating environment. Test Coverage Tools at a Glance There are lots of tools available for measuring Test coverage. CompanyProductOSLang HYPERLINK "http://www.bullseye.com/" BullseyeBullseyeCoverageWin32, UnixC/C++ HYPERLINK "http://www.compuware.com/" CompuWareDevPartnerWin32C/C++, Java, VB HYPERLINK "http://www.rational.com/" Rational(IBM)PurifyPlus  !#$(578?QRfghiɺ岧rdrJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuh f5OJQJ\]^J$jh f5OJQJU\]^Jh f5CJOJQJjh fUh f5B*OJQJ\phh f5OJQJ\h fOJQJh f5B*CJ\aJphh fB*CJ0aJ0phh fB*CJ0OJQJaJ0phh f5CJ\aJh f5B*CJ$\aJ$ph   !"#$%&'(5679:$a$$@&a$:;<=>?Q3  t # / O a(I    $a$iĪoZoDZ4Zh5OJQJmHnHu+j{h f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu1h f0J5B*OJQJ^JaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu   - . / 0 1 2 3 4 5 P Q Ӱ皉zgzRgCghOJQJmHnHu(jqh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphuQ R S V W ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jgh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu     , - ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j]h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu- . / 2 3 S T U n o p q r s t u v ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jSh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jIh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu       ! " # $ % ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(j?h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu% @ A B C D E d e f  Īq\qF\6\h5OJQJmHnHu+j5h f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu Ӱ皉zgzRgCghOJQJmHnHu(j+h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu   ( ) * , - . / 0 1 L M ѹqbѨNANh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j! h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu.h f0JB*OJQJaJmHnHphsH u/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuM N O R S p q r ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j h f>*OJQJUmHnHu   ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j h f>*OJQJUmHnHu     - . / H I J L M N O P Q l m ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j h f>*OJQJUmHnHum n o r s ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(j h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j~ h f>*OJQJUmHnHu Īq\qF\6\h5OJQJmHnHu+j h f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jt h f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu ?@AZ[\^_`abc~Ӱ皉zgzRgCghOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jjh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphuѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j`h f>*OJQJUmHnHu!"#%&'()*EFѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jVh f>*OJQJUmHnHuFGHKLqrsѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jLh f>*OJQJUmHnHuĪq\qF\6\h5OJQJmHnHu+jh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jBh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu   '()BCDFGHIJKfgӰ皉zgzRgCghOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+j8h f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphughilm{|}ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j.h f>*OJQJUmHnHuICCMy5HS^$      ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j$h f>*OJQJUmHnHu!"#<=>@ABCDE`aѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuabcfgz{|ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuĪq\qF\6\h5OJQJmHnHu+jh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu!"#<=>@ABCDE`aӰ皉zgzRgCghOJQJmHnHu(jwh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphuabcfgѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jmh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jch fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu+,-FGHJKLMĪq\qF\6\h5OJQJmHnHu+jYh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHuMNOjklmpqӸ碕{j{_{R82jh f0J5B*OJQJUmHnHphuh f;aJmHnHuhmHnHu jOh fUmHnHujh fUmHnHuh fmHnHuh f:aJmHnHu*h f0JB*OJQJaJmHnHphu#jh f>*UmHnHuh fmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu   ép[pE[5[h5OJQJmHnHu+jEh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jh f5>*OJQJUmHnHuh f5OJQJmHnHu)h f0J5B*OJQJmHnHphu/01256WXYrstvwxyz{Ӱ皉zgzRgCghOJQJmHnHu(j;h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphuѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j1 h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu ./0234567ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(j'!h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j h f>*OJQJUmHnHu7RSTUVWefgĪq\qF\6\h5OJQJmHnHu+j"h f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.j!h f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu Ӱ皉zgzRgCghOJQJmHnHu(j#h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+j"h f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu   &'(ABCEFGHIJefѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j $h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j#h f>*OJQJUmHnHufghklѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j$h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j$h f>*OJQJUmHnHu ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j%h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jz%h f>*OJQJUmHnHu !"%&123LMNPQRSTUѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(j&h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jp&h f>*OJQJUmHnHuUpqrstuĪq\qF\6\h5OJQJmHnHu+j'h f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jf'h f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu"#Ӱ皉zgzRgCghOJQJmHnHu(j(h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+j\(h f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu#$%()<=>WXY[\]^_`{|ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j)h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jR)h f>*OJQJUmHnHu|}~ѺtcOBOh fOJQJmHnHu&h f0JB*OJQJmHnHphu h f:OJQJaJmHnHuhOJQJmHnHu(j*h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu-h f0JB*OJQJ\aJmHnHphu/jh f0JB*OJQJUmHnHphu+jH*h f>*OJQJUmHnHu!"#$%&ABѺtcOBOh fOJQJmHnHu&h f0JB*OJQJmHnHphu h f:OJQJaJmHnHuhOJQJmHnHu(j+h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu-h f0JB*OJQJ\aJmHnHphu/jh f0JB*OJQJUmHnHphu+j>+h f>*OJQJUmHnHuBCDefgѺtcOBOh fOJQJmHnHu&h f0JB*OJQJmHnHphu h f:OJQJaJmHnHuhOJQJmHnHu(j,h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu-h f0JB*OJQJ\aJmHnHphu/jh f0JB*OJQJUmHnHphu+j4,h f>*OJQJUmHnHuѺtcOBOh fOJQJmHnHu&h f0JB*OJQJmHnHphu h f:OJQJaJmHnHuhOJQJmHnHu(j-h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu-h f0JB*OJQJ\aJmHnHphu/jh f0JB*OJQJUmHnHphu+j*-h f>*OJQJUmHnHu567PQRTUVWXYtuѺtcOBOh fOJQJmHnHu&h f0JB*OJQJmHnHphu h f:OJQJaJmHnHuhOJQJmHnHu(j.h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu-h f0JB*OJQJ\aJmHnHphu/jh f0JB*OJQJUmHnHphu+j .h f>*OJQJUmHnHuW ge q-=? !k!!-""":#        uvwz{ѹqbѨNANh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j/h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu.h f0JB*OJQJaJmHnHphsH u/jh f0JB*OJQJUmHnHphu+j/h f>*OJQJUmHnHu   &'ѺtcOBOh fOJQJmHnHu&h f0JB*OJQJmHnHphu h f:OJQJaJmHnHuhOJQJmHnHu(j0h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu-h f0JB*OJQJ\aJmHnHphu/jh f0JB*OJQJUmHnHphu+j 0h f>*OJQJUmHnHu'()EFG`abdefghiѺtcOBOh fOJQJmHnHu&h f0JB*OJQJmHnHphu h f:OJQJaJmHnHuhOJQJmHnHu(j}1h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu-h f0JB*OJQJ\aJmHnHphu/jh f0JB*OJQJUmHnHphu+j1h f>*OJQJUmHnHuѺtcOBOh fOJQJmHnHu&h f0JB*OJQJmHnHphu h f:OJQJaJmHnHuhOJQJmHnHu(js2h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu-h f0JB*OJQJ\aJmHnHphu/jh f0JB*OJQJUmHnHphu+j1h f>*OJQJUmHnHu23ѸraM@Mh fOJQJmHnHu&h f0JB*OJQJmHnHphu h f:OJQJaJmHnHuhOJQJmHnHu(ji3h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu1h f0JB*OJQJ\aJmHnHphsH u/jh f0JB*OJQJUmHnHphu+j2h f>*OJQJUmHnHu34589CDE^_`bcdefgѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(j_4h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j3h f>*OJQJUmHnHugĪoZoDZ4Zh5OJQJmHnHu+jU5h f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu1h f0J5B*OJQJ^JaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.j4h f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu    '(Ӱ皉zgzRgCghOJQJmHnHu(jK6h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+j5h f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu()*./OPQjklnopqrsѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jA7h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j6h f>*OJQJUmHnHuѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j78h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j7h f>*OJQJUmHnHu   &'(*+,-./JKѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j-9h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j8h f>*OJQJUmHnHuKLMQRhijѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j#:h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j9h f>*OJQJUmHnHu ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j;h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j:h f>*OJQJUmHnHu   678:;<=>?ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(j<h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j;h f>*OJQJUmHnHu?Z[\]_`ijkĪq\qF\6\h5OJQJmHnHu+j=h f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.j<h f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu  Ӱ皉zgzRgCghOJQJmHnHu(j=h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+j=h f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu      8 9 : < = > ? @ A \ ] ѺtcOBOh fOJQJmHnHu&h f0JB*OJQJmHnHphu h f:OJQJaJmHnHuhOJQJmHnHu(j>h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu-h f0JB*OJQJ\aJmHnHphu/jh f0JB*OJQJUmHnHphu+jv>h f>*OJQJUmHnHu] ^ _ c d x y z ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(j?h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jl?h f>*OJQJUmHnHu !!!!Īq\qF\6\h5OJQJmHnHu+j@h f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jb@h f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu!!! !!!"!#!'!(!I!J!K!d!e!f!h!i!j!k!l!m!!!Ӱ皉zgzRgCghOJQJmHnHu(jAh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jXAh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu!!!!!!!!!!!!!!!!!!!ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jBh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jNBh f>*OJQJUmHnHu!!!!! " " "&"'"("*"+","-"."/"J"K"ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jCh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jDCh f>*OJQJUmHnHuK"L"M"Q"R"p"q"r""""""""""""ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jDh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j:Dh f>*OJQJUmHnHu"""""""""""""""""##ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jEh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j0Eh f>*OJQJUmHnHu## # #####3#4#5#7#8#9#:#;#<#ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jFh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j&Fh f>*OJQJUmHnHu<#W#X#Y#Z#\#]#u#v#w########ĪoZoDZ4Zh5OJQJmHnHu+jGh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu1h f0J5B*OJQJ^JaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jGh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu:##$e$$ %c%% &`&&'n''4(((\))*m**+o++,v,,      ############$$$$$$$$ $$$%$Ӱ皉zgzRgCghOJQJmHnHu(jHh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jHh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu%$&$'$+$,$C$D$E$^$_$`$b$c$d$e$f$g$ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jIh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jIh f>*OJQJUmHnHug$$$$$$$$$$$$$$$$$Īq\qF\6\h5OJQJmHnHu+jyJh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jIh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu$$$$$$$$$$$$%%% % % % %Ӱ皉zgzRgCghOJQJmHnHu(joKh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jJh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu %%%*%+%,%-%/%0%A%B%C%\%]%^%`%a%b%c%Ѫ擁q\qF\6\h5OJQJmHnHu+jeLh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu.jKh f5>*OJQJUmHnHuh f5OJQJmHnHu)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuc%d%e%%%%%%%%%%%%%%%%%%%%%Ӱ皉zgzRgCghOJQJmHnHu(j[Mh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jLh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu%%%%%%%%&&&&& & & & &'&(&ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jQNh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jMh f>*OJQJUmHnHu(&)&*&.&/&>&?&@&Y&Z&[&]&^&_&`&a&b&}&~&ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jGOh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jNh f>*OJQJUmHnHu~&&&&&&&&&&&&&&&&&&&ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j=Ph fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jOh f>*OJQJUmHnHu&&&&&&&&'''''''' 'ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(j3Qh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jPh f>*OJQJUmHnHu ';'<'='>'@'A'K'L'M'f'g'h'k'l'm'n'Īq\qF\6\h5OJQJmHnHu+j)Rh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jQh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHun'o'p'''''''''''''''''''''Ӱ皉zgzRgCghOJQJmHnHu(jSh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jRh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu'''''(((,(-(.(1(2(3(4(5(6(Q(R(ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jTh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jSh f>*OJQJUmHnHuR(S(T(X(Y(w(x(y((((((((((((ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j Uh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jTh f>*OJQJUmHnHu(((((((((((((((((ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jVh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jUh f>*OJQJUmHnHu())))))9):);)T)U)V)Y)Z)[)\)ĪoZoDZ4Zh5OJQJmHnHu+jVh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu1h f0J5B*OJQJ^JaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.j|Vh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu\)])^)y)z){)|)))))))))))))))))Ӱ皉zgzRgCghOJQJmHnHu(jWh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jrWh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu))))))))*********7*8*ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jXh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jhXh f>*OJQJUmHnHu8*9*:*>*?*J*K*L*e*f*g*j*k*l*m*n*o***ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jYh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j^Yh f>*OJQJUmHnHu*******************ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jZh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jTZh f>*OJQJUmHnHu********+++++++++6+7+ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j[h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jJ[h f>*OJQJUmHnHu7+8+9+=+>+L+M+N+g+h+i+l+m+n+o+p+q+++ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j\h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j@\h f>*OJQJUmHnHu+++++++++++++++++++ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j]h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j6]h f>*OJQJUmHnHu++++++++,,,,,,, ,!,<,=,ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j^h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j,^h f>*OJQJUmHnHu=,>,?,C,D,S,T,U,n,o,p,s,t,u,v,w,x,,,ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j_h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j"_h f>*OJQJUmHnHu,,,,,,,,,,,,,,,,,,,ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j`h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j`h f>*OJQJUmHnHu,,,,, - --'-(-)-,---.-/-0-1-L-M-ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jah fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jah f>*OJQJUmHnHu,/---,...%/t//*000=112g22%33 4b445m55+66      M-N-O-T-U-h-i-j------------ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jbh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jbh f>*OJQJUmHnHu-------------------ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(juch fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jbh f>*OJQJUmHnHu---.. . . .$.%.&.).*.+.,.-...I.J.ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jkdh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jch f>*OJQJUmHnHuJ.K.L.Q.R.].^._.x.y.z.}.~.......ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jaeh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jdh f>*OJQJUmHnHu...................ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jWfh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jeh f>*OJQJUmHnHu.....//////"/#/$/%/&/'/B/C/ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jMgh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jfh f>*OJQJUmHnHuC/D/E/J/K/Q/R/S/l/m/n/q/r/s/t/u/v///ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jChh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jgh f>*OJQJUmHnHu/////////////////ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(j9ih fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jhh f>*OJQJUmHnHu///////00 0"0#0$0'0(0)0*0Īq\qF\6\h5OJQJmHnHu+j/jh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jih f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu*0+0,0G0H0I0J0N0O0f0g0h000000000000Ӱ皉zgzRgCghOJQJmHnHu(j%kh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jjh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu0000000000000000011ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jlh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jkh f>*OJQJUmHnHu111 1 1111516171:1;1<1=1>1?1Z1[1ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jmh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jlh f>*OJQJUmHnHu[1\1]1a1b1t1u1v111111111111ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jnh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jmh f>*OJQJUmHnHu11111111111222222!2"2ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jnh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jnh f>*OJQJUmHnHu"2#2$2(2)2D2E2F2_2`2a2d2e2f2g2h2i222ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(joh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jxoh f>*OJQJUmHnHu2222222222222222222ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jph fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jnph f>*OJQJUmHnHu22222333333"3#3$3%3&3'3B3C3ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jqh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jdqh f>*OJQJUmHnHuC3D3E3I3J3w3x3y333333333333ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jrh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jZrh f>*OJQJUmHnHu33333333444444 4 4 4&4'4ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jsh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jPsh f>*OJQJUmHnHu'4(4)4.4/4?4@4A4Z4[4\4_4`4a4b4c4d444ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jth fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jFth f>*OJQJUmHnHu4444444444444444444ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(juh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j*OJQJUmHnHu44444444 5 5 5555555/505ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jvh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j2vh f>*OJQJUmHnHu0515257585J5K5L5e5f5g5j5k5l5m5n5o5ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jwh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j(wh f>*OJQJUmHnHuo55555555555555555Īq\qF\6\h5OJQJmHnHu+jxh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jxh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu5555555556 6 6#6$6%6(6)6*6+6Ӱ皉zgzRgCghOJQJmHnHu(jyh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jyh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu+6,6-6H6I6J6K6M6N6d6e6f66666666Ѫ擁q\qF\6\h5OJQJmHnHu+jzh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu.j zh f5>*OJQJUmHnHuh f5OJQJmHnHu)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphu66666666666666666666666Ӱ皉zgzRgCghOJQJmHnHu(j{{h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+j{h f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu660777<888Y99-:::R;; <d<<#===U>>>I???X@@    66677 777(7)7*7-7.7/7071727M7N7ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jq|h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j{h f>*OJQJUmHnHuN7O7P7T7U7a7b7c7|7}7~777777777ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jg}h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j|h f>*OJQJUmHnHu7777777777777777777ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j]~h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j}h f>*OJQJUmHnHu7778888848586898:8;8<8=8>8ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jSh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j~h f>*OJQJUmHnHu>8Y8Z8[8\8^8_8r8s8t88888888Īq\qF\6\h5OJQJmHnHu+jIh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu88888888888888888888899Ӱ皉zgzRgCghOJQJmHnHu(j?h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jĀh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu99999697989Q9R9S9V9W9X9Y9Z9[9v9w9ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j5h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuw9x9y9}9~999999999999999ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j+h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu99999 : : :%:&:':*:+:,:-:.:/:J:K:ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j!h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuK:L:M:Q:R:j:k:l::::::::::ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu:::::::::::::::::Īq\qF\6\h5OJQJmHnHu+j h f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu::: ; ; ;;;;/;0;1;J;K;L;O;P;Q;R;S;T;o;p;Ӱ皉zgzRgCghOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphup;q;r;v;w;;;;;;;;;;;;;;;ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j~h f>*OJQJUmHnHu;;;;;;;;<<<<< < < < <'<(<ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jth f>*OJQJUmHnHu(<)<*<.</<A<B<C<\<]<^<a<b<c<d<e<f<<<ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jjh f>*OJQJUmHnHu<<<<<<<<<<<<<<<<<<<ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jۊh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j`h f>*OJQJUmHnHu<<<<<====== =!="=#=$=%=@=A=ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jыh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jVh f>*OJQJUmHnHuA=B=C=G=H=h=i=j============ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jnjh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jLh f>*OJQJUmHnHu=================>>ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jBh f>*OJQJUmHnHu>>>>>2>3>4>M>N>O>R>S>T>U>V>W>ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j8h f>*OJQJUmHnHuW>r>s>t>u>w>x>}>~>>>>>>>>>Īq\qF\6\h5OJQJmHnHu+jh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.j.h f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHu>>>>>>>>>>>>>>>>>>>>>??Ӱ皉zgzRgCghOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+j$h f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu?????&?'?(?A?B?C?F?G?H?I?J?K?f?g?ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHug?h?i?m?n???????????????ѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu???????????????@@ѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu@@@@@!@"@5@6@7@P@Q@R@U@V@W@X@Īq\qF\6\h5OJQJmHnHu+jwh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHuX@Y@Z@u@v@w@x@|@}@@@@@@@@@@@@@@@Ӱ皉zgzRgCghOJQJmHnHu(jmh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu@@@@@@@@ A AAAAAAAA1A2AѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jch fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu@AnAAByBB*OJQJUmHnHuAAAAAAAAAAAAAAAAAѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jOh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jԗh f>*OJQJUmHnHuAAAAAAAAAA B B BBBBBĪq\qF\6\h5OJQJmHnHu+jEh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jʘh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHuBBB/B0B1B2B6B7BVBWBXBqBrBsBvBwBxByBzB{BBBӰ皉zgzRgCghOJQJmHnHu(j;h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphuBBBBBBBBBBBBBBBBBѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(j1h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuBBCCCCCCCC4C5C6C9C:C;C*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHuCYCZC[C\C`CaCpCqCrCCCCCCCCCCCCӰ瘇xexPeAehOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu.h f0JB*OJQJaJmHnHphsH u+jh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphuCCCCCCCCCCCCCCCCCDDѹqbѨNANh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu.h f0JB*OJQJaJmHnHphsH u/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuDDD D DDDD/D0D1D4D5D6D7D8D9DTDUDѹqbѨNANh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu.h f0JB*OJQJaJmHnHphsH u/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuUDVDWD[D\DrDsDtDDDDDDDDDDDDѹqbѨNANh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu.h f0JB*OJQJaJmHnHphsH u/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuDDDDDDDDDDDDDDDDD E EѹqbѨNANh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu.h f0JB*OJQJaJmHnHphsH u/jh f0JB*OJQJUmHnHphu+jzh f>*OJQJUmHnHu E EEEEEEE8E9E:E=E>E?E@EAEBEѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jph f>*OJQJUmHnHuBE]E^E_E`EbEcEqErEsEEEEEEEEĪq\qF\6\h5OJQJmHnHu+jh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jfh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHuEEEEEEEEEEEEEEEEEEEEEFFӰ皉zgzRgCghOJQJmHnHu(jףh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+j\h f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphuFFFFFEFFFGF`FaFbFeFfFgFhFiFjFFFѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jͤh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jRh f>*OJQJUmHnHuFFFFFFFFFFFFFFFFFFFѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jåh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jHh f>*OJQJUmHnHuFFFFFGGG.G/G0G3G4G5G6G7G8GSGTGѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j>h f>*OJQJUmHnHuTGUGVGZG[GtGuGvGGGGGGGGGGGGѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j4h f>*OJQJUmHnHuGGGGGGGGGGGGGGGGG HHѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j*h f>*OJQJUmHnHuHHHHH7H8H9HRHSHTHWHXHYHZH[H\HѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+j h f>*OJQJUmHnHu\HwHxHyHzH|H}HHHHHHHHHHHĪq\qF\6\h5OJQJmHnHu+jh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHuHHHHHHHHHHHHHIIIIIII I$I%IӰ皉zgzRgCghOJQJmHnHu(jh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+j h f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphu%I&I'I+I,IBICIDI]I^I_IbIcIdIeIfIgIIIѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j}h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuIIIIIIIIIIIIIIIIIIIѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jsh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuIIIIIJJ J"J#J$J'J(J)J*J+J,JGJHJѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jih fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuHJIJJJNJOJtJuJvJJJJJJJJJJJJѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j_h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuJJJJJJJJJJJJJJJJJKKѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(jUh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jگh f>*OJQJUmHnHuKKKK K?K@KAKZK[K\K_K`KaKbKcKdKѻsdѪJ5)h f0J5B*OJQJmHnHphu2jh f0J5B*OJQJUmHnHphuhOJQJmHnHu(jKh fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jаh f>*OJQJUmHnHuJbKK#LLLLL+M,MNN{Q|Q*R+RcRdRRRRRS S%S*S`G$  ! ^    dKKKKKKKKKKKKKKKKKĪq\qF\6\h5OJQJmHnHu+jAh f5OJQJUmHnHu(jh f5OJQJUmHnHuh f5OJQJmHnHu#h f5;OJQJaJmHnHu-h f0J5B*OJQJaJ mHnHphu2jh f0J5B*OJQJUmHnHphu.jƱh f5>*OJQJUmHnHu)h f0J5B*OJQJmHnHphuh f5OJQJmHnHuKKKKKKKKKLLLLLL L!L"L#L$L%L@LALӰ皉zgzRgCghOJQJmHnHu(j7h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu+jh f>*OJQJUmHnHuh fOJQJmHnHu&h f0JB*OJQJmHnHphu/jh f0JB*OJQJUmHnHphuALBLCLGLHLiLjLkLLLLLLLLLLLLѻsdѪPCPh fOJQJmHnHu&h f0JB*OJQJmHnHphuhOJQJmHnHu(j-h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHuLLLLLLLLLLLLLLLLLL,MѻsdѪSE=9h fh fCJ^Jh f56OJQJ\]!jh fOJQJU\]^JhOJQJmHnHu(j#h fOJQJUmHnHu%jh fOJQJUmHnHuh fOJQJmHnHu h f:OJQJaJmHnHu*h f0JB*OJQJaJmHnHphu/jh f0JB*OJQJUmHnHphu+jh f>*OJQJUmHnHu,MNN{Q}Q*RdRTT"U#UUU=V>V?VgVVWWW XoX~XXXYYYY5Z6Z7ZKZZZZr[s[t[u[[[[[[[覔uh f56>*\]&h f<B*CJOJPJQJ^Jph#h fB*CJOJQJ^JaJph%h f56>*CJOJQJ\]^Jh f6>*CJOJQJ]^Jh f5CJOJQJ\^Jjh fCJUmHnHuh fCJOJQJ^Jh fh f^JaJ.*S@SBSdSkSSSTT=V>V@VAVBVCVDVEVFVGVHVIVJVfVgVVVWXX & Fgd3%G$XXBYYY5Z6Z7ZZZs[t[u[[[\\]]]]^^^^^__x_y_[\\]]]&]]]]]]^^^^^^^___x__9`V``aabbc(cd0d>e?eTesftfhhhnkϽxh f5CJOJQJ\^Jh fmH sH h fB*phh fB*CJOJQJ^Jph"h f5B*CJOJQJ^Jphh f#h fB*CJOJQJ^JaJph"h f<B*CJOJQJ^Jph%h f56>*CJOJQJ\]^Jh fCJOJQJ^J+y___8`9`V``` aaaaabbWbvbbbbbbcccd $7$8$H$a$ & Fgd3%`ddddd>e?esftfhhnkokXmm(o)opprrsuv 8$[$\$a$ $7$8$H$`a$$ & F+7$8$H$a$gd3% $7$8$H$a$nkWmmoo[sfsssuv+w9wyyyy<}E}e~~j-F*2RޒIp)BC!"]ɾɶɰɰɰɰŪh fB*phh fB*CJOJQJ^Jphh f0J?CJ h f0J? h f^Jh fCJ^J h f5\h fh fCJOJQJ^J$h f6CJOJQJ]^JmH sH h fmH sH h fCJOJQJ^JmH sH 5vyy|}e~~G<p3`$ & Fpdd[$\$]^pa$gd3%8$ & Fp[$]^pa$gd3%$ & Fdd[$\$a$gd3% 8$[$\$a$ZXm؆j~iԉ-F$ & Fdd[$\$a$gd3%$ & Fdd[$\$a$gd3%$ & Fdd[$\$a$gd3%8$a$$ & Fpdd[$\$]^pa$gd3%FA*Oz$ & Fdd[$\$a$gd3%$ & Fdd[$\$a$gd3%$ & Fdd[$\$a$gd3%$ & Fdd[$\$a$gd3% & Fddd[$\$gd3%$ & Fdd[$\$a$gd3%ُ)e2RIޒ$ & F dd[$\$a$gd3% & Fddd[$\$gd3%$ & Fdd[$\$a$gd3%$ & Fdd[$\$a$gd3%$ & Fdd[$\$a$gd3%ȓIp)BC \]ќğƥǥ0$a$$a$ & F ddd[$\$gd3%$ & F dd[$\$a$gd3%]TUcdjqrǥѥpqr²Բղ޳EFbȴӼӪ¦tm h f6]jh f6U]h f5CJOJQJ^Jh fCJOJQJ^Jh f5>*OJQJ\^Jh fh fCJmH sH h fCJPJ h fCJ h f0J?h f0J?5CJ\h f0J?CJh f0J?5CJ\aJh f0J?CJOJQJaJh f0J?CJaJ(r²Բղݳ޳"4EFb & F-dd[$\$gd3%8[$\$7$8$H$ 8$[$\$a$$a$2bcȴɴ7oεϵ۵ܵh9Ϸܸ޸ & F.7$8$H$gd3%7$8$H$ȴɴϵܵĸڸ &¾-z{=OPR`-./c嬟~th fOJQJaJ h f0J?%h f5B*CJOJQJ\^Jphh fB*phjUFh fB*Uphh fB*CJOJQJ^Jph h f5\% *h Oh f5CJOJQJ\^J *h Oh f5\h fh fCJOJQJ^Jh f5CJOJQJ\^J-޸ %&мѼLg & F/7$8$H$gd3%h87$8$H$^h`87$8$H$ 7$8$H$^7$8$H$^` 7$8$H$`,7$8$H$ 7$8$H$^¾-2u 7$8$H$^ & F, 7$8$H$^gd3%7$8$H$ h7$8$H$^h 7$8$H$^h87$8$H$^h`8xz{=} O & F0dd[$\$gd3%8[$\$ 7$8$H$`7$8$H$OPQR_`uv./VcKL 8$[$\$a$5d&dP$a$7$8$H$clq]i01INPeWcLMN-.`Odefwnh f>*OJQJh f5OJQJ\ h f^J h f>*$jh fB*OJQJU^Jphh fB*OJQJ^Jph$jh fB*OJQJU^Jphjh fOJQJU^Jh fOJQJ^Jh f5CJOJQJ\^Jh f^JaJh fh fCJOJQJ^J+]i,PeWcL.c9{$ & F!dd[$\$a$gd3%$a$ 8$[$\$a$  d*${7mO#h#]Q[3`$ & F"dd[$\$a$gd3%$ & F!dd[$\$a$gd3%`Of6^FyI @P$ & F$dd[$\$a$gd3%$ & F#dd[$\$a$gd3% & F"ddd[$\$gd3%45Syz [G# J ()   $%()*,-12ABEFIJKMNQRUĺ h f5\ h faJ h fPJh f5>*\h fOJQJ^Jh f6OJQJ]^J h f^J h f>*h fCJOJQJ^Jh f>*OJQJh f5OJQJ\h f>5jSz1  & F&ddd[$\$gd3%$ & F&dd[$\$a$gd3%$ & F%dd[$\$a$gd3%$ & F$dd[$\$a$gd3%IG[GvGJ#t[ & F'ddd[$\$gd3%$ & F'dd[$\$a$gd3%p <w&b  F |  6 g    # 8 J  $ & F(dd[$\$a$gd3%$ & F'dd[$\$a$gd3%  1   z&[_A"$ & F*dd[$\$a$gd3%$ & F)dd[$\$a$gd3%$ & F(dd[$\$a$gd3%"Id)z.SYpu  $$Ifa$ 8$[$\$a$$a$ & F*ddd[$\$gd3%$ & F*dd[$\$a$gd3% %)*-2?kdJ$$IfKr hFSSSS0634Kab $$Ifa$2BFJKNRV?kd$$IfKr hFSSSS0634Kab $$Ifa$UVYZ]^_abefijmnqrsuvyz}~014589:<=@ADEHILMNQRmnqruvy h f5\ h faJh f h fPJ\VZ^_bfjn?kd$$IfKr hFSSSS0634Kab $$Ifa$nrsvz~?kd$$IfKr hFSSSS0634Kab $$Ifa$H????? $$Ifa$kd$$IfKr hFSSSS0634KabH????? $$Ifa$kdZ$$IfKr hFSSSS0634KabH????? $$Ifa$kd*$$IfKr hFSSSS0634Kab159H????? $$Ifa$kd$$IfKr hFSSSS0634Kab9:=AEIMH????? $$Ifa$kd$$IfKr hFSSSS0634KabMNRnrvzH????? $$Ifa$kd$$IfKr hFSSSS0634Kabyz{AB!"#Ѿߍh f56>*\] h f>*$jh fB*OJQJU^Jphh fB*OJQJ^Jph$jh fB*OJQJU^Jphjh fOJQJU^Jh fOJQJ^Jh f h f5\ h faJ h fPJ7z{H????? $$Ifa$kdj$$IfKr hFSSSS0634KabBH????? $$Ifa$kd:$$IfKr hFSSSS0634KabH????? $$Ifa$kd $$IfKr hFSSSS0634KabH<:<1 $$Ifa$ 8$[$\$a$kd$$IfKr hS0634Kab~xkd|$$IfK00 634Kab $$Ifa$ !"&'(01678@AHIJRS]^_ 8*+abfgųųh f0JCJOJQJ^JaJ#jh fCJOJQJU^JaJh fCJOJQJ^JaJ h fCJ h f0J?h fOJQJ^J h f5\ h faJh f h fPJ@~~ $$Ifa$xkd $$IfK00 634Kab~~ $$Ifa$xkd$$IfK00 634Kab~~ $$Ifa$xkdh$$IfK00 634Kab~~ $$Ifa$xkd $$IfK00 634Kab~~ $$Ifa$xkd$$IfK00 634Kab ~~ $$Ifa$xkdT$$IfK00 634Kab"'~~ $$Ifa$xkd$$IfK00 634Kab'(17~~ $$Ifa$xkd $$IfK00 634Kab78AI~~ $$Ifa$xkd@ $$IfK00 634KabIJS^~~ $$Ifa$xkd $$IfK00 634Kab^_  8[N{vvtr````` & F2dd1$7$8$H$gd3%$a$ 8$[$\$a$xkd $$IfK00 634Kab g   /     !g!i!u"w"v#x#$$$$H%J%V%&&#&&&&'''(((!)=*?*C+E+,,,,-/-M.ĶIJIJ򦲏 h f^J h f5CJOJQJ\^JaJh fCJOJQJ^Jh fh fCJOJQJ^JaJh fCJOJQJ^Jh f0JCJOJQJ^JaJ#jh fCJOJQJU^JaJh fCJOJQJ^JaJ2N                /    !i!w"x#$$dd1$7$8$H$a$ dd1$7$8$H$ & F2dd1$7$8$H$gd3%$$J%&&'((!)?*E+,,,--/-M.N.e../)0*0G$ & F3dd1$7$8$H$gd3% & F1dd1$7$8$H$^`gd3% dd1$7$8$H$M.N.e.h...//)0*0+0D0H00000s1t1111C2D222233334444550535551656k6m66666 77Ǽϰ h f5CJOJQJ\^JaJ h f^Jh fCJOJQJ^Jh fCJOJQJ^JaJh fCJOJQJ^Jh f5CJ\^Jh f^JaJh fCJOJQJ^JaJ h f5CJOJQJ\^JaJh fh fCJOJQJ^JaJ2*0D000s1t111D2222223334455m6 & F5dd1$7$8$H$gd3%G$hdd1$7$8$H$^h & F4dd1$7$8$H$gd3% dd1$7$8$H$m66>7.888-;;<<==>>F@G@Y@g@oAA'BCBDBRB^B$If8 dd1$7$8$H$ & F5dd1$7$8$H$gd3%7<7>7,888::*;,;-;.;;;;;======>>>>>>>F@G@g@nAҽnbh fCJOJQJ^J(j%h fB*CJOJQJU^Jph(jeh fB*CJOJQJU^Jph(j, h fB*CJOJQJU^Jphh fB*CJOJQJ^Jph(jh fB*CJOJQJU^Jphh fB*CJOJQJ^Jphh fh fCJOJQJ^Jh fCJOJQJ^JaJ nAoA&BCBDB^B_BBBBBBBB'C(CkClCCCCC"DBDCDDDDDD E E'E(E>ELOOOֹֹֹֹֹֹֹֹ֣֖m%h f56B*OJQJ^JaJph33h f^JaJjh fUmHnHuh f5CJOJQJaJ h f^Jh fCJOJPJQJ^JaJh fCJOJQJ^JaJh f5CJOJQJ^JaJh fCJOJQJaJh fh fCJOJQJ^Jh fCJOJPJQJ^J&^B_BBB~~$IfzkdB$$Ifl0\| t0644 laBBBB~q 8$If[$\$$IfzkdB$$Ifl0\| t0644 laBBBB~~$Ifzkd(C$$Ifl0\| t0644 laBBC'C~~$IfzkdC$$Ifl0\| t0644 la'C(CKCkC~~$IfzkdLD$$Ifl0\| t0644 lakClCCC~~$IfzkdD$$Ifl0\| t0644 laCCCC~~$IfzkdpE$$Ifl0\| t0644 laCC"DBD|v$If$G$IfzkdF$$Ifl0\| t0644 laBDCDDD~~$IfzkdF$$Ifl0\| t0644 laDDDDDDDDDDDDDDDDzkd&G$$Ifl0\| t0644 laDDDDDDDDDDDDDEEEEEEEEE E E E EEEE & FEEEEEEEEEEEEEEE E!E"E#E$E%E&E'E)E*E>EFGH & FHILOOOOPPPkPPR0V1VJV]^%_&_>_?_bdhfhhh & F & FG$OOPPgPhPiPjPP1VJV WWXXYYZZ+[6[[[]^^!_"_#_$_&_>_?_bhhhHiIiJiKi^i_iiii@j̧̯̯̯̯̯̯̽򟗟򟈟̽ h f^Jjuah fU h f5\jUh fUjh fUh f^JaJh f0J>CJOJQJ^Jh f5CJOJQJ\^Jh fCJOJQJ^JjGh fCJU h fCJjh fCJUh fh fOJQJ^J.hLi_iiAjijujjjjj\kkk@mAmmoo4q-rsHtt*uuNvvExGz[{@jjnn-o.o:o;omooppppqqssHtYttt*u9uuuNvXvYvavvUwiwnw~wwwExLxyyPzz[{_{I|J|||||}㰢h f5CJOJQJ\^Jh fCJOJQJ^JaJ h f5CJOJQJ\^JaJh fh f0JCJOJQJ^Jjh fCJOJQJU^Jh fCJOJQJ^Jh fB*CJOJQJ^Jph3}}S}T}b}c}g}{}|}}}}}}}~E$hNOefƋNjދߋ %DP.[vphphph fB*ph h faJh fB*CJOJQJ^Jph33h fCJOJQJ^JmH sH h f^JaJh fh f0JCJOJQJ^Jjh fCJOJQJU^Jh fCJOJQJ^J h f0J5CJOJQJ\^Jh f5CJOJQJ\^J%jh f5CJOJQJU\^J([{}}~~~~~~3?Eۇ$-9E[h*$If88 & F6gd3% & F6gd3%8^G$*NOfƋtkdx$$IfT0 m 0634aT$IfƋNjߋ$Iftkd#y$$IfT0 m 0634aT' %^'ӏ8ې tkdy$$IfT0 m 0634aT ё&# `ݕTawЗ^ߘߘvDP./0>[EF "(<MY[k8$a$8^G$[F  "#'()<=MNYZ[沢ӲxdTxxC!h f<CJOJQJ^JmH sH h fCJOJQJ^JmH sH &h fCJOJPJQJ^JaJmH sH "h fCJOJQJ^JaJmH sH #h fB*CJOJQJ^JaJph h faJh fCJOJPJQJ^JaJh fCJOJQJ^JaJ h f5\h fOJPJQJ^Jh fh f5OJPJQJ\^Jh fCJOJQJ^Jh fCJOJPJQJ^J[\kl˩̩  »{miO{G7h fB*OJPJQJ^Jphh fB*ph3jh fB*CJOJQJU^JmHnHphuh fjh fUmHnHuh fB*OJQJ^Jphh f<B*OJQJ^Jph&h f<B*CJOJQJ^JaJphh fPJaJ h faJ h f5\h fCJOJQJ^J"h f<B*CJOJQJ^Jph"h fCJOJQJ^JaJmH sH h fCJOJQJ^JaJk̩6 #8Kbefhijklm^^  #$89KMbcdefghijëFsu뿱ɱvjfQfEh fOJPJQJ^J)h fB*CJOJQJ\]^JaJphh fh fCJOJQJ^Jh fCJOJQJ^JaJh fCJOJPJQJ^JaJ h f5\ h fPJh f<B*OJQJ^Jphh fB*OJQJ^Jphh f<B*ph3jh fB*CJOJQJU^JmHnHphuh fB*ph'jh fB*CJUmHnHphumnoëFtϬ#6H[ڭ 8[$\$^ & F^8[$\$"#٭ڭۭZ  /0UV߯Ȫݘ݈ysmsasVQIh fB*ph h f<h f<aJmH sH h fOJQJ^JaJ h fPJ h faJh f<CJOJQJ^JaJh fCJOJPJQJ^JaJ"h fCJOJQJ^JaJmH sH h fPJmH sH h f<B*OJQJ^Jphh f)h fB*CJOJQJ\]^JaJphh fCJOJQJ^JaJ'h fB*CJOJPJQJ^JaJphڭ 5GZ 0VnP|8[$\$ & F 8[$\$^^ P̱α.2b¾ueuM;e¾"h f<B*CJOJQJ^Jph.h f<B*CJOJQJ^JaJmH phsH h fCJOJQJ^JmH sH "h fCJOJQJ^JaJmH sH h fmH sH h faJmH sH #h fB*CJOJQJ^JaJphh f5\mH sH h fB*phh f h f<h f<aJmH sH h fCJOJQJ^JaJh fCJOJPJQJ^JaJh f5PJ\ h f5\6α02bвĴ& & F8gd3%ĴеѵҵӵԵֵ׵صڵ۵ܵݵ˶˪vlc^Sj-C h fUV h f<h f<mH sH h f<B*phh f<B*OJQJphjh fUj-C h fUVj_zh fUjI-C h fUVjh fUh f)h fB*CJOJQJ\]^JaJphh fB*OJQJph#h fB*CJOJPJQJ^Jphh fB*CJOJQJ^Jph h f5\&;WoԵյֵ׵صٵڵ۵ܵ e¶C & F   ef¶öCD˼vgvgvSvSvIh faJmH sH &h fCJOJPJQJ^JaJmH sH h fCJOJQJ^JaJo("h fCJOJQJ^JaJmH sH h faJo( h fPJh fB*CJ\]aJphh fmH sH h fCJOJQJ^JmH sH h fCJOJQJ^JaJo( h f5CJOJPJQJ\^Jh f5CJOJQJ\^Jh fjh fUjVh fUCL¹ù-rtĺ+,K-/~9Ƚ & FvxLM}¹ùĹ,-.rsóóhV"h fCJOJPJQJ^JmH sH .h f<B*CJOJQJ^JaJmH phsH "h f<B*CJOJQJ^Jph"h fCJOJPJQJ^JmH sH h fCJOJQJ^JaJo(h fCJOJQJ^JmH sH h fCJOJQJ^JaJo(h fmH sH h fB*CJ\]aJph+h fB*CJOJQJ^JaJmH phsH stúĺź+,KL-./0|~îޙqbPAAA5h fB*mH phsH h fCJOJQJ^JaJo("h fCJOJQJ^JaJmH sH h fCJOJQJ^JaJo("h fCJOJQJ^JaJmH sH h faJo(h f5CJOJQJ\^Jh f!h fCJOJQJ^JmH o(sH (h f5CJOJPJQJ\^JmH sH $h f5CJOJQJ\^JmH sH h fmH sH h fCJOJQJ^JmH sH !h f<CJOJQJ^JmH sH ~9:Ƚսֽ׽DE !{|ڿۿ)*<=>,˶ުޢ˶{˶ h f<h f<B*OJQJph h faJo(h f<mH sH h fh fmH sH h f<B*PJph(h f5CJOJPJQJ\^JmH sH $h f5CJOJQJ\^JmH sH h fCJOJQJ^JmH sH !h fCJOJQJ^JmH o(sH +ȽֽD {ڿ)<= & F,1<?,-wyz9:12ޗޏ}ym[G[7h f<B*OJQJ^Jph'h fB*CJOJPJQJ^JaJph#h fB*CJOJQJ^JaJphh fCJOJQJ^Jh f#h fB*OJQJ^JmH phsH h fmH sH !h f<CJOJQJ^JmH sH 0h f5<B*CJOJQJ\^JmH phsH h fPJmH sH %h fB*CJ\]aJmH phsH h fCJOJQJ^JmH sH "h fCJOJPJQJ^JmH sH ,-yz:123456789:;<=>?@8[$\$ & F7gd3%234589:;<=?@AFGUcANUh,CTMδsnjdjXjIXIXIXIXIXh f5CJOJQJ\^Jh fCJOJQJ^J h f^Jh f h f<&h f<B*OJQJ^JmH phsH h f<B*OJQJphh f<B*OJQJo(phh f<B*OJQJ^Jph2h f56<B*CJOJQJ\]^JaJph h f<PJh fB*OJQJ^Jphh fB*phh f<B*phh fB*aJph@ABCDEFGUcd3AUC5&MlM & F>gd3%Ml Uqr#$pqrs婝剩rjW$jh f5CJU\mHnHuh f^JaJ jh f5U\mHnHu h fPJ h f6]h f>*CJOJQJ^Jh f56CJ\]h f56\]"h f56CJOJQJ\]^J h f5\h f5OJQJ\^Jjӿh fUh fh fCJOJQJ^Jh f5CJOJQJ\^J"4Io  LUA] & F9gd3%8^8 & F?gd3% & F>gd3%<grMRm2x & F:dd[$\$gd3%h^h & F@gd3%p^p & F9gd3% #pqstvwxyDY@[Mj & F<gd3% & F;gd3%7$8$H$^dd[$\$ ddG$[$\$ & F:dd[$\$gd3%stuwxy?[UV[\|}[rsȻșȊġ}na\a h f5h f5CJOJQJ^Jh fB*CJ\]aJphh f5OJQJ\^Jh f5CJOJQJ\^Jh f^JaJ h f5\$jh f5CJU\mHnHuh f5CJ\h fh fCJOJQJ^Jh fB*CJ aJ ph*jh f56CJU\]mHnHuh f56\]$#)6@Iqq$If]q^q^ & F<gd3% IJKLM-'''$Ifkdr>$$Ifl4n֞d 8\       064 laf4MNOPQ$IfQRSTU2,,,$IfkdJ?$$Ifl֞d 8\064 laUWXYZ$IfZ[]^_2,,,$Ifkd@$$Ifl֞d 8\064 la_`abc$Ifcdefg2,,,$Ifkd@$$Ifl֞d 8\064 laghijk$Ifklmno2,,,$IfkdA$$Ifl֞d 8\064 laopqrs$Ifstuvw2,,,$IfkdjB$$Ifl֞d 8\064 lawxyz{$If{|}20.0kd2C$$Ifl֞d 8\064 laLv[s{ & FA Lgd3% & F p^^ & F=gd3%G${ 1>IT^s|  ^ ^h^h & FAgd3% & FAgd3%abq\]geft|}C G$ bq]gft}CDQ!* @WUWx     <    g"Ĵh f5OJQJ\h fCJOJQJ^JaJh fCJOJQJ^JaJh fCJOJQJ^JaJh fCJOJQJ^JmH sH h f0J?CJh fh f5CJOJQJ\^Jh f^JaJh f5CJOJQJ^Jh fCJOJQJ^J2CDQ !* AW 0^`0 ^ b!Ux    <   Q&?Pg"G$"#IM61  +U{Vp ""G"#l%G$ & FEgd3%"#I6V '#({**++//2245HNH6MbM```>`}aaobzbddeeeeeff fffjj/jlkyklluvh f6CJOJQJ]^Jh fCJOJQJ^JaJh fCJOJQJ^JaJh fOJQJaJ h faJh f^JaJ h f5\h fh f5CJOJQJ\^Jh fCJOJQJ^J;l%%%g&&&I''''#(,))z*{**+++K,=-t--.,///92222#44556(66788:^;v;<<<< ?q??T@AABDDIFpFGGHNHJJyL6MbMNNnPPQQRRTTTUnUUUUDVyVVVWXXXXSYYZ;ZZZ[[t[[\Q]]]#^^^```>``}aaaobzb8zbAcddeeeffCfffg!h-hhhjjj/j9klkykkUlnunDpq8qRrr@sss~t utuuuvvryyyVzzz{r{{{^|z|||}E~~~:Ƃ `ωjԊ΋95Rې49HT;<>X+VjQR`̻cz̼#0DFLM:rὰh fB*CJ\^JaJphh f5OJQJ\^Jh f^JaJ h f^J h f5\h f6CJOJQJ]^Jh fh fCJOJQJ^Jh f5CJOJQJ\^J;4 (ΜE14@07V֩HITԫԫN| <=>XjEݰ+Vjwִ+ܵh^h & FDgd3%ܵ|XYQR`c4$d%d&d'd(d)fNOPQRS.E[o0D\~'G$4$d%d&d'd(d)fNOPQRSFM%<K:hr2Th+@ & F+[urs#%35@B\iFG=>no( ɶɨɨɨɨɨɨ}nɨnɨh f<CJOJQJ^JaJh fCJOJPJQJ^JaJh f<CJOJQJ^Jh fCJOJPJQJ^Jh fCJOJQJ^JaJ%h fCJOJQJ^JaJmHnHuh fCJOJQJ^JaJh f5CJOJQJ\^Jh fh fCJOJQJ^Jh fOJQJ^J&@    FfTE^kdC$$Ifl4\"064 laf4$If !#$%&'()*+,-/012345FfKFf4H$If56789;<=>?@ABCDE[uz]y @ ^@ `FfPFfM$If%5B\kFGn=>o( P^ & FC^gd3%8^_}/P Mp.Fa1D[8 & FFgd3%G$^ _}[z N[z{H]x9J")' *ŮŚ h f5\h f5CJOJQJ^J h f5#h fB*CJOJPJQJ^Jphh fh f5\^JaJh f5CJOJQJ\^Jh fCJOJQJ^Jh fB*CJOJQJ^Jph839zj[kdR$$Ifl\"064 la$If & FGgd3% jkGsC[kdS$$Ifl\"064 la$If[kd^S$$Ifl\"064 la NO[ {z8 & FBgd3%8 & FGgd3%[kd\T$$Ifl\"064 laz{8IT\i{G & FHgd3%^GHwx89!"*+8^8h^h & FHgd3%^()   "#*312:;.$a$^ & FHgd3%*k)*=>?@PJN(FPu~kp8 ? k l     I P Q R S j ˽˫潊h fOJQJ h f5CJOJQJ\^JaJ h f5jTh f5U\"h fCJKHOJQJaJmH sH h fCJOJQJ^JaJh f5CJOJQJ^JaJh fmH sH h fh fCJOJQJaJh f6CJOJQJaJ/;*+=?@PQL$ & FKEƀBsfa$gd3%` & F$a$.$a$ JFuSL$ & FKEƀBsfa$gd3%$h^ha$$^a$L$ & FKEƀBsfa$gd3% k l   WL$ & FKEƀBsfa$gd3%$a$L$ & FKEƀBsfa$gd3%$h^ha$ Q R S i j    D $dd$$&`#$/If[$\$a$^@ A & F8^8L$ & FKEƀBsfa$gd3% j  TVG^ \b06FR":")"t""$&&&&****.../M0g02344 5 5#5$5ʾ׸גגג׊׊jh fUh fOJQJ^Jh fCJOJQJ^JaJh fCJOJQJ^JaJ h f^Jh fCJOJQJ^Jh f^JaJ h f5h fh fCJ]^Jh fCJOJQJaJh fCJOJQJ]^JaJ0D E J ] jj$dd$$&`#$/If[$\$a$}kd$$Ifl    0DPp#       6`$0    ,"44 la] ^ e  jj$dd$$&`#$/If[$\$a$}kd$$Ifl    0DPp#     6`$0    ,"44 la   jj$dd$$&`#$/If[$\$a$}kd$$Ifl    0DPp#     6`$0    ,"44 laUV}o 0^`0}kd$$Ifl    0DPp#       6`$0    ,"44 la es1223{zEFG_ & FIgd3%`_`[\/0EF!"< `^``Y Z   !!" " """)"u"v"w""$$&&7$8$H$ $7$8$H$a$7$8$G$H$G$ `^``&&&+(,(((M))****w**++U,,,../{//60L0M0g07$8$H$g00%1112w222223u33'444444 5 5(5)5*5Q556u67$8$H$$5%5&5'5*5Q56678 ::;;u<w<<<{==?@BBBBCCCEaE3FPF*G+GKGHHIIIIJ5JJJ]KLLJLNLtLxLLLL±±±±ޱ§§™ާ§§§™±±±±±±‹‹‹h fCJOJ QJ ^J aJh fCJOJQJ^JaJh fOJQJ^J h f5CJOJQJ\^JaJh fCJOJQJ^JaJh fCJOJQJ^JaJh fjh fUjkh fUjh fUmHnHu6u666q7r777789(9)999 : :;;v<w<<{=|===>??@7$8$H$@BBBCCCEaE%F3FPFF+G,GKGGHHIIJJ]KKJLtLLL6M7$8$H$LL4M6M>MZMN OxQQCThTTT%UUUVVVXX&Y>YYY!Z1ZwZZ[+[\4\\\\T]X]]]]]^^B^F^r^v^^_ _._2_x_|_` ````Mbgbbbdd亩ҩ h f5CJOJQJ\^JaJh fOJQJ^Jh fCJOJQJ^JaJh fh fCJOJQJ^JaJh fCJOJQJ^JaJh fCJOJ QJ ^J aJB6M8M:MMZMNdNNN OiO PxQyQQQMRSCTDThTTXUUUVVV7$8$H$VVV0WWWXgXXY&YY!ZwZ[[\\\T]]]^B^r^^_._x_7$8$H$x_`````jabMbb;cdd8ee*ftfff8gggh>hjjmm mm7$8$H$ddd8e@AGIKMFfoFf$IfMOQSUWY[]_aceghivw & FUgd3%Ff\$If!/~F567`wddH$[$\$`$ddH$[$\$`a$G$`G my'()*8+,./012jk & F` sx07lr,-/;ARTklmntv123B23yzt">?DX໪࣓ࣻѣjh fCJUmHnHu h f6]!h fCJOJQJ^JmHnHu*jh fCJOJQJU^JmHnHuh f5CJOJQJ\^Jh fCJOJQJ^Jh fh fB*CJ\^JaJph:kmn13B`\],-24xy{rst`h`h & FLgd3% 7LMo !">?` & FNgd3%h^h & FMgd3%h`h5}~qr "` 5CrYj>w12`pеЮЮО̗ЧЮh f56CJ\ h f5\h f6CJ^J h f6] h f6CJjh f6UmHnHuh f56\h f h f6h f5CJOJQJ\^Jh fCJOJQJ^Jjh fCJUmHnHu4XY^jkxzq $$Ifa$$Ifnkdr$$Ifl0@ H064 la $$Ifa$"  "$If$Ifnkd $$Ifl0@ H064 la >?y $$Ifa$ "$$Ifa$$Ifnkd$$Ifl0@ H064 la?@O| $$Ifa$$Ifnkd@$$Ifl0@ H064 la|}y $$Ifa$ "$$Ifa$$Ifnkdڰ$$Ifl0@ H064 lawxy $$Ifa$ "$$Ifa$$Ifnkdt$$Ifl0@ H064 laxyy $$Ifa$ "$$Ifa$$Ifnkd$$Ifl0@ H064 lay $$Ifa$ "$$Ifa$$Ifnkd$$Ifl0@ H064 laA $$Ifa$$IfnkdB$$Ifl0@ H064 laABU $$Ifa$$Ifnkdܳ$$Ifl0@ H064 la, $$Ifa$$Ifnkdv$$Ifl0@ H064 la,-@ $$Ifa$$Ifnkd$$Ifl0@ H064 la $$Ifa$$Ifnkd$$Ifl0@ H064 la2B  2_"nkdD$$Ifl0@ H064 laj{|1BCh"^" & FOgd3%"1BC3>j&(=>2  & , 4 6 7 8 K L     9    4  ʾҟݟҙ䌄}nnjh f6UmHnHu h f6aJh fPJaJ h faJ h f5\ h fCJjh fCJUmHnHuh f5CJOJQJ\^Jh fCJOJQJ^Jh f56\h f h f6CJ h f6] h f6h f6B* phh f56B* \ph+hEab}~3>?jn" & FQgd3% "h^h"" & FPgd3%"^'(=>)2$If`"^23\r$Ifnkd޶$$Ifl0<\ 064 la<rs: $Ifnkdx$$Ifl0<\ 064 la<: ; < 5 6 8 K M N O       `nkd$$Ifl0<\ 064 la< 9   56  "^)^k-B   4 !!;"<""#%%%''***X+Y+t+ʽh f5B*CJ \aJ ph# h f^JaJh fB*^JaJph# #h fB*CJOJQJ^JaJph# h fh f5OJQJ\^Jh fCJOJQJ^J h f6] h fCJjh f6UmHnHuh f56\ h f64)0;@GNR^kz "``"^-4P-AB LM#^ & F gd3%0 $7$8$H$^a$"^^`&z@qe  4 )!*!7$8$H$  d*$^ & F gd3%*!F!!!";"<""#$J$$i%%%%'''' h^h h^h` & Fgd3% h7$8$H$^h h^h` & F gd3% hx^h7$8$H$'*****+G+X+Y+t++ ,{,,,-7-8-F---[....  & F gd3%7$8$H$ 7$8$H$^h7$8$H$^h`t+7-8-F-../000L0M0N0O0P0Q0R0S0V0W0X0Y0Z0[0\0]0_0`0a0b0i0j0l0m0o0q0r0s0t0u0x0{0|0~0000000000000111?2A2F3G3V3Y3j3n3o3p33>5ںںںںںںںںںںںںںںںںںںںںںںںںڴںںڴڴ h fCJjh fUmHnHu#h fB*CJOJQJ^JaJphh fh f5B*CJ\aJph# #h fB*CJOJQJ^JaJph# D.(///00L0N0P0R0T0U0V0X0Z0\0^0_0a0i0k0l0n0o0r0t0v0w0x0|07$8$H$|000000000N111?22F3T3U3V3o3p3333=444257$8$H$$a$ ^`25>5L5d5t5}5555555555 $$Ifa$ & F gd3%7$8$H$>55556Y7Z7j7~7777777777T8f8888%9'9<99: : :&:':ƹƪƓllƹ]j·sA h fOJQJUV)h f5B*CJOJQJ\^JaJph# #h fB*CJOJQJ^JaJph# h fB*\phjh fB*Uphjn8mA h fOJQJUVjh fB*Uphh fB*phh f5B*\ph h f\ h f5\h fh fB*^Jphh fB*^JaJph# 56M6y6667Y7xreeeee  & F$Ifgd3%$Ifkd$$Ifl0 t"  0t"4 lalpY7Z7[7h7i7j7v7}7 $$Ifa$lkd$$Ifl0 t" 0t"4 lal}7~777xrr$Ifkd+$$Ifl0 t"  0t"4 lalp77777777777+8S8T8f8 @7$8$H$^@qkd~$$Ifl40 t" 0t"4 lalf4f8v88888888899%9&9'909;9 $$Ifa$ @7$8$H$^@ & F gd3%;9<9R9p9{999vpcccc  & F$Ifgd3%$Ifkd-$$Ifl40 t"  0t"4 lalp99999: $$Ifa$nkd $$Ifl40 t" 0t"4 lal:: :*:sic$If h$If^hkd$$Ifl440t" 0t"4 lalf4p':(:):+:B::;;;;; = =-=.=H=I=J=K=M=b=w=M>a>o>p>>>>>>ȼڑچwjڑچ[Nj9h fB*UphjޞsA h fOJQJUVjh fB*Uphj9mA h fOJQJUVh f5B*\ph h f5\#h fB*CJOJQJ^JaJph#h fB*CJOJQJ^JaJph# h fB*^JaJph# #h fB*CJOJQJ^JaJph# h fh fB*phjh fB*Uphjh fB*Uph*:+:A:B:::;#;A;;;;;~vvvvvvvl 7$8$H$^ & F gd3% @7$8$H$^@skd$$Ifl44s0t"0t"4 lalf4 ;;;;;;;J<m<<c]PPP  & F$Ifgd3%$Ifkd$$Ifl0 t"  0t"4 lalp $$Ifa$ 7$8$H$^ <<<<< = = ===}{{rr $$Ifa$lkd$$Ifl0 t" 0t"4 lal$If  & F$Ifgd3% = =-=L=xrr$Ifkd$$Ifl0t" 0t"4 lalpL=M=N=a=b=k=v= $$Ifa$lkdW$$Ifl0t"0t"4 lalv=w====>>xreee  & F$Ifgd3%$Ifkd$$Ifl0 t"  0t"4 lalp>>?>L>M>Y>`> $$Ifa$lkd$$Ifl0 t" 0t"4 lal`>a>o>>xke$If  & F$Ifgd3%kd_$$Ifl0t" 0t"4 lalp>>>>>>>>>>?k????7$8$H$ & Flkd$$Ifl0t"0t"4 lal>>?@@@+@A$A4A5AOAPAQASAmAnAoApArAAABB$B%B?B@BABBBDBgBDYFZFºuºfYjLh fB*UphjsA h fOJQJUVjh fB*UphjsA h fOJQJUVjh fB*Uphj{sA h fOJQJUVjh fB*Uphh fB*phh f5B*\ph h f5\h fB*^Jphh fB*^JaJph# #h fB*CJOJQJ^JaJph# h f"? @@@@*@+@:@@`ZM  & F$Ifgd3%$Ifkd5$$Ifl40 t"  &&0t"4 lalf4p&& $$Ifa$ & F gd3%@@@@AAAAA#Avqoff $$Ifa$ & Fqkd$$Ifl40 t" 0t"4 lalf4 h$If^h  & F$Ifgd3% #A$A4AqAxke$If  & F$Ifgd3%kd$$Ifl0t" 0t"4 lalpqArAsAAAAA|| $$Ifa$^ & FlkdV$$Ifl0t"0t"4 lalAAAAAsm`V h$If^h  & F$Ifgd3%$Ifkd$$Ifl40 t"  &&0t"4 lalf4p&&AAAB BB}} $$Ifa$ & Fqkd$$Ifl40 t" 0t"4 lalf4BB$BCBxke$If  & F$Ifgd3%kdr$$Ifl0t" 0t"4 lalpCBDBEBfBgBBCjCCC DD-DED_D{{{ & F gd3%7$8$H$ & Flkd$$Ifl0t"0t"4 lal_DDDDDD E'EEEFYFZFcFnF $$Ifa$ & F gd3%nFoFFFFsm`V h$If^h  & F$Ifgd3%$IfkdV$$Ifl40 t"  &&0t"4 lalf4p&&ZFoFFFFFFFFFF#G%G.G0GJJ8J+S,SSSUUUU&W'WWXZZjZ^^_ƹwkW'h f0J9B* CJOJQJ^JaJphh fCJOJQJ^Jh fB*CJaJph#h fB*CJOJQJ^JaJph# #h fB*CJOJQJ^JaJph# #h fB*CJOJQJ^JaJph# jh fB*UphjRsA h fOJQJUVjh fB*Uphh fB*phh f5B*\phh f h f5\"FFFFFF}} $$Ifa$ & Fqkd:$$Ifl40 t" 0t"4 lalf4FFFFxke$If  & F$Ifgd3%kd$$Ifl0t" 0t"4 lalpFFFFFFFF#G.GIGqGGGG 7$8$H$^ & Flkd$$Ifl0t"0t"4 lalGGGH7HSHpHHHHHHI.IIIjIIIIIIJ J!J7J8JKK7$8$H$ 7$8$H$^K]M^MNOZQR,ScSSUU&W'WWWX\Z]ZiZjZ[[\\ & F dd[$\$gd3%x7$8$H$\W]X]^^^^^^^^^^^^^^^^^^_8$If@^@__________________``bbbbbbee!e"eBeCeDeEeggggggĽĢĭāmemĢĭĢĭh fmH sH 'h fB*OJPJQJ^JmH phsH h f5B*\mH phsH #h fB*CJOJQJ^JaJph# h f5B*\phh fB*OJPJQJ^Jph h f5\h fh fCJOJQJ^JaJ'h fB*CJOJPJQJ^JaJph# )h f5B* CJOJQJ\^JaJph'________$IfK$$If<kd$$IfT-lb"h634-aT___`u``bF>>>>>$IfK$kd $IfK$L$Z    rvX$ Nlo0    634Zabbbbb8ckceF>>>>>$IfK$kd$IfK$L$Z    rvX$ lo0    634Zabee"eCeEe^egF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634ZabgggggghF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634Zabggghhhhhhhhij5j6jWjXjYjZjdkekmknkkkl l ll3l4lllllmmtnun~nnnnooo oEoFoKpLpYpZpppqq"q#q>q?qYrZrarbrrrtttt'u(uuuuuuuvvvh f5B*\phh fh fB*OJPJQJ^Jph#h fB*CJOJQJ^JaJph# QhhhhhhiF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634Zabij6jXjZjyjdkF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634ZabdkeknkkkklF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634Zabl ll4l9l>llF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634Zablllmm+mtnF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634ZabtnunnnnnoF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634Zaboo oFoHooKpF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634ZabKpLpZppppqF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634Zabqq#q?qAqqYrF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634ZabYrZrbrrrrtF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634Zabttt(u-uFuuF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634ZabuuuuuuvF>>>>>$IfK$kd$IfK$L$Z    rvX$ Nlo0    634Zabvvvvv"wwF>>>>>$IfK$kd|$IfK$L$Z    rvX$ Nlo0    634Zabvvvvwwwwwwwxxxxxxyyyzzzzzx{{{{5|F|}+}~}}} ~hi_ay"#56ʆ HX٧٧ٱٱٱٱٱٱ١ٗٗ٧ٗh fB*aJph h faJh f<B*ph)h f5B*CJOJQJ\^JaJph# h f<B*PJph h f5\#h fB*CJOJQJ^JaJph# h fh fB*OJPJQJ^Jph7wwwF>$Ifkds$IfK$L$Z    rvX$ Nlo0    634Zabwwwwwwwwwwxxxyyyyz $ & Fa$gd3%^^7$8$H$@^@<kdj$$IfT-lb"h634-aTzzzx{{{5|}r}~}}~ ~V~d~~+br87$8$H$ h7$8$H$^h & F7$8$H$gd3% 8C@TFhiabyτ#6N & Fgd3%^0 7$8$H$^hh7$8$H$^h`h & F7$8$H$gd3%N_qZʆnʇ"U47$8$H$ & Fgd3%^ & Fgd3%45HIJKX8Ӓٓ^ԔՔ֔הEQN[t}6@^@0XԑՑ$%uvӒٓ,-֔:;?@QN[YZUVt}#$ʝ˝/0%&ܫܫܫܫܫܢh fNH]^JaJh f]^JaJ h fNHh f^JaJh fNH^J h f^Jh fmH sH h f6CJOJQJ]h f h f6CJNHOJQJ]^Jh f6CJOJQJ]^J;/0/0BA#:ޣߣ]z{ޥɦʦn & FVgd3%,p^p&uv-0B à#:ѢҢstУѣݣ[\O8901!"#  ̺祙zjh fB*CJOJQJ^Jphh f5CJOJQJ\^Jh fB*CJOJQJ^Jphh fCJOJQJ^Jh fB*ph h f0J7 h f6]h fCJOJQJh fNH^J h f^J h f5\ h fNHh fmH sH h fh fNH]^JaJh f]^JaJ)no%&\]^m89"#  s{ $$$$Ifa$0@^@ & FWgd3%sOP|9:MP#$%>??@KL\BCDlmuǿ→ؗǗǗǗǗǗᅬDŽuh f5CJOJQJ\^Jh fOJQJaJhh fB*ph&h fB*CJOJQJ^JaJhphh fCJOJQJ^Jh f^JaJh fB*phh fh fCJOJQJ^Jh h f5 h f5CJ h f5OJQJ^Jh fB*CJOJQJ^Jph. $$$$Ifa$`kd$$Iflt""04 lavvB$$ pd$1$If^okdH$$Ifl0t"L04 la+OqqB$$ pd$1$If^tkd$$Ifl40t"L04 laf4OPwzzB$$ $If^tkd$$Ifl40t"L04 laf4A|zzB$$ $If^tkd;$$Ifl4u0t"L04 laf4|}~9:8Ozrrrr & FYgd3%7$8$H$/$a$tkd$$Ifl40t"L04 laf4 OPij$%0>`kdi$$Iflt""04 la $$$$Ifa$0>?|vvB$$ pd$1$If^okd$$Ifl0t"L04 la?u[B$$ pd$1$If^B$$ pd$1$Iftkd$$Ifl40t"L04 laf4?@qqB$$ pd$1$If^tkdE$$Ifl40t"L04 laf4 KqqB$$ pd$1$If^tkd$$Ifl40t"L04 laf4KLq`B$$ $If^B$$ pd$1$If^tkds$$Ifl40t"L04 laf4<\q`B$$ $If^B$$ pd$1$If^tkd $$Ifl4J0t"L04 laf4\]^-NBCDl{yh^h & FXgd3%tkd$$Ifl4v0t"L04 laf4 lmtuz{efg#$`a.F & FZgd3%h^h & FY^gd3%B pd1${fgyz#$`alo;<=>ghL2P %&˻ztztz h fCJh fOJPJQJ^Jh fB*OJQJhphh fB*phh fB*ph h f\aJjh fUh fB*phh fB*CJOJQJ^Jphh fCJOJQJ^JaJh h f5\h f5CJOJQJ\^Jh fCJOJQJ^Jh f-Fno;<>ghPQJLB & F[ pd1$gd3%B pd1$<<0$$ & FZgd3%<~N128[$\$ & F]dd[$\$gd3%dd[$\$ & F\dd[$\$gd3%2P  &~N~356Q & F8[$\$36Q89ABgh, , , @, A, R, S, r, s, , , , , >. ?. . . . . ;/ 8)Total The test cases for a particular requirement are classified into Simple, Average and Complex based on the following four factors. Test case complexity for that requirement OR Interface with other Test cases OR No. of verification points OR Baseline Test data Refer the test case classification table given below Test Case ClassificationComplexity TypeComplexity of Test CaseInterface with other Test caseNumber of verification pointsBaseline Test DataSimple< 2 transactions0< 2Not RequiredAverage3-6 transactions<33-8RequiredComplex> 6 transactions>3>8Required A sample guideline for classification of test cases is given below. Any verification point containing a calculation is considered 'Complex' Any verification point, which interfaces with or interacts with another application is classified as 'Complex' Any verification point consisting of report verification is considered as 'Complex' A verification point comprising Search functionality may be classified as 'Complex' or 'Average' depending on the complexity Depending on the respective project, the complexity needs to be identified in a similar manner. Based on the test case type an adjustment factor is assigned for simple, average and complex test cases. This adjustment factor has been calculated after a thorough study and analysis done on many testing projects. The Adjustment Factor in the table mentioned below is pre-determined and must not be changed for every project. Test Case TypeComplexity WeightAdjustment FactorNumberResultSimple 12(A)No of Simple requirements in the projectNumber*Adjust factor A (R1)Average24(B)No of Average requirements in the projectNumber*Adjust factor B (R2)Complex38(C)No of Complex requirements in the projectNumber*Adjust factor C (R3)Total Test Case PointsR1+R2+R3 From the break up of Complexity of Requirements done in the first step, we can get the number of simple, average and complex test case types. By multiplying the number of requirements with it s corresponding adjustment factor, we get the simple, average and complex test case points. Summing up the three results, we arrive at the count of Total Test Case Points. Chapter Summary This chapter covered the basics on What is Test Coverage Test Coverage measures How does Test coverage tools work List of Test Coverage tools What is TCP and how to calculate the Test Case Points for an application       Cognizant Technology Solutions TestCases Stub Stub Results Module driver Coding Pre Test & Post Test Procedure Test Scripts Test Design Test Plan Requirement Collection Preparation of Reports Test Analysis Unit Testing Is Performance Goal Reached? Test Execution Scripting Test Design Preparation Test Plan Preparation Requirements Collection Preparation Acceptance Testing SDLC - STLC Production Verification Testing User Acceptance Testing System Testing Integration Testing Preliminary Report Final Report Requirement Study Low Level Design High Level Design System Testing Integration Testing Unit Testing Detailed Design Architecture Specification Requirements User Acceptance Test Case Documents/Scenarios Performance Test Cases and Scenarios Regression Test Case Document Software Requirement Specification Performance Test Cases and Scenarios Performance Criteria Functional Specification Document Regression Test Case Document Unit/Integration/System Test Case Documents Integration Test Case Document System Test Case Document Unit Test Case Document Functional Specification Document Design Document Unit Test Case Documents Functional Specification Document Coding Detailed Design Document Architecture Design Architecture Design Functional Specification Document Functional Specification Document Functional Specification Checklist Software Requirement Specification Requirement Checklist Software Requirement Specification Requirement Study Code Walkthrough Code System Testing Integration Testing Unit Testing Detailed Design Architecture Specification Requirements Requirements Review Specification Review Architecture Review Design Review Regression Round 1 Regression Round 2 Performance Testing Regression Round 3 Analysis Coding Errors 36% and design Errors 64% Risks Factors Defect management Result analysis Script execution Tool settings, Playback options Test application ready Test tool ready 2 Performance Testing Process & Methodology Proprietary & Confidential -  PAGE 20 - , , T, Y, e, q, ]WWWW$Ifkd$$If\6 DD0 634abq, r, , , , , [UUUU$Ifkd$$If+\6 DD0 634ab, , , , , , ]WWWW$Ifkdj$$If\6 DD0 634ab, , , , / / / / / 0 0 ][[[[[Y[W[kd@$$If\6 DD0 634ab 0 0 1 1 2 2 52 62 *4 +4 G4 H4 c4 p4 ~4 4 4 $$Ifa$$IfEkd $$If4,v%&v%  v%4a f4p $$Ifa$}4 ~4 4 4 4 4 4 4 5 5 5 5 5 5 6 6 26 36 P6 Q6 c6 d6 e6 k6 l6 |6 }6 ~6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 `: n: 꿴ꪞꪞꪞڒh f56\]aJh fB*PJaJphh fB*aJphh f5PJ\aJh f5\aJh fOJPJQJh fOJQJh fh fOJPJQJ^Jh fCJaJ h faJh fPJaJ94 4 4 5 5 C5 E<::2 & F]gd3%8[$\$kd $$Ifr!v%''y '' ' 2v%4a p2C5 f5 5 5 5 5 5 5 5 5 5 5 5 5 6 36 Q6 d6 $$Ifa$Ekd& $$If4D%&D%  D%4af4p $If & F]gd3%d6 e6 l6 }6 6 6 6 E?666? $$Ifa$$Ifkd $$IfrpX D%p@  2D%4ap26 6 6 6 6 6 6 zqqqz $$Ifa$$If~kd< $$IfrpX D%'p'@ '''D%4a6 6 6 6 6 6 6 zqqqz $$Ifa$$If~kd+$$IfrpX D%'p'@ '''D%4a6 6 6 )7 *7 s7 7 88 8 8 9 9 9 `: ~~~vvvv~~~~~ & F^gd3%~kd($$IfrpX D%'p'@ '''D%4a `: o: : : : : $$ &`#$/Ifa$ $ &`#$/Ifn: o: : : : : : : : : : : : : : : : : : : : : : : ; ; ; ; /; 0; L; M; T; U; V; W; [; \; ; ; ; ; ; ; ; ; ; ; ; ; ; ; = 6= (> )> *> +> -> .> 0> ļļļļļļļļļļļļļļʸh~Ajh~AUh fOJPJQJ^Jh f6>*]h fh fPJaJ h faJh fCJaJh f56\]aJh f5PJ\aJh f5\aJh f56PJ\]aJ<: : : : =0 $$ &`#$/Ifa$ $ &`#$/Ifkd%$$Ifr[h `5%    'L '    6` 2b%4ap2: : : : : : ; ; 0; L; i\ $ &`#$/Ifkd$$Ifr[h `5%' ' ''L '   6` b%4a$$ &`#$/Ifa$ L; M; U; W; \; ; ; yl\\\\$$ &`#$/Ifa$ $ &`#$/Ifkd6$$Ifr[h `5%' ' ''L '   6` b%4a; ; ; ; ; ; ; ylll\\$$ &`#$/Ifa$ $ &`#$/IfkdK$$Ifr[h `5%' ' ''L '  6` b%4a; ; ; 7= G= H= l= m= = = = = ywwuwoogggg & Fgd3%`kd$$Ifr[h `5%'  '  ' 'L  '    6` b%4a = #> $> %> &> '> (> )> *> ,> -> /> 0> 2> 3> 5> 6> 8> 9> :> ;> <> &dP&d1$P^8[$\$ ^`8^8 & Fgd3%0> 1> 3> 4> 6> 7> => >> ?> @> D> E> d> > > > > > > > > > > > > > > > > > Ƹޔވvi__S_S_h fCJOJQJaJh fCJ^JaJh f5CJOJQJaJ"h f<B*OJPJQJ^Jphh fB*CJaJphh f5OJPJQJ\^J(h f5B*CJOJQJ\^Jhphh f5B*OJ QJ phjh fUjh fCJUmHnHuh f!jh f5CJUmHnHuh~Ajh~AU<> => @> A> B> C> D> E> O> Z> d> e> o> p> u> v> {> |> > > > > > > > > > 8[$\$$a$++$ aa$> > > > > > > > > > > ? ? "? #? 0? 1? A? O? P? _? `? j? k? ? ? ? ? ? 7$8$H$$a$> > > > > > ? ? ? !? "? #? 0? 1? O? P? ^? _? `? i? j? k? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ !@ "@ )@ *@ +@ ?@ @@ S@ 򽄽xh fCJOJQJ^Jh f5B*\ph3f h fCJh fB* CJphfh f5CJOJQJaJh fCJ^Jh f5CJ\%h f5B* CJOJQJ\^Jphfh fCJOJQJaJh fCJOJQJaJh fCJ^JaJh fh fCJ^JaJ/? ? ? ? ? ? @ @ @ @ *@ +@ ?@ @@ S@ T@ a@ b@ c@ d@ v@ w@ @ @ @ @ @ @ @ 7$8$H$S@ T@ a@ d@ v@ w@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A 9A :A _A `A ~A A A A A A A A B B B !B MB NB mB nB B B B B B B B B B B C C C C 4C 5C IC JC ^C _C C C C C C C h f5CJOJQJaJ!h f5B* OJQJ\^Jphf%h f5B* CJOJQJ\^Jphfh fCJOJQJ^Jh fK@ @ @ @ @ @ @ @ @ @ A A 9A :A _A `A ~A A A A A A A A B B B !B MB $a$$a$MB NB mB nB B B B B B B B B B B C C C C 4C 5C IC JC ^C _C C C C C C $a$C C C C D D 'D (D :D ;D LD MD RD SD bD cD wD xD D D D D D D D D D D D $a$$a$C C C D D 'D (D :D ;D LD MD RD SD bD cD wD xD D D D D D D D D D D D D D D E E E E $E %E 8E 9E ME NE aE E E WF F F F F F F F F F F F Ǻߴ h fCJh OCJ^JmHnHujh fCJU^Jh f6B*CJphh fCJ^J h f5CJh fh f5CJOJQJaJ7D D D D E E E E $E %E 8E 9E ME NE aE bE E E E E E E E E E E E E E 0$a$E E E E F F &F 'F 7F 8F :F ;F F ?F @F AF BF CF DF EF FF GF HF IF JF KF LF  -DM LF MF NF OF PF QF RF SF TF UF VF WF YF F F F F s 0+p,p-p.p/R!/ =!"#$% 456750P/ =! "#$% Dp,/R / =!p"#$% n#Gދ/PNG  IHDR22)xgAMAPLTE!!!)))111999BBBJJJRRRZZZccckkksss{{{B!JZ{B)c1s)!R1{9BֽR1BB!Z19cJ)s11R!B1J!c){B!ZRB!!B!B11!!ZB9!JJBBJRB9JRkJkR{JsR{R9k){R!B1){cJ9cZJckccJZJZcZR1BJ!1RB911))9Z)!Rcs!1!k{BZskR{)J!1!B)R1ck9s!ZBsRJ{BJRcckkss{J{Bs)Z1kBJRZcksJc9)c9JZcck!R)B!)91!99BcV?&IDATxSG/@AJH1Fm%ӪSL&LlV??e@lm^4X۳;ͼoWLrw}o%:o[$1U0\,27 eކK"K3M٢/d +&å4g.4ZZԀ%K.'[kyd o@ dF fdvy2sU2gW#S-+' mO3|zd%gih"n׻è;Yd0Mp󃅵[ǖLgiwk ^*O&dbL6x92AMM, W{G]gg5A9IPưS]4|IbWLfs9ؓF0dd . B9 s/e6ٴ-N=,gE6\Z ×NN*’֐/0Xn觝`RЁ}s2iW'Kn2p{dY:fD5=XVBց或fh*N zB]DmD#ޒA0Vl&KIVՂL'\Ҳ "df? @fK*ژ2dz%,EzhՙnR؄. :R ևpdgZ&x $/x?~x3y *ౝˠ-Yn4G~0[Id00∷p{i܍7$c K'RU3W=¦ 2i32r2D4=qVXn5.E jEȖU"SWJ1h+Y%dUJV*Y%dUJV*Y%dU[&UjjjEva^_F' {|dzdw/m=Z1~bd/p/dLtP<5[:2~9{M@M Sdwv? vGd=M/G9W:2JXI41MPR2Bv}jh8ⵈ,>;H,/Hv6׼q{e"&גYI\y"Lj̗2kt,:Ӿ9:0L=XoM!]dXfdy?S03t C`X U 8ȂG0u ҆3Z^s4_!ZN`&;}0Y`9}C"C ?"pո5.d2}+<_w&;|DG(kd119BX{`T|Ru >N)4ÑD'h߳fxًAI:H"fiqrND1[ZDdH"d) A[H$O{'BQkt lUf ̀'[U {E>9 }]@בU`} @t?xR[ڌN^=d3Dٗ놣'CE)bW'/n>GfE?˻ĖIdމ8d/\#c͠BĹޕ,Qٖck]$S]bOK{Z}H>܅,d0^.VD'kddh7-6i %8Y81"ladfj2$-L#kZLk;Pۙ3ȴ nKdTOOFUw'srms'^MgycdLd=wv$*}Κb2棎l 戌eM+ h Q[f^23C 2sC8vbdգ #2a VGۦ]YVdg4`IFY IdikP:IΉdFq)g BNWӮɉeq@L1]7)YZ/h1>9Qg/HF8kKR[ؙ̜{^#(+R[W $lSK̓Mn~Aj&zWYBU~i[ bzc NlkEH~i["LBmnٴMtwrvbߤ"| MD8B6k%>%j^.B93;OĶF섵Tjaԡ~zj/ĆG3~2ص(P{A@ޒ)/8y7?W5OH4Zha%l2 ;!7bd ^zG=TP$̩Ֆմ{q1jЩ-ޓɞ%4 ]fs"mc"ʑtO`1a@E%Ds2$sZj5TD^~rGfkUoH7gd &2 3w0xG2?? oB&1jރ4dȼ& 0j[ PƩ`NH#wx[|)%{Z,OK"a FwN'P NS'5{‘1"H7c]r9'&>d DFL~ ZliowPY$[V2˱E7-۳{C7o=.Yd$gs6js`F]Etsϡ۳f#cmwjg܃,Yϥ$?v:dW->,f#[Ɍ̱g/#}쓂i$䟵 }^oO~ !A7%SfLgkC-{:oV/jj~?zJV*Y%dUJV*Y%dUJV*Y%dU)YNyt%d]j Vs)Yj䭒0b:Ć[H<?>dnhO0$cTW 2?dnhaVuP\둹 H9RZ`UJ+|E2Ց5bJfn hN`%Sɰ-](f9BUL'G&hJdTWfi a" "Gٕ̺jKdtsb"ڬ2^?02Wz% \WW(eϮr.t QO5h;Hd %dh QM_K7Eju4g#3g"ȰRs5Q6Dvv'zAdVv YvT24׆3'KkfVT2f^X/%dC>i aF믱\z߱}p5AjyAKs!ivF3cXEA\YE NijxPJ WȰ aYגCT ڿ%YdǓlл/Hh@h`%:SJEGpyL.Ldޒ ༢9ldĈ2d}`pp\M܃y_'(s6Y`xP]A+5EEGH΂VC {+-iNx#8 !6h!=jΠ8]Iِ`0l?%ȉ pd5ɔFи%oEܝ c::HZ$g5lD'ddnhZMK ~Մ  Sc2NILKP dܾ.Xf,φVW܀5.@430^՞JV*Y%dUJ{%TeIIENDB`n+gT [mPNG  IHDR:(E]sRGB pHYs++eIDATx^MK](A -)BRxxdE,W!"){8\‹ n*wFrL  X{tLwS.yG37 +t)Wk! 0Ó̮:"2av̮ٷ7]Psv-g#]=8g4p7وfWiSU<%@$b^ {O_ WQ  <=s}ۿ>2Hd)ӯC>p ۭ_7݃'Oһg>?A0 @cgϙ_ՏKSY^z+.|}7}?W+[y>g7a__?oVgW_>N')n37_wWL3( / U2Ye>oz/ɼ2o~N,s&P{O >W2LVkyXd7?/~>fw dYxy7_kGۗѣ*+~)e@ t*qQqupi 5o{kXZkW OdW|*<%@ 8'+\c\9-+c9kW/<0F/?VA 9@:VWE`V@Xs*&ܸz֣oWZ7Ϲ+ho~[ͫ)A"ڕTO [-̛U+[eo_[-쵫?ox7W"~)|rWK~M9֬Ti6jsߗq$G&´z@|(;"3s.[oϴu4S\ٛ?U8GO+{z+N\?~v}n"Γ<$"wڞ|RpX\G}huN_fW ׃;A\~W:}RU\.k2+{cpb~2KΒLe&|qE\=.c*̽ ]<<\AY%y"87BXFᵫeV@ۄA@τ*,@\<(F*fh( вqw@⪘ @UˣO@bb"- W->}G *,@\<(F*fh( вqw@dqs5T5髯 {A  @pܽ}S^|ٰy! -tMؘ$rjSE WrPӆ:{|T*YhgRpC]'dmF\p^yv"e%rY),in(s&,㷿kCN1[ Jf`E,lݹBmT*9+]]"]% Jj{gݘnJNy|{mCn+{ʹobIUWt5UϮ NTfW.γC@`fWs\/2RL U9T0rt  n:w ZP {\0/;K,ݯ2:s`/N%1[nA@ vuؠ:Ka@8('Mю4@`=iN:{ǃ[ @)i⪔N@BBf#m Wm7E  8%@\5(T*th6 Жqx[@PЁ @[sUCi#'V謞Il6 ]`K"b sU.u= c6&S6 Z11"1Gӱ" #=Cl9"LWSXQG,oumrʠ4R/ ig{V b/. N.%]?YCvs>φ+@R@"^S2]*h~ԏ`Ɵ?7 'J;NâSƟKu]驿H>v͜Eax[k11F daљ'?aww@Tߩ)5Ou"gI6G% Dq9'UvX#X%8vߩ$͛ XISú P@Ƹ"\YbkzuXE#mĚ>C(Θ3o~K"wǮ;k6/*!#Nc3߻s}c&*(GT*EH*+n[`v5?G@ĜYu mvNF22ƉV" Wt(C*ch% иq@@2nn@,CV"P@ן?bӏ]v5SK;F9/cT#!o+#rF_NָPs}cqoY ~*IH|׮~wߜ{T Р|q .]FH%@\@UF\FVJ?bcX M 8_e7:bjĵ^$K\1L4 c :j@ ,`Op]%]$:C8n:w'` ]#Ux/%K{|.%26 L!澃NI>[;H\U@wX^@|oSx/Ԃ.|d@M6@-=w imPrv`U*[N\U6tꋽ7?Wk"_X߯!gòwi ]vg?浧򌸚q?eS"rt|d ZZ}t|lB.L|qj6:@rg~ӬЎ7TL/u@`%z%lzSƅǺ 3 W3A@)=EI9-ΑR4ܬuzf@ $;noZvkW3$bWfPJ@`;/]2/K2늫$]@׮ PqU%@>⪾1G @UJ@Ɣ! W*]BwW!,(l4τGM# Z kWk#چ p,@\+  @\0H4@b@(@*`h" q> P@z9uSX@&dquM24&)S,e6GA!,6΄<"'!)U! d+9C(Rv1_˩Zgy̶( 6x(ed8?"J[5ym h Ь@Gܚ1uMǕ..w;KAlgEoG lیqܞP N‚q'\0d ƌ  YPٳ__z*qn\;]F W6Kns-n]^nMc@>q$~YjԜAWCoqȆQ (E o\9b=ifÖY"7 ]ƌs~]hV|߰ kWJo<;b2z.7թio縭?FV+=GRθ+=z3='og #7u; C d+},vwC=%yYhs\LJpF8S 3ʅ+}ܗkK6Gr?dԬK_:~i$1jl#׹*h\`3fƇ# ''@R W$@ q@R W$@ q@R W$@ @}O !lݹ,xZ9Z[A7W.IǨF9UG#U̡|nӇ{qiE  @\%ۚ¬1eP\qj=! ƨ l@`q5Fu@@n4}; q/G`mv##V $d}NWE D`㾌t]q b&qQ:9.+p]gIF\=Ye%ft`?n hAq\҈ywU@1s&`<ϮW5" Gd7)>ێ.pyD@=7 omPBE`Uu5UeJwC@_WSV#\ 5l5:>_Rj%p}"6lTqlaYS_}Զ-Wu MR1zHGSيUeJwXW9յu B)8:vOZ +@\  @\0H4@9I-ΑR옚.^84,(;n>n -wkWsl$bWfPJ@`;_|eJ_7S\dWID%  +]շ#@BAK @}U}cJ@  .! W)=B* *T'@\7PpP PZz fz䊴jCx҂#ʦ@ZUR @`vvŵ5mC8 @  $ @\  @\0H4@b@(@ e\=vl͏ Fg\P? @P Y\{L9;ge@D Y\9&BPF@ @dIaWYY+*JUr3~]2%A(0/c?y`۳N%~]Ҿa&b*Ti+ocB&# dyĭ9zJy4FNDT`s܊p7Φypkf& lیqȸ g<8'=zS?'aG@,(칮]BiG|p`PU:e,!Xdqe϶ɫ@]k 2zI=*=J=k2bld{@ "f65 SiNm @8hO9HYZdUCC @C?l¾$+F2X|cLy@*Gs@Mq @aUaFs@66ǝ^# W E wz&@\6`4hS`:Ⱦ+Wl3n~=CU>I: ԃL#/n;2k\%6-D @Bq%_̑YZ/1YX@ ֞ڒ?d~+gV3riӆ7Oo%yv*6=l@yJ|'rǻ~UI6L~΍Ux঻6:ZT?iO#P$2#a D 䍫WF=t2̠kNpոj!8[p%=;k!#U`\}w1”N=14g ؕR-!N3w  J. (KuLAݵMwOq13AֳҮiBz2~+mY hvu}(ר~}_E/5;G&a`8-w?j=A?z? mj\Yz5CIG@ x20SJ6Rh' PJIU \ԋ PJIU \ԋ PJIU \ԋ PJIU +\m^l6 =}:,utttM-?#v]Q 0ksl퉫FlkUC9+ܦ*3hAJ>=ɷ5sYcˠ{C#@\Qc@ j |Q89tg~ǺS *q5tO<Egjpf= BJا"F"jm6ȍEa *w!$YqU;fӅ.aOY=S]b]vbW˸U@̭5qϮsUMٟBMt  j]!P@i[TPȃ}*/?XUD]&*P?lw_V[q1%V'ooQ?IgmzOy7u@:^k1.ImۂqUO/X~څsZXH;t*dϥ"gQδHWki @x+J",&@\-Fφ@Nӣ-ζZ/o%@ @h&J*vׯ]ܒFƊ)f2{\AM+*A) ~)ծLq[_W\% '0(vU@@  .! W)=B* *T'@\7P`؍%@6M_YHA܀e@ZqU-CX]qjCD@W  W MD @ HW=t_*z4@`@*@@S e\s#v:@)㪧Y&K,v@J&b{*wok|$#bȺX)@_ C>:gL+]4v ςbGnN4_"3u$z `gA ՠQoٰAP@&q%Ɇ}O[/,i  @@ N,S@?Xd1 и@ɓq_ D M\驒>I+@q4q8"G-@\~@UD@-@\~@UD@-@\~@U(MYEfa9? @MUrG]DFc+IM*D03ŕ|Hkz[ @* KɃ_7,I,i9XI bW%=MRpe@+Ar'ٖY"rO<6}AM5; 4[!r?űEx#MCJS2g?=׮p7`=@J)љCDgr|/IdŜWcb8n㬒J@EǕ甚({/(<ⶽtGOSnٺF"{E 2Ggw?6MLI]?%rܷ? dS-ZIJB[RO%J]ѭك#H@`Ubvq* Aqdz\h  @UcG@" W-G~']E 876;:::~j2W1V9܀T c;S"훸wWƍ%:mF:W+A+]pi +@\O  @\0H4@b@ 㸉qn33U&XEVl/Oj!x6 ْ3 /饿"9B\͡6@V;2,[jF& .g/iB']'tԄM Vy&wN@V}Ϟㆋ|cM\峥f_@Nɩ?^S.܅Ῡ_mTQlܿa%rm,1? ]h; 0^@LakyycI;y^nk߲$R: Y3, qJ@zhj4+"'@\g͖@F {]uE~KYkݸqctY(`9:c#eׯ]6ꑱbsaD,,եWnSWY2ʼOR=:/0hvŵ@& W @ qߘ- L &R @~*1[@,@\M&@U~c 0Y?LH zS-V <::τ3;k"RЃ?t ' GX@ZM"  Q@`jt6 0T*FyhKܹ_mu~M%4V)QLt7!L0wۗ| aq5T $?{K!+ @vxἤyoOJ2ɏ#/h} +@sJa2$g̡֗TK4eײ)%؈q΀^1v M8dF4UƋ"lY' LlF׶.<"Q= Т 3 6v8}@*" K WKG "( q}@*" K WKGT(̵1yIi};b&]+/~ =]q9C]s27?%ZU#KIܬ ݙFzWKGdO-She{0|^W39(C@'$K͜uʷTlI\F͆P#a959uG_5Gոf-8h3lkqU~EX@5N~lq':+qup(@-s&VOG˲M.ˮ?W8#rrлIG#< whj~s 0XL  @S+>WMut(U*uh7 Д)3;}Z- ̷ o6уM﷛(`'&s2^vUekwcjU-Qgqu򕴕6'Z/q D ZDaQ@`YjY %@\E1Q@`YjY %@\E1Q@`YjY %@\E1Q@`YjY %@\E1Q@`YC / @?GF0^^IENDB`n dQSY (aPNG  IHDR@w\sRGB pHYs+ IDATx^{U9V%CV Eq |`*be(!(ʽJJJW(KPH {]ߜ}>=g̞=s̜S>@VHO;+*@SpM ΃@u>sJN TU?Qԕ_zMB>+$ja+55Xv\W/*DTߠ"pJ́K}8cG?d(@mX:d2 =a_Ǝ;svJ894| TVzqzW_:MٱȓBzhh?|m^}o:|߻i>x7?GE<&~yCT!C?ݽevזYF֟Z?}FYi ]t_=# ?չ KI?x%FbqYp7vQqي,SU\@k( -で|ݤOrS_~qCs0~O8f>歔wĿ4bQʛybZy}w;J[xgo/NN9JSŞz=/\onbiNt?r`tL᳿EWWsh׺S:{?li8sT] ΛՏz`~Y?'?s-D払WҙszŔI6RĭjGqE,) _:vc[%|w&ϴt\kBXd|nB:xO5~am_<;mđ4FA2M)3\pw˄K^BzɲUJY>A:ďzG^jGMY?jPԵ^~< ^0t WfnpF/S7fotĪ@l#jpyif P2pꀀ ؄҂@@% & `ZH %#, Mh!-\: `B6 P2pꀀ BÙ'OJH  O@y)nƌ#ꢷI(95dd3V͕ -@vYF$ŋnh(%,Q#.h6)Hҥn6=+e2~٠_E zCk@`_Qoo/4l+(  X^#а.$Pff^ κ1_)#NF,LKVio&%~ @Ip{{;40pl+?c=儷* s`=D6rN1FZ\B|y|LQ:\+ݴCA'Q: `! `tʘ] ?+\cwC DV;d.:6f`F5U!)48k%& kFʈW:~)Ҏ%44TV5MKsTm51M3ɓRJz4Q}4%A J?,&ϰnY+S2?wP=.w!d(*I |&WlhD*9eۃi7-"bXFUMf ̧nFCR{*SjiВ!SHjz0HY1#]cG*ybAeϴXT :cKִq59W?MmvUfqIDRˏmRw}č”&fwޯdiKF"'6'k“Ph!FJPFӨ yMӕ/MP(&}|N"UM\TsvKs u¡FWXH#^ļҧzCjB+ 9J&֮F$Q@b!r1@7=|O51bVT"Hb m!נLȑQ՛j ..)LA~SLbo[{5|&e̤+-;g9;shG! LQJfҵ;15HB "T.n=3ϋ7IxdZR _'"%ejU.%d'iK5Od{Tbdw %@4EBek͆{|@^1er0ӰܳE(@&\xQ .`a6 $B 7; @M;s{~/y ` <'{`7; @M;s{~/y ` <'`='dս?iլIѱjB[υW{/idϲjXo@zaY@ 5 @^$)qM)DC+01/0vڌ0vϼ΢E?()d0!txٲqKd;Zqrᅭ5C9paQw,U]4bEahLpaqwI4z \a0\Xpw^b̋Tnpa^E/]8;Ô%8B)+ds慭 {V\X@]Io~EahXpaw1]-<' [x4awH+Q`y-/ I Zrr^f"lq9~]~xad 6H k@Ux)H 3wtt8 1 WlRK}_Y!Oa)Jp1p `4Q8&;s `l& `almDY 8́MM( 9IIecPc0 @>oe@{%`IENDB`n$'ךZbjPNG  IHDRasRGB pHYs+$xIDATx^۷'GU|Q A ̐ˌ" *+ b@0\sC"}Z(0Džhs13QPA$<֙:SSwkޟ]Uߡ .~ @`nCJ=4IhNݗϊAKW*C/, 6v+i{0:ݷ~:An Qhy܅5])}vP^sWOmb+xcJ/Py:&.]2!s~{rG/ ,9|ava>,8\GR=_.'O{N+Vfv_Ya1Ǭ dP:b*\4rxT/hbN#_Hz/Ֆn,><{ۓne5@Ju[C(kGl!|VNcoU[_Wߑnk^5Ֆ{@pN  fΜ:Wŏ޾ݷ/ߺo^z'>Oh_^)xmܭSޥ=ׇ?|yп͇>6˟}?}6o?{ھj{~ߡ ]N>u;z?~۹?zzcxc^F`$v`?EՀ oӸ~j%;O~\z͋Cmŷ(|+Zϳ_vs^vz_Mz|މwZ֫w+ߣ6cW'_7m/QBھ?tk:2^#jS/O|j/_{K(z_n|G_Ə׏fɾ24 $MRٽQ|ۯkn*?r3zvb_Զڽݧtg{W>6 Ŝg\?75׽׽9G u}mYN~jIm{-=5V[;=?{[>>+r!Q̒NbֹxcUk=3߮#o#o֯%,V$V 3@Zc[;+?)$=D_do.VY7q?{+!Rz_m{|zTs{7Mڗj_{Kj_+FL׫Rv͗v/`s^77aoK_ehCE(0߿Uw+Hs{t}\?'ppt[j;}~DА#g1GeFFMc\Y폲QPϠOQ(h3s'6sDS3sjDf9e{##?% -g0 l|ya62@Xj]"Z@$w?C@@@3@@;(!@hOoϘ t@@==cz 侃" @@@3@@;(!@hOoϘ t@@==cz 侃" @@@3@@;(!@hOoϘ t@@=r {=)aYI( miո:g_ܝp#jz+X=l7t>C?gys]2*!=AlA/1Ӕ.OKNgy As?׳jnO~GhgmJ9O8c 4ӵ$S/M~7{OY @S9Yм)87{]G3GD2(sbHYj;S]qhJSU`A:4@ra_asƣY9rǖeU6Ԇ6jZ? lΰBrc#r/ҏ8 fo)@`xF 4\/fKZ2^:3hȽ< r/d &܋.?Cr rjMhȽ< r/d &܋.?Cr rjMhȽ< r/d &܋.?Cr rjMhȽ< r/d &܋.?Cr rjMhȽ< r/d &܋.?CrT#N(Gep]N]jRmeWEg@@Pd}H7M r_VVr̙hPܧXp6 J~l~ykmYNBV{ҕD4EyKMBbS? 0Svʽ?.߫D*o*9y!΢)'N͒掁y;=G0"S@s}d=^IE!]70;mf`AAG "|Es/ypFZ>[m -O# EBB1b |szȉaIOlOS6U8'*s(@ۡj5:ۡ{{Ak_~H QEv 's"HϔʽYpڳ@}_ v9RGðv%8=k?@&z o3}G5"Ji^u.ڿ4Vi/; 6=+9=H 0D -)KL`+u.E@+9  7-M Ji(&e nu Rk^w5@&`OR&'  CH$'  T[oy<k SN!jZ5! E ~ge%/eq ɛ9 pz  FF`q @/}_ @ @_A4@-  }Ճh 4"7[@}@@hDo"U Јr,n!ED@XBrW=@#}# 侯z  FF`q @/}_ @ @_A4@-  }Ճh 4"7[@}@@hDo"U Јr,n!ED@XBrW=@#}# 侯z  FF`q @/.{ϟ׃uSю0 M@nٽ;aw~M,je6ݤQD22o)6fa)M$"UBm,*3?r>x.!*wAпf74/~~*(nV4N6Ye\_kE6OxRϔ\j;gjP/"лYID}*3!%ļ̇zg GOͿľd`~HRWF/*en >%͔Z.q}: 8Kq`lRt-z}ƌQ\|?ɬcWyJ!j1 D=}9f]b;Qz~<~1R Ш  ,s|Eă%FI9{#fH̪~YWY'ItRF\&L*S)$^TWt0+2m[I\A@E]߈Y1O\AN>HBRi@҇@THBRi@҇@THBRi@҇@THBRi@҇@THBRi@҇@THBRi@҇@THBRi@҇@THBRi@҇@THBRi@҇@THBRi@҇@T1,M{a d܏W}r 'bM6z͉ ~&tR;;3!e;M@PEexk5r 0ͧNRNzmw5SR:tx/'R7zX CJq@D땵voN: £Km#zWd2L贍>##fd#)1/fU9;J@(;k\>طvvCK1CG~`jagY]bA㞳CZ+~z>f.7M$j/*Өvvr_BIv,N \S% t3o>Q\>~"ٙEkȫ]u>ձWffkGh?ui+? d;'iJlI7K^ fY_5~Wj6NncA 9İO%`4771}kqs< .؁"ye:=w&Y~0@3 R :/dKоTkc?6xY7?GQtI), tM%h&E]Q%ܯP%ns~D b}q|vYD: 4_@`Fܙ3#l ~9 @`F r3  3¦+@@cOf$ ,G_==Cr?#l Ge}r3 {"憟XHfH =IENDB`n"s7g;7ZJk=PNG  IHDR$ L[sRGB pHYs+"xIDATx^ٷmGUs}&݄nhtMo_9BB$0`( 6x%i! b g3UjU]+מ5kίjvZݩ" @`(gϝ?gz ]wuϪa< ACRg'SNmj?u_ݱeXHzNVMmǖSkxRoSGq{VN^{fɅ6P(FJ?( NZ­fcl {v'#+1d{vOi۝"`nڶAh)b^x>jVlo-of}JV-ּn)N{ǻU(wu+O)@Ld1/c^v0=:yԎ1Ƽu۷3͇% wz,gq6Х  M ~}7{[2=gnOn{̂˟x?}⍡wra ސvz}~}RC!p׻ŦnɮK~%lKoΏ^wǞu^{<ת7<}o3ߴo܏++3lDyUes8ߟ}=WTHǃ֍?xn7ny5t[o-Oװ\ᆽGWkw ~ɥ*oR??7|'ޟ}=KgW^a%Ͽ}xW7u7-8o'|պ~_w>-.>2_{g>~O\{n~ʴWKW.<*sgؼ ʮ\F ] ]~-}Hpp˞pfqjկx51gInMէiEdǟڧ<{#_=\ݧ>O}j٧Ӝ][/}.+[.zl~ x\dnwVu͋~͋7*"|;}WC͕?'"{784~nj?@`TmsPp͍y/>>|[,o=o=Yۿ~fڧOm+wW>ykN>=ׯKxxc9\@򁏼 u3cpc^7U{>p47f<o!ozd+mft̛UƼa{:Jnl'?;ϐ42ՠchAj1\“qzɘ- 9й]oη);.TsO&jsIޟ~~j6X0ZFa/Eϰ |'^-C_ {O:uQ 3v^ڦS ˤ $+S d ϰ9+_xۃ=yrIg({77swn[ϋ8>`nE =RKz$&ynNaSVgظ{*h<1GPD*e<1c]G?T+OP~zs]=1R]ۀFJH+2sLJސ]|NTְ\;kR<*sYeC(oW1erĜ^fm0?~MMvz^EyA:*:s|@ՔWx,LE]YUt=Z4]0֍o@EՔwG)7w;u%'H%,_-b֐Q^K1l TޱrȩU|s`@ ۤnzMD.sQ-G Fe3bKVR-RJ  +wRG|Ӎ2Qƴqe'R9!:s}(JQX6^NEeZ3~t^:U[WRwW|˫4D@(/}PޡS >@`h桱C7A`9@ӽ;︭z5=w@%@81ZK@9TFh>QpB4qOin^ISWyߗYЄەʫ*/gغvIAJߧK40n4K^ZiwOR 0 (9Ȓ)Xj.ުidV* _cSRl-j&s@efA5&|L "_|gnĀ:"|K KUo/1sZHA-z#<-Q-2I37QJD$ +$0&5 ThDt#ZznZMMx)DOwL,Ppo!aԥ1bG^a"ϯePay):Uɉ4Y"aPɷ8 yt K 4 \d7s.B-E| :)oNvcPUa^DѯK-~ dj jGѭ؎w啝?v pu)t4 '(ZOI_ʫ޴lQ{QD+Fݦ,mHZӖLQ†UF00@u"22^ 1K&*?1=!vz0רw3ƾf $SVYvi3g3AaLNZuY45T2 cQҠR@yVXȨOƼQ;ٰ>uX @`Pe#Y@s"ΩXgne@! @@ ,öw.'r9k37`%C؝@[ߙ8 @yxa @`w( @[ k@@ywg@eP2^XC؝ʻ;C<@(#Pv[o!~]'.5u!r]  2eN@`h(ĩK 04wh@@@5卾Yj ?Q6+(KLW@ }VRc_[-Rioses~3:B߂ D`> XW' t,؏-n ' Ճw%5$ E({z" !*[wn L>ϛ5So؆ag*l1zr[dg")@/myd&V 2hOvơ'*M?-|˜@I+oQ&E;M6"|E`Bʫ*ފ(wx+j&2sڋ*%uk# ,skH2(?L'=M;l0JUeSHa )tk9w8ԯTq.gfhhH4r/x$'$mDV3"Vj ϟ-ϦZt{YFy3u0VUt`T`{fF@Fx͔׋yznB֘7DHiDݩ< ?6ykҩvI$^ˆ1w ѯ:2GΫ6)r; 2`0aYrԚ|e`ksb(&ΡC5ۨ\0(ot*&o,9jouǓ!&gRRZrmrU'NdVէI Fh<,:AB".9IwDjNQ]Ѣ;8 wSwNCa@`w`@xٗ[P(@M2 ] 1I f PJ@TҾNLq#i, W{W8Zy^{S?s"Nյ6:K">:$ˎLÕQGyGN관=զgؚUbiijJLMD((ة8" s:+CW{~;)~-95B wP7.A`A,H.M:w-D|6{sy|#~=9ܗ շB:@ӽ gϝ\0H B7`Bz'S K 04wh@@;4q   M8A@y&M @C@y&N}P^ C>@uW^^x/ Α{Z{O (j<^hk"~g~d)~]:w0: `~s/rա){/Km T޺>tVRc_۰"v&KߑKu9 6T"v)_ug;Ň!0]&ԒïiB`\SQ^4Пzo~; `&ޫ+$ t[ M$mHs4ښWbHthsRf._x-q_~UtyR+zϦpYqrx6h%MiD4Z2 &h6J36J֞ivjHdv(q )ofk`S$*DjIwR@s)UalS91ի4@N-Xr`Rޜ`!j4vh ŷuBsm3x4R]%*N-63"03ٚUDmZ(x*)Hmk^: Lga wO]y=Փ4)~ksƼn7^[ě0lA{CuDi[աw4V͗LtZ[zn ;3?Y!nNN}{Z˻ֻ2ki UԊ@Ԗuy%fuƼNѷLKΘnLx 0;#ygLj!HlÈ P5 `avMF.e?{oo;nk_4ۀNfG`05 نmfO`1=B4]00m7B+ bet!0cp;!(71u2JXΣUΰ1ϻ PHT1cnо0yn?@uRQ_S̻Eywg@`'"rn'G)Χ SNGĊ5{FZE@T>iV(VwRA0=5ؘKt!auGYQd'1P1;:uC`Rس ;JT66_Q$[ݭ(ohb x*dIX]UhEН} gϜ!0ik2T@H5wɺhB-^A{1=w7b3#§jL'dZCjn5hV 5 fЉ`] PQS)N`ٵs:ի't ,<˰SS,ǰQީ=o(ou8"ts_ -!4@yX;;mλvXēy>o  Gi}>=Uy6Lk&xDc7`s<)9BN`뱪RˡINk{j@(R^ΰXʻV'g@`\(X#wNPqS; F([!q v@`X#!r G;),>Vz W|zY9 JDy筄7 ٨0 P[ $n d@yQa@H@&Pp=/WeS]jZNs_Ux!qlōO?C$I;*~*VIw&^].!u΅zW!)%-5;`("Я:hp0`.>2' 0*o4It=j#gxl{ԉd;RSxGyEg}Vڕ dM'<=/㧻 0}) R'D@#@yGO +n|RF"PvUHqR8x8ܩu*;{riY#ހI@E[n\AX'~]'S C3l9 P[& @ys(a@&&M|A!Pp=o;l ?k8|Ble«Wm&*x]cxNy{Ef4ݖU^ϋLSF-ew^]wuъ.o ByC'0ϻ:u#a@`t(M@krF'0軩3wnHk;nOM7_!:Ly @ypaX3ݰ=x,(;f"~ ,Fv-&2Ɨj٨twl0Ai;,!0QἊK {6vbDUiir)1ԡEP(4n?4@8KLDWAbNu m(tڂH$0"MVd:ƓMN'! ,C| ޣWzUj[PyZDXuzQ|yٍM`mFeZMXM"t7(9OB2=pOn'.eiJ wEj !lX)lϑ- 0(Z u ۺ{!߻7?1_oW=z{ͮvkK9S/ <| +Ey֤oS]+MNؤODjv.vzv7je[ɮ475v]ofٳo޵~eSؼ^~^_vX:LB_4ޥ׻W/ŬI~5=i;G z~O>&&zOR;uwߵwܟK'*]=}G:ÿ'OA~O~5C;9_ُB  @ g wGDS\hQWz_lh_[Џg+o?Ooӿukj Mͭ[%_xZ'K_핕u \F`zYDpz.y]z5o6'xO~py4k׻.=7Q8)^8kfral<Qaħ'T>_3t @]׵^fzP'3}bw?S \O^ϳ]ynɯğq|ϤI?ӓir<7?WOK;y29 R,򙿐3Z[_LJ?w*E}Wv/NZ \Ӈc5FTEa @8==ߕ%HGS쿞g~1=lǩwM}Hwo]o _2=^/NO?yO /_Kr3Ч<]  @ CWK.Hst~{0m2]t?{O/~S4> Z:K_5/LV״p}awI'WCM[/8P{[뻦~GwwC &ߍw{[u5ޓv?d3?k-NN~[fۏ`ߗm/_weG66٥(&3@53ݝh'3j|p^=MT Tu*ӊtuPTp?6/#{̫?o_ՓwvV.mxlNvo[mf2 m@u=ٝ}7%Tp"O>|.nnzPr@H (Et?v//i{vGઙz,N%xu6Jssz6k8\5iR>uF/kϯ4GCٙMݴt)8W*]=N"~OXNJ5A`!pi }n|X3'c# XaLVwXK$Ib99N7]drf6t;JN_]< $@ @o:*zXl @3 8pf` @% -X @Y@pf` @% -X @Y }(9_g swvS1 @f4SghmFy+n.kgziPέ(F gҽAwB9ɭB'm'ʩύ*t @]Kї깝Oکn.L] ~C>t͡m*O P ʜ2T$C~QT͇-w6^u$`$@%@Ǝg/MGt t+vfWLݴ @w,еh7u#q0\הIoG72 @D묒+8bU:7_촗߈|$@r0{}vor]AN]O;ѶK2 cETR @xslfe @3 @9=<_˵eR8gi=ӹg(F p @yI @qN @L @q޼}vEN @Ao޽{wP  @W]3F/|o~4{H/_Ko_;%K߿n 7NFE_GËj߸ @..@g' @#   @ HNl @nGL;](/>zbTħR/+҃=! {~>I2硑|E#3lv^\Oye%  @~ۀ; =ǥ!~_++ovJ߾_E}_O s<J/o~azTK{r}#w3\2:I󮵞 xM}o~t3}ś4"tݕ0r'u63̓~<>UOT]"izY sr>(C{Q~&?xއ"r%L]}.Zf_ʯ{&wv'_v)?)ol| ơ;R2 @|,WK 6qhqᕓ1|iQwZ$ƣ>9;3wpN!r3@bUj!JOvC+M3I0͘ӱq$mj˻Yrޜk7e?:pl*ϳ۴'~soGnjwZܝx?iNjwwvof)wRG=뻳_ @QH<+ߗ~^T~ *swx7 upϞ쁞J,{(gSiԳ'ϥULzV$<M?mY=F͇iлwibRnLoNg+?ڟgO›=-w.u: K~M+&fJgw9@M HziL7ԑ׍XT!@$y2Wtn`d>2-xu;-_4e9(HJ#OGm/(USڌTr Ak:8UQҳdm"niVN15yw׭՚}Tyj{T9}9 ec{^ Ӭ:ozo:K*yke[WB9xZcJ:'?/gZo0r@A+L+p@Mtҧ+kOޥ?gWO n9b9r>'pi2A_ -_PVWOj\{dvi)ܔSi~ښG0)s>kf?mz!^NvkݔaikGOS r>>\NMy )CnM ˜>L>y<ӯ4?sd*-͐*=}t9 f6o)3jW˃F.G^ެ;."NYZ\56cnƛV<]۝&{"#+W{:^Y_X z#s}w[n P~i+_ϓ˗@9⟧5E=45rBwrݱʻ{=*KwOrR/sS꛴׍WP䣳kT~䣘i\X_4? ` r/&l3<3Y_u2hdfũ Lnߓg8@9=*4&Ic޻z)ekvl=HU@ғc,[>]Ɵ>bb;3k;n ^ʷ]ߍBkw?/w\7zg^yy6'IwO}H;j'%lgܓ@$<(9@&*y-M-qRr?=ΫekY,j~g> kssmaʧnS`3M~zB-4pw3I9<^ϻhv=xLrR(OSr a\SBfm4wO=z,ˢe+׋rP@+6wx?tȼa\[{ntGuʤp{BԝZN;3^n8*5U80+Kqdve޼!l4y9GǢaiR쿴߻v3fglT9MJ75z&f{nIR`R-y3$-n(WiIgcg?\s>jio @9tf`*$g| g&ۺT @wi&Zy:f#9s0osbSVR10/s<ȹMgm 4u`7O7(O$|Y͟%ȋw ~Yt/j,>4!ιe.fF]󹑕@ܙ@$HyKf}FTgqs2d~@`hlMf^e~Yh?- K%' !lneOD7g&+s񜨬§>eKYzv_p~k`sޟ7]7T>Ov.9hZjv}ZAe$q)L W`K5<+fE*k 'cQ_1ڒ z\ojgizN҃x+??v_eut:Źg @x8CxC* @l[#K@]oVL[\$v3 {v3߬JI - ! HnxpF3I @pL @ @xI"=:uI'oT @k \|l&`B"p;. >ķ2Է?=+C8F`Pc%P Oz]r= @sTp!0@Ԫ\#c>|+7裔M,`os\DEuRpۀ?6%nWm @$p կ~-?`phHK @q }k3 Ͱ׊T=?<Zod fU'>lV @gگ\r?;st!uN|oꂥHn'C/#[4=~I#{{]jLi|{aG51 pn4W9z P'Mz⹻} @f=L*iNA狄w/ pKgV.?;Q>`V#8؉s|?  n<3˓bU@X`6}^8  @KK  /9@2WX:p@Hyr5 g>_9\?6*Q @zΕ'w,z:  @`l>y\,gOv.JUzJvch6vA{סo,޾wa @β(MۯX탺Re3Mq-P_׹H "p%@y֞~޿K`~*3}Ĥ(F ڔuvw-t]~RC.4 Lo_#)%I!9K7I9A9BUTkvER]8ok_FIಋ.'cP=gevC':; @} >( 1Y6%eC|fm 'Fgڼב=RU d5?KK6;떃ҀP ,pЉ+E!0wη6N;9Nx4'1<@ amJ'AW$!)=뒅9߻cj[3k&|=@ A?L ϮpRLhgzȝs]';XK[oX&#UwTo_ %*k~@avO9@;zx}h~IZ=+s93Kr*=s["3Lojdvfr<ODeC  h7thy|L=<8ts s;uh_@^B_R:=LWbng'AA @nn P>3S>ZҀ*kiWeY}yҲReIš1(uz}E毼?ϴ)iz!vͤ׳d#۶Ӄ}Xc nJCuJ=2盂ɡ&߬@^,\'eKUJ<[NnVcA)SO9td'LMHgg=piwDNC&<@90{`iB׫z&,6wR}~&l|f/ @\+h#`rTԩƽ\U_R+KqNj _ 㤛w&PNR9z:4N,=M o,˜] pI]˶C^Ɩۯ/bi_=G n;l&x+^783ԍw!zRY>NH1 @M-'h~di"'Kewmsh_0OEF @l]rLrGyo!H1'vڍv,:U`}v- pZ i=F`CëO=d~q_igR5[rTIҞ#S. x@ 8JJ[+揊 Oxnj(=̮+N˓=^Y4rds%i{KC@pUmƵ+.ʊ|nXZ$4 g'xfvMn|0yf$²NB9뼾vv{vi @$6K@ܽX @ [%@ H~@ HGm}%@xx -p›-^+qnZ< @_@o$!??>ɇΆ]7|%7 @$?F"+[znrs4~W3 @`( P%oΟ<'٩L{Z^Tb{gVNk~TTw( @  o޶\?;2৕޵!M>)KKI0K(M)$  @ HnD(L=1rTeyo= ^fZ @` $ȇ(G,=NV\,zH=/|L]uFK VܸHxw%0aϼ|TҠ 3T,9t2#|Lw%@,  k~>φgf!*be M2)RK*S=)ʦR}aD$[B^'pjvANByO$vˤ ,Yj|҅ZtjҋJi|"IBGX{ @$7=<##PVxp 'oAT@pRN @m m @T@pRN8\-)7S Hvj8T`jm6;)P!$rCV Hbnj ;QvNO/~0.D @  A\ 8@wgn\\|R=E0{Ҡl;9E=*LK^/< @{ tZ>'Pfm gZ3`r/ -V]F @$8D`N`< ړ/y€5EP@*P_l{a=~ \I O7>x;?m^Sj @{heK=}2w&ϧ13)DikZrd+c:4  @$ *ͥ/mLIY{OON.mK [)*Ս-Ooûx$ # @<w @$ xW @<. @$4J \P}nUKOn6zJ`moj*  @XAwhq93* @#U'p@!_<.S'sF&^f 1Jm_bUWx|H:U!\NL1&W=Wn_mt ֻYz]wdlۜ  @@X@Si#Wbd@~rX;GΤI8'!PoKˡqin\1[01 @@Qav4˟-|>ۧJB/ya$C- @$2m<_,v*뛬뮔,v[m =mSYӒ޶IKD~ j$A8&ե֫r#rKyڨʷ-L[o[67 7X(e+uTuۃW[@pna-9d~[.!@# xQ{3I@  @\  @\M@p5z&@ py m @$Wol_dx>Jx:.4ݍG{-%%@Tef&@.) m(rxR#g Jm{;Y`xa}}iCVn@w7_9 H.'Pfy徜}IUgr6V<]0ςPZ>(NPosZ&@a @NEh~ x{{|ۓOL6q]ΞE.) m(ۅe!͵fzɡ|b-#k  @ Hl@uaًtf+zOPǶl~Rq8VIi$@ H.l 2ٗ֫[u7G$R`Iťv Bv/YqdE$hח֯C9L.9i4Ron&uۦf϶=b%K(^%T%@^AF9X @ b7" @l]%@  @x   >b7/Kn#hso }ݖ@wSo'sJ6ev6˯oTok\dxFtR##:$ 8KaG YkY.휮{RC:JAS&Ru=~ߎuS-Hh8@{}4*9R 9#lmsJ35ɥڒqNq\r}#yxO`' pMx|~lJ 8y,˹VSxe8O\kL'=u7"# . }?@"χ?'gfuLZU$uR6 im-tBc]S?;/O(Ŵ{WZn_:͕}'re @$0jdFr, YZ>_nsK& ^@jL(Mv|QIPBu#̶iu;'WImk]+}\x]1uf_QܖC4 @* 8+  @ܖC4NxXj @Q$8A;l 1*vvs/ۛ{@g8tZ"!Pnxu11Z3%C7 N@Q3uɓcg\pl(s)+]GZ @$70Bxl| UԓOZe-6l+N>jmluŃ"N  @$=:yr ^y~q`|CZ+n60c ݢrs"^:V6m;O/4ul8Nw @$ujW+v O t 1GZ#@ H2߉@zMNLmL~~vAQ)<ؓ'trT`z3YY  @<@MLҠvdM;)6i$umFNiYs6%zK˙rdOs;  @5$PM P_dE 0`c {0{sOkx ㌵ @I @$ #>@{M|}A  @3L\'g?<q/8h3jG:8H&p3n7moy4JܩNVX]fiNN~N8Sa0"@ H. nshg@YSLڒa>77f"~|wLٓu#@W\ߦ E>Wl)@L@pg; H޼&TvcЀ4U @H WO_귮RVo7^K^,Ӹy#_? ݴҒtYq2{O,Zi[ @Hnd b#Koz=xdC.iڡq*O* בկaI^=tPf26UY [YF @$7EVyr@b3X U@pV^ 캑Y~` f޳VRٗ@ge @$w<6@94;̇z|![yF0Mj-U6c i @ HNoEe P5W'/WnzV=:`塜 _keݣ3sShF8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @F8jb&@ T#@ 0`Q3 @  @$#  @$A8 @( qL @ ( ©F @`D &f @A @N5 @# HF51 @ Hp @Q@0⨉ @@P@S @GM @ j @Fx/|F ]nPؗS~npDY U޼{ J~N޸  @G 7vd @ 0kF)q @8 @ 0`' @HN  @\(ħ>38  @ܱ]&[u? ]-vI"@xd3i_US:E 0+(MwtΘ'uK O"+e66҆ZG2:@ @@`q P0&?ɌrRԝ}~Vp}KV!՛Dxc  @6[4{|vPϑf3u U  @M\w:T{xgY3磍 @X8WP6yf뺓  @/32/ͮ3g0{@غm@(U ^YP5 #/Q[~.< s꽥e)YN=ՌHK+/7:ޢ]i n.~CZ>B9yOmx*_7RcV& y"ivS/%o跥)[tNEQ֮߇h!g[pIIy8]C+?zL*GM܁ H7@@ A)*O'o#7LKcWzwwܫʼ ?z]bx|onGчwݿގ^}kR 'P>:a}_X`H-SV]k߶}3r_I7I!J^yυ aN`z(y^+J|g*Q\%~_M|׼C{߇V?yڛݩ7鋶OV?GS}ƅ/(P겆W8:{Ô雕e_M<GmMt7ݠ֝C |gϳ ߽_-IΪ (,ڎf/:SvWX]%I*^Djtıj;W}dO>!OgXik;msww?u /a:}q|fpvKy:[κJ/ݹ]Bs/USA)O+/cC1=R|nq~ѕr_nX<%*xp'}c:xϧXcPK⣋C'ԁ 0rMN)O<1Y7TFe@yJyHO8@UC0?ptҹW,+~ NsFN<o@ͯ?N_;\/“23֡O-u7n_xqщ;fo?}n8pJp7׉hBpG귍RwyگCYa]'{~9x9V9j u'@,)%V.y/8E9@ B@\(T\޴``Zb`Xi%,ϗ Pi%B  1-@P(_rԃ@3@ Kz@x(Txƴ@|QO Ϙ _(/9A P KMV^7dtASNR7j6:׬'X$ЦBI t4Pb@KuxW?{@0,9t  P@3 %CȍRR ]iʨ+_Vb߄'%ЌB)5QaFY:Tgۇh4P)"ƆmXS$ЌBQ̨QFELOMCyyF/6v %˫8S;-B (F/!OnT 5jb3Jj@_ 8+T_A7 t;0 P$Bi@&&@C PbIz(_ƨɣ)"bIPBR1L[ݽ|:-}hS@ mB$A pfP Jy1"DA@ Qjsss]$@|-(T i(5PgzIYEeѮ@_dM>֨3oU@/+Za  UĈ+1Co<JSq7v &P> AS]<_@5 x*hUrqF?/gPȏBǂ Pe E(H nn @@Ptsg۝l2HLOJyr#:N KYvVņ@ p'g!?V1BP!?*!Kn@1BP!?*!KnpSG+xK@|n %=t@E"zEYzE`!v 4Pj꧂gJ_O*u@ (gסtO:gDyF rT<(-r8 gס!(bB'$KYc>Q= 2T(#))jꤚL P()=:ːRQAv *60~_E'p'" [S>jD!PJ"lp'J$Jy6 5r19v(NyJVpoطw7D-PłGQ  x/_) $F@l&N{=ʞ%!Pi'Bٳ$  8AP({Vb@b=@ eϊ@l(Tl@YQMM {(=+JB (\l7i%%(Z B&!K(%(A-@ZN%;)lټ.&.y7)2!%DꆳB  I!`p Ȓ+Y *D$BeV@&PLIȒ eZ @2I$a@ K(Ti%(dB$, )Ԋc,Qxl @EMC1VDIKcMYڡ g)xb'ЀBySŒ85܃pV(}JMVx4b?1V  8+e1+"I) pV(?@~ lDR(ūeәhR@I[37` B\H@w6.(/29J‡; 4f! 8'B@j\)O-6Nz9@r.AVUף$H`rrҸU)6nܸo֜.+K@ =**q`%TZ$,[mGF% Z431&9X6P b_KP}s@URβbV()"PH GQ5u(c(UaHhfCJ7 P/6Y/B}w5{@bNj:_,}5-Uo~ :YR3>#f)Cjp!RN[djXɇrl(ڑU*-mȉ@: pM᫒xI`V U7.RU[S9X|陜:@@sEzYF٩x^QQU|(Gu*[, }Օvbcv_7'aM NIUU} K@l$t֕,lޔE0C9(T{''aqs}mvj}{N XD;)䍌 ]^R@Wl- t P >KJ77x)T;-4nB9pS"Wԡ;=v?JB}&ЀBZ<#_w3}NC*TF7)ވBߕV1n|!PW ֹ D* @@XbLP(pN_ؖs:QQoe\~` dOO1B}u@u@$L@ *XB pX)Oa~a4n{n9 nP(#PzaP<& (sl^໼^`!Iw2m8 T(ʨߵ?,V'Y׵Q뇩tk̆BTCQ]FnvMF3)_6XZd-="Pji+0څ2 ЀB54n)hҔQ@F*hՖ-:#J6aƨWT6AL'lж+!$Na(,zoYUQ/J7Wba$U0J:M G,Nic:lpН)bI^V(b?F>FOaKEaFURk@f+wD BxOlʗiĈ2QQ(mtϜΞ6%ch@@:0&(SݰS-əiP48 Y 3EW(5sit!Mɷs҆!TԲt@2Qg,{CAXkE;:1K RfU*  /3]^`) pF5~WJ~MW'dK =!l& 7Hb}!B% .@5|@_P}4qB*K <|@od!z|'-@b!nP!P%P *2"BeLB@vPRJ@Ȉ Q2 @K)A #(TF$dG.P%P *2"BeLB@vPRJ@Ȉ Q2 @K)A #(TF$dGab'n7j^7nv(% jnn.nZՙRu s;(TF3H+?(Ԩ.>>\4"Jy-|T@8 P U 3 ֹԡѿ@藉q5@PFR6U:=Ysፍ+P]~@T$EQP-{lImgQgcD  5 A}*2Ƙ+P.x2A @PUOe1T44=>rJeSQ 355ج)H(Ԇ mbb.Y*L"ڙ{ՆUkU*@BBB@1 t P >KJ77xP@ ](T3@@@ A(}H nn "~@ 2"5?ƃZ&]IENDB`nP&Mf;ԁr{E JPNG  IHDRZsRGB pHYs+IDATx^ϳEy.\Q, QD Kl\E `PW)"P0+]tMP4H@p(bcw;o;?>/S{t9=LOƥf'p #7tti@N:'/>j8@`^|W+|]0lll옱ob{W;liAS=n61bi-gāNѽ:}[-MsEv"jACDVgH kkf,cdCNœOt:=Pzr?HiV @'p`:vޏFg;x¿$677Ӧt7VWͩ!R8Ȁ?a4TGE""ێ@M5!psٴ^Ćߺ[4c2 ~ᶒ>ߞy(@M9Lە'm]|9WTѮ}q7{}l_/>p  t8b"aa댈2^z?/=)սw/1/޹;/0~ CHCǭ]m1dwӏLB^Bs #& N @%ޒR`E| 'UK@C)@ }SlET?M3z9.<lfD4S̈08S_豈~BF2;;ZwX !)wa5-2=Ky,02=s+ɷӾ6Շ(f }X#bu]=\'UX*$8 w5"#3ՅQ[)mN,2=r8 xpQT@`(1!D&4/8rT@`:  a@H0}b0 $>@`1HbiL $x14 @ @XkD47n/2$.kD l Ia@ZgϜᦣHp NΝV#A0;Z/ H|0([ϔG =jCj  $?L?Sڼ8~ƣmՆ% $ Gnp&`Fuv&b al,DveX*I 7d'XA.mhC`i6ZR25JAY_L3F-< K7N٤5(ajb#H_?Н &;  6dFeSַ~SҼ= 8w_ n;K bt[Uw&Co&q  1l|sTzƿ*kΡqCL3N`)dG`G3^Z 9_nL";;mun;qF%Hx ǰ2(v.5zk#I@X!V@F`t뼘O P2Za *@ r!) $qwyG%@`=F? n0Q+ P,Ylhq (L~%\^dȆM0(\^LȆM0(\^LȆM0(\^LȆf4& $@`kkk[3c=vHz@t2e:zTI3ݠlẕqwtl/<)4=~  n|rύ6y9nF!x vώs%O%a?Ck֏d_yk!d p68l?^uSἵN Xġg߄JLHq! )`u[8_8 5#U֗ňBHWu\raQjSZmC|Y[:߅F5h8hA#%/j8z|\-ʵ,/`qjQ< h45c'f#D=8Y)A pVJ,]0kngD H0 B`sss)Ґ`$xPg0'3"dvpȯmrQ(@xX .?! 0opV (0$ &Fi *0 "8 IQpq*@ 3NBi`f\ *Œ@d-89 ODZ@@8d _ͧ \f+@`"ƕڝ0#R 8 tHt@`$$x$8j `.[DǑ0 (]wḴ5qJB$?@\ 5˔(HpTL@T8: A GaHpQ P8cpHy@6.]\)m}`X'@HDTs \_c@ Hp2@>\/i{,N:cJf<;nY1&`$رcne\TWm ^4.iΟ AOJUُY$8ވI@dC @O@{C @O@{C @O@{C @O@{C @O@{C Yܪ4 @Nf3x dD FWIENDB`n2F8!J[{Sm~PNG  IHDRP;isRGB pHYs+EIDATx^{fWY~JM "dXeZ$D 2-Hᜣ\2USꥑۜ L`AӢU+|wg}{־k6'gu/sg@h5%hKB@vwwAí܌  P+p$h  _uj>,o/^|½kb_W?e&bkB/zE:|P:wgk.jz] 䵣@@L[[:q=/'>ݽwOQIv{?{]9t 00ML1P̯&i u^s4,:+y؝A±cN>Y>%cKѵ@N=_Vz_w;.,yʓ^xA'[ U蜰'kGQi~{4 DٝH4DwAC:NOE"Cg^{u=z{ϳ'O䕷oܕr?~O;[~Ų^eś.gOiYe҂Q#MˈЈU'mݹ{XdԽ4F]ߟ{ukeqϹg_wZ{>o?W,?[,3K_i 74޶,{[oxr͹q}| >y]z\zYo,7eyx, ?w?Oy~w=Xw>ےO>=)3nɖ4 h7NA׶N^u '}^pU~ O8}e^v~S}NZ ]M3ZE3q"Y{>>RJgGw}t‰//ᒏx/=Ro K !эAm_ٗSN|ǿqT"۾݇vw+Ͻ\~Ik/bܵM}3g+g_#˗dkt1f擯? .WŽ) ys|Cm%?-˟˒nܑEVgvӯnT.W>/ӥsT|_X~%_wO)YB?'OEWWq3 !E܊797~~GO4zdzd)^,&L{޾XgOe֑  NwEH~KİS+"YZ$7|_"n]vW;"/AӇ]+vKv Yţ o:Yރ=:10'?{~MhX,oXEbAw|a\"s['ly# TK4LU" @ܦ'BL 4H. @[,_t4@]r}cǎ-QxmܿRt-]A:\dҝ  P' [ob;o һZ~А}秙.ؚJ?^nB,zx#OC=:w)eGLI2|WͳZ[_ߒ~4k*0=zͯ-mtBZ Y@7w4AS Qg~cAbG)E+}3hK[I*W/yf9VwFvMu M *A}gp2Q:$ )QWԯmj[ j-Y5mAqZ؆GuK<jﴌE"(6=6M밍T4 Z5~G}?܎S+!>&;k3Hl/vV-T (%J@bF.֔0\ va0[>M~_)u@`&nCd]i|.:ْaZxӱW -MhKӌlOӯSbKvZՊM$YbNOZ~<3v#F ,Gm \bZARQbOZxDfֳx""VI:h5@j=ug/{bA3R} Rv,VTLtnmf1 \Ab!TVMny(W~ds :s7{G)mtϥs 5PX$bGfЊ =?w +kn)`_4RoI-eR;sYԋ_e 栶λ-o^xz#>槺.6e`91|`{k5KpYuڸa)yvfR|b54Fn9 S{K"IFi 6X֧raث]{})Z}QNl_hjO,4['g%\7ȁS1Ӡ={8Tn$Eg,sZa=rD.]5n^nfrqCYi?rz{e=9bueYW3rB6sAjOsS~]rϕ.M9DUO\f}~[9KĠԎ!C2k? tyv~uGfp;NTgov7AJ6^NH~NU/ר.Mq״kw5э؟/\O;\ϩ N=?2O:u*.1H,ۓvd2\R\\C(*2wML!q#,8H#Y xw{QbSvR&n0|b,. LH{){'h.-2J&t\e1ӠlR׮w\$t7fkJsmH8icXϋ 2]EeؒnB"2\(fe@LCֲAYw|uͫx(-$lʙ |-gSnziu=ۓ#<\Q {`~;rj{dxM1.ĺڟ)&YٌZ6|\v^X킠EZttrtudg/d緷s978n^Z൥9n>2k5ժV^RU B۹N<{cbiqye"Gn{XTދT-򑮬U̜G8;, =QĭhqS~W<147A~\z_F.Cݢ*)k+@r"z}7vnVGsj~:UQ5Ɇ\ekL%JуF 3 !c'1cnA31hY)@Au[$K秸- ʾ(- Rt?SBUאg;,B,% EYE9sq[xp&$wzۦTwK,8 G ՠ/OFΆ`;?GϤeܿg(Gm߮YDZJRD͖6t~T*q0M9'K9/d%ݜ C7?n4 ]\iE-ş*(teKM@d؈AVFn4zt>n 4&C;GmZ;>Nj5\ $t=Ч*s k3'GĞT/&c;Ne^?k>e+Źr )-NgjS]KkR6$that3-^F훖ɦgojSέJqόǿc,-/v,屬=7,l>0HpY{}hoBPyV~d[^BX4H`מ۔ $~눛G-Ot-#X(C?ެ϶+׶cmeJCǕF-Ygve){{{kx=:WFNK{DZXo?JнulĠjWh_ 4ƭ=ÌR& C@Fc#Ul@@`u# 8%! jVMi@ #:OU [o5&shz8w fE*᭷ma*eH D! {B%npOg mU3D!6 t(@ @`@6I ^g&j?"&Nhu}g㈊# 5 5Gy zeRao͊")@аj!x_4Xwu[(ق!  hL8 R+T'1$UC(|.n1' Y4rі/-g{!y 4o@ 4@S!~ \a @ y[z:" X$ w_dUZZw$ŒRhaL1[}JF}[(ݦvoL*@0)d M& j''iM7hggU㧠DS&~xէ6}Wk k!@ YwL+>Ǡ{!_|/s>T}U|`bK+i ? &xߏG:eI?=B 4̰SҒIIFD MR E i)[)VhM?t0R ;>V{)=WW4@u hX^\6hoii\qP{?F_q#M%6ڏ:UFh#Y Oa~}[CUgNCT3C0rW(g:[,u Hi9_ @ hX4|vps輡]޺5H',+!jٲJ{ )U*Ut~!@h & 4lbqd3h54 406Ѧ4v"x Y k-@аK@OaJ~ XPpˢMoҔ^W[WevՂZV[45ܖrf{)acܦNiyH?[7J o,d 4ރo?ӺVxZfUً90v0Hp9hQjǎ~=nk[o˱igRJޙ 2H%@АJrM&Fm;`ݲfi-jcnLT`:cєOչ=FmAFi~oڍ5H{*nsDbM31+8PuO(JBGs hsP8JR9#o+%k!6.kkO["A^H t,k @аH21m 'i6vF sհicխ}: 9 Q!^ˠrl c4~bȲnK>4t7M5{53vgٞDƃl!+V?{m!w`N3Z{18XPuNyN!.-V]g\161[!tΖO->1e˩4 %@%7L`6 " 4a$@ hB<Mc*>\rg|"h` I/7$Q{ qԺD'&LSYW4(+  c#z]ctQt>'ZƎ[#G g)x?X1.8]-׶KK JiMnM7zMϥh xNfekm5h:?2/xvo4Smlٲ>ag[mɮz:Do:VleWfWYՁmX(n/# @` )TɳL- SVsK Ǻt16ȨVGU)zN>=6S@! s MAC5 fۣ  p!d}G@X@w O|r}_ }   t ""M@'` ! f t 1;OR@ \F@@AXlMF@`ڂy<gh> &0VI`c7m^@O\X4 @jNOU4-|6 @MUD{@@K5bj X (4@ &  ri&{v@6V "hA͍Ţ l5hD }ھ;9|*>j-{ƔZsA3_q29Wo O~E ƭ"{k  _a!9 +0fФ Ș̒i@@`tɃP}?ӄiKY}8p]wUT&N  _U-Nd_'0Bvg" 0 ޻+rWjZC5?񠑄'cM]B2@j WR ݹ nyZ6jGrn7 & F !XkKld!mQ: L4g90.H 9 K:F10b_ @$A70nz.i`a\$i;"lTA = ʿFr’2tqpԞZ=KH ( Z!*q 22xOVԿx}G5j_W9t;s| @"0y`"KH # UJtVQ*v$ZY AS [ĐL3 c]@&/ܭ2v%7_=z4J_]4 3RzӗFN]n4B @.?h,C53 @@ : * F[oOgOOs'  {b]i %@аQMc@/tzb&wo k" zC5 \83! ^Ʌw$ @@`5\gJA@`MaM:f 05|nSgxL4#9=Qk/Vw_pLyD@tӰ##{ׁ TT40N@4JU&YJlW_}=ovwwv4_G"@@vΞEwqȋ!Ͷ$bB6mƮ[1A k%{4Ι ??q₪jSw3w> !h!A@U ̬&Yu6NIENDB`n/HM7xX`n(SPNG  IHDRja4sRGB pHYs+/_IDATx^kvIUy-OSe!V$ 9TMьXXя1^) L#j"28݀bYw޽{myj9^o?xc@`#_F>;6V8 pjWWWwCjl!oG3zcn{cnܸaL?-et=eÏjܫk "<juفGұ#*]akb~{>3>jX. pfL^}c# ч=2tjg|V]^^׽͔sj`cf3_ՖH\ZM^> //|wR=S^Xɏ??țGd>t8'x5oc^|v?~y᯾ f?s/z~yE ޷~x?/L(Bc.˰v?2ǂ+{M| > /x^'H)n?O{_|K F;LO1~~& g{kSpF(d_^~{~/F<_zo׻^*{ywxJ{zoW7/G>G+=}?Է?e{~셿¿~[K,}ooJ83H\$E;۵7}wycwo k_2¿/|εv|*'ט|?/כZG_Ҧv?7=yo6ow˧~w7㇯ ?p?C*IQ|赏ڇ9OJ?;ȳW=} !pYHY.ɇY]=e浳N?|x䥓LaQl]p=|j4Wb13o1V:NO6|]O[{>fo~en[vr_eԮ}|]bӿ׋vԼK!ο''[i.7_r_?Bҩ{^hmN͛/럥ڇ]:5D=*]u|IY:}qѷn.*.ZT8UEi} q,zGh8go-뤌PҺF/3Q;l1{~gN-GWHCчIg2W  AB f6 M J5 #J5 #J5 #J5 ^uq/40;D"zT^}vH0&ӫzfoE/mQdd RԋtȽ /QfjO>VQ@>@&#_)X£c'R2ur8O#SP9Қ+&=vg$2qXiHb+֎>}2;)sp]e7"_T!CƍΘ9nΓr|mNqm}ϒ5&s(Rd0w=^Bҽ;mJ )AIg$V>M/5N=M:qš$p)( vMHѩS?,/'!c !%#ӥupŽ=EwqYڇn6*诮tSdp*BBpYkiapvXބ.ćQbcE>\h' _@>ЎRĎX6|tUNK:A S6/(3dEǹeAƲ\d܏"!pNʇȲ7Z"c`)eZ{Ub~.lMTVGqhwY>|);),+'u&h΅R<8Qh t7eR&/R+@׉NE; ci-"eG齟 *_)h4q.4),yN/A 8HU>R(2-tWFb7s\W gx ][NG`rYB`z)&@Evh:LJ.]^^[g{hL i<F'4#|4CO1z 0F'|A@3G34 g!Ќ = C`t4#|4CO1z 0F'PO>6=cipr=$gD,vwZM[-W$PI>tu}vV Ch쟦?R'H߈q~#8 ZNcS[8h5͔mVhvgR[@g?u [%{ݨna?R]7d")sDF9 7o~7 guauB U>7>ۗT)(XRX$X|8苔cӰpN')bYV>yS8p[替Z #Gp*@%>4屠,FSe175-lmhBG%=N=HU Byar\?*R' %8 0c8 @>Nz^^ԇi M=C`/\ܮRfmoZ/GSך^d@"&+nݚ$(Ji僵 ]ƍJS@>f0A0ah1 g pf+KܘCv=! ɇQZ rm E!01"܄;Fד]&@e-#~⁝݈4D-h*!R>0OC=Z څ@"~Yp?MbJT>RtZC`GpBtvm1-yF۷ogԢ f%L>fJ\8<&R&|9q\) `uf»|z9Ji7+D>ֻ(qnl1;0OEnnڏJ>@5#)zSb( D)Jz- CX~?xN & ?!:%|t܂@s@%n瓱ǏԲgv3n#PI>ZfȨD)DAuC` @B|< ?K:yu8e=*YzFĪARB[u518]za(yQNuߚ3іjeOT0US|7O\ضNtϋAС)WCZ3ʚr?q,8-?u#H8gtcG♳i<0(F*Hd rZ?77X.Dʧ<ڌNAgG7tM:=8 Ӕzfo@@aR% D|pRDK0/(+ !4Hd >JӖW[+]AKVNB=D;n<ϲON V(S=(WhF9 9Lg Sh)o߶@~y30m-a?#X@m0^\\\^^pv؅@/Z0Z8aYؤ;m '1!@>Č2@C^r$޶KIK kƞ^Eݓhۘv$!3`G_v+2 2jˇۘ"}2cG|鉿XLhT`a8az1YT>l%0|Y'J8-6mlb=C`'aݹXzv9%!% #cHcX.dt@`?a ƅKȚ^}@?EY# ` vnc*14$R>o;!Fac O 8)㤉'l'|gq6(`7olEFO|'N ""E`a胵~'1Xp@>@`0` ]C'x % w!䣟\ #| 0܅@?~r'@%>:֝?/nOD'춨M|.g>xaͶ՝:C#0|F-@P yMg\˳\Z?6lu݊NӹjI?K`k=y0^}ssO<JN'a z&"GL-]^8UZ>2gIKnHH+2 qCs'tP٭ xkKQ\Wx[Y.֖;`DFlvc\)|N'KY ~?ч3ZEB5+= w"a}vA >"a\]gCj[~{6Dd-Iiݩ˪-yOzєgG=%k#Δ..Ia1[ѩ!)Ki`Wg8c3>펭ZKA~ a ,sq(!$&&|L\Bcbh)fmY^#&4J|X0ȔȬ Sh "?#KfeQ͔ ( G|XFF:4,gA޶WIfc-v!qz7tg&P[>4ky52ej*\þ)\2!!R>n߾m=7[S>Q}+@C`a/ G=#P[>GG&6t\z @03ʰ yɑtWo2%! aa%CKIm v<,ۘuW_A !ȇ xncMm:C|8i[w㖖tS"@m^A hT-@чۘ9  J|XLEv{ !0s1혠ȇu1{qCh#Yncƍ@KHp# PQADP\}$pì,,=r##ͽp.P yΧ/jop5WivGhN_8"$胵2N8Gǚ 0c@>걦%LF,zzi @>&K(@kZd*ɇ~:yăc& PI>myiyDf?G?1  P@{"\=b 2Hp9߈㒸gsiQ7(et T']*q1O/D}sB?ec>Xp "坶LjswXh lt[Ǡ^%NoI-'E;[#%ao_ Ohvc^8=U`ozIn9l'=_vuPJKdoj.w Vϐ`^36Rב:X ?n|Df)YK%SN3ǝ~Cwh8_y)b~T%o0.6"G@y0dqiToNCwk=\|:DF~CRX2%Tk9>q#::9]5#(%Nk@l{v`G%9OuAȠe lt*!M^6pMF2 &B>b Os<&jyuޡq&&mڂTI0II 0ct jh))yՌ "ȇU Lg #@ Cgudf*B#. -5s]jvE19C|XF:4egAޝdbk]2Ӎ e')Í jˇzvx =)rAX%P[>C"fݥ~Et*ڬ\qեɋܙ.-YcqsysZ-cV7tb=WdBT[[T$eI/X>`K- K.ݔ2 OO|ܾ}7eѧ7?ϝZײ±I&z_2%1_e-fӋK^ٓbt,xگ &.ôac6?82qĦlβB|SmY+Zc仝H)3a fa#qv@ݞre?#R9Wqښgb=a@&J'K {b|Z6=b1_G}6BO>O@F5QA`'S=^ je$|LV@ G ʴ) S P@K` F|]a 0h lՖ!-I|XPcm4fr-vA:8 :6X@i壴 +C5_a߷ Yjx N #rsӾV+-? [tC~aNr80'~Q;AVk q@mp t:.(80 A!P[>lClW@G 4Q rҩw߱Ep''>o%vA[˳NXyoV0tBÍ:i+ &/[w#[M-+kk1G 'L:!C  G@&!PQ#V pB N(C(+8!I'd!P2ax͛7> hnpb?*&yd(B,QF ~>X'Yx % w!䣟\ #| 0܅@?~r'1Xp@>@`0` ]CU ~L@D}'!@WWWu|@<F@`'|#<@ʇέ7Ӟ[TӺ١(;K QԖj6 &/̪N[5Nb%@>2XsFG}c*7 C>4GΟ{xhD/ztkqشć%|҄S;#n+f}cȇqU`uFg#u̔^uϨSiW,aW0%ﵴ 1 Xr->OYm=[pgkFz66LnML` H&'LP)#d֦i旲OE` k" K "ׯ}Z=2FvQvVݣ .hu{su߯b驥aMWpCCwpN^̰"@k~8AY TY!I8gމ  b$|3D Vc*& P@U0Xj-&LKkSm$:R,LJt줴Eh DZyGͶK(;'0| 4F$0|pXC7 w>_z$^ݶtFOR]2.:I+)>w91C4[myd_+hǯ5bVĹ?9Ǧ-(*cA)܀ 26i7.#! #S=;afl#T vH/4'0||p>OOb .l5"iwڔ~h|8 c|nڌ90G h^ʚgio1=jKIΙwb,A` NKH) &PU> 9@))~hJh!02nc#w|K|m>iԖ.c1tU^]i:@íX=Z+rrcvtV8?a FE`xo_=g@}Rd@2ߌշvzȇ^Yߞl)GL|;cuZs鳤+vE`XZ u;}p/zURz1l;ӏ!Њ!QN v"0|g6_RhiQJ c߮%80 ml+G;:oۘ$oVdu`hbU'/yuK?L68@U! ' /:'|t ܃@  Tm5 )a0ml\Z2@ w^qUf)YP* #)4WO^\$;eLCglmS}$8V۷t a@*UJB];(q+?ǖ=蕾H)#=/q$2a;[ӄS78ס-9G,5gO_k% F_,df'ݍVgp-h'~__}\ J䜍u+u`l{<܄Z$L[X)gdTљKlSDAE&ǖ[,[pMxa;҄|SKzVKuq۞b3"OzZjsz 9jhSxA>'vb;<ۑo 4g"s^W,f帗ad2Pl6}tmi'J}(":#jL PU>2  -z'|!@nSc@U`޻A` ac-١,&P[> tq%|] %@>`2*&2.pkupQ  #X _cz"SVE;jq6@`ަe_r~1X]gTw&8Cqq+@6aci#2|(аd?SnTO`XBe>>Eg/  '!W*@iSueO`l7J9"u 8*!hm,%!Pvӿ2IK@@Kncz5E1!PU> O  @>Nx†~~XI Tv;i/#I TÐ&HuF0k1VT΅0Mp#,e&@>Vm,ɭݭgo/[mnuF>H  cuߗdhRIo/fZFvKr.6N-U(07aCO+6f%猳~K}49'>;u,VR tG"w{? q쮖bSkָ;%g"0|,AOYD,`[8eĒGDb3MIPJ=4pqOq˲Od8o?Ȏn(fg\)Sfcˇ=Wf4vdj \J,3STEeV,|&)cZh'v'mγ~E!`Qvs6/ 9wGYy@KnctOܶq:zUctXh$|d | LG&8A}$|d | LG&8A%y& P\]VSh{y_~TL>;:Gy@ N,A?&#:`c@>걦%LF,zzi @>&K(@kZdJ8Gǚ 0c@>걦%LF,zzi Xj H'/ziz3$ǔ, O~XI 'MN\_g3֣>ǭ7ܿʱNFnN|N0I9ncDZqqqq`MM/mV8\ZE8[ q)ɵ=E/MXu|wNaຏsL81sv @>ŋqL9C 8f&|̜]b/3?!kpoL|U| #"tEȓԿWIENDB`n. 0jZqλPNG  IHDR|9gsRGB pHYs+.|IDATx^imGUy'K*BK$ B"Cqo*ZAŢ/ H A8R@ aL a)>Yy++=ݻzuWuYgާn;@Nѹy75\sr ƃOW_o*=u:p_Yly;+4q2xjUR8 J|BR5cYןg4 y__m5+>AemC-  @n^!ӹ5q@C]d:zRx||_mJq!ѡQ̈ETտ~ze5g=*Ʒճn~۳ʢ{V"YO]|y'Wc0/K7K}?>_˾x|C/^_[)no|3>֧Ϟ!_xO5/6x==䅵8Fȍ \FCѯR(i<آcX|ݟl^_;)Z>O~yL2Pwng#/_]yHzO*;l%O,[wnx?^/>|ϾϾr3|y}OyO9|sclѿ#K!=vH,O\G,-iMﶳ t:{}oys#r ;0o;̀2(e2PLt̚FҚOq~xL';s#trw?z1TI'YJn+o{CsHsKs,ra96sǼo _?I\L-:_y"e޿枇/+_EV9X_vBr1dێ|a=]H|~9_ۿds?q B2W>|G C7B1k:l tLAMXW$/ o~sݍ`h(|\^},$W,7|F. 0 VzU hEinh(ԠA@tdyefcQT6RNx f;d:t5|RqȌ*+ m܃>&nrV㭔#f}nTl+dQ 0"8b &<.z©7avShXC >g<6dV`:dma9Kfh1WeʱҲGܾJ|fF&N+#<6D2`q'Hq,2%q3YHngG@&V:;+4$*?؃fiz`P5{ZNx>c,tWk, WT[ xE\?Yւ $g=oGH Y_V,ȐJ<ø/Z=[O{[fM4ծMTܡxPvjdJ"P"#/=y^eҞ$[r!fމf֨5n}>g &1"@9sgqJMA;_sI(  ВyӫE+W '@z..XQ)@@zMJb7}8M]) KڕPk^B vk NMa@&4&Q@gё*/|.m'YKq%=OԳbmaS뮽1v` uU!Y la붳m-`ㇺ~) nIEGKi圚mԀG[XҺ%5Tip):G$d/D?7~Qt Nݜs?YhhdX՚AP)JԬŸ!V`}G{ DF/{}w$]\6?|Pщ|V"5ND4CjvgHE]qC<^6z >MeTW3ZZtV]E&z۾+YG^16 oZt*ĤHbӜ)i,]`2UGVТC42oXbH]&^JV0F$9å\x"b wXc5ҳNsc1q|kuf&kOj'zPe:=\ghg|v]&VL'!:Cͭ* ܲB7[RVq wK{Yl׬ ڠs D'0fyIE@o @mpU90 =" uPwߪI+f֐*+l\"C`݋%P 8Eg72]-n'&Z~ Z[$_#sCZ~L'ŝ4GƲa*Նew?S{׾!qSsvY\GD.Me:"O 4VoԜqZWͺ, 溢 ac*N$G,@9Ml`V.ס$229;J 7|6sUmêMˍAŊӫU7s m&G6u6nn;{qEbt( PBk:~j9dD ,&p||] 0dW/ M @tFe  :Mq2@SQDc@)NSܨ @1 ДD)nT hJ7*` 4%Nt]u_h%bP 3@#ёМ̡4e5kI*g@` #õ\1IxmؕkU ( {&Pm@'G\dWt>=~%E>,Dz%۴=}N>}M7$۞9蘘!Zb%>$Ie#%+go0V_I0m899Tt4B8l{0u !`ZhM'mQ@åME(&Ht"WwҀ ?)])ᶮOr5M!m5Kj`E[A;vͭ(H5x쭠9 : 4ە΂qhtMXY6}Xۈkz L/:|3ٛ&XFȦlq$^Ż$T{<8./P $AtJeʇZm2y'zFIPfCYq^~:oWxɲo5"!-,\wz,BóJ9 kЩG|ĵa؍fFU<"eJRJ@.wk+mAνWJiF}U' k3m\ ACteA"; lDg}P :CulBDg@0 }1ZC O>F A`( @th! E]C@0- [VxUŻ!: .sg6,smZyQEz :Ek:G8\H$/טsh> 3T"UȽWN :C8ugh z,&*Ґ,:&&\l~ tgV֘/`9nE3G>BBa~گUmbhS|*=+\ɇɺYq#,PڮGt(2#82D24'O5grn؟Y}u'ʇjg#׬#yUmToaѱ.РD . %;$`a93/P+DnE]ZAtd;Yn,z:.SYu2wO ?&${`7>߭HVnNΟ]eJMժ9sF,:㞥i~:fY41I-9=*sYzmbM~x.ACAן;6ibD'rr֢ @wDzv@6# sCț!Hm7%e!U/89EۦW|4yt(nqVHqwM6ZeCqPuVA|p$0]lrEʲCeODBR~!Mq.oIdVull`]scs)7.Lq~LmD69pN JVCVAq]oぇqTn+lA:כMY!ypi,gcEgLk^cEkY  :Mq2@SQDc@)NSܨ @1 ДD)nT hJ7*` 4%i@t0@4ō@ : M @tFe  :Mq2@SQDc@)NSܨ @1 Д@k1 Lc?@e h-:ED.~E5t#AtL[τ"$qlcX%h)p^PDJn5U#:Aӓ9>C9B},&!,0B`ёtV:t*RtNrA\J\@"{SҞܺGdu;ެٹ^io4C*cps\L&nCwV,~\ݱE9%OEpC߫#>e%}x2I 9fV% '0x[UÜږUȬ$4^&"{~klQ`dL`ёk:N2y{vk7Yg{nVrVENGۻ8enpjnn8}׏7fk36u]1*m@@yH+p?t0MX_iUT'ZtL*yY >b9Wp=Eg{",,\0XJ ʃdd1RQ@ D' A,% YZNrWvcٳ 0֢c`c:i@`A>7MVqU@_Hҳ w$08:T  $:ֆ em7dR;skެz)y0-e̒U І4ûdy6yK#Ȟ‹xN&t}Z@ I`IU剋(7LBT<*M)Fnl2ɍU $:sX }n5\u\{}5!:rNx#S,.,\\S~^ y4GS>A jUd"^"#OijT@Qʍk;`lscfAGkw{ Ĺ>y {#:_A`LgV{!( ЋDy ;%iǣ ЋDy ;%iǣ Ћ@ͯ{4 p[n!YrlI|ՕWjԓX3;M P@2Np %ђ@*@@K%;* :U0 DGK v U@t`-@h$:r7s >@McS5D$<#0A`4Dg#.Nɋs|RZB>*v˅r#.քqzx|'\\ұAV-O͌ 4ڂPa7[OrO29i %7Bac{#prr2脶ؘm ^c@3VjS<\Y ft^H^rGqmȒ>>ɏ7%U,@ͅd= 0L2  p+@th/t&FG{A3N@ 78  t?:@ Mt4u#MZJ@#:,7gOnwbV)v k_r=w|T =jdUW^Q!'i|҂LZE@`dDVS#14Gb#a7E[.Mxr"R2)h,:N>qw >gL, |Ļ݈-bdl,\01 tg~SiǍΒf,LMڏYnXqhA'穱+3+o2u"x@!*K\"ZLԈ 옌~xϡBnov\Eۧ&yRxLgC Ќv+N3|Y#D'>ӫXe4O}x( @th! E3Tw >΢M?B#nM0A`N&^{k}oV夁-eX,lj Gt\&^-'/]կVF3@ѱ6xMaHDbȼڝKSr-w.VYETFJfUFK56u $:ru&2q-H[z-|z`psd<޶Ŋ7p $:T\ӉŝHaLQaz :OMd4MyCm `ttnⵥo|e[Ζ>d/ɝ7≃,mO(NY55'y-%WvBUxV`h @г&^= /r3jȎչS]q(kA>A : M @tFe Exatl⵷#: 7񒝧ViV0,z뭠9(k#:ԪMfѷ_P:M: n t9ʋwꬻdq%t RY߽MvW*GK@=Ef|te踫8r-Bn & N- lDtq|#nU[ˡ@@Yi/B54N` ` :M܍hS <<_ 9lT(* _>Sό){zC`%F6A`*ƉH&E`xP㳌C~8Ϋ;%W=;iC xnSX`cXCjm>K_fWQ#*FU lSt֦  :P@DʀCAE;tʀvy v('Gts`9Kqל]bIٕT!΁'vG@΁Ž D.5ɞ{w>5H3ˏ׃IIo[NڄJ%-x)Mؒ*~joӋrr?sp΁n[WyegF3~F卓{w8tI"'Þ@؈D6E%hCƫHxޔqBLTI5r:,;gf:VkʜțIafԫkZo!(t(H̆]6[%#:Isx2:3-tElNJJXZքQMяJ΁vJin9Ng{Jp.`Sn'gzvo(?ZiIػz*WaoƚئR=@3fQD@)NSܨ @1 ДD)nT P@0ӧOr ҆Y>'גTMtuh` 05Dgj@d5Z@@E#Z :HDG F @tj @j" ? *&"ѩE~@T :*L0ES$@tT` PDIPHlmqrrr#8G|?K. A@@&^5V;XhJ7*` 4%i@t0@]4Tv{a|Vc6tzWöΈٳg oI`3ߘzEG@%U*z5k%ވC#`Ϣ5 @"NEp &I3@E0pe֌˯&ۮ*]2+Hݛѩ2,qb_#is.dkцls6Q7{kivQ ƚHRfG2y64C&,NΨw"1 FԺ/dQ օfӑYvV\b7CpsL|dպH7HS;D{ tG,YCgoqGkDg1D$Н]R)2,* D:ҡ;טQwC"m{dMiN|[[[ s%{z_Vlcc#5`!cvIXCAN?vI u;-$o)9G۞w(:GGGÅU)vYbfݘ}oMo :Nzn^lO%^^u#xvEgM0W 0|{5HG  ^zA@t{!KO 0 0@`/ :{i!p8|y>H4@`٧6|;I ?MwWQnIENDB`FAq=ȊJFIFHHPhotoshop 3.08BIMHH8BIM x8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM pp%P0TJFIFHHAdobed            %p"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?㛊moB2@=OrѰOx7eK㨍b?"BYo'F*u4NߙVk[l#&M CAݯ>sW,EG봴 8@7dU;x@5:X]l 5-WQւHi$M4l{U[ L?N / Z$dqU$lPaX@:Ǧ(֖ţH-I\I+M8/b܆oiinӘn}߸:WVA`Yf{wvDHTX*teǞXg>YUgNʬc $s2YxeݹL.WKF8 lp[<&L7XN=5% TCu5X5~۽}qq\vo11"4G_y.Ӫ8mݹW[KC%Nїѩd&?e1i:Uwy qUoWSD}Hq!Tʩ$ꤗʩ$j]$QKھWI%?T{RIO";'_*_*8BIMAdobed              kC"  s!1AQa"q2B#R3b$r%C4Scs5D'6Tdt& EFVU(eufv7GWgw8HXhx)9IYiy*:JZjzm!1AQa"q2#BRbr3$4CS%cs5DT &6E'dtU7()󄔤euFVfvGWgw8HXhx9IYiy*:JZjz ?f]6lUٰ5"{rdf GOф֗'&c_q`Y/lD4}Kw5|:%@27M^D|`o{8?508/UiaZuVV!I+N<6kTS BCo6ui<(+7ZjW}VE8c25` ᜺ bE;N FIarHDumC)?bu+K63\"zuxX[K,.JjԞWp;rFgY"4gweo׾u5hLu*W]Z7#4Z~|8fEe>By1fURX iOͰO1nkvER r˫R#l#H|ri2f~ JJ;0sJlW-SЂ* (#֛Hc?=~ o#ѫ w+d$Umh>w{fӛZ>9OfQqTˀo:'MŇ\FGYdS? WDp?9U[pNpK1 ed'ߠ]7U@USJMIJ7/oN꺪z7Տ:Bq e h}Ue*r>teM7#s1}HH 麞> QH}?FKܞr*קfM|=.{dϗ$UuCseYaSݶWq2€Qy =f̛>m^!dZ[=ʐO(߮Y. A~ t·WqSCqmصjϮjv=|_˾$xS T I?|aGI>ycjaִ"l / zrZ^X#}::q I"I]e"_̀]f=_YP oҠ5` !jg,n$߿~d Tr_"@cpe[A|r 4-Ĥ}]zWPjw YQ*KOҘ #H0<÷є9r"oEj+ָb*+ZyNE mH9 X)iɌ5Y_1Z~q-"V~"/IeY[Uݨ>(kS#kOӅvӋKi"2!h@P˧ߖtH,Λ%Zt2)Phr8m%hKo#Q-*qk}?kYGmmJ&BKX&$ZiL G N"?㻓a(FbIx,]/,A(t~|/$~o͝%T֟Wvp4Гɫ_Xތ.-О^'zkJBIdHZ.6q̎C!dx%*F>"{zVj{wl$dJ :|ЈH:@Te zr 4CQJ7b2 8}SEgxԯTgR vC;8I^+Tu(;<âewO$ey8+|>c]gx=KvU$6Ӊdz4~K[;X.Kp:#v#A)浙#=FIv&\On:5* HzaFhVqO4QjvتOJ6,x1` g !ExZ- [; تȇslg,vZ,u]"ܗ0HϱVn[G48c H# 0ڽ<܋Gu-̤E; Fjx  د9E4!h# 4T[ F80s\ELQx+ߗ|@%F6R%sp1b(}4J0n@)G!x@FI +^1aq/łցW6:9ώR'uMOO&/4$A'&S-(iҿ,-r *ir-Mb~ si)=$P_8r$[tLt)G[sbV@%Ozo) J"!Ku9Aďݸ)zW'=VTiU`I6U E { Tc\QAQzbOŝ$3躜K4cN" #v^@07ɩZN G)҄ʯpFI$.zr$~Я~+Lxatnc=$CMK_s0|mJWf8GQ?4Hn.$f 5=D)݈qZďZz[ʌx8-DwgMeZ#$dDIw|4D"5BXb:`նM0z9ۿz $}'4Աؒp >Yu0$kj?GZ[r4Q.͒83;Q_s7:m[jx;uSNYy !4Q%9X\D,6dm_HU{Fh KnN&'6*Ȋ= uZnC5!Q(T*( C;{mdgT0aRH3ur8ݝ<ҖB#cFim"}Y~'HC=6zW~65\9tzWcĆL.PGZSlOd>^|R @=@," sǏ[Ҵ﫟+ UɿVLbNpNrKOWժS:|]Zl~ <*z=Ok'v:*򭕭}>1toɨNvv?ksl#qpu8B'>Bm,77~3P7rv% ?ixc>"ٞ?u&_Q @$i}C>_}n?:xC- Ή٣7EEPU~M4:ƻ^uA _{7" ͈P#bDVUr,svp+W$w]R4i虞q=o|l9O{ ҝnX7g 'zLO02_E驦K_t4n ;t@DC z'xpxxջns\}ɫQyҥKw_Wr#bQޯ|lY= ϓ-;y$wKhWeǷi^|Ku(k/}U˿~wfO뿵~[x?~ټV -yI;^rHd-~Z=͒ogƫ[_~O~YėėY2K_wq対~_~gSl TjiiVS4c3Qs=#q]7G9nx㟭ۇ>>46D'd9?ƏF)W7odD-#K>%O>?f@!ͭ:чfkVA'}lE&O&SuR%>ӾS6/.e-T柯0~g~?R`ozē.|G_H'_1O9? 'tfO|=?Q G ~ęRO—&eb/ Z @` BoAQ)+ǷZH1ԟG?Y2HC`HZ] 䖯Dgџ֋oUu5 S')" EHCoJ =_U}s}VoRKes;5КS?T:A|M'x'- pzHhx[WW{'_έz]3HlUA'tM{=aP`\# G{+gϾIY𧯫b.Л@ .O%k4{_Ϫf%'o5 H& f% 2-A*s鱏u1c}bbx!c!\BHcunh -&мrE4b\i?ٽ{(BHABOAV3BȠ')t!|yo5Z{RW3h_)dOBȕnx]5O؏%BH?ZBRC !+x$,h=I o&'Kt!|Ogjt!jeG}FQBʗ'>Z2 !ڹUG4_Rp\~{W]~] )_>^2_!h}NCzÅo̤1ҵb88#NNy|ZC ya@!Nw谪 jB挏~]9 鉐]YUhy~]w}߶Nv?/:x zru#`a${'2Ra {ÂϷ.TOEfx3͢79@`wlu G<n[uf͒Բ|,b?817Yf*O,Hh -E`, SA4KCѷ_w`2,vR$۱ rMg+UW!@gx:F6΅&Ef%!  F)%(p 0?Dm " h& OѰͷ{o1<(@=UTb{ԥtޛOԧܳl;+[Z!QNo=ɓM1ər{BG?~yU%5uywgooO~s#ƛm"K{{4b9I mHCo 7C| *]]d-,oփ.8tJɡqxXU^G w\]JC_#!%zrqwgHLo'WIuOU]Z'S?x }pp]FjtЋ9FJ0{"ϙUA.ꋮU!ɏ *z?/*Ccqn8lR;eȥ1=(-b#"t!C7_6VY=SHqA!U*c PIkױfOb ` ޺ܼ/Wx=$}ʧ9BW'Z1X&&gpOO'T&M˪j~ʳ77P{U.`?G{U^_9k*` WEFڧ!Z*'-Թ։h8V)p(NUA[a5T$CWK%Ēlh{ڪ8TtCFKA7!:*#i%LLXi.Th̕kmYOb ŠŴ!!]DzF}û0t7KΦ ѕUV)I*3]?Hٜ(nΊR;g键g.\6m=ƭ'j90ר%b  +%Q e|M-n"~/hxA=w64EΘ2HFo[LoS> g/݂:I_j׮> [PXcUR S3cpe] r->\?RN4GӶNXfmnf%D?;{|;:껞gSc+=Z4Dž"<^Utx # )CΉ\۹s<*{DaҜ=Yw[p$1[N:%؄љ!dlB}TVU/5w't֏|W } # AI))k^In:Kۡܙ{YLJ 3aVMX81"!X$0DOz>k_npAf%L'FցAQͭ:nMcDOn\'8Ω!c_}+VZu?U (qr>YaGpJsiCsD2XEuU4HD.eĕ,qJԳ6 թdvRO{=߱cYj!dKN7CJk nˮ(#AdiP۵Ofum_DagW'-?N`q5&,2T_9?eM- uRy\$5',(T-ȿեժ ^2lo6|=|`/;WwI0qUY1Vo=̵Z4p*0b %/jVfJM"M9%FrsE)Dr:e@uk]]Z {o"?Ҩ_^\ˤzꑖz5쏂Aڼ>eV-+/t]'ֳIw RMp,F-'{.y_+M*Ҡnrl:uD=#ApzsW [S;dk5n5{)Rp<ઃt}9{Wbirz+Nw>ܨ/3#)zMCF6ʰR]~Jt(.T9캰LPQD9W(ZqU SjS78K5%Q푥7{h 'ic^f=>Yn"gn?<:鲀TV".%XC~:N(1`M}}p}y.C]n*~AJiPB)7TظdFuZ{߫j6A'l*9čbqoDD=b4J^4 Ju1-K2 z"z^W#u[Ts _Q?75NEpz^]ʪCua?΄x9$=/1H4hՠ-#Jala`?|&U Zq| g}6~^<7 isXb"/F8dDm2١k]PPg$3|r8U n?; Ǎ@G=?k^F>>$tW}I7ٽsc(i)7>:%bd!}ubJE T UܞaA+VkY3Ti/h;C4=Lt )^P2VA:G2Q 6 |yQ~Տʣzaj)!r`}eRncc>o@7D%dכ$gcXzl IYz72Dig[d9j]!ꬪ+zKk6]lw# .DBf ܹs-kעUrl25R L͑hwOnF%Q  @cY4 cՁ| @ExcWeգ@"0hL" \p_ƪqH @ B`C ?x^h4"p˟L^uYRiW1?ҭ'_2BB`Cad c}$yz @`F NFڤںzM ~MO!*°'1 ]~& aR8Q Q8ڼם~ndJ͚D7|h覟0 H`2Pوgh^gD $2p/-!@H b4)2ԧBEh]8i.aL3 MdHZ@DB\]=\D[/߷|`ŒC@P !aw!ޥ$?o^J'k#]H@H'0hHwuߛ{t?$o&5_@koM'Q Qwe0@F"0h#Grl @E$@6KѰYޔLLx@@A 5V-EfΏs8J@X<Dhzo ޖ!9f!h npO# =2po k;D& nEBXDs<WO,8 DÖw<ݰP d@4da+*,a7g!l'DvkPuChm_$ m'hNrYP7@L03pw:jF;J5uu q *-z+ ͟=L@tY4xh䥣>[*T@ e^C6NѰq@(vk@ 6!@e@4n%x %>BH hHi@ ~U[ό;BGIHG)4iH&Dnzd>ϼR{Ոw{ՅmmyT ݕux$h NaKf 쬦~ !2JΟV+B*@hoc :yFn s>j>*/_L 4_Y%DLW "]20|GT (FxR,=CCCEgqB!y OBs ?0Es/S'Y]1R!lD6nXnX7N@ ]-[  $hW@ x9 ,aymRGMл~`Ļk"_Ϩ bKSoll9oK lasv`{CA]^ږ[$ `%DOHxi~OZE؊+*I˙rR#@ !I @HѰNw@tn@D}B 6ڕjSO@`<X @` y @`<X @` y @`<X @` y @`<X @` y @`<X @` y @`<X @` y @`<X @` y @`<X @` y @`<X0{G{H% ػvn|ׁ5;i. ou~bɧ5V^i? '{oL_PRZؚ~j?>+@oNr2CF'(6)ecH1߭܉금Xf}=Kܒ%fFo4sV[[rr|?͊YDC7R ,ZwQ^4OUspWѮYPj~FUr#jJG)#ÌkܮFҎ"~ڍ񆷂1|0+ڼD$~+_~LR\j"s}jkqcX<ձػXıH)Ⓗu7"hɥk@@D}cBЄe\3;)=}S4'_-ѐ@0I;X.p-68#h[ba)<Do~x\j믿@?|3flQ t8fB'SEZz{mE !rXw[.7O0r条^W/" Lrv+@@(p %>H!-w&@{M 0Dl) PDCY텷  fCO  j/ F0z  EPV{- @`6S0 @, o!@@4̆!@e@4^x @a6 @([@l `@@Y eBf#h =C"h( 0Dl) W2N0!9 % C?t}:Fjk6GJig̓ЍUt U|і~eI Hןj;zӵt9U&%]$hV!7sBE2Wu?ۃ;ڤrۼ+ F#Iu"Z8[+hms[W'1!0Dtlw%gֿ:ˠe7騱KO%_ɵ^5GU\X ] Z_۷[=h+d=w]Ezu]rwܟڵN:^=϶YW RAB`Ͳ8mr#:{ǧxC { 0H&ptK [c)&TSl ͉T7*Ŗ&f'h bb NRv.7|e$@4`_ë́TfnEEܠ la` !Jﲟn&"h7.ׄgd*7oZtO}Y~ ]f`WoX=}P j9w8;W?M#}p?'o]Ţ3uػb5z]5biio H>叽FZ'Mn1Z]?3LG0[r lDV5+5mpq9i9AI KѐKt #hر \\r DÎ58Յ @4# @` v. @ ! @;FѰc Nu!@ H@1kp @%h%G:@@4XS]@@.DC.9AvaBr rɑ c ;T KѐKt #h;ljޏѸ @X&D2eL_?1=R|,"c\ 6IѰIK)+~p?꤃' "R]%hgI5#:>y"%| @4lw>O7l?tj@` U4тWa5 P@4F n"Y@X<Dho\p p  `jj o 㤆/,nC5mnq =]uOzCqk>osP7@@4h @a @(Fe@ sPL@@ 6.C h:eB $h(p 0D) P DC 9 N   l4\ A0uʄ HP`2 @`9S& @@ !@s@4A2!@@4h @a @(Fe@ sPL@@ 6.C h:eB $h(p 0D) P DC 9 N   l4\ A0uʄ HP`2 @`9S& @@ !@s@4A2!@@4h @a @(Fe@ sPL@@ 6.C h:eB $h(p 0D) P DC 9 N   l4\ A0uʄ HP`2 @`9S& @@ !@s@4A2!@@4h @a @(Fe@ sPL@@ 6.C h:eB $h(p 0D) P DC 9 N   l4\ A0uʄ HP`2 @`9S& @@ !@s@4A2!@@4h @a @(Fe@ sPL@@ 6.C h:eB $h(p 0D) P DC 9 N   l4\ A0uʄ HP`2 @`9S& @@ !@s@4A2!@@4h @a @(Fe@ sPL@@ 6.C h:eB $h(p 0D) P DC 9 N   l4\ A0uʄ HP`2 @`{׮->R=sA-\4@D6OE@Ŝ|h:  BB07 @ \4,p ~@N \pwq M;$tzbM4ܼv~P @ ' wY{ B`P@@XYj7 @`4-! @`սy~kFyiI@c` G?^uʕ+3@ A@b ]gMlݎ2  @(o!^OTK3^CE<=ꊎ@f)T;QʣB2 "} . S@w7ՐrX3 E  Uqוzzyeߕ3xTr5 S]M0G87Mc'1Rf6yI*@pL0%t51ᏅM^?OLK?UvEF $|_^{ &%/T1HSLPqGu錤N5(&9y OH@ '|0mJ@RXW7nMf\@ ֭+CB/"WyRuCKS.=D bA(χ ,,b@kixMO?n NU",1Un)qz= @ _.ͬ!X3TZV}Ph_&"O=?>rSIP.w2?F:Rس/kW̹uحHgw#nk]ġx'/|X8j p5dm VD86,M  XĦ'}]ö M2_XM\]xW<+kM @F\jF -tU6,1\KdvU4lX7TPY@@DCa78 @H%&did`e@CKeo} iݲ 1 A%oFsK'l25C:r/gWkgޮEvU4q^ೳ< 9zy4}cܮk.HVr3 s0H@GKuoZ @`i!I1V.Bumc MಾZ9yN4{]3i 3>j|@L4eDPX`>yvqKj@@y:E<%:*)Rkn2|#Iձ J)8ۻ].Ň| @`3za !kV@/^5,4{kAmBOoJt5Ake'  E`VEp/F[Ӻ #ϭADE @`B;1i-HyIjrgG-HP$cM$7H@Ed?!? ݢ`ul\mM}-([M6 XϮFw)${a@0y]\H]Es.XH}SOjC NQǧmz/-gcE-qsP5@O@ @D`„ @ @&& @@4 @0@40a@>@ #@ @L &LA h@ `"h0a D} D F    L0 @@ @D`„ @ @&& @@4 @0@40a@>@ #@ @L &LA h@ `"h0a D} D F    L0 @@ @D`„ @ @&& @@4 @0@40a@>@ #@ @L &LA h@ `"h0a D} D F    L0 @@ @D`„ @ @&& @@4 @0@40a@>@ #@ @L &LA h@ `"h0a D} D F    L0 @@ @D`„ @ @&& @@4 @0@40a@>@ #@ @L &LA h@ `"h0a D} D F    L0 @@ @D`„ @ @&& @@4 @0@40a@>@ #@ @L &LA h@ `"h0a D} D F    L0 @`4ѰϼmЃl@@dݻvnU.#qv\bΏ_DR7Zha3i%a@y@" h &㮫^l\Et! 0!9@@ ]DX,Ya@& IRb6?]F~u_esfynÛ*)&&'@V4XD@_Ff uCD:E4M!@'0hnZ U14* 'a(X cE0 J4 {CjNws {M 7 l$abj$>="hS{84d@J` Ot7Ioa. }1&aЭhaۚ @ B` ?pL1QRw  ] 0hPݐ1 _`Xz錃:j6 QL(Կ$ݐd:CS7U;ݯYkBxx`9{F`CMr  XL.!I1X  @#UK%z]V&ie"~keWA)]OeH-b=a!H @]^X/ܭ 𿻒WΝK/A>Iaȝһ^9uĆwZAa@v }kv A`B Y'!@0x|KU蟞0 @J@E&V  S ;T O`mzb!w׆ J@uhYQ9 @x"7$ l !7ÙR @[B5 [ҐT888p!I ̗pjDUs-vCI*l=x8m4S3u yLBD.!@N4zf' hhSh@3$AVU-}IJCR$XQa,@ ׮ޯy{\&%tI4VqIZRY+V  @@@G%P  NT5sXr})}A4۬x@` ۑȊ 1Wtw<_1a7ڜZB;F`3an"cc9[uZ!2.sXr{8Ē[ LAȈ.{2*4,qy:1.`3ȩKW{ƪ R 5 '"l!##No]ˡ1 k*1һa/ @`@\14a@E96=ќEh#,1w,Lʹ"yWceD*@k} @`dȇs%;@޹s綫R IX.JZIENDB`nQ@|n_`*PNG  IHDRP;isRGB pHYs+Q.IDATx^y%YgBcbc4ffXAecp 82,p@qX"6#alb (vN>߹uTuUWuu~Wg}oUw_}@ %;^D 7 (@ "p|||rr < @@+{+A ؉4|m?5m UR[ߥml VsZ]M6S][vƫl a-\[ͻey6Ǯg͵mnoegC-ӎ|6ӽn~m?>+w,;8B;{}"n8BKzgRG0}?酲=7|y|;x#[G ̒@KAuw\~_;~u'w?_%cEEwbݾm\nj|c]x:Ǝ iėYHkz P $ҰmcwI .]_h.;1=!^ws%s>E/λoϽhxѰ9XZ3=Dg &[(=Մ?'YNuOxq2'ޑ"#W/]zwu⹫/~ţ?}w}/{eK;ֻ~y={3FK?yò=CQ+p@BhST U w?sG玏ܻ$p|t׎o ܓÓ[{@I7S69L+=#~g|+uW2o{^,/7e)پL'L??_,;?%7ۏɏqJ!v]_J+?o~g)Œ԰nE~3p{-]wu=G~ڧ;ko/}<> ilpOz=7f|W6vsG~RKn-yţ'\10sr*5p>㻟ekDGG/\|4B>gpJJ@<:Aݠ_: oz Or厷<\yDYwϹ,bx?Klͤ|3T߼I~)[d{wꞿzCf0|ݷ6S~`ß=oh5O~efaG&YHwپM}W~kT~W^[g'fؿ^n;Xo_%e{W)_w+~Wb" gm$ϫ˗&1U/֫^ȅǾ>^E/Bٚ/w7iջ/ngڥ|lxG!"`tCb:' (ҥF14GONd0Iw/{rkt77'~6=-oh$Cφ|˞zd/ۍnп>-l7>3o9.7/}|y+A~lEf&sub#>M6/-e8W!Tk0~|?Q`٬S.ׇ]8 '[1O+G3ɞY~O3={N~ 6Iʻ>~D6/̗֚O:c "鉐nY 1OxnL5$HC$i!g覯F@# M?}?/|fv>Av$~LGu,&YfYC/I>g~Z 'Gۗfvjt5 s}Jt DE;޼;rq7YN4.~"A4ۓix|{NpӁu{ӧL Ț?yu30hDdMCbɞi/z7ۇEiv 0r [>uM 5R Y g}CLh aϿ71r;1Q^KrFp!d:7dLr gu E4bpLi'>5[PfM.tMfNルЅ= ߛA BHY {-W7f].47kBH7PBȆǜeqܔ 'k䍛 I RIg35Rv|rC? !˓?Y2B:ޙUG4_R0\~{4셐u/?j2_!h}NCzÅb8<#~d'f*B~'?a jB#C*4X7!i rcs|'/klgªS@N9u7Ӭ9Oi*{r<1ieЦ?w$xу W\/?Ƕkۡ{(41\)%o\ $yŌE}%aw"lu:a "+ucқH PpwP||Zs0h" z@/ ][Fy8h^oQS["՟v^*Cрhg3Cϻ ?hȭ%U".^[jo}k|!L'4Daۿv&hP J9K*{Ѱ^GmNj`NW>I"9TU(1C9cF E`gMXP. @5Wr'=f7 a H) MO8oڎH|i  @n9=ץKˬ/y_n-K?:=%]6|SHw2R@ F@Gz0"#-&H`ӌWr%SNE Q&~^W!<Dӧ l2׬eWBJOI?^-1أߵY RZ.Ô*H̙ SAhpAHCѷ_w` 2W;H-RP8;f6%w$qtvۼ Q> ?K/C6{aC{VQS>v:׬@_F%x)}hC*w%m! s͐)*m%~^o@YM`x[h ~{"}7VZwd$`N=NMu؉AN !r]cp/#D?;ޣCoI^oW 8dGR!oG̅[|kt8P7(ld{mjB3!`NDehwox,O^{#w59ľNq-SkZR;oH:ms L?vU<=j=<FX X:ĉDRA?0VQذv^[Eo^ҙXfBjОaޙp!L@-#fVBRtChPN&0CG-RGkuf 4EדXjmv?gG*V+=T0Q#fDS!Y4fh wMSl\vݵaF7.hS~N}9542E*[M`دvEH8k,=H Q=R1G}gє~P/U(d9ͺėy剐i!8 rm1FF9^[ckΣbXKLi+%xxϾ :!_%D4'Jo##Z4:YG*@ %N}i͍r^s 2|ZFDibH{r8Uu1^S^o,_`ƶ\^%4$JH roRДU+&+ƞF1$@;ɹ L#a`vB L miFcY 2tÑ\85mӿGMoBMaSKp|>Y)on؜q3m9膍-aw 4Feur$#y%BzMXlh95#iP vH\N.f:WrHh>-Cbj p4Y^ MqKtl0f0MίMs9"T9IsG)~,mefKi)YQ*4'̣߻?ҵRfl"M@z2I TF-C7kdߦbQ rUݐ~fNk٥ZhO-73?0fÜ 1"YgL%|̐?a!f"t'DLa䂝9}D g/ݜ:K_j_}P6.? [/1Msb v-%ASrn!)+$BpRDsZe$Sa.;G݀vO(MAD4f:(ڦPTuYٕi1s6\9rk3ݣu-s*mzb+U=iڑMlE&pȜMўH<ԕlp[:֝4v7=,mgrŰ9\?r8K hrm!*gv3= KOhŶv4iz?J?؟$*\ᗓnIrg>.t.Û:z4wolF.lڹ{38,yDğ=]`wYp$1[N:%1fin`\H/)ΪJngwl@4,gU J|BV9MAz+SԱ^[g_d3g.nUg1*+̠FLž0b""]({M&g̝BRI$H'}2YOuQ 2+tv YXKrǬi?;#-ѓYhlG}`qaSz1j2O:J=fS Ovoؑ`-\2>bcM,8U4WefMK]F\i%z1 mKͩtvROfccBȖnP1!bw )&I?he7[oO)Ԟ>ll# *`C{pγiZ PAƦHHS!zjYR- u>2¹r'7Jl)դ V!%P۟x}{=hVnH:޷wI0lq50-cZ0WOSj@™t؄TccRBDmc]ְ-,4Sb4LBF.4Xٹ H6vq,kn;m",+O9Qu& fY-5LnK1eiW(7@nNUKv $klŠ';fӉlu)\*4rkBe[صQ {knnk>"?S5Km-`砝Ց+$dc9a gJ\NVV,ks 6V#,ߘtK"䜅L3 ԃ=VbZiGI996fl.{(ɥGQ 5 MaFQB*OOzaBZr= Mv 7(Gsw sEW0e{6"RM f4{di=rh=g)4رBWrH{YD~v, yɘ~F:qc5 f¢wLOl۩\,&.nO.)[RB |4Шƍ%{:VuYh!T1&n7]Ik(U HCdD!}Lc 2t0Q-<=Ơu1BA\$[Qij$-r`ע#~ǷǞ&4#VmF yD]D[D6!Ma?gK zZReKl-G@9ala8~8匪kPzB$A~^KynnJR:b"ᴥٚ$l:FLPg]2١۟ElBAYn]ȒUI۝>dpR`LW7T8.aElse[(A*"ًitC)`V1H7k2s3}J8"+{Pi4ibW5ưOѻ'BGEQ|%:H^.uթx\+Tg )3Nw!wv۟!2o8)}ugJ|2$ߞD8$V9Z64 F:Ivs*ТR=?+/jGF& .^=wi.9`&iI#2(*C`+s(S`ǵml5fPos=WqL"=l12擓" eK~sY_ m`S ِ⛳r9ׄLJ,0~)0ѐ+VrrzsLhhH0+qG(;Ef?Ogg6}ZQ ?.Fh~ *Uۥ [C!-Yfى" QUJ(}I%tFgӵݒ(MKV" {$(?`V )b縴?ï70  @ N`aMVh`!!@+!hXIC& @ !@+!hXIC& @@h_l/ 05S@?b0v 8wOgr=#L49`?YI& Y0#>y<|gҍEw<}4OQ/^lY`ea]dic ̓? +&j @yOc/ Aol7eϮR @% !k$n;/qHR @ B`O ?XVh41˞H4הK%TB @ =mafOg]=Hf &$i- @؋hPp:fykRj.] ~.'0%16ٯf"Cb@ &LHT1t:&žqտםvidKD3`lhjND$ LH`4Ѱg{DB {cW( Ady1T{fSP '!mhMTO^@2DB1fO0&*0<[o}maFmm)) 0 D$'TtyjQ uü1ʾwƉLtnUB@DCj 0yh} `!K}g!l 醅C=@E [U& Y* @` lWǫuhm_ 8 @` Kn[( @ 0sw<0R;J5KB1HL a@o4ޓ ЛEF^:4gᭂ{$hݰ w#B@@ uVCNѰwT@vjn@DC,:޻݃/j}ADR.A*4dIѰv&<:ދӼ+-_!nSn;[J0*޵岽9$h Nayf4̳|ܯC 3 =P n1Z: )4~b<⿲KDV "F) G.@` 3lL!`b<)r!C n!O40 JOzP(=+ %@4,QfܳnhB u8 8oD @4̯MjW #ޡi {=C䮊Af:[Rνuu$4-bߍ42DX/P@yŶp輡׶ {Y 3%v#UHCU,>1. Ѓ4@HѰVu1]NPx  X gh-n' 0Dp,)  hE7/A#h%%AMѰ9@p ñ$@ ݼ8@a8@X4Dâ @@4 ǒ @&hXt @`8XR @` n^  G0KJ ,a͋s  cII E@4,yq 0Dp,)󲥗>dRB@+_}n~{{ttt5`MN@ZĴ̛FGk;Bl#崖К[Z.(ӗi=/:fO ݴY:t2H97;paN-{#`DNNN4 *2'ӫ")؜>23eKRJ[3(Dق/?Tu?j˦us=3YI֏7r! f3EG#'K(fϵUK0W飝_QĵV;#|Z 9Yo\\E(Ȱ5nQ"K8be{7Hv+or#Y _O$`g}E8y0JrIoVΡ}_'ls I8n9T9q,R:3S@4LEzF\&f`=[xܰA$}䧈ju<1}Ș7'z#r|rB량pH*< |h*朥Eߡ {SL"1{h1v9%|%IQ :ؖG`{^Vj=#;zz#rd0Cn9&MS@O /v*Ĺ _61::om[ jl l6t)vε\6rz4ƋaP{Mw7 ٙ;XӛA4 >g/lJ!Ýf*zL aV(8D+7}h0uNuVOA!-Y17}b$#xl)Jr*=h@] ]}eƻ`e qX D @c@4A2$0*Z8bg~ 8hh$Z+)!ֈ$ʛ`KvHƄahwHġ35Eq0>2Ggg%'sG:L=51re+PF'go,T)/ѩ%?BBٕB^Z$9 ɨHL ]v^j rӣɰu:"%Zc_,voc 񩮽 yM#BLd~p;M-4&) AuBO{%b! 0DT)!99"AUbPKsEo!eRE5v|@ D@@84)]Ek&:'|ѓ;ww%TnE 9!xd HMI ={v<-RlOѰ˯;;9aTe1N4-FEZ{{-C̆\Φ)v "cՉ'ng` @LOTH@DZאW:&@{ M 0Dd PDC]텵  &CO  j/ LF0z* EPW{a- @`2S1 @. k!@@4L!@u@4^X @a2T @Z@d b@@] uB&#h =C"h 0DdA##Y rrPJ@QG{ }:G#MЙGNi-g³ Uum)*gKb h,+%pmYnzqZa𦪷I)` kl|so.m^pM6R"o Dk9N6^3Cc0HU~6N\'Ri :4Zα2aMl;sWrWusW2~~_WSӷۆ=jcmd;#e[n8GBW䝜McsiYcɿG^w~^ ) )H3/F[u25\g|G88bh>K IЉA}fixk s67\;[?kFSkbK&&'h i=11n0enńM{=_OUonGag|#׀+$hXaWﲽfB) Ƚ ܛT}@4br[f(x3NØsyfӛF P~Ӛ%dOn9=l-ʱE\C!ůHU_=}XU U5̌5;&޹5n+ g{1w{gJz ּF䮒45_mgA r5dO;O=֎N ؔ$x 㱥d@ ՜3w&4m1s1?iAM З/9AVFPS-՝5aV@H#hH4T!ePb=`gDnʙMGk Y91@ DC }ud+ @`|Z&T l˱DR[Yrb{^ScjO ySq a) XDC} 01 =$<%yG>C~!iSfz.Si =\(T$Z<)>)!%@4TٚnÕCJ[svb  @4,Ag==#O|/[ BF EXL ̍an-daM؁1t Y~;tt/;GVi*7)޹X& @4נbOQW9!NBJA78 [ZK[FakZ#į~3zC8 #Oj;ΰh'@r*кb tO?>hgVx?-=63 ~DM'lt ӱϯY__9 @- t @|h-( h(GVTE 2Q LF0z* EPW{a- @`2S1 @. k!@@4L!@u@4^X @a2T @Z@d b@@] uB&#h =C"h 0Dd PDC]텵  &CO  j/ LF0z* EPW{Y{9gKϯ;?v;I0vҪkΙmrmU.1@$h' ?rm5AՃ~Ģw&%hgM?Oz B F!,aH L%!< !h# @0D 0{7ь L-s` d@4d4iL I'S>r0+FѰ`}sB[-|mo*$h0 0Dԩ P!DC ) N *l4L LA0u THPaa2 @` )S' @B  !@S@4LA:!@@4Th @a @Fd@ SPN@@ 6&C h:uB*$h0 0Dԩ P!DC ) N *l4L LA0u THPaa2 @` )S' @B  !@S@4LA:!@@4Th @a @Fd@ SPN@@ 6&C h:uB*$h0 0Dԩ P!DC ) N *l4L LA0u THPaa2 @` )S' @B  !@S@4LA:!@@4Th @a @Fd@ SPN@@ 6&C h:uB*$h0 0Dԩ P!DC ) N *l4L LA0u THPaa2 @` )S' @B  !@S@4LA:!@@4Th @a @Fd@ SPN@@ 6&C h:uB*$h0 0Dԩ P!DC ) N *l4L LA0u THPaa2 @` )S' @B  !@S@4LA:!@@4Th @a @Fd@ SPN@@?|nrmoЋelڅYf Ɏhfo T1'f] fC\0 1  iQ`  @` snl ̈rFa  @S;$tzbG4xpajۨ ,EÌl@fCi  @56Bf@`gMC?{$d/# @!CtA5e!d?~y@oc*.t钔k}7+1 $ k$gv||@ P/B|҉O/9rzs\H@ ''{):yRq߮w$CNཐ!@ ݢAe3dG1MjVԫ`<6O @"-\#"!UqJoJν5U^- !dTW$x ~|R챉>Fך C I4,~ea ?8_I^'F оOOiy1%OȞNPmG:﬈ 0*nѠAb fbT+<hEҷNgd99 A2RSx, PH[4`KZ=Wu(|np Bf9S:D@G%6T?H F U4vЊ/tu.Xsun~sNUWb>S/rdKp"%Yn6SKkwگFM7ő ي4q"K+xJw6-H@h$c558)y>t-֔sΞ~9:9{BFg[٣Q)#Z>}o vOrV{]o[5 F% =^X~eIC=q [8x_җ7V' ґ:t;Y^6w&^!lA OJ~\db$hk Nޱ[99V B~}>#G$4UxrF ª5exptfؙhOnœbhFgOM)5MrV,1YRT+,A?^Rll7;YJi "h*X0Q^X5^rT䓒f? 5$Z% ļܠSn+{;6Iګ9" ۽ C)B;15}L9ia_[#9ܹҸWJ( "cmp(7I';BplN0DeovTCEe?!e64|bz:)GU['WnmP! h+nZ7N!SwI`[8U:ˏt7һc-"ZoVH`L I4٦eTnb?7̰ Dx@u@4^T#K (DCwaDfD @XD !@CXhH_c@X8ECE?S8;li)5Kngz~  0hsZZuC֭vMbΑUT|$1 X4SR:rMgΎmbB#EWV9.yUV9 GE PN`,ѐe0'*Q0c ~z'Lbzm*6?Lj թP8OV#1 K4D)Xh Eia372 QDCD kƓ#irM2&-gzy6AXQDC!4AaɃgO ^]JO8FMʄ ċQs%*_Z , "AES ;"-ՃC)7eFm]bZ܌CMh*$= 8 **gbc' M(Fvf!BuO6͈4b'@l /fjaӡ2#-KOa3#h8cn0qƈ\^T74鮥k@Bp M7Ѝ @+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @ !@+!hXIC& @`>(@& '?|nYP"+vVI/?w}ѵkrH\'TZb='y{Au Џ/ t, fHd5>4&"!(υb(gH  P/!ECȓ@R"  @]4dI`=iWŤ 7\Э ab8%@@!E8{BH #dM[֐O7 ̟;c+n?N[Q<0zKF) ]$:B2@@+DC޹Rc fn"=~l`!찄! =E4*uFF=$0mQ; (QD<ѡo`C{ dbĘDJfDSlk QDW O)ÿc Č*dߩ@`,Ѡ/T4)Atip~mM/!*@!0hPtCV ҹi~f3TQ_UignbÀB @ !]7d)H@|aRNUY LZi Sr(IOy!@ D ªn`n}HԤoxb} ⋆;3Sj4rzSl42 @ @Y53 @AFB HSBDb$ @`T4/@ V8 @O`gzb&w  J@uhYA9S @z"7$@CL- `MB7 0*C>7c3v *#fZ_-<۱JrA`8Kn1۞?1 YH @X;Ӱ&'  T"'! #n'v)ykpaD1;N!ʸA@‡>CJ(Ts\ *) )!@ɰ1#V{q(}A4 D"+ 1WY=Q؊5 P@SY11zkscXӰ@`̯^3 Щ'@`l:*] /@b`MR  :#5_Rj׺,4JE+Y֘85 '|YQ  KGñY[ HGi0H/ @`@\1X@ @b'v'ً5Rg@DIñXg^m~Wc+\ ,kݾx@@3=!aR) e8999e97 BK1nIENDB`n+st r(ݸPNG  IHDRSxsRGB pHYs+IDATx^yEExU$%\P`X( 7(8,)H$Ap UZFK{W(1tD&O\W5_rE_ w,{}@'o`q,}4Zncq^Nƹ1 Ie9.g~43_5%zϚLH֛x*(,K{;CCCs.]&а@C .Cz eE/6N{>S@%o<Ջ__}^Y҉=~_X"yыs)gm98_|xŇ2RN<}י3WyFO,;MW+"w2X䞥ܳh0@>w*i>!7,M6v8$vGw_P2;p 5K=Wd78'>$~ů{kUJ3߷?=M;S=→OΗEM|gΖq|su~<9vlc{~tXG>竑cuOoj;+5 8]WuncgO7i,~h^]'3_F;z fJ8}fncߙsD;JuIWa&q{>OM?⩞+|זz2—Y훲WFtk߼ 74˙<ՉO]ed]e /Ik?}{s+J;w'8v94/ڗO%=hˁҼD=9#~De3tu{~R9~uAdoƣdn9[A'v/V(Z6?O߽jewEպK@U[KMit;A6-s捚 H#{vsU?UKS_vvۨ۝Yr(or֧z[I'ݶq}FDA 1g#}TOljW-}$ZW-Ǔ ׏{ᡅ/fJm<5v2')<{7c@ ɖTtL =+>mk%H1Iy6srk#@AH=ѷOIDk]5/#|q;QɈ}Ǝbl]v3R?IdƎ %eSL6)~[F~7M!usREO2S=+3KwIJa8jf0c3f9 QnݚEԹ"Cs6f7BA%X%I6 `I5y,Aa_%Y@<P~˲ D78ѼU~G(A P/g!KG9|>-}&5?Cuf|K:jϔJrP@DZ\fd =#Z RJ~IfRwj#Pd6i\lVYogm:~9!&@zeMO/ǙgVJZƖյCLʩڵXO SJ6| ("~*|$ +{vp̪@_y &~z§"r_ &~>ΛߜA>ˑBd@ v/U! $Ft $<_{wNGF *Nf:Ŭ+\c~> Ǫ*[C4 CIn;KDp@ z(?m"@4߫Mp("S"B|6@m,U"(CP~K~Hfol7r™H_ޖ=U_e&G*(A P7IUP~+clɋm23DMQ{:e|}*ߪYank=MUz罔uh8x>NwBay72oHXwm !J =,Tm}zW()Wm{itk?U/ЮR+{p}[/wgw:%V^nԫUb O`uȸ=ٗ>(|alH^+ou=Q[VZxDًYF5|t7{D_Jg2-_x -\;uj+=M[-}f(HZD/)wJc@@zO_R +B;oyx{yL>Lm\B勆Lu˭ =dfϚ  2 \'n&ոO@swTMQPSO?'h!~~ sO R'~ :_o@yeH 6Wm%J~ `O>{VXB=P~{ʒ@ʷg%C巧,  )_K@ܔl D;-!@#9I% hUbjW 7(PFܢR +@Y/A!@B :Ձ'u4S! 8 |dѼ+1!P5ge l? DYNc 4+s4\ u`lʤ@M+@{PGW_Z:;J,]9!ZI@j*~~+/92(KHS񛐓tP{hmbP' `ʏpP'8A j:6Txmyjyv.shhHcMߢo(K2ߴߖZV3oYFWR~. Sh bnvʧoI3oUqX@0@SS5(Dp!3_AF$dύrG".CzO_ʠ8Yaz(BOՈ+v'P~S FfQ'͞Nᙉ/;wB"% =,@_.1;u^N_aZ P~(uׅntu_eV6M9X'FGoN|{I)79;()I;x|є )WwcJzl(|'{5mʦdrTN2Vfn$"z.Ri\0c$ 7ZqGG!?vB]98 P~D0— fM5yX/t,TQVjNQu-ˉ+g(?RU[[;eH+paQ~W/nC $U3)qA (?O$C$.BRR P~HXXJ ?!I  KI'B@!ib!c))@H(?$M@,tw@yN祖D h+fIwIENDB`nruȚ}LIYKUPNG  IHDRsRGB pHYs+IDATx^[tY^:hm[]%3PuZgƒzc# V9ײE) '"f}UXUРĄᙕYg;3W:_koϕ+w^돸 @ P>?ń$ @xÇowzcO @ ^~%鿡`DA @l=7[oK=ٝ*Wһ +ow+tVn Ui?-8cvihhju}.YTz*ci'ݭ2^jr==t;]3e{ꣻrO?uunpd}(]c١yzH[ΎFz;ë56U}yP}Aq-_CwzOY}WZW{hm8PDv7usԩZwc@q wCAfvC֪~ȯԞ\<,>#!A_i?7~g~ @"zfCvVƄ?_}i |Z'wooߠNZ nNl uNtlʧ}~n6U O}lTAf3O̦G}P#ّcCkhk6kcf+3MGNyhyiOqfdn[y rcwpoG??̦ݫ[+T-M_ m/cg{w> iz+̃C`pT=6P6~ =kIB^yd>/v_awUizR?S m7oHԪ)E/T5LX1bKZv+\gOOB>|J'l5hK7WWFLruu-Kc?>Wm!@"O]l>L^f=z~,\=]^^ѿ:\_LOpM' %ro~ /o_7ڽTp%?{?\mGnމG_pl[~|:$@H1AԹN˿!Oۄ=|ax \˿<U*pݳo~}MJ~yLgu]nw>\CN>o 凗[֟%W:|ƒ?e?wYۜ pA޶MBΎKl#_5o;׏^Տ< ?fN=M׿yߑj;6׿goשŸyzs}$zSu'y=G[#}s3ן 5'o^1\ӝ߸~7~?p! @Y L}`ېu,_?O>vᄐ|駯n.='a:\Í_&S9zI՛~u?k>y;}qsP>g~p㗶oy{>}_)m3_'\}]k[kx$}ç=yƍ~җO5o3pwo p_e|ś8JdCCWnk{~eޯy}Ž?㝟G=\?l"Izw|iH?uؘ=}~ף~-PHÝ=ݏ=y{x=J @ H14=8,v\7.È˧G7qK $ͦO6ΦW~]^&i674[2镒XV4dG @N"PYC%3=\/l-l?i7^E/u;]ӾB3]u/)*=N_!MͷHÝ.+ұ3+ᡸ6= d|qwa=BO\BJUv i3̣+MV pP1&/V^IïD 3}G~KcT'6^pNƣTD\=۰W+1S9<گ_[lyrC(>eAٳg/;slg5~='4PViRXkϭtz ??'8wrz#ǘyѭpXQyֶd*;;T(+ i=hbpŎKeG>=_Z{-{vC+/Z+/Pny\q-~ּuʝ&Elu5kIѤ~3?{ad/3]UՅHӥwCUU2Oiz:DTޯHӳUU}Ct'aygh\kt>-2Afi`6=fJRӁoWuhкE/gtP>a_'\@)M>L%}h'*S>3{ݕyӸpp]oBۯVmR=xٜλjo43zN7wvfcπԧOQiz>k_i=x˄,hG @hkǝ% @G. @R @G@  @&Rgp<8<:w @~=izȥkUz^+/?!! )3: c`:upCI:d @$?k"?J g\6PN"MKorG<ɑې P@^ >aqlO ROfoBQ]y*sϕl{}w$wSzL*c`ޮ4yѻgx6'@54/>*שg}娹4˳iq16CMKjH1!no{:yR?Im߄8{2F N7Wihk `ZwGҠChb]ãU .BODe޽W@)@Dॗ_yaO^_$0jּa3p5 i\8Qg9rx'#iO]F˩:[ @+B3  @"֦a @X4}a9 @K/ @`a;_! `׵i?X4}MeIˈ] @vΛ2~<xꝷ^ܞ:=Tu>x䩫Gb$#)69onx U OF1!ȎftflNj^fO1Ύl숆gt gG<z1 Tz!Ǟo<6xc77g~y~4 x#;4*$ ևʨQyHX{u:uzj#d2$ t饷\TM ^BpC|[pg 5<9*6 𗷶KyxIίC^ ]?4ՙ.!ב?pVJ5]B&i:\Jc>y.+7&wvhM6 /"*!^73!56'f¡1]nwݑaϝAΪ%n7lP9; @` @!SΠ\^cv5^bݐ&l6?S6I9zL&*}yVPaWɳOz6ϑfoXHK6rg`gx4&30mI"MKlý:/DRx 6!@`ptxXl[2П mӆy=w>/i}ȻPS~?9џ.Phq)ۄOcʲ24O'ϑ s*҇:&RƩP>Cwr C Må6&xrK>8$zgK‡7\*ݬ]b/_v4D01eúV됣Ǭ=-INHM!3~#ފcl$Q}*}(,pOk(G`bO*n,*.^䔍/qB}l` _MSw_K~,МwyON}Hɣͣ ;c_J$742!2C4ΦE>= D?L8Hghx*aŏ#[\?ZY1}#6 l‘I796 <\7V昣 %n֛8jD~zM5;4K߅pgmpJ!\P2.01MOk+c)]hu"l|PoIvos0Ǖ=1ܜPCc[-ufӻ;=562^bT`pw)/C7_83STC&镵wVgVĹE!UŠj͉9GKW+}6=1ׯ{CGOKVƖfS/IEcCM)H;PVmC};;O\F6z#~7Y"YͧCC7kӷӿ'|ѷ=ɤ뗚Ц"dzm1/l]7LK_Fg1;0ǴyqPuO􎺱z|6|ݩ,U`b8QSw5/T?<=Nu/㻅Ԯ<5'\sVa,`|IlzZ3hg;⺯X\oe=6ѓN8O)Q Nf>Vތ1EN=r]Ҙ9zo}H)_ҍƪ6zmdvpf҆Sp!'(1ye377ۧamןlN*gxm6=Vyt_:uzhrRTU*qa0C5oH%m/ϕ]2Mm3B:6~H_M%qϔx~xϠjAL^2o9(M]CO|]Fy%gJI;w5"J ֕s5qU~1lz{;J*uʜtw_oO4o K0䱅G݀CbX2qvbp~$D{oGa=/͗ Ϭʿ߄jnҐ:7tN4=}jPR%&Gݑ,>7M/mWbXwUBsDx|z3mIö́}wdpvwt(-4p=X4}]=-zQi^x m~{ 7zx#/`4M鴃vfgڦ?ftψ*+4|;fȇ$hr%G8i;9M7ΦP501iggAXX%'IfXTs~b4!i֦UKp:[G$<GG ̎ M7[ Qǎ @ HOok?}uMZJ. M_;=ʏpf~>,Q啬#fwS!8@sE{3j1'@- nwX@ ~-%@(h3 8ˌ"p 'd{m  @%~!M{آ&5L+if @+x/wJ84\Ҩ ǁ/N @@.~b&4݀9@$֍iD$HgT9ǘw4N`SX@);oFA[vNۊlᩜ pF]'d:T:,msj*M>ͿHoo?/7n趂λnjktwkؘ5isWƹջ7۶m5VsNS抹seôbڃ ]7Z6*l;Oo}_K3%n{>u'N~HddGݠTmĩPiy)~(> >#=iETN39=c_O{po fLyrKw^ݲ|q+wMWwt;4k{ C'o_:ɾ4iF 4l¹?cMbv/1_3M5L=4]d^{?ɺ4=g|*5UZ̀i)};g6}Д\&̦#N (izSѻԸCvpPiO/ŽꫣʏKjA+I2rJgL/.z.MoKFi6g[٦Nen6=-MGΥVH4M$4}TOj4tw@3<1=|^!{f֦ϿÎIyͦn5_I>>ͦ"V_HWI%?/(MF7S`z4eg }'@ީt9'MKȹ{gύ9T.+%0\M]Ҏb9Kؤm6=-ҁi>s:Otoizl;gr*/=yK視̧ll.b/=kΠ mUyz~~2)sڛmU\-mLIӇ'} N*G6}nHs*GY79YE>>9M쓦yNT_PH;.!w^"̦W =Xm?stMvsOܯB~e1G}l_x/mnsO}Ͻ?70T,Z0ΘSO}ӧoJ%â^=1G__rs1\>x桏znؖ)OR &IӧjG 7u1ΣՏ|V6_&GU8p'k}0lf*sϽ~?ϓp~6So3̦&(L#f;ָՐSB+{nIM+^6^6蛿/w9onviOeze'Sok2m"@@Zt2=B@`@ȡ>'6+aK~[+i6꒿0MkӇ%-z vKXE/a.kmz%0*Ok3qK8KS+^R-EemzXD{mB+B2z? 7^wW+}q_!ɾ=Fcmz~J+<ӘkmiF3-LOCϒ3p '|4TIտѸ4^ i 㷽φ iL5 }4}4r4=mBw"ҽz*~{WH}WHwi&\/.M߾x~+U퓦0gzH~ ilzi sfsmF~49lzsW3K>Cϓ'^l݋ޜM> {I}L~걣K=4XizwrB!2 C<;gO'd +^emH'|vM%*]u{yf勻oDUSүv4x O|I4lzIuvm&hޅ:3'? JS?WpzW_}uT+z'|$O@~&deͦiα̞9b&vߝ;_*M%m–,|~m:7۳"'@J*?^9'dx"=ԛfpE,)Q\2^-=TcqI&-S @ c d@)p!0@v׌XXyio`[~}U+t6GCd}IFX%]mKP8ڢu'Лn2vK8bZ¼]|W:2q󍸸eNMyр87}'S2^OT*V*4&apLoo)PN Pҭ7_mM _/JRb;vDLLs'[ >Ηw\t W~{צĕeTGB @@E`4H۠~C?W e5#>*7`/8x h< n8h+}H >`RCflٛ{6H=6c 2NhMEXێWbzOꪛV"ujA b,mڪm{&ųrp 9pC"}.=|l lmF z%Cwl>C>j6}HLW6y8̼1 HkMWp7͐M-kw94K-Jv=j߹?n7I8K;=Zm B8ϧ8)>Qg< \ơ8]>p[3θJ3;VHKU |j3gCNDc{i7\J#P?kgoz+e+'smPWzs=വ/ƾNw$c`Á;Xʊ|aQDO4\2JqmUu7vSg E<ڳSFNLOl}+gL:zyZJ4JJaQ-(% i|biԚx9u)XېwOP'|֏WC g/֋mdNm4=x=6[$l>-mHRL+ ް8G`[)yӶ}&V&Y{ww O9!E)m$ZH[i{ćJ+?j[{ˇ0dʜJ uј_sV I4'v'i>+:z7,]z"yzxK/~(< UҒ榇 !;{y=Iþo|:lCJj{qia6P2_x>ݙmQQ@8 4vb^wAR?:k^Ҹ%As|}۴aC;+aIB#W_݁5vzw_X,.?pԼlT=݇6WÏ~fVʻ;L v$6y0awe<32{y tv}'/dl~tT LӮ m]hizx2/J ,iz9MʉS$I78w7ZO/UKV*m3TV%}x4s :C>+^£0FTVmS6lb @:Mo׎Zt0^֡3?6*ZW(Bq9hϾvx$g ?Hұ;UpiztMߗ?h*'@u.,В˻0YЗ9o>|>=F?y _e1djϩ_84}7 H<0 LӿO5b`7̾[<1fOg iOQ N0 v 3jj(S@^fKousؼ_MmP`^8@}p @ 1xgf=ǶAG{OeK{ۡ20{qжlt穎l"@`@>{*]_:x,wף[+XIk*ϗY6Ic9zlKu֭dC!e[=釳U3$PMC/崤`aA&Mz 4hV1;LL 54K7o݃$Vr.v@x#5 YOiWtxcC>3*eLIϨ 'l2•gb%31v53]U( M?^3=Ἦ%gXo17o5ĤR0dLLڪ[w'єdw?dE iuN*4TGyK]ԟ8"~; A W&iޔ hs"0d6@M2Qם@v=MiƵ,TYt>5>xАcR~ۧTf ځ;{l+&M,Dw6pL/ c)l{W36,Am\>A#Tysv3t&Ȏ_Żj{tz P$w⼷Ǝ빐g7 Pcixٕ鳓8_xt0ҽ|6=_ ^Y8pyb@0_2fˤ6.DCpy;Ӷ#9ܹslc8]P2$ScP*sMWG]TsG{ 3.^SXm%sQsh<iLH7ӔԳmkbs?;k2@tρ ?RJ'BJ4dTȕGS?Syx=UF9LzkWǎu4pj.E'J׎Bh_0q/0.5p5O@-* ۤW`n[1Q[du{8.py1o,_oϺId,M?j 9wo^ }Z;&m{㪬W [̔Tmgm`UxҶUg\ ImƤgT86Uw [+K.$SzA>hSʄz7l'4}O@@>޸ܥNҗsSݽ6}%"5%bix=5v}k>+)Ay|NJ9 )f6yj8=6voT#Ƈzf{n2 =NjϾ hH9-|Z'[8p ÀZX$w7krjkK⑔z*^IKfQ~;R! iC7W$SE7@pWy*m+Nzo0jƵ.Sg*ߛ$NH 4].yN Vu!kq2[鳓sHF77)_Ou-zg5L&>txi$y9z!%c:g4ݓ/zG$J=@ JڲJ!툤7\y {H`ZN(ݵTFcLRC{`Uo`ϲ<K3֫-Ϯ/XK埇oG>V*^ 5W6Ro=NwVvQuq8H~XMCeUI|4Pimd6Il6:7xrƸޚhJeƻ5̯+۲}\[UKscy@Z^xg-R_!~2yw$Z@K]m#@`g'ؐ& M? pN&wϩMXPTL<GިWã 1Z—ìmaI>DCɐ?δmH"/PCr3 IJ]`/ 0@]@Cښ=wg_|;Uwb-_zg*ee>Wt9\i)[ iz_,4}]|.>]|'yͳN1k?"!8JkNSG=a6^m[?=_APHY ;% >j;GgM6 k67]UԱu/y@LY%+{*UhQ6ne{St7> 2\.h2 *dԨ;tI-~R`l*Y zֻIoFQ[tОYi 21wԖ~;TS ҏuVQ|^q+?{t<.r7K,d~gcCI1V$>69ĉTR>:c`"( M70%~#KF1_ߚZm0)ՎkQC9U[ ʧ )JUkgm!!y8-POwyC~#u>͇Ji V_ 3alk4}O@W z WZo5Nwf!CCRJ y̶{3nz$+*z íM2 =NjOoi6?{|FqKZ*sMՀ% z{u!m͢z "-bLt*K`9@s @ʹlIdΣ,L`fuW5 #lo;q[CcJ8QscO++`/YI>v^|Q7ǤlrC֦q^@\S.맕{:"m6-SI}u,bio^UB8@\O/S@-˩ߎHz뛧 o/hm4cHwjb @ƅ(y7S韍[zL}Zn@^W'/ief4oc_6ݶyeXyoT/j@eUIylCᄶLD>&pږeV @gz@}mzXl\O%83㼔&@r.BO6_zo; NӲ, 8ھ֙P21/|3m8S4^[;xiTNBN(_W<_xg*e'͵Z0onzcI  P@iE/0 @ HӍ @ HӋ.^  @6*8Z7)دZ^f}m4}U㧬'M/͢& M$0{nKA+ @Q@n$ @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc`=> ƪsl[ @`t&\7_O׃ @Λn  @(Plz"cu,ig+[G; Ēh} @) M?~~!ENXbS|7O)xemLcP&] @t@>  bi;_ӏ"Ga 4izT{خ(P@^`i~C w':y8~Oe1}nV#X4}A)-+ח-@ogpڶ1 @@4 ȧ۝Ř @N. M?y_,A HӍ @ HӋ @ @Kr}wzZ_Y~a|>|ӝiƑ=g~uux؉ r3 ) JieʫMPҬ}RF~&=0J>ؤux @W@K3Myٸ#ж̦ =M6}D @]@~=(~ @ Hة&hR([&^r` @үvѶtX @RW ,,x#4 viGG&$PW}yD% MKR=g,kJӢdBǮ9c2 @Xg"PMϧga @K/a4e^'ߋ @[@۹\Ϛ/4;!@/ M?=$qIzVfb;=%KjX @3q }@ʖ|kSRXq)O @u @HӍ @ HӋ. ^  @~{'yn/ux校|m/_̇h(Ðy;Ӷ#9ܹ6sioa'_xg$Sjq @R.//S^]Ol%l}RFԡr:N~B H 8;t^n  @` @4L @/ @ge&@X4}}=,s3K0*!@- M_vjݎ<;mvZw @鳓 @}m^ij<܈v>owl[XDK& M/GsXp%$F״t<Զm0fya{Q @`t&6 Tf"Yˍ2 @`^ij;4e^ɰi@  @ Hץ4R`_FDq @8i8/Z D72?_Ol6Hz M/pX<OӢ aVKaj'@+ M_nj @ H϶N \irV @V@~]'p @ \o=F^~:|OwmGrxm>Nܮ4H*G0$vq pX˔W4 @`eV @,J@ @eHӗяZA (iSc @! M_F?j @N!@X4} @/;5 @`eV @,J@ @eHӗяZA (iSc @! M_F?j @N!@X4}]/<  @y \>;oQ;˯\__GonnΫm-\~aFcc %>|2tgڶq$; wXmxQxg$Sep(D2&[V(\ gҳk 8ieϿC- @fO-zY` @  @V' M_]k0 @@H @5 @|iz}$B @ HWlcO<{6?ճU!XI^gvl  @ HOoG)ox71<ώJҍxH:vC) M/[u0Wz=RM + Hf¨ԓCl2*s؜{+둎Ǡ%4lNsLUMz 4>j.U]Н~X4}=}# Rn2•\IeLp}1̌& MfE DCɇ;ݙm[;liTNaH`&@Lyu= W}g*eU8i϶: @`w0i9 @@bF` @ﵜ @Xiz]#0 @ HZN P4خl=T~Ro(y.bQU;$Te @E H٭U1Mi:iLzx+ lE,L@՜ Lzx.~hX4}Y}ʓT6-D&)o-1e^Yv+i=$8/iyh' tdiv<&!;/Yx^ۄd:V*I{ew #e @9 Hϱf @'pּ>F}^~:|OwmGrxt7#r3 ) ,BXeʫMPܳTHӗ=`nt9\i 4. H{8c!/<u!uV @`֦/ph @ HϽO @i;U:3ˣ>jCs zXѳpEz @Y0<B~44f{I!6Ic9zl_Q둎Ǡ%4lNsMz 4V>j.0Cy.wT @`+ M74IQ46UwJ\ fRfTELOsբb:{^> [n'/\m~K<=Un+524N@~:{{.F w({SJ2]ϭ'gy$hKC)qcPmBtH zSw9fh+[6c,X4}#`'fyo s\x̛;jnlʇ @Bt0!'}{*q4ȗh !툤7\y·6cLR Rl!ו{f@eve{I.޸^R[ F۾Ѷc 4AN! M?} @  @%"@ M7/ /ZH,K"|-ǟ|7+ћe]kN,pqq?0k;[H>DCɇ;ݙm[;liTNaH`&@Lyu= W}g*eU8i϶: @`w0i9 @@bF` @ﵜ @Xiz]#0 @ HZN P4خ @z{-'@(V@^l @` @+ M/kF ^iz^  @5#@X4}} @ HӋ @W@޾r @bv @+ M_ok9 @@bF` @ﵜ @Xiz]#0 @ HZN P4خ @z{-'@(V@^l @` @+ M/kF ^iz^  @5#@X4}} @ HӋ @W@޾r @bv @+ M_ok9 @@bF` @ﵜ @Xiz]#0 @ HZN P4خ @z{-'@(V@^l @` @+ M/kF ^iz^  @5#@X4}} @ HӋ @W@޾r @bv @+ M_ok9 @@bF` @ﵜ @Xiz]#0 @ HZN P4خ @z{-'@(V@^l @` @+ M/kF ^iz^  @5#@X4}} @ HӋ @W@޾r @bv @+ M_ok9 @@bF` @ﵜ @Xiz]#0 @ HZN P4خ @z{-'@(V@^l @` @+ M/kF ^iz^  @5#@X4}} @ HӋ @W@޾r @b.~GިWã7776C`(pqq?0 ! %>| ϧ;Ӷm#qVsH>H*G~( k>ꫯ/cWHʇh(_x>ݙmɋ\^ژ)@8~Xb8wpx|We1_&[ee<32sNq3>6M?p8'@郘*_@^~*Qi1s*%@s0~.=%.i&00MB @4hܢҺF-&@9QFilNR Šf+P974}^^V@~Xsw6':8pڮƳ{0tJ`]IUx$ip7izo@Sv(_`l7*[EH :i\  @G"$@X4}u] @ H# 0@8?L~ݧҹ1>-# M//DBa‰⹱ҍ!1kY9oBGe 6iz\{ Y ?-Uo<:P , M72X@HNCS:;Lcxo(@C H-~W5,'+ѩJIp$nHlmJ zBP%aZ"@"V"@`@%Li's}GۄTxw#}컝^ iJ:Z3 HSFem˸SZ/0awwlb+I^$' M_^j#b*q7ݓ}m2zF90y0_2jzޘSw)+Qkk0lq:6TYۀM.ʍN*o^ꮯã777a+/e %>| ϧ;Ӷm# {94{(Moc =avMiy2J==L4}fπ*fIӣ̈́3/YaE^@J#m3p)'~yZ!q Hѳ?IWO'ZYQiq:AN~N( M?!]=M/mp 2#eh @ HϷizk4]VHӗշZC HWgr w=R`sqHH 0D@>DIRJø/I8@:u>*  @x-~yӏnOJ'& @ OIS @: q2=gӝd=g @gӣ쓦%@;!@D􃰪t.}t_C fV9% @H  @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @ @%"@ M7 @' M/KD @@n  @(N@^\ @4 @ P4. @i1@ @8izq]"  @tc @@qD@ @ @u @HӍ @ HӋ @_Uӏ @M7_'yzxK/r}}A$p!,a@>| p}&%<1O'N#nP @`SuJi?;84C-G{w!+*LX[%MFj+ @\ƥ=TcnnnײJ!NĞj;@W 3"(P`\րE}5suuu·1'qGS=8@=MqBㄸȽ$Vk @deaNu2 j0˞_=܂a ɼ6$@,O`48SX@_w/.k}_!?BvSG 87ܘ&uL&mIM?{зG]o֮[@ f968}[rL &ۄ:h`<*gجݱ  @F 2MˆC:2ykRy"r%)g8;ݷ-]Vo  @!0whcZ[w:&u&c.yb 3!G?z6ʉ_fUI+!;gL?Ԅxk  @̖L1#$>K}mzJL7RҐw30y6ҊCh+ @fKsQsݞ l7 B ԿBsKgalzp,0mEXizyÜqLic;s7slK8 cw]CpjlǡO(_"n>;o17ʥ2ǿgT:"@MPic{[7Lǿ<&JHKP^oH=qAE!K&'\dː'2 @ ,'M/WU+hlΞy @ ̓VPW ͋{N֖1tH  @`sHE"M?j  @BfKc{NN炊BFfӍ @`3u# M?2 @GIOx~#CY 򽈳6< P@v+-\ @X@%+SNȸ&$@ p|# @tkӍE \]] luV @`@zɘmؤaK9?Z4I"0$8{' @\M٢ h6!@ p CM/䗏Ah+,;K%y V8ءKsq!Mt=F~yRѤ=`$+ɫ\I hmz>w1'Le3@Y iAZOʇϦwψf*zlmP,  @*9Wq@<κh'7mv=PT$@ zs[ע4mSiCeaw c%><8k!v#Tv1jף wh@8@c>zmzzW=Ɯ~ᚧf++i`8>|I(~'I)Jځ(Fshk/s{g @`y777k @8kg}'@X/ZE @HK/ruu[ovAֿp5|Ѡ.46?41*{WLO2=y[GE/a>|P>Zo!M}4c \9n4rgǞ]S{{i Ag:/3_7*M mccl4=|;ȼajc#{4}Ol~k|>)'_OH׶J:_/|\{_7wSð 6c߳kഀHuZg՗}ſUۓn<5cOǞgל}صG̶p<_ͱw 6iu <=Ѽ' Ԅ6lu?7V j̎p]VIENDB`n(/v+"PNG  IHDRsRGB pHYs+IDATx^[$IZN&cA0 Z1@3CL؅juZG[F|"{#e#|rT|Z?A?jw+o~YÏגwWv}YR8v-/M"zg?UlӇ<3(O7b|b~>/~䙿G_яO'W~D#~XO6<䙿o~|s&?>yzy@@4wA%!Wꆌ$u$>էsyCMߤ 7~맼[6d&gʳkWo$OI&!{mbKg~_5_{[מ3h9~;f  DAgm]dIcЅGb4w%4_yS8yMo{&;ҧ%~DUY'/Sl߿ol/~c3n?Oi?jO[OYKNG>Wn)e@#6chûi?Z?y<Otyۗϵe[כ9]OONn޼yzzqt3eOol"u}ɷoov5o~k片Kϸ?-qtekB#?ߥOw˳Y݂_ЧF~xTWK/{)/H]^WWwl_eVz~!%F_upmpsyƼ^~nEc7}?uMI,Roæ"C禲K.ws$@WmNo4:ou~I (`ZH.3O6]N}qrv]tDGtIWiw3:R?O~}:=]}hz%Vvh'2|.RbtYFkc)%{) l4  QI/eHM.rty6q^mh%1OՇ;[_离1zme:F}gٻ7]ntJ.m4Ѷ%Fwm4E:E_kY]Ý,z4F6(hzmu4߻w0evE   \oz0}g~f3wg?jH]f4]-.!-/N^H(  0@x!GόԓazPӛ''mow^2ś%67]/!tnkӗz[YD/!>^ߋ]BS_>k;^B vjG/:%]X1dVKHm/o"K2.KҦ uJR[:7]=KHqtYˣRK)^Bj e]^%U&=  0@[ԛø%a&_!oH? ~W> ?ً{2SyP^ௐj11_WHG< Ŋ ^eNXgg[/x΁p~ .3l#Z59@BXsPC,vxt>\rx^eM |X](1(/L^vLxý >D>X/s[ݼ*[ͤjc8<Ȥo)a%c;{ϾwGT_gx{mA?LWH#a5%9*1LF[/&ˤ?O} [;k6Wk}fe1zt?k^ojyPEQdW_%Gp!R_yz}\yG|K?TYBN+ϼn@n|0u>(!LRV `= #LthcÇgSᮄ2~(7d('-z'}@ֽ{l7kA_QFNw򃳱1La'闇3P F*>,vL?KMjh>Сu{?G7Q#cnr$R0<? ^RZ/FسVǺ.13@W@m{o:   ԇ9򖍋7uhwKhl؆`nخ=&Jm4-UM_*WWmݣGOb~&쮉^[+" mp4GiPg:M5:bUCZț-j릉vv$@@MOovpEos匎 >N<5\/{l^C&  @@060N@Y[O\¨tծRѪ(uhz1 9P/  :QQM vqKoU*kQZp\ne۩z 7WU^6WkegGԠ](gs&*_ZR" * ʵO?B_.njhZ"  Q޻~~^G+6Drv+8SwsHIMcXlW;B@d   "azԄb   035(A@aZ:  LR3Q@@"p礨KHΌSD@@`fzt2f: 0:OOO1 `:,Ӌ SE@P%@` KHݱ"ƍ'[G4"U@ N/6JEoB Ҡ ۹es6]HCҚd cj Ȕ.ϥQ@$@֦exӿeR  HMmJ!-zs'_noz]Oz:kVgNOҒ‘cV򦜙JһkWތ"혮2QnV3: U7Ftw(ݭ36dCDh+~XRv=鶜b7w\%9Dn"idݰ4:EC" Xhy=-37Rۮ-u2߽gWN/{)@N/>;[K(Kv!/4^]1!gC&(ߦ[) Kxy)gǏ(7jC}(͟޶|$Ϝs>A-Ov9s6q瑻oU-܄KkV_/e"$Gfjݽ=k$F;Jm^KS.i66}6:8xj\^}]EVoCzJwߗ 򔏎g^̍Y%HFym ֽv.u@`-'AىWVdcd"O{H#4 k\Cuv^nl+CE&*`eI!OIpwcru/Pliצzfd70IhHHq|]Vbm 4?VpWV9;[5[ە]»7xL4H+zmק_ O'ҵfZ܌@KhQ:I,ȰotڴO]"C}}r荺zm",Ae.4rH};كF_,8^SƷ &@-^>#F׹|k\n0h^_c)٦ R]&S_RH)2 "[{|te*4._|zO5#8@0ݛh:ncI*1}$*_Ofgh1ώp6eil4ݢ|wf{ԛI5.!w@+% х萹-0둼^f-d/%bt8`Tt37}+o[pI@hvFRv_nXqyBMCl1>M*6qyFn%nbs]Ǵ9JqW;Uzx5Mz՛n 0Waqw9E?הu@潴 ׳7Aut<>sf*M1/vtY%:n`ZdqN}5xTkVMG- _h1F׊yqtdѭ`&R/|Noem\^KUv{jsf.w`zg3KH#[%<867]zvSθTUI^HKFMwcJq=h.cᗣSQˁpPWL4:v"c0eY3ҝR~]]l!S[$KP5=7=Mai`X/̯(Z^hw.!ffJbk1z9{,& ِX٤4Юau-vg'_$ +#h6ח?07gL 4@ס1uvwz['щmyG]=u'#B 7GMZr8zZlso%I~_rVgLs3䖼\KX{Wi ݹ=[ka-s=K3U顟x.Nl`:e{{iYi3@umiV"^x-adKrY.cBi3^'L:TȽvlLN^2ߜoCm:*5zJꪳ%bMD:1]x]yU$@ ۀz,}^G6KI$Nakx2nm\عZœ/7i&}[MtW eIݓ 'y}ْͤv>˝aDoѵrbh&n>fszfY7wZt߂bHv;:.pgҋn<6o6rŃY-'%Uꔳ6=(LvSVLJX@ae,Go[<ݖ19{)I9UTP\&by`j?>á,hIwU@K,;XpDzǝ^en ~ڛE^I/9or^g^Bڴv Fm@}3%}>?r,btQH )ji7=-o@j@P`0=:9(Fw3i1KI$J r/qwU #%6Ͳw*.G~KHtu]pޒ3M\0{棷[=Vp|NۖĐhؘ?W(>}]nUA5xÎU*͛hnNt,FVk-fA[GH}-΁TŭG9*{\\z۠$E267 ]Q:0瓦XnR'V{Ը\'jcKwvi"M2.ӂYVKL7oo(w7ﬥo#If붗'K9WzSH[[ҷoW]Kh=tCGPp~~5L/UdObYUtUBurJx;TKn V6֌]ݔbRD]gtnB[]hmǜlZtnb{\`&ef_>䅾gg?)@ahwY {$++00} Ks^6:Kغj1GGw=y;:Fr; 29J>3âo< AX57Xb.cܝߢ׏DM1T?G+B-`d$=v) U0l|Iӧ]KҢ ,]0}=@zeGKر[/sR*74Dnd 0ݽvw2,rdp6,G ~Cԟ"rF&$Q;IVLW rCƦwn)9  E ؏3D-bf!2@$RM@Xo/~h!Ts*kq+O@pNNN<7 0 HwXGt ${$ DЬQtlF0Nf@%#9a:M_VU6ZLAG  R7ddRXEZR0yض;<3WhW]Zlo-ݾrWp^گt@mrm~UY2cWeUfy]8Y--/,#^UdsgVق&r{Uu&}`J\'}ݵ=$.t;NAmǩ)ng KT0oH5a: mdnHڻFa~3_:qmhNo|]}G z y&L?tsŬO$O3: MBGjsr_ ӹ [{5vw빟Fxc.9H 뒇޼ySG;ϸCїFw,vŧMưnw1f(7v<މ00=VtWɼcᗛC_EqMoo}0]sk2{akP#c%a:vSܹFm88!L}my;{ 7ˏ;/9SIv u{H];73TNT@@ν4qtKm7N/Jh撹\Ei_Y-/}،'Gֵܼ^uk t7L?^y#)G^a{E `ҴfG@`GcvU"LoZw^]2u.mu]6)yz|?qgQ鯽Oo7pEMgow?x exG)lT# MOqoAT] -k2e3e3w@eo7vx3NLw9Կ{dn_6Z  6725B}@U5t^N/RR-?OeMϹӋMz|;E"vL_sӽ2ˀdns; p"wz1ub5[77]&H?|h%\B%!rL8\Vz8vٷGXj;s[jnō2#-!N@v{ ^d.yR8~Tb%V|?c^BaG`W%VNhn%"N?/_q )r ᕖ6=8韩\/N]}ξkx/.azU S{DҚtvk!# vh6"ۯ?G[9;~ Y`Uh?`;hCvoܣ0ũE8w`4?vx4: O9ih* Ma[mat4Xa{CF=n0 Lo6jzndċV7{k=%RG<%LoC谉?:]^5DOIMO T8ڷU0.wcj|nren}N~pκ/Uur0bOJ|N:MÜR UbEBft_OPŒ QF|rox1a {6G:/^n0+0q.~v]n F M h:7dGHݝ($w%t s3[&hA@`PDR7M\"uO$qvmM>hW%trEJ.]0.( @6F^7ZULj0=L(MazO#Mo w^\_Å @ϫ{7[hzp|wxqgkFaz{^©2T{N6-1dR\:L0@)=L_Fltndw%i3#777DN6_ֆVGsS @`NU?>vTWx<BvBbV/( X´;7]raMaܿV:FwiT8b+  7^zƋ4C7}fm3w)#p3L)n9u$7d?. WwuϤf_2g> U-hwI_!K n3[NWMz㾎V6A_'@I/sY=Gum$X@zOs,"960'1i%0Ɯg_\ly ӯ6ԥ/wn;ީH;ݾ㓦(!w|%|];U?s ]^eN ֶP[QR4~{&cxM{{TvÐ+!vhw8QjF)0wtWrGUbc7M ֫HtzGBM~g%Sy=Go-m=y;U_ņi;-0vT~gmm ݨvsa&zOP5F}7 W'4Rv;@a=LC~'EhulFGӣ7\ׅUE}@ý4ՙ\^Śk.! ѡG.U.vKnkk|-9##Cq7 W9\3,sj-4'Et!L:D^Uh@ G KI%`RcާB9}, ;@٪bA1r޸ikDoZn%r,O9,ɚ"6Jm+L :px4[7Nwə'tG ? 6$9[$ͱE4Rgn ; wG8ܔ9]z Ti!6J WxQT߽w_~H͜RI^\beRdW'[rrrRUH7"4{Kܿ!7U0$pi7tp۶֍dy =hQVօI£S[xv;XtƋA>yDzRˏ5_`W9J>x K6zDdyf?E^&z}7&ݭDwyV+^aVaWWVuhkU/L9XIw4'옒a"q9HGKs0ݛ"_ o޼C˥^:\0P>h'L<gYRStVN9) FS}lٳS@}>azHMr7F^'È\ @~=f.qq+=/4lp|Ԇz(0Ncf5 6'ǩMׯ[f]{ںS^ Xʌ]`QɄ:e%7uzPЫ]@XqW)G/- /L/YZNLznu/y^2Ҹ{a!z +XfG=+Wz&wӸ鞓CM@!ӇPJSq %]#Hfbaz/7yRz8?Z+Xg쳯`_~ Mן|OR*@@ L LϠS'-lx$FP@F֫p! 0! M'DOQ@` 98ے.t!U!*HE ڏ J~-sX~M -gSCVU-n:O8Lo4.l/A!t~= (Oʒ0q栚6"XoEb2􅭥[y5.ds{wOãF79pɑ$M;vzM?(ە-'z% #{" RvNo &O(/>ӛ9ัYJ{" uOf]rGD_TL9N^aR!%>ژ}KEaf> OoKYzt2j4]k^.!=4r7%YфR!@ [  '00=q=hi}^  %0I/r~H2Mo+2%enzV` eҋWP16W.Z{\m.q5<(f_D3gzsOl4unS"L <άT@p^3]իGxdaӣc[ Y0 v #DIk^]mtosV3z&)5w%t~~[5)-At[/Av4a-KW9Qm 6])(3laz>Y%r7|RF m!90|! ݴߘ9Gg{{ VsJLw7ff^U&0 gUZfƚL8;Ks {Kk,%nZ%r-vފVϪ7לt;mmG;gNT04T.''a'm̡]pnT~t ] o~K89]u/" Lih%Ugo9{=S?}){/ML"r]. B*R.!] ϰhz9)[Lo(iR&@^CM?TVe}6fC B`ޣ-@X@`dÇ|l{KFnͅ 1DBf I#@+*ʵO? ޻J.0̼Ls2tkݬjbE%Ow^m mhOw{)-+ _IE;uuDHo됛 Hw2s,'Ϟ}Lt`- n=0̽x-L'+?gYѲxei8ϾRG aQv6:aącW%ěh;g$pF[FĖWmU!gc}~O} ?( FNmQ?x :{MgnzEX@N8uC\4Oͱ ӏ%v `?r"}7L]=:BCI J~}hJnJ<\60V7s$|OUztv㳰$:jik#+te /%_2ҠY|K6L u.-O_êUzBy;OxY-kSs2LkWM]I$tn-/oH҆F}nSXOԫ:X8E_mXW?9azG@V_r y+Mw3֛XRKnk]iqÒ|2>FBqùZخD.Y}xtM|UQtN="ToIU4n+1-Ovݬ P$pWhˤ*l7QBcpu+vN,qm9m{QܙYuOFݐ@DosMl?k`-LztL[C%L0;x)*Цn7+:_nU{+j浉-M-U y;6[~آ.-V!Lo*-lWj 4ӧn@87]lu{ -95`$@ $ rƓǏ:kyo S3FfOYeny-u=lB갣VօIx  pDr?ƍ[q4Glͥo0}=0%%" 3饐     '@^\Pd"{y!  0s%8se4P@u-jKH^fS*@`QM'L_T)eՙ 9 @ t&Ժ@@ L'   PazqMB@@ L   PazqMB@@ L   PazqMB@@ L_gTRVwѬMth. @0}Hx9  }  (hzBy,ڙ-nDnM9F= LS0}F HlX4\vy{wܘhJI#/@@ *@N@^q@,@Ƨp(l@ ϭEOLF/i(  (P%6S<vJ].& gԘTBvbr8ݼjzZO/qmՆ  P%@N@`#s ]0M@B"B  N0  @q5 B@@0>  @q+{ڍ'Ew_Eqŧ@SXOYյnw^m mhOw4۲F;Zᰕuu$]bRT @`"'''Wǖ$u4i9s0eEF^ZQ@ZZ"LF`0]ɸ,U_1 zә>^B@@.@>  3 LaR*Fk$qmM23C! e دcky3seQR[@R0}H].X@pF n ӗ | { @ } %I>).P&dΓ7'3a2   LGau}w"U  09"u.`Cވ;}+ d gBlnUr5O97;  oJ-NIק7%є%Օ  'x@ iee)5}te#=  @@(N0&@  @@(N0&@ yvy!  0J~rƓǏkybТV}nV+nyB[7ړe`RaG .NKL֔@`'''Wǖ$n=0}]e'LE  =LgF@aۘ" LN0}rMF@@/@>6   L\Q`@@ ϿW>L@@`n_jw .ζn2  лazd  @W?-ݡw}X7aZ,@J L/E(ϰ:qEnypNK⭪u-C͍1ö"# 42U xn[U2@W0_Or {;>PP@a요 5hw!9  L0'-`3>t-;]p'O(< % aX76bq+D8F\M9l@+@>߶f   LlQp@@ Ϸm  d't@@`+*ʵO? ޻^݋:P#VݬG.*)xںў,nlN4zVօIt >  X\6n"[+ͭ`-L'+gYѲd@V03Lp2.(h՗xZ{ejJ0T@@`hGj  0+Y5'A@a<ڑZ  J0}VIe@@!@>v   LUsR@@yϣ  g՜T@@`hGj  0+Y5'A@a<ڑZ  J0}VIe@@!@>v   LUsR@@yϣEJ΋B@%z嗮\ܺZ޽V(mվi7-E%D޶֍dYXb=Fʺ:wt.XF* Pɉa`-%bz9/ az!-b/Qvu&L~R@`qLzY\   F@@`qkr*  PazmD @@'@&   F@@`qkeVgٱO$eK+  pD#$䕟g88+YEgk#@(R0fP A`%c@XaBj;N^gZj u*so>wGgVd  p\1t;nQr8}+UDd)l;i'̳o FJ@N0}8[r.H = LD;ֽ(  p(@NX;2"$t g" .@;)'0м81^vŵ"B@`a kEVםN:j溽l73Dޱ< ;:  "g"^Bj/dްwbIVfJ7 /ij @  P0!@@^`%pWxQ-]~z-^\\ _ jU ]TRy-u=Y]tzzz=h VօItT"S0qؒĞ­ϳLVp,+Z6Қ  `2cNee?Df({  0u G@a *%&\oٝZ%?[->ݪ?在D{@^{a$iAPwItJDgZ۽rA|ǧ)% d't TJmhr<27C7 #,G0}9mMMrR(tb/VJ͙az,Y! @;vn5+Sٵ&ەDIޛ&ޒ൨těA4Ae@8ar1KI%n7G wtb{fH P$C`/P&T&6S\ԛ~1(# 0u $fymRۀlED}mS2  A_ww&phW &JR[t,nyN2CP$C@ S0=d3pJޒ0 xSUw,u9֖km+FDvgi  L?:D@@ )@NA@@8⚄!  @NoϿ@%®\^Z޽Wݩ͑V}nVuJsmɲdÎ [YZ'N%`F@'''Wǖ$J{4mEo}0}ēfRԞtlt$gkR{@@`f3kP3Da  0S6,ժpgXZRp ⣹Đ7F6T"%  LV{QږF5vl, Q[`ZL,|6$6"  S LbQ71hX@  L/(dݯ[ as@9 Ϲu-SV*R4}m|@@`rn|sK6;k%\foube$X?~ߢ  #@>+$NًUSJSM·M݋a!Y=eA@-X @@Ӈ%g@@Z c5@@Xɜ+n==va+B$IDU 899: lܸE>$q40En0~eEF^ZQ@ZZ"LF`0]ɸ,U_1 zә>^B@@.@>  3 LaR@;U٦ rzәD@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@Xb! ,W0}mO@@ L/i(  rӗ@@X+/tڍ'Ew_Eՠ`SXOhE.*)xںU=y8 /svTso .L@P@ aΧ aH8ЙQ-X9}/t?,A`#0#,A1?YӗQG@@^zǞRI6  MMW2t Vu{뵼{qq1fV}nVEE%oB['^r~ [Yv$=Gt>3[!S= dO(7q>99:̭O}p 'xi>pq@,,&/@^~19ESi)ʙ LT dr(@l8^Jkʓ+@+ta`1 4‹>*@NO2~vv`;J݊ípe g@_۰N9ןr\vmW^G,Re` @Lz靔 G L z k9DoZ$@h1߬@@`qkr*  PazmD @@'@&   Fø.߂u"#@^N[PV@nƲ9 o(K4}rw~3lQ^Nq  Lg l t|kM(tm#MC@`hpg؜ o6K 7m9{F`wΉm.lUWv-=UЬB 0KY6+B^iatftn['wmݪyٺ.n0&'BV$) 0;5)Bn|;n֢.^g{ӳZ   L_HCSM)"i ZNE9v).g&n IJ@`~kSj 4ԧaYE| Ֆ2lVrНhC--%HgBJ@`Kn}96Z솹n*^2/+m474 J4O=ދi'މT{+IYuF wcm@`y wS3YR @gA@@ @@{%;(AGw/$@v+8x H Q^݋v`-վi7vQIy~~~۶֭ON leBu$Lj1ilh'-ɜxz9/ az;jA0ęfK6-P>S}d̅0}L@4ZU= GDXm =ߧRNt LǺc ->V"F.@~& `-,)a8 ^Ό n>N8atc#](,p!@`m%0=bz{?y-A'@&t{ ˹n-R`{qEB LQ"M)}K@nHCK  '^}sgK- [lU@@(c   WHG8}]rl@:0"%Ll@D郰i_]tnW+  w3څ2   p @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @N@@@8⚄!  @>RX1R   @Ytq{?   % 4ӏ7<-; F@ XKWxQXP]~z- IŻzJv9!ONNd  @vtYa,*[7L;'m©k oA ڄ7*`7IN]azm^hV0 a: [q~vv6ok'0ݢ ;a~.szpY%VN  P@0]" =2ܒ-mnnzndU '|@Z 4 k7Sui튽$iȸgHzt*A+p!^:^LI S7db,tB+;="-V̙d  c ˰qs%0LB[w#O#yK{[U2s&  R" %EzQh#F򎷂I=FNa䭑ۈ! T WmLģ7ƘVv0"u807 莸GҸAC@H Kp0l.nپ>a3aM{SA.QߏΚ0%|R[H  s*L?LjrSw[TM 4u导X~/Pw=~Hn  = K)1Mܓ&7Gn޼honheC  M >|(wTd[qGoԛ:6M/1"ǼLt&7m_# uL:ZߙۻKGeҋ>m&-FQ}8)@@n[XI[=}pnz_ELz>$k> G=XjVA@'0TĦ96hnw3}i3~vCct[^7ei1]/K@XJ+n$|1\S0   W•>  ')L '2&S _*pr)I&E@@47]r9bX5Q^FaΒoT*7"1 LN 5LWQ۽8(⢜Y-L/v@0v  0Pa@ŝ\2]ȅ%C1r i J Cϳ8sѥ.v\rG@c %zvg2T6ӳH  LdQht [&L/jƼ[u(.U`]@@~N/^   pm sCƣT"  0? ; P  %37& -f (( 0 ?NRίL($C pڵD$@P&u-LU@@C`l2hJK[ 3 eG ;.Ft9s  P/@To*Ș̌Wanh&nVm2LI@b3ty}rTR SVdww9B…9:KN @]`K8^q .iȴ}]._gkXAeokXXMU_fv$]m7hviE"`1zx0î7 D`Z9;}Noq79U)WNO/6wmI/za @fes@H/Ysݱb@Ŧp-PIT N-{ MTk0(MO? (,[T- @) x1z^/cSytnmWmѦ%/@ jct)[jҋ xuk=F!-5Aj6(qC4ہ_*R" Dcssȝ1w82\2\ ӕnhX &('㹕ͫQ?]ffB2@`U1z87}8# O`uqq1ZQ#@@&-h# S =B@@H&zMt4lC=ㆄ'''}'9n{G&}c>? :)Dn\0KhQulo$oyN)ehc#[0#BV#W}?ҸO}=2qoZ_|fzˍy.g=['' $W7#*خxsrk}ۍuW\WUK]Xɟ c9M{aasz|7iU3~chM&ZF?^X5IENDB``!Tqtb|wn@S(dxڭY]hW>gvfvc(hMSuI)(-qA}>HAhZ!>T--MQRB닆svv2;k˝{o9{f zW S~_T ]}tjs&& PWѪür *0LJg}${] bv"[dO=Q3Q"zL_8$|LhIc'wZS=BSXDLOQ5X%WUCt 06Bʙٖ G gԀL֌X |֫T616-Žs^ؽLX?兜freQ_,k#2?qR^rM;D_ϐKq`.a?ĺH3&X2.^xjLG]4u10ˎ1Ap?YJc81qeGRfw5&Y'2[G]N1[Kp#Y30;h-Yv$5314l)]W]4 ba0b fva6sHPj-gvVcձ,Zκձg$ۼYF)+]hg-d6uW!6݃,-mSJ!j*Lj*lGy$ ?<z&L80.ږKӱd:[ oVtvrŴ*]sRVNѶZL "oiӴ1' ]j^g/lU aKjinߙ%%k`N|m\ s" V!eſү_ͲZ s=ڃej#b=֍XVc(T+H8;/VR\#wt2 [Cw$I1~By_b}:J#BZS]dk89hΓ^giy{*ܸZ}ӄEʷ.!J["{f$xSXWӉM%xv4<Mx4uXA\3g]dok0U-J^ؐs \>kA?΅( G\k 䎝ޮ8˴xd}*خwI:mĨrKj{ %w¸cdGÛlQq"+M2 GPh%6Iwzu2EʼȺlAu}+rȉd)YEm SJ(Qo G<"8r^+(É:r›W̹|=1ݹ-yxW9k[G>ۮǧ8טbM$/n"y^Y߳,|DNg(?;+ m16WQy,xu4ǘy\Nje}Xv"PzTV9g!SYYUOa"x `cG9ETdKPㆮ1adzourVda "{DyK  _Toc66267053{DyK  _Toc66267053{DyK  _Toc66267054{DyK  _Toc66267054{DyK  _Toc66267055{DyK  _Toc66267055{DyK  _Toc66267056{DyK  _Toc66267056{DyK  _Toc66267057{DyK  _Toc66267057{DyK  _Toc66267058{DyK  _Toc66267058{DyK  _Toc66267059{DyK  _Toc66267059{DyK  _Toc66267060{DyK  _Toc66267060{DyK  _Toc66267061{DyK  _Toc66267061{DyK  _Toc66267062{DyK  _Toc66267062{DyK  _Toc66267063{DyK  _Toc66267063{DyK  _Toc66267064{DyK  _Toc66267064{DyK  _Toc66267065{DyK  _Toc66267065{DyK  _Toc66267066{DyK  _Toc66267066{DyK  _Toc66267067{DyK  _Toc66267067{DyK  _Toc66267068{DyK  _Toc66267068{DyK  _Toc66267069{DyK  _Toc66267069{DyK  _Toc66267070{DyK  _Toc66267070{DyK  _Toc66267071{DyK  _Toc66267071{DyK  _Toc66267072{DyK  _Toc66267072{DyK  _Toc66267073{DyK  _Toc66267073{DyK  _Toc66267074{DyK  _Toc66267074{DyK  _Toc66267075{DyK  _Toc66267075{DyK  _Toc66267076{DyK  _Toc66267076{DyK  _Toc66267077{DyK  _Toc66267077{DyK  _Toc66267078{DyK  _Toc66267078{DyK  _Toc66267079{DyK  _Toc66267079{DyK  _Toc66267080{DyK  _Toc66267080{DyK  _Toc66267081{DyK  _Toc66267081{DyK  _Toc66267082{DyK  _Toc66267082{DyK  _Toc66267083{DyK  _Toc66267083{DyK  _Toc66267085{DyK  _Toc66267085{DyK  _Toc66267086{DyK  _Toc66267086{DyK  _Toc66267087{DyK  _Toc66267087{DyK  _Toc66267088{DyK  _Toc66267088{DyK  _Toc66267089{DyK  _Toc66267089{DyK  _Toc66267090{DyK  _Toc66267090{DyK  _Toc66267091{DyK  _Toc66267091{DyK  _Toc66267092{DyK  _Toc66267092{DyK  _Toc66267093{DyK  _Toc66267093{DyK  _Toc66267094{DyK  _Toc66267094{DyK  _Toc66267095{DyK  _Toc66267095{DyK  _Toc66267096{DyK  _Toc66267096{DyK  _Toc66267097{DyK  _Toc66267097{DyK  _Toc66267098{DyK  _Toc66267098{DyK  _Toc66267099{DyK  _Toc66267099{DyK  _Toc66267100{DyK  _Toc66267100{DyK  _Toc66267101{DyK  _Toc66267101{DyK  _Toc66267102{DyK  _Toc66267102{DyK  _Toc66267103{DyK  _Toc66267103{DyK  _Toc66267104{DyK  _Toc66267104{DyK  _Toc66267105{DyK  _Toc66267105{DyK  _Toc66267106{DyK  _Toc66267106{DyK  _Toc66267107{DyK  _Toc66267107{DyK  _Toc66267108{DyK  _Toc66267108{DyK  _Toc66267109{DyK  _Toc66267109{DyK  _Toc66267110{DyK  _Toc66267110{DyK  _Toc66267111{DyK  _Toc66267111{DyK  _Toc66267112{DyK  _Toc66267112{DyK  _Toc66267113{DyK  _Toc66267113{DyK  _Toc66267114{DyK  _Toc66267114{DyK  _Toc66267115{DyK  _Toc66267115{DyK  _Toc66267116{DyK  _Toc66267116{DyK  _Toc66267117{DyK  _Toc66267117{DyK  _Toc66267118{DyK  _Toc66267118{DyK  _Toc66267119{DyK  _Toc66267119{DyK  _Toc66267120{DyK  _Toc66267120{DyK  _Toc66267121{DyK  _Toc66267121{DyK  _Toc66267122{DyK  _Toc66267122{DyK  _Toc66267123{DyK  _Toc66267123{DyK  _Toc66267124{DyK  _Toc66267124{DyK  _Toc66267125{DyK  _Toc66267125{DyK  _Toc66267126{DyK  _Toc66267126{DyK  _Toc66267127{DyK  _Toc66267127{DyK  _Toc66267128{DyK  _Toc66267128{DyK  _Toc66267129{DyK  _Toc66267129{DyK  _Toc66267130{DyK  _Toc66267130{DyK  _Toc66267131{DyK  _Toc66267131{DyK  _Toc66267132{DyK  _Toc66267132{DyK  _Toc66267133{DyK  _Toc66267133{DyK  _Toc66267134{DyK  _Toc66267134{DyK  _Toc66267135{DyK  _Toc66267135{DyK  _Toc66267136{DyK  _Toc66267136{DyK  _Toc66267137{DyK  _Toc66267137{DyK  _Toc66267138{DyK  _Toc66267138{DyK  _Toc66267139{DyK  _Toc66267139{DyK  _Toc66267140{DyK  _Toc66267140{DyK  _Toc66267141{DyK  _Toc66267141{DyK  _Toc66267142{DyK  _Toc66267142{DyK  _Toc66267143{DyK  _Toc66267143{DyK  _Toc66267145{DyK  _Toc66267145{DyK  _Toc66267146{DyK  _Toc66267146{DyK  _Toc66267147{DyK  _Toc66267147{DyK  _Toc66267148{DyK  _Toc66267148{DyK  _Toc66267149{DyK  _Toc66267149{DyK  _Toc66267150{DyK  _Toc66267150{DyK  _Toc66267151{DyK  _Toc66267151{DyK  _Toc66267152{DyK  _Toc66267152{DyK  _Toc66267153{DyK  _Toc66267153{DyK  _Toc66267154{DyK  _Toc66267154{DyK  _Toc66267155{DyK  _Toc66267155{DyK  _Toc66267156{DyK  _Toc66267156{DyK  _Toc66267157{DyK  _Toc66267157{DyK  _Toc66267158{DyK  _Toc66267158{DyK  _Toc66267159{DyK  _Toc66267159{DyK  _Toc66267160{DyK  _Toc66267160{DyK  _Toc66267161{DyK  _Toc66267161{DyK  _Toc66267162{DyK  _Toc66267162{DyK  _Toc66267163{DyK  _Toc66267163{DyK  _Toc66267164{DyK  _Toc66267164{DyK  _Toc66267165{DyK  _Toc66267165{DyK  _Toc66267166{DyK  _Toc66267166{DyK  _Toc66267167{DyK  _Toc66267167{DyK  _Toc66267168{DyK  _Toc66267168{DyK  _Toc66267169{DyK  _Toc66267169{DyK  _Toc66267170{DyK  _Toc66267170{DyK  _Toc66267171{DyK  _Toc66267171{DyK  _Toc66267172{DyK  _Toc66267172{DyK  _Toc66267173{DyK  _Toc66267173{DyK  _Toc66267174{DyK  _Toc66267174{DyK  _Toc66267175{DyK  _Toc66267175{DyK  _Toc66267176{DyK  _Toc66267176{DyK  _Toc66267177{DyK  _Toc66267177{DyK  _Toc66267178{DyK  _Toc66267178{DyK  _Toc66267179{DyK  _Toc66267179{DyK  _Toc66267180{DyK  _Toc66267180{DyK  _Toc66267181{DyK  _Toc66267181{DyK  _Toc66267182{DyK  _Toc66267182{DyK  _Toc66267183{DyK  _Toc66267183{DyK  _Toc66267184{DyK  _Toc66267184{DyK  _Toc66267185{DyK  _Toc66267185{DyK  _Toc66267186{DyK  _Toc66267186{DyK  _Toc66267187{DyK  _Toc66267187{DyK  _Toc66267188{DyK  _Toc66267188{DyK  _Toc66267189{DyK  _Toc66267189{DyK  _Toc66267190{DyK  _Toc66267190{DyK  _Toc66267191{DyK  _Toc66267191{DyK  _Toc66267192{DyK  _Toc66267192{DyK  _Toc66267193{DyK  _Toc66267193{DyK  _Toc66267194{DyK  _Toc66267194{DyK  _Toc66267195{DyK  _Toc66267195{DyK  _Toc66267196{DyK  _Toc66267196{DyK  _Toc66267197{DyK  _Toc66267197{DyK  _Toc66267198{DyK  _Toc66267198{DyK  _Toc66267199{DyK  _Toc66267199{DyK  _Toc66267200{DyK  _Toc66267200{DyK  _Toc66267201{DyK  _Toc66267201{DyK  _Toc66267202{DyK  _Toc66267202{DyK  _Toc66267203{DyK  _Toc66267203{DyK  _Toc66267204{DyK  _Toc66267204{DyK  _Toc66267205{DyK  _Toc66267205{DyK  _Toc66267206{DyK  _Toc66267206{DyK  _Toc66267207{DyK  _Toc66267207{DyK  _Toc66267208{DyK  _Toc66267208{DyK  _Toc66267209{DyK  _Toc66267209{DyK  _Toc66267210{DyK  _Toc66267210{DyK  _Toc66267211{DyK  _Toc66267211{DyK  _Toc66267212{DyK  _Toc66267212{DyK  _Toc66267213{DyK  _Toc66267213{DyK  _Toc66267214{DyK  _Toc66267214{DyK  _Toc66267215{DyK  _Toc66267215{DyK  _Toc66267216{DyK  _Toc66267216{DyK  _Toc66267217{DyK  _Toc66267217{DyK  _Toc66267218{DyK  _Toc66267218{DyK  _Toc66267219{DyK  _Toc66267219{DyK  _Toc66267220{DyK  _Toc66267220{DyK  _Toc66267221{DyK  _Toc66267221{DyK  _Toc66267222{DyK  _Toc66267222{DyK  _Toc66267223{DyK  _Toc66267223{DyK  _Toc66267224{DyK  _Toc66267224{DyK  _Toc66267225{DyK  _Toc66267225{DyK  _Toc66267226{DyK  _Toc66267226{DyK  _Toc66267227{DyK  _Toc66267227{DyK  _Toc66267228{DyK  _Toc66267228{DyK  _Toc66267229{DyK  _Toc66267229{DyK  _Toc66267230{DyK  _Toc66267230{DyK  _Toc66267231{DyK  _Toc66267231{DyK  _Toc66267232{DyK  _Toc66267232{DyK  _Toc66267233{DyK  _Toc66267233{DyK  _Toc66267234{DyK  _Toc66267234{DyK  _Toc66267235{DyK  _Toc66267235{DyK  _Toc66267236{DyK  _Toc66267236{DyK  _Toc66267237{DyK  _Toc66267237{DyK  _Toc66267238{DyK  _Toc66267238{DyK  _Toc66267239{DyK  _Toc66267239{DyK  _Toc66267240{DyK  _Toc66267240{DyK  _Toc66267241{DyK  _Toc66267241{DyK  _Toc66267242{DyK  _Toc66267242{DyK  _Toc66267243{DyK  _Toc66267243Dd <-eIH  c $fV@$Ab|KA٤@4n|KA٤@4PNG  IHDR5؂ZsBIT3 sRGBIDATx^ ]Wu&%r*HtUUʍRPUp9@#=;5%B`c)nL`m$)3 Cnɯ+|Um7UUnJ4]4Zu޷{u=s|GYk5o㭛 ¥ 9R\/9JJySoSۧQZQ-uͯRWz \M_ '³s޹bCg:?R&P,2rKq=⥋K KByPE Wt.§_Y]Dn!K;.yW=}#I9?/xd#$'q)]@k<7(;t~]:'D, E"r94 IKm ;_-Y-Dț?yF?K87߆*csP+as3ι-%mp9gԙU=XXOtI̽$y1 ^s7![\̫2ʯ[%t.ʰ:󃇏w\Q3oY+rne^4,}LyIt%q=5I3RzZ`p̳fc)ZQ%Wv"~d!>?K]tn9Bm??m\X"W=93oŎ-ѽ# PcV3Y"1rbɪEJ ' H98AFĝ,Rg'ŏ'@ ??o-?'wQ|Zz֯T-JNJaD-T 8I{E-79T̕SLlEA޷?MĻ!Ϸ%[:Xg3 Y۫I`wD65C/:tǖhכ^>< ?מ1~{cv&Ly؝D}z<^H(_lr4F[Ek$P|RZZfo/#=qT;nR?_ HocrTڝEA@<ި~r%\y9y>yO'm%Ѷ_@ؓWģ2EDK?_t+,%>M}q 3c_MR#El?\I4@b8G b ؞lb *~㿏"/ľq,vL>w ҈wbھ~19*.1w`ݝJ2Ae ḫ<GPD|eGr|W-JKYxi<}o8Khn6 3ơLɮWVЊԊ3-r2=#۴ax6aC6] ['Pˋω%NԦw 8~>K}Qڂ)(N|kq8쌎dwuaB^BYzUg_-6|3fkEi 'DIjI&[1T Ih2G#4Y }9ΥDL0?]ξ+y&[c _9އjQw;bY&E/B5f6,F<]YU2nPȕh;:Qu!E(4': >Yy3*dX6C cud$}΍+'Sݹ?Qzˉ=JZd. h9ħ{';~,kN[yNs8@=|v@InpĖ(Y3" pffo1\D.ޅ9^RӳD%h%^ [ ع]żUﮞ;iY9甛 K7XgY ")d/WG+y>~Nm L,Ix=>6{|GCGɋ4N1RAƿ}4 S;?x9ώez53GߋHOLf7NMl÷'1IgM((XARmȈ=Ifwaԡm'+gz={x8< -A@Jx/-8p/>(N7r= "Òc|#w7A+‰E8#~oyq ]1Օlⷿ*ʣDY"qRr7y!/CoOp J~}VWě ݣ[BGiUAG>XxDD#AYu\9X9ʻ$CD`~f6##޹yeɳ7?l&xߞlx$ @ "?^}qeCOBNyW?5$z^b5&MykLbYF?Ra'=azޘ<~ &i(|lfuyN,8f\}vs`fܚ>Ybi{V}e(zwn܍#,%.]o/kȷNsOJ}*6-ϽIUl8ё2s(G)q]E%ɓ&hZ*}n7GO8yDϿ` @侵)Q`xsoE(6 s?Gȕjt?E.sHXy$?N+/SӴubJN% sscx6σ޸2K+?}'܃n*jrֹ܃~ ,P~&*=U}h {鑮>uPA*ߊo\[s3.uT0y ~E ?sϻXSlheUؽ"3<}k;xsWp.\)ɹST=yſ&[my3|}߃zusBc߃O,GO"k~3t}A`-sB1?^EO`<w si䞴o%Pm`s=/'isun{v#O8BGG6@[zIM!#Tɼkq5YȃW+U_1wrG޳ӷ+E7V y;˯hJ[ww:Y03XxȼEMK`dw?0}ho77~s:{:j9mG^Q~`(߿oCzhTuzYpc~Π}{y,ICO)߫'~wE ZE(fL? O#\UGic5h>K;`B ~hfz{ʢR@~ki/fG۫tp~5ovm \q=ϛGȳشxʓ6<}:k{9'zL}Q{o}޽O91I"ԆZ<ϳ9zYq~_V`NgخF~sA7y " ҁȹ?\#^Ϸuo"?"m3L2GiFO`(\gD/xx CsjYڏZﱒ9AR>uɭ7^eKA^ȹhIZ`9":X'aQW]bHyu`f`Nl{?xxw_hN(Ɛ6 Z>J/bߖ9$ ڂA3/r^'@ݽ:E$}D!Y#ϧPlB3? OO}G(칅dy"e%\W̟m˕5(`lSx'=[gJjo)&۾_\Z0>s(xOH|1xQ3%?{e/R~T8{z=ϝ7ż\ v}R&Ϛ0uS#~PSB\UT 7xOB8=ގ,0^=i=;3Y7/Dδ l_&5\ س2XDo}v@)Ƿ_0obmht X{2%=u,5#w5ʩϋyq 7?>znk+Y) +|V&XN%",ホxhϲ/÷+(8u|> ǰ2V&OaAmf<:!#d1Yf?-#BW)XyY;ҒYm hXs_PM/Y`{^Q8qŬ C{g& J%( @9>: s/+QLSنF ι  5\yA\>5''I,f45e ?gp4Vwz"a$ Pxrĭ-o_h X$24̎@!@ŀlpERU +zA E@!@W#>Ep0q.z9G_bJ_WP4~Ԯ֔>o蹝@(UC~_Czۀto"*]P=M2<{ X*`x́s>ѵ/߭L*3C9\s:_ꗞߠ_"J@/5uLRM{W(8q_c2O=NG=yA@MyE)W]M766 ௯0Zrޞfw }h?5Xd` 'n ?M[Y lnL^GdOفDг"2{GxME~ʼn\5`-s n?N{ .5׋`G_?;#(_ j>>w*'VPE>(T!8RuZClVe/Ckz s]`=ay^0+ȏxROC:Za'P:(yp߲/lo:9VxQ noŢ)6t!-;~ _%x!Қ{)o);OttOcYZ>ݤ"wa4~Sb_ソ!;&T>qIyC}J'qX}0 |W^ {&B][̾8+YD},UsBMs= %iXGG!~\:.NmYDEG܃Uw{?[!&FK m?]%"!GE ~ z{@3PX{w`I72#bdؑ)Y==3x.Y zO-ۗ917304?~8

|g+Y׷g * R-&oP<7W",q$?8GˊwJ'yѻ'֏G)OGq nJz=`_( ~GǏQ-{O`Kcjhr^#;W7w)|^{}g=k"`^޷<|,5  %+fPL}.q|o %E{=y#eE r #A6G=AV6i^2xS{ =NJg w"X3ȘL#|7w>HeNmO)9OUd|=xǂoٳ{<$Q]_?/H2Q=Jr=k4ye?Z'< +Rν{|t,ՓF-/'*裛Οz[KSU}%>X3wys 9~>?Yv"I>TC^/x;5?& {+X8߾i4\DU' P/\[_E~jI9e|=e3.fV@BDoo5u2|~V'X- ;9&^t(?Eds)mikNt%[N瓰:۸@T"U+x=2Xrk5"ki *ϮlDgt߽9(?N~2Gi pecv}6ɫVV0TF"0U)VC(ȈvJnfo$S=U}NM/r">, [>Q'>ޤLwZ|G;/^v4y\{]B?t}&oyA6{ Cxqv[#TV6Gv G3mJAc8ǂ̝Z\}PsipQNveGHKruO@h܏YK<}:+wX4'ʒ=Q|-r'  DoKՈE+ #ۡ8@t@(ҙkgN NkTr=iCZ?#77G \ҴkՏ+$㮢![&D"@ D 7 ?7b$D D"@@#یIF D"@@l0#`D"@ Di%KjݐC_\6#D"@ D`Q(1ُO%D"@ D ~Z2'7\l D"@XB[z=3-l6Sg* D"@HE@;gZ|z_Wߚ#w _׏EYl kR{R}R=mNT϶|X}"@ D>_G{5g8;ԡѿCIcзZW wFZ]nRnܲJ.SkvƎ;[pglň D"auk+̮Zw񩹗'z<ﭽ(K` _aȟ"ϽZ"mAW°z< D"@@Ɨmaczٮ , si;N\ۿPap@ǧ;PыV_*8qC~hslȡin4+GoR9I0ܛNѕt D"P6NZ,6oNf~:Sי~|=w^Mi* AOqsO +*ms?0nXE#VpyJ(EOn#0@`}!D"@@k5c=?Y}q'N s/!5ܕRHNѩoL*NHEؤ&¸9mř%ə?rAȫ|,ޑ D"@jU+q7~ʞ';~23j? I./>|Te$NOm;# J]QNronTAY"@  ѱ򪕻00fu;?>T'.cOm]3vM¿],JY ĩ\eoƿ˅] .`G% D"`#pl鎡6nmϝEZ )YzPo5Zm kj🊾Wda̼pq޴ӣZ4q(Y"@ y"pmc`lqN\W{ K`cc>mG&s8[:iz!PY/ D"@߆dɒd guk\~'l&Daj$*"@ DT|8'O{iw"{-kpmx>X' 242b́@^ N[rI D8WLI9=xX1U~m@?> Nd+D"@ D,09  D"@ kZu|/"@ D"@~|(%%ă:#@3l"@Z A  4ᛲnkNQl1qXeY`m/詓'ZiL(sB+˾"@ypcw>EGmXA~bw5(ku3Z@ۙ3`oYpյou5n "5v߶_P`D~GSYn|炕]=/q݅LN<%}k.Oq@Y"жp @=lGo4աql]|2"m7;zLomcEAh!'a?tSӧ*c~ʭ O՛qa O߼F`|\Ox2>N? Vu%ܹs?H꾭9Rc"@hRrXU:5"I_T(@_UnZWf|wȻ,Y'{E PHIyrϖAMøb[6dTC__S r9[yUꛣh Ս!zZmA,A-e6+W;!߶?wa.cwh@FY"Tkв!K%TjnXW~zVY\G͉ED#6@LG@hN!lՅ| KdA1%1i[6yY B'/jJ_z}S{$,Nw8I`F<4aZG/mGW@loe LJ!oN|HjD"Te4&j|Shw}? #t`\tedklQޫ"As!|V<&ЖATOeMU+yi.wsL[D(n$&kq֚ɲGt>~Cĵ8?~#,Åm?u="vù@J*eu"@@#P`xX89m~*E=2usˣ"650yճ?j&/r3hT #bp'A /\D;p8NUdD뱔Y>0`SڇHnj =rhESM/a;i'YMHY}1I6@8HlѵY;*8zDTi@|ܽ ;S. T S"@@mȢ; '_4"Qg^e{0 -RY+].ڰFe D S$Mhâˋ4PDO{CLJd{tկTo.|o%D[zq2|C'$ܧzkhYچNrL1rPQ8: i0l]Wvav= %Tg;4QˈIF9#7AEنd?jdd5\\?(H 3zeGSEDZdG}3m,@  D)Mav CN &Ţ#v ce^ Y5xϙ׍r䟅*q:brh #C>߳ʸ~Q~zLzu8f\ .ֈ[1:&rc!|:DP,ijR߿tprtDS\r}f/> O>%wjr?y D4q_ORqSBI#ՅT_l&DXϞv-abkJ<n=P4-$;hwj]IY*zd>|#/N*EOK';c?h@6,g`v_9bb]b+GH@V& 5`G5| DFr6'6v+R,|EgR!fUgNp@'I ,T[G7,T"Iq-D 5Y w)TgدlgcSV/[TGxւf@N6WYčw 8R慵K CC\P~$|0H"q#Yb%W,я^[5QU i)壤@G*GݼM? @c"@h|@Ł⫛Ds.NUz-WPO] pIVF<33c^e T ȪH޿CAN"ԲIAAMI9_,āX (\xS4K\/+PX.(ssYj]]hq4 +ԓ-{aW:QY!Tdb#gAbFfm2\nD*" eY .Gƿ9q[Kpʔډ.)"@@^SZ /ڋmu<_1c>O犼dЁQFmfe^e^ܢ& NJ}ˣE("$ܳw.j% + 1@8A(xK$:hCCk6O[DKXKy5UϷHBZv-R`# h' z6\6;R#D49DKƏ/18q%N7#OZFgfK`iEgϦ5= , ~!k4!"3Yhe$ \`•W[i.;{ȷ0y#DTD׀B DIX_>M%]S 5]QSIy5ؑs"@hLrXܘ#WD"@ DT>I D"@@s!P\\|["@ D"@ENwrIԧ|YՇ%B D" dy#mYmM,"v?4YZΆYj  D"@@#p)i@Fh6đ`v"@ m@Y{68:v6@_,qb"@ D,*x4ݬۀno[3t :%"D"@˩[j( jā6@CI!D"@@c"p[@S=9a %|\;dɒύ1\"@ D,.H33g꩸Vr;uZZy%@QA729˗}w<n"_/㧞|fiK\<Я $wzT D" o6̜9wܱ"٢gӡcC6@̥%|Y}p6@GJgY> 1ۜqlTfd3{eD"@@-Pz|lСS f4Ek EƱ;I ;IH Yo.4zz#V HIMM D('#?M}f/>'$,zo,jeI-՜JPvSdDBXEd vϦY=ܮj)HږkIp\D-VuSܽ3~D9)0o t5&FU1΃ͨʇٳPl$UFd1"@ D @XMJ@}|߼-:(ؚj:9:Q$UgR>۪( r3y ǖ,Z7i?' T'sd^,p/ܦd .D5)ҊpjEݑ*B\-ZA[*"۲.$H DɊqC]ه JTovm)sb>cCOUmq5`j[NdE[9sկpX*D"@@X4`Tڰ* ee<ĭTUwRzӪ]ҮتIxoƮ:D>\x!UDV@üErnB7tHt\3rLm Hpd*WX6{Td D";'d3A͋H֟ùOa*c&njɖ ٴXR>|Y%_q嫼ͧCa))0hsapl$١2al~½1\ e"@ D m{ˮGw5`nϢZ +6&|J6J D"ИwMiخܸ󊅯2t͕U1[2eϥpaFK0A$"@ /mOL:Vo%Jc_ D"@-lxy"Yh:ƶ}~A$÷kX D"@""Te6-\5A]DbD"@  Tb 0"@ D"| c#`"@ D"@$͑T=\\=H 6M Dh5P+XK^=R?ј+{[$D"@@DuG #GիG5:1sA}ԟBݐ[Cǰ-ZJD"` qfvse , Xm`lPRє(*eo(5Ua}42Nk=ёaScI"@hASᛀg3͟j[^w^IATLs'^ߦ,eazJ?NGyh3 (y$D4Pn:.SG  |[$fGm?|X#L=l'2jiUivE@ P0xCB9?` pi"0)_)9s$UqEɏ0oOZ'[ {yt*KXt)}EOVH'ڥB'g~2Z 8W>mrK#H/':3V%A-/xE 4ZGT!~x=8_WQ M?A~CT)N?W!?t$+R]?/Umǟ,\_XQ(tkai,\X)|m;0z¥&I&X#dU2 r# "@@C"P1C]:z@_ne{ S[?\( ߲l"|nX1[p:4da`ODB@2C şcgI,f5/_~'O@0Yx* WV Y5Lն4PTh~HsӅW ?/H#(r9:?=k@лptSG] 3ΩW( >`grΥG6:s g@/O= hR놡BWWp.>'dߏ݄nXl".4~AGl{dΈOo>.q $S \-Jur% vv%XYy(K,ͻ3^X[q墼/=K@6+_nzv6y8h`/Fǯ.EcG0J0쉁';:u~b`,~x||Ebj8W鍓, *xjy"@R(H%g JA@a"x^Z>v"!Tm2,]8>N^3vP-GC/ n^WtM\6߽yc&DDr:;c@n{/bK\ UP]/nG/lҁ 8nMoڃv:q(js;ڃTe aI.H"@j@ywrD⾤cwe%7ê4길*@-F 9q0vd{ ںkvM#v"Prx4þ\\"!_ @p}>W b?\MYy>GB<1t,'Mvsv<ҹtgŚ y PM?K} . %{'.ps 3UB%K ~ K8e/ a(ޣU*B;UX0rsX |dz1=onm5)@2j9][ D(@(~fɽ@%kCX4÷82((Je4Q/6`+`7wUaK1]uc]Έ o7GTBDKksl3d@Rwri<}#7)C/ n\sq:tˆAΙ?4Lr9 veT4DnmFe| D(_m)LԽeٷG/l _:V kP+](Y>%r>QC-s+ȏh D`}$"vK%22bnƎNѭ?%&Fmd!ekӷk 9=xyđN@dv=.*HG?gW 'OC:~6j[=H PNL~#S6Mm " qe(HQxA0Z:w;jzw;B#!)QoL+{p-@P+xGߤ[XzybBY2 ڿO$DdA@4eG4ޮ'$tD5߁UXK|#`^Pu T,fFv46%FXcJjǿ]0i?#9^g8 8Ar)Wl{%>Xxb9㘁Ų͟81=ɧ&*iM3$GC1,/Αj46"SSK==q='}C?1{kd[ #dҒ]WvA}Ko*Zqh9%:!DT@C>w^@HBz"Jk}*\ll[`;WCFt+)6lcG&hjJ؋ܫ-LLxy~.-C9Σ܍C7LYkʢ3WRY naYpU?:@ 톀N D, ,Y"@ DfG]U;F D"@D`ɢǁ!D"@ Dn46u-"D"@ m 6v"@ D0ۀW["@ D"Юxy]` D"@@ X5G&KO"@ D4|McC{qQbPk۠ vơn Ɍ7Q1DEVE÷˗gR#Dԙj}UY&eV\(4Y+-ߊMWS0<.vp^ A{hثǹj1 VvIiQ^DIEK+*D`5@MWS0 ;T+FŲ5-{.8jDT VJvۀR ­Th|0<!8vòQ$~EX~pCLn9WU=s ,ʵ@ 6`vDʘ\fTs+GeqRdJ !c23ʤXvc*qӠ-a"Y2B2MQXDU!@c"m 'O&j@t PdK>R?e@,:^XqЎd#fUa'(,sFURN9@FX,_-s7˻U%QW#heN{GS.>9@Rr(rbē?fF%K"a9G᭟Z:.,@2R|S'OϽ}/>/^Ed3ډ'&ʅz˝5me*v ELFŧpɴ3x`\rZFq*o(~ T $(v٥:PF&m<3XJ+YD4#?R \9}!M6 ɩSg#–zvnRBL=Pغ},T-L8Ue 8grk$ʑ^|H7-wR6R/ s;n#K4iJ7s.8VCdpQMcG7U@Ў QR KMcǏ;\1TܯY(gP˨'S&>cj*\<L:6cTDt*fzN;JO2" 5XyRIPJꪚ%04Q2ԹS6W wtt跰+?SM<„-(O}[l\b.:yj*k"c-''c-#uC Lk /'G8R&4PoE„kJFQJ_'b׷|bS% eR)XĿ_\-5=W\ZT=|tvv^?(`<ՄptĐP@87y(*W*:FBf$61n4q3%2b@%Ov#!Dpb,N%gY|WUWUI)#28#rIAP+d"N(.\nǝ r Ul d\n˥{@JvRPQ⫬^.>lsmDGhy5 G$- [;hȾb;! K r^*#'/E>(JabڕƜz;2KIZ u)I|$Tc);ڿFCN̒TOv3qYnm.|R9Lَ_ڭOTv;x="$YpȢ1Cb}pύH4S9{?m<LY]bDɑ/Zq'ڿF `F** P${.6f_oQDnKTW46;S?pW㓅 GjX ]F3UyEWpv]6{IYP^);yJs5rYp߫Ԫdc*.ZPY T`۬b0pC cq@ @P@qX$6dcB_\B"UYV[{/v+_ؿ9iDh78-/DR.մZWŲp8 ')5G*jFF>>$OcLc" eXF'su>r]Qn>Sيp>}R"R)ډe]xzM`%*(1ALl"ZgVٻckyˑ D  Ru2UBL2S "q`33}(2D0 S#"PdG oEMxib#;gΝHb-?+l#vfgI@:U2nQ<H'`U\ۯ #,o%F]v/ @!)2 m^sT>ө.0xE2OEBp9)SNL )S(V1^yɍ_gҏΊT3Z\eu  Drh{odQZf r-r0`O SPjGIOqgtgh @K -r9GRUi{,< jӂl ,=ޟ45`Zyd<=Pq}:CS!bEDvmt$& eTg%n)b5d=HM\(qcŌ WK;Nd"Ynf/Vc /Z6j 6o7 ȑ+ԳY&PFl/7K*)QUZmTVS#c\N ϝ;R* }9OI9rMpvd\hbYM0+Ը0;>5GC{<d+-&(v(iT 2+@ ieL W"ws'\5 `0 03kŌl•E9,J9#ZiJ}zZj=Y,IYwYV# 5#wL^^*-TB\yNwO{I@viɽd Λ}AJ]PY b LJE5{!P7a+*1LD @_3U>Yp9ю;H$UJ,}5A(]do)CWkeho~eQ^\š\ PmӵU)D1&G~L^Q6rF4. (JubI&~Z/ Jodj@.|Mr&]Lj0ѻyUuCE.We(e%ɸ`NM"?O㓋>$ɟ 5fa^NG/kg IF,fw=;ёAs.55;s7tG\[[ǽ$H#Ob"P7F÷mVMkr,YS݊TcjA(4Ykg4rc P)1LYdP K1 8d$w [E+ZV. Ԣp#f=)f ~ʩS8N?\m+{߽(x×_Ac=2|03|Nu*uRܞ{@l!u0`HgQWn!WŃ09\nا<ϊd}&-LڈEb2z8΂!Z8?;vڒQP %AXBV9Fm/+g@sۂ>. Wʪ1_:x;Ey_ (;"uMeE$DEB.XѐZ(#wG轀Bf@uRuZDʹO),o"w;y.!gV 6[E"zB炘&!!BtbfîU!c:;Ǣ_21e(\Gg1\@SPқm|Ð7(}ĸd% 2(W=CJ;rN0DSNP (/,sEgv$syÉ)sKI]y<p()6iK9Wp"6 !@ ~{a}V') @l#WI.+(e}?f6cxD;r`IǷ4v#W9<(2s(D.0^PZ䀂@{T@]B]0dLz N^ea, w8'C*vE?O@'2'n StPAPVѢ#`1ʐPSҺG/ VܡBߑs\~ {J3n ˛!@#w"{ y@2x>26f{֪|(KP=UGJuCeґBI7H KG'96(e۹9EeKd蠌.47PA[b~E@sLEΐ u!'jJ& bLѢ< ݸ;PƞUPLVydy$B7rŖG md7/6807 A@0<Գ_ō$Ws¹߸"O&?MU1V.CN Ȫ>#]iLlӻc۲!<$(ȏC [ב7Y+{E]^FPSR5|Y[ᵵA9VڲrEV ظV^ 0_OnGNdM 8c(HLX0uX{άsڞ@s \A؄xH$DJb& L|b.@ o'-քeIe.Y?zȤ}NSSf;?ϼ6yݱ߽=ZE ӯNO`߼i21;k4~=V^+ʱc [lg=?1fI{M?>3I|uo|vF>ætR {}mug%DE3$Ҏs%~NQ'e֯8t#mن;w2i1\e߇Q `@@zaα"=p-lIFږ*ޯo{p.d^oƹdo7wCb:0mW?vN!wm Pϱ;TD=aB;K:"&/)D\]ƿ=y69Jh6bGƉv2K`f d 68?gX HU+ h%ۃ? y)Nxup}Vf ( ^g46:4|Kⳑԝ}0wCFy$>0⳶8;(t?I [?U5?\X ]fg_/ZRJKJ%HC ÏxE2KypW1Cr4x+K^5+ߦ۾wS68 @ h^@0,Q,x#S t-woE#ƪcz]+CZؗ6}!yt?32T8/q+|n EmǸ~fT\%! rG]?NAVGDCJHF 84&Ƚ_Eb^6U#,IYV!6=7w[`I9uC8%{X$v(!?s󥆙$9nH&JF!Ѣp^s,V Wv|Sɤ:? .,'@q8՝2$LoYb*&8`dja]G 2hd|g $ȟ@ P0Wo=/|O}Ufk' p d_K>93s;O^߲u5o icOZBb~{}'xa½HHl6<`m7c~{08֬Y_GH[!&v _`֭[~jFAjm:~#: ]/ֿ+aik?~{~7+k~o X.v+gNݳaǯw;}jz6]ֽLdsy'njmW:qS'?P~nw_n-W+ nt^Zڞ#oG'~^A@عs't Ѡw}.|r$ƫ7:e e KWo_>{sȿŐCLOm޲&M+^9 ~¸z\U0U.X~/~웏-V{W$6KǨ{ԃ>~K_W2^O˗˔!7\dp#˅v7Ͼ+}E&UK1h[1}ww1 xÍ62 =CGbիv>>rHtbz|'`f; xvð#{;\\x=2x"`;$cz=)L:Ohfx<#}R$z8C3Nvmw߹7{oθ;ŠCKݥh2SIO`O|wj-<:.޵)ҽi+ivf8:1{vV kh_ dHpFҔ䐡 x \\JbUfgB֏&.>o< j~ܯb|j(diE,Y^^8Ր9SA G"~_CN#Zsg!rQ˘G B!kс&2RY#U&vQg{P5}q_GE ?Ri"q[!YHE2,!K9n וrֺIi$BeZ&uQeD Ȣl Ua#< `6={J^ۘ̓+ .yr`nG숀N=HHA:,DeYAD -@dkZFڪ#]N][VDM,b; & M@x @Y컋P.@eD"@ D2>#A(i @%#D"@ D wgbP}H"@ D_ۍPw`vƲK/oGс7XW#axV׭96/X1I`*5`[ UEX܀%"@ ,cw'"@ƻ֬ݍ"cc#4o6Qsx~x1mr /ˍC7v.Q%;)d܊Y|=ҡk YEx#5(9ANN-\I?s:7hs6t+}pdF>ZKސxm<r(]jVbkwm(4zƔ*X҃͠ea4{N~{֮BK D ?@~IYnP^Q^]< z[uh\J"P q%gB-u-q VS1)޷Ue:Sy3a}cM"@d$Z+*TJn&F96y7#Uί\X(&;MyrS¾5*(e.TdZcI0^Q\J"1ePgeϮGwED]'',-E&P^{벪X7g<EY0TM&./!xmFrq u&ȑ/.fXSWzຌ)qaoic!WIHFTFL@@絎oSA;Lrsenr[ܹ9P@ o[yqDKP^xU@&by3_ (*Gr:8G  mQXr@BoE2}2HGXQ^hw ooo1g:-Ĺ ボFr$ef±f<>e.B+2Ffa'q=U^>{J}u2<#=G o抣 F@^=0 ll CLT*R 8U#x4s?fxA 8L냇8rjԎ01ŋG>>_OY{q-99) RdQk߁}8ǯs+%qΕT=E!?"(=}A[r3f$!f :ȉ3KVu?x]V.ȘtA HyD7iC-7f6- 'Ү:?ʛ0-*MBHerhLq)+Q*r7(ڹ>KG>9֍FQy__xf>'&o+2Y*Smp4X60OOOw }+1adԢ pWTבn"<6."ˋg*â/Ꟃߋg+UC-AM2MpZP.rlՊ^hxz{r:jaNRnɘH-X6jHZ .օΗ>ջHM(~FQ\t)tGlGz +Pq% cߧ(zEwf*)0AC{$}9,2r8S5sxhˀߘl[WzifYED7j `%k""쥊@-)C޽ϹȾ>?);`X`ıPefj獂+SP {o5>M,[<ǿ5]w{=y NNOOldu===r"j%D; !tgdC'k| a@W@[r.#HP 93q@:2HvU@[o/s]q@ip|݁a=dz*.*pEcI.2&l]o*+[Lև6@GT n68^+upˆe:5DUƿ;W72&MÓG̃QtI(AhWDw =֯[o`YX>Wf^7?0y"*/ Lc5s-Y9`~eY]o"@@+#[.c r @]A34oh!Dz'6c}WhƉ-4e!Wxpl>^ɿͶvymGvgEȋyQ+-ahE3c]rĈ֮z_$m޲4R%}u9"d# 4g_)Lk"hT3VlG܋聽=}*ݍDQ(س mvvvJpeXBOVd,z)E >||"i3%C]ڮo\n-^b V3yPgi/VE"@D?#1ήNm7N-{qڻ[GzNx ۿnux l։&"wVERwȟT"K>gW'[,ޯ68O>R5ĺpʢH5XSU,2y]COY/̊KH)>T9wĸM&j`IZ{6U>GX,YO2.G;x4BYͲ['X䜠nw)4AArJ8w_rڕEr}ujgƳ 8900ĹNBˏ`&9ʗ ȷ'YYA>5K:zNsY 4Nj١!>V52a5OmaܱMb&"ԤqꯐٙYu`܌/RQ@x@cY#MX3Le"Ʊ>V3c˪̱h7p]g?Nx (nb"@?U̳-v/| ZE|6}'T2ΕSeӘu422Fv?c>r/L7XWv֑? ˻ԍOOէ.å4˯|,{25k~~Wf~<e׼Ɂ}(+~k_^’UjO&vIzC]$vt/>{yҟ>szzeŕ+P i}!xE+; 4 w]SI@ˮX:aB>LCm߾~Ê̥t>,ciF_"@\.2=PyRfaɠ?Qey}s O=xe4ԉ}~zh1{4뽿ۻ02u(oЍC$} 'ܣ/Crϖkw?^η#E/@ weW^y{ϢWW=3j8peΥKF  u=sfƾ÷귯>qb{R-}{}o_n AspݻwCWXB?CNVƊ~"***cF뎻0M\*,sf$|Fy[}j̓2w}ѹwv~~S~ ^xES06Tqh?_=K+”aͫQMY*BD6Ch..Xl\ϝ빪GPdxdQc$ }zpW fo'{1d?`V?n5KomqR={]T[k'q_ZN*M seORtgL=ubY gON.V7s{]S(2w W9 oɂ7Z*Qty$+݊#rHYçԍ,6~xԹufaIy"U{g?}f;ڼ4Y w"`#+vƌBw}W#7\BKn@ 6B,@THZ^?&DdGujjA589Z!"@@ eiP\]= D dc2BR޻ZvG%`hX<@2F [yf:OC1If 60rFh슃oۘ&n=Cn}^h5U"hg4w"@ D"*n۫hp9 {D"@ m#m2& D"@0*^ L D"@Xtj` Т. D"@ 0韢F D"@Fdj%"@ D"І*PJ"P"."@ DDVxA{D D"І06'v"@ DU.@ >d"@ D Uym(L2 D"@@#P.ǂ"@ DGV$D"@ ͈@ #\ЌA D"@ZFZ{|;"@ D"P@ #\@Y#D"@ #6""@ DFFD"@ D"6V"D"@ ͉@"ٜk"@ D"R* /n)ag D"@ZE(i!D"@ DU@r~Tg PKI ;C D"д0J?2N D"jwjR"@ D4-54-&d"@ D,Gʕ#D"@ ̓@ #\恅V'ϝ=W-E0gd&/F4gLBrj4F'M\^@N^#γtQyn#fy1_GܳBܛw=쁾50R#33TĤBʕ٥A 7r-i1:7|ӰkbE%|Wfj 174d6gNL{p DOO_1u3?NgOc6޶1{K%Q?<Yճgo_!*iK0K;@ `PߛY]/_weqG}'w=hjj!ckq,KbU(oO6,woofT}F6\D?Rgx0572:u8KZ炗a||~hyk&us, W, G"/C\TH,e⚫|R!Hy:jc%VНU"q r(,jp.@#m^>6>}#wg"O)( "xn䊬QH r]6 o@2uM[&k;w~c4 m!Cy ~>Y'lPh";3AY/M9c @^:/! V4*}9zSexhcUȑoSB@A,W2x:27KKK#H2: <&&[$M]QY]7 Ș]E2ű@^~B~<2`ozݑ|n8g`CO84 {@4m*hE⊈--|'`r?;\n(:ats D+ `(=aX/= N #'ԍ"gL):K p q L{v昿&5ss{/nfB0^ʳ2e*}0]˺G ޽*AenhbV֞"{-gP e̤ɪ̜"[94B\du8{ e-Õ+@w Jl(uDyTgtПY+/Ëm@eVt!Ij=NqF^w|G h:.^=3 ^9zḊoFI|f_]kk!TUer)4*"uyd ?Qg0O *v=^hDʪ3k%%R6xDɡM[>z;dnX 6HBVA̎.Xd)Ё&ˏwHX!s 6Mlvl3g콃C吨vnJήgCeҖA LO"kv:gVG*e\p8LX}e}{6R|uo1,![;+Wx^nV#a~Sx#pHurA .aG͹rc=01 eXgWeO=(%$y`'SW tW0; O\e#'e-e3Ky[{D=J9BwC);"Kđ͒/e#5Q¾:=+{E_ȄVgt R'W5eB9T,[l`"|کPhev =o0ٻL+g=z[޳}H,:QE x4̑&(٬>\,(2s 9}f6̖8|goщK$uV& 9z*#dϔcvEVk'm7B*38}#/vfghB#?4 KZ'RΌ͹V1dXBYуTCO&e&iȶhs6kc{q:<8-vxe]S#|HٵV,Yn ԧcءm ggi=^ąZl߼M[A[ hHap4E!B㡮t>YhaƭM[ݽXP/_?UK4H(śC/ v|dQAs &@ ͑IY@,QЉ.:+sԺt%0O > "BJx3p~\LdHY |K49Ds9d V~Zݷv›aA>|j0cN/ 4Q)HR^ggL@cٮ9dʻeIRO=а5hFi.Ȓ~ c+EY?{ΡrRJlMM:Էv˛Ŋ{n\fvFK'F;sIA蝮Ui#6%oz}ӽJG)XoSqfdu>xI>ؓzJK V><2! \^! 3!@a݃9--~n:x%MZ{; Pm)~@PDQ|P1ob>SrQjF)%W0kçN~$4r_Pat@Y'7He/{{8iOՎG}o"A^-qdL;]AvyL& ߛ#@9J;cSߧNepGHmeTt0"@/7y}fӟePC. @8&2楧3V%VЖz٥.*Ay| s"+U2m- ,vtNi0r?/YfYyFrk䷬[/7C#߈ˆX@|0VF=abah mZy|0IQ_3jH9`-xߘ1*hlS } 6KA?9R;ȉyGLnPTbS) LDGʹ )*X &d fx`Ly ˆۂ3ȡ^h$d0Gyf+?S?x}n91ȶ\F}VJ_thxTUPv w/| Z[6 |qvLv7=OlqiGCGV*m/3{x4qtvŕ+{lٟ}o߾}y[:|ݻw}e<rxg?VXZ9ٹ;~~WP~˖-׬Y??_wyû^ѵ;g}޼ hX_{Y/گkmS:|ͨ 4?~??q9ꢕ{~i0 V <$~c7(?CpNӛtUF.Dmo?0aMɡ<-=ڥKzܳ{__78O`[ڲtRiMDUAt9w$f Ƃ} <5q[Op2!2O#0] p0z;#P}Ksd:~wN/K!ḩw?[@BОdDگW^~7|THT(Y40eiP+Dwd(0 v'2wil>ZcT e:"1n.nYI8@Or)=D(7{lh3CDDJ-CV1CC\]Ydc{9R٠jRX6}et`)S[T㞕.G8f]Xɔ|qc;D@emHA~v "Vt"wl+4Y"@@c ;'Z;AU"q@Ǎ  DT: D"@ #P5ID"@ D#y4g?G"+x^X,&k(G*|ʹY dY"@@50M=[{&O6uG[R.}/M|ldÇ6@EhxgxZ=(`?0ؤʽ~[,ޚ0nĦm8x3qs1On D! ?w4]p.`On+WB04f:WԫSRu+~Syq.+}ſB.ȋZmY?7NoR>Kfra&+Wb7̡&c D! 3 ˧cd}duw~ЍsՐAb6]§Uwaw֕\;do|Rر& D@y?e0Ȣ̓@<螮wM_}V]sJֵLmlGՖ R'DVG |:姴ڍM ZύwdcѰU(axH:=GVmq}呈"fx?Db=jOɰGv~m#Ps E+f~\@- nw s &GhA B169k#}󨋒2?LfU)>&7Gyp|[|O1b2:!elETN`pǧl(QW#0>b8 :A8?/uUPU$j^'DF@=U׷T˗<k< V<'N8~b .8=kg6+:~=vWT_Ls={ Ev6"v|uV%:(?.x ڕE ÷ $̾> , \E_MQ_߁?,:\xQhWԴE33g6޺red2hb& '>,3g־gA`"VjXEQJ-m@ ߸"(jv0xJİ}R9AI˃N Uü ]BGm4dt2kwt-p}#rp? DIjAp<2~K1YM*=l׊cs?:\GiV2p}*pCiI(@re߁}89vܘ8μ~Fo_m l) JԦ,&*DIkkf(VES׮ju .&t=̈IG>>bTt\]M1uԵ.dq}q4-6?z+6*9( C6WNdOD)О'd\y|"l}]%.P 땱2Ƴރj=r)̼H M@Ȩge' XDn`#e]n13~uzv־y?0i'JPRwoU:fKx,P< EWz{p뫻$g޷g\N5ʃ#QcQ{k쑃.D?6 > :8+MpV;8olYiJa־k-i$j(v$b6@R{n3iZ.??dO|jڃUe( dkЄlyefgK֗c ̪c:Oiw(-VcAD6%)OLpdGA"@h \kE(tSIŁf4/7.W%m'5S(BOy}Ϫ#szeFё{#5uw0+ygZ](3rз~n#ǡ뇰Oxq^1=gn?=c5LJ$@<|^ ԔFEޮJ<wҴs9 56!Z7ïI`ԏF#N%"@h *["QE'J !߳w]Wd ?F  \*O|z@1^Ա-O?V2%` Uђe[P,;~kI³@\F~BzRN,EȊa|7p" [f{=e d/p_D$¬"Ȍ.p{82 vrmx2cpj Kp\$`7Ab1gI챖'B1u;KcPir'N ͎@nj. Y=OL,Vu.k}!uwh} &مat9x Q }W"8Νzpv$brZ|t >KOBO(ix{vףCP@*g?, yxI=x6~D = !7c2MA[?viߵC P<$mD M@>jM-y1/^F2X[5^ơ1Kalʹ;|z Ρ@=zwEyZI!)ʏ~fQAAsU0๲RU?ȡG[Pg4cqtPdK}s xF>6C$Z,BJ.Λϑ'8Rm:"B[ߪo)nEcb]sʌ*y2ԔY\k z;#ЬBބT>c}00NT6/PU$+m亦8}Ɣʉ9dh"DFBiBp7zlwf& _8S=i8kmE@v,@%/>+G^|xÇ?\ }o>"J3nMKvzu}MNזw//~7o M]wuͱuWoݺu ϟ6&6ܶ W8g~۷58?VmG&gϞ}߶(ZzkA?|r?s!f͚pO^Gs8.\w;P[UDU~zB?9}]wy][k?~=净xۼea_U=ǀ8+zԳ? 3vlj+޴╣o_ OS7,~S7ޖ܂'T8uw}|K_xgAƾ2x B%<[{n{Y^2$o'V'~g_[Z)2P@/_K+ppC*W^v;?qˇc޸A=~d<|w- "r266ߐ0ڋ;u"@( <祿*+޴,JYT Q١^3P?lDY=,o@Y}cF@@ȏ׌+h9_;nkrADYϊn7t! 'Âe^Xkb"@@{! ~ +hC{ƧpN?RXC.73I idZ~D"@ D4"6@##y"D"@ K"@ D"P?#-"@ D"Pc##j<$O D"@@/?b&0 `Q"@ D"PKn/l$EԲM D"@@&#ٿhRO&vX"@ DZ"zMh*w0|:ԲM D"@@&a'a8H8"D"@ DdK 2:AZ D"@Ȅ@iVԀ@&vX"@ DZ"P-e/H"@ DL*q"D"@ D*o|X}"@ Dhj"D"@ D4o<"@ DZE$w"@ D"@Fod"@ DZE4 D"@  @ #\ЀM D"@ZE'D"@hhޒ "@ D"*?hv"@ D454BC%<МMnֲOEbQ aNwD"@2"P/р X}\ۄgmzRewT@Yg`+D"2I@Ǝ"@ DE @xҼs"@ D"2Phv"@ De? 812Î"@ D45545.d"@ D$H$| D"@h.jpV7."@ D$hI)"@ D"Ќ*ۯhF3 D"@h%j` P+ B D"0E!" D"@@+!P{Jh._P"@ D!P.pflhɒ%K M@[x1Y Ӆ+@"Dhdjhn7"@@ [Lw"@5pZ"@ D ?^PsB D"@@pR|&`pб" D"@ZDZӅ[xpٵDV}{;{M#ŠD"P+U @@lgw"@ D" $ A:L6 D"@@;#P@;}otaIlh%"@ ͅ@ v6o#DV}ˏ;Hh haj_&Eiϣ}G=/ZeDvG @#"@ DFF D"@FmxzLn!"D"@!$trE*FV}б" D=`=ǝ&DuU:cɞ"@#u"@ D@rA D"@#uap#y!D"@@!05fUӅ+E@"@Al"@"÷ ШKh}hշD\!Cj kH"@ DP~gZVf9,ŚL+jMt#;5D D- 6@ﶇ}1`b 5qy D"@@"g ;mn7B!y4 4)$Zo" D"P I`ׯl"@F!$"@ D"<0nH!JLEj# # 9,d4$gҐ )Er;rFqlnQϩ"{H]6nv~u'={ί턊/^9-(Ox(>Ek''a7 _=H⟝2쉠Ajes;&P Ķ(T 3ddBL0 !PnZHeV а<Od1Gǖ?9XNA8ajQ_ ܐkO/ .@X^.,a P>3I.q@׵44`U"LpcfEEeA(ش}i򇓛r݋պrk䤻 d`G `H` 1-xA1k"G9EXx !Efj| Ksur2v׵yghb` Hq' e02CɎCëjdQAg\Y=uG7ۀbpQwi{E7A &AZu#[)t߳Q%D%S]0uE uANKf윚]WZeBO4 n0s?סУ$8l 꿶݆= qS\)p JD+F" #c dW5Y5>=9`g'8_E8YPr7 8AR і:m љ3hQx9Q (A2:RB2((EFȈ@Jו] _W}{i<]A¶Ck2"b2 SCk Woےhk< 59򱑉'd Y}ywM kޫC~~K(sx CZпzxoy*b[x5#& w!uA#v=+zZж8gqƢ~,VNdzȖ E_`xN;¢61׭G:gGf#;L^Mu(j٫sE;\ΑHQ@˜,=ϙ!"j0 \Gd#kȼ'<[sb[:7L>oCEyV` Z*ԓ}&^ָݺ"̤=0Sa`T,Rhd_@"Š]#JV} b𼞙6BW^eKEPnj‹"Ti?5;H/Vq`L^]"H D!fU/6f 5s@+xOڇ>77vu#ku vcJ}vl7|oZO<ڳG縳D`Xg"MV@ J;LPq2$y0P. f||K@Ǽ0/m[Kye g]Fq_!J#aSbs{{*NZwω_Ĺe F3[!DJ^jgM$^!o#uH]?A '7q4>ۣ={@3^/ZBd ^ O__ fM@Q)I|q*^T S^D~>k$cG`aၾ"k]x_u{P #$S,,ӷu2fU ;_uKvkoDGGG忢zd׶oCwE6Gv;=Jc`I.CG)4&OdǾfyKe*;`e\#W4NF`A@ӷNjfZ̪oFQFx+6l rw_lyĀX N; .hf QC{>yvO>u0z49ƞQ8p;Qnl3?`lk :dnݐ TX"Bzd ߲kp+Q&h*jkhj/j4l;Yg?{I zvR%$eun;;Jaٻ%.WeǪv0;>qqZYkJ,Qi(#;M{Vae+Zt/b op#&7^zȢc7:Tن^ 򿢊{?,"P *~ւldZT_zl(z@ nߟw"4÷UT>'|[Ws*urQ#@>JH$GHq2$h PZB[?};j]tڙfy*?W8遌ώ>iY7m܄(7~*i?vtHֽY6*{ UgE"ȂRKb-5<->}6n7%^ g"2dx㍪ j0mm۷#tN?Q7)j]Zl8؝DD>}9MmշL4ecUboˆxM {#m.;_瞧ΎN#B|RE7\J#5m # Z`pӷ,_FBR2qh~n@w]x+{wL'F.\iɮ"gIU<",$Xf5(9cl@M .0 F*ík5{pCJ]lQ>}M |?X˫(~ 6YdYxYo~o "/Rn0`(*)"|.֨6U2]ձw-^ *w"޴:y v»]ǿ5Θ\ \zVSI"%Ro 3 # ;4d4%|ؚԪoQ91㿟xWbOomRa!`Ժa. 6|h\DW _XMDh@Dv,>|.4 $*Ccd1 /H;{`Ͼ>AL(+~E#r^)$#lP-|l-`-&"op21u5l9 A, BF0F-]mtf06b/EeѠo݆)T;Ym`6 &Mn@$ӷĠ)zJ#J@jew#DmBOƷ)* "*FkEF}i.h"DQӷQF45-lAO[FZe$"PG#Eǯ!P5䰐&C&mtI COab)*-6 U#yhhA, .\^X[_3֘V=E%PE[*7+` 7(I|6X7UOQi(QivfG74X"#0QTf(Z U%{0@@3 o3RCHQiah-&(T5#A9ht:EOrkuBU;lIm`톾Ӆg0dFC܍6"OYeBռcGFs\h,m(妡zJ# y#DP" .,"0j*]#BS@Qiaj.&-\["# "@ D"F0F-]7톜&D"@#m' .vDЪ$Ihehe߈hhշ(D` G0I"@ D4:4?"@ D"#fӐV}M3Td"@ y#@ވ6=y:"@ZZ-3 D0P DЪ-Nh-hdo D"@@"P@ D"@@!@ v83 D"@<hGA`p-F]^ƔzԢg hae׈ D`q``qg뭃*ُv-{V-YKtI"@Fws"@ D6D6tv"@ D}`}Ǟ='D"@hChAg D"@Fws"@ D6D6tv"@ D}`}Ǟ='D"@hChAg D"@Fws"@ D6D6tv"@ D}`}Ǟ='D"@hChAg D"@Fws6>r D"P#mGrm70 D"М0МF D"@@E0PlD D"@Fsܪ:`m"@ DfEfjbj. FChdh!oDLЪ "@#"@ D"F0FͮF`;w\òGƈ D(00]GoRqC^wQPx'ߴqq+SӧP>ғ: %aۿoWw~nTM{6]49D"@#u|[taK/Z  Ȳ\ ^;dcg_ZhևhZ]j"ʨ/>7ZHRKΡ J懀8 ." DDF/X4 l֎{}CsssNx&7ݶIw=[w9,[n9pa'+\9YЗ?kw[7Uؘ~$} kS`|Jh{yI:@}dA,(TMnzܷSF 27{Z'N Yc>TB#Yc2ߏO)NV}= y+$_ߪeEV#M7dͰp݀v.sIo{HƷ YG6TjZ<@n+"K,@\/-l}C]D2{ٳV]BguސC;9q0:hsk'"}C?shKcG`=? BuR_r.vE'nEkk D#AIBx.Wi;25縂p"qJ419iP|׾g\!t /oG1F>TA :NO1i`j]cj9?9}3bl;FGHB>l-|p~I_HS/Y=Cf+^wC+oSZL>"@@ @ T˰?h,z9p݀&lW:n๗ě}a峳ȱ+QF6gTMkIvoo=[}i y|";\kEnZ?BAc߷ew=:#F\|68Gv:؍,xRFGqϘ-CWԁ8l,6 sS&~+JB#΢D"PMrqӅkž(op읢r"w-\k=uYR{$i{y(1O;(Eev-~J{\Baxc `0Ұ <&Q C6(`֬C$0S'X7L!/%@[e\P)G DB歶M 6](J>ЙӤ{qw^zL,HY"Cg& 8+g,yQW׭]~K5PCߕyvjϟ`>]2yc#L%Ѝ;? R'f:Fg)|.`} 2Ig֨YXy#ߗo58.Cm5hi4*V-Hb/.#?+!Ef/o(!\ lIM0?K|}0 "78AcC_e^gwm, tcZp ?/W* OX69477rL5fO$tc9K?.+>pBlNpzG: Gu,#ҖE%e*" " KF5M۶foh&o+'콛ؖ`(x(o3#]|ٽ'}{X-,zp_Nt$>L[odBINVw"/SBD@D@#` 6olފˠLJvO_:.wp"`[m3 $HXﮊ|Hv lۨTUF"" " "*1MB ߿*J@j"4~WqD@D h@נcWh^e%^W" "z4zu&EXů2T/S#VdbNE:ɬ̯ԤMD@D@D@#j" EUYRQ=7sw<7{';?3eEw&ݽeAOMMdI IW yj7O1+Qڒu]QaMp;w8nE2j7Lg}%z`]ԻE.;{yαcH7{o=QK;y4?!џvn'tw;U4$,c>J)" "<4<+Ro/=_VHyr9PA&lZǻp 3oh3Mr'ߚ0^ >?-5ө" " "F@#jKGƙS gn0?`Mc"wntouqm;WcYo sG]݆/]$yv`r88~jOa3΢)1}.L"Hӓ HI7|&dit6o߇vn7;V)&@ |?s81"7]Hi©O \qE/, {k{'w`Z)Y'R{njGY[:ՉЫ$=trDgZ29",%@}8 οzBV]C>3lhIDAT0O %Cj8qrr}prbu"45+c d䂉0II.;; {ϮO/Zrm5~]Njs=d\/q g#-xR՝Ŀ1>@6Aj3pS_~?8==̅ksap Y'YnѴd ) ƗX4*}yÅqc"tpC}nb.cf@]os{#)X.KοK6c`DZᜁ\GHqz;>`Dy̛yu޶c <8o(U{յzxq:-QG{bvv|H{(e-#>FW_*%#%C^|Dig,o80O!kvUM6[ذ=5Wk!{o(WoGbT_=E.p6pg ^p^g" "2MTO`q:GLJyt]OޣfMt ʨ;+_w%C){}8S]}kFn 9 [D۫Ϣ҈44Uu|e}699M‹m]kx+ ϯ ^ haVLQSSDx3=G"9=na|yYyio}ĹBcWvm%$8'2܉x"m8@BOd@זmad1$3>38~&,1)oDóYe6c"&^[" " eh@Md 0ux}6ϛX "̯|t cxʽ5oW5jg-'bV_ߏ_ 2r./}/f#>7pQHLo&f jhZ~[lw&N`=4 ?#K`_Źt 81?Szl[x)kwI/-|鼦+K6MD@D@A@#2=\98mO"1zޛǢ:50}?_s>? ՁgS,-am/yݕ4ǟ;(hanq:+6[S^2+Ҹ-O|PB>'}n%˪2w[pL7K̯~|ڹAgΑDR#BG tp?>Grߜ!_k'>Eu?љEzƖJ&\e[pa"|lapRJrQ?s~{og~p. ~f7=19"(|Bb qK31[F:;Hw ӗOܺ[ϓ4)V4\u- LA)CN֞sޫ/1Ih4FxbDۖόVz<ۊ>XxYV"WbL" "(hY%#^VF" "h`T " " " " Y h +)@@#++.…+FD@D@D@D`JJʡpJh)(XQթˆ@: @|ExpLTU"um{+8V.bTK@#ՒkPjLOKgJuI0+BQ*hŠVeޓRRW~" " " " "4,5,5q'" " " " H@#_YRRW~" " " " "4,5,5q'" " " " H@#_YיӯLO2eA ߚnnn ՝D@D@D@F?o _uݦMa}hsN:FH]'|@\ϪLO#s黗8Se'" " I@#Y/ҪJ{׿ŋ'=qR\i/^?vgKI;;u66i՝g<ݐfPv" " "PEh]ֶ-{>ׯT{ql|o; e Oǃ^,Ee{kn Ҍ4@>b ??Ad9~Q۟0>)5NvMqtn|M7?lj9 A:dNwTaG_*4-ZىE iP. iOoÓ^fxB UDFE@D@D`%JM%[lCXgNM¯O뼎]wuE/r-?[ne=\#v/?5H7IOzѣ#a+'_MoOxz"KC_"*s8eFG_n}Ͻ{<t#%>u+gg}>L?zn! %X.;I.O.fϞu?}sxȑ?L8t',RLL j~9zD@D@D`5n gӽoYAGKM*"?gggvl4|ogtFgٹ3o?_8ŷ0`O 91z·RbqWo9"?1'/P2M'ko~ $)`L2'B,Y)ϑo!_ ~E>L}Y’4}x.t6<.4&!Lhza}|m" " "Jcߖm&ۖόV񽚻\*{C mKq|`W' !oj|vI{C/V&-0n=!ـ~#rbN:+&k:|"G5HƟawwO{'bT)'&' 8%@8ߓύG[ عl2cBL| tκdLHCNiGD@D@V-F ZUH~eg>@;N 3~c8ۮhOLX# .wֱ3}~^GG`[OW\iC닙FcJQ}nx8?=WP&'@Fa*]9<p3>*K(dq4OĴwba itHD@D@VXzJE%k؇}R[g`n>.AƏ>HO:A-\`tښ|,Mg _u&t[Tj{ucϸ_˒%9+PڴzNTD@DIhI*Bjԇ@ԏ˙3gww~E̴Ή"?g f~}vKgɂ}P氷T`zFcT7] {vR~T?A~F%0%t?6PPZbT>_6VnOrnIi*c"-# %H@#+VWqܚɗ'Y3e;}OdQ;qD 浏܇dHfkq3py~%%鉐lHCz;6bl܊o{aɾ6M`![onj+T+@ё`),1Di%lt~% +l%%6&)=8@ELBǰD@D@D`uWz z{0==Lr1w ph 3yYBv?7/Ǿwlݕ8em[O軩}fxv Iɾs跠?/Z. N3`ǰ د">J7aɑH4ge]ofOAj0^VUX՜zNLީDk&" " "Lpƙ:f J*@TҥBDgoR=xZrwKta,P7Ղt" " +@ֿ{VnPD@D@D@D@V4Xի-+Շ@@TXk+YT$#i$" " " "  #`h>h:F" " " " "0hZ #i$" " " "  #`h>h:F" " " " "0hZ #i$" " " "  #`h>h:F" " " " "0hZ #i$" " " "  #`h>h:F" " " " "0hZ #i$" " " "  #`h>h:F" " " " "0hZ #i$" " " "  #`h>h:F" " " " "0hZ #i$" " " "  #`h>h:F" " " " "0hZ #i$" " " "  #`h>h:F" " " " "0hZ #i$" " " "  #`h>h:F"#0TvsCn~~~*~}zU4'_A[_/GNDW}6Z?W"l3\pGږ\ijp&^BTN~Ǔm2>s^м)["keeO`.[*)" @ %AK`\ȷG6umf{uzS-LJ?zd9ws_RRM=y[*Fvi/J)@u#9e<>{tߐ|2|%&" =.]Noμ9#?5l~抔9#??ŋtl*Ucbr|mBW?;QD)KZ6G΂RdSigԋ{c;?3ҐOWwzYio믯沈LyK ‘Z_fZl(K|#%v'=Q]L%AxK=,θ'ToK6ԿmgF^ ]+QK?vU(sUۯh#ojC}sL|ꖏnr#?2R:;=ݙ%!!9Wo>j4 /T(^ YN&R s:ݕENui^"f6Wwzwa̤}ǟ9^_Ĵt^[Նkj~06?*ɵZ_6}͚|}ቿyuAYXH}JHQ Se!-DB:럳ZT&!Mu"pJ&g&8Mo(n;~oG(2jdlum[=s,̹wW~sK:7f: } Ʊ~czώ4bRev|]JȨ]8{-L#:3uWujK, XEj% _W^"t}3s߃84$@^X﹛vmF>>R٢۹C,Θ XT6d2k%# қ6xlDگa 4i<  tSjKY|y}-p'Z&"!5 hO8"İcJSˉpĒ뿵>7|c]Msg9eqBN2_9_Yaٌ}62K`-mit^I`Prס?LB{ݳpVc}!N'dQC7;~?E/ )˖ 3._1,HbVD \?{ Hll޼44gvBk)_b|αgľ~r~`|mc8W1B%O0d|LLLPƽ+5I=WFt%k\[̾GyuJd\*<[ؾOƵlU}|4/0(,<}q޺ڮI @;~=g"= c9QnW}xUsr8:x9]AeAR)5RjtC+ꔖl/n B0azDO Ni*]"1F@#Uޖ$$l(p۳m'PfŮ c<Ο?@y135 czߞޟ&dxYؔQ:W(ǽ.b~{%{t\ዌWҹ߾_ɗsOfcWa|+lSowDe|0]lfT鰳]p3 q=8O2v3o]6YLqMeZ.‘L@(bmѣ|à%@(1s(-%5㸬?qda..;Ì.HJOh՝ H\{{]"9*ԎB++a;#i}[fUȫ8eb,a?Wj#\M/lb̥\IҮ_J2[e#O~\4IWw-3 _ko0RR I30|JƅH<8H\_7k!ިtDDP3 gsz/o‹sjG6{ф]#oԧGe@P;tٌ}pZƢMXnMKn=MpS{ܖ22vWN燳N9|[p!I$ɦf3[10bb\βS}9p$\Aowjet13?O(jmƞ z~ =eL-b>sFBMwrggqӘKtD| CX15=ddĄvv|Dp(amsTfDBkY<}b9'K{.^Ѽm Ȥv",F~t|sf_eH.(; )uSuK%4|/xR\#LU6vYYéɮ7MѺ"Ђ4Ђ&WBcK| _$юO,,>ax C ̢C͵'祉ݗei}e?XHJ|XmzͿ>=pzepG2. >;+oD`QHL?`}4Y"򐛕b<{l߰$QoEˬ`ɬ b؜߉kšMWAw- 1qNOv≱)m(6etANimytW6ujTW> ei!ʰ~Eb{k>2_« kXplļ9p-Wһ|\qnȤɻ\X/V>@bvv{I)K sᯅq#g0JJ k!޴tDD@#j";%qeI,H3ІoƱ۰<^O"/mSjrj"8LvDo>ɳnFolڮ|؋j4[-2q=e#-t ? ¸G uT*,l)23n ,1q?}K.2'p+-zEyna Bڬ(_**1?Y* ?[jdm4G GGu8酅Y};2lȡ`emmw!XS? WY8#I jBJGA|X:{:IK8r/uṏDYRە2~}ݹ)I)wm7-0v^vNK[D`JYk(%ֲW6]ʌ˺+<}T7JĹW83:i {/4Τ{b8'9l`s?6V|,3+ܴ|zM3mr)Fv߿_]}oc<_r 0IfL;*2} xVQ[4duW kJ]Vv"@ϑ`FMV" H鲤0YN)xC\r5Uc+~BǢZF\iYݻ 6'ī=Y$GD ؿ=vyo{{lȇSujq% kypOӿyo144ē7ݳg67nvC8a~O|W",%z?{??8_DڵkwKGG.%ryW͙+uYr/]ȵz++,jXO| 4~MOk[oώ_طo_hIf R9!I2~o{ozZ~ʶ+P&3鷾H^ʟa ɿUVO |l`o22Qd~6vn>e>=ˑ篶>FFF8b>Vӓso=:㝮k]ΝO>1ϭ WKqӵi>n9\{ɟ pǧ:eA? H?o[F8uw]lu]{8_cګj/w~wޚ{kgi҄-:E\[>9V[> w '+џVg=:}h3tzUO!i$x>kq-G cWE&^kQ.Hs\M?2#;wkdn؇~`0+}{Z5*ׅ0Wca/~scXa;vbǙ\8no~߾%rEr[l1zS ?3hʵva2]j6,u9' V[a+cH-|c4+VD`9eʊWr[_)Xmo|/_fAGk REbp3͝Ϫ#}Z_c{=VT$ji|`%Fgј|b\tc# >8W/ EJ9|%&(%9[սn-|h ڱUSq|4<K'_5KIOnMN|1#x!ZNܪM|Ks'MZ _̾5Kj_ng m&.n [lo{qIY)/x]'^kf(drEv$Dk<*RRXMhEQ@P~`?MJ,x& [IE1e0R^}iSu(q>1<7GIK! j"ЄF6+[u?g5!$+K|rG?wd]?Vp_ES{ru[[+:9u!7C&%# KZ@-*-Bu@  eA#8"b"86{4.Rmgh,z0G1_""-,h\:`wȮ{vR, JYWі,]ϜNb+fr0T "VEb^ =+KI@#KI[y@c 0w~7kR7VI_5ˊ %Jq1${! KY@4P;CI"@6,}4vsQ6KBy&4ț$B&)^j)T*&]*,"5XE4*[E *"UT*h@m@D@D@D@D@VVQE@D@D@D@D@#j" " " " "h`U*" " " " PUD@#UTڀ"XEFD@D@D@D@D`*lUD@D@D@D@46 " " " " FVQe" " " " "XE4*[E *"UT*h@m@D@D@D@D@VVQE@D@D@D@D@#j" " " " "h`U*" " " " PUD@#UV'0+SoYΟ;?oO>]_ɒ&" " "l4l5"}ď'}se&2>eS6"[s?wYf{F=gAuϮO=Swgύ=2??_@Ihfhڑn'`~ͽ7ڒY`:2צDtkp떭6l}scg|bӓ?~ocZ˟" " " L@#\{ҽB?}C_٩2wܱc7- s59trڿĮwwQޛ|pՆZ" " " M@#]?Ү>w{oo-]p;;~8khv+EaǞ>63;@tThBhJJ"V3t hZ%?(]{xK6[mC_ cO+ K"L ʦ_b>ND@D@D:Z!rYmk 1{3 tsnb[UXOﻹR{`l& 80`}{._<;;KXj%F*%+}/_K4$E|Y? F ؘ=̟_krdS[nBWT>WX3΁!t]T%' A!" " "  zP@`;XY.X+ߎ_Q~F H[9D, ^jmQD@D@V0UI``mo~3G}Sӓ;ܱk㮜IqKcc+ƭ1`קw Zuy@|@D@D@D4h’v 1<,JbxXO u-X o [7̫ 93̉,Bj;3&" " "4(k#ƾڻצ΢A}Q scR;Yǥ0Wh"Bvngױ\%" " "4 &b%'f.q/[omh #Ol};{F&1|2d~}81=^cC mEtnnn& :# .ċ,,e<dgm{|SW؋VztOăNc=9D>hh˷3_{~i޿;Q)ёTx=㤴S[7 h4scrȱNgDyQTM5 X ;xm[*t}09Cě fRD\5mNۯj/xqQϜ!M57\绋q AZ椳D@D@DBOSXH6oWac7 qxܛwvm|KY$c~K0n[+ED@D@VJ+~PY+ #" " " " B@sZԁFQ"D@D@D@D@DUhUjJz@h%BD@D@D@D@ZFZԁFQ"D@D@D@D@DUhUjJz@h%BD@D@D@D@ZFZԁFQ"D@D@D@D@DUhUjJz@h%BD@D@D@D@ZFZԁFQ"D@D@D@D@DUhUjJz@h%BD@D@D@D@ZFZԁFQ"D@D@D@D@DUhUjJz@h%BD@D@D@D@ZFZԁFQ"D@D@D@D@DUhUjJz@h%BD@D@D@D@ZFZԁFQ"D@D@D@D@DUhUjJz@h%BD@D@D@D@ZFZԁFQ"Zs^~eoD.Q`tűV)W39??7tz.ep~oרN_.ZmoHϗ{w3ɸj~$ʧm7He^JKy]7gcV",4,ؕ8IW'^Եi{lO>7:-[y/+(Wh;::j䙥^{7naxDOwkc=-]ws7^|buzKc#Ow/nrw@džFhU9F98&^~zҍ/0Ut87Q("`9C_:Cv:+ZlOι9}nO8[D9$ɹߔ&@F2Kg)甐0Mv\t/HI,7{})Z/ e9&|u zjY^IثA9H,ꚔP KMJM),ӳP/*@> &̗\,Χ/y _rï~BC H? E~ MUG^P^B [ImޓL/R78 5,n?_:P}|TXBu|+#/–7Bг 4d#k-ʮ c o`NזG)p`ĵHvassbsvw< %4vz7ia ]MƍxSt&חvRoMn e\`&#|8^iTa壃"137X7e|2'dž#KMJf {Yx?91zYV7[bn~D9{уKz c/l};G}A5fޘ&ş]|m5|uv\ȋS^~ʹBofLM1e|O$s.G8ΟhBbXJεlKg)Ew"D[ i6ΙI'J '2̔zL<[䣏2:pܘ[69I+? ~f!hHJO; F zh U}s~uA%/ӓ)5k)gޜv}6s"`NJ@JgQ^Ӯhî -dCXBcVdJ*V5r"hǮ8#[5<$$8 W\('rQp60]ֺLуѳk*lzRm Њ#_Z H *X3r ډe[[ǡhhmmK]a##TopKr(]Em67U]Tgo b yy2fZd=ێ=}f: agg񑓷S_{5vYs0fpҙʵrSRz,׊Jg ŽGݠ%nF24?EB )^%~I߶3U|{=#L 17Z^p1>s5\}=9PWq׎齈X\k$VuU -F߇\Y7qo]]N 3L;:a`ώtR[H1^:XOtr,nxsblz)3wEU V3ЅH DzWqfj<a>19 o+=}lӃ^N$ >;錧 ^O.ښ0oq/m.ǘ~~B\15Q`V]\X/(gFZ soK Wr8~, 5mn~_jPy ?hye-$ gY|^S/P[>Dc&rHH0̸ ~q a&V y}~O7_LX3leجZ]n1-ߑ90v,⑰"l1iv՟= nV6!]zYeRD,ReY2GXnJ %9)i-F }@0sXm'_*qiL\2y<ݝs]ز 5ܱm_>"z-wf=(c53-doޱ}zbbGg6'_\.|' ӏh?V/.J_G&^ 2i 6K o-螸,uhQ=/En [JEG. wa+__IWJ|#}\lrJ8๨Ӟ{E^y?4TJc\Xs}F;^׶?xc=b>4B=FsD,x*?fj0 3_u?MVTY*'$K4Spln?lAcq .rc73&~p3{K,Ƨ}C7oMb\V:Fˢ,pX>glvےKeĚČ(Un IqM%%5V8#+Ŧd|#Ż4\5$̯9US;a֕Ou Lg':$뙨2=+ rZ)udT_,;Y~SQn+Τ-_+aI%w&gb2SM'+0^1/-dfW)Hb/dzj\ߖlmL7kK;ZY^L~;i-7YYJ ME@#MURf  iQ}FV%Z>v/s7L Ya`o%j$!sCؼֹkߑ<ԫeC_=4=Ҳ2M?o=4]K0j<~g`6#Gh?:ڑC_븲OlF_zo=7 +dmn8D^o?Vƒ_c1ߺ箈u/]_h;~gGu}7]vsq?~W:~}]νS4CљKFO¯k~Sߢa >!;v&OViT|y+HA??8p'PPڱqH:g?'2lzztt~ߜ=aN/~۴:Ww4Vj+ oo{#RWrT,GsyyuHkpϭ# JMCݵsי9CY5 t.߿ٟ\;]Zxk_ݖi3D p^abm;oF8y$LfvNk?fCroM6c\Y+-[[|Q4Z8mi箝Sgt\q->w7_\(4}/(d[~׻oL9'nO\Wo\h.SO=OZ؞_q۶RsXv\צ@oxE}ν;y1\wլXشA<_Di c+ڣ*d-m"lc{fr.SuS58 edI0O㐳β:YQ.mwfJg0mLC<`c)]^qI_lx1ɴC=,D3[.$A7|gsJ)*+ZNE"/1)Ֆ3|gmD1}#Kp3S8&tz82B(;_))){ߋҥ)#⮲\lz&3UX.D6ol4 F̾W`ځ]2IYVD6>wMT%UBPz3S;Jw*u Q2Q:` נPZu ,Y+UʢV([+F˯U?2l9ԈwoB-Sդ(#6;FK,>IDrYCP]gU$P:UPI([aemxghBH2"4o\+aP@?:p*RRc?p0bW !Q/|]U@HV_! rZk'ij(P#J jDv+ISyBXw(.Y_gUKD@@h@UH,7n.f.efr+zwT]Q\sPE@2LHD@V'lJJm:4U YMU#RFZ@u#r-E@D@D@D@DXE4*[E *"UT*h@m@D@D@D@D@VVQE@D@D@D@D@#j" " " " "h`U*" " " " PUD@#UTڀ"XEFD@D@D@D@D`*lUD@D@D@D@46 " " " " FVQe" " " " "XE4*[E *"UT*h@m@D@D@D@D@VVQE@D@D@D@D@#j" " " " "h`U*" " " " P 077Qy3&>|Ɣ)Ο;?+|ڵX\kO*Wv\A/Os@?NKP/Mp2?ӯO74P8yM411#}ű4bIXA,c)luweLxW՘g$FC}<0xb >uز .^8==}]uw6̦ͽs6u&OGP/NvV}?}ˌZ^݉w-m6x^\k֬ᛟ~8Sٓƒ +KƳh?J=; 6Y2,l7OWtb46-} Wv4zg)*$UX*r 0kys{>'Ec|<$LMMMNNNuׇg)_pKu@-݂ ]Z ]fė6o[մ7͡ rkRxj[߬< KYNK>숿"MG]fYG8*@ZE%~r!=wl; o\s/Xڧo^7rXg>h[MH+s&96*qIrK@KW_xnݶuS?9캾kvs_~}zⶶ6RyMKYW_:'}&~ͩLyg̷ڎ'G2&{xH-?zx떭eƮ^ ͸Ѣ窲􊔹'u[F';A[.)R܋|W@V];OI/>3;Su\ˑIJzī)T&Ιק+T'6!4aH%p޵wŕg;ϭ$&zOM^b˾xH 2 g ZV ٛe}jW5kZ,W/zҨN~U({5-s6^,@iF86q븪|"Ԃb)\lKcC_"h9 q-BnH"0' >pQ0" "O=H! "|Ӝ?女ZAy HdD8b Bs9ȑ(OyI~\aqa-ύFd6Gsx^CC4W%5B]S@i3g< d70Z<=3RcsHHi׋ݟ %x7x=)㰗9 kYqE=~5I,+2%u9Yhh$3rt}HĨC6C+̹G8='~捙 ipd  U &*4)T~LZ̦ s hca a5㦼و%گWS, ڛܤb齴DaheL"^q[٬ʵ@}IfvmfI?}+2P "*#--r+W H>, w~aE{Kj|kߴ^j ?\ +5ޘRGxS ~{Zj=`Yk$ SN|Y|-`l+&bǎP:2_߱Y¢OTd΅v”n1 4)-*0yaygj6Szɱ;o-Z0 |Slp+{ue SŸ,}aI_ [Ъm8Rv[ D7k|!szԫӳ_eb=I;Q." :6 ,nc8m.G܌BUڂUUY%̢y6/heZ:;WQL|=wZF6,㶌e?rE= lF gJ7VZGJ :Y"PgeSؚ'D6e'sc'IQj [+mIP\G"=!ӻXfݕ-(bude mn\:0W7 l ?l}3d᪩S?/ykzxb%\U܇i桊?>B%p+BS&X[5,]-D䇅L^,>s~Ew|F=K%TE->yc[N˾m^>+[J3P~)f[n\[֫;KҼvo 疺7^`jqw W_{k=!-X(;F3o\~j?s21[~YJĵ(9v^{ =3+̊=}E*}c1V|mWuPͻ f!FC!u[U LbU21e6oV(][[I X!B)5B%}a}ig"P3˘I!{q^b4?;R_ˤ sogj. [ZٻY YGwK_MY/B{qݹ,4+FVphH (嬫ꕲԊھPk7BM1˫Cy{Zs-1FKwI 4B۷7'|n ]IH )1Q(ª#DncbU6qpeGbA-ZKەѕ12:h/ZW4H5Rn\O_X7 ޿QʒmL3|.jMƯua9Z(i$-h[Ȗ.:mLо1Z<y7,sPdl%ke11Jѯ+{j`%ջ[Eȳ-q~΍Pʅbusl< O{lR[7o~8E\FѺ17KYZ'->x7.%"iMBF̂h =Mjwtp;JLDJObRLiŢ73*#MBixwUy ,`oԩ[4Τ8%d޺ulL:F x!T1G0kuŠ>bTHzkԲ-~ͻAVtEab`4Ʒo?[^\\7Om :_-ZƎq _;_` !@i>c ]ѣH#dh|:77\MxѝjwKzWfG?RHUZkmE"h8RF%YDSk =6DȐ}'nxHaXZvLd=VƹX2$r0]T($LM__J~?/b!.|K(E8;;sn&bhGv~O/X֖JA0 uM[,҆#;x'Sic^.dү&$9"_p1 diJ* >]}cOB*5s_Vi4SD XE]oܾ&Y*-`A^eyˢXL .,׻.*Y2v XDEhXSE:S告&:B? VErQ:YF ]/KO@-=s(" EI%>zxHDeWUj%b|S[Ѩ6M|E> O.B"PTM@&ɱ# UJXc$j-[ j1hֺO_ɲk"  DVM v[D@D@D TnEb!7"3K1~J@^p tR agCu}oܸҌH n8  mDb}LĭR|EEe:U:#fSR݆%Xȹp׷xӧ2@Kk\C z b@Ęn*`~x0nMOoR:eHkx>)f72fR.SiI4'Z`ʐB.hfOV]zy+0֏!DF"ditJy#)^ReH(5PPϢqؚFVB%huq_^#)H4(k7.AJ- Rj Rflt\D@D@D` 5jXc/a"orJ=Ϝ~t  !6>Eե̱~2YQz%;k!TD{knDb?vRH@ Thds*5l 4+Ifw{EU " " " " "Xjmru@,}}t 3u@psZNi)," " " +DG/Zk$S DJI@@-6XYUEI$-XfhÒ" " " " "T0^+U/ύ HYc[Mk֬ᕽ嗢(" " " "Њ{^Eݿo_}6=׳ooRѿ`|.:/" " " "}y.Wn7\_i4EiC._^pYe7^&`Q.J D@D@D@D`}q\n_b1%Tz2b_]Ȯ_t 4tR@?n?&0eBSC+iܞOa.qҎ4fФ?j-urt|X r$1M4e!|nsYU)e1,ɪHW5k`.'T (P#e)g/Pq[1ݚmwq`¶w >*ʒe3ҋ2pq>|[ųk֯R[5+ؒ}2v\ W7m擟h@#LE<U.%%r7C}nZ@uկR[uUم:tlT(G[ 1l4{K~" " " "8{iPqÉ| ~~D>JmxPj߿mn~[ qALƺ4@{~2IǟZ96T/*}2FBXg\; F+$" " " " BA?jQ"y1&}S>[i&" " " "Ξ'?ʛK[ SKWNX"F- )YD@D@D@D@ bFMNXChh" " " " "PDV!*zKO*Fj_RErK-;hF Vf3ZVV_* +W/}g渒w¬"^OX)+z*F*JMB@3Ӵ/kVVHJ@˳Ri+?*yjxgbVo?~/'(/%#J[`_:P[HѢIJ H7 EW6aZ^s@v\uOOݑV$0¿sWUOx+a@c]dO-uќdsTK݇>ϊX'G?7ZSuKvbdO2Vo?nMzYjqiZe82զL5ڄ e(B\-V6VR@ %Ⱥ2UE͟ΝrcGOߐ;}W.pϓo4!2/{G 3("Z ?5~Zu]T:#!(,G.b<}\O/ߝs<2Xr'O )>^I=ݽ;>9X@3$h-?x lc:^rAon6 4TZl@2Uė }JKؠSUomU#-}b^U891vAޛzs}HlN2u41`uhJ9|H+bBb;%~zF.u7 1 f:{5Xt TNvKڍ$vNNNvw޹h Qґ't?<}9wɝ';5wM['zjqEྜྷdԾ3qineHHjc=݃^D_n-D.t$QC8TE3\_R\Ow%R/\EyT??6X;dz ]œmi3cʳ,c3m{0eM|?VCB ݿ,=)@,XC_'c~cY"pNܛ;rgn7 {;9>t''9nDb25wn~t G9UsOv |-G{}WϚ*?C=4CpX`>" ŕHmHG#G6K\~S5ԫ$dugW?WtNij"# 8;F$Dz8R9eK]u)+yiT(1*OC»S㯎V~3VMR2xh?⟲_6K`!}}01U0^Jrf)=0quu/"JŽS bs;?mc4aGs=wdL_0p5rAɧr5>dnC{yr~ '܇NϏtlh-2ѰKl񊫮-&@[ML ,5O]3r=evkyȞA-d=euogժx!S8rg'2g7q#Kv8V^ҺDک Zcd[]G>ҚSV,;vrg{Q6ӏw/\ozmYO>;2du,:$Em>@],")z9:FPӹB)ᄀgzz~|@L摞w? A^&ϩ{Ha˗FlO$˧/׹ g7['4RF3)QCZOA:r^ ;|" ;ϑ#ꋧMoΝ߼<-sP])n?JY+_pVZS@Jn?ićbqE7o# ԱD[Bŭ )¦hͻ#dp0#ֿX '+6EzEVb ݎ^Am8E=!l@zJgtQF-&zO)fw%hYkԿtu9azHQ ݗ }#O8=hʲ_P k sԅ^B4٪=9 s ĭy>@J3K ^J%MC]uTqJ}BOi뷺 1TIx>c&X &c[x~Қ{mg̷dU ,gaŦWUZ&OX#vʇ!Pz@cx,{wtѡvv3Cኜf0w3 `x$׎ ǂJ~.V*5Us-jro7JKEVJ,‰\'MEkU,"zV<(eE0R.Ś7FR2и]5|~^%T0R#geÃn~Y~X)5s`dÍ٧(;O|>7 2`w~P∿qU(Ym,x*#Q͹{|{8N8;\N"Rxڭ I}ZBTjG¨!;x$1.~""U 5꟞oJ?xT٦^ݾO^_=LɍL6Y-%| ;r)m(]/kRHij,&G3C#ϻb+^Ż#V3GhTJ){J/ʊn>@pG}a Pcܛ܎ iҧ_3zv/oYOw߷3ם;\d8Ig^-Y鹅Js9~ZUWR_uSNd6TpK YW*Oby9==;.?oJx ̾/ϯf ~O^AJj#+c,A&~ `zO3q'?)%9oa؋OGorY2VΆ=`ǝ`y$X@Z2W`%_("ò>,E`qvju+Ns0/:y>o>3s|?E`w'{At*@Oj9xafr#D>kN~}>3)߱?9q_V"ɰ_Zh?+q9WfO},%(TDxRo2hս,cz+AZ;|&|Pޢ>7`'gg{~,V(x 5f ]^uY2:sW3iΑm DF\؂.?Cmtw6?VUzj<PIeEeOvK2 dYa Rq>YoBwݻ_wКϯ()^C?UÇ"?[]~+zW"T3**Ir-gSa a Mޗ΀kzbJƱ"9:g{rٙg~3;<3c=w}6V77^_93:kt>qr 69]z#W c= "9ͱq~kTG~*G%QS;۸ɰsPMSZ\L=u;qmuUqt䯒[vneoy=+׮u;+Lq(!,68TzzִcP2}#OvIQ_mm㨏Eld 7dpa~ѻ l⦏IOC(yxkAO {Kes{\%6Uy|L?>q|Frx?zGg !zjs~ *՚>{goDEsSBQrwK إWWQGl-hr۰D]xlep1c3FixL=[Vv{[6moW MW1AaLJ1! ;>h/{-y|@8jk׿:}5UX63օ?_Y\\.oDǜ砎W:DAulq.oO}ƨx>"sX]0&$!71_~F^5tKqUOklB!!~޲[3L8l=~u\U}P+s13Z{rZ~vL]N$rhMIjq4]qr2ъ3sIȣ#x11w1 Otlj>J5_T{|>~T[?NȠG%|@?q8гG:J6~PHIT qDT>F;qy&Uz/UkFߪ#DͺD ݧBr&lXٹGGaoU[tlA>Y;ǥ}8T:eLKjTq_#,[j}9iDccQT>E"?J:G/{R}\{},doO("<j[ܴ-ss| Mڝ'mYۿ}%o}_Y*ff FŘcMZv|W'zZiZjK%LPj2k{sp oҿiOq477&CAt溱 U`/r.~\,3^J'_tFBc|>ϼt*]ɻ,GD@3Xya͑!w`@b_P;gUۿR^OÍ?x-v՘rg6W%?ݠLݼ}`uh: ~s~juӡ??.~!CYCi3nx&; Ϥ _^ANy$V/IIst);银\m!m)m'f68܈>5tZ3~cr*GVmkwP~gc\3 H'&"⨶Ry{DY{8[pvN_$z?zy 2wsaWdk..:; Q=.eP- cg~VOB )F*)[B~ewOʌ  6O6sg1x1ssU*R7;q鱿'| i:B*-{I=o.k x1գvK#2fMzxDlWkĉVx?j4'{HUFj2Eڞy泛2N\FWo76(}cJn=fFĘ`tENc{&1 WD5 ^Їy^jvKد= }>i{NXR Gcg}.Z1Xcsu\vj9bH`1l&*#^`6Z#µhT8E $ f-G(~4F|='<Ac1A;άQ r#Zzgd~nhLБ > FωCGG#Ӣ֮9+5xkU7ΠCԇ?h=G8[u >ATOW"h7t8^[Fήq% 3'  Ǣ0j`^y߾ +߾{4w~{vѵN?wybQFqJwĝ'h[Z]y sۏ$Dc [ R6H;S/Ew:Zsy'9_F  +M,i3o{ LS4 /28+nPD9ֶgw>ujPc7A@~6y#+#d4vFEVޯnlqfSdW >^ޠC[u` e0`lRd8'- ([E C%!oE*{VdVGmcF3;{ؓ#^؎ жldYsL𚬝X}rꅋG\z|0~mP'tFgo9 vmѱ'fwjıLER2$jlզϛpco|4FA3mI"@(Z""ۿNpd2+ugge}:1?Xb/:'nX?E s8^ѧol3OHY5+?kBŶ3kG*+1ڎil>{}FNIGl GX SH59Y^zr=g|d&p#G䟁ϟW޵w@8Kgr* D׸ yѼ27ϋrlRəp>&D QmYo:3 >fwD|H$=;uʆysE$&d?uIG5Q!kX,zf@dg}CX@WA+"ԭ5:d=|b?@n5Fj)1!@A$SO+Lv=g7ei[4v5}J؋E\M='KDy1 ȠsFOLu_e3ojdJQPudV8tb[ } f{6P3rƉ1PMi`חبnMs9}7([|Uӛ}|͎@!x\ymnA]gW݅x}ەR=~m}noqLEz #s4'#%lh3+qcuqtהY}F!lqPgB*OkHqDx$ rWz&sl=XԹ}} yxJeVzogdx?=N ¬;%&""8>Yt^ͮ]<ڡ<*@SGkuA{d?^ig M@ ]H c ]%=?pXJ;hDe78 +,_tY\q(0k}(=7)\gwC}񣷀[wYºc]h1v|HT7.8"ME،WvhgQtXo6mh {Q88*R-N gP*qú>z)X(x4ȌW.B="[IP=y˻J5(g ،*#(#wXh!F{ј͌ 6(|jm y2L2Z#G?F&8G bh.uW7 m}8dcMg!hP~1Ѥ㷀Eghv fzQ㕉+kqalgxZ#5b-WgkQ*'(;2i_R/S_zT΁+ߺxUaN.W^:m=w Zog,c\aVGD?hLjgqx Zc~xƤ85vn@<7D#CdX0.h @͇zYDמ;"i@1P~j @ck–M0mg4m[E?kXD|XUv3qخa >T' zx]S4a @g XJ e6? <?h{L?GyvV[ 1>5j@jWD|3ϋmѪ6e1p6edC m\b:}h=f~ZVmG7E;^?:7vF]11;:}35ݱQξxio&MN,?դr{_}خи+m+zt~oPD3uqzi ]c3vtGMcQvVg?o=A/+PZl}uHoV)Ko_"*׮<_kfJwZre-m{IT_&a独ɽ;+k9]/ZX@W1LjmdwYVKJcohV{cQ3V#O2sVI?h~CehuV^k1#p^0.+oݧ+8#kwGЊlxL f fO*av>ݗSm~~~~vPOCH.qXd4cw6R:~h?k|3Nvڑ^r46Opd|q=WVo8F}&ՕɫvwZӿNL3FGhw,cBuF`= xkVӤbd0~P{Iyg7$== a<Qa? ,gb{k}G`x_lv6]@hD~xB Vt[Br,=p3'd2p[\b,փh [e> 'x/)fj ߤ/w+] >ѓÍ0Ǘ%(Iz`J R+wMlOANNA56N#gN:uNsp<l36.( Ϳf}tihEkR>er&^ l5~G MoɑO}Vm# gqAA=f=fpb*̾(fHs5u1=֦#;C?Xsh D:{Bݼ`p' f_QP:v#\ 4W䯁@W:|'<!=j-baAK}@ t'|S/w˫W6`r`5ȧ~YLFD$6540:'M\k'#ݐ*2ǹ{&HEt8JOt35¬5<#7 z}!w'GyL<RG\cmiVZߨZ`gViٜ]o]}cymg3JDS$'gkNdOЖ6k15,}>7Ӣ]z)lNPb=}>FbsȠ:Jd&I4"-!8z.栽Td>lkZ9cfw:`Uϗs?'zZ [w5qLW5ǥ~ o5Ca>8ۖ?8SdRr6W8Yz&GŹV5("`hw>~ v ^ڤ? ::wT㔭N~c sx (f_q꟭//Pԉ'Sz @YOyɻ✲~|~zx 5Wԍ-:Q Ge|@Ǫ贏>rjIv3FxdxmC3 5+ʺb[q\rW}c7š @R*38}RG"hl;ID>µU5cyPiwϪ<쉖o#mHLϫl|<~?bh5mj7vP=\9 KZfCՙf(˰ 1yJ;_ű8}UQyԇG1!-5,@mǢA]ZB6]ū>wkW36UF>%ˇc'N"Gqoϧ)+@̳[iڵ}߼Wac۳cYie7,}8_v5 FERWQ2I.z\Xw=V߉Rja_ cʓ'L>r/>8=g|H.27&Foj%Gȿm$jO2㙌-6#@HKɘ㷌|fhL+WU)=cO8vVW1~dZjx:h,FQ?{\gEc3cT(Qj.G1ud̟yM5܌wJ{*k;ґ1:NMX4 DXۚ98k/"ͳae @%'+Xi_? o@4vV ۿ%<ѱgb{j^'"Cb@ @`oH@ E`Gs@ @S"P8x˹8x࠼)`] @ #?_-Gnm@k?pںU @_YN9# @`QD5v D_%ZU52(! X9_ąB`vh B@Էl5ڋ \!T^K[sLke@fZJ=+O>iR% @=P-4{&ܯgdU%l33+IRl&ݳA[ݸD. @K#PNhuZ=UWq~9ѣztkoEހ:Zo7|{_٨$ @X?yoUUn)e>#1J @x{#@ @-Ţ  @̗ @ ;|eԔZBK$K4,{Yt*8SdL@0`L[y}z.5 !=O(`?v pQn@s%O2c# l0ZL<ڥVN$,.N*ʅK#0{diMF}! ` 5B`D[f# LV?M~H @'LzM1h@ʷr^N6U*Up lp= i"Eǵ$ZYUiɧ]g8,ƺRzOv˪r kOtݮZb_wg..Zx-E|/pΟj <|(д]bv.~Mk L|-iKZSHgo}6E~coLVה3뱽B$3% @@ TLTwaիW=Ċd zyyn2UeZ+[/:S:B_h*t8WR/ۓEݷ_cosјݒ?T@o@a;Tw;S"[iHI!@#hriEח+_MW2^:ӊ*#B'BjBm1ȍ`"XįyyY>R~++J~z%[Ǯ]@v$0ҵq v*qwu׷z&Pn ssP 0EHR!7?nM+dgnܿEdOJt|Rsbp^ST//Wԑ' U5f/O?wٺ9T*mŵ;XWͺvM&s@vcKW_yө@~j4]@<HuŒ@X\vV2ۛFn!\`_9^O vO۹A5k3#`{Q@*Nu H @0  "P‚HQ9SA{% Y`02@|Л@@@<!ڥVL$<~}'b Yl Rq@`]F.hâ2I9/jӺ kՎP !yq!Lm@'w*-SdL@ xFzd@!@ )t, KK  @}K%sw]tMWR%"@ u$euPr- @O LZ\#r.}cf&!@>B@D h#5 ľ}eIJ&R_}ۊ0G@ &Ыwmj+wv/;v\xsɡ2(q+do{ƒEs\J[eWz L@b OuDٲ_3N:m9w~Qۼ+R3r!orW]vQf%s$.PQ@2jLT5t0=@]cc*U9SwR埵R&d"@Wgr^<ͺr*@ @o}{~US\#/E=/~ oXk֝BU7 '~e>g jΎ$2Jn&`@NwD~c~u&PIPcSq/,ox(0عsoDrl Gjׅ?WǍ>vt5uJE @`&jV׭JY6Dθ:(Ok?;W6+"jF†oWF(Q\@Bk0D?x`[)M%%H-x/עK)Sfj,oU6DgTUWw~Ѓֲu6|*;pn||0N@V)EGr^I@fEk`k,({yũ1V/|E?5@r?+ @ N-~tWYio'3J41Zx;[usk Cו'7jVr&@ 0cA[տ2~&ZYʞdg4Y*HZ~YSvoh @M@AFSYvQ[)Mo&dʁ` HW_{58wn=S+ZZw?Ző L@ַ՟gOh[u8~r[3D♃;OȖJ&_}ҧ:掟-R*/ŵ=+N2@ 0 &Tmh%L ({BA !!@/3)!@ 0oz Azm7p L  @@}LY @@b@eS"'`&@@z&2,7A-I @`L @-}z 泛-dF @ ~Ay?4=J^%f)+O=3b@ EP-]^,+ P]ߦW`v[. @8X=L>e @A@I @ t@@}rC4 @9Z& !@ 0*zs@j @69@Cjl3 @3%P2h@i?Z @3! [դ&j@ ̔@/5@i'Z @3!P7ϤSP @ ;N>pr?X>(S%)O@ ߕGt5GΈ@ 5T{ʵ<kR@ 4' <[ȱ[f*mZ MJ@ @{jC @(_k*mCՓr!@ % z}c.@ Iʯ[$Z!!@ Ѐ@"@ @`*һRb H%t*- @3#HOed 7~TW/*I| @ N jb/$%\2 @ X$9sZl!@ WQ/Qڽ<]Y:2q- @ _4t!yB @-}%pn^k'F"+@ O ! FD@ E)-@ AT{Ra?D N @ ,S=%&z.po< @@n9rKs{OP-$ @@GDf_w F @u o_MLzT"RE~OϺ @h@-_ h2h]&2 @:"oה @ ubDu~d @ ZSH @ ~GnJ @ q4h. @@ !@ 0^]yK @ zZL/ @!Еt @X=- )u @x t5@@2@ ,@Wom8ԩ+ @x t h͎d @K%Е@x R; @/<͑  @`:`T @c!Е`,C@ @!С54@ @ @CzXa5 @A @`:`]!@L[A @ E+@j @̋oi @ Yү+` @ @W?!@chld @@ @ 0{?D @z @ @zfl5G@ ,@l,Re@ @U3#  @@7 @tCݐ @Hz @F+@jv[# @2 t` 2 @3<RgB@ L]ytZC @BF@ @]y*C @`:`͏ @K#Еm@֓/ @$t` $zBB ,@' 6 hQL, @FK} 4+hq  @M84o @S!о`*5GN@ ,@','Qe@ I0fBH@ C}';J@ h $@ @` L@ І @$ЎgO- @88ii!@ @<;D|v֣+s9IP2zd @@3u=L|D; ?+RB @ERL~@w9lo%h  @% f# @ "fk=n,DV @`qjw>7C}r|[Υ=7 @"}mڥkƿWio$˽zLGt @FD`d(mzG@fI,kQZwBd @ PE@!xk ') @@~ 7폤E`5Z ̝W^~WWׯ6w`;6jեt׶7[_}]صqw&۫K߼tWW׭6޶w=س*k'V_;G[bKW.^WW+w[=e|ws[=rbR]w^f y^Z.#~ue zr\W,L7 >l}s[O]G8RG׼W'=]GxۮUkA~zWS9lo},֟Vd~}O$C!5L+g#2`_^*x]2jD;!@ Wę?m1]'c9'$M ?O\Ǘ/]}G;%9W~\ OxΞb%{S_?>kdJ  #.*RjioT} ^}ǯtYm'y|˒F _9g|.|.Ԥ}/Ȱ}K.a9/ݱZ6Y]:û(^ ydw$-2O57ώ  @}>k4~H _{1SĖD"?s돷ڄ"Cڿo(tOc٪Ofv<kR*@$KR  >/!|D =sOzp_n xķtT!ll_ʬSS8:tw 9tx&\ @\l}m+'ۗҧ>|LWdwg3 Rvß<|]ǟkߏ 6_).~ꎯ{(\}n3wRM^Ȭ}۞'\}Z+GUE /\Y=W?`:ZQ'[㫟z4UU$`͆ Lo ˞ǿ~|́νD޽okF]n@~yHسqsGe+vJ խ r|#~l!=}ݟBפj~>qvc6_9N}.F@E S3dOsRؿmAQTa}ySkg,C {k_{>wNQ}hkՔۯq/n}|6VG>}ĵg7 5gƁy@5~)mZR(al}:i!2k%n_}$9Ix3/޶g껞,ؗs!@3|G{ _O޾ӵv&8ٵgFiw+a輕i!v57Qܽ.1VXIT6>ۮqDE٭~dkdL?zXw͔3Ղ @ [z=)fJo'cWd>F0MIʥJ K1[,.=*_J/zGrtgXVO7)h+Q 2 @K]K^b'G>'͆ _~g.Ymm_$ eIF{no]Yaь7 Ja?+ 8C%X猼WصG=$v;2uӈď=!ow?.t!1z "Ķ/N3?pnz 7޹k׻v%DxW&^7|}ݫϼ;cޖ }gon~oݒe )RsYs={W% =[,<4?7U&xcfIJA $g^$o 8SR2ƕf-}RDipypҶI>AԮM{> n?[M_rȾa@ʒ=ݏx'>#"[0}?;?v C}Yt>ke[35y{~8-CwԆp's=j"9O2$ɲ s}RJ=bA !Ⱦ l-Y3k~}J2G[ #Ͼ'z} /rOu]F:\h:|^G"$!Iev)NEU5CP"gvϞYߒPI,׊`rmK"#H _4<=kQ*v$7@*Vjms[; P~/_9&/ȡYiRǾz,o(P/iy]קɉHI9L,-Tvٲ?wi4{^'AuLΟ=>Ç~ǎ~Lƣ=}]iF o/O@f>e^F`Nn>y+zsH>֋ugj!z ox2WAl]yN EbSSyħ ۷U͚ @`Zr5xN1oڐΞb]{Ȋ7zk۝]= wr%Vٽogb9m]{|]ıprpa([3֗|dP_>R"EdP~\(_+eW9:`WB=i |]EcyvOo]<#~;?~綼:o*=\5NZ<_t_s3OK{h~hw|5޵߻'~{|h7@.yϮ CE9U{ihһſ$~ߑ+Q7XŠ*/BudCڿOI.`&2tHCŪ-U8 Frb HOpܿbۖ*3uؾʾPJԵRH\z%Lr)Ur& G"' :f]pLںTK"N* c93%D ]z>E2%>IiU9E]'Pۨ2pHsmJo~h!ElzzO`4{#9 H4D'x+gD}ʟT%D4XVD47ǎT2z&4r[y*wcIKO[#If^^(Y)V*Az#(u=zi`|5J"bϡ:tC.kv}hW[/l]~m?vۑh]O}xFW=DH$)mOo߾n}^w~K.=ۏc_~LRSR$$}; ^$4iLR j?~AhJ-ב{R"TMΈN}꼤 ?yOf?vY˯^cylY.yB%?R!(H%|,\b rK}2 EN+hkZDY5ɡqnXQSĴ/R}?wig493O<.*KEDOUD/g6I\.<Ǯ=#k D|䟲hOϱ[Z/מi=s5W%"LQv~>RJצjZW-Nӫ<Д JrпZnl%A3=21 R/4E`S55n+Irk.@B>OɓZ7R#g fJlebWW|eMe U!m_X-EccyJ{`Qna< xx̋w=(Wo9#I)} _xP 0yHb}> }L<cW`dr,5;?˯.ا$J%AM/]V縞1Q0+1 |3mҎB&hܰ/Ɏp\"祙"[" 8ˡbh>| @59=GDzV_mHiQKÃ{CcOΞJiy)E-O n9sI^|!B} &n\ͽ+ڪWV$$FZr,S#L,I^" j>!J2Hqgf:﮸Em˯]$U ] ", Oͬ*@-X~箍wqoMgw*9O}죁R?ngA߿{Сdڑ<%WbbExb9^Ick/Myĉ<d˚gW\=\WsWׯ~u{1پ$T[2WA+4<'R߲ j!E`{o~<̾'QA@ IV  @ ]y:B @`r4 @$Е-f] @ t.4΁ @#Е@. @`:L C @`~ 5 @=6_f*@ @`B?N !@ 0xf*@ @` @<.7?Z@ @`:.4& @<tj@ h aF @<hGj@ /{% @ 0<CPL@  D@) @C0uʄ @@ b!@ 0<CPL@  D@) @C0uʄ @@Z| 7H~ @jhp֣j ') @7gb"]C<;D|vGD?Y=q )|M)[rrRB tD@#ƒg[k ҊThWW?/\@ eꯔS3dM!@ 08vTjF@ ,e; @X(< mx @ Lx @`,6 @2 XfSk@ І @$`N!@JBjC v8ג~<- @9b  @S'z @@>90֤. @ .@ Ʀ  |$ @:^ʳl@ @jF @lMSR@ 7K0&B@@ G@{,  @'`M @` 3P<]%_@ 0юxf֠T @e? @* 4.`NI] @@ܝ?;,;&cd@M`Gc-Ӹte? @ xT d x{& !! @`hETJB` xO 8D <p@ 0jo]`n  G%9AE @a?p/.5w/kL˃`}@ 0BP@Fx&& 0NOfdR8QX*<3n\@ 4< @FG@E@IОxצ @9 @[ÝRO @Q%É@X<kr* @ dx 0%c," @` Mf /2B`L 0!I7LMF 0ݶCr@ &62. @. )2ABI@ǀO 3m! @: 0gϹ  PH@@SEA>>BM:@ M}-lmZ*@k<.FLčhH`/=3p ,>n~*?xHE  Ha xvpe(3&`ƍK @ &>,F=C+R@ x d q!@/x"M9@!@`L @mIH*@0(~ z!gK@/<m$|d_!WdE@XB+SG@ x  Tn2i70C@M @`ʈ\:'s@Pp1C+  | 0xT`_^Sc@ 0gK\y@#@H@fB]& I5 @cx:L @mw NL`ϋ/L$ >>*m%ezEC\@`N̩5  @3'u.mxN@5) @M^ 0 xfьT$P<<sZFz@nq [@`,ѩ2Oػl半RXJKSŎ@c~ g@ 0 wM\TZYMR @ @AE4sq% Tp ?@&ЩG @`,:FLD5ORY kM]L<g5@(ݛnnd*@  B!|[@ ? PM'( ^*"(VW})h~yS pͣQ̣FVN/uw}UpS@X<Kjm D͚B`d 2gqh9.u7Q/{*@O) cGAA=HNEŢo@15 N /C^Z q+C}jE*H@>iSM`6ff=T|3Z7;WA`̾ FA W kzʮ2((8BT\C` @^5K#]HMt%Ẽ@M35ͣ @}hBӷH1 @`2}~o9rc=˵ ʝL W"h2wmr., x5+Z[YD|Eշ @3hd YLݍꦧEm$@`f_u`f@``uV!@`y,ͩ1#P 0B}&Ը!9oiuXB+Eetwb$ %M4ݶkKr<m$@ A @&A$ !!0uc06ٗy=!s}_^Q " -il1-8g7| ЉOHѝGc,(Ro^.*s/[u9x4C쪞{EIq 4xSI<[gXD3 o):=C@l'n<;!0u%Oȝմ%M\QڵM ]g :L*t mT)dn7ь'^$<H4&кzUy#9ݥfW 7:˜hUA#iƽM4 0'=%$f @Dž@==PD: %OTvM#`$'C@&J)f+媉Bl@`@v *1ؚ]tVE1$N-%.zOG&-6bC`T׼|ܧS\5e H댧urgbL@mI- O 1JX[ *lW߳iFfef( P Er!([-A#`=~\ @7ܝ+ΞP_Y*ܓ0(~ Z%`4gśf 8,VW.˩LP8%?86Kuu  0C p՛ETgY4fN%̵e @`` l .S.fWM e0FJ  )yE{hݵ`7$6{ cw“s+L @'&3 'MgtA$c<@Z@0 Xeb^]d" ~>AA Fݕ; @X:Z!"/l{=ȩx:J @`?i GZ{8ZVPYRH!h4Pbh&YA PA@Iwz S豉<>Cr @dLS!( @'`}@ 0BP@ O  @!`2M @X  O@^ZLE燗  D@) @C0uʄ x3Yґ 0@@ ZK0Fcn"% @]Ͳɷ y Om  ))k+  I0fBH@< ؐyVo߆950fRK qvBJ.H5{xfT @1<@FG όEr_72*4 )!@@nT &H,%2u L4gbwa;V@+&PWIe+@"/Ҕ@(R]dXfC,ٝ!8.zǏ!@`L {rLR/Z#o~BnF@ЌWAZⷒɐ(@#xa"@@eOPEv Qf@Q- Eb@Ʊ=/Qg' *țyxxj"1  @X~JEBH@  i~kuf&0T(ٻi(Rnٗx.`H C#liB@%`M`K`$6~@!n+B@}% w+DK\T1bJ<z&R͗*+< 0 RZ!0K`6r}!> 6eA@L 0O# 3lcj5v;v GeY%XV{S[@S'zAN0σ{pю@G`7`Db!:BhSW2Bթ: 5pZ<7C z(§@.%` L!\j [nQZ/ItI9Q<HL4ۭBfAAE̲W('@q3p=<m 2ky9m"Bۅ9[MJVxZH&`]( 0XTdN^xdUÞL e\xo[nȃ6˵nLcWyv환iFw$@@4S>d>?ӕ|<ڑZ@ 8ud+S4 0kv`.HwDNYA(q Z3=\붾B{lxwA}ENH '03E~X <z@ 08F.׳xzNq@*ǚ TӻD9Uec@4 xN@Of(@"0u%:B aԀER@ 0nC; 7Aꞗ,9;'c ;3n#J @!0P_i]  IkWJ&)` @1JC}*{rLhTsJL_5c“I7C 2=`sDw0fBH@ 2uvu#\1"FO蛨'{fhe"g?XOF.<i* 4.M0zD 6bC qd`0p&LZjGx{\9W{  }mD>FH??H.<@֌[N G"(7>eʀ )"N-ڔA`SdEd&Ώ FG @I<*H[ !@`UЗ/ { @!̇iKjtI@t&ТŬڮ%A5 E'৲,7UfB@S'`-J` ׹v6 0#xfԘTsqk.*LiRBXV~|C4YR@$uNϳU 0MxnH @`F3B ^qS d  J&M!̓r <[ZAC0t P> htD^j/@<t @~|j̠ L>i_@`,ѩ2 qJTW"  0>x&H@`ĜmIM ̆H\#c6JE 0@ @%0ɽl]Ch @`4YB'`mL !̀@8=1h\ԋ4ۦυ?<H @=3(b 0@@$fBgJ fO BxL) 25#vּʐ Ty̖6- 0'm3^A]JHWo@zSٻEA>>B K-<mZ*@`iJ,3P_!@@3&goͤ7BץPc!* S+1 @OT.CkȾgg֢X6ѹ?{Ney3@LX1suPӑb,55ÁֳJ N&c&`*kZ1e3p ,@v4  CKxK (R]w 3. ~.N:O<n> L@J gt~s0D~@bo%qqA4@&N wOO;tQ2f:K~q[UxT +O?+S {( +Y\1Jyj0xCO yHO)hjrx! d_Iv%$PR4J$i0vBJ@ tQ牄- @`F31j̽N2Ҁ7̽ P^ ڝ-7 }L@a `H% @Mwk6H@tK@| 0OBt0xfЈTK'PS tvT1D֕ Я!PN= t4$1qߌS7#A`N@@l,賩Hf_23{0v  *)ɦbb ђ0V h'AB`*zt%;vXI:-e-ӚC0yʅZ#Pݳ& Dg3 9~xFH|{&2 L*.0ז^X"3~3 0=0i; aR%̛@c{d ͓Ah dS" Єs?ouIp3,c°S:CxI z)I@j,n CGM NfNA`)tMIFZB`:r4o$eOMF,a:ݢNKnYv<lV*h׹nn3M PL`$HĠ@`LՐ%0spf۴TlZZp@-!PA]}o$ܺ3YKB<ff˾.7ge2VLK!пsҖsz}z(b E!`+@sBք *ZJ@!<t@o#wwh#]S =pIrύZ@+X8j-˸8WMAw׼}ּΩy295ڔA`fܟMEFQkW~-L&@ !0b*FʠB{fH P@ۼV⺒ L?]ns#^5L%wH1CrښB`,rcJ5W&I wcܛd[ `~mJ 0F% ؚ-kyf*q6,K:q{#@`f+Ճ @7^`-K 0 #7)\i1RBc%lkvX,T.< mx T3`nV+X@75{:qm" Ҥ%-@->COZx@xO@lCfL!nq{Qtl!_# *Ƿ2 0J-q /RCyf{uj L@+Cܨ)€2>EC^:} k6  0MC q]MF*56 bA`rJ>ƊràG!0=q= ڳiTH1 ̘@oC\+E3nT xI /k: ( tF`Cܚvg1E7? D;`BK#0!n${-Ԫ/ZH  FuvoE!`@`0ĵ>n/=[: ?2!Ltؽ5k2E@m *y`j1 8&ee[  K*_+ 0S"8ZC)t!@@f->B˵@!:F3F@o) @yH?#mbhJ @hk۠X; ~jcx&P @}֌a<)VGI@ @H?PJ\[zANoZTԊ0xZH&  _VIU2e@ @`$! @}eʀ @HIC  @ ʔ@ 0@ @ A@)莀}S} @Nh zi^x @`q,ɩ0fF%5ohf-Nu xZ ['ud@ 0޶A2@ N@H@W2@oY)X  cm&rhBk @ 0Qx&p  `O@X@CkRxF(@'V H[:A @ 0XӖ7Ur!h %A#!4`$  jW.<7.U @ƟW. ` @_%:smNJ V2 @#!ޟ=3J!pz @XLm *4@ K0@L ޟEOcQXTsSY@H#}?,ڮ3 @"R@π @ QNG.I$S, @Bq C7t+9"u @B Ys# ga  @X@ozJС]ג֦ ̑$r#NxT (Q ?xm\o<7@ v3fRC|f!5 @K%0 l*2`rM ,(O^dc8q'0ƥj ̙TX{̵e @3' D  ˟!@@ }IIk]<<I`"  @ $)ni2z "? @X0fٖu,ݩ5 @&Pի \ `MO!@LE9:"!@ x3TlD0z  @-6(tM!@@l3z>L 4%EpNy6Kt @`Z "gZ=!%-I7C j]tu IQ:H @fDnO3B5UsR@ PBYP?3Txf֠T TX'hgk%#EtϘ @D~~&hP@ ( Jll@ {Lz% rA @x:J @`oew'[!O@ @XPcSU@ @ @`A,* @ @ xT @x @X< jl @ <@ ,56U @ @DB @} @ "`AMU!@ >@ Ʀ @@ @XPcSU@ @ @`A,* @ @ xT @x @X< jl @ <@ ,56U @Y;2O.<m;$ @@mxj#@ 0'oy&̇0x  @#?֔@    O< 'Fh: <~H@ Y0f @`m|Y6e`tM@ @ؒ3 @FG @!+@wl LO<$ @ <siI@ x<  @s!`.-I= @ A$@ @`.̥% @<D@ ̈6>Ec=3GU @ 01UVLinFC @1W~݊ES @ ljT @<hF*@ ?x8  @#&pÍ\y  @~^|B*a&GT @7W/ @7Ρㆀt @XK< T @` ʵ<K @1 @ Ʀ @q򁓛nHu'?on}z @@D ۳O?0SW^7: @ "[R+]@-9H Or[ݟW1w}@%0ZVQ%0tW%$ޱcG-n@Vnjv9WOVRRg:),|fNڿg}E`~5χV\,zu+hr>`P^L+zs0Ֆ_†R*N@=פ>붩?]D ȲnH 1,pQqחd$H$d$9ðӨC@zcѷAWꭳիz>5g(\r&(7MMLf<94Å 0y*)IEПG|)qt-O9:Y"y6^ϞAa+܎mMk%Wu#Xsϝoعwu%HkN51r9 lk<ܭ?ڿ}&2=!{_;bH>b[yڿW'O/O"w|4bw*f?O;53iEdK 0?}G j}x;ϊ)Sw VwfX2uOd:7f*ighV/"~Zg-+zMѹC, ֊Wĝ{JHt Sʪg zyL*۩<MSf}]* &ϒsF;`kOn*v2օCz@<t/ /q៲HTݺG??ٕv'왺EmJ*USkT^nF5(Z[EKjyvuw2Ák!@`f\9zheNyO4VI;"UulqvO=-%ejjE6fn.l6g&kšdE@_)\exk׆OEXutz;w4: !@`rf\|vGzT񺿢K}>{hRY&VπϴvQ 3[O?lJi{"" LkR \@B+!݃.]併d{fVf2cEԭ{-P$ Is#| z|H @ L@}USd @̉ u @Pc!* @%`]\@ 0Ĉ @ 4&/*2vIENDB`Dd ;8~  S Z4topReturn to top of the page$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K065F5S/ 34K$$If!vh5[5555#v[#v#v#v:V K0655S5/ 34KDd ;8~  S Z4topReturn to top of the page$$If!vh5l 5 #vl #v :V K0 65/ 34K$$If!vh5l 5 #vl #v :V K0 65/ 34K$$If!vh5l 5 #vl #v :V K0 65/ 34K$$If!vh5l 5 #vl #v :V K0 65/ 34K$$If!vh5l 5 #vl #v :V K0 65/ 34K$$If!vh5l 5 #vl #v :V K0 65/ 34K$$If!vh5l 5 #vl #v :V K0 65/ 34K$$If!vh5l 5 #vl #v :V K0 65/ 34K$$If!vh5l 5 #vl #v :V K0 65/ 34K$$If!vh5l 5 #vl #v :V K0 65/ 34K$$If!vh5l 5 #vl #v :V K0 65/ 34K$$If!vh5l 5 #vl #v :V K0 65/ 34K9 Dd9 n  S JA*Traceability_Conceptbw =`T2e Q61S p nK =`T2e Q61PNG  IHDR7OVxPLTE!!!)))111ff33f333f3̙̙fff3F tRNSbKGDH cmPPJCmp0712HsIDATx^ٖ0 ;37̓"oKsX`>~+ח'_#rn<87#r97͹ntn!M R8rC'@WЛ|\odgUoM^ȗٌޜ^pn΍Gg)矜ԔէCHf&^,Cɺ$\q:G^1z 9l`G +s3Y7v Xq͹E]q+pB\/D!lvM\-pf{9m-ueoo Ŏ0%AƷAmR8 zJo eĔJJ3f. hb-50\mB+.~/rtbh?HG"Ys2:2?A>En=>9Uno-m9lkNx]fWsֹY% 9e[{fQsN2jdmx.pwAKZdJ{za./(܌9t~Ә`GfHsrn# ƩN,LȸqcMDj"iOV"8]rnŽ$ܠߨJԇ !)rpk\C --lRĭŭѸ"76Fւܘܮ'7*ɍZrnqvAiӼnI­G"WҫY7*ͣ\9˟-f\ppkp*N 5^܄g7S4Ao4ᅺTw1 tχ R|F1~Aⶀ V,J,#b˸[!HXq萅,$x9enE-鬵޾ǷB <[ƺYV-{lk I nw,nKFNRrL V5vV C4ۦRU/\~L,?Uoh3roBF՛ƁX [un@3WnJ岰E688;q+Ӳ23ZraUnu[DL57$ܬ*eR Gv-Q]zh#rAc 1QO8pzk&ꅶӖ:~Bw?UpTIjb?׈*ķ 8Njdiv Tazk]5q|kҖԊK^I`{~Aj9ub9]&lOZSR3VԶZ]?5Oͤv@7amۯWOK YoYbP35Q3FyOb?[6ܖg-6_> n6 %1>_PNG  IHDR[l~PLTE!!!)))111ff33f333f3̙̙fff3FbKGDH cmPPJCmp0712HsIDATx^k( EIJ<"b+{~~& l2?? 6Y; e[i6[VB7uP-:W>lMxݘV\R)A]%rYYR5ɗSS8ZIڲEM(71 ٺBW[8q"HF*u魵9= uEr Ey6-Wq(-Y;YS]-9<[]$`V'4y<ǬrqŒ~Ņ&NBTl+'3l]a 2)c}VwfICaK(Tw&^.e\WP):(@[uߝ5!p4SZ,oI0HC(lG= ! 6KKɊ8aXZ( Fu a˫ֹvMXem`ѳa 3嚻jg4-,Uue#**НDNhδi=m.Kơvx+$s-o(b݇'Olm{yh# ֪ާUł]"Zhqg  >%PQ-HmF&)٪,+7 m[o7[5LWN!A%1yrzLB MDS6:*hRo#[W;"V.JO3~UWm\k*[kZKC͖ta\ٞN`m2ָ/h0YZƣIl'g|5i:ϖUvu앓If}\\by.=:#[i(Qr]5B>qK-&7RM끯/0zt$n9 aHX`l\iP -V J ԟLFlaCr-AdW(G4V5&[of (F4qE e-$9V2K~U{H]]_u*E 9X^FZ=%$sidKwOW`TH#í٬%p6x[l2\^c%]haBPUܞTV.[j賅s=O1٢ִV1@3/Jl&1NUqkwg+l/ѵh߯f,U7ul>d[Mr\6>;lqVVTIzI ḃŧ\ʶZ2([uwNlMC=`KuRL+ZeI{|xgH=?9>-o>N֭ƗުUWN5J7%VNc[(ӡn*eɵ]}!ZLaE*<¤ҁ;tAX,`_ußw4A`uq\YmS-(PC*E`k9&RBb q2lEsN]}[ӌAN $d^o-՚KV772 $*3WUVMofjR%hfk|f{t|:[/e'Sͩ>ԝk'BA!l˾6[yIz ^}݄m'kPeRދH#˄a8lAD\.ACxnמaG_@6M M6+7bKeF͉wEwKnw`k 9 X)*--t`o L}*fW~OiBx@6Y])\2w<,pc}H׌aׄ0Lfnl|,?Fӵq򙛢˥ioq[u4+սB$a^2nMÆa.l8@%dwz'@*=܈- lG~[އ-,Y;h.5A!?uV%ceqgOqgZmfت8M`6M~I>,wIENDB`{DdU t  S PA0Backward_Traceability_1bIxn>f"<>%nIxn>f"<>PNG  IHDR['QPLTE!!!)))111ff33f333f3̙̙fff3FbKGDH cmPPJCmp0712Hs IDATx^]mvj{ޟ33;=K{@bmjS,m˲,z7o V$W+ƫ`rhhVTL&?O;^oz8.LJ|~>U1\uJf?g7dЯ @d(|lYs`pFhgM>a(u0 AZƱuTZ{>*a@6A`j!̈́`Be YUɨS5SXS"GPHO,+=[,іoFaE,W./bdN*&kt75ԵrZ_آno_aMD)&A1"kj󱥈n_ۙ4W Je=P7ij+{n'0UΦKl]3l6-*$vMXvAP R zQPǺ3Q6NڨemuBo3eZyDy=\>}Q4'j6 HbIЈ`͂G^pSadC޽F^m;_ Ӌ YVTs.jx4OArÆtX¥PLT.Z|kͯFJu l%)j B9 ~RIR % !=ϰ]-,lCѹy<[tmg𓋷VCkFa Xe&F4֗q'ՆVI}L#A7kJOwb,a!'>>UV[@TQ j'<(c^K),S2RY)DIȆ  bZ4!u@0Z4_̯9 !DnFdQEZ;@{*Imvh7+96Iqv,7e}B1ZKjcfh={[rHvG ׾V{_{0~5UiP%SF ܱ ^f>v1wT6':-N+K v;|uB? N$-Ɔu7)J/b1E1y7l~elhi>]7[S4-lqke3gh˪v;j.>v1y'UGKOh}mLajvv[g[1XRgg^2N8 o 2Ψh{ ^ BT@bch/J~G1E]ݶ$CD= 2 >c7۞s^AFAlo1i5]Yh}PhB#$nKזzR)hg(OSzh[EROSL}"c^( "~IV_[P|O^vq7g!H|_fmJvȷ- úeHgb0mNadnk6nkl-!\h}lyA]fSmhLzQۊݨEα+'-I4b4qʠivW;,qU8'R 8l[EGh(Vv[`qH>7ssf%l%u+Uj6q^ʴbW)bEѣh[9T[$uQiF`!"q|tcΜs?_gY޷H08 XGn 4ی80m_J8a[ l35rNy4[bqazE>yn5䢥 *yؼ,`O2CUHݚc@KrUT3Y0i$a;+b7crc8%'[jhAg_s^I)?T ([ӊ4Xx!? KJ2񯀭dᖚ=üQ7@άXr*)-cYrٜ0{n>q'ģ'"66m r5m} ݶ|Q?z G^-F!آ뚏.2=L3gh/CxZd]`xȓ͵\dJ#a< p@<|{~9lKoy5;ܨ{Z ta Ob$v.nMqڸ}ʲ {ŦzvK)e _],}1Iv+/Ғd!9ؓIbt=]<ҕ`mW$ l|۬L;Q vh  Zd-+w &H!5LJOZAkw`[a{faUlZ5(sfK0]rɔ})?EuZJҘ: P[$åtX@񢔾oMzlb"T3{4-76n;PKw [Hdžȷ` ĥbplއQ-v; ͔)U+L|OtvK7^||azOYP >J --Ū1-H/H{yMzځ|wKwj|ksqu:ֈ,09}xg.d\%Tj`MR\vW 9,p~(W v$r7V{AQv%@$cmf(ÖQM DXI-3d5x]Ulū[R: n㥰J\|s$X#K gӉp{^򔏲kg;Jwzkk'[3?^rnWE1gX_cߍ)17| ׻/<PA[|bXt(bO&M\54l-Ҁ n"%@{{m Tvw_ݚY~Fxܘ[ .hIn, na,!F`v4'c]L|C 5%5 n-P??:7_bN}ooJrdl 5aW[qC3?ck{6>:luL1xPs^5Sw4'1޴wN չgzwcؖ(ϲl<-^ *7@gӥ%hLC|WFfXl'0?2]YL+v! !ll9NuNtDܮ ³'RW;|湃jX4(7,uc|qu&["o@DDL^~?f[JBH7% W+hxTlގ}v|l{ƥ 7]akD[Yְ :kw^yQT{񊌊d{%D`r?|$ȘZd 3-uslk|=l-M|K3ia[hOhc`뚱u|u4(ZL+Y>$ίyV m{r?zr'+́}w2* BTx)!="6 *_-ZE)؁-f)zXcj(Jƕ ؁KYuLQ0LvK?Hy+IM~%/Frr`+ӱ`,iZ,)Yj-U9_La5! |4Wh|*D\ۺo|Y!|-3N@XL lY±53ʘw=&s_۴K\׸UŊ=}_g$_MKp+vk\Qֈ`hlCnWĶwQ Bn ''i_oOu;Hs;}VדOXF/N WrmRkxVla Fcѣ&uC#L7iɕ1'J#S YuD{ݯ탎[W1;Uyc>5KD׎.uA]*; cD;!uol-2by5R{AX;fnӌ"hUi},?#|teٴ;:zeF)+[ [[6lMݙ\QuݢPJȦXӘtz'T?Xaլ' R'fKnDi}*eس Ie8f,+ڡEVgv?volGv?v?\H׫`lkY{5pj IΈ~=0ՀZ^w@(Rdl*mFFմRJ@,4M2kTwݽ绳]H|Ͻ}^C5̭ioz6DiUXڴFoƫjvx6Vq'e8i.W3nFE9Xv6y<>f \1=[(JYz^~ڟwdGi ͡ i"gXh#ny,5OzW[n*G4:՞iOXmNŦov;.qe%ⵑ'zwz*zõzi3!3=h_/h_k=xG漭<6-b q,3GZСcg:|CX68ˤo=RaCkDHgӸ 3{blcD7=[^pxW4ÞbL b |}6eᾚȔ?ytbt7 >[~OSW:=;p2=#;#IA?GpDo7i\<ػyOoZp-9O!mN5<(м8H ୣ ͩ:w)>;F+8H;k̿e'JqO0r <u1xaH\蕛ߑ]d>ϟ zoZy,s Qg8*~L"K)]sQ?6rg | yW]Mh[ az1t1rѱ<>i[zw!7^_erHc J>X0Cyz p8Ot7g G-6^V$/4>ml,WぱZțqJTc~}۾۾Wǝ"a&"7Hr]2>G[^6&ۇ V=T%'C3x;oeE@Q٬~QbHԉxSR%hgg}N`1/A(&HbjrJ!/ /X>>JJaTWO"Jb槟 Px׻ X՞\຅M.Zv+ۢz=;lzة6_|[A|?]Oi'[pŸp*H3{|_)ֳcQUM%y^JR>= ^?g_1GOgM_E8Zco'߲~}ja-..w}_ᧅ.gYA|=;l |zճLW֪U+zZ Dg5C"XMHL;3uEΓY:Qlw$'1֪ D0e뿇Qc")…!WR #{E/ ?'kA| ;_hv,` -?exX0Mw"T9VWm_-_uށF' @B`Z ( 槷H%+?3gRuIw]|'0]J/lz+~2(LwߝiC#go]vKo߮_#p2 \YҫV3󩶘k5?%3}`ec˧ szaF4~Pڏq03#}z3eR8 zR&Szy)?ֿqG.,P%[ے p3==(V\}w I1 A=!Gzx{L>?>F'yd?WdR^3X;hl);>}f/t}B 둹 u|ȑ;7}'?C_^/x7E}ء۾>e:gJIENDB` Dd^R   S .Afig7-2b d2wbVK\ Vn d2wbVK\PNG  IHDRB ~5{bKGD#2 cmPPJCmp0712Om [IDATxop#*V&'5@KC)STHi\dxJEԠMbXG9UiPEsL{w/{wd;v쏙ލbZdGY.e/=亖.W&A`(8̓c)C<5A,r0OǀT)I5Gf"G5Mc4%Y9 r;HnO<[O-u>?$ʛy;:0ch5M YvqRσJ{) KHUBO FFm7sd؟߇/ӝ"iB@ _`& Y֭*\Y{oJwP-yS" $,mZ^dGCZ֥Z+z$ƄeMi=})+rY+foyb[s\j_k7{ʄO)4 ot~; ot~l֏B>RM,d!PbuYWw#EyrˎMo"9J J@aZJ:ESDХ?OGFGf3KK6 FA$/HHAq)H@"J뀝câIYd'Ach\Md砞QɄE1@G8]O#Lj,G90NEŒON}wz f;_9Jzn1~I$e {^" vJVY#SN3)Ɏ 7*sR! YB>r)P&ý˕lB'D2p <8 lݻoGJSR:`橏YS,8^a^,d']dDޔՓIZ:VֲXrgξ2usun+d2I(m+F岋ax *sUv3x28) #)N *iKe nd4<$fH.@8S gp<H/z"i5B[\5kߌˆ$Te6:˦Lmۖh%߇lix֕eQ'm/U5n!~~ anZ(3sPN[,33kUDO)Hڦ m"HK,d!L8IgGC33r$a.!=Q#U^]#UurPK?XI2ZIÅgH,+z\)K_ރqRZϔ;v`{|u5I|u5IS08OfTc3ҞV'Tlt[,PyZ8DGWIϧM,z !SJa=u@,窼OOMelTkŅT ;HJHɟuOKy&=P}7'Nmϔ´/%#@d$s8RUg SY8 k#<Ռi4>Kɻ2V¶D ETbUY5TeJχ4mqOkg-ig>U.şˬw+OUB>2s}5^&UBiO!gL_jnG* J+_yr}iq]M })Ip}Y8)R1nwJ}iF}zXw}Q`D%GKR0N,ɾ,1c?Afd_|>WKH 2}Ӛ4Az4l߈%'[O_;_]+N~RdPRthCDM'IdJ `eR{bJdnlxPĽ38;;ߎT[!^%Ͼ^h_Y{~c^=(}&[IT3 ˲;9?I.+?Q `jpdRyB(?Q~w h;>goED\JwHÆyxe[p(,]u,,޸]﵃gvuvwS'k{o_y,ϧTF3 FA\ؖH-@2=';hCః:fQSϕaӆ_s<9r}cc/#~z~ /Hɕ-u#ymh}yNEmaq\Y?^G!ԃuڳؙ'!%e(HR{i4.IENDB`Dd&R   S .Afig7-7 bjX_^ NX_CFan>X_^ NX_CPNG  IHDRMggabKGD#2 cmPPJCmp0712OmIDATx_lF~`9:D.jDy(PpM]/9-,m /pgee01r@,dmA?9U&ap=Ihw}HLIK̐ruNԊߒ33.`imlomD}<uK5Xdr-/J-l/F-/N-,/4؋fJh4XfJhT+c e9ƮO?Ƭmd,Xa,Xf,S@? vyW6͊= v+b~E@褴j\{KJIvAR6JqulDZYPu5$6)NmÇ%;u摰18V~^z.vA/;%`NUАr92VXʰYnخFm(#aYc0ñ azgI!VűXYk/\b:v(XfgMX q*y +9`z1=U:;FLMu,EmOXSl |7?RټƷ$6_#] ׍XX-Rc@vo]J続lS SS2֌npk&@o}x1(6>췗V_ۑ~IrZ#<gNjA^ a&",Ai^yڑL+J{~Zޙ^~h? ϲ5vf`?%1lzC2[!V9g2=n謹jG= fM9,U1I?7Xs2排0H N,R(tcDq6XvXحw`X`ANwm7T 60uQlM; 1XU2]@E,t;:ɭc*0q ba3өu_rj հ `4 `2*؅t?8aϺMQv\l09`p8Wjo+abAO*Aƺ Vc3IU3۳xSgjLSXϸجY٦р/~60Ơ[ a sHBC IJ0a4p1,;P̢' %\4VS b8HX~ G@si0ͦ0+bn?G$ű᠄eFyXue%jU16yXVBl1FkE8,8{&3qX%-V51 ˒Y)=!63X0"nm5}M;>IL!Ÿo'v( <~8a5ƒ5b7ėL18!X1Dw;ja?W'Nؤ!Vxa;'GDxRo~7\Z)6ٚEЇOo.↸<'b5NgbIW8fe;˗lRƷʷ(j[-[f/TvajA;6*ө8wuH_&J#`W]~[}a s=nQޅ2>U,"!239G[GoF81CꥲѢJ!fQFOUiF~Lft"Bf! aMx iL3A0j˥L/*؎c07 6MXUP g,8x^j0 Vbnc X`RϠpٮ!;`ڜ-n-&Ŵ _^Ә^6t`IyNcڴ. 1h%d`:fKq`5zacCgY8Ӹ4l 6#F4懨b;¬WPǬ'hWnsccand" ?oibO]~S iuʴ@7Yd`*S]!,cYmEaK ~]Ӳ4О\跻n]3͵vwꮗ6ۤk&oi011G ,1ae-[%6d,5YϚ)KܒoTt`IYcإ,Qp4D ;h`8 GKjh`I $w6Y}L V*حu]Ǖl<Q\kmVh (Xa#uXm(X{VT.sK`n`I I 7nz8ʘS 'o:c'8Nkc<#e~8(ٖřX涟Eqv˽u (['n? ,հ(X-j%DZ\ .-qLM*ŻIxz0< L(8c 8+b]./` +TrṶ$1G$fTۙ#m+c.ʘݤ1]@f͔?'r$9+"INcM2x,_|s\6s=7VNVs=7LMzwIw>ް?5[S5ᕾ>17Y9ܵ6ޜ^<0yoÐ93-im`sZ3(r0nW!;Wrs79ߜ;Ggd7!J-CZꬔ 6F[4Jj_ |kH?? /.yNvXUi[{gN&{"E2쌄1LYoRי2;K[MHN7!z 8b CH(s"Ð C@r=/ZVFxuHknVSvYmEzƬu/x0P/NՀ{- }n{R1%kF^ckX{B7W2@ r%;>Sx%IV k Q\;@@٥7k͎ҵw;u ޗ8Ck}{Ӂt6N*zʰC(n7mBi/wգE/T_vY{dxu|8q0?Y{ɫK?}3{wqXTrr \QKN6jel2\sxoA{x#` s)C:>Ƥk=+!ysƆxRܩ ۊ}iX77{UU f8q$BBVƸx4kmXqP1b 뮶oJޣM6v,U5Ӹ3&ynʰhR1qe }R;,]^I ?q #5|Htk^QibjkWoL^oG[Fp~$3–xEI3ʑw#cwfOy M;ޓv aԪ޻/^.xuui 91 ,a1 'TaW|(y9ސ`8&O2Gat?0@&O汗^&&`ϯ5XNzgn)'ÕM"!8mƒOw]:\f&!8lu il]cqn,#C}usiў" }?YZ ӷ ^øӌCiGnWpPoB-!v5譻j>c Y~οj,Σ\ p$당a5 6FڞIENDB`$$If!vh5 5#v #v:V 0655 34 T$$If!vh5 5#v #v:V 0655 34 T$$If!vh5 5#v #v:V 0655 34 TZDd o0   # A  bd3NN-iznd3NN-iPNG  IHDR?sRGB pHYs+>IDATx^k(FP?Ksї&6Hǎ"O!ml߿@il׈~~_u%G#nt/= VH]%e,;;~)U1e:ψUTUb   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc(vy m l Root Entry FU;h%xCData w'WordDocument.J ObjectPoolQ0h%U;h%_1139813705 F0h%0h%Ole CompObjMObjInfo  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOQTX\]^_`abcefghijkmpstuvwxy{|}~ FPBrushPBrushPBrush9q  FPBrushPBrushPBrush9qOle10Native Ole10ItemName_1139813808 F0h%0h%Ole                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k `6u v w x y z { | } ~  BM6(?PCompObj MObjInfoOle10Native t Ole10ItemName   FPBrushPBrushPBrush9q   FMicrosoft Word Document MSWo                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_aijklmnopqrstuvwxyz{|}~BM6(?P_1139813761{  F0h%0h%Ole  CompObj MObjInfo Ole10Nativeh~Ole10ItemName_1097676910@ F0)čh%0)čh%Data U3      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&')*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgijklmnopqrstuvwxyz{|}~~BMv~6(,@~ %@clư L oVefݽӯ_l#Oי&aH Q{ѐYAt 0'Zy:Ut-%Aj9gkX.\8kXDZl;2O+5rgT]Hբ:]ߕMO8e>u.E_(B XB 1@ DWYZgk-z>@>P@`-k-zW'p~¥q0a SMU*ٽ}A]qm KOdQ&s V]9b/5]DKdoz XZ@4;׹kÄfu wgEڪG )`knm!pCt]o2 8U3YM/ J8z+=5VmÙ^ueUwI~ўّAwM VC mj'3|d&wBæ!寧3 bq:h_D"0tlZ@"ڪTNk\v׆J/fJ([KcIܼX˲^m.@H咲"yeڄO1کUG[uJXo8hb]W ֪~0Z6rlӦS*Z8zS?R}'Bn}Up:UJmjW sݠjVn)<|0y>Z// &`u! 烅9yj]t?NOVpa/eb݂%vsdq #vqhN{A*NFʅWVx(ЍH4c o.}o݈,a+݈hh$L Eqb $]NwM}yg,&3`9RfK/oe+kdc_rA`l؂B V #X%ZL%`N3ߗiO- >5H^P\;_=G.w -a#Xב~kL ';Iֳ*!i[4QAj,5 XD  Kg@`I 0s [4VlS-w6OEzC `՗ݜG/;j_~1GN nc`<8X j Rvȭ[趛{wrG}7}cvJL#J? ,8ni-oCxܳsZeAHC =k7/YZh#e-޳T?NtmW}xie@edlo8 (:Ɛ;vkhAxqt=~~n p\[s;;qiMy=ڗǎ4<5^)a,Z%ni$k| ]"l3-0Wj>rdr'Hb̥dءDejƒ`xDL. fb^)e3`)A, 0@.ږ^)A^.]bx5z|Vmb{%܎rfID72 Vn}T'\6]x'zO???oX%>m%~YtawM1R_ [@_JU[o:UY`8R e֡Ve8&~CiYz9(lB #nIguәnU.fFT {TP/.r:QJy/7o$Y~KfAu0#Ƅ~[mTيJ !C` \unUdlKGHE `v'g#h @ X@``Y=M$[ϑ I5}eMp. J 7,7Q%х |%"f sZ )F cyDH$XJY{TEBB]#X8 >DKs ֧SH?"rw95I?yq{-;#mjeI넶kccPҴ)X`Z'4(Xkl!U"E9"X}q%h9VuYr0_3 #w[(ٽkGsd*<*a56]Ac1~&@&¦+@`5ƏDDt@H 1a.~XzZFkYvZj-w4"X7mSbL@]ꨊP, A`E|-2L[_wݥHf Xj6-Bb(#1%=B! X!JPIW@HVȴb@b敨 @`񢑐APL_vQ=% 0`=q|~#K ?! Hja$t 'M @@2k, `յsY~pwwkhMUW uz@mro n@`ςѭ_k!|*SB  /D%0#`)A ,+lj  XrJDK|M-A ;-A 0%t>@.V|-\@\!+D ,y"`7B5up XMpMr>@.V|-\@\!+D ,y"`7B5up XMpMr>@.V|-\@\!+D ,y"`7B5up XMpMr>@.V|-\@\!+D ,y"`7B5up XMpMr>@.V|-\@\!+D ,y"`7B5up XMpMr>@.V|-\@\!+D ,y"Vc߿IENDB`Dd o0   # A  bVMQ1Hcnx0-.JnVMQ1Hcnx0-.JPNG  IHDR?sRGB pHYs+IDATx^k)FY%\E!8E:_ ϟ??xA@'!Lsm NglbD0BB .%ي!)Z X'CS .'며aȓL1 A@`לҤ\ V2 "u bŅa VGs߿+`El@W^%B^ߘ=,1N:B,lh0_F:}>̙T%]NޱUqí ~l0ƹ}ـϢֱATXIxV炫F| b?6"`²\st\;X^=zE8vF[վ[1hlj.s V3{qINʒp,OFS"`MA6>C[Ķ777$޳%g/e$<@0Bρ3-.G Ok 3:6tf49YZ ϒP53I݀XB߅𙺕@*:$JV~ڱ$|yH[$bS `(/j`ua 4K#*s$T$bby'a,>@@HkTYy1,GCص]Zeˇ Sx_ER3Xr AKBQ0F"q2j!0Vw׉YxII x`a'e&<@ ˫E֊`Iv PmLW͛;#5/w0{6^\0RufC 3dO:T F gks.pZ{g]e-Ec}U>326q 3ao͘t|gE[[2>vPPڏΧ0՚eACÀ:b~BOJwQFG-v \b֗PVef9J) G Nc5>,I,d2%Z@&U-[EÞ%<ߍD\F#.-q1Ʒ`K\LRa>\VXU|1/AdG4!xVN&J_AOuZ;7l .$.%^R0G15{Y-i].|s _ $U:4Yt`i&Oki;WvD`]T~z*l6}>n{r)X:Ѳ)GS7!wn3F2c!G:Z6ŗa|.-7yGٍKo,Rwevc1p] V x v! V ῝ګ`I,ʫYr~_1`; @KsHt\"F\i`ҐNSԐ)VXe5Q6S:7@gkXZ7{|WX+5x*EkzhA:CNJ`fMʓ^YΨ  ZL%`MŻqn?_,1 bx՟}] w2(v\:E>W3"XpѸͭ~ʍZnҦ&'`=ʭ/M+wl塽 ZÝYxodɉ{lXvoM ڙrż?ӽ,J߹)W93gf^s]SG #e%=;I9Vh0M SMMb`ܼp1uZrq!r&95)n45[%o,B XÑ2 ׭lJSK3@# X#(2F\Yb` @w"]t<(.Vӿ%cZz9zS8⶧qNk8MDGu6"0myy޻8uC` 뾲gl6K*+;+d!S@ʕŷַqHavKh2>p#Xŋ;b|ͣ]>c" ?_L蝣wjNEyhPxt}ŁWfo#4lߘ+oIy.?tw,wIV?(a6wO1 -pa&Vf@fPew\lc#sCyHAA &4"RH8#Xk3.a|JU0{@ocQUYHӧ5q(ZPmQ̈́ Ok8R$0P,\TΘwcI !^V/9&`knj UUxMz**{A@m+pD `q7Q Vk$iѵ L5 V -Q}m$Y n`RTby}hfBAǞjQ8/ ;lEy5#oɒxd^/?y2n;#Xq7xs˷r!M `R$muW}A"XiDP#A:(n4K-Z&ma5*lh(I"Qa%uRC01H `P0 &ARF)!^Q܈ Xb 0@z_Ny50 ޙ5IP+ApPg BMќB Vvl KEm+5EDs._Q0em@:\蔩k7FMD&ja:ZP+GYS!V %ڬ!p(՚Ί` NRG΄i)϶ Xόh ,.d{r0{Q} (,:v* ?:mC OG;*YERaEm3V#XaBБ> j fW]#ooN>0 XFYlI+`Ec8gq&`MwٛwЬ# ۼs>7UH֣@_ۍlGlh2^nKK`4W$TȢR Tkf ЧYUj],aȤYϧJPˡEθ 9=$X 958b6/.ڍ` ;6~S؁iS i {X!ÊSIW@HVȰb@b 28q+$` +NA &+f\ ! X!ÊSIW@HVȰbBʽS yTDƫ=l!XkadCѯyA "XFD ת9M<܂@]+YYM?W[ |=L6ٲuS"͞:z~l!X~(.$n9?#'Y)Ώ*83?`lS$M;o?v׎%bϞh.Uu,?+txuBF?N(JRU]Fef5eVssLc4&`}S;YT %Nّ ;Un~)T~)*B A*W,Xߒ:acI#:uرEG@`-a3Mawم 1#5v,iDGn#kL.ݬBt$̻Z|izyK;2aǒA o@%aYH `y 6HUދ,ߗh}"VZ <5!`?RB/ViC+f KD`ל4`T5o\r`U6@%85Vrαu` UTWL j*v~oEVclPFPY`:̽ +kVWUG"v t҅P&`|ˏͽeH DzRB{A}5m*x' 䴆{:ө&dX@`6-k6DƇt X:@!t bT`fN!YYd@*J% <~~nyg @ ewӌÍ.{Tm;IVW'76h?Obc'VJ"XJ-˯sT>};,]2k< M`è -5D#`E(@ 0+ppq qGhD(BX4Z"4AȀF Vqa!钰V(ja ; 0B``;3 ~g$ff ?,?RlO>?xXa)' }`Iǚ !KK53AB !=kf,!@Cz,= XBt Xz @@X3 $` #`f&@@H; GcL%Hw@@ǚ !KK53AB !=kf,!@Cz,= XBt Xz @@X3 $` #`f&@@H; GcL%Hw@@ǚ !KK53AB !=kf,!@Cz,= XBt Xz @@X3 $` #`f&@@H; GcL%Hw@@ǚ !KK53AB !=kf,!@Cz,= XBt Xz @@X3 $_t*+ IENDB`}Dd o0  # A  b춮״qn춮״qPNG  IHDR,brsRGB pHYsjaIDATx^۲ܨDgO1גI-?Lx*W٠߿@ $1BE@20,Th /P%aM¶ _IwL]Fߎv`VXf4@ 﫟ÔV7i|0? >XޏIS* bU'd 6ZGU:Gư # fz `$aA XO`|C|sJzV*oB½k,J78$Pm&-pG +r7aX[[5nJ*ϫXbaa25MVD bJn[V{k 1~򊢢r o'+,o`GyO0TXcoW0{0'aL`>sԩ} "[Rj#\,w]zSSAge"M=q0R:[PvVOƸfy6 &a!\݉{MmS/O6 /™g]u8ͪn2 K_NHE"pHv/AIUoO߇t"Ȥ>S:oy`:[CLjIQyUuuJc0}—U1&0is]gTӠ/3]mH-Iq&dGťbX  ?\\ j%0i@{FCh@â٤1I [aG혌>Dp@zci/M~Y$wHNuX'_ ux'-D&3x0t `X CÒIB5dREE @20,T( 0߰^an[oeKNoJ7,+H/-[tذ/r~]KNI[®hth|!&V}[)ӽ([=Q|I!p^B˷}mb-5 .>]ѥ>kW~p$J$$xxui֛N.(v1O65ĉՁ(@KfPnVgKhgKTֹCZG [Y`->;~@쟒P[Сͥ_xNdX48gG}x>b%E#U L)OgjKA-fk:V钢K xqGN4̲c_75I;6 kb$KbXb8iKxN$@XiXҀ@B`a?/Zb  JrUUbg`@* *1C`X3m_p;H|@7FOGccUt__*Y֒yl gΈMMp@,,ZAGưGpFrpB@=b3#0,;0Vy'ވ|>K˭®B tK *G1[UL$`2j/Mi*RVO =+{ZX°yL9"lhXeOZvVSԾa-a Nn{Ov)8+^u8ⶆ;gVYf;ra:ƽ;kYf}ʉHf`XaKo   K8ذӌ"@@ɰnXǧ*͞Pt|~%H!f[SjC 3 ˌIׁ`X_g<@6 6:&a}M 085qƃn0V5![7OljxU-wto>L7 aUR?L%?!'\cL\>-aj,%[R&M$=7 1`eOM۩7XfVên\qYxhCV xBK:c}fm6o9&' %ptx',Ru*1?$fIhk/uH8VÊj)l`/΂啥&m6@zؙհ,v_ r|d&*O]SVWlϵ+>WlNf S[9E8*aljhvװ7v-kp[vUAN2DcrVLQD'۾|n7@C,BrPZE%\BH 7,H@H`a  d`X2"P@â L@@%*0,j!aeϓ )XBbX[HK/g>mccX@`auJըvY Jb3 t_T[V\=_?V &06,.C`#c(XB|0V8-tߥz'3x8 j}N,Z'd1_|nyVmVlvKx+_S3 NIHkyŞHE-N-ryR0$jɴjLd_++V?\t{a2[d'f-!VZz''ꯪ#BKfbdp,Ӆ ch V*&W>Alv I5k`eFEpf " ʌ1V5Pol EN @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw @?`XB"Tx'ayC@%,Bw@q(DHIENDB`~Dd u!P-0  # A  b~*?o2Nw )\}n}*?o2Nw )\PNG  IHDR;+3sRGB}IDATx^ nEUBÃ"^є]ԔL󖙉Ԅʴ545 24, DH*HY̙wmX L`c)& ?X I0Y \ C@LЌښ ŕ}` Vj+g׌0YLj#a Ok&0jgX ,0빴`V=+:dhEFs`acHddaj&p B0A$]aPK*s,as bB+M+z9Z1zaPK3Na# #⠙+mz&$*XxAq8,=~ Cm-vpV08 ,0%$ΕLh+Xb O12 F#foU cLdd0Wƨ~`S1Y M $g,,A H)A-$Ε5XXă kL`WfX~DL Xă kL` /G)xӂS0aG!Xx;f@F('0ɀ5I]ei5-ca I+36,j&01.1!ca&fs w`jdvJa,BEWS&:f=U~0L` bY,alH";& T3X33L`9R5Zm%ŒE< A 2ܙqlC7M9ᠠ&f*sBJW#Srs=9ƌ2%0A5|pS3 R\uE`jkf}+XXă LlR#EV^Qr cLPUf 1jĠ+XQ͒ kh0 Kaj&0&He1),\JaUMy`"ca&h@pgt?sJEDEHj&02Sa jJ'+Q#$Ja, |qC8 jMW&zΤaA*U3c (O&+_b`ݲs_`8blA-`P;cH.㱢fmZ`28 aF NobԈA-IWRE)1A53=e z۷oƝ|]0t5Z}K}_׼u _/9y;1pPH?:蠠>1x[V #mUu{ R~\tE׸5tI{//$h4cJZ\V! &HdŠ177ɟI9__|RJiw|ғn'?1m)5b1 i*Oo VU3/H\uꩧnw>O|3Q͕צ X危 L`@x `a@ELoj*E/z__b9̦ o}nTo# u+f&V팅Cp -^ @]D1״^>w7=bG?q\+f&Z C@L:#G T)7Gj&QX_'znv5)1??Oq]a3Ca>p1A:F!f1IU`mƆUdx; h ,wqɐDUYg6twMoskrU%_S[?/첿Vߎ)oog%u{]Woڄygp V@nsnv\*F~~򗿼mo{_F;m ԧ>я~TLTp;gg~TDNgau=o|DԺ T ƺonnx~ Z|3_W\~$W 7w׷t;ik_Z}5lӷ2 _?A+4XC%rw~r5Zw^|_ I@Е&:=ګbny[jsŶmuQmoַ/}6͂wڰW#HA4uLWdgj>6<~/08F>#O ܍D h>J+_w>#;7M]*Or=duoiPeҞF;8YrcA$K]zNW]W@T(I~PiXui =3N^7o|cS= ?(߱6j6t%S ̷BFS_Ogդ5ѕf{J/|X]QW0pm_O?@OS:=!,Tpl1O׾ bSO$Z(u#`G {s6VR@eyK^RM? zz%|1Z :F1A h5 wL+F+f*ңzPR{NRe'TwXx_&ƺ fA0EʨKJ. h7ge|"-C|яHJ'rwP{/8#])A= {{eE)) L7Czrw7L=|yN^>Y(u_ F>(tit_&QG<qַՙ<Qct @0d8߈(DEzk/}-pPazi LD<ԫWPkojj7i7Ѳ5w?z[V#8"PֽLԸ0+4B/TT,SGKԣVܪSpy*ѿAzxn )kj*Gf_ ET֦jw:F]AT1X?(e~yEZ{Z=R/|aК\]u.[P=\]./UONT; ." ɚ0ŨqJ7!REkn9WJYx }/t4uCWΣOjK$~"*^Hx,˂Nw5 :csnL҃y cWCOڼ }F>SB7h߸XC;ʸv%W@\S-n5LHt_Hh-%b2W3(=$֛߲RN>$t 3O2#*;4ك׺ֵs3ۦlEvUT^aDxN14P;I-讂oY*e ,$ڲ|r@|قwkѶ\ .7/sdֳS3!i SXaYnǗ"L_ n*bÆJπz2գ5}Wx]_.WdSJOhJ &g]k *_ͭk[ڤ3JtI)EN_"Y,ٙȖ#9¿.|eX*`-GF[uTL4".3"DfR 凜$^O 9KBP@xcۮ2AP[ Zh:F`X 0DQEMOL`܊Uf10A\0%jšV^? \*PZSU>m˿302z9pgXS\~M]¥L>I?۲{ ҀȗlҀ% *Xq TAPX_ٞԣRloqI5jξ~E< q%+,tQ~VntMǁdRP륗p}8͸*|Y= ck_ځ7v^6w%}z5(\.8uz-yn6?v W\<'ه?.\cIAgX Bzg(RŚ) _=;NJ)&8Lfک#҆Z'X3WfPR֬t=Z4 R۾5]:(TR,h.h\RS7ES\Dv1AbP,v_ nVԳ싫YMNZ[@ړ.ǂ щ'&ҿ'*B+}*j4峮-yXT {7YDH81 ztu WB)ooc?zիN^W֥JF%$`XgĭH&`*"ojv5~g[s>KiJc|^Tt}TzԣO(lFBJgIw8q k/x bwb!cs[ೞ-:0hVfr]别ģN>ȣm>-Үfi{ID6}1QI%*ą^8^i76݌u 2"2qZM[U^oPgZ~>F.4*7x^ [O .M!$OHBxzv?VEAo LV^%XA-gk\^ F(WROc"Ǵl6Y:op\P\t$ԦwPRU3UE*zjN&o)סGrk:-Ġ2AD]; կS-ZyK[ؕzCK5+tetڈGI]s+_X8J泅UoGѕ:J600#eQ UHKf.}P. HKɮU:3I)f4@Ge-UЕMCVgN٨tZć[X!EXq;mdevpqc!iVʽ#5 JaԈ 4kw&~ 4,a}:9j&p  Lࠉz M9WqL`L`=9:Ɉkr5(dQ#;5\*cFT%JMXr0CW;13`UIj&p4 s.A0\*DZ21(2O."P=Z1HqLjV'\Yr0X{Q#&kt57díZ1dY\9+`åd\쁌 gT*XsRp1c1S qhؐR@< 0\Yr0둏Kfs4&f+1F)Xr0CW| iaԼi & T3.A&k,ƚ+]eVdu?f2)s9&fm|laTu1ҦU℟k2Kf`fGBk9 T3 TaQ##.YJ c ](sp ;4M" #h4c͕2}+:1c_bR^,LP&_)3_ƚk2Kf`Bfs81Ad&V cL9(Xr0CW0X0JU,"|;8KE16TAWbU?lڹf J1'Y3Y )&z 0\15Ĩ ,",09d"ȑdX P+Y$FdQ`b?53Xc A5WqL``i@UgB+b mZ֙@h-EF!$3\3yEb>X  ?̆0X̕`#E f<0ǘZ۷oKr)Ɠ3u1TR >rH \:CO# %bB+f1bHNᅢ>я&̐*ZM+HWLm8))&4'.Xb\16$'iC5ILBY3lF#1A`=ȤRcJg, jk&0D8sUfgu0Sxŕ2 xptu t.(W+m{+m^qAMb"y1S8Ƃj:[&,F貤)Uq$⼅9H`r|803 R,6V9Xn 0oeF!V*_\caP+[L( cekh3^[n` vLC>G&RÌU3Ja)2QoM [c qXL`>d17wFW]-le $mT0 &X:Bj&pz K 9V: !-1Aţ~*vƂ銙RXxJSFWn!)qy;&f:yXLءj'Ն,jt?xT3#]`G=rG0Ja$'U` X,nXb c|wI+-X`r6&0"&`et)U,jzb޷dMw){Yr9uSenrj" +Θ Qƚ@ǥ+%['Ĺų+hSqldڕS7M*¼dXD*%Yc1'3&.^`+vbW y9bO˯t}o8fb׋-KV.?ttI>辚R.}ݔPʮf]TUR-/+'٥MZVeG1A*F sƆiw$f#LJc kAwjц{.b+ˍ' K(ѧt_%.n,$"QR|U.Jau~Vjiztj]WtWK-{,;~A%mu*KzxIG+/xZaȎ `P6ƄV2 ,'̀z}sp%:E?O/Uz2:(c6jK6($Bm2깮}'S]]% .Rڣﺭ:wt]EM#c% vIc["F sƆ4!c1t SqQ^N6G(qY*K.5_[4R#oٵ5jqHTDKbV.x%?WcJ٫cM7 j 2bu$U39s-GWRزj8>.$R&%(CƸ1tDk\EZASLv%ltT#zZ1n?}IE1D FYcX V `Áy.XLhA"#Lf@L/lR  _\l_܅e:Jb.++]nijDy뱋Yul/rھ6Y6m]*^`m¨dp 3CWZJ3>aISjKYw-e=:v"X̮}32p[ZOP8-鮢 WmX,纫lzVje-[`hX$z3Vy5rZa0AUP*dM 1Lk98תosm7AI{ =Zjo y&=k2V,Mgו5wZ2vήgB1#]~eNҪ wDTb8-}ϫ?.umMz)~ >z ?TE|T#XaJp;d0VA|߯:c im췶;*]ۻ\y9]aSdnˆ*L|AAs *.DW#2.b L@- 8u'0gaaXWVЗmoڸƦ1}sZakG[E,xZ10iXLhUzO70G7NW%d7+YQ+[\.ˉ۴C-f -ial5e DN+1AdȘ JX ]M=`#դJXв*qIm-OY_b LV(%cL`KilEZi ׵}| CvL J㲂Lhe|?l_ҿ;RFŶi@90j06,J#"ZţORl-Ҫx[dc*%a KRcL``>xUqUeW*]e: fRtq|Pg&b"lA  283MU qUZEN+Dsf{BHrfՊ‡Yf­P `bFnJ5RYQͫHRSuA"umJGFZbXdJM3k 2tZ#kNAwWgl^ xno5bB1#8F35#nRPj 2t4c|bSrt`un櫯E*+h.BQ=ArZa0ArLtޒ4<7DJ]Ҝ!u! Q+*578,brfc,&brn:C.+`vN:`6nwy^jAv]H˚"R~owO~Z:`H,irBn]ee^ro}[a\=CӌA-fA'l26lN' U ,deFT4dނIaFLJ e,L+ a X⃪xoؒ_9 #[N-8Lia 210P2 Ƃ1>AV]`MU=򻿪)A2iW-7¦0&*20pJ>۷o߹bu,?H եX¸*Ж.8)i1l#)59cZa0lԆ ,@ -D_tdqʎEs}kZMAZ8pBcfi {U|UU\jZ 3Ho#{YX4LHS1+$eOEƆj]hƏZ77  c1,H"ZĽ*4ʷ^m4֠Q wH&pB"jf IW3JAXmg0C85i z{1ԈҠREǘ$``_Y邌 G)sjnZf,X VgioF)20+g@3 #}'E*]NmY | Yg#ucӛYkzⵑjQ¬b` ,Ð 8j ƱƆeV"Ik&Gi5 FI<ՌB}+fQ>`m"]i_١jg~G=J=y[rX>~>7!؇?x3V\1[7`&r@)M`0q R'\l"c7wqn5XgyܜScx>=}{=r i61AddR ZL`$,7\'-oyˮFnu[/Zw qWUsu7*2AEUR$LFcZa27I1mxHȤ^ "c=7Vn'-EHHDzJֱ|F1\j3.7|}{_:-bisJǨGmnsOZGz|c;ץRueh^={{AʟVZc0jRv3FS/NƆep1O:I#8B𴎥 {?s?ZBL6=OBv}1R\.qۖz>эn4Z{Ѓ959,.wNB)%4Vq v;)NAe L_@EjS rEӆfxb h.jc/SO}#JnpYG~[z~A-M(qk6. V&? *}{=qj_%foV)PA /ЯWk_*R5g0Ċx2 FW$\isH3W1~Y]TVﲀM쵾#EWcGԴ-& CZi(r`̐t{1Mπb\0ǝjX] c#N+yE&fAjI.2 H9-70 65t"S %dh5]ݺbimV>fͣmpcnZJW= Fzf0Y :b 8xu,̂vG#~ zdquM+Ѷ`uـ{J2֠RS V*N-΍dgU*5 V@й1ԤM+ lbYH @)XQσ*~Rנ״{<[|Z'%-` `E2HƊ領O"t;@ 2êU7$*0=&"-L)iT.c30 SksF]9dF =j f1XkI2fp20L |QDE"$AYCZ" l1"dhENufyܵF*őV|3H\e=La,̂Ot+1Dzմa>崐RND(5VJ&i<ؒ9Jfa t.uK]IWuj3*dQ 'x`2c%J CuRb,ƈOdc;]9:묳A!c+Ep9\Ez{2\$VC zq8,IWR&ZuWo2K%EHqi1J)"6JEegIWTM銙ta*uB߆$!cb Ɯބ):FW1cD'Ъ༊ym8)c1IW]kbڑY+'9u;<r[9b<ܕ)(h0*(_Giח $]J͕4d(\/l;蠃LP=qRO=pi勋1RzHk qjb`K>FOTgVp aCR'pADVYp1OB1-}!-1$dRYtʼnjgJb>AV#L`atE*9FqI.(TPXdv\g/( 2F|+)E]I;IfIWcL1RڬkErz~7K5,l#RfNb stU^Oq U)ogRH sIj%m۶M=^X`@FWRc st29kb`! ]ؐQ+Қ49X袋<@;JI5A7NA *S+|ҝRcJ]p6W[^} h A`K>FJ Ex-,>%+ߌ0X0t+9&!#-|k+勛.@`X=؃`,,0‡U4JtMyv@ pO+1&%-[eMAZ(كcCR)jڬ c nt$da4^Ja`JMAZGZEtHdTJ\ՄLJ"V"a V s LPZH_tXHq[0YR#+pTYA,0g|bs9.HLT?g_V16,BZ1J1RV~n- H( XȀ.WfCWc#5J%(1F0`ʷLL RLT5'bS T  ?+X)10AibڮwX)F IȰR\*٫FUdf*&"JCQc +YؽɂlPKUƆY(mL`a"#|G0'%(mZu?`!G*#I+_(̴aXj;]aAtJ[mftUkRL`.c;b$0&F+X)10A3]37g v1žk&9ǚ'Zpt6'X$vX<"A#ˑ~)oԚZN--f-}1L _='c`"7\յ'p  rH$|yR"m%1HJd1sI2"~El6ZV s L/&-1J_|9[ī{aNoVVYA'Os2nDbH4JaO+̆MAӑ%0] ~$|¸1"f[̆ )$cJu%rU*=0%GZ9Ϡ]u7K)tqmg1fV6 0u@WR#91AT0.d ʆVnr3&"'pqY=.Gw\DWR /(eE>@tA o1vEs00bٳ 7\3 , $cJ'±b ($Q*\͊e3}YA|3Jٰ?AmL&PeT꘠OK)s m`Jd0b>ab'Ld *']evuTu1i(ϋH Sj(eYcRj j-<)] W1F|b X^|z)R"zEVY1^JɤJت݌˱b9!`C%a$]eXRX`#)VV]c$H .Gxp%$t.\* ][7\0 i!Dk@8o`d^Rmhg^1,Z󁌣 T8?*]1`AԤz5,[ {d^J)B*E1\>C%`0o&k"m۶S3 i1QVAt.MXsL+G ̌H0d~-9)iMJ]7a1R]ceGJqp f 0t,+sVVO z^ #nMUw ,iE:[k1r_7Y`x}}bl]9IV];V [7b4jQAW6caQ{ /,i%gPs`;5bF!} `nIH %S*RQԴԊg #xHsVeʊQ拜j*s"3.Ḋけ)6R>iGYߚwbrt˟vUݴtU1jpw.&ujq +Ȧb"ԥgd[,o U};i&孱X*m(jo4V[*j[* Ҫ"WEpSJ=QzoHg|=?p |3<@+}ղU`+P Ul1/:FZ3zJUȁ렃վ"1, Xnu[u`Ko{OO|/| 9RaE bGE{ ըmy6d(]F?[zwR#?e"CWjRsoGV*j%uqR~T:[Rzֳ<ȫ^2:dufbiBJW+FZS*dq>* F VSnd,WZ2 2w/}_g?"'?_kZz3KT%]S*:cP1 @}{߻pꩧ7x`-8/ ԔWx#}\:SPZpTheah)/Ͳ+[\:tXП!,]DEo{t;~S$Zox%"0]B{W5JE{Wz8?jS=<ꨣDяXJuikJk~?)HYmӕS6%+ckxY)5CX16g>>R(b)#]JJQ XkAP[3N;4J+pVz׻g E{/%ieIkl&Uڸ`IkT&k4cA%̲UtHcl.]uޢ(]Jis"BTPIŴzs Moz$5>S1q駟:̲~&G i *]%_1B+*lM/cl:]y{sя~HKRGqr1vMnb+DBFOSj12B.=l-ϴ2U*ͪkT+rJƉe"OЕc:j`L^FE.gvk[$XE^bo]zg?[.@͍XJQDPwjrgqߦuRW&m%L:Y*4 ;XVaW,G~; :>e8(JS܋a,>ZÎQ|()JZrelKPMJrw].٨#V1!JTkì);X>`ڇЕsN|,{^-55iv)8O!2iZO~A"6Vns9A@Nj{Dk_I-e)9\Jo_VyYtUIhcH]IL9^8C--=ګ3?lQ6y(]w~άSqZ{yNgesx+ַ6☷'|CwSƉ4׸5iO;[r3퉷2=哇&F?&i*"~@N"C8X>('{S0nN7 r]MXaqs%rgp*IcWS-#ibEx\cz1DFV]ڛrPd#627},W.*HW2rp&pRj9,爹~[|ߏ'=kQ]j|ŠqSDLsV+FZf],jMK.7ZEiM +gpkRh)? =oH,=ה3칥.qR[hsRv4e"{NJ%V2%UȞ.+8뷸"kk@Y;\>a+.*DV8*%rC|:c-Zy鎾Uz~1ݴ2:Nڴ Z•m-)OZ\[T,MUh@P)FOcM,'DM"CMȨ?V"uJNZ9); MuJ*M9;>N{alΗot_<Fp.ER>[uSuYniO{څ^X9Xֱ֠$1֨6xPdL LЌsŔ*ԟ(:#~҆OSohsޯf5 R?X&+/3MS"ҷڕÝuv^ӫϵSӕ:>V)Rt%պNiW(Tdkؔ69y:6k4ӛ"!wmn6RI;5U)~Myar)ݞb).m5jЂ0GI8Vz%33ڙ6jBa?T=rj|IaV%-}Ы~"B[}@W4c\{NiSuw>'sݰ/;ߵl\ \1րTނ RʟhFүKet^:d$XLY*|֭J賐y&ikB+W)m6(aPخo"!z~iNP1P*~mge-`k-FBͫ1'ڠt("%6T18L3(M7(hTiI[XpcЕuK{NiK;JGKYR:s:މ')eIn~tjL OרmAH+OBUqف1ؓqsiz׻^NR7NX+ sJ[Qr]#*T[ nRu~я NkmVj׿~~! ⮫o}[9rkձ@ꤕT"-eƬLN0Qcՙ6 |G>Қ g)3 Qguc2jf:MZӃT嗑?9a)-A.s~]prW"'Y'W] [%OVm}Mj Pm,Sº_ &ZAf׸}ﳥnQxG:u~9Gغ;F7 c-mןIczH= L\%T&&%AObc SuLTmn|<]i}c;fZ|+u&gn)hW@_'8ҦÐjiR.?^yϵuX~=$}H^tEzROOW'wws1?S'YSAo~ju*UTLu5*׿^7ݥRDvv:t8͞Zo~u0kWk2+ kSS+ԧ>U u}ߖcQggEd.{J;=mh]|;,vaRo?Ci.WG4/{egoڥڋ?t̍6&f\H~?A~0f&<9{*Sz05?DԴ՝Ψ jcd@ս=}P8@XԜ7ʹwC&S;uP>H^ƺ&,0VEb'~_,(/IO(ڊ4#қ~< txPA4f`')j oJ&VЛAr͸ʰBb+f"j(?۷o/L+ X;]5L.{duås: nwjX5 ]ƻJ->3Zw-0xSaJ7 vOJ4}V:xtKpըլS-"ӳ<w%7w볪9JGڥjܺZ#|z:z ;D/FU+*i z (`ż\0+#h=?:m O~𛀃֨'Rs0Oc%rgEWT]_]rZ!ʓT%;8Gk.Z# E^tCsOWǺ$SjTS&b#-ӕ:VFS9*iE} *+HA=* VӯA-i ~}gmУ>wYܣfD>c1:?LazdVaȮNt5 .XʺUIku2'y~-aq5~83 NDZDpu$lHW/[0wNH &b$+NWN%a2ej:Y=ؿJZ&=U$yݲW ͳ\Oy:4d=?gK3z$<u#Hn(2S4t%ulhXHzf?]e6VY8ŏjUN ) /WAv_۾@25s0٬Xi`+mUFe}R+q)|"-JZ96,[ʭEi%8@Y8ee佮Zد6yp]}zOρdWMMWNJZs,`1{TXŁg&=Zj'?z)rVhnvX[ZҊ/}KiP[ ^v2rWUQ[-_~6Plqꩧڼ#|:Lg8үnrh 5C:_\t%k;"F[,X Z{ng8jaMݦ#pJxb#ݴgOY;GP8"`>j+XR;:Ǝzk_~v:)NRto})v_iJ'p*o*jVT's-nP:mLfBKj'[;fT:7|մw8! 6bE=ՔMU*;"_zUj8*wXaKD%d#[01lI~+ULN&tX@Wn*o` +UV+U:w\UF0JUAo,0U=At+oetWd"֤_$h=1jr?T5*1\ER[moIZ0v&]SnP<*KW1yqAU fH^8㭊\ UUF]u'8*F싱"F~*uG)v j ~3sd[ LHqA9)֓ LBbu]ӽȩ),LV)A4TE@ԔB:`!A^cwԯ?$3T e1+"cEǘ1_t3"=eȑcJ IlH*5⪵_ `O.3ULtA-f NZ)1o9xpJVMR9hRŒEU$*,Ɔ8ÉY|, BOOSR1QڅVd&pEj\(0X̕J G;$]a1Kv̆0]O?*-,b8\5( ca^3^"as ThE֠R(cM`RQ-80ȌԪE!5A,>Scc`1W9`810%ƆRX$9AXjLg,4uO``S#遘,8b"|`/ cLH^"c1*Ja,2W`($I؋_C+EͺiJf, jMWeǾ5 ,i6K,D 왡+8sqc1^3?X` "9B0 /dAꅱ&hpoc`1M )nՊA-G" 3R4[Њapg]Jev  `0Q#f /B+-C֓R8X31#Z cŌc`~`hEꅱ&hpFM&:̈́Vdd`2Rj&p*L" RAjK: Z]w:$ aq5Aus L`A*՟ ,kRXA4͇0*I\3r030D@f(p7bXd6ά`FejJ1j&0j&0P-0hIj~A_ )v3e1xf3ގ1Zb@2f8z58 Z t5'P{sT[rNEA|Ac1t5WduX)F\T[ܿXă "3OX53+X`s RL`Њ cLЦVnؾ}T=3!h L`qC6Ȅ0Jtm۶1K71V 2ze!jJ豃&b, UQl}p&(GT?яʍ)DrZLh/QcQ?T81HAhiSبGZ#ĖFfQȓ)'aY" BH NKi8Ff4F";jp |'ѕua QDʊ|L\qUeRt{|Er^pJEe+]D ̥o'FUXTaZI(d6gĕb՗dfjՆ`byXKf*T*Ӏ UngYv0FVʄW[i*]*tf:A-ńV6&9B:& dd ڽԀvj]2Fstk;p&pR녌  oMZ C-P-`ltŌҤQ#nƪOݚ\CuVj&0I!cńV[3 9ֶz3ph ;,B*q<D|m5,HR !LWRt\ňck z F 3fAA km*@" 0\ ,Lq#TpkSs5-8bLԴ1 )+zSXXbG%p{Jqɲʱ@F惺 c1L?X2V$B1A LBW{œ,Xi^*⛋'&XU_,D[*bͳ\銱(f=@T3TR8[FBb]_^e8j 1o`oXdc {wĈ/az%Z6J^{5&Ű*(U`d`]> "eJ#G/Om|)z2p9cJ;n8!} oe 1f(:)/f,1jha6_ެ-7? jK_DcJ$_P:e"QUL-e-}6J??}kmjE|?k~ixՒoT;n$o_X[k#kG"_G3-Y>l X}l ē&\LIR=J2,Lq#.M$X/]ҀsBQ)X\sSjvbqoYKmZl3>xz%K.Qr}NԽv}ZQmvPk#jLu痙OyZ,Ԛ]꼾zR}T0gch݆Yo\&l˰Ȫ)U0٧XW0A,R!Qі/]ZJz#=4iX񡵴]j-{PbS]wj.#iZ}ijtT\U]DQ'Zʟ5jcվd`]ZcL#|&F\"FLfCLP䲍KՒ8XY{ cԠo5Y]hhޱ],o0,Չ}ò}%C+& 4jLw6J[7 MW,W }.bKДO ueQ=_y _nDWXBU1VF[ cḊыeD"FLfCLP j)n%'E`_'Atb"!%ӂSν%Z[S/xKŤ.Kӹ部T[$iY7֓"N}P U^df%W/Ң뱋w*u"`  2ĥ0,L '%߅nkA|o=m Ji+Bmc)ʉ?IŽ'.bJE-Q޺tʶن]`KC^릋M}Ml"ܵ7ub.&k"Uxe]R&Y`}JcoYE0A Jm߻L mǁS[ژ%h÷ikpV%m$]˨KQmֽj8CۛϪ$[%֊DA"Niybӛ/3b ^i.7u_H^)\q9[vRp*(LpMW#]F6X7t%%MH=o߮u-]$b0AfYLܤ&y1ˀR5n CUl%_"3\FmL&88ٝu*6ƚ0Y *F |n<R$ <z*]%.J*]2 DAg]ʡ+0c蛘u2!ea֛uN֨`NIVttmc :!"E#RJ 03B_tE_ϒh[rC99r)ӡPwW3tUjc&Th׷Ü早Jm-lI $ {F#e7 Oֱj&0?0j;#|KrJW HH"Do"JN ͵^bw"29M/3q`q7@j8zKdgL4q9qnZrj JdaZ3]l$aAGSjeC+> aؑByqgcC[LHfǎ ]uS6VV%/gaq.&hTiFRLVXϡzF\e.# (#`!Yo9b2a}ma5jgRxITpC+ 2"90_:+Xbda1Ry'3O(15UX&/G!9eui)LU +uakMrDs 8L cL"TJg.uARTL9DvL&#Y'g, m1AXB"=(5Qs7u^Eipc{ 7p)a:cNX`H!j>UmRfZa8e'd, p1AHYt;^tXobQHlF)80F! 2i6K2cglظ)) m|.&BH0BOïX-(.҉k` ,tŒ.&uR)Daqң(ʯB Y "+KՔy LP8P[c}iwstAfq$cJ`Y1S0QUcj17]ւzaVP  cLP0M2 \LXY*E"`qY`edI=& cLRX @$b{=ʀ\rI<LJҨ0#ũZ錅&hcza4K0L`b5F0aN 2Y I$"wJaֳ(HqL!&2A*%Y$b$PJzSd]zdhgօlb  LJa "0202X,0aN "9u,9A@AHz5XdJ52XX`Ȥ,{!9{%cփKQNca` "R),!LW$b⸊7W;  L ISR[datXX`j&0߁`pL Rs4"j&0flbDF!T ~`lH"; +HMxYV|&0~sJ9 R),whx`XX0ga#ӛU$rYR`֛7]L>V~3`H1Ȏ=J1z1Rj&slANXT-P-P-P-P-dATV@-fQͪjjjjyY2ּƳjS-P-P-0_ T9IENDB`$$If!vh5$5$5#5#5#5#5$#v$#v##v$:V l4n06)v554af4$$If!vh5$5$5#5#5#5#5$#v$#v##v$:V l06554a$$If!vh5$5$5#5#5#5#5$#v$#v##v$:V l06554a$$If!vh5$5$5#5#5#5#5$#v$#v##v$:V l06554a$$If!vh5$5$5#5#5#5#5$#v$#v##v$:V l06554a$$If!vh5$5$5#5#5#5#5$#v$#v##v$:V l06554a$$If!vh5$5$5#5#5#5#5$#v$#v##v$:V l06554a$$If!vh5#v:V l4065"4f4$$If!v h5<5,5,5,5,5,5,5,5 ,5 ,#v<#v ,:V l065u5 v4 kdD$$Ifl ( T 0\uuuuvvvvvv06((((4 la$$If!v h5<5,5,5,5,5,5,5,5 ,5 ,#v<#v ,:V l065u5 v4 kd_G$$Ifl ( T 0\uuuuvvvvvv06((((4 la$$If!v h5<5,5,5,5,5,5,5,5 ,5 ,#v<#v ,:V l065u5 v4 kd?J$$Ifl ( T 0\uuuuvvvvvv06((((4 la$$If!v h5<5,5,5,5,5,5,5,5 ,5 ,#v<#v ,:V l065u5 v4 kdM$$Ifl ( T 0\uuuuvvvvvv06((((4 la$$If!v h5<5,5,5,5,5,5,5,5 ,5 ,#v<#v ,:V l065u5 v4 kdO$$Ifl ( T 0\uuuuvvvvvv06((((4 la}$$If!vh5#v:V l065"4}$$If!vh5#v:V l065"4}$$If!vh5#v:V l065"4}$$If!vh5#v:V l065"4<7Dd/-L  C (A DM Diagb6,PEZfaa1ux6Unp6,PEZfaa1uPNG  IHDR18oPLTE̙̙̙̙̙̙̙̙\\pp)Rz"31J@`Ow^n}"Df3M"f+3<DMUh|:Wu3Pm33MMff3Mf"+3<DMUh:|Wu3"J1`@wO^n}Ҍ"Df̈ת33MMff:Wu3(P7mETbq3Mf3Uw--DD[[qq3&M3f@MYfs:WuȒׯ33MMff:Wu3M&f3@MYfs:WuaфbKGDH cmPPJCmp0712Hs2IDATx^]ۢ9i{OEQQ.&$ך^ !Tm/ @ @ @W ߫sb@10A࢘:t2bGJi z ȑť_hrпV v'c ^<,Ÿq*:KIɑ/o''''u9CL7 džRL V8Dt/v$;ϰ88]I1aLZ^1)y|dP1 n9op\kYZL EqS}&s;`:U]cLt'D48oj^Y ʞY +xj##6G:?_c}*tJ!$??8tl8`x2p1~9#$~AR1$•dsgYFdQL[+s 5nӸDH Ҏ]1gsT*D?IR/7g?O ևZ8? |?n. w)0YөP\^'A;5)&ބ|ߎS:=pgV:-@1`L Ί#ňXB-*CFv[pH##@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ > att n*px:iFt"@1;M L NYg.*f R~+Ӗڞ13#j;6MO/VOwtX3`&wUeN.oH?`SSmWk9r((^R`cJ 5B1ORcB5I,bSCBSm.Ĺus5u)58b^1n.-a*&7+[nl|[N6){S'U+?g:@1URVRILw#Js([ 5 &3?Ft-xd|ioM˧V:FՉob27_-o@+)Nt{:O02=}cKe{IkX4Qs(}U?j2v>h WRxEi(yn<_V>nPELcKe\ NYrq_Sޟi}aG͡_:.1u̟{U]U"MwŜjT2Zˤ}ŒYI5Y'A@1p r?;j~k򞕿ûQLDzad##(A3ԙ-Ra4_ mk*2f9wˤJ,l !)>8Q 0YFB1RZuLJYԬB1$5Vj2@1ߗeC"f#TNbܗ_eٲ|òU`G 3*wx\);f6rLLv`# v' w=/ۺPvVtT8OvQ~q)7KKԘpPfȒ]uԤ({!90&en|eᘙY׬ ,t˘gń-u졪a?4kLW4~hRg帪dNT>9?vIv)᭜)b䨪bdh9Q{6H <ϕYYM-e2#:-,Zm^Y,:aBΡ^և,zL.f A [ I\DIգ2e&Ho@QLACI^b&T%Ƹ31ʞQZA^Y_ % C듚<@/&cb g31YWZc1aQe_)lGyl$[d{п(z%feRdkџ5NʢFs_]ePe1T3rKD?%r9jLbyL%6|}$JR`O18~A`A!Pc3C1~sʶK& 4T՘亘-3Bmǀo]&qRaHA\?}xc!Z*<%gCtYx5f(-Tp<Ѐk7KU}MD!!Pb{PL?Ѧdɀ3  !@z.YY0* ̦o5Ի |NjuHb jl(q h3o5/;w 3De ]We$@q+FSuiG~*8rp!9l~uJh?UrUa4*Q9h(ĬEH RŐA C@e43g]*c&2#)Q~za-Y[X!>vgawm_ę̇u+X+lx7K#w5 hF!8բPhp7Xkhm?Q(f8 T3qR.FU@}٨o) s #ArT6Y1XbԴQ PZ@HX.c}ɴ$T%HiAwZGT3(-!ġ)U}up<"%S/@{9<}\*ʤ&Y#)iQ(=L[`FV@{q^!׈_uA!AFVA`3pUGiu0i/U28ibhpUbV4A`~! `4uF+'aeU28i_1GHXC`~>a]ъGXY(fL#NaeWUqϧ#UV4AVVA`~*\|?BLZ iL#NaeU28i_1GHXC'\+>mb|pòy{/FZP~7bexG=X{(c}܆^7Sc{PLtbMXJ`W3ˬ XSB [S 0e !OSA @ |H9`$ f@}2'.@5@K³Y(4.Ӆ#G YOмNbV\B@z~(6ɨ4v I@+3Ț]VWd?=*g3 y% ۴L""˝H+˦O(3Ƃ=QXx[ @ ~γ vZ-S;!F$ŦgX""2$ťoW""eI;HI1DD ieHG1i;s!0bvJD4'1MubI"@`ŜC@C9- "lO""h$E7I"@bH qR ~֘1ab$"HB@_ɘH(yV ~)&gI""aH!$E!abv$"HB@_Dy0#P0rw{ !A@B1렋HCb 8/xqрǠ31fO103!̔M=?mA ӲYnB@(M $X66(-.] &-QNt $JP LB1+3Ͱٜb3S )F,PbTC5sC{Yձ?Xc@1TC5sC{#l@1PОb+ 5㮘Cd4phv\cUX٤JHqDfe5rYJWp9,wDDjLE5c Z\|95~+xm%ʊ@H뇞Z\[His)KxRYU4B0ȩߚFD"bT  $J|qר("` QZ\dS?1]L@@ȥ :"Z?~0ZL@NOV $HYl@ȡæ()H5 .;ʠĤ||S.8\n^1EhlwӋ뮠ń@>JWOm oF:vD4k.(u9ۓoJ~e QsDгϢE"mZE@H1-Qe $JE@H)-Qe $JtYE@H!-Qe $JTE@_zfh1X7ZGGsͥw#`\!`\4v8܍:p~t4:p\p7hnhEsiGGsͥw#`\!`\4v8܍r:CG @riw8'0db4gEߴ+FVdb#ŀ@Qq[Dvn,(f :[Wg-J)eE@B1Ÿv /68H4\$B@_\ W !3@ D BZ ~ԘhU"uH%ŢݨDD:HC1M "bܷK""h$EA "b$"A@_Ċh R ~*jM""h$E1 "b$"A@_ɘh R ~)&gI""h$E! "bv$"A@_Dy0#:|ArS{!@ 0@(` (f"f (ƀIyE%0#`\dN+B (pt4"s`^hEE +0@G.*J(\aF Ȝ$W:pQQB 3hE$" р W0@G.2' !`\TPŒ:p9I0t4ࢢf рIyE%0#`\dN+B (pt4"s`^hEE +0@G.*J(\aF Ȝ$W:pQQB 3hE$" р W0@G.2' !`\TPŒ:p9I{DyK  _Toc20049401{DyK  _Toc20049401{DyK  _Toc20049402{DyK  _Toc20049402{DyK  _Toc20049403{DyK  _Toc20049403{DyK  _Toc20049404{DyK  _Toc20049404{DyK  _Toc20049405{DyK  _Toc20049405{DyK  _Toc20049406{DyK  _Toc20049406{DyK  _Toc20049407{DyK  _Toc20049407{DyK  _Toc20049408{DyK  _Toc20049408{DyK  _Toc20049409{DyK  _Toc20049409{DyK  _Toc20049410{DyK  _Toc20049410{DyK  _Toc20049411{DyK  _Toc20049411{DyK  _Toc20049412{DyK  _Toc20049412{DyK  _Toc20049413{DyK  _Toc20049413{DyK  _Toc20049414{DyK  _Toc20049414{DyK  _Toc20049415{DyK  _Toc20049415{DyK  _Toc20049416{DyK  _Toc20049416{DyK  _Toc20049417{DyK  _Toc20049417{DyK  _Toc20049418{DyK  _Toc20049418{DyK  _Toc20049419{DyK  _Toc20049419{DyK  _Toc20049420{DyK  _Toc20049420{DyK  _Toc20049421{DyK  _Toc20049421{DyK  _Toc20049422{DyK  _Toc20049422{DyK  _Toc20049423{DyK  _Toc20049423{DyK  _Toc20049424{DyK  _Toc20049424$$Ifl֞5$ > F064 la, Dd}2EB  S A? b H~ }kґgxzr Apnj H~ }kґgxzPNG  IHDR}2FP$gAMAPLTE    # !&0!&%(**,..111555#76:Q:;;?;9?@@4ABDEFFJMLPOOSSSTUIVwMXXVXXYXX\]]aWbcc-d)^dchffhiijjjmnnoobgppnppppprqrrurrsssuttwuhrvvvvwwvrywwjxxzyx}yy7{6{{{{||~||p~~~~}8}NnąG<{ؘ ͚CVKBg^χJJ[%DBJ?JEMBMEG:K@NJGENAW^NEPF;KHMBZbOGV`hY^t{kۯ}ŋɏۏΛt9 pHYs 2IDATxXkHK1]>4i:XG{%xCo{% /!x/Mn_`h k|^I,tO\zU1W6{Q ӳUm-T--юj}MhU㕯n0_%+A1}XDz.c3Yx> !$?~TYgώyۿ-^GtI]s*4?;/2Cّ?9jdtmu=^?y 㻲#8#^Vqߧ@[թ dq%e蓮&Ħ. c۟8J9dr^P`92$SaGg?H @gwh~z_:vb=@9BWZMUIa U.$TݷlBMqF;vtZh4b*$vI fCtIY"ư`dmvjvl=NpڕڪD=8j'M9UBljF GfwY~]8y<0CA#M"آ%yڵFo Gƃi޸Ei,<+쭼@7z]npHu S.+t`Z`VüwGwG{_&T7 ywx #£Oѳ,ހGwWwCXc k[ 34'2"s4zq _pslt?8ig`zwnZȽv͡O'u][Jc_y.=ШI#wx!c&˘l9l|gVU.V>.)kφ:=t[Z0㾓ߘ%Yr|[>}ko6=pdYqM#u|p6Z|R4$,;c8MГ75z8r1߮b9?ziaoQd3U za6!zXM PSAE|(ҚR"2~"9D):GEKrw_HM=C'O( 87B G7Aej88B,24wG}7d f] KCDZ€c1w<`MX`:ߣE{ێF6Ty;m z$TC(;YއU Ty TpW9+~רdn7FeGoVTպ4n 4mݞ. #k#ekBݹu4ٝr$<(Œܣ zae)+KAK~~R9??DJvwc}q dx=MAO3#{p@ 9.t] M+ac' 8l 2z/B!aVm]d_?Dwpi=_\lw)$Fp I_+a]|8)SgQE4xq 2]ʜSQn`qtiUKOaeCq)w5`Lm%tZjEkx,Y(FK{NG;``+ݎ=/I8YJnK#qY} ߐ6ˎ-/ߡ$K:~i:"v= .5=pBWSuTg9ٱž^cP7ngH[f7֨ ծF 6=;#em}5vrU3RhlK{vJVs*o^>C桷Wܧ6ӓhz&D{+dIENDB`, Dd}2EB  S A? b H~ }kґgxzr m&pnj H~ }kґgxzPNG  IHDR}2FP$gAMAPLTE    # !&0!&%(**,..111555#76:Q:;;?;9?@@4ABDEFFJMLPOOSSSTUIVwMXXVXXYXX\]]aWbcc-d)^dchffhiijjjmnnoobgppnppppprqrrurrsssuttwuhrvvvvwwvrywwjxxzyx}yy7{6{{{{||~||p~~~~}8}NnąG<{ؘ ͚CVKBg^χJJ[%DBJ?JEMBMEG:K@NJGENAW^NEPF;KHMBZbOGV`hY^t{kۯ}ŋɏۏΛt9 pHYs 2IDATxXkHK1]>4i:XG{%xCo{% /!x/Mn_`h k|^I,tO\zU1W6{Q ӳUm-T--юj}MhU㕯n0_%+A1}XDz.c3Yx> !$?~TYgώyۿ-^GtI]s*4?;/2Cّ?9jdtmu=^?y 㻲#8#^Vqߧ@[թ dq%e蓮&Ħ. c۟8J9dr^P`92$SaGg?H @gwh~z_:vb=@9BWZMUIa U.$TݷlBMqF;vtZh4b*$vI fCtIY"ư`dmvjvl=NpڕڪD=8j'M9UBljF GfwY~]8y<0CA#M"آ%yڵFo Gƃi޸Ei,<+쭼@7z]npHu S.+t`Z`VüwGwG{_&T7 ywx #£Oѳ,ހGwWwCXc k[ 34'2"s4zq _pslt?8ig`zwnZȽv͡O'u][Jc_y.=ШI#wx!c&˘l9l|gVU.V>.)kφ:=t[Z0㾓ߘ%Yr|[>}ko6=pdYqM#u|p6Z|R4$,;c8MГ75z8r1߮b9?ziaoQd3U za6!zXM PSAE|(ҚR"2~"9D):GEKrw_HM=C'O( 87B G7Aej88B,24wG}7d f] KCDZ€c1w<`MX`:ߣE{ێF6Ty;m z$TC(;YއU Ty TpW9+~רdn7FeGoVTպ4n 4mݞ. #k#ekBݹu4ٝr$<(Œܣ zae)+KAK~~R9??DJvwc}q dx=MAO3#{p@ 9.t] M+ac' 8l 2z/B!aVm]d_?Dwpi=_\lw)$Fp I_+a]|8)SgQE4xq 2]ʜSQn`qtiUKOaeCq)w5`Lm%tZjEkx,Y(FK{NG;``+ݎ=/I8YJnK#qY} ߐ6ˎ-/ߡ$K:~i:"v= .5=pBWSuTg9ٱž^cP7ngH[f7֨ ծF 6=;#em}5vrU3RhlK{vJVs*o^>C桷Wܧ6ӓhz&D{+dIENDB`1TableoCompObjjObjInfo$ObjectPool0)čh%0)čh%      !"#$%&'()*+,-./012345@9:;<=>?^BCDEFGHIJKLMOPQRSTUWXYZ[\]abcdefghijklmnopqrstuvwxyz{|}~] i<@< NormalOJQJ_HaJmH sH tH J@J Heading 1$ & F@&5CJOJQJ\^JJ@J Heading 2$ & F@&5CJOJQJ\^Jf@f Heading 3'$$ & F @&^a$5CJOJQJ\^JaJLL Heading 4$$@&a$5CJOJQJ\^JaJFF Heading 5 <@&56CJ\]aJZZ Heading 6$$@&a$'B*CJOJQJW9KI^JaJph22 Heading 7 <@&88 Heading 8 <@&6]B B Heading 9 <@&CJOJQJaJ<A@< Default Paragraph Font,@, Header  !, @, Footer  !.U@. Hyperlink >*B*ph&)@!& Page NumberRC2R Body Text Indent$h^ha$CJOJQJ^J<B@B< Body Text$a$CJOJQJ^JT@TTOC 1 h! xx";CJOJQJ^JaJmHnHuX@XTOC 2 ! hx^h":CJOJQJ^JaJmHnHuR@RTOC 3 T! ^CJOJQJ^JaJmHnHu** TOC 4 ^aJ** TOC 5 ^aJ** TOC 6 ^aJ** TOC 7 ^aJ** TOC 8 ^aJ** TOC 9 ^aJ>V@> FollowedHyperlink >*B* phZR@Z Body Text Indent 2$^a$CJOJQJ^JaJJPJ Body Text 2 $a$5CJOJQJ\^JaJ<T< Block Text!x]^6Q"6 Body Text 3"xCJaJ^MA2^ Body Text First Indent#$x`a$ CJOJQJbN1Bb Body Text First Indent 2$$x`a$ CJOJQJLSRL Body Text Indent 3%hx^hCJaJ8"8 Caption &xx5CJ\aJ*?r* Closing '^44 Comment Text(CJaJL Date)JYJ Document Map*-D M OJQJ^J4[4 E-mail Signature+4+4 Endnote Text,CJaJ\$\ Envelope Address!-@ &+D/^@ OJQJB%B Envelope Return.CJOJQJaJ66 Footnote Text/CJaJ2`2 HTML Address06]FeF HTML Preformatted1CJOJQJaJ2 2 Index 12^`2 2 Index 23^`2 2 Index 34^`2 2 Index 45^`22 Index 56^`22 Index 67^`22 Index 78^`22 Index 89^`22 Index 9:p^p`<!"< Index Heading;5OJQJ\,/, List<h^h`020 List 2=^`030 List 3>8^8`040 List 4?^`050 List 5@^`202 List Bullet A & F66"6 List Bullet 2 B & F6726 List Bullet 3 C & F68B6 List Bullet 4 D & F69R6 List Bullet 5 E & F:Db: List ContinueFhx^h>Er> List Continue 2Gx^>F> List Continue 3H8x^8>G> List Continue 4Ix^>H> List Continue 5Jx^212 List Number K & F6:6 List Number 2 L & F 6;6 List Number 3 M & F 6<6 List Number 4 N & F 6=6 List Number 5 O & F `-` Macro Text"P  ` @ OJQJ_HmH sH tH I Message HeadergQ8$d%d&d'd-DM NOPQ^8`OJQJ,^", Normal (Web)R626 Normal Indent S^,O, Note HeadingT8ZR8 Plain TextUCJOJQJaJ(K( SalutationV.@r. Signature W^:J: SubtitleX$<@&a$OJQJL,L Table of AuthoritiesY^`D#D Table of FiguresZ ^` J>J Title[$<@&a$5CJ KHOJQJ\aJ <.< TOA Heading\x5OJQJ\^+^am+ & S 6 6 6 6 6m +  23)vi!|14Rbkmn{|D E F L M ! " # $ k l m n p q r ~      !"#$%&'()*+,-./@AEJ\lBC "#abfwQRefjz&'  mn Y[()BCDWX    0 1 2 3 4 G H I J K Y!Z!^!h!s!!!!!!!!!5"6"G"H"""""""""""""""""%$&$6$7$z${$$$C%%%%%% & &R&S&W&`&o&p&q&&&&&&&&&' '!'"'F'X'Y'Z''''''''''''(E(P(Q(R(w(((((((((((( ))))C)D))))-*V*W******++++++++++++++++++++++++++++++++++++++00000000000000000000000000000`0000000000000000000000000000@00 00n0n0n0n 00000 00F 0F 0F 0F 0F 0F 0F 5 0F 0F 0F 0F 5 0F 0F 0F 0F 5 0F 0F 0F 0F 5 0F 0F 0F 0F 5 0F 0F 0F 0F 5 0F 0F 0F 0F 0F 0F  00 0 0 0  00 0 0 0  00r 0r 0r 0r  0r r 0 ( 0 0 0 0 ( 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ( 0 0000 0r r 000( 000000000000000000000000000000( 00R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R( 00n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n0n( 00000 0r r 0D( 0DD0X0X0X0X0X0X0X0X2 0X0X0X0X0X2 0X0X0X0X0X0X0X0X( 0DD0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 ( 0DD06"06"06"06"06"06"06"9 06"06"06"06"06"06" 0r r 0"( 0""0"0"0"( 0""0&$0&$0&$( 0""0{$0{$0{$0{$0{$0{$0{$ 00%0%0%0%0%0%0%8 0%0%0%0%8 0%0%0%0%8 0%0%0%0%8 0%0%0%0%8 0%0%0%0%8 0%0%0%0%8 0%0%0%0%8 0%0%0%0%8 0%0%0%0%8 0 %0%0%0%8 0 %0%0%0%8 0 %0%0%0%0%0%0%0%0%0@0@0@0@0@0@0@0@0@0@0@00@0 00000000000000000000000000000000aacccccc 1 \ e ')./ !"#%6Pb k%). !$2$$%%&&z(o*** ++R,,-//$&'()*+,-./012345789:;<=>?@ABCDEFGHIJKLMNOQR/3BCbs $&')HVqstv 0Idfgi!@\wyz|,./1Pk/124Sl2MOPRq!B]_`b:Kfhik+ tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%t̕r;SU::!T8@z(  B    B S  ?+0z(#0t9 _Toc500933433 _Toc500933462 _Toc20049401 _Toc20049402 _Toc500933434 _Toc500933463 _Toc20049403 _Toc500933436 _Toc500933465 _Toc20049404 _Toc500933437 _Toc500933466 _Toc20049405 _Toc500933439 _Toc500933468 _Toc20049406 _Toc500933452 _Toc500933481 _Toc20049407 _Toc500933454 _Toc500933483 _Toc20049408 _Toc20049409 _Toc500933455 _Toc500933484 _Toc20049410 _Toc500933445 _Toc500933474 _Toc20049411 _Toc500933447 _Toc500933476 _Toc20049412 _Toc500933448 _Toc500933477 _Toc500946800 _Toc20049413 _Toc20049414 _Toc20049415 _Toc500933440 _Toc500933469 _Toc20049416 _Toc20049417 _Toc518103512 _Toc20049418 _Toc20049419 _Toc20049420 _Toc500933441 _Toc500933470 _Hlt532622292 _Toc20049421 _Toc500933442 _Toc500933471 _Toc20049422 _Toc20049423 _Toc500933438 _Toc500933467 _Toc20049424nnnF F F r r r RRRRnBBDX 6""""""&$&$&${$%%%+  !"#$%+,&'()*-/0.@12345678zzzK K K } } }  !!!dddd~'V F""""""""5$5$5$$&&&+s 'VtIg\z/k2l2PB`Ki)*,***}++++++s 'VtIg\z/k2l2PB`Ki"""")*,***}++++++:s 'VtIg\z/k2l2PB`Ki||#())))**}+++++++ctsI:\docs\reqcoll.docctsI:\docs\reqcoll.docctsI:\docs\reqcoll.docctsI:\docs\reqcoll.docctsQ:\reqcoll.docctsI:\docs\reqcoll.docCTSKC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of reqcoll.asdCTS!C:\PerformanceTesting\reqcoll.docCTS!C:\PerformanceTesting\reqcoll.docCTS/C:\PerformanceTesting\RequirementCollection.doc9|FO} N~.4MTLE[2Dt|CFpBrKŌKAn/tzd g:PR6eJ(` C ێr&~Є|}hw (R]F;ml}JРsv <̬=Є|}H %.')F?  O,V{  } $JM4&9(dԍ&/-:~c)3h$LRBS6tI8&rM9XjJ:~T ;jV(L=:ҍ9E? B,CJy;N$T-.SV0{-XVЄ|}K\F^*x0_**`5MBk}n8ltrCuRrh]3}K~~:{n^`.^`.88^8`.^`. ^`OJQJo( ^`OJQJo( 88^8`OJQJo( ^`OJQJo(hh^h`. hh^h`OJQJo(h^h`o(.P^`Po(..^`o(x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h hh^h`OJQJo(88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h(h^`(o(.hP^`Po(..h^`o(...hx^`xo(.... h^`o( ..... h X^ `Xo( ...... h ^ `o(....... h8 ^`8o(........ h`^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........hh^h`.h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`.hh^h`o(.88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.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(h^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.^`o(.h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`.hP^`P..h ^`...hx^`x.... h^` ..... h X^ `X ...... h ^ `....... h8 ^`8........ h`^``.........h hh^h`OJQJo(88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `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(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.:K\*`~}|&/-uMBk(` trrM99(}y;N} $6eB,C? z%.}nI8c)3m9E?m@ =-XV~n/ ,V{ T ;sF^)Fg:K~~rR]L=jJ:-.SRBS6 <0_]3}M4&hwH h^h`o(.輿!P^`Po(..H"^`o(...#x^`xo(....$ ^`o( .....%  X^ `Xo( ......&  ^ `o(.......d' 8 ^`8o(........ܿ( `^``o(.........99                                                               R                                            4-                                           R                                                       2n       R                                                                                                                             R                 3ln|K ! " # $ k l m n # q   !"#$%&'()*+,-.AEJ\lbfwfjzl    0 1 2 3 4 G H I J Z!^!h!s!!!!!!!!"""""""""&R&S&W&`&o&p&q&&&&&&&&&' '!'"'F'X'Y'Z''''''''''''(E(P(Q(R(w(((((((((((( ))))))-***+@8j+@UnknownG:Times New Roman5Symbol3& :Arial7& Verdana5& :Tahoma?5 :Courier New;Wingdings"1hjj(S\&Q"I=!r0d$*!( 2q Requirements Collection Document AdministratorCTSrdDocWord.Document.89q@  FMicrosoft Word Picture MSWordDocWord.Picture.89q Oh+'0 $0 L X d p|_1036179099 F0)čh%0)čh%1Table8CompObj hObjInfo [$@$NormalmH <A@<Default Paragraph Font  l,b$?$BD I{  @n(  6   AB S  ?Et@L@@GTimes New Roman5Symbol3& Arial"hKƭK!r0MS5369MS5369ObjectPool"0)čh%0)čh%WordDocumentASummaryInformation(!#NDocumentSummaryInformation8VY bjbjWW ==] UUUikkkkkk$ZNBU3"UUUiMiiiU iUiiiii `WLR_ i  jUmHN N!#"##%$%%n ?$BD I{PNG  IHDR}2FP$gAMAPLTEvvw }ߏˋ:Q%YڕVw# ;8kۑr&0“4AB[{ MXXjxxp~~gppŪ(**,..rvv VXXnpp:;;EFF?@@{||qrrmnnhiibcc\]]ಳ#76aW^dc!&%{JMLNnh^tCVV`ZbW^DJJ DBKHGE7{6!JENJOG-d)NEKBMEMBK@J?GexJ@g4>7[El.Nd&VCobrv^#raRgbz -ۖ _"x[mމ&MB(##_xB 9Yy$$୭a.VG<'H$HC!qᕊN 5mvVrm/ҽ!Vgx< Mw#L^2:}햼6W< hO=}5fH 0̥p8Qe,cVzљ)*Ե,Aw2V; {hrzǒ`"̆X/r.-*b/zaR;nMiKm`1,8uc)v .+\]EF^+Wjm7XJM;գ/°F܅7J: 2n!^{/zVVˍ]eR1'rHVр@^ f=a`4ch| yZ?7BtG6LQС6_zu>{#4 =Z{M,PviVMY CC6Ը.wԗq?hW?Q5PrH׸wPȎ.,W3(T jv>WKp}|Sl{5xweV΃.wѴLr/_F qh\}4vK{^bo0l  EsBӮU`wwj5W{Ga}sP<!V/ȳkH7 f=ї=~j*:oõ zL&iR9w9 ՗6Nϟaqz^Oq`Cx->ه,.\>c!-vVR=E@BY$z +F<{kE|N2ᠷHM,_l6q6?F@;N{ GAPr;,gCdl6<Ҳ!md`JnsYu -N فL./Pt^?woi :i߆@鳝=#.mV8, ?ZOLU; t\q'gQрL_'vqclDF081l{*Y-4eRq^t 1?Iݚ\;sg\)v2-{v;ѹgɬff0[?clpvJ vkӥ/=w?]>;ޣ>31}>[z&xIENDB`Oh+'0T    (4<DLssMS5369S53 Normal.dotMS5369d253Microsoft Word 8.0@@V?LR@V?LR՜.+,D՜.+,, hp|  CTSj  Title 6> _PID_GUIDAN{E1DBAEE2-BE32-11D4-B6E3-0002A519DF6F}WordDocument%`SummaryInformation(&DocumentSummaryInformation8 _1098090446Y+ F0)čh%0)čh%M /bjbj== WW)_l4(B(B(BhB\Bt%lDvG:HHHcIuOAQ$ )RAI"cI)R)RVHH%VVV)Rf8HHV)RVVY>7PH`D e(T+(BS~xPT0%8o UoPV<X@  Table of Contents  TOC \o \h \z  HYPERLINK \l "_Toc20049401" 1. Introduction  PAGEREF _Toc20049401 \h 1  HYPERLINK \l "_Toc20049402" 2. Objective  PAGEREF _Toc20049402 \h 1  HYPERLINK \l "_Toc20049403" 3. Scope  PAGEREF _Toc20049403 \h 1  HYPERLINK \l "_Toc20049404" 4. Reference  PAGEREF _Toc20049404 \h 1  HYPERLINK \l "_Toc20049405" 5. Audience  PAGEREF _Toc20049405 \h 1  HYPERLINK \l "_Toc20049406" 6. Test Inputs  PAGEREF _Toc20049406 \h 1  HYPERLINK \l "_Toc20049407" 6.1. Server Side Inputs  PAGEREF _Toc20049407 \h 1  HYPERLINK \l "_Toc20049408" 6.1.1. Test site component layout  PAGEREF _Toc20049408 \h 1  HYPERLINK \l "_Toc20049409" 6.1.2. Server Details  PAGEREF _Toc20049409 \h 2  HYPERLINK \l "_Toc20049410" 6.1.3. External Interfaces  PAGEREF _Toc20049410 \h 2  HYPERLINK \l "_Toc20049411" 6.2. Transactional Inputs  PAGEREF _Toc20049411 \h 2  HYPERLINK \l "_Toc20049412" 6.2.1. Transaction Details  PAGEREF _Toc20049412 \h 2  HYPERLINK \l "_Toc20049413" 6.2.2. Navigation Details  PAGEREF _Toc20049413 \h 3  HYPERLINK \l "_Toc20049414" 6.2.3. Scenario Details  PAGEREF _Toc20049414 \h 3  HYPERLINK \l "_Toc20049415" 6.2.4. Test Data  PAGEREF _Toc20049415 \h 4  HYPERLINK \l "_Toc20049416" 6.3. Client Side Inputs  PAGEREF _Toc20049416 \h 4  HYPERLINK \l "_Toc20049417" 6.3.1. Browser Emulation (For web applications)  PAGEREF _Toc20049417 \h 4  HYPERLINK \l "_Toc20049418" 6.3.2. Test execution  PAGEREF _Toc20049418 \h 4  HYPERLINK \l "_Toc20049419" 6.3.3. Connection Speed  PAGEREF _Toc20049419 \h 4  HYPERLINK \l "_Toc20049420" 6.4. Operational Inputs  PAGEREF _Toc20049420 \h 4  HYPERLINK \l "_Toc20049421" 6.4.1. Test site considerations  PAGEREF _Toc20049421 \h 4  HYPERLINK \l "_Toc20049422" 6.4.2. Time of testing  PAGEREF _Toc20049422 \h 5  HYPERLINK \l "_Toc20049423" 6.4.3. Parameters to be collected  PAGEREF _Toc20049423 \h 5  HYPERLINK \l "_Toc20049424" 7. Test Roadmap  PAGEREF _Toc20049424 \h 5  Introduction [Project Overview] Objective The objective of this document is to initiate the technical discussions involving the various parties and to collect relevant inputs required for the performance test. Scope Following briefly outlines the scope of the current assignment: SNODescriptionDetailsMode of testingLab/Onsite/NetType of testingLoad/Stress/Endurance/VolumeMaximum concurrent users to be simulatedMaximum transactions to be scripted (including scripts for data setup)Objective of TestingDuration of assignment from start date Reference [Include references to any documents] Audience This document is intended for the technical managers of E-test lab and client, who will be involved in conducting the load test. Test Inputs Prior to conducting the load test, E-test lab needs to collect a set of test parameters. These parameters, which act as input to the load test, will be used to simulate close to real life conditions during the course of the load test. A checklist, detailing all inputs that would be required before conducting the load test, is included in this section. Server Side Inputs Test site component layout Please provide an architecture diagram of the environment to be tested including servers, firewalls, load balancers, routers and switches, data links, etc. Server Details Hardware Details SNOTypeMake & ModelNo of ProcessorsMemoryHard DiskNetwork Interfaces Software Details SNOTypeOS (with version)Service PatchesApplication SoftwareService Packs In the table above, please list all the components of the application, as these components would help planning and setting up the server monitors during the test. In Type mention the type of the server component, like Web server, App server, DB server etc. In Hardware details please mention Make, Model, CPU (including processor speed), Memory, Hard disk, Network Interfaces. In Software details please mention OS, Version, Service Patches, Application software, Database if any. External Interfaces [Please provide details about external interfaces to the system if any] Transactional Inputs This section contains business details and user behavior information. For a web based application, this information can also be obtained by analyzing the web logs of the application. For other applications, application specific logs should help identify the usage patterns. Transaction Details Please list all the transactions that need to be tested here: TNOTransaction NameNavigation PathMaximum Txns In the above table: TNO: Identifies a single business transaction. Transaction Name: The transaction to be scripted. Navigation Path: lists the order in which various screens of the application will be visited while executing the transaction. T1S1: Identifies the Screen 1 of Transaction 1 and so on. Maximum Txns: Specifies the maximum number of transactions to be executed for each transaction type. It is relevant in situation like banking For e.g. a maximum of 1000 cash deposits to be made in the given test duration. Also specify what virtual users would do once they have completed executed the given number of transactions. (Would they sleep or execute other transactions etc) Navigation Details SNONavigation StepForm DataThink TimeProtocolT1S1T1S2......T5S4T5S5 In the above table: SNO: Identifies a particular screen of the transaction. In certain form based client-server applications a single screen view might contain multiple parts called data blocks or blocks. In such cases each block will be treated as a screen. Navigation Step: Specifies a particular navigational activity. For a web-based application this can be treated as a URL. For a client server form based application this corresponds to a single screen or block. Form Data: Specifies any specific data required for executing a successful screen/block submission. Think time: Specifies the time in seconds a user will spend on a screen/block before navigating out of it. This can be specified as a random range or an absolute value. Protocol: Specifies the protocol used for a particular client screen interaction with the backend application. For e.g. this could be HTTP, HTTPS, Native protocol tunneled inside HTTP/HTTPS, Native protocol over TCP/IP, ODBC, ISO8583, ORACLE-NCA etc. Note: For secure pages specify the encryption level of SSL to be used (including SSL key strength and Cipher to be used). Also specify how the SSL cache should function? For e.g. Should SSL key negotiation happen on every page visit, how long should the SSL key be cached in the application before being re-requested. Note: In case of native TCP/IP protocol, give details of the application level protocol information like Message structures, formats, connection negotiation rules etc. Also give details on the nature of application screen caching if any. Note: In case of HTTP/HTTPS mention if the client side should use HTTP 1.0 with persistent connection or HTTP 1.1 Scenario Details SNOScenario NameTransaction NameLoad Mix %Maximum Txns In the above table: SNO: Identifies a Scenario number. Scenario Name: Scenario Name Transaction Name: Lists of transactions in the scenario. Load Mix: Specifies what percentage of the total load level does a particular transaction form, while the test is being conducted. Sum of all the transactions load mix % should add up to 100%. Test Data Please identify all test data requirements. For example, several login ids might be needed for the test. Mention any other setup data that needs to be generated through scripts prior to the test. Specific details for data setup will be finalized during the design/scripting phase. Client Side Inputs Browser Emulation (For web applications) Specify the browser mix that should be used while simulating virtual users in the sample form included below: SNOTypeVersion% Virtual UsersMicrosoft Internet ExplorerNetscape Navigator Specify how the browser cache should behave. For e.g. should the embedded objects like GIFs, JPGs, JSs be requested on every visit to the page or every new login? Test execution Specify the general procedure for execution of the test runs as given in the table below. RNOObjectiveStart loadRamp Up pattern Note: If the transactions mix as well as the maximum number of transactions to be executed (if any) can vary from run to run; they need to be mentioned here for each Run. Connection Speed Specify the typical connection speed the users would be accessing the site. SNOConnection Speed% of Users Operational Inputs Test site considerations Client would provide a fully functional and complete application that needs to be performance tested. E-test lab will require access to the backend system for monitoring purposes during the scripting and testing phase. Details of the access requirements would be covered in the Requirements specification document. Time of testing [Please give details if there is any time restriction for testing] Parameters to be collected Throughout the test duration, a set of client and server side parameters like response times, network throughput, server resource usage etc will be collected for analysis. Please mention any specific set of parameters that might need to be monitored: A comprehensive list of all parameters to be monitored will be finalized during the test design stage. Test Roadmap Following are the major activities involved in the entire test process: SNOActivityResponsibilityTechnical discussions/meetings to finalize the test strategy.E-Test lab/ClientRequirements collection / AnalysisE-Test lab/ClientRequirements SpecificationE-Test labRequirements Specification Sign offE-Test lab/ClientTest setup (software/hardware if any)E-Test lab/ClientApplication setup (if any)ClientTest execution planning, design, scripting of transactionsE-Test labSetting up of load generation and monitoring (hardware and software)E-Test labSmoke Run to validate the test setupE-Test labExecution of test runE-Test labPreliminary test findingsE-Test labCorrective actions to be taken based on results of test runClient Steps 10-12 will be repeated for each test run. At the end of iterative test runs, E-Test lab would submit a comprehensive test report.  EMBED Word.Picture.8  Performance Test Requirements Collection Cognizant Technology Solutions Confidential Performance Test Requirements Collection  EMBED Word.Picture.8  For Private and Confidential use Page  PAGE 3 Performance Test Requirements Collection For 134BCDE`abcefrstuj>*B*Uphj{U jU;CJOJQJ^JaJj>*B*Uph0J j0JU6]j6U] 5CJ \ B*^Jph CJ$]^J CJ \^J5CJ\^JCJ^Jj5U\^JmHnHu 5\^J,     $a$$a$-// 23)vi!|14 R  b    $a$$a$  #$%&'()*+FGHIKLUVWpqrstuvwxش؞jSUj>*B*Uphj]Uj>*B*UphjgUj>*B*Uph0J;CJOJQJ^JaJ j0JU jUjqU;   ./0156HIJcdefghijk٨هj5UCJOJQJ^JaJj>*B*Uphj?U:CJOJQJ^JaJj>*B*UphjIU jUj>*B*Uph0J j0JU;CJOJQJ^JaJ5 !"#>?@AGH[\]vwxyz{|}~ڵړj U:CJOJQJ^JaJj >*B*Uphj! Uj>*B*Uphj+U jUj>*B*Uph0JCJOJQJ^JaJ j0JU:+,-./0123NOPQWXjkl   ۶۠jt >*B*Uphj Uj~ >*B*Uphj Uj >*B*Uphj U jUCJOJQJ^JaJ j0JUj >*B*Uph0J9     . / 0 1 2 3 4 5 6 Q R S T X Y k l m     " # 1 jV>*B*UphjUj`>*B*UphjU:CJOJQJ^JaJjj>*B*Uphj U jUCJOJQJ^JaJ0J j0JU:1 2 3 L M N O P Q R S T o p q r x y      ! " ( ) A B C \ ٵ٩ٓj8>*B*UphjU:CJOJQJ^JaJjB>*B*UphjUjL>*B*Uph0JCJOJQJ^JaJ j0JUjU jU9\ ] ^ _ ` a b c d           8 9 : ; = > J K L e ٵٟٓ;CJOJQJ^JaJj>*B*UphjUj$>*B*UphjUj.>*B*Uph0JCJOJQJ^JaJ j0JU jUjU6b  k m n { | D E F L M $$Ifa$ h^$a$  e f g h i j k l m n { | F L r~ /@A"b'źŵźşşźźź;aJmH nH u5\^JaJ5\^JaJ 5\^J B*ph^J 6;]^Jj6;U]^J;CJOJQJ^JaJ j0JU jUjU> fYPP $$Ifa$ $ & F5$Ifa$$$Ifs4F o 06    4+4 sal !"#$k|off|off|(of $$Ifa$ $ & F5$Ifa$$$IfsF o 06    4+4 sal klmns`fsfsa$a$ $ & F5$Ifa$$$IfsF o 06    4+4 sal $$Ifa$ pqr~ $ !a$$a$  !"#$%  !$IfFf$If%&'()5 /$/  !$If$If$$Ifl֞5$ >064 la)*+,-./$$Ifl֞5$ >064 la$If./@AEJ\l$If !$If$$Iflֈ5$  <064 la7$$Iflֈ5$ 064 la$If  !$If  !$If$IfBCHFAAAAA$a$$$Iflֈ5$ 064 la "#abfw $$Ifa$ $^$$a$SJ;;J h!$If $$Ifa$$$Ifl4\ A  (04 lalofWWfoRRR$a$ h!$If $$Ifa$$$Ifl\ A 04 lal QRefjz $$Ifa$ $a$'Ref'1    !!!! !0![!c!"B#D##$K$Z%%%%&&&&&(7({(() *S*p***+ +W+X+++++++-..). jU^JaJ B*ph;aJmH nH u5\ 5\^J^JR8(//// $$Ifa$$$Ifl4r =  2064 lalR(RL$$Iflr = 064 lal $$Ifa$ RL$$Iflr = 064 lal $$Ifa$ R(R($$Iflr = 064 lal $$Ifa$ RMMM$a$$$Iflr = 064 lal $$Ifa$&'  m n  $$Ifa$$a$ :1" h!$If $$Ifa$$$Ifl4r "A  20"4 lal D$$Iflr "A 0"4 lal $$Ifa$ h!$If !!SNNNNN$a$$$Iflr "A 0"4 lal $$Ifa$!! !Y![!""(")"B#C#D#W#X#######$$ $$Ifa$ $a$$$$0$1$2$QD;;; $$Ifa$ $ & F2$Ifa$$$Ifl4\!, (0!64 lal2$3$4$G$H$I$J$K$$$n\aXXXnSQQ$a$ $$Ifa$ $ & F2$Ifa$$$Ifl\!,0!64 lal $$$Y%Z%^%h%s%%$If %%%%%%QGAAA$If & F7$If$$Ifl4\0  (064 lal%%%5&6&G&H&&&&&&nljjhlllbbb$If$$Ifl\0 064 lal &&&&&j`ZZ$If & F9$If$$Ifl4F0  0 6    4 lal&&&&&&&&%(&(6(7(z(ywriwr$$^$a$$a$ ~$$IflF0 0 6    4 lal z({(((C)))))) * *R*S*W*`*o* $$Ifa$ $ !a$$a$o*p*q***fHYPP $$Ifa$ $ & F8$Ifa$$$Ifs4F%! 0,"6    4+4 sa*****|off $$Ifa$ $ & F8$Ifa$$$IfsF%! 0,"6    4+4 sa***+ +zmdd $$Ifa$ $ & F8$Ifa$$$IfsF%! 0,"6    4+4 sa +!+"+F+X+Y+Z++++++|off|off|of $$Ifa$ $ & F8$Ifa$$$IfsF%! 0,"6    4+4 sa +++++++,E,P,Q,R,s fsHfsf $ & F8$Ifa$$$IfsF%! 0,"6    4+4 sa $$Ifa$ R,w,,,,,,,,,,,sfsfs $ & F8$Ifa$$$IfsF%! 0,"6    4+4 sa $$Ifa$ ,, ----C-D----faaaaaX $ !a$$a$$$IfsF%! 0,"6    4+4 sa $$Ifa$ $ & F8$Ifa$ ).*.+.,......./x/|/}/~//////////OJQJ5CJ(OJQJ\0JmHnHu0J j0JU^J 6]^J j)&U jU jUj= UVmHnHu--.V.W......//////////////////$a$$dN]////////////////////// $ !a$$a$$&P 1h. A!"#r$%+0&P 1hP. A!"#r$%+0&P 1hP. A!"#r$%!Requirements Collection DocumentrosequAdministratoroldmidmiNormaltCTS2SMicrosoft Word 9.0t@@MI@򘢺@򘢺Q" ՜.+,D՜.+,p, px  Ready Test Go Pvt Ltd.TI$* !Requirements Collection Document Title0 * B v    " J n    _PID_HLINKS ClientNameClientShortName Testmode Testruns Testhwsw Testusers Testtxns Testduration TestId ClientSubmitDate ClientIntro ClientRef ProjIntroA9 _Toc200494249 _Toc200494239 _Toc200494229z _Toc200494219t _Toc20049420:n _Toc20049419:h _Toc20049418:b _Toc20049417:\ _Toc20049416:V _Toc20049415:P _Toc20049414:J _Toc20049413:D _Toc20049412:> _Toc20049411:8 _Toc20049410;2 _Toc20049409;, _Toc20049408;& _Toc20049407;  _Toc20049406; _Toc20049405; _Toc20049404; _Toc20049403; _Toc20049402; _Toc20049401New Client Name+Short name (to be referred in rest of doc)r#Lab or Internet or Onsite or MixedoNo of test runs0Any special Hw/Sw to be provided by ReadyTestGo'Maximum concurrent users (for license)dMax no of txns to be scriptedlimax duration of assignmenteTest identifier sample TST024liDate like October 22, 20012Short Intro about client12'Any Client reference doc like proposaldIntroduction to ProjectData X1Table(*(HCompObjPjObjInfo)=R{DyK  _Toc23932834{DyK  _Toc23932834{DyK  _Toc23932835{DyK  _Toc23932835{DyK  _Toc23932836{DyK  _Toc23932836{DyK  _Toc23932837{DyK  _Toc23932837{DyK  _Toc23932838{DyK  _Toc23932838{DyK  _Toc23932839{DyK  _Toc23932839{DyK  _Toc23932840{DyK  _Toc23932840{DyK  _Toc23932841{DyK  _Toc23932841{DyK  _Toc23932842{DyK  _Toc23932842{DyK  _Toc23932843{DyK  _Toc23932843{DyK  _Toc23932844{DyK  _Toc23932844{DyK  _Toc23932845{DyK  _Toc23932845{DyK  _Toc23932846{DyK  _Toc23932846{DyK  _Toc23932847{DyK  _Toc23932847{DyK  _Toc23932848{DyK  _Toc23932848{DyK  _Toc23932849{DyK  _Toc23932849{DyK  _Toc23932850{DyK  _Toc23932850{DyK  _Toc23932851{DyK  _Toc23932851{DyK  _Toc23932852{DyK  _Toc23932852{DyK  _Toc23932853{DyK  _Toc23932853{DyK  _Toc23932854{DyK  _Toc23932854{DyK  _Toc23932855{DyK  _Toc23932855{DyK  _Toc23932856{DyK  _Toc23932856{DyK  _Toc23932857{DyK  _Toc23932857{DyK  _Toc23932858{DyK  _Toc23932858{DyK  _Toc23932859{DyK  _Toc23932859{DyK  _Toc23932860{DyK  _Toc23932860{DyK  _Toc23932861{DyK  _Toc23932861{DyK  _Toc23932862{DyK  _Toc23932862{DyK  _Toc23932863{DyK  _Toc23932863{DyK  _Toc23932864{DyK  _Toc23932864{DyK  _Toc23932865{DyK  _Toc23932865{DyK  _Toc23932866{DyK  _Toc23932866{DyK  _Toc23932867{DyK  _Toc23932867{DyK  _Toc23932868{DyK  _Toc23932868{DyK  _Toc23932869{DyK  _Toc23932869{DyK  _Toc23932870{DyK  _Toc23932870{DyK  _Toc23932871{DyK  _Toc23932871{DyK  _Toc23932872{DyK  _Toc23932872{DyK  _Toc23932873{DyK  _Toc23932873QDd50  # A2WDwΤ\ˮSV&p`!WDwΤ\ˮSV<`v B8h/ox\ |Uř&!S )b$"UV*!b00" TThQaY_ *υ (塕"**UFe<Ι{c^o^̙`QƬ%屢 ?'=AE1t\1 4T ]f2gbr My q Յ-w0Xl( UX52'(ح܋ !ÇOL2F:vN; Di7o:̽T?э6NUN?DC4Ht=/TS׵@t "b4)^7 ļa5TM8ۤ92đ6 *WKLs{DLl,N[e6q:&|9#y+dlSτ)?o{NS ~:+yu̅sV(EګpI FeW@>Pg6im2c] ۦ-4o\˩rjA?!oLMߘzS éS [ĩ8hIzo9(n DeU/E/98_Awp*㠩/ᱠk9_fqO:ekZDLrz՜z0_csBxO'u ? ,Q-<i`>I.{`Vÿ*ྐJ}Vk$QgEgiwK 4AL_.ik%~[:0_ǝ.AcR/AU'hgiq7j9@oNjM dȱk);O@:_$_=L0M0G=< ,0Y sf76"Gc^g a_ ϥ1[sd+9̀%~XaHzG%ZnZ4'sAwH;S gbF9#DܳO95q:vO/6Nxv]f8ZHӿɵvԙ67Kΐu 03sx wp%>H/&rL1i'u|u_6i_#6fOY$ \]ӽ6-\ڇ>tG8u[>S#7^Wq,jyOz_c*{5+Ro--{®c*!=Z]^cׂVzFaU0zUXN%[.6 WSӫ_Z4ף_mMQm 5H^x8ӎ?7_&ϒiUX;5pԨ;rJ d:,t@:MaqdUKa+T$ȓ([ <<{ q3[Fiy;%l (~=3Ɔ/΄gAaا_p/c"O-GO[N(g/uիVD_*y*U(HR:=.{CWu zf6zl͌`X'eU:*uL'-d#_A Q&RFg}Y)Y#C]5nEs!SGLfLԢUm2*D~idwОIq~$.{)?k4I"/v9n,uh)NKɴqRi4Nd^߁yYx<OvE~n_wt6TcRI3Iۓ$䖫G'qQݾ=jzuC {g@@#qڮƮih |@8GUűJ&mzjoa^QM/08K܁Bi;]a[K ?ck3OB ƣbe+Lu=hOɎJafׁ`O2쁻!V3?ѻ՜lw8%,.2"jθ6gXY)D]Amΐ^Hns `Wɲ l d!ޔWǼ"1y휷^uzɫS3/;hmJXigP1)~GP].>);k8ręΩʼn[ǻ7[ynܲ=ޝn݃"6q&[K6{Yވ\g-ERhufqZ*^Z~N'c-075'zy nVbl+="qk-n{ S?V'Y8w-½ m ~5oo~{4~$5~~P}~_!Zڂ_Gg37jn-uu;ǹl_/ɯƯN9@_9 ~Hpkk**M4~W~fjfoh ;=ӕ=p$aɞ$\=R{2žf'cR9: Үw-kLcOB|9j =R$[ml*[-밷w4ZQjgT5-$CE65هlq}d|dHm!JGuZnV:5kI[YHg@Dh"T[Fٳ!L[7V0 F[\s"B.v`932.BP]Sr8 t%k&kd5&j(HNCOgƍI#γm:&[GpՊmVd=gm7p7#lmAx+b!}+p[,¿z}@'p?G?` >o#LvdpOATğboAx+!}+p[8~yhďf8!p+&nkMƪWY5 k"!kZv5Z j_ AH[bf 6\{6\i̕6%o w쑬 zNDĺ=BitgB~ k})0["\$ŝiwD[LakOZL-}\~٘l#a?^ &bKFO:}:1as.9u&ޓuzujS&!ckAdQzuHN:uE#:e͖cl VGcUOD "~ҷ"|_Y9P/BP`v, ?4j`f!f`#O5 ^<`yۄ27(gy~?m5Dk7VXk@Ǡ*`pܑSFu~:j!繠9;h22S&)f:U*zxta*Xbl$OkUbmꞰWnϚe?(6` uĺ1h6npX7V˧;hnMÚ@Vbz-XFrLz<״FɆ?3V5xZ̅o2M#A:OI#oPuCw&\!ZT)EL[]*SiJIJ5LOh_uiM֧ez/UXVar[+<LV4NvVW~XVaZZAstw[3EU.r.O^#y_iɯ~Za TZPoPiABKTZPoQiAOK=>^˒ܛ:$*ɽYr/uԸW/bUX~UaW~X`⵪/S,APUZЋS?-u4<<(W)l9cE;У7$UiA Z|bY^`>^[jao-v;Gڙig~7Ж3Lp\w{]<~VԻ7jv^#cUpan+r(3mcj+'U ;Y%.2kʚإ&֟V>Z9'*4*aQ!*_<&cͱ&}z206b+jbpOYs>aΤK߬odl99Ghzrk.˘SJ*+T]ЦWN4dGxJWz_[ֳE4%;k0SCͦA%7 ~XWPa6A z2"ޒk@zs座l[jATiAUcZU7UXݼ%y^-5=?-^Ӿ))֨5;ig~KrBlĔx>V1*5P=KkOr; ̫g94>j|)Ҩr63y⺓i6F|6/']l%̰j 55Uf[gJa&Α=-7r5FE.vҝnԥxw-3zPЎm=$ '~I`ϕN+|$$z+KW}*7嶚ɓ?u\Wbeҷ TN W+N=Dwlf-,nwlwFome 7zrIW0lk^=0zOݯ CE_unYGkwie IcOZGvqKs9?/, Dd}2EB  S A? b H~ }kґgxzr >pnj H~ }kґgxzPNG  IHDR}2FP$gAMAPLTE    # !&0!&%(**,..111555#76:Q:;;?;9?@@4ABDEFFJMLPOOSSSTUIVwMXXVXXYXX\]]aWbcc-d)^dchffhiijjjmnnoobgppnppppprqrrurrsssuttwuhrvvvvwwvrywwjxxzyx}yy7{6{{{{||~||p~~~~}8}NnąG<{ؘ ͚CVKBg^χJJ[%DBJ?JEMBMEG:K@NJGENAW^NEPF;KHMBZbOGV`hY^t{kۯ}ŋɏۏΛt9 pHYs 2IDATxXkHK1]>4i:XG{%xCo{% /!x/Mn_`h k|^I,tO\zU1W6{Q ӳUm-T--юj}MhU㕯n0_%+A1}XDz.c3Yx> !$?~TYgώyۿ-^GtI]s*4?;/2Cّ?9jdtmu=^?y 㻲#8#^Vqߧ@[թ dq%e蓮&Ħ. c۟8J9dr^P`92$SaGg?H @gwh~z_:vb=@9BWZMUIa U.$TݷlBMqF;vtZh4b*$vI fCtIY"ư`dmvjvl=NpڕڪD=8j'M9UBljF GfwY~]8y<0CA#M"آ%yڵFo Gƃi޸Ei,<+쭼@7z]npHu S.+t`Z`VüwGwG{_&T7 ywx #£Oѳ,ހGwWwCXc k[ 34'2"s4zq _pslt?8ig`zwnZȽv͡O'u][Jc_y.=ШI#wx!c&˘l9l|gVU.V>.)kφ:=t[Z0㾓ߘ%Yr|[>}ko6=pdYqM#u|p6Z|R4$,;c8MГ75z8r1߮b9?ziaoQd3U za6!zXM PSAE|(ҚR"2~"9D):GEKrw_HM=C'O( 87B G7Aej88B,24wG}7d f] KCDZ€c1w<`MX`:ߣE{ێF6Ty;m z$TC(;YއU Ty TpW9+~רdn7FeGoVTպ4n 4mݞ. #k#ekBݹu4ٝr$<(Œܣ zae)+KAK~~R9??DJvwc}q dx=MAO3#{p@ 9.t] M+ac' 8l 2z/B!aVm]d_?Dwpi=_\lw)$Fp I_+a]|8)SgQE4xq 2]ʜSQn`qtiUKOaeCq)w5`Lm%tZjEkx,Y(FK{NG;``+ݎ=/I8YJnK#qY} ߐ6ˎ-/ߡ$K:~i:"v= .5=pBWSuTg9ٱž^cP7ngH[f7֨ ծF 6=;#em}5vrU3RhlK{vJVs*o^>C桷Wܧ6ӓhz&D{+dIENDB`, Dd}2EB  S A? b H~ }kґgxzr 1Kpnj H~ }kґgxzPNG  IHDR}2FP$gAMAPLTE    # !&0!&%(**,..111555#76:Q:;;?;9?@@4ABDEFFJMLPOOSSSTUIVwMXXVXXYXX\]]aWbcc-d)^dchffhiijjjmnnoobgppnppppprqrrurrsssuttwuhrvvvvwwvrywwjxxzyx}yy7{6{{{{||~||p~~~~}8}NnąG<{ؘ ͚CVKBg^χJJ[%DBJ?JEMBMEG:K@NJGENAW^NEPF;KHMBZbOGV`hY^t{kۯ}ŋɏۏΛt9 pHYs 2IDATxXkHK1]>4i:XG{%xCo{% /!x/Mn_`h k|^I,tO\zU1W6{Q ӳUm-T--юj}MhU㕯n0_%+A1}XDz.c3Yx> !$?~TYgώyۿ-^GtI]s*4?;/2Cّ?9jdtmu=^?y 㻲#8#^Vqߧ@[թ dq%e蓮&Ħ. c۟8J9dr^P`92$SaGg?H @gwh~z_:vb=@9BWZMUIa U.$TݷlBMqF;vtZh4b*$vI fCtIY"ư`dmvjvl=NpڕڪD=8j'M9UBljF GfwY~]8y<0CA#M"آ%yڵFo Gƃi޸Ei,<+쭼@7z]npHu S.+t`Z`VüwGwG{_&T7 ywx #£Oѳ,ހGwWwCXc k[ 34'2"s4zq _pslt?8ig`zwnZȽv͡O'u][Jc_y.=ШI#wx!c&˘l9l|gVU.V>.)kφ:=t[Z0㾓ߘ%Yr|[>}ko6=pdYqM#u|p6Z|R4$,;c8MГ75z8r1߮b9?ziaoQd3U za6!zXM PSAE|(ҚR"2~"9D):GEKrw_HM=C'O( 87B G7Aej88B,24wG}7d f] KCDZ€c1w<`MX`:ߣE{ێF6Ty;m z$TC(;YއU Ty TpW9+~רdn7FeGoVTպ4n 4mݞ. #k#ekBݹu4ٝr$<(Œܣ zae)+KAK~~R9??DJvwc}q dx=MAO3#{p@ 9.t] M+ac' 8l 2z/B!aVm]d_?Dwpi=_\lw)$Fp I_+a]|8)SgQE4xq 2]ʜSQn`qtiUKOaeCq)w5`Lm%tZjEkx,Y(FK{NG;``+ݎ=/I8YJnK#qY} ߐ6ˎ-/ߡ$K:~i:"v= .5=pBWSuTg9ٱž^cP7ngH[f7֨ ծF 6=;#em}5vrU3RhlK{vJVs*o^>C桷Wܧ6ӓhz&D{+dIENDB`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     :1 !"#$%&'(*+,-./0;3456789>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~b i<@< NormalOJQJ_HaJmH sH tH J@J Heading 1$ & F@&5CJOJQJ\^JJ@J Heading 2$ & F@&5CJOJQJ\^JP@P Heading 3$$ $@&^$a$5\^JaJL@L Heading 4$$@&a$5CJOJQJ\^JaJF@F Heading 5 <@&56CJ\]aJZZ Heading 6$$@&a$'B*CJOJQJW9KI^JaJph22 Heading 7 <@&88 Heading 8 <@&6]B B Heading 9 <@&CJOJQJaJ<A@< Default Paragraph Font,@, Header  !, @, Footer  !.U@. Hyperlink >*B*ph&)@!& Page NumberRC@2R Body Text Indent$h^ha$CJOJQJ^JBB@BB Body Text,bt$a$CJOJQJ^JT@TTOC 1 h! xx";CJOJQJ^JaJmHnHuX@XTOC 2 ! hx^h":CJOJQJ^JaJmHnHuR@RTOC 3 T! ^CJOJQJ^JaJmHnHu*@* TOC 4 ^aJ*@* TOC 5 ^aJ** TOC 6 ^aJ** TOC 7 ^aJ** TOC 8 ^aJ** TOC 9 ^aJ>V@> FollowedHyperlink >*B* phZRZ Body Text Indent 2$^a$CJOJQJ^JaJJPJ Body Text 2 $a$5CJOJQJ\^JaJ<T@< Block Text!x]^6Q"6 Body Text 3"xCJaJ^MA2^ Body Text First Indent#$x`a$ CJOJQJbN1Bb Body Text First Indent 2$$x`a$ CJOJQJLSRL Body Text Indent 3%hx^hCJaJ8"8 Caption &xx5CJ\aJ*?r* Closing '^44 Comment Text(CJaJL Date)JYJ Document Map*-D M OJQJ^J4[4 E-mail Signature+4+4 Endnote Text,CJaJ\$\ Envelope Address!-@ &+D/^@ OJQJB%B Envelope Return.CJOJQJaJ66 Footnote Text/CJaJ2`2 HTML Address06]Fe@F HTML Preformatted1CJOJQJaJ2 2 Index 12^`2 2 Index 23^`2 2 Index 34^`2 2 Index 45^`22 Index 56^`22 Index 67^`22 Index 78^`22 Index 89^`22 Index 9:p^p`<!"< Index Heading;5OJQJ\,/, List<h^h`02@0 List 2=^`030 List 3>8^8`04@0 List 4?^`050 List 5@^`202 List Bullet A & F66"6 List Bullet 2 B & F6726 List Bullet 3 C & F68B6 List Bullet 4 D & F69R6 List Bullet 5 E & F:Db: List ContinueFhx^h>Er> List Continue 2Gx^>F> List Continue 3H8x^8>G> List Continue 4Ix^>H> List Continue 5Jx^212 List Number K & F6:6 List Number 2 L & F 6;6 List Number 3 M & F 6<6 List Number 4 N & F 6=6 List Number 5 O & F `-` Macro Text"P  ` @ OJQJ_HmH sH tH I Message HeadergQ8$d%d&d'd-DM NOPQ^8`OJQJ,^", Normal (Web)R626 Normal Indent S^,O, Note HeadingT8ZR8 Plain TextUCJOJQJaJ(K( SalutationV.@r. Signature W^:J: SubtitleX$<@&a$OJQJL,L Table of AuthoritiesY^`D#D Table of FiguresZ ^` J>J Title[$<@&a$5CJ KHOJQJ\aJ <.< TOA Heading\x5OJQJ\ROR Bodytext]$ ve]ea$5B*\aJphPOP Table Header ^$^$5OJQJ_HmH sH tH HOH Table Text_CJOJQJ_HmH sH tH JOJ Table Heading`5OJQJ_HmH sH tH FOF list(ashdx]s^h`aJAA&S  6 6 6 6 6 6 6 6 6 6 6a L%,g4I>A3   015=BMYZ[\]^_`btu j VN88D +; J # v  8 ?  jkqr  `afk|}~OP>?jk34JA^ixQR^;mnW=op'YZq   yz1!n!o!!!!!"/"0""""" $*$+$$$$$$$%I%K%M%c%%5&6&;&W&X&Y&Z&[&&&&&&''!'"'#'$'%'&'''(')'a'b'''''(((6(7((((((((())r)))))*G*^*_*u*++,,,,,------...////)0*0+0Z0[0n0o0001^1_1q1r1122.2;2G2H2l2}2~23333334(4)4K4[4\4e4f44444444455565^5_5a5{555555566#77.88993::*;=; <<<<<=H>I>W>X>h>y>>>>>>>>>>>>>>??????x@A00000000000000000000000000000`0000000000000000000000000000000000000000000000000000000000@0 00 000000000]08 00k0k0k8 0000 008010 10 0 0 0 0  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80000C 0C 0C 0C ?008!00080800404^04^04^0404_04_04_0404( 00000( 0 00000000000000000000000000000000000000000000000000080000]0800o!!0o!!0o!!0o!(00"0"0"(00"!0"(00 $0 $0 $!?0 $!0 $!0 $!0 $!0 $!0 $0 $0 $80 $H0M%0c%0c%0c%0c%0c%0c%0c%0c%H0M%10[&10[&0[&0[&0[&0[&0[&0[&0[&0[&0[&0[&0[&0[&10[&80 $0)'0)'0)'0)'0)'0)'0)'0)'0)'0)'0)'80 $80 $0((00(!0(!0((00(0( =0( =0( 0( 0( 0( 0( 0(0(80(0_*0_*0_*0_*0_*0_*80(0,0,(000-80-0-0-80-0.0.0.80-0/0/0/(0-0+080+00[00[0!0[0!0[0!0[00[080+000_1!08080`0`000000000000000000(0(000000000000000000(0(0080 00 00 0080 0a0a080 a0a0000 a0 a00(00000000000000000@0@0@0@00@00 0;;======'p D ) % q=2,nDE%+,-./012345789:;<>Q_Yt f}!y#+(W*Z*!+&++^.)4G6}6e89^99=BBBBDE&()*6=?@ABCDEFGHIJKLMNOPRSTUVWXYZ[\]^`E'u ?Jeghj (6QSTVu.IKLNm 3568Wb}3568Wp $?ABDc (a|~ &()+Jr  6 8 9 ; Z p * E G H J i   ! # B V q s t v     > r   3 5 6 8 W m :<=?^mAZ\A tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%tX%t̕:r-/::!T8@z(  B    B S  ?A0z(#0t _Toc526240334 _Hlt23932874 _Hlt23932875 _Toc499956249 _Toc526240336 _Toc23932834 _Toc506699114 _Toc15471210 _Toc23932835 _Toc506699115 _Toc15471211 _Toc23932836 _Toc506699116 _Toc15471212 _Toc23932837 _Toc23932838 _Toc506699117 _Toc15471213 _Toc506699118 _Toc15471214 _Toc23932839 _Toc506699119 _Toc15471215 _Toc23932840 _Toc506699120 _Toc15471216 _Toc23932841 _Hlt506267686 _Toc506699121 _Toc15471217 _Toc23932842 _Toc506699122 _Toc15471218 _Toc23932843 _Toc23932844 _Toc15471219 _Toc23932845 _Toc15471220 _Toc23932846 _Toc532903617 _Toc15471221 _Toc23932847 _Toc532903618 _Toc15471222 _Toc23932848 _Toc532903619 _Toc15471223 _Toc23932849 _Toc532901184 _Toc15471224 _Toc23932850 _Toc532901185 _Toc15471225 _Toc23932851 _Toc532901186 _Toc15471226 _Toc23932852 _Ref525019960 _Toc525385158 _Toc336328864 _Toc342988490 _Toc345764164 _Toc345764427 _Toc345817470 _Toc345820668 _Toc503258293 _Toc532903627 _Toc15471227 _Toc23932853 _Toc23932854 _Toc532903629 _Toc15471228 _Toc23932855 _Toc532903630 _Toc15471229 _Toc23932856 _Toc15471230 _Toc23932857 _Hlt532893881 _Toc15471231 _Toc23932858 _Toc15471232 _Toc23932859 _Toc430147792 _Toc430161922 _Toc430162289 _Toc506699123 _Toc507333499 _Toc517847054 _Toc522095125 _Toc523652407 _Toc15471233 _Toc23932860 _Toc517847055 _Toc522095126 _Toc523652408 _Toc15471234 _Toc23932861 _Toc517847059 _Toc522095130 _Toc523652411 _Toc15471235 _Toc23932862 _Toc506699129 _Toc15471236 _Toc23932863 _Toc506699130 _Toc15471237 _Toc23932864 _Toc506699131 _Toc15471238 _Toc23932865 _Toc480887648 _Toc480895705 _Toc506699132 _Toc15471239 _Toc23932866 _Toc500215734 _Toc500216032 _Toc500216195 _Toc506699133 _Toc15471240 _Toc23932867 _Toc503258297 _Toc506699134 _Toc15471241 _Toc23932868 _Toc523652430 _Toc15471242 _Toc23932869 _Toc523652431 _Toc15471243 _Toc23932870 _Toc523652432 _Toc15471244 _Toc23932871 _Toc423779663 _Toc478186201 _Toc503258298 _Toc506699135 _Toc15471245 _Toc23932872 _Toc450845667 _Toc506699136 _Toc15471247 _Toc23932873EEkkk   3344o!o!"""""" $ $ $M%M%M%c%c%c%[&[&[&a&a&)')')')')')')')')')'(((((((_*_*u*,,------------...../////+0+0+0[0[0[0_1_1_1r1r1122.2.2.2e4e4g44455555999*;*;*;<<<<<<I>I>I>I>A@@  !"#$%&'()*+,-./012345678^_`abcd:;9<=>?@ABCDE@FGHIKLMJNOPQRSTUVWXYZ[\]efghijklmtunopqrsvwxyz{|}~/FFppp   3III!!.".".""""($($($b%b%b%%%%a&a&~&~&~&`'(((((()))s*s*u*,,------------...../////:0:0:0:0:0:0:0L0Y0Y0m0m0m0p1p1p1,2,2,2:2:2:2e4e44445555555999<;<;<;<<<<<<V>V>V>V>>>A>z@A&>z@@@A::Jh6T.L6b6p$Ba )r 9 p * H  ! V t  r  6 m =mA]""."/"0"0"""""""""""A#A### $ $)$*$+$3$c%c%%%%%%%4&5&[&[&$($((((((((((((((())m0n0p1q1>>??m@w@y@z@AAACTSLC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of TestPlan.asdCTS"C:\PerformanceTesting\TestPlan.docCTSLC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of TestPlan.asdCTS"C:\PerformanceTesting\TestPlan.docCTSLC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of TestPlan.asdCTSLC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of TestPlan.asdCTS"C:\PerformanceTesting\TestPlan.docCTSLC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of TestPlan.asdCTSLC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of TestPlan.asdCTS"C:\PerformanceTesting\TestPlan.doc|FO} N~.4MTLE[2Dt|CFpBrKŌKAudn/t)$p*d/ Ndzd g:PRMtl  F a5d6eJ0 8t) r9xyw Y(` CzU  e) NpFo X&- j{H fz   ێj^   @ $gJ]C_  *8s  ( > :\ey r&Yܞ3nd~Є|}hw (I7 YFAN58XW,!R]F;ml }JРJr; svi/J*}xN:\ <̬B YY_xee Y,kd~p ~=Є|}- IXNrH %.'R4wM]G7Bv)F`9'?  O;dU5b~N :\\bWvJD~o6 DJ,V{  \ 4w# M# "$"?"} $J3$*! %d'+% 9"&l%h:.%(>fe%d5&$M4&+& Y6'"NX'(tQB'z9(dԍ!d) () @B)"h X)櫞.)+x}- Y&/-:~#-x)-. J.T@s. nb/ Ox/ p0E&E1 /1bp\12x|3v6c)3h$L).324xvu5$nRBS6t96 !6 0CJ7`sI8&rM9X9 L89fbjJ:~8z:4FT ;jV( ;:\@; t< d9E? w?K@hNS@D*3@RRA (5B~A,PBWB,CJ#eC擼| )DtWDd#D NE  Eh`PXFTMG,_?GV\B*Ib0GK::K ~hL+0JLC4qMdjS5Mdy;N$T0R_N YNjVa`O HjObXQO Y$!Qu-Qu>Qd@#QPR  RV$3>Sd-.SV0{EWT}иr\\{~q3\dK\\i\]d*$] ]0F^*x0_*MS_$_Ru_e28x_? _ Y*`5*cMTcpЏtcxmc^:6|c0IddddKe ZMFf s f Y"zf Bt g:ܢCh ij:`qi Tyi hj,Sj&MBk5CkX<mCevmx\&Amh8AmTƞ{m0|m -nd}n8llopqtrCSr >IsP%P*sxexGs@otdjMu"_uRrh^udF)vdv l!xB!4]F yBh.uydxLz`\|{ e{60*{TM]3}{L~ K~~:{n%~_:Rs^`.^`.88^8`.^`. ^`OJQJo( ^`OJQJo( 88^8`OJQJo( ^`OJQJo(hh^h`. hh^h`OJQJo(^`o(.^`o(.^`o(..^`o(...^`o(^`o(.^`o(..^`o(...^`o(....*p^p`o(-h^h`o(.P^`Po(..^`o(x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.@h^`.p^p`o(- hh^h`OJQJo(p^p`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo( hh^h`OJQJo(p^p`o(-h hh^h`OJQJo(88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L. hh^h`OJQJo(hh^h`. XX^X`OJQJo(hh^h`@OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(hh^h`CJOJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.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(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ``^``OJQJo(h 00^0`OJQJo(oh ^`OJQJo(hh^h`.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. hh^h`OJQJo(hh^h`o(.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h ^`OJQJo(hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(-h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`@OJQJo(8^`o(. ^`o(.8L^`L.8pp^p`.8@ @ ^@ `.8L^`L.8^`.8^`.8L^`L.hh^h`o(.88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h(h^`(o(.hP^`Po(..h^`o(...hx^`xo(.... h^`o( ..... h X^ `Xo( ...... h ^ `o(....... h8 ^`8o(........ h`^``o(.........h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.++^+`o(^`o(.0^`0o(..0^`0o(...   ^ `o( .... @ @ ^@ `o( ..... `^``o( ...... x`x^x``o(....... `^``o(........ hh^h`OJQJo(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.hbb^b`.h2 L2 ^2 `L.h  ^ `.h^`.hL^`L.hrr^r`.hBB^B`.hL^`L.h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`@OJQJo( XX^X`OJQJo(hh^h`@OJQJo(p^p`o(- hh^h`OJQJo(h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........h^`.hbb^b`.h2 L2 ^2 `L.h  ^ `.h^`.hL^`L.hrr^r`.hBB^B`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`.h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.^`.L^`L.  ^ `.\ \ ^\ `.,L,^,`L.^`.^`.L^`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(-h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.P^`P@@^@`.0^`0..``^``... ^` .... ^` ..... ^` ...... `^``....... 00^0`........@h h^h`OJQJo(h ^`OJQJo(^`OJPJQJ^Jo(-h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`.h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo( hh^h`OJQJo(@h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`o(.88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.h^`.h  ^ `.h L ^ `L.hxx^x`.hHH^H`.hL^`L.h^`.h^`.hL^`L.p^p`o(-hh^h`o(hh^h`o(.0^`0o(..0^`0o(... 88^8`o( .... 88^8`o( ..... `^``o( ...... `^``o(....... ^`o(........h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(88^8`o(.^`. L ^ `L.  ^ `.xx^x`.HLH^H`L.^`.^`.L^`L.p^p`o(-h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`@OJQJo(^`o(.@ 0@ ^@ `0o(. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L.0^`0o(.00^`0o(.^`o(..`^``o(... `^``o( ....   ^ `o( ..... BB^B`o( ...... z(z^z`(o(....... ^`o(........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(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. hh^h`OJQJo(h ^`OJQJo(oh bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(hhh^h`.XX^X`o(.0^`0o(..0^`0o(... 88^8`o( .... 88^8`o( ..... `^``o( ...... `^``o(....... `^``o(........h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( XX^X`OJQJo(hh^h`@OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. XX^X`OJQJo( hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(h0^`0o(.hh^h`o(.0^`0o(..0^`0o(... 88^8`o( .... 88^8`o( ..... `^``o( ...... `^``o(....... ^`o(........ hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h XX^X`OJQJo(oh ((^(`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo( XX^X`OJQJo(@h^`.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. ^` o( ^` o(.000^0`0o(..0^`0o(...   ^ `o( ....   ^ `o( ..... `^``o( ...... p`p^p``o(.......  ` ^ ``o(........ XX^X`OJQJo(h^`.hpp^p`.h@ L@ ^@ `L.h^`.h^`.hL^`L.h^`.hPP^P`.h L ^ `L.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(h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(hhh^h`o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.^`o(.h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(h ^`OJQJo(h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.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(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(hh^h`.0^`0o(.00^`0o(.^`o(..`^``o(... `^``o( ....   ^ `o( ..... BB^B`o( ...... z(z^z`(o(....... ^`o(........h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. hh^h`OJQJo(p^p`o(-hh^h`.hP^`P..h ^`...hx^`x.... h^` ..... h X^ `X ...... h ^ `....... h8 ^`8........ h`^``......... 88^8`OJQJo( ^`OJQJo(o   ^ `OJQJo(   ^ `OJQJo( xx^x`OJQJo(o HH^H`OJQJo( ^`OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo(o ^`OJQJo(o pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`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( 88^8`OJQJo( ^`OJQJo(o   ^ `OJQJo(   ^ `OJQJo( xx^x`OJQJo(o HH^H`OJQJo( ^`OJQJo( ^`OJQJo(o ^`OJQJo( hh^h`OJQJo( 0^`0o(.00^`0o(.^`o(..N `N ^N ``o(... `^``o( .... VV^V`o( ..... ^`o( ...... (^`(o(....... ^`o(........hh^h`o(.P8^`Po(..^`o(...x^`xo(....  ^`o( .....  X@ ^ `Xo( ......  ^ `o(....... 8x^`8o(........ `H^``o(.........h hh^h`OJQJo(88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. ^`OJQJo(o ^`OJQJo(o pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`OJQJo(p^p`o(- hh^h`OJQJo( hh^h`OJQJo( ^`OJQJo(-h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`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( ^`OJQJo( ^`OJQJo(o pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`OJQJo(^`o(.  ^ `. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L. hh^h`OJQJo(h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo( hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(p^p`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`@OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo( ^`OJQJo( ^`OJQJo( pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`OJQJo(hh^h`@OJQJo(h^`.hpp^p`.h@ L@ ^@ `L.h^`.h^`.hL^`L.h^`.hPP^P`.h L ^ `L.h ^`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h XX^X`OJQJo(h ((^(`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh hh^h`OJQJo(p^p`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. 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(p^p`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.h ^`OJQJo(pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........@h ^ `._ _ ^_ `o(.@ 0@ ^@ `0o(..@ 0@ ^@ `0o(...   ^ `o( ....   ^ `o( ..... `^``o( ...... `^``o(....... `^``o(........ hh^h`OJQJo(h^`.h  ^ `.h L ^ `L.hxx^x`.hHH^H`.hL^`L.h^`.h^`.hL^`L.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`.h88^8`B*OJQJo(phh ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(p^p`o(- hh^h`OJQJo(^`o(.^`.L^`L.  ^ `.XX^X`.(L(^(`L.^`.^`.L^`L.p^p`o(-p^p`o(- hh^h`OJQJo( XX^X`OJQJo(h^`B*OJQJo(phh ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.p^p`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(- hh^h`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh X X ^X `OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h \ \ ^\ `OJQJo(h ,,^,`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ll^l`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(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(@h h^h`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ``^``OJQJo(h 00^0`OJQJo(oh ^`OJQJo(h ^`OJQJo(h   ^ `OJQJo(oh   ^ `OJQJo(h xx^x`OJQJo(h HH^H`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.hpp^p`.h@ L@ ^@ `L.h^`.h^`.hL^`L.h^`.hPP^P`.h L ^ `L.h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh X X ^X `OJQJo(p^p`o(-p^p`o(- hh^h`OJQJo( hh^h`OJQJo(hh^h`@OJQJo(hh^h`o(.^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`.h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(hh^h`. hh^h`OJQJo(0^`0o(.00^`0o(.  ^ `o(..`^``o(... `^``o( .... ^`o( ..... PP^P`o( ...... (^`(o(....... !!^!`o(........h ^`OJQJo(h   ^ `OJQJo(oh   ^ `OJQJo(h xx^x`OJQJo(h HH^H`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.hPP^P`.h L ^ `L.h  ^ `.h^`.hL^`L.h``^``.h00^0`.hL^`L.h^`.hbb^b`.h2 L2 ^2 `L.h  ^ `.h^`.hL^`L.hrr^r`.hBB^B`.hL^`L. XX^X`OJQJo( 88^8`OJQJo( ^`OJQJo(o   ^ `OJQJo(   ^ `OJQJo( xx^x`OJQJo(o HH^H`OJQJo( ^`OJQJo( ^`OJQJo(o ^`OJQJo(^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh X X ^X `OJQJo( hh^h`OJQJo(p^p`o(-h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.  ^ `. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(h ^`OJQJo(h   ^ `OJQJo(oh   ^ `OJQJo(h xx^x`OJQJo(h HH^H`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( 0^`0o(.00^`0o(.^`o(..`^``o(... `^``o( ....   ^ `o( ..... BB^B`o( ...... z(z^z`(o(....... ^`o(........p^p`o(-h ^`OJQJo(h ^`OJQJo(h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(-p^p`o(- hh^h`OJQJo(^`o(.h  ^ `.\ \ ^\ `OJPJQJ^Jo(-xx^x`.HH^H`.L^`L.^`.^`.L^`L.h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(p^p`o(-h^`.h^`.h L ^ `L.h\ \ ^\ `.h,,^,`.hL^`L.h^`.h^`.hlLl^l`L. hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.h L ^ `L.h\ \ ^\ `.h,,^,`.hL^`L.h^`.h^`.hlLl^l`L.0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L. hh^h`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ``^``OJQJo(h 00^0`OJQJo(oh ^`OJQJo(hh^h`. ^`OJQJo(pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.K\*`~}|&/-uMBk(` trrM99(}y;N} $6eB,C? z%.}nI8c)3m9E?m =-XV~n/ ,V{ T ;sF^)Fg:K~~rR]L=jJ:-.SRBS6 <0_]3}M4&hwH\bra5F)v[Idotdfe%8YhjD~ E[[Y_,kr9uyu>Q;vm.)+\12O[#-3>S5M4zU Kenb//[*$]~pNEz X'*c FGs<Sr)XTyi:Kw#[XeY=9@s.a`O|j^ #D|mAkY/eyvC_ &E1ZMFfN(5B\|{l!x@B)J.%*8s mc|36'qqM`PXF?Go6 Ox/qivu5 XPRX) "$0GKjtcCh)8x_!d);)-."zfWvEWT @ 96\ }=iu-Q).3Ќ8{H *I( ;jMuXNHjOAm{L~nZ%~e) 3@MGw?\&AmMS_xLz0*{P*s  l%`90 JLQB'5&|c{m] )DK@()@;i/~hL|PV3$~}xN/1Mtl@#Q- X<mU5t<*\@YG7Bt gw5Ck!6Byw+& _0R_Ns feeXQOMTcI7}-e{,!$!QL89>Is#eC&- S@Ru_8z:-0XFo J.p0R4 R'+%l h^h`o(.Ȇ!P^`Po(..("^`o(...#x^`xo(....$ ^`o( .....`%  X^ `Xo( ......Ј&  ^ `o(.......D' 8 ^`8o(........( `^``o(.........D @h ^`OJQJo( @h^`CJ OJQJo(n b@h ^ `.h 2@h 8^8`OJQJo(̋ e@h^`.$ @h h^h`OJQJo( @CJOJQJo(8܌ @h 8^8`OJQJo(                                                                                         R                                                     4-                 m                                   R                                                      e                   2n                R                                                                                                                                                                           Xr                                            R                 015=BMYZ[\]^_`afk|}~A^ix^;mnW=op'YZq !%6&;&W&X&Y&Z&[&&&&''!'"'#'$'%'&'''('.2;2G2H2l2}2~23333334(4)4K4[4\4444444455565^5_5a5{555W>X>h>y>>>>>>>>>>>>>>C????z@ AA@@(@(P:@(@(AP@Unknown AdministratorG:Times New Roman5Symbol3& :Arial7& Verdana5& :Tahoma?5 :Courier New;Wingdings9 Webdings"h3kf3kf 3 n =!r20d~?! 2q Requirements Collection Document AdministratorCTS  FMicrosoft Word Document MSWordDocWord.Document.89q@  FMicrosoft Word Picture MSWordDocWord.Picture.89q FMicrosoft Visio DrawingVISIObjectPool-0)čh%0)čh%_10361790995/ F0)čh%0)čh%1TableCompObj.1Sh [$@$NormalmH <A@<Default Paragraph Font  l,b$?$BD I{  @n(  6   AB S  ?Et@L@@GTimes New Roman5Symbol3& Arial"hKƭK!r0MS5369MS5369ObjInfoUObjectPool030)čh%0)čh%WordDocumentSummaryInformation(24)Y bjbjWW ==] UUUikkkkkk$ZNBU3"UUUiMiiiU iUiiiii `WLR_ i  jUmHN N!#"##%$%%n ?$BD I{PNG  IHDR}2FP$gAMAPLTEvvw }ߏˋ:Q%YڕVw# ;8kۑr&0“4AB[{ MXXjxxp~~gppŪ(**,..rvv VXXnpp:;;EFF?@@{||qrrmnnhiibcc\]]ಳ#76aW^dc!&%{JMLNnh^tCVV`ZbW^DJJ DBKHGE7{6!JENJOG-d)NEKBMEMBK@J?GexJ@g4>7[El.Nd&VCobrv^#raRgbz -ۖ _"x[mމ&MB(##_xB 9Yy$$୭a.VG<'H$HC!qᕊN 5mvVrm/ҽ!Vgx< Mw#L^2:}햼6W< hO=}5fH 0̥p8Qe,cVzљ)*Ե,Aw2V; {hrzǒ`"̆X/r.-*b/zaR;nMiKm`1,8uc)v .+\]EF^+Wjm7XJM;գ/°F܅7J: 2n!^{/zVVˍ]eR1'rHVр@^ f=a`4ch| yZ?7BtG6LQС6_zu>{#4 =Z{M,PviVMY CC6Ը.wԗq?hW?Q5PrH׸wPȎ.,W3(T jv>WKp}|Sl{5xweV΃.wѴLr/_F qh\}4vK{^bo0l  EsBӮU`wwj5W{Ga}sP<!V/ȳkH7 f=ї=~j*:oõ zL&iR9w9 ՗6Nϟaqz^Oq`Cx->ه,.\>c!-vVR=E@BY$z +F<{kE|N2ᠷHM,_l6q6?F@;N{ GAPr;,gCdl6<Ҳ!md`JnsYu -N فL./Pt^?woi :i߆@鳝=#.mV8, ?ZOLU; t\q'gQрL_'vqclDF081l{*Y-4eRq^t 1?Iݚ\;sg\)v2-{v;ѹgɬff0[?clpvJ vkӥ/=w?]>;ޣ>31}>[z&xIENDB`Oh+'0T    (4<DLssMS5369S53 Normal.dotMS5369d253Microsoft Word 8.0@@V?LR@V?LRDocumentSummaryInformation82_10891178957F0)čh%0)čh%Ole VCompObj69Wq՜.+,D՜.+,, hp|  CTSj  Title 6> _PID_GUIDAN{E1DBAEE2-BE32-11D4-B6E3-0002A519DF6F}O 6.0 ShapesVisio.Drawing.69q՜.+,D՜.+,l(@HP\h t   PagesMastersPage-1Server / Tower Desktop PC WorkstationLineObjInfoYVisioDocument8;=VisioInformation"ZSummaryInformation(:<8+!Visio (TM) Drawing ,M#0dRd !fffMMM333$ $ 8P Td Arial@0NWingdzs@1m Monotype Sort2 m S?ymbol5T?? Y@-1UJ:DT1EW-hPT8* z.U~b a0zGz?R@3$CfRWb|||U@  } |IKG/Y&4?\.? AfY&*,,' /q&z&}U | |y  }{})} ?2  | | |||||||-?k4')-'CECE,'CECECE -?>?:`}'UCECECECEUCECECE-I O4F2AJY;; ATnVnVAHbGTfYc R_R__ `#f/lb6p`fW /l J/l  Y??5?(\ #!&4$ | tFf-|-|-|-wGQ Uo OM`EtoA _3=OOOaOsOO??O$?7ܻu@L&d2K?r# sU/-O%7I[mfR + K  I . ||i|\ nd'0/UK iR?d?v4Gzt2#&s s Js s -0jӯY/!3)󿄵1D///Q+p)?HdYc 4AkǿٿYfU|%1IO]-(fp ɻ %-=Y[:#:4)A/q//Yk/p?2Sπ'9}Fɇ7%õ8\n1$u  (:L^p)BH>ZՔU \ n4!'4#U2q ?/%&k/%&`,`,`',ѓ4?|QԞQyٓAG $X&bp6q /#3=/qؐT0'vr@1N!T0;U OauADV=02r|UHD1 u6$2@1@1B 5AAbHrdr#d΂,Q,Q=d ,$1Ѧ,/pdA~m߀/Q?c?u4D/'OD6/]OZ/l/~/w _2_DD_3Nt@rIw0(7Rdڒa ,ђa/poTf/5GY od`⑯" ?V 7=FHA1,a- G($16oooooݟ00O?贁Nk<+UogoJXoȿڿ"…55bYk} 1Cgyӏv .CRdvϝϯП*?+Pb#F .a1MQ(t95 -?h axfY#QZl_~ԳB/Vb??/// ?EAOOZfhmIONO h\tI4_X ___o .@;~MxOOo,c_ ~]_T/[T_o$o?Q?c?u????#5?>M?oQotoooOoЏ(s^x.Kȯܟ \\ctsinentspaa\laser6?ps ?X,LetterOas Ɛ9O  '|='winspool\\ctsinentspaa\laser6?Ne01:UFDfP h TPUU UF~?x<F BP(?YH{ R$- Rb]bfbf b --ZRU[@M&d2? sU ! &+/%"eZE| ^U*dGmR`P]/#R%TU $ $x!!1"4?` User Name"`En}tB0the uA1nF0.1xc? ?93Inventory NumberU%L3S7i6n2Bf0o$Q/c/526BR`Networkf`obufnbfEFnmE Ah ZR?",?wpx]weޔwU w_U_ 'i"1"n01Represents an IBM compatible tower PC. Right-click property informon.bL&d2ٿ\.??rq\k??9x<@ $5ܿ =UG DF  P# h>wptnr0Ga5 cnaGrap ParwG0x"{'|a)E}fxr>2`uDescrip1L#R`Ed~MEkoxf ~Asse>2`>wa&2ID~3qf4et s Serial62`>w0[rEg}fV1apL#oc2=Ol4~g2! Bu?ilding;Ob~E_{fF!db`RoomLB`>wr(~gT!ap De@menUtL3>wdzp1]}YM5IE<8C sBX<Wb+X§br#x~B`Reposi1 Tex'F&(F&|4Z1w\?3Fi4_F@FaWQfdKq65}ޗޟrqf5}bXܕ(:5]0V2V q)E} BP(,횙m؄ME)J\msH3 Od)h)hq@ G_rr: E~ !@W ~G<@ X L¹ ̛& m"B#njr)h)h21r8n` %ppertie{s%`0S4~Dqcustomq$ ofՔlected shapXq(qCRb ^1,Tzaa2Юa$miU-)h]L`1"65$2"f5$3"5$4")E$5"ME$6"E*E*՝*쥝*^*4e****&UH luD( " # UI#  >ih#0JT#3 M]Q 1MUFM&d2?F\.?JP UNtQ`  o?tUT"O/8bNu'Su9'N Nb/A@A3 AMkJZNUD`0$Ni'!@$5`7Copyright 1999 Visio Corporation. All e"s reserved[.`R2#'ISV$'Z! 08M*U$JU U%I &ma2a30(@#F BP(?FNJ{ d2?1}*/TU/)(>?=O2Q\?n?????I폛Iz??cZww? OO0O_TOErOOOOOOI}?Jz?F<(wwc_&_Ufro5>""&o8dY______=VVC?F߁<-UU\:gUUh 8JT 3 MePQ]Ya;MUFEx^?F\.?Fxe]YW?F%H$@I?P utQ`  ݅o?ttU~zʹˋY9u{ueb_A@#&fq  uMuF&JI)T@2rqǿ?@I ϥ?$ї'e*bruL|M-# TQm@"uA`.&6"Uv㊞y*w ^c sWk?J/ 2;;ᳮ w'("x// L=+?]/5? m@/{d3tA//&/ #/!9/z/%c /vvOG͕O/Od?O?G?mH>_Ob_?mO{;4RA?? OO/OAOSOeMO!9pQ _Oc Oo.o__*_t_hko_o ;4o&o@8oJo\onoo G5oc oWEx^1Џt3)1;J6WLj䏼Ǐ;4jASew$eMC!9bJc 'WsN!c;4 Ϫϼ߼(ĝG[c xe]OYWWt9vߺEi(NkC{N 1CU|uz7,1P&d2y&/ ax R L/p/{#X;1+=Oa(V/l??//؟/8O//yO?O/?+-0 "?4?F?X?j?|??%O)IO lOf_׿o\OgOeoOO`@o_o__+'L_^_p_____p΁Sowo5o9 1o:oo3ӏ/+Ty _~ yQJ?b8IW&J /L$\/+ʟ`ܟ$ yʯi`$e6̈́ܯSw6\-yPQ߉\+ӿ -?πzJ](ϙf y c߉@Z~߉+ U>$ `A`E.FUZdv+?F^4@w=<1?FD"H$@ wh 8JT  MPQ]YAYMUFoeG?Fb?Fh1۝y?FU Ӯ?P NtQ`  ~ ?tU:gU'бj'0'Nu|uu1NNb_A@ N $R- J JUJ#NU0O贁Nk?RH@Q'#N1#FE?F[V?F4L&?FfU2!~%ć%x~ yt/u~JVP][&g++u|1F2"Ru1# N?`0Vis7y14-`7Copyright 1999 Visio Corporation. All 2s reserved.`Z2b1#&'IS0@>D*|B(1#H('$FlJA0JU5 OEIj[D#_aRUP%(@FRmF?#$+SW/34]c F2"R[(F! BP(?J_A,wWQj5^__T5UBVo]_5oQ LA_FCrAcBQOOOO__&_8W0o3?FbXklߓ}Q)Tԯ_~^ \ _xkq_xT[B p]7I&QGomx>bomk0i dUoo /AS8WTմ2?FQ( BE'',?_G&~^ \ Gh4Ҭ /?L'BL֕~~J8JKmb}ɟǏki dY1,11;W #Wi{3\ۘTk vnEmO,i?Iw~Z X& /up1۪ѫNNȠ|`r yuUF,$qƇar} E~_Q]1?r UOEUc\xţP~Uu>o߁E[@jͻ1,@LnŐstŌ3UݶKo<iݿii dAY5lAȺUMQÏ~Ϯm]Do%1I/g]-zgA3xTxj5l\n\`Ň7NΤ;ȅJm}d%!HD # =hj4>TAYY9 #{AUF2rq?@-?2.%3?FUP6 t` m t/b r~uL}A-@m IAI>u.R+ʍfp { pSubU r > &'1>vU"I & (;#3`0iy'!$5 V`7Copyright 1999 Visio Corporation. All "s reserved.`*B2;#"0'=SJRW4 "(P48 8l0>Udd#5= =3bQa4A/(01@92f"]B" !c "W"Bm(`RAFASOeG?qO A%NOO/WAEEJF_eO=_AhU54IO3rAS @ !p%^IBM mp ble"AhPaE9 '93;/'2q?6"X'_bH'-z !OyaYE_ӘF$#0 w#t1?0 ? |#0]ZakND+>0O\?G0?0Ɓ<P 80#P#0 -0!* $-0.0 R  '4UFDfP h TPUU UF~?x<F BP(?YH{ R$- Rb]bfbf b --ZRU[@M&d2? sU ! &+/%"eZE| ^UUGmR`]/#JRTU $ $Bx!1"4?` User Name"`EntB0the u:A1nF0.1xc? ?93Inventory Number%L3S7i6n2f0o$Q/c/526BR`Networkf`obfnbfFnmE A l (/AS+?zw ww pzw  twwxx jDŽ xzk   c  x TxT~wTRepresents an IBM compatible desktop PC. Right-click to er property informon.b\.ҿ?rq`k??&E޿~o5<޿EUG DF P# h> name0a45snE`Product_ Numb#~3ʷp(n0»07a5GG Par-G0IȮ[˳a5}{πx 2`'Descrip1B`Id6aΦkπ\oAsse- 2`ʷaIDa3!q߃Pb` Seriaul2`ʷ 0>[粽Eg $1 Loc2laEߡBuilOdingb:aE_졪`Room.B`ʷra΀Պ@!8q ;Demen`Ǖ~3ʷd&ans1@8C1f` %'perties=&`0Sб?customR ofalected shapxRb ,1-qB7Q8q1p8}gA-Qؠ1`5m2`45m3`5m4`5m5`%m6`cEmmEmxmmmm"mmmUHPuD " # >h#0JTl#3 PM Q1MU@\./? THNtQ`  ?QtAOiFNuL du NNbA@ʦ N #MiJNU N`0Ni$$`7Copyright 1999 Visio Corporation. All I"s reservoed.`)>2ISVB$+ ($ 8lJ!Ul8!)M #  ! L1_a250 #H$?@?Udjae֍`1 -)F (@4?k OBCA%ONjO|OECAEOEOl`O(N`O_OCA3OEp8'W_jv_H1_PSͳ__ !ٓD1I3_jo.h1=oO`Zo lo@CAD_ojoh!o`Ro voCAo0K?oCA1(?$3rhM32Q$A7u9 %I ?!4?:~__CO_oH41@%7I[mُ_UH\uD" # UT Ah:0JT5 AM Q 1MU@URT*?@?@Vj?@Q( Bu?P UNtQ`  3o?tUT U(Nu1mu){NNbA@L ܲ JJvNU N?`0Ni'!0$%`7Copyright 1999 Visio Corporation. All U"s reserved.`R2b#ImSiV$%1Z($ 8lJmUxM#v0a*250 X6pv[o12 k F(1l6??wy؉m>/A%;NTOfO/A%;E6O?O/A 5$?03rw1LMUS?2Q$M7 U%s9?!4?:NbgXO _ U&bD3MDE_xeO#j@1Uy_______Voo%d-o?oco8{@1Yoooooom#?[.{d9;OFU@|>$v|pC@1]L?^?@p?? $#bjP?U@Oc@#H$L]{qݖ9O8ؙGL.O8IxS?b'vb'fx Oğ֟xxO;[3(_>@OX ]YjTօ͏@ߏ??(D?@vn{LN썰V|Lvx"UCOg<ψ`Ϙk]YjPUH luD( " # U* #Ahi8JT iiMePQ YaYMU@\.?@p?@vn?@L&dѮ?P NtQ` ? tU*7j&7@7Nu'/uA/NNbAe@A $RAMRA J5J#NU0O/Nk?H@Q%7#NA#Ot?@|_?@f2ʎ%×%ՙ!0/ <~YS֔5e/b"V2""RA#D`0Vi714=`7Copyright 1999 Visio Corporation. All 2s reserved.-`Z2A#6'IZ&S!0@^#Db H7$FMa0JUPa_EI[D}la#R)U)P5(@F٬?@P>?#$n;C4@  1V2)"Rk(V! Y_)x_TQz5^Vj_:_ 1MYd5URV!om_EoQLQ_CrAAcBQOOO__$_6_HWy<?@lZV{lr׏ q?Gwo^u *[mE`@o}ki dUAV!d5 AWi:L^C\bX?{l#<}A'_׎Z# X$ß)41-BQ?Q #;jU@ov;XP"1fw]@Eͮk_EUl6 /AN`EsP@ P`0k'׿ן3ei i d_[d![z5Ow(A'?@1d1 <OkqP2 ]^ ϿQ( B?@BP({l3^Sa92Mh=Za H"?l~|(peo -|9HWsČ;Ww'^\&ـDߤn'#H$  6´r Fj׏ukF0d%7I4[HWk?|k!⡿[\,//)"-M9?y+s?/?/J h+$s/./@/R/d/v//HW*LFBk*^\?OcO QV?BX__?H_O_?Ok+$CIO[OmOO OOOO7r_ o*𔇻~|/_AY_+_BX_;h)oo+ HD # =hj4>TAYY9 # {AU@2rq?@؂-?2*_LmP6 t`  Mt/b ruLA-j A>uU.R+fp  pu=bU  Y3A &'>vIU" & (j;#3`0$iy'!$5 V`7Copyright 1999 Visio Corporation. All "s reserved.V`B2;#"0'=VSRWZ4 (48 8Ul0>Ud@d#5= 3bSQa4A/(01 !2f]B""  "W"Bm(FASOeG?qO A%NOO/WAEE_@eO=_A4IO3#rAS @f1p%^IBMv mp ble"AhaE9 '93;/'2q?6"X'_,Hu-pz !OyaYE_Ә FD-0 4w#?-05F -06`?f-0[7D}+-0\M?GU-0P-0>3P-0Az-0Eĩ$0LUFDfP h TPUU UF~?x<F BP(?YH{ R$- Rb]bfbf b --ZRU[@M&d2? sU ! &+/%"eZE| ^UUGmR`]/#JRTU $ $Bx!1"4?` User Name"`EntB0the u:A1nF0.1xc? ?93Inventory Number%L3S7i6n2f0o$Q/c/526BR`Networkf`obfnbfFnmE A l6H wGw|w|{w{wzt|wzwxx #0-8 dwwaRepresents a Sun SparcStation, or othercomputer. Right-click to property inoform .b\.ҿ?rqῸi-~??&EbX,{,4ؿr<UG DF P# h>4 ;`Vis_SBN.chm!#22297A `7Copyright 1999 _0io Corporation. All 2s reserved."7% 9xb37} X3059#E3"x T1x~~3#<8x2q@?OF#??Gs1(bD ;G6!u~s0@eA]55xU#HYQ%eT pW*5eT@pW5eTpSp@W1]AY59 <33br^FbLiIYax~<B@XbO`+XbaB`Reposi1 Text(&1b((&q,ZI]Ajo-Flcb^q%!0h x2c'8ju!o~38j~FN o^q5{f2cdP__-GG𩕟[:\Rb ~ 0͕b ~G<@ǒ͓ԛXb $l}& O"d#mA`]uLKTx "ä*26!6!221$13 .q.qjBE<<Vx(t91953<` Manufacturerv`u2&t3Enter the }m{ name0;*5sHZEk`vProduct Numb#*t3pn ±07;5oҿ]jGmh0JTt3 M Q 1MU@\.?@"\?P NtQ`  Mo?tUܶm۶R $HNu Glu%wNNb_A@e N MJNU N`0INi!,$!`7Copyright 1999 Visio Corporation. All Q"s reserved.`R2Ik SKV$+G>($ 8lTJU$JUt U%I & Na2a30@@bX?@|>?lr#Ri#(5Vj?r#?4<1QaL4 k=U 1 !S1 !x?@44@? <(9;JЕDA B_V?U@5#_t=OWyQ%5?@#H$_ֳ_4%5U5$Oo7yQ5>h8JT iiMPN YYMU@Hh4?@Y; a?@d2L?@JRϮ?P NtQ`  Q7? tUܶm۶m#Y#,M#Niuxqu-jNN{bA@ N $RM TJMJ#NU0O贁NKk?H@Q##N-#@z<@ ?@?@&H$z%҃% tz O[Vt? Gp"tzsHMR^Cy q|xB2"SR-# N`0Vio7u1̞4)`7Copyright 1999 Visio Corporation. All 2s reservoed.`)>2-#"'I S 0@BVDx(-#H#$FRlJ0JUt@tEI?A#a!(0|>?@}"?#$V9&,C,QQB2 c B2"uRW(B!vn3_z5x+R_dTQf5^'"__ "T5U,V_G_oQ4L+_CrAcBQOOOOO_"W\?.?B&VkFbR,9j\ z\y _Dv?@HtXR,O}_B{Ļtjyr.o{qumGi{0i dUooo+"Wep_8UleoZ0#qh^ z\ iVo ~} ܟz萚`5m(lD$`ki dYB!AWi#/A\*bX?@$lb,@bR؄hZ# zXֲVj?@}0:&oe,7ö?z=" # d\7yϋEE{&1wED޶l6\n E 5׈<ČU1"@3ei k dA/&cu兢?@BP(地!0)k1Wth^z\"Ɇ$g*?U@V( GB$#b!5ԏk\@i`UHD H#  R# U U>ha0JT@aaM Q 1MU@\.?@> ag!?@#H$u?P UNtQ`  M?8tUBp۶mKO>OXONau?{NuY)bAe@q f#M"  &Jt`O0Ni1'27!`$U`7Copyright 1999 Visio Corporation. All "s reserved.`R21#X"&'I7>[SVJ${Z9 P6 lJU$JUy(U%I &ma2aU30%(@1#X13T[OI(5?CO Aa1Qm???????1?HOO/ I$0P!O3K_SO(_a1UBQ OUPDDOP 3Hr^_^L1RIh  bf:_U@vn#$o0SCoUd|a%oooQd7T 50K#fm$o=bXRd cmtD  $.6EIhzFVjncͻ͏ʟa1a/ASewU@B_P(\e{c=?@ OX|taJ׆m>/AWa1eүU@|>SǶ՟Fp (:^ςa1# -?QcuU@KROT*#UHTFWSviٕ˿a1mv߀ߚ߬߾ĐݯFp8ϦZ8~\a1q+=OU@ @ $MTPt a1=!Pbt$mj~Ft:NC 7,X/6a1A//)/U@lZV<x! ? 0,7I[??Q '?9?K? ]?o???D/c/u/f7f՗/i<]/ _ P/2_?qOO@OOOO_jmP'l6ر?۹_?&OH#O5O{oYOo}Oqqoo(o :oLo^opoG_b=_O_&֛L&#dps_"___ _'qqU@2? ۋoH꽏odo Rd3yWۏ#5G)& ~JK<y@ѠďHZl~^?d2Le ޸Yן/ S1HD # =hj4>TAYY9 # {AU@2rq?@؂-?2*_LmP6 t`  Mt/b ruLA-j A>uU.R+fp  pu=bU  YQ@ &'>vIU" & (j;#3`0$iy'!$5 V`7Copyright 1999 Visio Corporation. All "s reserved.V`B2;#"0'=VSRWZ4 (48 8Ul0>Ud@d#5= 3b !a4A/(01 C2f]B0"P  "W"Bm(FASOeG?qO A%NOO/WAEE_eO=_A4IOF3rAS @f1p%^Workst""AhaE9 '93~;/'2'q?6"X'_H-9z !OyaYEӘ Ft$0$0oPd.0ZA\".0^9.0|d4[.0Xk7UFDfP h-RTUU UUF|>@xT$YY9 BAU@|>?~?@P-DTO!@A-u#`u bu  Z") ^oe.ApUu` ?Wu Wb:#e= | A)" !-#U8">,>'> ?]"'///A, 7 ?:-R,&,_<^Ul$j$Ya-%# v tNs)2 6z2,3k&G@"b6<@!2rq?@[Ix@?nDvEӿ??*brueLA@Y@Bu:@B CC@B"B"B8"B"(> `u`=@;@;@@=u` QD6  2B"W]#@@n( V  {3Q137 ) y`7Copyright 1999 Visio Corporation. All bs reserved.`)`_SBN.chm!#22332]G32pBq?of2?\.?JaBQTVa0l>hAUd3 E 30202aJsQpi(:39h4q8IAYG $ ,TyJBKF-3-vpASapaME9 'G߷zc4C!"؆!+Um04 Wy3q-wW 4Wd`CuL` Posi6aCqasVs|6mada8T(T!kl"v2AAB--MBQQZ$R ĤE11|! i(tbQDžQ9` Manufactur[er4`م;A&cEnter the m. nameP`50'H!j`Product Numb7 "`WpnP`EE"52?` Par`ָ;@ME} w &Descrip|gUR`ֿdk oAsse`WaKIDU_` Seria9lO<`WJ`tseg Ux)Loc5bVhlME se=BuildingThb|_ E}`_RoomecWrA p| ǡ) DeYmente@aWdi-x-x3_'&d?#F8,A!ǡǡ=w]e1l% 5 E ME  U @ ) n -x-x}QXQv r01` %perties{ir`0SM~]custom߱ oflected shapqA*b AHl'z& !Oya YE_ӘF a.0n #e.0o? b.0}pfa|`.0oOD+d.0o.?g.0q0PU6 U UUl4, %M@@l$"5K @ $0x.C-3 yAU6 UUUl4, %M@@l$"5K @ $0_yU.C-37AU6 UUUl4, %M@@l$"5K @ D$0y.C-3 zAU. UUUl4, %M@@l$"5 @$0`z'UC37AU. UUUl4, %M@@l$"5 @D$0z'UC|37AUl4,%M@@l$"5 @ $0L{A-3R7U @$0yMR /$0L?D$0z7MIt ?4$0{`_l$0XBc@4(@4(@4(@4(@4(@4(U @4$0{ R $0|$0; I;gy$$0,; 9_UFDfP h TPUURUF0u?Fml?Fx<F BP(?R-- Rb]bR--x[@M&d2?ɿsUP/"eBZE| ^U GoP;/M/_*!2"R`Networkf`o^Kbfn^dEd6m^d du 8wJxwPFYπgaCvqc\TXw\Represents a modem, orulator/ . Right-click to er property information..bL&d2ɿx<ۮ??rqZ硘?s?tϿ4FCP( 忐7h4z^?UGDF  P# h>8/T 6DZJ# U@i4F?@ BP(?@L&d2?@x<:?P)iu`d?F7uB[ bqz z I Ft  ZP #!#="Q&@["["n#'&)U"!L@S{#14+`Vis_SBN.chm!#22316A `7Copyright 1999 )0io Corporation. All I2s reservedO.'|#%00"'%)tbO5)#3"t 1tJzz##x Yް2q_@?^OpF#?\.?d$=1e$Z! 5%t UtHA%D@ G%D!C, ZGQCQy-T1iRD%vT2iR%vT3iR5vZ5vZ5vZ3vZOEvZEvZvZtr^ t\EvVd!1P]5)9#!@fCdebW:rz 0u> zC8@,rbsF {T1s &qrQ'-"B#!poo,Hf38> T$bG'TU3Urip}tz+B`Reposia1 Textps's[& 'm `]SgwStCQCQ"C"!!2@2112w3OBGQGQE88@b(t"wS15Ga8` Manufacturerr`q2&>3Enter the m nGame{0%sȟږw`Product Numb#>3$pn{075Rݓ5딡 P#ardA0 5}կږ3"`Descripa12(>3d5kUږOEAssev"`$MaID3qږxj` S_erial2`$u0AOEgcږzLoc`2#5lԻEٗ@e Building!"5bԻ_aږUeJ`Rosom2+B`$r໮@eٗGGQ De&men4>3$d滪b#;Q]N]zoߑP9U% x(:"#W(vk7nEk5tP0bQ"9nWXWX+1ft` %perties2`+S^ fo(is piece of _equip!b !HD:  # ;hj,>TYY9 1AU@L&d2?@xU `0KBi$5  `7Copyright 1999 Visio Corporation. All ="s reserved.-`2=Sҟ$Jl>@>Ud(Y#  @ ax ōqc?@9AC?UX^U2UteE#߼e"  6B!5AR91941%5\.;O&H%52 O1C̠?^T2?41|5O_WOF3N9O ]YW1<19C_rK c_uU@1_NO_` aE l(z?r$:LcUHXuD " # U>ih0JT@tEI?qQU@L&d2?@#W ?@|>?@?]d?P tQ`  7?tULKhU $u lu%b_A@  RM Q UQ  # "& B 8#H"& Q `#p"& "",&(&.(&B(&V(&j(N& 3U0O贁NKk?@Q33C6=3`O0Ri7214!`7Copyright 1999 Visio Corporation. All 2s reserved.`V2=3X27 [S>#D3 lY(Ut(YE =3~ a18@~?@_D?lr:i6ir0ߕ2e2w8D`0 W@B _s*T 1 \ݴQ#_5Tlr ףp= i땨M  EUFtQ\Q5O{]Rci_ Pr4|c_^U_o hAQOOOOOOU@@ _r(\պ_5_ !K\ [_Eh4FhRT*‰__rb/܈_ ,?Œ_,__oo.nb~wZolorj lDohzeUo .@M?D"H$irNE0L[ r\.Fh+JRrQ1 kPiK]0.nǞKяi lͯ߯ex]oMßp8ΟrL脯]!K\ %' BFhz^Ser%XRϖ > a갯¯.n, $6vƒj lߠ|2DeA8÷##WR6[9TAYY9 #U{AU@2rq?@؂-?2~P6 t`  6t}/b ruLA- @A>uV.R+fyp o pubTU  n > &5'>&vU" & (;#3`0iy'!$5 V`7Copyright 1999 Visio Corporation. All "s reserved[.`B2;#"0'=ZSRWi4%(48 T8l0>Udd#5= q3b a 4A/(01 2f]B" ! 1"W"Bm(0FASOeG?qO A%NOO/WAEE_eO=_AU544IO3rAS @#?haE9 '93;/'2q?6g7X'f1%f1a~Modem_>Huz !OyaYEӘ F.0|U#.0}? C.0w~_a.0oD}+.0oPGY?6P{<~.0z.0UFDf h-TUUU@~@?x$Ud3 CE \4 $eU1$b24R(^Uw[D ZQi a59 93O'2"q?/g;2GHlz% !OyaYE_ӘF.0w#.0K7@ .0#G?fjoD+TK.01?5o_( q#03S}\n.0+-B!Ē-0dO/"t$0#nSQ.0Bx/?D$0{^RDlF|P"`.0IS4?.0u1T UPxP4FDTey  ahj TqUF%M@@Fl$"5 @?xX+EG/W${qX2 /(ٵQr%/7/)@0( B+b9>MYrr(?@{Œ㯭/KT?[B/YKK=^FX+)=ZVg=P=!VKw=y<Mg^K^@K%@Ke_LCr+O=@k&o=J( ? OOIo_!!tooooo~OIo^ +=OaYODO_%(J|N???C1U0U4U0U0">4U04,8110T13sU@Ex^Шxe]YW?@%H$ 0 vӜ2rq?@Iq ?go`@ "񔤗, ^yuM5EMQ=]-82GYѭW65 1C??@D">uMk4F]t`د .ǃ3M_MD"l)̃..dž`0 AQ {[&^GHWT%AAmA ?E%85A>#J2I/WEa{?U@N`BZ; @@TŊ*?\.Зl)ҧgG:5?"f>!AWf bA ٱWOaefhD?V?OHLDvs%twtwӕtsAsXAEpIEee o%qVhEt)IA]mIHAn_%fҌ ӕ ?OWddd҈*omD!AEt3WHT d"11;R~bRLqLqWuFBjQjQ ̤٤A!q!\FUA%oW85A BwEA;Uqooo=1<$~! ,>PbttnURT*?@Vj6ž6̿޿)p6BTWj|`yw?p L&d  `Ws/*qL?*?>oP/_2r1?@I?2*_Lm@????&|FI*SKLoad Runner Agent (Inject@OOOO_hV2̟6_T_:_ v \S*q_*q_f o2iASz]o}e߂v0姿oW1+2" 3#Ӄ[5?Yk{tgt1tLa#I!D=I!g!Sewя??4O۟OcuOOr/ASewѯ㧥߱I!  @fbϊ߆o@?"ڦʿ&X o ;9oKorooߨHh4`Y; aДd2L?@J+uuo SPmMYkgoyoooe> ag!?@#H$p샰 샠oW7m,k|H ` ?@؂-?@\Ӏ(:L^zController?c0GA OF~GJ *Lk!ݡ7RV}uu4a'AѩQR]QC/6T@@#ڔG?@~XpեPK_7A<꣝&DcN?@-%3@@$ƫ)v1G@%%T tN`k!zs@flI?lЋӫ?ż_#C0O贁Nqkƶ #`b<!Ifk!k!Q `lN#`!d k-baեk!pAd$) aҨ/i߽ ^̕ȢΟUPſb?8 եb4Q=_O_a_s_______\j18U@?O:!OOM#5GYk}N`BZ; @@U@?@XTG*J-DT!xՉ@~p5?)pݡqq`';7@z3XZ"`/r./d< MݡV.ߓ'+"zB-860BTOYkMO/!3EWi{/*<N`r5OGOuO _ GX"|CQCuoVקq}1UY{cK(?@d!?@L&p?@_x?@?]Wdա χ/">;klxχ`r _5?@؂-?2~y3'9缾eDatabase Monitor-a1ȥ@dvf!fvxOf?@bX,//,&fv'2-}fvs .? Z"pޱA!Bv///!- "ޱ/%?"?4BRf l1\$s@@n@ew? #:q,booU,fBoo5Lg"LbSxab"Lb>ssхUUWÿpAu m`6ruR0` c1p25&29M]RH#0O_贁Nkm#=@`b '/E1AnBc@m!Q.]f3?>p?/Tށ\.?K_ށ1S4]W`~F?U\9l?{{͗hXV۟푱ET$..!pG4aAA31pA+ AMRXKgUpud!#@`#ăA3߆˶FS#e0!25EedX%?7<]Aj@pf!JxMX?`[dʯ !sGR=sA\IlձAIdvY""A%E[[AJEF CXsO^CEe˿ 1E???O"O4OFOXOjO|O I Q!7r ֯'wU!1=YoUJE5Yk}!%9# Q! 4!/;MR1cu X1 #W ?@|>?@?_]d7_H DEQg_N9K7<t?@؂- ?2?~'l $//EP`App Server Monitor@AQ@?aGUI( 2E&K%(N%CEN`KlO_ QQ,/ⴎQ9_O]_o_5R?___Ú[?@q̤?@Nt?@H$DTړUo o2oDkViVkoFX5"?@ep?/qLfKo]oR!p-sfoo8VSylsyw(uĝ{?a -?F@|4RQ QAS(?/ 1LVT)w፣t3AOO3__%_7_I_[_mZP=@@ZVj@p8Фإ___[Y7 j;:cN?@n@g?d?A}eoo2iFxy)U@-Ugy` M+ϳF\T'st'ϏϟQSYҭt He$UZ UUUU !"#$Ul4,%M@@l$"5 @ $0ƺKjC-3 AU2@4$07HRH<( U2E$0z7 RUlLds#0!w@?}[RDt#0;U$ 4(U1(5 O"D&U=Q Jf )h"/Ty*+Uv'Ʌ&Q- -H*9(TYgEQ/,GuideTheDocPage-1Gesture FormatNet NormalVisio 00Net Thin lineNet ContrastVisio 70Net TextServer / TowerUserNameInventoryManufacturerProductNumberPartNumberProductDescriptionAssetNumberSerialNumberLocationBuildingRoomDepartmentDesktop PCWorkstationConnectorVisio 90Line connectorNet ShadowVisio 02ModemDynamic conn?ectorLine connect?or.17Line connect?or.22Modem.24Dynamic connector.28Dynamic connector.29_R.I%3#0 ED#0U T)- |)G)) )U)),x W#09 $FT<^ Tkly * fUԹU̇ܙ O#0 m }d) 1Rmflmm.PĚ#S0>LxYT W#0q$ ! *!"#U.U Ul4, %M@@l$"5 @%0$C3AUl4, $0o AJ-3y7A_*<N@$0% JRVgԑ#0{q6uH<( H<( _*<NE$0 RVg$#0r ]l{zN  g"4FX( NJ?@(OίPy 𐅫#0J#0:TRG#0| K#0}{#0m&R#0 !B|#0.6^d O^/o7O_#0 $r#S0'㦻NAA< L`Sun e420R  T0>SIAAG&L Ultraspace II /450MHZ (Dual Procesor)  TITAAR L`2.3GB RAM  T|S ^AA\L\36GB x 2  T^iAAg L`Solaris 8 %  '% % VP % % (  &%  WP W$W$% ( %  '% % [P % % (  &%  W0W$W$W$W0    W0% ( %  '% % ['   % % (  &%  W0W0   W@ W$W$W$W0W0W0W0% ( % % RL ArialD x xx<dx =xDxPDVxxx xDD#` @x`x8@_#`@P#`% %  %   T*AALpLoad Runner Agent  T AALl(Load Injector) %  '% % Vhqqzzzttqq% % (  &%  W$zzWhqqzzzttqqW$W$W$zz% ( % &%   '% [u xxxvxvuvxxxwuuww% ( % (   '% % V0yyyy% % (  &%  W$ttW$ttW0yyyyW(yzzyzW(~~~~~W(W(W(W(W(W(W(W(W(W(W(W(W(% ( % % %  %   TZAAZLxLoad Runner Controller % &%  W$% ( %  '% % V,% % (   '% % V,% % (  &%  W$==% ( %  '% % V,5>>5>>% % (   '% % V,% % (  &%   '% V@z} ~}}}~z~z~~% ( % (  &%   '% [{{}{{% ( % (  % % (  %   TgAAgLlDatabase Monitor % &%  W$% ( % &%  W(}}% ( %  '% % V,% % (  &%   '% V@}> ;~8}$}!~~>>~;~% ( % (  &%   '% [=#$&$#)+,+)/131/67976==; % ( % (  ( % %  %   TXAALpApp Server Monitor % &%  W(.q..q% ( % &%  W(.}..}% ( % DocumentSummaryInformation8[(WordDocument,>SummaryInformation(?dDocumentSummaryInformation8" connectorModemDynamic connector8_VPID_PREVIEWS_VPID_ALTERNATENAMES_PID_LINKBASEj A  Oh+'0 $0 L X d p|!Requirements Collection Documentros      #$%&'()*-./0123456789:;<=>?@ADEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~M Ebjbj== WW>l,,,,|||4>>>h>??4C*AF:,G,G,GsH`Wg\LBBBBBBB$~E G!C|^QH"sH^^!Cb,,,G,G%6C2bbb^,8,G|,GBb^Bb bg d|=,GA `ta&>^._%"=<hC<C'>(H^(H=bNr,,,,  Revision History SNOVERSIONDATEAUTHOR (S)DESCRIPTION Table of Contents  TOC \o \h \z  HYPERLINK \l "_Toc23932834" 1. Overview  PAGEREF _Toc23932834 \h 1  HYPERLINK \l "_Toc23932835" 1.1. Objective  PAGEREF _Toc23932835 \h 1  HYPERLINK \l "_Toc23932836" 1.1 Scope  PAGEREF _Toc23932836 \h 1  HYPERLINK \l "_Toc23932837" 1.2 References  PAGEREF _Toc23932837 \h 1  HYPERLINK \l "_Toc23932838" 2. Requirements  PAGEREF _Toc23932838 \h 1  HYPERLINK \l "_Toc23932839" 2.1 Hardware  PAGEREF _Toc23932839 \h 1  HYPERLINK \l "_Toc23932840" 2.2 Software  PAGEREF _Toc23932840 \h 2  HYPERLINK \l "_Toc23932841" 2.3 Automation Tools  PAGEREF _Toc23932841 \h 2  HYPERLINK \l "_Toc23932842" 2.4 Environment Setup  PAGEREF _Toc23932842 \h 2  HYPERLINK \l "_Toc23932843" In IP Address Column mention the IP Address with respect to the Type of the Server mentioned.  PAGEREF _Toc23932843 \h 2  HYPERLINK \l "_Toc23932844" 3. Approach  PAGEREF _Toc23932844 \h 3  HYPERLINK \l "_Toc23932845" Test Data  PAGEREF _Toc23932845 \h 4  HYPERLINK \l "_Toc23932846" 3.1 Script Development  PAGEREF _Toc23932846 \h 4  HYPERLINK \l "_Toc23932847" 3.1.1 Create Automated Scripts  PAGEREF _Toc23932847 \h 4  HYPERLINK \l "_Toc23932848" 3.1.2 Script Validation  PAGEREF _Toc23932848 \h 4  HYPERLINK \l "_Toc23932849" 3.1.3 Creating test Scenarios  PAGEREF _Toc23932849 \h 4  HYPERLINK \l "_Toc23932850" 3.2 Workload Criteria  PAGEREF _Toc23932850 \h 5  HYPERLINK \l "_Toc23932851" 3.2.1 Business Function Overview  PAGEREF _Toc23932851 \h 5  HYPERLINK \l "_Toc23932852" 3.2.2 Transaction Traversal Details  PAGEREF _Toc23932852 \h 5  HYPERLINK \l "_Toc23932853" The columns specified in the table are described below.  PAGEREF _Toc23932853 \h 5  HYPERLINK \l "_Toc23932854" 3.3 Test Execution  PAGEREF _Toc23932854 \h 5  HYPERLINK \l "_Toc23932855" 3.3.1 Execute Scenario  PAGEREF _Toc23932855 \h 5  HYPERLINK \l "_Toc23932856" 3.3.2 Capture and deliver test results  PAGEREF _Toc23932856 \h 5  HYPERLINK \l "_Toc23932857" 3.4 Status Reporting  PAGEREF _Toc23932857 \h 5  HYPERLINK \l "_Toc23932858" 3.5 Issue Reporting  PAGEREF _Toc23932858 \h 6  HYPERLINK \l "_Toc23932859" 4. Test Deliverables  PAGEREF _Toc23932859 \h 6  HYPERLINK \l "_Toc23932860" 4.1 Test Plan (this document)  PAGEREF _Toc23932860 \h 6  HYPERLINK \l "_Toc23932861" 4.2 Performance Test Report  PAGEREF _Toc23932861 \h 6  HYPERLINK \l "_Toc23932862" 4.3 Periodic Status Updates through Mails  PAGEREF _Toc23932862 \h 6  HYPERLINK \l "_Toc23932863" 5. Entry, Exit Criteria and Test Stop Criteria  PAGEREF _Toc23932863 \h 6  HYPERLINK \l "_Toc23932864" 5.1 Entry Criteria  PAGEREF _Toc23932864 \h 6  HYPERLINK \l "_Toc23932865" 5.2 Exit Criteria  PAGEREF _Toc23932865 \h 6  HYPERLINK \l "_Toc23932866" 5.3 Test Stop Criteria  PAGEREF _Toc23932866 \h 6  HYPERLINK \l "_Toc23932867" 6. Suspension Criteria and Resumption Requirements  PAGEREF _Toc23932867 \h 7  HYPERLINK \l "_Toc23932868" 7. Risk Assessment  PAGEREF _Toc23932868 \h 7  HYPERLINK \l "_Toc23932869" 7.1 Schedule Risk:  PAGEREF _Toc23932869 \h 7  HYPERLINK \l "_Toc23932870" 7.2 Technology Risk:  PAGEREF _Toc23932870 \h 7  HYPERLINK \l "_Toc23932871" 7.3 Resource Risk:  PAGEREF _Toc23932871 \h 7  HYPERLINK \l "_Toc23932872" 8. Limitations and Assumptions  PAGEREF _Toc23932872 \h 7  HYPERLINK \l "_Toc23932873" 9. Change Log  PAGEREF _Toc23932873 \h 8  Overview Objective Application Overview A brief introduction of the company and their business objective. Test Objective Mention the maximum users load for which the application has to be measured for performance. Scope Scope of this testing assignment will be limited to scripting transactions of the and conducting iterative load tests to study the scalability and stability of these applications. Mention the maximum number of concurrent users for the test proposed and the maximum number of transactions identified by the client. References [Include references to any documents] Requirements 2.1 Hardware Hardware required for setting up the application are as follows SNo.TypeHardware Details In Type column mention the whether it is a Web Server, AppServer, Database Server. In Hardware Details mention the Make, Model, CPU (including processor speed), Memory, Hard disk, and Network Interfaces. Hardware required for setting up the Controller and Load generator. SNo.TypeConfigurationQuantity In the Type Column mention if it is Load Generator, Controller / Console (This name depends upon the tool). In the configuration column mention the Make, Memory, Hard Disk and Network Interface. In the Quantity column mention the number of machines used. 2.2 Software In this session mention the Web Server, App. Server , Database and OS used for the test with version as mentioned below. Web Server Native web server of web logic App. server WebLogic6.1 Database Oracle8i 8.1.7 OS Solaris 2.8 Automation Tools Brief information about the tool that is to be used for the test. 2.4 Environment Setup Cognizant will setup the test Environment as per the software and hardware bill of materials. This would be a dedicated environment for testing and the development teams shall not have access to the same. Show Architecture diagram as given below.  EMBED Visio.Drawing.6  IP AddressType of ServerSoftwareIn IP Address Column mention the IP Address with respect to the Type of the Server mentioned. In the Type of Server Column mention the what type of server i.e. whether a database server or app. Server. In the Software Column mention the Make with version. Approach The following are the steps that will be adopted for successful completion of Performance testing. StepsReference SectionThe scenarios required for the application would be identified and createdLink to the section in the document if applicableThe application is installed in the Test environment including the initial data loading.  Link to the section in the document if applicableApplication is smoke testedLink to the section in the document if applicableThe application is then verified and Test Scripts createdLink to the section in the document if applicableScripts would be tested to verify that they work properly individually and that transactions are being executed as requiredLink to the section in the document if applicableIf new code is installed after the scripts have been developed and validated, the scripts will have to be re-validated to ensure that the scripts still function with the new codeLink to the section in the document if applicable Scenarios simulating real-time workload are created Link to the section in the document if applicableEach scenario given is executed and test results are analyzed for bottlenecksLink to the section in the document if applicableIf performance bottlenecks are found during the tests, analysis is done at various layers, and the application is tunedLink to the section in the document if applicableRe-run tests, once the environment (application, hardware, network or software configurations) have changedLink to the section in the document if applicableContinue till acceptable response time is reachedLink to the section in the document if applicable Usage Pattern Mention the total load size (i.e. No. of users), the ramp up i.e. how the load is increased and once the goal is reached for how long the test is executed. How the users are distributed and how the transactions are executed. Based on the inputs from the client, the following are some the common scenarios of the various modules in the application. Mention the event mixes for each scenario. Test Data For running the scenarios planned, test data required has to be created into the application. If the application contains any destructive data (data that cannot be used across multiple executions), then sufficient data should be made available for multiple executions. This test data can either be created by the test team if possible, or need be generated by the development team. We will design tests to select unique combinations of data. 3.1 Script Development The following tasks would be completed during script development: Create Automated Scripts Script Validation Creation of test scenarios. 3.1.1 Create Automated Scripts In order to generate a load on application, mention the tool used. Scripts will be developed using the tool to simulate the business functions to be included in the test. 3.1.2 Script Validation Once the application is installed in the Performance testing environment and the installation is verified, automated scripts are created by simulating the user actions provided to the test team and the scripts are parameterized and executed for a single user for validation. 3.1.3 Creating test Scenarios Once the scripts are validated test scenarios are created with the following specification. The location of the script Load generator(s) Load size across Load Generator(s) Ramp up with duration Transaction mix and no. of iterations Specifying parameters for Server Monitoring. 3.2 Workload Criteria 3.2.1 Business Function Overview Create a table listing the priority (or Rank) of the transactions being tested. A high rank implies that the business function must be tested and is part of the critical path. RankBusiness Function/Operation3.2.2 Transaction Traversal Details Following are the transactions with screen navigation details identified for the Performance test Run. SNoUser ActivityForm DataThink Time in SecondsRemarks The columns specified in the table are described below. SNo. : The transaction name that must be unique. User Activity : The user action(s). Form Data : Specify the user data required for the corresponding user activity. Think Time in Seconds: User sleep time Remarks : A brief description of the user activity and the output process. 3.3 Test Execution 3.3.1 Execute Scenario Scripts will be executed with 1 user to establish a baseline. 3.3.2 Capture and deliver test results For each test execution, the following summary reports will be delivered to the Client: Transaction Summary Transaction Performance Summary Percentile Graph Transactions per second vs. Transaction Response time Average Running vusers vs. throughput Hits/sec vs. Transaction Response time Average Server Resources Graph 3.4 Status Reporting During the script development and verification, E-Test Center will deliver a daily status report via e-mail. The status report will be delivered by the close of business each day. The status report will document the progress of the load testing. All issues and their resolutions will be included in the status report. During script execution, E-Test Center will continue to deliver daily status reports via e-mail. The status reports will include a list of the scenarios executed during the day as well as any observations from the test. 3.5 Issue Reporting If a critical issue arises, E-Test Center will notify the development team as soon as possible rather than waiting to include it on the status report. A critical issue is defined as an issue that stops progress and no workaround can be identified. 4. Test Deliverables 4.1 Test Plan (this document) This document will contain plan of action for the test detailing the approach, hardware and software requirements, environment details, resource details and schedules etc. 4.2 Performance Test Report A report containing complete detail of the transaction(s) timed and the outcome of the test. This report gives detailed information on whether the system was able to scale up. It also lists performance bottlenecks if any in the various tiers (web, app or database) of the architecture. 4.3 Periodic Status Updates through Mails Updates on the status of the tests will be sent twice a week. 5. Entry, Exit Criteria and Test Stop Criteria 5.1 Entry Criteria The performance testing can start upon the completion of the following: Functionally stable Application Controlled Environment for testing is configured and ready. The test environment should be uploaded with the application to be tested. 5.2 Exit Criteria The Exit Criteria will be as follows: All the identified transactions with performance requirements are tested and the application is tuned for better performance 5.3 Test Stop Criteria DescriptionsResponsibleAll Test scripts have been executedTest team / LeadIf the test objectives were not met, the E-Test team has assisted the client/Development team identify any potential bottlenecks. Client/Dev TeamIf the test objectives were not met and Client requests additional testing, the E-Test team will stop testing in order to allow E-Test Team, Client and other partners to update the test plan and the schedule.Test LeadHardware Failure during Load testingNetwork Support TeamThe application is not functionalClient/Dev Team 6. Suspension Criteria and Resumption Requirements No.Suspension CriteriaResumption Requirements1Nonavailability of the applicationAvailability of the application2Major performance problems foundFix the defects and repeat the scenario3Major application changesAvailability of the application with the changes 7. Risk Assessment 7.1 Schedule Risk: The Test Schedule is subject to delivery of the Software & support to the testing Team on time. Mitigation Plan The Test team will closely monitor the progress of the development teams and escalate anticipated delays to the Project Manager in advance. In case of delays, the team shall spare no effort at completing tasks in time. Change in Application might require work of test scripts, which requires additional efforts. Mitigation Plan The effort involved in the rework of scripts will be intimated to the development team and the test team shall spare no effort at completing tasks in time. Incase of server failure during the course of load testing, the testing will come to an abrupt halt. Additional efforts are required to bring the environment back up and running. Mitigation Plan The effort involved in restoring the environment will be intimated to the development team after consultation with support services and the test team shall spare no effort at completing tasks in time. 7.2 Technology Risk: Testing is subject to the availability of the intranet network connection for the test machines Mitigation Plan The Test Team will co-ordinate with the concerned Project manager and conduct formal meetings with the concerned teams. Mitigation Plan The monitoring feature provided inbuilt in the Weblogic admin console itself will be used. 7.3 Resource Risk: The Test team will require clarifications from the Project Managers and the Development team during the process of Test case preparation and execution. The availability of the above people at the right time is subject to risk. Mitigation Plan The Test Team will co-ordinate with the concerned Project manager and will ensure their availability for discussions and clarifications. 8. Limitations and Assumptions The application is load tested for the commonly used transactions and transaction mix as obtained from the project development team. So any problem in any of the rarely used transaction may not be ascertained The functional accuracy of the application cannot be tested when doing a performance testing. It is assumed that all the modules are functionally correct. 9. Change Log Old Version No.Changes EffectedPage NumberNew Version No.Effective dateRemarks  EMBED Word.Picture.8  Performance Test Plan Cognizant Technology Solutions Confidential Performance Test Plan  EMBED Word.Picture.8  For Private and Confidential use Page  PAGE 6 Performance Test Plan For Prepared by: Date: Reviewed by: Date: Approved by: Date: 0YZ_`asuv{j{U jU;CJOJQJ^JaJj>*B*Uph0J j0JU6]j6U] 5CJ \5 5CJ\ B*^Jph CJ$]^J CJ \^J5CJ\^JCJ^Jj5U\^JmHnHu 5\^J*     $a$$a$BzDE015=BMY$If$a$ YZ[\]^_`bt[UUUUU[PP$a$$If$$Ifl4rH ,"9xl04 la tu j VN88 D +  k  k  k   $a$ !"=>?@CDIJKdefghijkl۽{o{ao{ojgUmHnHujUmHnHumHnHuCJOJQJaJmHnHu0JaJmHnHu&j>*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHujqU jU:CJOJQJ^JaJ0J j0JUj>*B*Uph$   &'տǞ|qici mHnHu0JmHnHuCJOJQJ^JaJjSU jUj>*B*Uph0J j0JUj]UmHnHujUmHnHumHnHuCJOJQJaJmHnHu0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu"'()567PQRSTUVWXstuvͳߥߝuߥߝaե&j>*B*UmHnHphuj?UmHnHu&j>*B*UmHnHphu mHnHu0JmHnHuCJOJQJaJmHnHujIUmHnHujUmHnHumHnHu0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu&-./HIJKLMNOPklmnкЖ~~p~ngn_gnj! U jUj>*B*Uph0J j0JUj+UmHnHu0JaJmHnHu&j>*B*UmHnHphu mHnHu0JmHnHuCJOJQJaJmHnHuj0JUmHnHuj5UmHnHumHnHujUmHnHu%    23456789:UVWXabc|}~翷qcCJOJQJaJmHnHuj UmHnHujUmHnHumHnHu0JaJmHnHu&j >*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHuj Uj >*B*Uph0JCJOJQJ^JaJ j0JU jU&   2 3 4 5 6 7 8 9 : U V W X o p ĸĪĸ֜ĸtĸ֜`&jt >*B*UmHnHphuj UmHnHu&j~ >*B*UmHnHphu mHnHuCJOJQJaJmHnHuj UmHnHujUmHnHumHnHu0JaJmHnHuj0JUmHnHu&j >*B*UmHnHphu0JmHnHu%p q  # $ % > ? @ A B C D ккк~tfjUmHnHu0JaJmHnHu&j`>*B*UmHnHphujUmHnHu&jj>*B*UmHnHphu mHnHu0JmHnHuCJOJQJaJmHnHuj0JUmHnHuj UmHnHumHnHujUmHnHu(D E F a b c d       & ' ( ) ɽɯɽɽɽk&jB>*B*UmHnHphujUmHnHu&jL>*B*UmHnHphuCJOJQJaJmHnHujUmHnHujUmHnHumHnHu&jV>*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHu&) ` a b { | } ~  % Ƹư|Ƹưhư&j.>*B*UmHnHphujUmHnHu0JCJaJmHnHu&j8>*B*UmHnHphu mHnHu0JmHnHuCJOJQJaJmHnHuj0JUmHnHujUmHnHujUmHnHumHnHu0JaJmHnHu%% & ' ( ) * + , - H I J K q r s ѻѻޓѻugѻjUmHnHu0JaJmHnHu&j>*B*UmHnHphujUmHnHu&j$>*B*UmHnHphu mHnHu0JmHnHuCJOJQJaJmHnHuj0JUmHnHumHnHujUmHnHujUmHnHu(        5 6 7 8 9 : ; < = X Y Z [ o p q ƾЖ~|u|mu|ua;CJOJQJ^JaJjU jUj>*B*Uph0J j0JUCJOJQJaJmHnHujUmHnHujUmHnHumHnHu0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu0JmHnHu mHnHu" ; J#v8? $@&`a$^$a$ k    )*+DEFGHIJKLghijͳߥߝuߥߝa&j>*B*UmHnHphujmUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHuCJOJQJaJmHnHujwUmHnHujUmHnHumHnHu0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu& !"#$%@ABCUVWpqüчmcUjOUmHnHu0JaJmHnHu&j>*B*UmHnHphu mHnHu0JmHnHuCJOJQJ^JaJjYU jUj>*B*Uph0J j0JUCJOJQJaJmHnHuj0JUmHnHumHnHujUmHnHujcUmHnHu!qrstuvwx !<=ȮޤȂޤtmjj0J j0JUj;UmHnHu&j>*B*UmHnHphujEUmHnHu0JaJmHnHu&j>*B*UmHnHphu mHnHu0JmHnHuCJOJQJaJmHnHuj0JUmHnHumHnHujUmHnHu)=>?qrs2˨|thtjUmHnHumHnHu0JaJmHnHu&j!>*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHuj'!Uj >*B*UphCJOJQJ^JaJj1 U jU0J j0JUj>*B*Uph&23456789:UVWXlmnѻїމѻuїgj $UmHnHu&j#>*B*UmHnHphuj#UmHnHu0JaJmHnHu&j">*B*UmHnHphu mHnHu0JmHnHuCJOJQJaJmHnHuj0JUmHnHumHnHujUmHnHuj"UmHnHu& 9:;<=>?@A\]^_lmn  kq~ws5\ B*\ph5B*CJph 5B*ph B*phCJ 6;]^Jj6;U]^JCJOJQJ^JaJj%Ujz%>*B*Uph;CJOJQJ^JaJj$U jUj$>*B*Uph0J j0JU-  jkqr  `af $$Ifa$1h`h !$`a$ & F$ hp@ 7$8$H$^`a$ & F 8^`]^  a}O3ABZ[\]^ " ""z##Q)b)c))6*W*[*a***"+'+(+)+a+b+j+++++,%,7,A,,\CJ\CJ^J5\ 5CJ\5B*\ph jp&UjǞ@ UV jUCJaJ 5WEdYf^JaJ5OJQJ B*CJphCJ B*phBfk|}c$$Ifl4FA <p  02    4 la $$Ifa$}~  !$If$IfV$ & F $Eƀ%dYf.If`a$OPyyyyyypppp $$Ifa$^~$$Ifl4FA <p 02    4 la QD;;; $$Ifa$ $ & F$Ifa$$$Ifl4l\7? O<F  (04 lag>?offaaffffaa$a$$`a$$$Ifl\7? O<F04 lag jk34JA^ix^$If$^a$ & F? & FC & FC^8^8$a$jddd_$If$$Ifl44Fd j 0    4 laQRvtnnnget[ ^` & F^  & F^~$$Ifl4Fd j0    4 la ^;mn8<i$$Ifs07["$ 0 4 sa$If ^`W=op' Y Z !i$$Ifs07["$ 0 4 sa$If!!q!!!!" " " """""y#|$^a$$a$$Ifi$$Ifs07["$ 0 4 say#z#####1%n%o%%%%%&/&0&&&&& (*(+(!$^a$$^a$ ^` & F^]^+((((((()I)K)M)c))5*6*;*W*$If$^a$8^8 & F? & F^$^$W*X*Y*Z* $Ifx$$Ifl0br 04 la<Z*[******++!+$If1^i$$Ifl0br04 la< !+"+#+$+%+&+:4444$If$$Ifl4rL] *X t p 20 !4 la&+'+(+)+a+b+++++VTRPPPPP1$$IflrL] *X t p0 !4 la$If +,,,6,7,,,,,,,,,--r-----.G.^. & F= & F$^a$!$$^$`a$ ! p^p`,,,,r-^.1111*4.4Y4Z4o44^5q5r556.6\8j88889996:E:;;<<3>C>>> @0@@@@@HBXBBB'C(C?C@CACBCCCCCCCChDlDmDnDþù j0JU 6]^J jJU j=Uj= UVmHnHu jU B*CJph5>*5CJaJCJ B*ph^JCJaJ5\^JaJB^._.u.//000001111112223333)4^ & F$h^ha$Z^Z^$^a$^)4*4+4Z4[4n4o4445^5_5q5r5566.6;6G6`$Ifd & F $^a$ & F !$a$^G6H6l6}6}}$If{$$Ifs440 ! 0!4 sal}6~67777778(8)8K8[8\8e8Pp$a$$Ifk$$Ifs40 !0!4 sale8f8888888889p|$$Ifl    FZ<       0        4 la$If ^` 99969^90|||$If|$$Ifl    FZ<   0        4 la^9_9a9{998zzz$If~$$Ifl    FZ<   0        4 la9999996:#;;.<<=~|smhmcm & F & F^ & F |$$Ifl    FZ<      0        4 la ==3>>*?=? @@@@@AHBIBWBXBhByBBB $$Ifa$$`a$$a$ a$ & F1$a$ & F $ !a$ a & F 1$ a1$^` & F BBB $$Ifa$BBB $$Ifa$$$IfTlֈH &Fh5_" <04 laBBBBBBB8$$IfTlֈH &Fh5_"04 la $$Ifa$$IfBBCCYCZCCCCCCCCCxDyDzD{D|D}D~DDDDDDDD$a$$dN]$a$nDtDuDvDwDzDDDDDDDDDDDDDDE EEEEE B*phOJQJ 5>*CJ5CJ5CJ(OJQJ\0JmHnHu j0JU0JDDDDDDDDDDDDD E E EEEEEEEEEEEE$a$$a$$&P 1h. A!"#r$%+0&P 1hP. A!"#r$%+0&P 1hP. A!"#r$%equAdministratoroldmidmiNormaltCTS2SMicrosoft Word 9.0t@@MI@`@Fa  3  FMicrosoft Word Document MSWordDocWord.Document.89q@  FMicrosoft Word Picture MSWor ՜.+,D՜.+,p, px  Ready Test Go Pvt Ltd.Tn~? !Requirements Collection Document Title0*Bv " J n   _PID_HLINKS ClientNameClientShortName Testmode Testruns Testhwsw Testusers Testtxns Testduration TestId ClientSubmitDate ClientIntro ClientRef ProjIntroA > _Toc23932873> _Toc23932872> _Toc23932871> _Toc23932870? _Toc23932869? _Toc23932868? _Toc23932867? _Toc23932866? _Toc23932865? _Toc23932864? _Toc23932863? _Toc23932862? _Toc23932861? _Toc23932860< _Toc23932859< _Toc23932858< _Toc23932857< _Toc23932856< _Toc23932855<z _Toc23932854<t _Toc23932853<n _Toc23932852<h _Toc23932851<b _Toc23932850=\ _Toc23932849=V _Toc23932848=P _Toc23932847=J _Toc23932846=D _Toc23932845=> _Toc23932844=8 _Toc23932843=2 _Toc23932842=, _Toc23932841=& _Toc23932840:  _Toc23932839: _Toc23932838: _Toc23932837: _Toc23932836: _Toc23932835: _Toc23932834New Client Name+Short name (to be referred in rest of doc)r#Lab or Internet or Onsite or MixedoNo of test runs0Any special Hw/Sw to be provided by ReadyTestGo'Maximum concurrent users (for license)dMax no of txns to be scriptedlimax duration of assignmenteTest identifier sample TST024liDate like October 22, 20012Short Intro about client12'Any Client reference doc like proposaldIntroduction to Project_1097677187D F0)čh%0)čh%Data ,+1TableACC8CompObjlj{DyK  _Toc23836460{DyK  _Toc23836460{DyK  _Toc23836461{DyK  _Toc23836461{DyK  _Toc23836462{DyK  _Toc23836462{DyK  _Toc23836463{DyK  _Toc23836463{DyK  _Toc23836464{DyK  _Toc23836464{DyK  _Toc23836465{DyK  _Toc23836465{DyK  _Toc23836466{DyK  _Toc23836466{DyK  _Toc23836467{DyK  _Toc23836467{DyK  _Toc23836468{DyK  _Toc23836468{DyK  _Toc23836469{DyK  _Toc23836469{DyK  _Toc23836470{DyK  _Toc23836470{DyK  _Toc23836471{DyK  _Toc23836471{DyK  _Toc23836472{DyK  _Toc23836472{DyK  _Toc23836473{DyK  _Toc23836473{DyK  _Toc23836474{DyK  _Toc23836474{DyK  _Toc23836475{DyK  _Toc23836475{DyK  _Toc23836476{DyK  _Toc23836476{DyK  _Toc23836477{DyK  _Toc23836477, Dd}2EB  S A? b H~ }kґgxzr pnj H~ }kґgxzPNG  IHDR}2FP$gAMAPLTE    # !&0!&%(**,..111555#76:Q:;;?;9?@@4ABDEFFJMLPOOSSSTUIVwMXXVXXYXX\]]aWbcc-d)^dchffhiijjjmnnoobgppnppppprqrrurrsssuttwuhrvvvvwwvrywwjxxzyx}yy7{6{{{{||~||p~~~~}8}NnąG<{ؘ ͚CVKBg^χJJ[%DBJ?JEMBMEG:K@NJGENAW^NEPF;KHMBZbOGV`hY^t{kۯ}ŋɏۏΛt9 pHYs 2IDATxXkHK1]>4i:XG{%xCo{% /!x/Mn_`h k|^I,tO\zU1W6{Q ӳUm-T--юj}MhU㕯n0_%+A1}XDz.c3Yx> !$?~TYgώyۿ-^GtI]s*4?;/2Cّ?9jdtmu=^?y 㻲#8#^Vqߧ@[թ dq%e蓮&Ħ. c۟8J9dr^P`92$SaGg?H @gwh~z_:vb=@9BWZMUIa U.$TݷlBMqF;vtZh4b*$vI fCtIY"ư`dmvjvl=NpڕڪD=8j'M9UBljF GfwY~]8y<0CA#M"آ%yڵFo Gƃi޸Ei,<+쭼@7z]npHu S.+t`Z`VüwGwG{_&T7 ywx #£Oѳ,ހGwWwCXc k[ 34'2"s4zq _pslt?8ig`zwnZȽv͡O'u][Jc_y.=ШI#wx!c&˘l9l|gVU.V>.)kφ:=t[Z0㾓ߘ%Yr|[>}ko6=pdYqM#u|p6Z|R4$,;c8MГ75z8r1߮b9?ziaoQd3U za6!zXM PSAE|(ҚR"2~"9D):GEKrw_HM=C'O( 87B G7Aej88B,24wG}7d f] KCDZ€c1w<`MX`:ߣE{ێF6Ty;m z$TC(;YއU Ty TpW9+~רdn7FeGoVTպ4n 4mݞ. #k#ekBݹu4ٝr$<(Œܣ zae)+KAK~~R9??DJvwc}q dx=MAO3#{p@ 9.t] M+ac' 8l 2z/B!aVm]d_?Dwpi=_\lw)$Fp I_+a]|8)SgQE4xq 2]ʜSQn`qtiUKOaeCq)w5`Lm%tZjEkx,Y(FK{NG;``+ݎ=/I8YJnK#qY} ߐ6ˎ-/ߡ$K:~i:"v= .5=pBWSuTg9ٱž^cP7ngH[f7֨ ծF 6=;#em}5vrU3RhlK{vJVs*o^>C桷Wܧ6ӓhz&D{+dIENDB`, Dd}2EB  S A? b H~ }kґgxzr pnj H~ }kґgxzPNG  IHDR}2FP$gAMAPLTE    # !&0!&%(**,..111555#76:Q:;;?;9?@@4ABDEFFJMLPOOSSSTUIVwMXXVXXYXX\]]aWbcc-d)^dchffhiijjjmnnoobgppnppppprqrrurrsssuttwuhrvvvvwwvrywwjxxzyx}yy7{6{{{{||~||p~~~~}8}NnąG<{ؘ ͚CVKBg^χJJ[%DBJ?JEMBMEG:K@NJGENAW^NEPF;KHMBZbOGV`hY^t{kۯ}ŋɏۏΛt9 pHYs 2IDATxXkHK1]>4i:XG{%xCo{% /!x/Mn_`h k|^I,tO\zU1W6{Q ӳUm-T--юj}MhU㕯n0_%+A1}XDz.c3Yx> !$?~TYgώyۿ-^GtI]s*4?;/2Cّ?9jdtmu=^?y 㻲#8#^Vqߧ@[թ dq%e蓮&Ħ. c۟8J9dr^P`92$SaGg?H @gwh~z_:vb=@9BWZMUIa U.$TݷlBMqF;vtZh4b*$vI fCtIY"ư`dmvjvl=NpڕڪD=8j'M9UBljF GfwY~]8y<0CA#M"آ%yڵFo Gƃi޸Ei,<+쭼@7z]npHu S.+t`Z`VüwGwG{_&T7 ywx #£Oѳ,ހGwWwCXc k[ 34'2"s4zq _pslt?8ig`zwnZȽv͡O'u][Jc_y.=ШI#wx!c&˘l9l|gVU.V>.)kφ:=t[Z0㾓ߘ%Yr|[>}ko6=pdYqM#u|p6Z|R4$,;c8MГ75z8r1߮b9?ziaoQd3U za6!zXM PSAE|(ҚR"2~"9D):GEKrw_HM=C'O( 87B G7Aej88B,24wG}7d f] KCDZ€c1w<`MX`:ߣE{ێF6Ty;m z$TC(;YއU Ty TpW9+~רdn7FeGoVTպ4n 4mݞ. #k#ekBݹu4ٝr$<(Œܣ zae)+KAK~~R9??DJvwc}q dx=MAO3#{p@ 9.t] M+ac' 8l 2z/B!aVm]d_?Dwpi=_\lw)$Fp I_+a]|8)SgQE4xq 2]ʜSQn`qtiUKOaeCq)w5`Lm%tZjEkx,Y(FK{NG;``+ݎ=/I8YJnK#qY} ߐ6ˎ-/ߡ$K:~i:"v= .5=pBWSuTg9ٱž^cP7ngH[f7֨ ծF 6=;#em}5vrU3RhlK{vJVs*o^>C桷Wܧ6ӓhz&D{+dIENDB`  ] i<@< NormalOJQJ_HaJmH sH tH J@J Heading 1$ & F@&5CJOJQJ\^JJ@J Heading 2$ & F@&5CJOJQJ\^Jff Heading 3'$$ & F @&^a$5CJOJQJ\^JaJLL Heading 4$$@&a$5CJOJQJ\^JaJFF Heading 5 <@&56CJ\]aJZZ Heading 6$$@&a$'B*CJOJQJW9KI^JaJph22 Heading 7 <@&88 Heading 8 <@&6]B B Heading 9 <@&CJOJQJaJ<A@< Default Paragraph Font,@, Header  !, @, Footer  !.U@. Hyperlink >*B*ph&)@!& Page NumberRC2R Body Text Indent$h^ha$CJOJQJ^J<B@B< Body Text$a$CJOJQJ^JT@TTOC 1 h! xx";CJOJQJ^JaJmHnHuX@XTOC 2 ! hx^h":CJOJQJ^JaJmHnHuRRTOC 3 T! ^CJOJQJ^JaJmHnHu** TOC 4 ^aJ** TOC 5 ^aJ** TOC 6 ^aJ** TOC 7 ^aJ** TOC 8 ^aJ** TOC 9 ^aJ>V@> FollowedHyperlink >*B* phZRZ Body Text Indent 2$^a$CJOJQJ^JaJJPJ Body Text 2 $a$5CJOJQJ\^JaJ<T< Block Text!x]^6Q"6 Body Text 3"xCJaJ^MA2^ Body Text First Indent#$x`a$ CJOJQJbN1Bb Body Text First Indent 2$$x`a$ CJOJQJLSRL Body Text Indent 3%hx^hCJaJ8"8 Caption &xx5CJ\aJ*?r* Closing '^44 Comment Text(CJaJL Date)JYJ Document Map*-D M OJQJ^J4[4 E-mail Signature+4+4 Endnote Text,CJaJ\$\ Envelope Address!-@ &+D/^@ OJQJB%B Envelope Return.CJOJQJaJ66 Footnote Text/CJaJ2`2 HTML Address06]FeF HTML Preformatted1CJOJQJaJ2 2 Index 12^`2 2 Index 23^`2 2 Index 34^`2 2 Index 45^`22 Index 56^`22 Index 67^`22 Index 78^`22 Index 89^`22 Index 9:p^p`<!"< Index Heading;5OJQJ\,/, List<h^h`020 List 2=^`030 List 3>8^8`040 List 4?^`050 List 5@^`202 List Bullet A & F66"6 List Bullet 2 B & F6726 List Bullet 3 C & F68B6 List Bullet 4 D & F69R6 List Bullet 5 E & F:Db: List ContinueFhx^h>Er> List Continue 2Gx^>F> List Continue 3H8x^8>G> List Continue 4Ix^>H> List Continue 5Jx^212 List Number K & F6:6 List Number 2 L & F 6;6 List Number 3 M & F 6<6 List Number 4 N & F 6=6 List Number 5 O & F `-` Macro Text"P  ` @ OJQJ_HmH sH tH I Message HeadergQ8$d%d&d'd-DM NOPQ^8`OJQJ,^", Normal (Web)R626 Normal Indent S^,O, Note HeadingT8ZR8 Plain TextUCJOJQJaJ(K( SalutationV.@r. Signature W^:J: SubtitleX$<@&a$OJQJL,L Table of AuthoritiesY^`D#D Table of FiguresZ ^` J>J Title[$<@&a$5CJ KHOJQJ\aJ <.< TOA Heading\x5OJQJ\\&\S\ 6 6 6 6 6 6 6a# kl 015=BMYZ[\]^_`btu"roh pq-Kst()_`aemqruvwxy  x y \ ] ^ k l  u # >?kl^jl`aeqvWXCDSTMN#$:;gh-.;<OP  23tuW&'(EFi789OP .j^\]^%'()*+,-./01JN]^_`abc00000000000000000000000000000`000000000000000000000000000000000000@0 00 0000 00t0t0t 0000 00 000000000@ 000000000000 00 0 0 0  00^ 0^ 0^  00 > 0 > 0 > 0 > 0 > 0 > 0 0 > 0 0 > 0 0 0 0 0 0 0  00l0l0l0l0l0l0l0l? 0l0l0l0l0l0l0l0l0l0l0l0l 00000 0000 00D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D 00$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$0$ 00  0  000= 0= 0= 0= 0= 0= 0= 000 0  0(0(0(; 0(; 0(; 0(0(0( 0  09< 09< 09< 09< 09< 09< 09< 09< 09< 09@0@0@0@0@0@0@0@0@0@0@00 000000000000000000000@0@0@000000000000??AAAAAA= K "#,Ytt q w ^ 1## !"#$%&'()*+-#u "ARmopr8Ojlmo6Hcefh ?Pkmnp>Qlnoq (*+-Lh tX%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%̕r13::!T8@z(  B    B S  ?0z(#0t* _Toc526240334 _Hlt23836478 _Toc499956249 _Toc526240336 _Toc23836460 _Hlt497025988 _Hlt497027118 _Toc526240337 _Toc23836461 _Toc499956251 _Toc526240338 _Toc23836462 _Toc499956253 _Toc526240339 _Toc23836463 _Toc526240340 _Toc23836464 _Toc526240341 _Toc23836465 _Toc23836466 _Toc526240342 _Toc23836467 _Toc526240343 _Toc23836468 _Toc526240344 _Toc23836469 _Toc526240345 _Toc23836470 _Toc526240346 _Toc23836471 _Toc526240347 _Toc23836472 _Toc526240348 _Toc23836473 _Toc526240349 _Toc23836474 _Toc526240350 _Toc23836475 _Toc526240351 _Toc23836476 _Toc526240352 _Toc23836477cttt ^ ^ llDD$$  ((99@@@  !"#$%&'()/d~~~'' j j RR9911DDNN RpOmHfPnQo +h35^w$&' RpOmHfPnQo +h I M u l C^w$&'1B:::3u( / et]^$&'CTSRC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of reqdesign-mano.asdCTSRC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of reqdesign-mano.asdCTSRC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of reqdesign-mano.asdCTSRC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of reqdesign-mano.asdCTSRC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of reqdesign-mano.asdCTSRC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of reqdesign-mano.asdCTSRC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of reqdesign-mano.asdCTSRC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of reqdesign-mano.asdCTS#C:\PerformanceTesting\reqdesign.docCTS$C:\PerformanceTesting\TestDesign.docB|FO} N~.4MTLE[2Dt|CFpBrKŌKAn/tzd g:PR6eJ(` C ێr&Yܞ~Є|}hw (FAN5R]F;ml}JРsv <̬=Є|}H %.')F?  O\b,V{  } $JM4&9(dԍ&/-:~c)3h$LRBS6t0CJ7`sI8&rM9XjJ:~T ;jV(L=:ҍ9E? ,PBWB,CJy;N$T-.SV0{rexJ@g4>7[El.Nd&VCobrv^#raRgbz -ۖ _"x[mމ&MB(##_xB 9Yy$$୭a.VG<'H$HC!qᕊN 5mvVrm/ҽ!Vgx< Mw#L^2:}햼6W< hO=}5fH 0̥p8Qe,cVzљ)*Ե,Aw2V; {hrzǒ`"̆X/r.-*b/zaR;nMiKm`1,8uc)v .+\]EF^+Wjm7XJM;գ/°F܅7J: 2n!^{/zVVˍ]eR1'rHVр@^ f=a`4ch| yZ?7BtG6LQС6_zu>{#4 =Z{M,PviVMY CC6Ը.wԗq?hW?Q5PrH׸wPȎ.,W3(T jv>WKp}|Sl{5xweV΃.wѴLr/_F qh\}4vK{^bo0l  EsBӮU`wwj5W{Ga}sP<!V/ȳkH7 f=ї=~j*:oõ zL&iR9w9 ՗6Nϟaqz^Oq`Cx->ه,.\>c!-vVR=E@BY$z +F<{kE|N2ᠷHM,_l6q6?F@;N{ GAPr;,gCdl6<Ҳ!md`JnsYu -N فL./Pt^?woi :i߆@鳝=#.mV8, ?ZOLU; t\q'gQрL_'vqclDF081l{*Y-4eRq^t 1?Iݚ\;sg\)v2-{v;ѹgɬff0[?clpvJ vkӥ/=w?]>;ޣ>31}>[z&xIENDB`SummaryInformation(KMDocumentSummaryInformation8WordDocumentEO\SummaryInformation(PrOh+'0T    (4<DLssMS5369S53 Normal.dotMS5369d253Microsoft Word 8.0@@V?LR@V?LR՜.+,D՜.+,, hp|  CTSj  Title 6> _PID_GUIDAN{E1DBAEE2-BE32-11D4-B6E3-0002A519DF6F}  %l !"#$['()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRTUVWXYZm]^_`abcefghijkopqrstuvwyz{|}~M #bjbj== \WW^l4X/X/X/h/D00B3:|3|3|34x;9T:moooooo$ ;;4"4;;;;Y>|3|3%Y>Y>Y>;;*8|3|3mY>;;mY>Y>qD:=|30 &lX/e<r0_J8=8Y><fJ  Revision History SNOVERSIONDATEAUTHOR (S)DESCRIPTION Table of Contents  TOC \o \h \z  HYPERLINK \l "_Toc23836460" 1. Introduction  PAGEREF _Toc23836460 \h 1  HYPERLINK \l "_Toc23836461" 1.1. Purpose  PAGEREF _Toc23836461 \h 1  HYPERLINK \l "_Toc23836462" 1.2. Background  PAGEREF _Toc23836462 \h 1  HYPERLINK \l "_Toc23836463" 1.3. References  PAGEREF _Toc23836463 \h 1  HYPERLINK \l "_Toc23836464" 2. Test Specifications  PAGEREF _Toc23836464 \h 1  HYPERLINK \l "_Toc23836465" 2.1. Hardware details  PAGEREF _Toc23836465 \h 1  HYPERLINK \l "_Toc23836466" 2.2. Software details  PAGEREF _Toc23836466 \h 1  HYPERLINK \l "_Toc23836467" 2.3. Tool details  PAGEREF _Toc23836467 \h 1  HYPERLINK \l "_Toc23836468" 2.4. Setup Steps  PAGEREF _Toc23836468 \h 1  HYPERLINK \l "_Toc23836469" 2.5. Server side monitoring requirements  PAGEREF _Toc23836469 \h 3  HYPERLINK \l "_Toc23836470" 2.6. Scripting  PAGEREF _Toc23836470 \h 3  HYPERLINK \l "_Toc23836471" 2.7. Data Setup  PAGEREF _Toc23836471 \h 3  HYPERLINK \l "_Toc23836472" 2.8. Error Handling  PAGEREF _Toc23836472 \h 3  HYPERLINK \l "_Toc23836473" 2.9. Parameters Collection  PAGEREF _Toc23836473 \h 3  HYPERLINK \l "_Toc23836474" 3. Test Execution  PAGEREF _Toc23836474 \h 4  HYPERLINK \l "_Toc23836475" 3.1. Pre Test procedures:  PAGEREF _Toc23836475 \h 4  HYPERLINK \l "_Toc23836476" 3.2. Test Runs (During the Test):  PAGEREF _Toc23836476 \h 4  HYPERLINK \l "_Toc23836477" 3.3. Post Test Procedures:  PAGEREF _Toc23836477 \h 4  Introduction Purpose This document presents the test design for the Performance Test to be conducted for developed by Cognizant. The design currently covers details for the < Run Numbers> of the performance test. Background E-Test lab, is conducting a performance evaluation of the . References [Include references to any documents] Test Specifications Hardware details Following hardware would be required during the test. SNOMachineNos1. In the table above, please list all the components of the application, as these components would help planning and setting up the server monitors during the test. In Machine column mention the type of the server component, like Web server, App server, DB server etc., the Load Generators used, Controller or Console (with respect to the tool used) and monitor. Pleased mention the Make, Model, CPU (including processor speed), Memory, Hard disk, and Network Interfaces for all the components mentioned above. In Nos column mention the number of the components used for executing the test. Software details In Software details please mention OS, Version, Service Patches, Application software, Database if any for executing the test. Tool details Brief description of the tool with version that is planned to be used for the test. Setup Steps Install software on each machine as shown in software installations table above: Create folders docs, recordings, scripts, runs, monitoring tools, monitoring scripts. Place all the documents in the docs folder. Record all the transactions as specified in the transaction traversal document and save the recordings in the recordings folder. Take a copy of the recorded scripts and parameterize accordingly and save the script in the scripts folder. Execute the script with the tool suggested and ensure that the scripts are working without errors. Once all the scripts are ready plan and execute the scenario for 10 users. On the load generators check the following: For NT services: Event Log, Protected Storage, Server, WorkStation, VNC Server. RPC Service is started automatically when Protected Storage starts. 9. Mention all the parameters that are to be monitored with respect to AppServer and WebServer. Server side monitoring requirements This section lists all the setup details / access to be provided by the customer before the testing activities commence. Please ensure all these details are available before the testing activities commence. SNOServer NameTypeAccess required In the Server Name column mention the server that you are going to use for the test with its IP Address. In Type column mention the type of the machine i.e., whether it is a SUN machine or NT machine. In Access required column mention what access rights are to given so that the there is no issues during the test. Always check for Disk Space before executing the monitoring scripts. Scripting Mention about where the scripts are going to be run and how the information is going to be delivered to the client i.e. through FTP or Mail Data Setup Mention from where the data setup would be done and once done is a backup taken for the database so that it can be used for subsequent runs. Error Handling This section identifies all the error checking/ validations that are performed transaction wise. TransactionErrorAction Taken In the Transaction column mention what is the type of request that is being sent across ie. HTTP or HTML request. In the Error column mention the validations that you have made in the scripts like Checking for a static string in the page. In the Action Taken column mention what steps are taken in case the validation fails. Parameters Collection The following statistics will be collected. Client side parameters Default parameters provided by the tool. Server side parameters In this session mention what is done in the servers as mentioned in the Server side requirements session. For example: For Oracle Servers Run statspack report (On the sqlplus prompt login as perfstat/perfstat and run execute statspack.snap every 30 minutes. For Sun Servers Run the shell scripts provided on each machine. Test Execution Pre Test procedures: This steps need to be followed before each run on each location. Reboot all load generators. Start Remote Command Launcher. Ensure drive mapping is done on the Server monitor PC to the load generators. Backup and Clear the previous run logs data in the servers before starting the next run. Start all the monitors, which you had set. Run the shell scripts. Start the test Console. Fill the test run sheet with all the server time and other details. Enter full local date and time of all machines. Test Runs (During the Test): Mention the number of users that are going to participate in the test. The ramp up details and as soon as the load is reached will the test be continued for some specific amount of time or will it be stopped. Check all the monitors, shell scripts and other data collection s/w are running. Verify some transactions manually through browser and take screen shots in case of errors. Fill the test run sheet with test observations like time at which peak load was reached, CPU usage variations etc. Post Test Procedures: Create of directories to store the result, the run number with the date mentioned. Store all test results in the respective directories. Stop the test execution in the following sequence. Stop Console Stop Server Monitor Run the command to stop the server side monitoring scripts. Note down test stop time and other observations in Run sheet. Copy all server files to the relevant directories in the structure explained above. Manually verify if all the result data has been saved. (Check by opening the session files also).  EMBED Word.Picture.8  Performance Test Design Cognizant Technology Solutions Confidential Performance Test Design  EMBED Word.Picture.8  For Private and Confidential use Page  PAGE 4 Performance Test Design For Prepared by: Date: Reviewed by: Date: Approved by: Date: 0YZ_`asuv{j{U jU;CJOJQJ^JaJj>*B*Uph0J j0JU6]j6U] 5CJ \5 5CJ\ B*^Jph CJ$]^J CJ \^J5CJ\^JCJ^Jj5U\^JmHnHu 5\^J*     $a$$a$^!'##015=BMY$If$a$ YZ[\]^_`bt[UUUUU[PP$a$$If$$Ifl4rH ,"9xl04 la tu"roh p q - K s t  !  $a$ !"#$?@ABFGQRSlmnopqrstٴٞj>*B*Uphj]Uj>*B*UphjgUj>*B*UphjqU jU:CJOJQJ^JaJ0J j0JUj>*B*Uph86789=>NOPijklmnopqٿٿj>*B*Uphj?Uj>*B*UphjIU:CJOJQJ^JaJj>*B*Uph j0JUjSU jU;CJOJQJ^JaJ0J:4567;<GHIbcdefghijٵٟj Uj >*B*Uphj! Uj>*B*Uphj+Uj>*B*Uph0J:CJOJQJ^JaJ j0JUj5U jU; !"=>?@DEOPQjklmnopqr        ! < = ӵӟj Uj~ >*B*Uphj Uj >*B*Uphj Uj >*B*Uph0J:CJOJQJ^JaJ j0JU jU== > ? A B P Q R k l m n o p q r s  ' ( ) * + , - . / J K ٨ْjUj`>*B*UphjU:CJOJQJ^JaJjj>*B*Uphj U jU;CJOJQJ^JaJ0J j0JUjt >*B*Uph6K L M Q R g h i a r w x y \aBCh<O!!!!!!w"x"""""۾ jxU jLUj= UVmHnHu jU>*5\^JaJ5\ 6;]^Jj6;U]^JjU jU:CJOJQJ^JaJ0J j0JUjV>*B*Uph6t      ( ) _ ` a e m q $If$a$q r u v w m_YN  !$If$If & F@ !$If$$IflFc3 0o    4 law x y   xymhhhhhhhhcadh$a$$$IflFc3 0o    4 la \]^klu#>?kl^h^h^  & F> h & F> & F>dh *dh$a$^jl`aeqv$If TJDDD$If  & F?$If$$Ifl\~  < (04 laWXommmmmmmkmmm$$Ifl\~  < 04 la CDST$If mggg$If$$IflFT(%TO  0(%    4 lalMN#$:;gh~~~~|||z|||||~$$IflFT(%TO 0(%    4 lal-.;<OP  23tuW & F= 8  & F= 8&'(EFi789OP  . j & F<  & F< ! & F;  $a$ & F= 8 ^!!""\"]"^""""""%#&#'#(#)#*#+#,#-#.#/#0#1#$a$$dN] & F<""####!#"###$#'#c#o#s#|#~##############OJQJ 5>*CJ5CJ5CJ(OJQJ\0JmHnHu0J j0JU^J 6]^J1#J#N#]#^#_#`#a#b#c################### & F<$a$$a$$&P 1h. A!"#r$%+0&P 1hP. A!"#r$%+0&P 1hP. A!"#r$%@MI@ @ ?7 ՜.+,D՜.+,p, px  Ready Test Go Pvt Ltd.T3  !Requirements Collection Document TitleP DocumentSummaryInformation8z _1098096350'S F0)čh%0)čh%1Table%CompObjRUjJb B j   .  _PID_HLINKS ClientNameClientShortName Testmode Testruns Testhwsw Testusers Testtxns Testduration TestId ClientSubmitDate ClientIntro ClientRef ProjIntroAl;h _Toc23836477;b _Toc23836476;\ _Toc23836475;V _Toc23836474;P _Toc23836473;J _Toc23836472;D _Toc23836471;> _Toc23836470:8 _Toc23836469:2 _Toc23836468:, _Toc23836467:& _Toc23836466:  _Toc23836465: _Toc23836464: _Toc23836463: _Toc23836462: _Toc23836461: _Toc23836460New Client Name+Short name (to be referred in rest of doc)r#Lab or Internet or Onsite or MixedoNo of test runs0Any special Hw/Sw to be provided by ReadyTestGo'Maximum concurrent users (for license)dMax no of txns to be scriptedlimax duration of assignmenteTest identifier sample TST024liDate like October 22, 20012Short Intro about client12'Any Client reference doc like proposaldIntroduction to Project  FMicrosoft Word Document MSWordDocWord.Document.89q@ i8@8 NormalCJ_HaJmH sH tH <A@< Default Paragraph FontO)X@ABVWjlz)BE] BXl $Zgn-Vg|Gd&=Z} )@Yv+@  ( f g w  : v < l  . O g  ; S j *G^}2KZ +<P(Ec;^u !:Vm)V[_fj*j )Rr2Vm "<Wm":I+=]$gi?\z5Ru!8Qn , A !!.!n!o!!!!!"A"m""""#$#<#\#}#####$($?$d$$$$$$$%2%Q%s%%%&&.&n&}&&&&&&&&''Z'''''(+(:(((((()?)B)M)Q)000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000O-Bd < :z!%(+O- !"#$%&'()*+O-Q)Whkm @Ddi04JO{.069?Gdl''((Q)3333333333333333333333333333N)Q)CTS'C:\PerformanceTesting\Sample Script.doc@M)M)dUM)M)O)@@UnknownG:Times New Roman5Symbol3& :Arial"h"3kf@3kf"H!h20d)2QCTSCTSObjInfoObjectPoolTW0)čh%0)čh%WordDocument&"XSummaryInformation(VXSM O-bjbj== "XWWO)l l"4 4 4 4 4 4 4 4 """""""$=# ]%6,"4 4 4 4 4 ,"!4 4 A"!!!4 4 4 "!4 "!^!""4 ( wTf> Z""W"0""%!%"! Sample Script for EcockPit Application Using LoadRunner6.5 #include "as_web.h" ViewCockpitGauge() { int rc, i,j; char RepNodeID[10], GaugeID[10], PeriodID[10]; int randomNo; int RAND_MAX = 10; web_set_max_html_param_len("120000"); /* * click on the project */ ThinkTime( 5 ); for (i=144; i<146; i++) { itoa(i,RepNodeID,10); lr_save_string(RepNodeID, "RepNodeID"); web_create_html_param("T1P1ProjectClick",">$$Iflֈ ,,"888T 6`,064 la 1h/ =!"#$% Oh+'0\   $ 0<DLTssCTSTSTSNormalCTS2SMicrosoft Word 9.0@@Ng@FnYDocumentSummaryInformation8_1098096283e F0)čh%0)čh%Data 1Tablebd ՜.+,0 hp|  CTSm  TitleO$$Ifl % k# Z06$$$$4 la i8@8 NormalCJ_HaJmH sH tH <A@< Default Paragraph Font %*:DQat0000000000000000000000000CTS"C:\PerformanceTesting\Run Logs.doc%*:DQat@yk#P@UnknownG:Times New Roman5Symbol3& :Arial"hr3kfx3kf}!r02CTSCTSCompObjjObjInfocgObjectPool0)čh%0)čh%WordDocumentfh"M bjbj== "WWl FHHHHHH$} 6ll>>>> F>F>T> 5'n*$ 0.> Run Logs for the Runs Run No.DateTransaction MixMax UsersScaled Up ToHits Per SecondMemory UtilizationCPU UtilizationRemarks 5\%*:DQat(Ff$If$$Ifl % k#06$$$$4 la 1h/ =!"#$%SummaryInformation(iDocumentSummaryInformation8_1098108558n F sƍh% sƍh%Data ) Oh+'0\   $ 0<DLTssCTSTSTSNormalCTS2SMicrosoft Word 9.0@@mLm@#n} ՜.+,0 hp|  CTS  Title, Dd}2EB  S A? b H~ }kґgxzr Dpnj H~ }kґgxzPNG  IHDR}2FP$gAMAPLTE    # !&0!&%(**,..111555#76:Q:;;?;9?@@4ABDEFFJMLPOOSSSTUIVwMXXVXXYXX\]]aWbcc-d)^dchffhiijjjmnnoobgppnppppprqrrurrsssuttwuhrvvvvwwvrywwjxxzyx}yy7{6{{{{||~||p~~~~}8}NnąG<{ؘ ͚CVKBg^χJJ[%DBJ?JEMBMEG:K@NJGENAW^NEPF;KHMBZbOGV`hY^t{kۯ}ŋɏۏΛt9 pHYs 2IDATxXkHK1]>4i:XG{%xCo{% /!x/Mn_`h k|^I,tO\zU1W6{Q ӳUm-T--юj}MhU㕯n0_%+A1}XDz.c3Yx> !$?~TYgώyۿ-^GtI]s*4?;/2Cّ?9jdtmu=^?y 㻲#8#^Vqߧ@[թ dq%e蓮&Ħ. c۟8J9dr^P`92$SaGg?H @gwh~z_:vb=@9BWZMUIa U.$TݷlBMqF;vtZh4b*$vI fCtIY"ư`dmvjvl=NpڕڪD=8j'M9UBljF GfwY~]8y<0CA#M"آ%yڵFo Gƃi޸Ei,<+쭼@7z]npHu S.+t`Z`VüwGwG{_&T7 ywx #£Oѳ,ހGwWwCXc k[ 34'2"s4zq _pslt?8ig`zwnZȽv͡O'u][Jc_y.=ШI#wx!c&˘l9l|gVU.V>.)kφ:=t[Z0㾓ߘ%Yr|[>}ko6=pdYqM#u|p6Z|R4$,;c8MГ75z8r1߮b9?ziaoQd3U za6!zXM PSAE|(ҚR"2~"9D):GEKrw_HM=C'O( 87B G7Aej88B,24wG}7d f] KCDZ€c1w<`MX`:ߣE{ێF6Ty;m z$TC(;YއU Ty TpW9+~רdn7FeGoVTպ4n 4mݞ. #k#ekBݹu4ٝr$<(Œܣ zae)+KAK~~R9??DJvwc}q dx=MAO3#{p@ 9.t] M+ac' 8l 2z/B!aVm]d_?Dwpi=_\lw)$Fp I_+a]|8)SgQE4xq 2]ʜSQn`qtiUKOaeCq)w5`Lm%tZjEkx,Y(FK{NG;``+ݎ=/I8YJnK#qY} ߐ6ˎ-/ߡ$K:~i:"v= .5=pBWSuTg9ٱž^cP7ngH[f7֨ ծF 6=;#em}5vrU3RhlK{vJVs*o^>C桷Wܧ6ӓhz&D{+dIENDB`{DyK  _Toc24366644{DyK  _Toc24366644{DyK  _Toc24366645{DyK  _Toc24366645{DyK  _Toc24366646{DyK  _Toc24366646{DyK  _Toc24366647{DyK  _Toc24366647{DyK  _Toc24366648{DyK  _Toc24366648{DyK  _Toc24366649{DyK  _Toc24366649{DyK  _Toc24366650{DyK  _Toc24366650{DyK  _Toc24366651{DyK  _Toc24366651{DyK  _Toc24366652{DyK  _Toc24366652{DyK  _Toc24366653{DyK  _Toc24366653{DyK  _Toc24366654{DyK  _Toc24366654{DyK  _Toc24366655{DyK  _Toc24366655{DyK  _Toc24366656{DyK  _Toc24366656{DyK  _Toc24366657{DyK  _Toc24366657{DyK  _Toc24366658{DyK  _Toc24366658{DyK  _Toc24366659{DyK  _Toc24366659, Dd}2EB  S A? b H~ }kґgxzr pnj H~ }kґgxzPNG  IHDR}2FP$gAMAPLTE    # !&0!&%(**,..111555#76:Q:;;?;9?@@4ABDEFFJMLPOOSSSTUIVwMXXVXXYXX\]]aWbcc-d)^dchffhiijjjmnnoobgppnppppprqrrurrsssuttwuhrvvvvwwvrywwjxxzyx}yy7{6{{{{||~||p~~~~}8}NnąG<{ؘ ͚CVKBg^χJJ[%DBJ?JEMBMEG:K@NJGENAW^NEPF;KHMBZbOGV`hY^t{kۯ}ŋɏۏΛt9 pHYs 2IDATxXkHK1]>4i:XG{%xCo{% /!x/Mn_`h k|^I,tO\zU1W6{Q ӳUm-T--юj}MhU㕯n0_%+A1}XDz.c3Yx> !$?~TYgώyۿ-^GtI]s*4?;/2Cّ?9jdtmu=^?y 㻲#8#^Vqߧ@[թ dq%e蓮&Ħ. c۟8J9dr^P`92$SaGg?H @gwh~z_:vb=@9BWZMUIa U.$TݷlBMqF;vtZh4b*$vI fCtIY"ư`dmvjvl=NpڕڪD=8j'M9UBljF GfwY~]8y<0CA#M"آ%yڵFo Gƃi޸Ei,<+쭼@7z]npHu S.+t`Z`VüwGwG{_&T7 ywx #£Oѳ,ހGwWwCXc k[ 34'2"s4zq _pslt?8ig`zwnZȽv͡O'u][Jc_y.=ШI#wx!c&˘l9l|gVU.V>.)kφ:=t[Z0㾓ߘ%Yr|[>}ko6=pdYqM#u|p6Z|R4$,;c8MГ75z8r1߮b9?ziaoQd3U za6!zXM PSAE|(ҚR"2~"9D):GEKrw_HM=C'O( 87B G7Aej88B,24wG}7d f] KCDZ€c1w<`MX`:ߣE{ێF6Ty;m z$TC(;YއU Ty TpW9+~רdn7FeGoVTպ4n 4mݞ. #k#ekBݹu4ٝr$<(Œܣ zae)+KAK~~R9??DJvwc}q dx=MAO3#{p@ 9.t] M+ac' 8l 2z/B!aVm]d_?Dwpi=_\lw)$Fp I_+a]|8)SgQE4xq 2]ʜSQn`qtiUKOaeCq)w5`Lm%tZjEkx,Y(FK{NG;``+ݎ=/I8YJnK#qY} ߐ6ˎ-/ߡ$K:~i:"v= .5=pBWSuTg9ٱž^cP7ngH[f7֨ ծF 6=;#em}5vrU3RhlK{vJVs*o^>C桷Wܧ6ӓhz&D{+dIENDB`1TablekmCompObjjObjInfolxObjectPoolp sƍh% sƍh%      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~GK] i@@@ Normal OJQJ^J_HaJmH sH tH @@@ Heading 1$ & F@& 5CJ aJ<@< Heading 2$ & F@&5aJ:@: Heading 3$ & F@&5\88 Heading 4$ & F@&CJLL Heading 5 & F<@&56CJ\]aJRR Heading 6 & F<@&5CJOJQJ\^JaJHH Heading 7 & F<@&CJOJQJ^JNN Heading 8 & F<@&6CJOJQJ]^JH H Heading 9 $$ & F@&a$5CJaJh<A@< Default Paragraph Font4B@4 Body Text,bt\aJ:;@: List Number 3  & FaJ.U@. Hyperlink >*B*ph0@0 TOC 1 xx 5;\*@* TOC 2 ^:0@B0 Header  !aJ0 @R0 Footer  !aJ("@( Caption5\>V@q> FollowedHyperlink >*B* ph6@6 TOC 3 ^CJOJQJ^J6@6 TOC 4 ^CJOJQJ^J6@6 TOC 5 ^CJOJQJ^J6@6 TOC 6 ^CJOJQJ^J6@6 TOC 7 ^CJOJQJ^J6@6 TOC 8 ^CJOJQJ^J6@6 TOC 9 ^CJOJQJ^J0P@0 Body Text 2$a$&)@& Page NumberBCB Body Text Indent!$h^ha$JR"J Body Text Indent 2"$^a$aJ@T2@ Block Text#x]^^J:QB: Body Text 3$x CJ^JaJ`MR` Body Text First Indent%x`CJOJQJ\aJbNbb Body Text First Indent 2&$x`a$ CJOJQJPSrP Body Text Indent 3'hx^h CJ^JaJ.?. Closing (^^J44 Comment Text)^JaJ L Date*^JJYJ Document Map+-D M OJQJ^J8[8 E-mail Signature,^J4+4 Endnote Text-^JaJX$X Envelope Address!.@ &+D/^@ ^J:%: Envelope Return/^JaJ66 Footnote Text0^JaJ6`6 HTML Address1 6]^JFe@"F HTML Preformatted2OJQJ^JaJ6 6 Index 13^`^J6 6 Index 24^`^J6 6 Index 35^`^J6 6 Index 46^`^J66 Index 57^`^J66 Index 68^`^J66 Index 79^`^J66 Index 8:^`^J66 Index 9;p^p`^J8!28 Index Heading< 5\^J0/0 List=h^h`^J42@4 List 2>^`^J434 List 3?8^8`^J444 List 4@^`^J454 List 5A^`^J60"6 List Bullet B & F^J:62: List Bullet 2 C & F^J:7B: List Bullet 3 D & F^J:8R: List Bullet 4 E & F^J:9b: List Bullet 5 F & F^J>Dr> List ContinueGhx^h^JBEB List Continue 2Hx^^JBFB List Continue 3I8x^8^JBGB List Continue 4Jx^^JBHB List Continue 5Kx^^J616 List Number L & F^J::: List Number 2 M & F^J:<: List Number 4 N & F^J:=: List Number 5 O & F^J`-` Macro Text"P  ` @ OJQJ_HmH sH tH I Message HeadergQ8$d%d&d'd-DM NOPQ^8`^J0^"0 Normal (Web)R^J:2: Normal Indent S^^J0O0 Note HeadingT^J8ZR8 Plain TextUOJQJ^JaJ,K, SalutationV^J2@r2 Signature W^^J6J6 SubtitleX$<@&a$^JP,P Table of AuthoritiesY^`^JH#H Table of FiguresZ ^` ^JF>F Title[$<@&a$5CJ KH\^JaJ 8.8 TOA Heading\x 5\^JtB!m޴O..ABCDEFGHIJKhijklmyz{123CFl\H  7 8 C D [ \ ` l r z { | } ~  o p " # R S T t u y    % & ' ( ^ { | } 234HQRS`ijk &:;<QRXbnopqrst./3?EMNOPQRSTUuvwxDbcop!"RSjkfgJKL~./;<fg!"op|}   1234FGHI^_`arstuABCDEFnopqrstcd{|;<@NXnvw|=>no? @ A J R X e o p q r s t } ~ ?!C!000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000a0!00}0}0}!00d0d0d!00 0 0 0 0 !00 !0  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !0  0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ 0@ !0  0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ >0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0 $ 0$ 0$ 0$ 0 $ 0$ 0$ 0$ 0 $ 0$ 0$ 0$ 0 $ 0$ 0$ 0$ 0 $ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ 0$ !0  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !0  0000000000000000000000!0  0H0H0H!00~!0~~0(!000000000000000(!00r0r0r0r0r0r0r0r0r0r0r0r0r0r0r(!00#0#0#0#0#0#0#(!007070707070707(0(0(00000000000(!0000000000(!00707070707070707070707`07(!000000000000!0000!0000!0000!0000!0000!0000!0000000000000!000000!000000!000000!0000000`0!00D0D0D0D0D0D0D0D0D0D0D0D 0D0D!00L0L0L0L`0L!00{!0{{0E20E20E0E0E0E0E0E0E00000000000000000@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0^^]]]`x=. l $B%!"#%&'()?XG z#j&nrERvpk FuAnrd |!!N"|"=#o$$B% $*+,-./0123456789:;<=>@ABCDEFGHIJKLMNOPQRSTUVWYA%Ldf3HIhx#>@ACbp &ACDFe!Lgijl   -<WYZ\{(CEFHgB!: tX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%T̕QXZ`:!t!T%&b$P @vs.b$q 85lb$XLx=Rb$#hSW}\~Gb$`\mpRޓB^Kb$rBJ ./#7b$5)MA owt-b$r(&NÖ?("gcb$PB!4b$;ʿ=Vzx56b$*-ise=k60b$ fE9D>s3b$K,Jgq2b$V] S;*Gb$qhGykwtF0b$=IJ9udX?>y0@%0(  B S  ?B!# _Hlt532891899 _Hlt532891902 _Toc506301347 _Toc24366644 _Toc499956251 _Toc493330194 _Toc504746773 _Toc506301348 _Toc24366645 _Toc506301349 _Toc24366646 _Toc24366647 _Toc24366648 _Toc504746779 _Toc506301353 _Toc24366649 _Toc24366650 _Toc499956268 _Toc504746780 _Toc506301354 _Toc24366651 _Toc506301355 _Toc24366652 _Toc24366653 _Toc24366654 _Toc24366655 _Toc504746774 _Toc24366656 _Toc24366657 _Toc506301359 _Hlt19006606 _Ref18492760 _Toc24366658 _Ref18492724 _Toc24366659 8 D p T <<<<sxtt|C!@@  @!" B Z x x r PPP-tC!Lgmuvx9? 4!>!@!C!Kh 4!>!@!C!333Lg3? A 4!>!C!CTS,C:\PerformanceTesting\Preliminary Report.docCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTS,C:\PerformanceTesting\Preliminary Report.doc|GO}hLN~$I~M~F fEh.MDCNuLlHBu2d$ h?WnAuYezB4v_6|Ct_afr#d]:X;$n/t)$p*#Wd!OA ,cJCRFd07/ d3pojCljNdsq9f}Ld\zd g:PRMtl  F BK \snQa5d6eJg d0 8t) r9xyw Y(` CzU  e) NpDdQ hdpo  Fo X&- j{H fhP) 4 0z  _ 22 ێI  j^  Q: H U @ $gJ]C_  *8s  ( > :\ey 4r&d]$ y>[v޸3nd~Є|}hw (I7 YՂ<^28XW,!R]F;N mFE_eքu X̆}JРJr:گ ); sv+# *Q0!d(i/J*!%}xN:\ <̬B YY_xee Y,kd~p ~=Є|}_RXNp nAQw - IXNr^ (b H (Iz%.'wM]G7Bv)FEf`9'?  OcH;d%`TeU5b~N :\--8rWvJ/qmg?D~xTE. HNo6 DJ,V{  X 4i4qA" NaDz AH\ 4+: 4Q !ȴh"$tex"w# M# "$"?"} $Jx_$ 3$*8$P:$W@V! %dl%h:.%(>fe%d5&$M4&+& Y6'"NX'(tQB'z5(jH19(dԍj(p!d) S)5ZSi)nAa#|)(() -)<@B)"h X)櫞?d* p+B4.)+xX+ <+pe,|}- Y&/-:~#-x)-. J.T@s. ;.${nb/ Ox/ @+k0rPN|p0l p0QE&E1 _1&/1bpIS2W'}2P1R02(\12x|3v6c)3h$L03,).32/2/41~4xW42l8vu5$ng5@96q؜X( 6Ty D6ΟbRBS6tdmy6Zh96 %6*!6 ]6hЇU7fƤ7` -7,80*x8ZhI8&k(9Ld\rM9X9ܷQ9 L89fbjJ:~8z:4Fz:΄TT ;jV( ;:\@; t< ctdZT>BnB=> 9E? w?K@hNS@D*3@RRA yAD(5B~AdB*ʆ@B,CJa4C`C66D#eC擼|CxNe(D\{ )DtWDd#D &&>E܎Qdd,gQh@#Q|}Qҫ\?Rb4PR 3>Sd;oS 5ShV-.SV0{#Txz#T&*TnAEWT}и%}}TwJTnAvTUTVx+ VT45|PVrV$Zf-XVЄ|}X5W:cW栋SX *W3X`J|Xd>)X  X8d-0XTf XB .[X @Y(8YdRYZkY o$ZvnZT[[dp[bH[2[d/[ O[x*\b>R\: 3\dK\ \ p\i\]d*$] ]0F^*x0_*MS_$_Ru_e28x_? _ Y[_0/|*`5/`B"N/-ib*d%*cMTcpЏtcxmc^:6ncz^|c0 cZ~IddddKe /f^ ZMFf 8Yfws f Y.kf@Q:-"zf [ gОBt g:ܢCh Lzi ij:`qi Tyi hj,Sj&MBk5Ck\Qk`skknA kz=~v-NlЊ3lBhX<mCevmx\&Amh8REmo^AmTƞ{m0|m -nd}n8lin`rc *%o:Kot|L(px(, q22q q@pctrCSr >IsP%P*sxexSs|$Gs@otdjMu"_zfTu@uRrh^udF)vdv vܢxl!xB!4w x^]F yBh.uydxLz`<jz +z'\|{ e{60*{TM|nA_}*0 }P]3} 5~B\T{L~ 7N~K~~:{n%~_:.k~.j<W~v|n~.v 4N Rs^`.^`.88^8`.^`. ^`OJQJo( ^`OJQJo( 88^8`OJQJo( ^`OJQJo(hh^h`. hh^h`OJQJo(^`o(.^`o(.^`o(..^`o(...^`o(^`o(.^`o(..^`o(...^`o(....*^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.P^`P@@^@`.0^`0..``^``... ^` .... ^` ..... ^` ...... `^``....... 00^0`........88^8`o(-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`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h^`.h^`.hPLP^P`L.h  ^ `.h  ^ `.hL^`L.h^`.h``^``.h0L0^0`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(-P^`Po(.@@^@`o(.0^`0o(..``^``o(... ^`o( .... ^`o( ..... ^`o( ...... `^``o(....... 0^0`o(........hh^h`o(.P8^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h^h`o(.P^`Po(..^`o(x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.@h^`.  ^ `o()h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(p^p`o(-h^`o(@@^@`o(.0^`0o(..``^``o(... ^`o( .... ^`o( ..... ^`o( ...... `^``o(....... 00^0`o(........^`o()h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h hh^h`OJQJo(88^8`OJPJQJ^Jo(-h ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo( hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hhh^h`.hh^h`o(.0^`0o(..88^8`o(... 88^8`o( .... `^``o( ..... `^``o( ...... ^`o(....... ^`o(........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(-h^`o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo( hh^h`OJQJo(hh^h`)hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.p^p`o(-h hh^h`OJQJo(88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.hh^h`o(.P8^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(......... hh^h`OJQJo(hh^h`. XX^X`OJQJo(hh^h`@OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(hh^h`CJOJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hP^`Ph@@^@`.h0^`0..h``^``... h^` .... h^` ..... h^` ...... h`^``....... h00^0`........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.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(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ``^``OJQJo(h 00^0`OJQJo(oh ^`OJQJo(  ^ `o()h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`. hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. hh^h`OJQJo(hh^h`o(.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`.^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`o()hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.p^p`o(-h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`@OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.  ^ `o()hh^h`o(.88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`.h(h^`(o(.hP^`Po(..h^`o(...hx^`xo(.... h^`o( ..... h X^ `Xo( ...... h ^ `o(....... h8 ^`8o(........ h`^``o(.........hh^h`o(hh^h`o(.0^`0o(..88^8`o(... 88^8`o( .... `^``o( ..... `^``o( ...... ^`o(....... ^`o(........h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h XX^X`OJQJo(oh ((^(`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.++^+`o(^`o(.0^`0o(..0^`0o(...   ^ `o( .... @ @ ^@ `o( ..... `^``o( ...... x`x^x``o(....... `^``o(........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(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.h^`.hL^`L.h  ^ `.hXX^X`.h(L(^(`L.h^`.h^`.hL^`L.h^h`o(A..P^`Po(A...^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.hbb^b`.h2 L2 ^2 `L.h  ^ `.h^`.hL^`L.hrr^r`.hBB^B`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`@OJQJo( XX^X`OJQJo(hh^h`@OJQJo(p^p`o(- hh^h`OJQJo(h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h  ^ `.h  ^ `.hL^`L.h^`.h``^``.h0L0^0`L.88^8`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.hbb^b`.h2 L2 ^2 `L.h  ^ `.h^`.hL^`L.hrr^r`.hBB^B`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`.8hh^h`o(.8P8^`Po(..8^`o(..8xp^`xo(.... 8@ ^`o( ..... 8 X ^ `Xo( ...... 8 x^ `o(....... 88H^`8o(........ 8`^``o(.........h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hPLP^P`L.h  ^ `.h  ^ `.hL^`L.h^`.h``^``.h0L0^0`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hPLP^P`L.h  ^ `.h  ^ `.hL^`L.h^`.h``^``.h0L0^0`L.p^p`o(-hh^h`o(.P8^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.P^`P@@^@`.0^`0..``^``... ^` .... ^` ..... ^` ...... `^``....... 00^0`........hh^h`o(.P8^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h^`.h^`.hPLP^P`L.h  ^ `.h  ^ `.hL^`L.h^`.h``^``.h0L0^0`L.@h h^h`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o()h^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h ^`OJQJo(^`OJPJQJ^Jo(-h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.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(h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(haa^a`.h11^1`.h L ^ `L.h  ^ `.h^`.hqLq^q`L.hAA^A`.h^`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.^`o(.XPX^X`Po(..^`o(... xH ^ `xo(....   ^ `o( .....  X ^ `Xo( ...... P^`o(....... 8^`8o(........  `^ ``o(.........hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. hh^h`OJQJo(@h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`o(.88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.hh^h`)h^`.h  ^ `.h L ^ `L.hxx^x`.hHH^H`.hL^`L.h^`.h^`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`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(p^p`o(-h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(88^8`o(.^`. L ^ `L.  ^ `.xx^x`.HLH^H`L.^`.^`.L^`L.p^p`o(-h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`@OJQJo(^`o(.@ 0@ ^@ `0o(. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L.0^`0o(.00^`0o(.^`o(..`^``o(... `^``o( ....   ^ `o( ..... BB^B`o( ...... z(z^z`(o(....... ^`o(........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(^`o()h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. 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(88^8`o(-h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(oh bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........hhh^h`.XX^X`o(.0^`0o(..0^`0o(... 88^8`o( .... 88^8`o( ..... `^``o( ...... `^``o(....... `^``o(........h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( XX^X`OJQJo(hh^h`.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`@OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. XX^X`OJQJo( hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(hh^h`o(.P^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(......... hh^h`OJQJo( hh^h`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h XX^X`OJQJo(oh ((^(`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h(h^`(o(.hP^`Po(..h^`o(...hx^`xo(.... h^`o( ..... h X^ `Xo( ...... h ^ `o(....... h8 ^`8o(........ h`^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. XX^X`OJQJo(@h^`.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h^`.hTT^T`.h$ L$ ^$ `L.h  ^ `.h^`.hL^`L.hdd^d`.h44^4`.hL^`L. ^` o( ^` o(.000^0`0o(..0^`0o(...   ^ `o( ....   ^ `o( ..... `^``o( ...... p`p^p``o(.......  ` ^ ``o(........hP^`Ph@@^@`.h0^`0..h``^``... h^` .... h^` ..... h^` ...... h`^``....... h00^0`........ XX^X`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(h^`.hpp^p`.h@ L@ ^@ `L.h^`.h^`.hL^`L.h^`.hPP^P`.h L ^ `L.^`o()h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`o(.P8^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........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(h ^`OJQJo(h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hhh^h`o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.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(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h hh^h`OJQJo(h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h^`.^`o(.h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(h ^`OJQJo(h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.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(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(hh^h`.h^`)h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.0^`0o(.00^`0o(.^`o(..`^``o(... `^``o( ....   ^ `o( ..... BB^B`o( ...... z(z^z`(o(....... ^`o(........h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. hh^h`OJQJo(p^p`o(-hhh^h`o(.hP^`Po(..h^`o(..hxp^`xo(.... h@ ^`o( ..... h X ^ `Xo( ...... h x^ `o(....... h8H^`8o(........ h`^``o(.........hh^h`.hh^h`.hP^`P..h ^`...hx^`x.... h^` ..... h X^ `X ...... h ^ `....... h8 ^`8........ h`^``......... 88^8`OJQJo( ^`OJQJo(o   ^ `OJQJo(   ^ `OJQJo( xx^x`OJQJo(o HH^H`OJQJo( ^`OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo(o ^`OJQJo(o pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`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( 88^8`OJQJo( ^`OJQJo(o   ^ `OJQJo(   ^ `OJQJo( xx^x`OJQJo(o HH^H`OJQJo( ^`OJQJo( ^`OJQJo(o ^`OJQJo( hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( 0^`0o(.00^`0o(.^`o(..N `N ^N ``o(... `^``o( .... VV^V`o( ..... ^`o( ...... (^`(o(....... ^`o(........hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h hh^h`OJQJo(88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h u u ^u `OJQJo(h EE^E`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. ^`OJQJo(o ^`OJQJo(o pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`OJQJo(p^p`o(- hh^h`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo( ^`OJQJo(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`)h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.88^8`o(-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(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. ^`OJQJo( ^`OJQJo(o pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`OJQJo(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.88^8`o()h ^`OJQJo(h xx^x`OJQJo(oh H H ^H `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h XX^X`OJQJo(oh ((^(`OJQJo(^`o(.  ^ `. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L.88^8`o() hh^h`OJQJo(h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(ph^`po(.^`o(..8^`8o(...@^`@o(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8^`8o(........ `P^``o(......... hh^h`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(p^p`o(-hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h XX^X`OJQJo(oh ((^(`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`@OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo( ^`OJQJo( ^`OJQJo( pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`OJQJo(hh^h`@OJQJo(h^`)h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.hpp^p`.h@ L@ ^@ `L.h^`.h^`.hL^`L.h^`.hPP^P`.h L ^ `L.h ^`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h XX^X`OJQJo(h ((^(`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh hh^h`OJQJo(p^p`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(......... hh^h`OJQJo(p^p`o(- hh^h`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.88^8`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.88^8`o(-h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hhh^h`.^`o(.808^8`0o(..0^`0o(... ^`o( .... ^`o( .....  ` ^ ``o( ......  ` ^ ``o(.......   ^ `o(........h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hh^h`.@h ^ `._ _ ^_ `o(.@ 0@ ^@ `0o(..@ 0@ ^@ `0o(...   ^ `o( ....   ^ `o( ..... `^``o( ...... `^``o(....... `^``o(........h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo( hh^h`OJQJo(h^`.h  ^ `.h L ^ `L.hxx^x`.hHH^H`.hL^`L.h^`.h^`.hL^`L.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(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hh^h`.h88^8`B*OJQJo(phh ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(p^p`o(-^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L. hh^h`OJQJo(h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(^`o(.^`.L^`L.  ^ `.XX^X`.(L(^(`L.^`.^`.L^`L.p^p`o(-P^`Po(^`o(.0^`0o(..00^0`o(... ^`o( .... PP^P`o( ..... ^`o( ...... p`p^p``o(.......   ^ `o(........  ^ `o()p^p`o(- hh^h`OJQJo( XX^X`OJQJo(h^`B*OJQJo(phh ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(p^p`o(- hh^h`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh X X ^X `OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h \ \ ^\ `OJQJo(h ,,^,`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ll^l`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(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.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`o(.P^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(@h h^h`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ``^``OJQJo(h 00^0`OJQJo(oh ^`OJQJo(h ^`OJQJo(h   ^ `OJQJo(oh   ^ `OJQJo(h xx^x`OJQJo(h HH^H`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.hpp^p`.h@ L@ ^@ `L.h^`.h^`.hL^`L.h^`.hPP^P`.h L ^ `L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh X X ^X `OJQJo( \ ^ `\o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.p^p`o(-p^p`o(- hh^h`OJQJo(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L. hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`@OJQJo(h ^`OJQJo(h^`.h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`o(.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(^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`.h^`.h^`o(.h$ $ ^$ `.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(hh^h`. hh^h`OJQJo(0^`0o(.00^`0o(.  ^ `o(..`^``o(... `^``o( .... ^`o( ..... PP^P`o( ...... (^`(o(....... !!^!`o(........h ^`OJQJo(h   ^ `OJQJo(oh   ^ `OJQJo(h xx^x`OJQJo(h HH^H`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.hPP^P`.h L ^ `L.h  ^ `.h^`.hL^`L.h``^``.h00^0`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.88^8`o(-h^`o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`o( ^`OJQJo( 88^8`OJQJo( ^`OJQJo( ^`OJQJo( pp^p`OJQJo(   ^ `OJQJo( @ @ ^@ `OJQJo(   ^ `OJQJo(h^`.hbb^b`.h2 L2 ^2 `L.h  ^ `.h^`.hL^`L.hrr^r`.hBB^B`.hL^`L. XX^X`OJQJo( 88^8`OJQJo( ^`OJQJo(o   ^ `OJQJo(   ^ `OJQJo( xx^x`OJQJo(o HH^H`OJQJo( ^`OJQJo( ^`OJQJo(o ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh X X ^X `OJQJo( hh^h`OJQJo(p^p`o(-h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`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(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(^`o(.  ^ `. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(h ^`OJQJo(h   ^ `OJQJo(oh   ^ `OJQJo(h xx^x`OJQJo(h HH^H`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. 0^`0o(.00^`0o(.^`o(..`^``o(... `^``o( ....   ^ `o( ..... BB^B`o( ...... z(z^z`(o(....... ^`o(........p^p`o(-h ^`OJQJo(h ^`OJQJo(h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(^`o()h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(-p^p`o(- hh^h`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.h  ^ `.\ \ ^\ `OJPJQJ^Jo(-xx^x`.HH^H`.L^`L.^`.^`.L^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(p^p`o(-h^`.h^`.h L ^ `L.h\ \ ^\ `.h,,^,`.hL^`L.h^`.h^`.hlLl^l`L.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 ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.h L ^ `L.h\ \ ^\ `.h,,^,`.hL^`L.h^`.h^`.hlLl^l`L.88^8`o(-hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. hh^h`OJQJo(h ^`OJQJo(h TT^T`OJQJo(oh $ $ ^$ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h dd^d`OJQJo(h 44^4`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ``^``OJQJo(h 00^0`OJQJo(oh ^`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.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(h ^`OJQJo(h xx^x`OJQJo(oh H H ^H `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h XX^X`OJQJo(oh ((^(`OJQJo(hh^h`.hh^h`. ^`OJQJo(pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.~x_$BKNH[^hP) #cJ1i Gy J(!K5(;oSzfTug5skkrgGJT$|?W&*TX+SX<jzI 4NB=>Si) ,V{ 5~OM]d:z [ g@J|n~XW4[@+k0 Xsq9d *%oRY|}Q c+zW~yAuY]6'}2z#T%}}TS)IS2_ j(TE. }k(9X5W@;I-V.kfLz:-7R028Yf;.0 }0 } 0 }, \?RzB#Ty D6-)*Oct<ZT>\?Rx d(Ia#|)967N~4 q_e V V V VQ: rZ_G qX( 6%`g/o$Z3l3l3l 3l3l` `C`C Lzi/f?d*rjNI4v-Nl%6/`|p0w xd$ `C`C *Q*QD *Q` 03in*Q| *Q !OAd,gQ='gMREmp[p[ p+7Kob.GmCRvT_1 \huFM#/2/4}|K\*`&/-uMBk(` trrM99(}y;N} $6eB,C? z%.}nI8c)39E?m =-XV~n/ T ;sF^)Fg:K~~rR]L=jJ:-.SRBS6 <0_]3}M4&hwHh"pe,dpo 5S5S$*W3X*W3XH)$)$3\^u3n-n! %WDN\i\]gh@>a5F)v[Idotdfe%8YhjD~ E[[Y_,kr9uyu>Q;vm.)+\12O[#-3>S5M4zU Kenb//[*$]~pNEz X'*c FGs<Sr)XTyi:Kw#[XeY=9@s.a`Ohj^ #D|mAkY/eyvC_ &E1ZMFfN(5B\|{l!x@B)J.%*8s mc|36'qqM`PXF?Go6 Ox/qivu5 XPRX) "$0GKjtcCh)8x_!d);)-."zfWvEWT @ 96\ }=iu-Q).38{H *I( ;jMuXNHjOAm{L~nZ%~e) 3@MGw?\&AmMS_xLz0*{P*s  l%`90 JLQB'5&|c{m] )DK@()@;i/~hL|PV3$~}xN/1Mtl@#Q- X<mU5t<*\@YG7Bt gw5Ck!6Byw+& _0R_Ns feeXQOMTcI7}-e{,!$!QL89>Is]F y#eC&- S@Ru_8z:-0XFo J.p0afTVU7dpo J|XSsDdQ [F8&&>EQ777""",L L@L   @@@L h^h`o(A.!P^`Po(A...P"^`o(...#xp^`xo(....$ @ ^`o( .....%  X ^ `Xo( ......&  x^ `o(.......l' 8H^`8o(........( `^``o(......... h^h`o(A.!P^`Po(A...l"^`o(...#xp^`xo(....8$ @ ^`o( .....%  X ^ `Xo( ......&  x^ `o(.......' 8H^`8o(........( `^``o(......... h^h`o(A..(!P^`Po(A..."^`o(...#xp^`xo(....X$ @ ^`o( .....%  X ^ `Xo( ......4&  x^ `o(.......' 8H^`8o(........ ( `^``o(......... hh^h`o(@!P^`Po(A..."^`o(...#xp^`xo(....p$ @ ^`o( .....%  X ^ `Xo( ......L&  x^ `o(.......' 8H^`8o(........8( `^``o(.........,L h^h`o(.!P^`Po(.."^`o(...l#x^`xo(....$ ^`o( .....@%  X^ `Xo( ......&  ^ `o(.......$' 8 ^`8o(........( `^``o(.........0 @h ^`OJQJo( @h^`CJ OJQJo(n b@h ^ `.T 2@h 8^8`OJQJo( e@h^`. @h h^h`OJQJo(t @CJOJQJo(8 @h 8^8`OJQJo(         8< ~j@                                                                                        :                                                                       Xn ]                                                           4                          R        88>                                                                       4-                 U                                                                               X>                           <Ƅ                                                                               R                                            D_                                                                                                                    jd                                                                                                                      2n                         R                                   o~f                                                                                                                                               c                          ,8                                   H                                            R         $d"p                                                                    exJ@g4>7[El.Nd&VCobrv^#raRgbz -ۖ _"x[mމ&MB(##_xB 9Yy$$୭a.VG<'H$HC!qᕊN 5mvVrm/ҽ!Vgx< Mw#L^2:}햼6W< hO=}5fH 0̥p8Qe,cVzљ)*Ե,Aw2V; {hrzǒ`"̆X/r.-*b/zaR;nMiKm`1,8uc)v .+\]EF^+Wjm7XJM;գ/°F܅7J: 2n!^{/zVVˍ]eR1'rHVр@^ f=a`4ch| yZ?7BtG6LQС6_zu>{#4 =Z{M,PviVMY CC6Ը.wԗq?hW?Q5PrH׸wPȎ.,W3(T jv>WKp}|Sl{5xweV΃.wѴLr/_F qh\}4vK{^bo0l  EsBӮU`wwj5W{Ga}sP<!V/ȳkH7 f=ї=~j*:oõ zL&iR9w9 ՗6Nϟaqz^Oq`Cx->ه,.\>c!-vVR=E@BY$z +F<{kE|N2ᠷHM,_l6q6?F@;N{ GAPr;,gCdl6<Ҳ!md`JnsYu -N فL./Pt^?woi :i߆@鳝=#.mV8, ?ZOLU; t\q'gQрL_'vqclDF081l{*Y-4eRq^t 1?Iݚ\;sg\)v2-{v;ѹgɬff0[?clpvJ vkӥ/=w?]>;ޣ>31}>[z&xIENDB`Oh+'0T    (4<DLssMS5369S53 Normal.dotMS5369d253Microsoft Word 8.0@@V?LR@V?LR՜.+,D՜.+,, hp|  CTSj  Title 6> _PID_GUIDAN{E1DBAEE2-BE32-11D4-B6E3-0002A519DF6F}WordDocumentoySummaryInformation(zDocumentSummaryInformation8_1098108754j F sƍh% sƍh%      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFHIJUVMNOPQRSTUVWXYZ[\]^_`fghijklmnopqrstuvwxyz{|}~M B%bjbj== WW^ldAAA0B\BLDhFLGGGJ[NwOKMMMMMM$ (qPJJPPqiQGG:iQiQiQP|GGKiQPKiQziQW1oK9G@D `=Sꊅj+AP|H"(PjiQ Performance Test Preliminary Report  EMBED Word.Picture.8   PREPARED BY  REVIEWED BY  APPROVED BY  NAME  ROLE  SIGNATURE  DATE Approved and Issued By: Form No. : Date: Table of Contents  TOC \o "1-2" \h \z  HYPERLINK \l "_Toc24366644" 1 Introduction  PAGEREF _Toc24366644 \h 2  HYPERLINK \l "_Toc24366645" 2 Performance Test Objectives  PAGEREF _Toc24366645 \h 2  HYPERLINK \l "_Toc24366646" 3 References  PAGEREF _Toc24366646 \h 2  HYPERLINK \l "_Toc24366647" 4 Test Setup  PAGEREF _Toc24366647 \h 2  HYPERLINK \l "_Toc24366648" 4.1 Hardware Configuration  PAGEREF _Toc24366648 \h 2  HYPERLINK \l "_Toc24366649" 4.2 Software Configuration  PAGEREF _Toc24366649 \h 2  HYPERLINK \l "_Toc24366650" 4.3 Load Runner / Webload Settings  PAGEREF _Toc24366650 \h 3  HYPERLINK \l "_Toc24366651" 4.4 List of Transactions  PAGEREF _Toc24366651 \h 3  HYPERLINK \l "_Toc24366652" 4.5 Load Generator Machines Configuration  PAGEREF _Toc24366652 \h 4  HYPERLINK \l "_Toc24366653" 4.6 Test Procedure  PAGEREF _Toc24366653 \h 4  HYPERLINK \l "_Toc24366654" 5 Test Results  PAGEREF _Toc24366654 \h 4  HYPERLINK \l "_Toc24366655" 5.1 Scenario1  PAGEREF _Toc24366655 \h 4  HYPERLINK \l "_Toc24366656" 6 Key Findings  PAGEREF _Toc24366656 \h 8  HYPERLINK \l "_Toc24366657" 7 Recommendations  PAGEREF _Toc24366657 \h 8  HYPERLINK \l "_Toc24366658" 8 Appendix  PAGEREF _Toc24366658 \h 9  HYPERLINK \l "_Toc24366659" 8.1 Transaction Traversal Summary  PAGEREF _Toc24366659 \h 9  Introduction Cognizant Technology Solutions engaged E-Test labs to evaluate and tune the performance of their application. the performance testing team to evaluate and tune their application performance. This report presents the summary of the findings and recommendation results of the performance test runs conducted on the on . The findings and recommendations of the performance testing team are presented under Section 4. Performance Test Objectives The objective of the load test was to study the stability and scalability of the under a simulated load of concurrent virtual users connecting at LAN (100 Mbps) speed. Identify performance bottlenecks, if any, in the application components under the given load condition. References Test Plan Document. Transaction Traversal Document Performance Test Report1 Test Setup Hardware Configuration SNOServer TypeUnitsDetails In Server Type Column mention the server that is being used. In Units Column mention the number of servers used. In Details Column mention the Make, Model, CPU (including processor speed), Memory, Hard disk for the server mentioned. Software Configuration SNOServer TypeUnitsDetails In Server Type Column mention the server that is being used. In Units Column mention the number of servers used. In Details Column mention the OS with version. Load Runner / Webload Settings SnoDescriptionValueMaximum iteration countThink time between iterationsClient side loggingThink time replay modeConnection speedLANNetwork buffer sizeNumber of concurrent sockets for each http connection4(typical browser emulation)Connection timeout120 secsReceive timeout120 secsHttp VersionHttp1.0Custom User AgentMozilla/4.0(Compatible; MISIE 5.0; Win 32)(Common agent for IE5.0 and Netscape4.6)Client side cachingDisabledHtml parsingDisabledDownload non-html resources optionEnabledHttp keep aliveEnabledDNS cachingEnabledReset context between iterationsEnabledTraffic through proxyDisabledEach virtual userRunning as a thread List of Transactions S NO.Trans Id.Description In the Trans Id. Column mention the Transaction Id as mentioned in the scripts In the Description Column mention the transaction description. Load Generator Machines Configuration SNOServer TypeUnitsDetails In Server Type Column specify the Load Generators, Controller and the servers that are used for monitoring. In Units Column mention the number of Server Type used. In Details Column mention the Make, Model, CPU (including processor speed), Memory, Hard disk for the server mentioned. Test Procedure Virtual users were scripted to perform the transactions mentioned in Section 4.4. Specify how the load is going to be increased and as the load is reached for what time the level was maintained. Probes and server monitors were used to collect performance metrics for the entire test duration. Test Results Scenario1 Scenario Mix SnoTransaction NameMix Percentage In the transaction Name Column mention the name of the transaction In the Mix Percentage Column mention the mix the particular transaction is going to handle. Client Side Statistics This section includes the statistics as observed from the load generating clients. It gives a picture of how the application performed as observed from the client end. Description The graph that depicts the throughput and hits per second (HPS) plotted with load as the test progressed. Fig 1 Client Side Statistics Observation Small description of the graph mentioned above. Server Side Statistics This section includes the performance statistics on the server. It gives a picture of how the server performed at different load conditions. Description The graphs that depict the overall CPU usage, Run queue length and memory usage on the server. Web Application Server CPU Statistics Fig 2 Web Application Server CPU Statistics Observation Small description of the chart that is mentioned above. Web - Application Server Memory Statistics Fig 3 Web Application Server Memory Statistics Observation Small description of the graph mentioned. Database Server CPU Statistics Fig 4 Database Server CPU Statistics Observation Small description of the graph mentioned. Database Server Memory Statistics Fig 5 Database Server Memory Statistics Observation Small description of the chart. Oracle Database Server Statistics This section includes performance statistics of the Oracle database server. Description The following table shows the instance efficiency percentages and top wait events of Oracle. S. No.ParameterValueBuffer Nowait RatioBuffer Hit RatioLibrary Hit RatioRedo NoWait RatioIn-memory Sort RatioSoft Parse RatioLatch Hit Ratio S. No.Wait EventWaitsTime (cs)% Total Wt Timedirect path write direct path read latch free log file parallel write  Key Findings Mention the key findings for the test run being conducted like For how much users the HPS was rising. The average response Time for the transactions. At what number of users did the application servers CPU reached 100% The memory utilization in the Application server, database server. When the number of jdbc connections on the Weblogic and ATG Dynamo application servers were increased in the dedicated server configuration of Oracle the processes parameter has to proportionally incremented. Recommendations Appendix Transaction Traversal Summary Following are the transactions with screen navigation details identified for the Performance test Run. SNOUser ActivityForm DataThink Time in SecondsRemarksT1P9AccountAll5Sufficient records needs to be inserted for all the user accounts. In SNO Column specify the transaction name. In User Activity Column specify the user action to be simulated. In Form Data Column specify the user input data In Think Time in Seconds Column specify the wait time In Remarks Column specify the description of users action .  EMBED Word.Picture.8  Controlled Copy Test Summary Report Proj. IDSCI. IDS.No.Doc. VersionForm No. w.e.f. Page page 1 of  NUMPAGES 10 For Private and Confidential use of Times Internet Limited Page  PAGE 9 ACLMdegkl134HIJKfghijkwxrjmHnHu$5;CJOJQJ\^JmHnHu0JaJ mHnHu&j, >*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHu; j;U 5CJ\5CJ55CJ56j= UVmHnHu jUCJ 5CJ \5CJ5CJ ).ABCDEFG3$($&#$$d%d&d'd+Dq/NOPQa$3$($&#$$d%d&d'd+Dq/NOPQa$#A%GHIJKhijklmyz{ $$Ifa$$If3$($&#$$d%d&d'd+Dq/NOPQa${,uuuuuu$If$$Ifl\tZ2%    (%4 la{,uuuuuu$If$$Ifl\tZ2%    (%4 la{@uuuuuu$If$$Ifl\tZ2%    !!!!(%4 la{,uuuuuu$If$$Ifl\tZ2%    (%4 la123C{ywuppwwiiii # $a$$$Ifl\tZ2%    !!!!(%4 la xy"#$=неБнеoБ&j>*B*UmHnHphujUmHnHu0JaJ mHnHu&j">*B*UmHnHphu mHnHu0JmHnHu$5;CJOJQJ\^JmHnHuj0JUmHnHuj UmHnHumHnHujUmHnHu&=>?@ABCDE`abcdeopqѾѶђބѾѶpѶ`:CJOJQJ^JmHnHu&j>*B*UmHnHphujUmHnHu0JaJ mHnHu&j>*B*UmHnHphu mHnHu0JmHnHu$5;CJOJQJ\^JmHnHuj0JUmHnHumHnHujUmHnHujUmHnHu$   %&'@ABCDEFGHcdefijѹѹޑѹ}ѹojkUmHnHu&j>*B*UmHnHphujuUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHu:CJOJQJ^JmHnHuj0JUmHnHumHnHujUmHnHujUmHnHu+Fl \ H $a$$a$ #  #  !"%&KLMfghijklmn|h&j>*B*UmHnHphujWUmHnHu&j>*B*UmHnHphujaUmHnHujUmHnHumHnHu:CJOJQJ^JmHnHuj0JUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHu(    + , - . ӹ󕂕t`&j>*B*UmHnHphujCUmHnHu$5;CJOJQJ\^JmHnHu0JaJ mHnHu&j>*B*UmHnHphu mHnHujMUmHnHujUmHnHumHnHu:CJOJQJ^JmHnHu0JmHnHuj0JUmHnHu%. 1 2 ; < = V W X Y Z [ \ ] ^ y z { | } ~ ӸsӸ_&j>*B*UmHnHphuj/UmHnHu$5;CJOJQJ\^JmHnHu0JaJ mHnHu&j>*B*UmHnHphu mHnHuj0JUmHnHuj9UmHnHujUmHnHumHnHu:CJOJQJ^JmHnHu0JmHnHu%       ' ( ) B C D E F G H I J e f g h k l ϴۄϴp`:CJOJQJ^JmHnHu&j>*B*UmHnHphujUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHuj%UmHnHujUmHnHumHnHu0JaJ mHnHu$5;CJOJQJ\^JmHnHu%l 3 CD\{|u;RXopqrsu/NPQRȸ;aJ\ 5\aJ^JaJaJ 5\aJaJ cHdhi&5\ j;U:CJOJQJ^JmHnHuj0JUmHnHujUmHnHujUmHnHumHnHu0JmHnHu6 78CD[\`lrz $$Ifa$$a$$ & Fa$ z{|}~QC::: $$Ifa$ $ !$Ifa$$$Ifl4\WH  8p (064 laopljjjjjaj_j$^a$$$Ifl\WH  8p064 la H: $ !$Ifa$$$Ifl4\WH  8p (064 la $$Ifa$"#ca____$$Ifl@\WH  8p064 la $$Ifa$ #RSTtuyOl$$IflFR,"f 06    4 laP $$7$8$H$Ifa$$^a$ WIW\> & F$7$8$H$If$$Ifl FR,"f 06    4 laP $7$8$H$If !$7$8$H$If & F$7$8$H$If fhf\$$Ifl FR,"f 06    4 laP $7$8$H$If & F$7$8$H$If %&'(^{|}\qffTqffxqf $7$8$H$If & F$7$8$H$If$$Ifl FR,"f 06    4 laP tlft\ftf & F$7$8$H$If$$Ifl FR,"f 06    4 laP $7$8$H$If 234HQRS`ijt|ft`ft & F$7$8$H$If$$Ifl FR,"f 06    4 laP $7$8$H$If jkfhfX$$Ifl FR,"f 06    4 laP $7$8$H$If & F$7$8$H$If  &qffqffqf $7$8$H$If & F$7$8$H$If$$Ifl FR,"f 06    4 laP &:;<QRXbntrpn`WW $$Ifa$ $ !$Ifa$$$Ifl FR,"f 06    4 laP $7$8$H$Ifnopqrh^XM  !$If$If h$If^h$$Ifl4LF 8 06    4 larst./3?E}}}}}{y}ppp $$Ifa$$$Ifl F 806    4 la EMNOPQRH==7=$If  !$If$$Ifl4\WH  8p (064 la $$Ifa$RSTUuvljjjdddd^d^`$$Ifl@\WH  8p064 la vwx $7$8$H$If@^@$a$`la[[$If  !$If$$IflFdT<N 06    4 laDbcop}}ww}uommmm !^$$IflhFdT<N06    4 la bn!fg/;o{ |!!!!!!<"w""""####$$$?$A$~$$$$$$$$5B*mHnHphuj5B*Uph 5B*ph jUj= UVmHnHu jU\OJQJ Hhi& Hhi& cHdhi& Hhi&5\5OJQJ^J5aJ:p!"RSjkmmmmmmkCEƀbGEƀb`^ kfgiiCEƀbGEƀb^^ JKL~upppuuu & FGEƀb^CEƀb rpnF$Eƀba$GEƀb^./;<fguusuGEƀb^CEƀb ussGEƀb^CEƀb!"op|}$IfF$Eƀba$  g\UOO$If & F$If^`$$IflF<$ 06    4 la   1234F|Pjdd|Tjdd|Tjd$If & F$If^`$$IflhF<$ 06    4 la FGHI^_`arstuv`dvPdvLd & F$If^`$$IflhF<$ 06    4 la$If uvtt$$IflhF<$ 06    4 la$If 4"$If & F$If^`$$Ifl4r < A8 20p64 laN< & F$If^`$$Iflhr < A80p64 la$IfAN< & F$If^`$$Iflhr < A80p64 la$IfABCDEFnN< & F$If^`$$Iflhr < A80p64 la$IfnopqrN$$Iflhr < A80p64 la$Ifrst  c d ^CEƀb d {!|!r+&$a$F & FEƀi& CEƀi&JhdhEƀb^h|!!!!!kkM$hdhEƀi&^ha$DC$Eƀi&!!!!!!!;"<"@"N"pnljldd^^$If2^F$Eƀi&a$I$dhEƀi&a$ N"X"n"v"w"|"4\$$Ifl4rL] *,"t D 20"4 la$If|"""""""""=#VTTTT$$IflrL] *,"t D 0"4 la$If =#>#n#o########?$@$A$J$R$X$e$o$ $$Ifa$  Z&dP]^`Z !F2o$p$q$r$s$t$}$~$$\8SSSSS\I $ !F2a$ $$Ifa$$$Iflr" xF%rbl04 la$$$$$$$$$$4%5%;%<%=%>%B%CJmHnHu jCJUCJ56CJ\] 6CJ]0J mHnHu0J j0J U$$$?%@%A%B% !F2k 0&P+p,p-p.p/R / =!"#$%4567o0&PP+p,p-p.p/R / =!["#$%4567o 0+p,p-p.p1h/R / =!"#+ $%4567o 0+p,p-p.p1h/R / =!"#+ $%4567l+p,p-p.p1h/R / =!"#+ $%4567h+p,p-p.p1h/R / =!"#$%4567 SummaryanM CIndira BalakrishnanndindiNormalBCTS4SMicrosoft Word 9.0@hgC@fP@pp@`ƊK ՜.+,D՜.+,|8 hp  #Cognizant Technology Solutions Ltd8 J  1GM Cards - Performance Testing Executive Summary TitleL 8@ _PID_HLINKSA`2_ _Toc243666592Y _Toc243666582S _Toc243666572M _Toc243666562G _Toc243666552A _Toc243666542; _Toc2436665325 _Toc243666522/ _Toc243666512) _Toc243666503# _Toc243666493 _Toc243666483 _Toc243666473 _Toc243666463  _Toc243666453 _Toc24366644Data L)1Table|~eCompObjjObjInfo}, Dd}2EB  S A? b H~ }kґgxzr Dpnj H~ }kґgxzPNG  IHDR}2FP$gAMAPLTE    # !&0!&%(**,..111555#76:Q:;;?;9?@@4ABDEFFJMLPOOSSSTUIVwMXXVXXYXX\]]aWbcc-d)^dchffhiijjjmnnoobgppnppppprqrrurrsssuttwuhrvvvvwwvrywwjxxzyx}yy7{6{{{{||~||p~~~~}8}NnąG<{ؘ ͚CVKBg^χJJ[%DBJ?JEMBMEG:K@NJGENAW^NEPF;KHMBZbOGV`hY^t{kۯ}ŋɏۏΛt9 pHYs 2IDATxXkHK1]>4i:XG{%xCo{% /!x/Mn_`h k|^I,tO\zU1W6{Q ӳUm-T--юj}MhU㕯n0_%+A1}XDz.c3Yx> !$?~TYgώyۿ-^GtI]s*4?;/2Cّ?9jdtmu=^?y 㻲#8#^Vqߧ@[թ dq%e蓮&Ħ. c۟8J9dr^P`92$SaGg?H @gwh~z_:vb=@9BWZMUIa U.$TݷlBMqF;vtZh4b*$vI fCtIY"ư`dmvjvl=NpڕڪD=8j'M9UBljF GfwY~]8y<0CA#M"آ%yڵFo Gƃi޸Ei,<+쭼@7z]npHu S.+t`Z`VüwGwG{_&T7 ywx #£Oѳ,ހGwWwCXc k[ 34'2"s4zq _pslt?8ig`zwnZȽv͡O'u][Jc_y.=ШI#wx!c&˘l9l|gVU.V>.)kφ:=t[Z0㾓ߘ%Yr|[>}ko6=pdYqM#u|p6Z|R4$,;c8MГ75z8r1߮b9?ziaoQd3U za6!zXM PSAE|(ҚR"2~"9D):GEKrw_HM=C'O( 87B G7Aej88B,24wG}7d f] KCDZ€c1w<`MX`:ߣE{ێF6Ty;m z$TC(;YއU Ty TpW9+~רdn7FeGoVTպ4n 4mݞ. #k#ekBݹu4ٝr$<(Œܣ zae)+KAK~~R9??DJvwc}q dx=MAO3#{p@ 9.t] M+ac' 8l 2z/B!aVm]d_?Dwpi=_\lw)$Fp I_+a]|8)SgQE4xq 2]ʜSQn`qtiUKOaeCq)w5`Lm%tZjEkx,Y(FK{NG;``+ݎ=/I8YJnK#qY} ߐ6ˎ-/ߡ$K:~i:"v= .5=pBWSuTg9ٱž^cP7ngH[f7֨ ծF 6=;#em}5vrU3RhlK{vJVs*o^>C桷Wܧ6ӓhz&D{+dIENDB`{DyK  _Toc24366617{DyK  _Toc24366617{DyK  _Toc24366618{DyK  _Toc24366618{DyK  _Toc24366619{DyK  _Toc24366619{DyK  _Toc24366620{DyK  _Toc24366620{DyK  _Toc24366621{DyK  _Toc24366621{DyK  _Toc24366622{DyK  _Toc24366622{DyK  _Toc24366623{DyK  _Toc24366623{DyK  _Toc24366624{DyK  _Toc24366624{DyK  _Toc24366625{DyK  _Toc24366625{DyK  _Toc24366626{DyK  _Toc24366626{DyK  _Toc24366627{DyK  _Toc24366627{DyK  _Toc24366628{DyK  _Toc24366628{DyK  _Toc24366629{DyK  _Toc24366629{DyK  _Toc24366630{DyK  _Toc24366630{DyK  _Toc24366631{DyK  _Toc24366631{DyK  _Toc24366632{DyK  _Toc24366632, Dd}2EB  S A? b H~ }kґgxzr pnj H~ }kґgxzPNG  IHDR}2FP$gAMAPLTE    # !&0!&%(**,..111555#76:Q:;;?;9?@@4ABDEFFJMLPOOSSSTUIVwMXXVXXYXX\]]aWbcc-d)^dchffhiijjjmnnoobgppnppppprqrrurrsssuttwuhrvvvvwwvrywwjxxzyx}yy7{6{{{{||~||p~~~~}8}NnąG<{ؘ ͚CVKBg^χJJ[%DBJ?JEMBMEG:K@NJGENAW^NEPF;KHMBZbOGV`hY^t{kۯ}ŋɏۏΛt9 pHYs 2IDATxXkHK1]>4i:XG{%xCo{% /!x/Mn_`h k|^I,tO\zU1W6{Q ӳUm-T--юj}MhU㕯n0_%+A1}XDz.c3Yx> !$?~TYgώyۿ-^GtI]s*4?;/2Cّ?9jdtmu=^?y 㻲#8#^Vqߧ@[թ dq%e蓮&Ħ. c۟8J9dr^P`92$SaGg?H @gwh~z_:vb=@9BWZMUIa U.$TݷlBMqF;vtZh4b*$vI fCtIY"ư`dmvjvl=NpڕڪD=8j'M9UBljF GfwY~]8y<0CA#M"آ%yڵFo Gƃi޸Ei,<+쭼@7z]npHu S.+t`Z`VüwGwG{_&T7 ywx #£Oѳ,ހGwWwCXc k[ 34'2"s4zq _pslt?8ig`zwnZȽv͡O'u][Jc_y.=ШI#wx!c&˘l9l|gVU.V>.)kφ:=t[Z0㾓ߘ%Yr|[>}ko6=pdYqM#u|p6Z|R4$,;c8MГ75z8r1߮b9?ziaoQd3U za6!zXM PSAE|(ҚR"2~"9D):GEKrw_HM=C'O( 87B G7Aej88B,24wG}7d f] KCDZ€c1w<`MX`:ߣE{ێF6Ty;m z$TC(;YއU Ty TpW9+~רdn7FeGoVTպ4n 4mݞ. #k#ekBݹu4ٝr$<(Œܣ zae)+KAK~~R9??DJvwc}q dx=MAO3#{p@ 9.t] M+ac' 8l 2z/B!aVm]d_?Dwpi=_\lw)$Fp I_+a]|8)SgQE4xq 2]ʜSQn`qtiUKOaeCq)w5`Lm%tZjEkx,Y(FK{NG;``+ݎ=/I8YJnK#qY} ߐ6ˎ-/ߡ$K:~i:"v= .5=pBWSuTg9ٱž^cP7ngH[f7֨ ծF 6=;#em}5vrU3RhlK{vJVs*o^>C桷Wܧ6ӓhz&D{+dIENDB`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST_XYZ[\]^uabcdefghijklnopqrst8wxyz{|}] i@@@ Normal OJQJ^J_HaJmH sH tH @@@ Heading 1$ & F@& 5CJ aJ<@< Heading 2$ & F@&5aJ:@: Heading 3$ & F@&5\8@8 Heading 4$ & F@&CJL@L Heading 5 & F<@&56CJ\]aJR@R Heading 6 & F<@&5CJOJQJ\^JaJH@H Heading 7 & F<@&CJOJQJ^JN@N Heading 8 & F<@&6CJOJQJ]^JH @H Heading 9 $$ & F@&a$5CJaJh<A@< Default Paragraph Font4B@4 Body Text,bt\aJ:;@: List Number 3  & FaJ.U@. Hyperlink >*B*ph0@0 TOC 1 xx 5;\*@* TOC 2 ^:0@B0 Header  !aJ0 @R0 Footer  !aJ("@( Caption5\>V@q> FollowedHyperlink >*B* ph6@6 TOC 3 ^CJOJQJ^J6@6 TOC 4 ^CJOJQJ^J6@6 TOC 5 ^CJOJQJ^J6@6 TOC 6 ^CJOJQJ^J6@6 TOC 7 ^CJOJQJ^J6@6 TOC 8 ^CJOJQJ^J6@6 TOC 9 ^CJOJQJ^J0P@0 Body Text 2$a$&)@& Page NumberBC@B Body Text Indent!$h^ha$JR@"J Body Text Indent 2"$^a$aJ@T@2@ Block Text#x]^^J:Q@B: Body Text 3$x CJ^JaJ`M@R` Body Text First Indent%x`CJOJQJ\aJbN@bb Body Text First Indent 2&$x`a$ CJOJQJPS@rP Body Text Indent 3'hx^h CJ^JaJ.?@. Closing (^^J4@4 Comment Text)^JaJ L@ Date*^JJY@J Document Map+-D M OJQJ^J8[@8 E-mail Signature,^J4+@4 Endnote Text-^JaJX$@X Envelope Address!.@ &+D/^@ ^J:%@: Envelope Return/^JaJ6@6 Footnote Text0^JaJ6`@6 HTML Address1 6]^JFe@"F HTML Preformatted2OJQJ^JaJ6 @6 Index 13^`^J6 @6 Index 24^`^J6 @6 Index 35^`^J6 @6 Index 46^`^J6@6 Index 57^`^J6@6 Index 68^`^J6@6 Index 79^`^J6@6 Index 8:^`^J6@6 Index 9;p^p`^J8!@28 Index Heading< 5\^J0/@0 List=h^h`^J42@4 List 2>^`^J43@4 List 3?8^8`^J44@4 List 4@^`^J45@4 List 5A^`^J60@"6 List Bullet B & F^J:6@2: List Bullet 2 C & F^J:7@B: List Bullet 3 D & F^J:8@R: List Bullet 4 E & F^J:9@b: List Bullet 5 F & F^J>D@r> List ContinueGhx^h^JBE@B List Continue 2Hx^^JBF@B List Continue 3I8x^8^JBG@B List Continue 4Jx^^JBH@B List Continue 5Kx^^J61@6 List Number L & F^J::@: List Number 2 M & F^J:<@: List Number 4 N & F^J:=@: List Number 5 O & F^J`-@` Macro Text"P  ` @ OJQJ_HmH sH tH I@ Message HeadergQ8$d%d&d'd-DM NOPQ^8`^J0^@"0 Normal (Web)R^J:@2: Normal Indent S^^J0O@0 Note HeadingT^J8Z@R8 Plain TextUOJQJ^JaJ,K@, SalutationV^J2@@r2 Signature W^^J6J@6 SubtitleX$<@&a$^JP,@P Table of AuthoritiesY^`^JH#@H Table of FiguresZ ^` ^JF>@F Title[$<@&a$5CJ KH\^JaJ 8.@8 TOA Heading\x 5\^Jn?@ABCDEbcdefgstu+,-=@fVB  1 2 = > U V Z f l t u v w x y z { i j   L M N n o s    ! " X u v w ,-.BKLMZcde   456KLR\hijklmn()-9?GHIJKLMNOopqr>\]ijLMde`aDEFxy()56`aijvw+,-.@ABCXYZ[lmno   ;<=>?@hijklmn{|]^uv56:HRhpqv~78hi9 : 9!=!000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000a0!00w0w0w!00^0^0^!00 0 0 0 0 !00 !0  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !0  0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: 0: !0  0 0 0 0 0 0 0 0 0 >0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  0 0 0 0  0 0 0 0  0 0 0 0  0 0 0 0  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !0  000000000000000!0  0000000000000000000000!0  0B0B0B!00x!0xx0(!000000000000000(!00l0l0l0l0l0l0l0l0l0l0l0l0l0l0l(!00000000(!001010101010101(0(0(00000000000(!0000000000(!00101010101010101010101`01(!000000000000!0000!0000!0000!0000!0000!0000!0000000000000!000000!000000!000000!0000000`0!00>0>0>0>0>0>0>0>0>0>0>0> 0>0>!00F0F0F0F`0F!00u!0uu0E20E20E0E0E0E0E0E0E00000000000000000@0@0@0@0@0 0^^]]]`r7( f $<%!"#%&'()?XA ty d hl?Lpje@o ;hl^ v!!H"v"7#i$$<% $*+,-./0123456789:;<=>@ABCDEFGHIJKLMNOPQRSTUVWY;%F^`-BCbr8:;=\j ;=>@_Facdf'6QSTVu"=?@Bas3b$K,Jgq2b$V] S;*Gb$qhGykwtF0b$=IJ9udX?>y0@%0(  B S  ? z z j N 6666mrnnv=!@@  @!" < T r r l JJJ'nz=!39:!=!z:!=!333.3-9 ; } .!8!=!CTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTSVC:\WINDOWS\Application Data\Microsoft\Word\AutoRecovery save of Preliminary Report.asdCTS,C:\PerformanceTesting\Preliminary Report.docCTS&C:\PerformanceTesting\Final Report.docCTS&C:\PerformanceTesting\Final Report.docCTS&C:\PerformanceTesting\Final Report.doc|GO}hLN~$I~M~F fEh.MDCNuLlHBu2d$ h?WnAuYezB4v_6|Ct_afr#d]:X;$n/t)$p*#Wd!OA ,cJCRFd07/ d3pojCljNdsq9f}Ld\zd g:PRMtl  F BK \snQa5d6eJg d0 8t) r9xyw Y(` CzU  e) NpDdQ hdpo  Fo X&- j{H fhP) 4 0z  _ 22 ێI  j^  Q: H U @ $gJ]C_  *8s  ( > :\ey 4r&d]$ y>[v޸3nd~Є|}hw (I7 YՂ<^28XW,!R]F;N mFE_eքu X̆}JРJr:گ ); sv+# *Q0!d(i/J*!%}xN:\ <̬B YY_xee Y,kd~p ~=Є|}_RXNp nAQw - IXNr^ (b H (Iz%.'wM]G7Bv)FEf`9'?  OcH;d%`TeU5b~N :\--8rWvJ/qmg?D~xTE. HNo6 DJ,V{  X 4i4qA" NaDz AH\ 4+: 4Q !ȴh"$tex"w# M# "$"?"} $Jx_$ 3$*8$P:$W@V! %dl%h:.%(>fe%d5&$M4&+& Y6'"NX'(tQB'z5(jH19(dԍj(p!d) S)5ZSi)nAa#|)(() -)<@B)"h X)櫞?d* p+B4.)+xX+ <+pe,|}- Y&/-:~#-x)-. J.T@s. ;.${nb/ Ox/ @+k0rPN|p0l p0QE&E1 _1&/1bpIS2W'}2P1R02(\12x|3v6c)3h$L03,).32/2/41~4xW42l8vu5$ng5@96q؜X( 6Ty D6ΟbRBS6tdmy6Zh96 %6*!6 ]6hЇU7fƤ7` -7,80*x8ZhI8&k(9Ld\rM9X9ܷQ9 L89fbjJ:~8z:4Fz:΄TT ;jV( ;:\@; t< ctdZT>BnB=> 9E? w?K@hNS@D*3@RRA yAD(5B~AdB*ʆ@B,CJa4C`C66D#eC擼|CxNe(D\{ )DtWDd#D &&>E܎Qdd,gQh@#Q|}Qҫ\?Rb4PR 3>Sd;oS 5ShV-.SV0{#Txz#T&*TnAEWT}и%}}TwJTnAvTUTVx+ VT45|PVrV$Zf-XVЄ|}X5W:cW栋SX *W3X`J|Xd>)X  X8d-0XTf XB .[X @Y(8YdRYZkY o$ZvnZT[[dp[bH[2[d/[ O[x*\b>R\: 3\dK\ \ p\i\]d*$] ]0F^*x0_*MS_$_Ru_e28x_? _ Y[_0/|*`5/`B"N/-ib*d%*cMTcpЏtcxmc^:6ncz^|c0 cZ~IddddKe /f^ ZMFf 8Yfws f Y.kf@Q:-"zf [ gОBt g:ܢCh Lzi ij:`qi Tyi hj,Sj&MBk5Ck\Qk`skknA kz=~v-NlЊ3lBhX<mCevmx\&Amh8REmo^AmTƞ{m0|m -nd}n8lin`rc *%o:Kot|L(px(, q22q q@pctrCSr >IsP%P*sxexSs|$Gs@otdjMu"_zfTu@uRrh^udF)vdv vܢxl!xB!4w x^]F yBh.uydxLz`<jz +z'\|{ e{60*{TM|nA_}*0 }P]3} 5~B\T{L~ 7N~K~~:{n%~_:.k~.j<W~v|n~.v 4N Rs^`.^`.88^8`.^`. ^`OJQJo( ^`OJQJo( 88^8`OJQJo( ^`OJQJo(hh^h`. hh^h`OJQJo(^`o(.^`o(.^`o(..^`o(...^`o(^`o(.^`o(..^`o(...^`o(....*^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.P^`P@@^@`.0^`0..``^``... ^` .... ^` ..... ^` ...... `^``....... 00^0`........88^8`o(-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`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h^`.h^`.hPLP^P`L.h  ^ `.h  ^ `.hL^`L.h^`.h``^``.h0L0^0`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(-P^`Po(.@@^@`o(.0^`0o(..``^``o(... ^`o( .... ^`o( ..... ^`o( ...... `^``o(....... 0^0`o(........hh^h`o(.P8^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h^h`o(.P^`Po(..^`o(x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.@h^`.  ^ `o()h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(p^p`o(-h^`o(@@^@`o(.0^`0o(..``^``o(... ^`o( .... ^`o( ..... ^`o( ...... `^``o(....... 00^0`o(........^`o()h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h hh^h`OJQJo(88^8`OJPJQJ^Jo(-h ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo( hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hhh^h`.hh^h`o(.0^`0o(..88^8`o(... 88^8`o( .... `^``o( ..... `^``o( ...... ^`o(....... ^`o(........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(-h^`o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo( hh^h`OJQJo(hh^h`)hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.p^p`o(-h hh^h`OJQJo(88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.hh^h`o(.P8^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(......... hh^h`OJQJo(hh^h`. XX^X`OJQJo(hh^h`@OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(hh^h`CJOJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hP^`Ph@@^@`.h0^`0..h``^``... h^` .... h^` ..... h^` ...... h`^``....... h00^0`........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.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(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ``^``OJQJo(h 00^0`OJQJo(oh ^`OJQJo(  ^ `o()h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`. hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. hh^h`OJQJo(hh^h`o(.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`.^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`o()hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.p^p`o(-h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`@OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.  ^ `o()hh^h`o(.88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`.h(h^`(o(.hP^`Po(..h^`o(...hx^`xo(.... h^`o( ..... h X^ `Xo( ...... h ^ `o(....... h8 ^`8o(........ h`^``o(.........hh^h`o(hh^h`o(.0^`0o(..88^8`o(... 88^8`o( .... `^``o( ..... `^``o( ...... ^`o(....... ^`o(........h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h XX^X`OJQJo(oh ((^(`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.++^+`o(^`o(.0^`0o(..0^`0o(...   ^ `o( .... @ @ ^@ `o( ..... `^``o( ...... x`x^x``o(....... `^``o(........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(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.h^`.hL^`L.h  ^ `.hXX^X`.h(L(^(`L.h^`.h^`.hL^`L.h^h`o(A..P^`Po(A...^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.hbb^b`.h2 L2 ^2 `L.h  ^ `.h^`.hL^`L.hrr^r`.hBB^B`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`@OJQJo( XX^X`OJQJo(hh^h`@OJQJo(p^p`o(- hh^h`OJQJo(h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h^`.h^`.hPLP^P`L.h  ^ `.h  ^ `.hL^`L.h^`.h``^``.h0L0^0`L.88^8`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.hbb^b`.h2 L2 ^2 `L.h  ^ `.h^`.hL^`L.hrr^r`.hBB^B`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`.8hh^h`o(.8P8^`Po(..8^`o(..8xp^`xo(.... 8@ ^`o( ..... 8 X ^ `Xo( ...... 8 x^ `o(....... 88H^`8o(........ 8`^``o(.........h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hPLP^P`L.h  ^ `.h  ^ `.hL^`L.h^`.h``^``.h0L0^0`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hPLP^P`L.h  ^ `.h  ^ `.hL^`L.h^`.h``^``.h0L0^0`L.p^p`o(-hh^h`o(.P8^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.P^`P@@^@`.0^`0..``^``... ^` .... ^` ..... ^` ...... `^``....... 00^0`........hh^h`o(.P8^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h^`.h^`.hPLP^P`L.h  ^ `.h  ^ `.hL^`L.h^`.h``^``.h0L0^0`L.@h h^h`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o()h^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h ^`OJQJo(^`OJPJQJ^Jo(-h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.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(h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(haa^a`.h11^1`.h L ^ `L.h  ^ `.h^`.hqLq^q`L.hAA^A`.h^`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.^`o(.XPX^X`Po(..^`o(... xH ^ `xo(....   ^ `o( .....  X ^ `Xo( ...... P^`o(....... 8^`8o(........  `^ ``o(.........hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. hh^h`OJQJo(@h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`o(.88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.hh^h`)h^`.h  ^ `.h L ^ `L.hxx^x`.hHH^H`.hL^`L.h^`.h^`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`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(p^p`o(-h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(88^8`o(.^`. L ^ `L.  ^ `.xx^x`.HLH^H`L.^`.^`.L^`L.p^p`o(-h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`@OJQJo(^`o(.@ 0@ ^@ `0o(. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L.0^`0o(.00^`0o(.^`o(..`^``o(... `^``o( ....   ^ `o( ..... BB^B`o( ...... z(z^z`(o(....... ^`o(........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(^`o()h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. 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(88^8`o(-h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(oh bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........hhh^h`.XX^X`o(.0^`0o(..0^`0o(... 88^8`o( .... 88^8`o( ..... `^``o( ...... `^``o(....... `^``o(........h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( XX^X`OJQJo(hh^h`.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`@OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. XX^X`OJQJo( hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(hh^h`o(.P^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(......... hh^h`OJQJo( hh^h`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h XX^X`OJQJo(oh ((^(`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h(h^`(o(.hP^`Po(..h^`o(...hx^`xo(.... h^`o( ..... h X^ `Xo( ...... h ^ `o(....... h8 ^`8o(........ h`^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. XX^X`OJQJo(@h^`.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h^`.hTT^T`.h$ L$ ^$ `L.h  ^ `.h^`.hL^`L.hdd^d`.h44^4`.hL^`L. ^` o( ^` o(.000^0`0o(..0^`0o(...   ^ `o( ....   ^ `o( ..... `^``o( ...... p`p^p``o(.......  ` ^ ``o(........hP^`Ph@@^@`.h0^`0..h``^``... h^` .... h^` ..... h^` ...... h`^``....... h00^0`........ XX^X`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(h^`.hpp^p`.h@ L@ ^@ `L.h^`.h^`.hL^`L.h^`.hPP^P`.h L ^ `L.^`o()h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`o(.P8^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........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(h ^`OJQJo(h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hhh^h`o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.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(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h hh^h`OJQJo(h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h^`.^`o(.h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(h ^`OJQJo(h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h0^`0o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.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(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(hh^h`.h^`)h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.0^`0o(.00^`0o(.^`o(..`^``o(... `^``o( ....   ^ `o( ..... BB^B`o( ...... z(z^z`(o(....... ^`o(........h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. hh^h`OJQJo(p^p`o(-hhh^h`o(.hP^`Po(..h^`o(..hxp^`xo(.... h@ ^`o( ..... h X ^ `Xo( ...... h x^ `o(....... h8H^`8o(........ h`^``o(.........hh^h`.hh^h`.hP^`P..h ^`...hx^`x.... h^` ..... h X^ `X ...... h ^ `....... h8 ^`8........ h`^``......... 88^8`OJQJo( ^`OJQJo(o   ^ `OJQJo(   ^ `OJQJo( xx^x`OJQJo(o HH^H`OJQJo( ^`OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo(o ^`OJQJo(o pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`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( 88^8`OJQJo( ^`OJQJo(o   ^ `OJQJo(   ^ `OJQJo( xx^x`OJQJo(o HH^H`OJQJo( ^`OJQJo( ^`OJQJo(o ^`OJQJo( hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( 0^`0o(.00^`0o(.^`o(..N `N ^N ``o(... `^``o( .... VV^V`o( ..... ^`o( ...... (^`(o(....... ^`o(........hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h hh^h`OJQJo(88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h u u ^u `OJQJo(h EE^E`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. ^`OJQJo(o ^`OJQJo(o pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`OJQJo(p^p`o(- hh^h`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo( ^`OJQJo(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`)h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.88^8`o(-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(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. ^`OJQJo( ^`OJQJo(o pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`OJQJo(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.88^8`o()h ^`OJQJo(h xx^x`OJQJo(oh H H ^H `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h XX^X`OJQJo(oh ((^(`OJQJo(^`o(.  ^ `. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L.88^8`o() hh^h`OJQJo(h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(ph^`po(.^`o(..8^`8o(...@^`@o(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8^`8o(........ `P^``o(......... hh^h`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(p^p`o(-hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h XX^X`OJQJo(oh ((^(`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`@OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo( ^`OJQJo( ^`OJQJo( pp^p`OJQJo( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJQJo( ^`OJQJo( ^`OJQJo(o PP^P`OJQJo(hh^h`@OJQJo(h^`)h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.hpp^p`.h@ L@ ^@ `L.h^`.h^`.hL^`L.h^`.hPP^P`.h L ^ `L.h ^`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h XX^X`OJQJo(h ((^(`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh hh^h`OJQJo(p^p`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(......... hh^h`OJQJo(p^p`o(- hh^h`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.88^8`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.88^8`o(-h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hhh^h`.^`o(.808^8`0o(..0^`0o(... ^`o( .... ^`o( .....  ` ^ ``o( ......  ` ^ ``o(.......   ^ `o(........h ^`OJQJo(h bb^b`OJQJo(oh 2 2 ^2 `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h rr^r`OJQJo(h BB^B`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h^h`o(.P^`Po(..^`o(...x^`xo(.... ^`o( .....  X^ `Xo( ......  ^ `o(....... 8 ^`8o(........ `^``o(.........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hh^h`.@h ^ `._ _ ^_ `o(.@ 0@ ^@ `0o(..@ 0@ ^@ `0o(...   ^ `o( ....   ^ `o( ..... `^``o( ...... `^``o(....... `^``o(........h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo( hh^h`OJQJo(h^`.h  ^ `.h L ^ `L.hxx^x`.hHH^H`.hL^`L.h^`.h^`.hL^`L.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(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hh^h`.h88^8`B*OJQJo(phh ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(p^p`o(-^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L. hh^h`OJQJo(h 88^8`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(^`o(.^`.L^`L.  ^ `.XX^X`.(L(^(`L.^`.^`.L^`L.p^p`o(-P^`Po(^`o(.0^`0o(..00^0`o(... ^`o( .... PP^P`o( ..... ^`o( ...... p`p^p``o(.......   ^ `o(........  ^ `o()p^p`o(- hh^h`OJQJo( XX^X`OJQJo(h^`B*OJQJo(phh ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(-h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(p^p`o(- hh^h`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh X X ^X `OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh   ^ `OJQJo(h \ \ ^\ `OJQJo(h ,,^,`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ll^l`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(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.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`o(.P^`Po(..^`o(..xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(@h h^h`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ``^``OJQJo(h 00^0`OJQJo(oh ^`OJQJo(h ^`OJQJo(h   ^ `OJQJo(oh   ^ `OJQJo(h xx^x`OJQJo(h HH^H`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h^`.hpp^p`.h@ L@ ^@ `L.h^`.h^`.hL^`L.h^`.hPP^P`.h L ^ `L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh X X ^X `OJQJo( \ ^ `\o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.p^p`o(-p^p`o(- hh^h`OJQJo(^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L. hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`@OJQJo(h ^`OJQJo(h^`.h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`o(.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(^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`.h^`.h^`o(.h$ $ ^$ `.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(hh^h`. hh^h`OJQJo(0^`0o(.00^`0o(.  ^ `o(..`^``o(... `^``o( .... ^`o( ..... PP^P`o( ...... (^`(o(....... !!^!`o(........h ^`OJQJo(h   ^ `OJQJo(oh   ^ `OJQJo(h xx^x`OJQJo(h HH^H`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.hPP^P`.h L ^ `L.h  ^ `.h^`.hL^`L.h``^``.h00^0`.hL^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.88^8`o(-h^`o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`o( ^`OJQJo( 88^8`OJQJo( ^`OJQJo( ^`OJQJo( pp^p`OJQJo(   ^ `OJQJo( @ @ ^@ `OJQJo(   ^ `OJQJo(h^`.hbb^b`.h2 L2 ^2 `L.h  ^ `.h^`.hL^`L.hrr^r`.hBB^B`.hL^`L. XX^X`OJQJo( 88^8`OJQJo( ^`OJQJo(o   ^ `OJQJo(   ^ `OJQJo( xx^x`OJQJo(o HH^H`OJQJo( ^`OJQJo( ^`OJQJo(o ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh X X ^X `OJQJo( hh^h`OJQJo(p^p`o(-h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`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(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.h^`.h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(^`o(.  ^ `. L ^ `L.xx^x`.HH^H`.L^`L.^`.^`.L^`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo(h ^`OJQJo(h   ^ `OJQJo(oh   ^ `OJQJo(h xx^x`OJQJo(h HH^H`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. 0^`0o(.00^`0o(.^`o(..`^``o(... `^``o( ....   ^ `o( ..... BB^B`o( ...... z(z^z`(o(....... ^`o(........p^p`o(-h ^`OJQJo(h ^`OJQJo(h pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(^`o()h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.p^p`o(-p^p`o(- hh^h`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`o(.h  ^ `.\ \ ^\ `OJPJQJ^Jo(-xx^x`.HH^H`.L^`L.^`.^`.L^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJQJo(h ^`OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(p^p`o(-h^`.h^`.h L ^ `L.h\ \ ^\ `.h,,^,`.hL^`L.h^`.h^`.hlLl^l`L.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 ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`.h^`.h L ^ `L.h\ \ ^\ `.h,,^,`.hL^`L.h^`.h^`.hlLl^l`L.88^8`o(-hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hh^h`o(.P8^`Po(..^`o(...xp^`xo(.... @ ^`o( .....  X ^ `Xo( ......  x^ `o(....... 8H^`8o(........ `^``o(.........0^`0o(.^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. hh^h`OJQJo(h ^`OJQJo(h TT^T`OJQJo(oh $ $ ^$ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h dd^d`OJQJo(h 44^4`OJQJo(oh ^`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ``^``OJQJo(h 00^0`OJQJo(oh ^`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.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(h ^`OJQJo(h xx^x`OJQJo(oh H H ^H `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h XX^X`OJQJo(oh ((^(`OJQJo(hh^h`.hh^h`. ^`OJQJo(pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.~x_$BKNH[^hP) #cJ1i Gy J(!K5(;oSzfTug5skkrgGJT$|?W&*TX+SX<jzI 4NB=>Si) ,V{ 5~OM]d:z [ g@J|n~XW4[@+k0 Xsq9d *%oRY|}Q c+zW~yAuY]6'}2z#T%}}TS)IS2_ j(TE. }k(9X5W@;I-V.kfLz:-7R028Yf;.0 }0 })0 0 }h)0 \?RzB#Ty D6-)*Oct<ZT>\?R)0 d(Ia#|)967N~4 q_e V*0 V*0 V(*0 V<*0Q: rZ_G qX( 6%`g/o$Z3l3l3lP*0 3l3l*0 `C`C*0 Lzi/f?d*rjNI4v-Nl%6/`|p0w xd$ `C`C4+0 *Q*Q+0 *Q/0 03in*Q30 *Q70 !OAd,gQ='gMREmp[p[;0 p+7Kob.GmCRvT_1 \huFM#/2/4}|K\*`&/-uMBk(` trrM99(}y;N} $6eB,C? z%.}nI8c)39E?m<<0 =-XV~n/ T ;sF^)Fg:K~~rR]L=jJ:-.SRBS6 <0_]3}M4&hwHh"pe,dpo 5S5ST@0`@0@0*W3X*W3X,A0A0)$)$A0@B03\^u3n-n! %WDN\i\]gh@>a5F)v[Idotdfe%8YhjD~ E[[Y_,kr9uyu>Q;vm.)+\12O[#-3>S5M4zU Kenb//[*$]~pNEz X'*c FGs<Sr)XTyi:Kw#[XeY=9@s.a`OB0j^ #D|mAkY/eyvC_ &E1ZMFfN(5B\|{l!x@B)J.%*8s mc|36'qqM`PXF?Go6 Ox/qivu5 XPRX) "$0GKjtcCh)8x_!d);)-."zfWvEWT @ 96\ }=iu-Q).3B08{H *I( ;jMuXNHjOAm{L~nZ%~e) 3@MGw?\&AmMS_xLz0*{P*s  l%`90 JLQB'5&|c{m] )DK@()@;i/~hL|PV3$~}xN/1Mtl@#Q- X<mU5t<*\@YG7Bt gw5Ck!6Byw+& _0R_Ns feeXQOMTcI7}-e{,!$!QL89>Is]F y#eC&- S@Ru_8z:-0XFo J.p0afTVU7dpo J|XSsDdQ [F8&&>EQ777""",L L@L   @@@L+0 h^h`o(A.(,0!P^`Po(A...,0"^`o(...,0#xp^`xo(....X-0$ @ ^`o( .....-0%  X ^ `Xo( ......4.0&  x^ `o(........0' 8H^`8o(........ /0( `^``o(........./0 h^h`o(A.D00!P^`Po(A...00"^`o(... 10#xp^`xo(....t10$ @ ^`o( .....10%  X ^ `Xo( ......P20&  x^ `o(.......20' 8H^`8o(........<30( `^``o(.........40 h^h`o(A..d40!P^`Po(A...40"^`o(...,50#xp^`xo(....50$ @ ^`o( .....60%  X ^ `Xo( ......p60&  x^ `o(.......60' 8H^`8o(........\70( `^``o(.........$80 hh^h`o(|80!P^`Po(A...80"^`o(...D90#xp^`xo(....90$ @ ^`o( .....:0%  X ^ `Xo( ......:0&  x^ `o(.......:0' 8H^`8o(........t;0( `^``o(.........,<0 h^h`o(.<0!P^`Po(..D=0"^`o(...=0#x^`xo(....>0$ ^`o( .....|>0%  X^ `Xo( ......>0&  ^ `o(.......`?0' 8 ^`8o(........?0( `^``o(.........l@0 @h ^`OJQJo(@0 @h^`CJ OJQJo(n8A0 b@h ^ `.A0 2@h 8^8`OJQJo(A0 e@h^`.LB0 @h h^h`OJQJo(B0 @CJOJQJo(8C0 @h 8^8`OJQJo(         8< ~j@                                                                                        :                                                                       Xn ]                                                           4                          R        88>                                                                       4-                 U                                                                               X>                           <Ƅ                                                                               R                                            D_                                                                                                                    jd                                                                                                                      2n                         R                                   o~f                                                                                                                                               c                          ,8                                   H                                            R         $d"p                                                                    ?@hijkl6:HRhpqv~; D L R _ i j k l m n w x =!@H@{exJ@g4>7[El.Nd&VCobrv^#raRgbz -ۖ _"x[mމ&MB(##_xB 9Yy$$୭a.VG<'H$HC!qᕊN 5mvVrm/ҽ!Vgx< Mw#L^2:}햼6W< hO=}5fH 0̥p8Qe,cVzљ)*Ե,Aw2V; {hrzǒ`"̆X/r.-*b/zaR;nMiKm`1,8uc)v .+\]EF^+Wjm7XJM;գ/°F܅7J: 2n!^{/zVVˍ]eR1'rHVр@^ f=a`4ch| yZ?7BtG6LQС6_zu>{#4 =Z{M,PviVMY CC6Ը.wԗq?hW?Q5PrH׸wPȎ.,W3(T jv>WKp}|Sl{5xweV΃.wѴLr/_F qh\}4vK{^bo0l  EsBӮU`wwj5W{Ga}sP<!V/ȳkH7 f=ї=~j*:oõ zL&iR9w9 ՗6Nϟaqz^Oq`Cx->ه,.\>c!-vVR=E@BY$z +F<{kE|N2ᠷHM,_l6q6?F@;N{ GAPr;,gCdl6<Ҳ!md`JnsYu -N فL./Pt^?woi :i߆@鳝=#.mV8, ?ZOLU; t\q'gQрL_'vqclDF081l{*Y-4eRq^t 1?Iݚ\;sg\)v2-{v;ѹgɬff0[?clpvJ vkӥ/=w?]>;ޣ>31}>[z&xIENDB`Oh+'0T    (4<DLssMS5369S53 Normal.dotMS5369d253Microsoft Word 8.0@@V?LR@V?LRDocumentSummaryInformation8vWordDocumentSummaryInformation(DocumentSummaryInformation8՜.+,D՜.+,, hp|  CTSj  Title 6> _PID_GUIDAN{E1DBAEE2-BE32-11D4-B6E3-0002A519DF6F}1M <%bjbj== WW^ld @ @ @@\A*Bh>ELEEE1ILNmoooooo$* JN-I1INNWOEE:WOWOWON"EEmWONmWOWOU1lK9EB অ݊) @N:%H*"(NjWO Performance Test Final Report  EMBED Word.Picture.8   PREPARED BY  REVIEWED BY  APPROVED BY  NAME  ROLE  SIGNATURE  DATE Approved and Issued By: Form No. : Date: Table of Contents  TOC \o "1-2" \h \z  HYPERLINK \l "_Toc24366617" 1 Introduction  PAGEREF _Toc24366617 \h 2  HYPERLINK \l "_Toc24366618" 2 Performance Test Objectives  PAGEREF _Toc24366618 \h 2  HYPERLINK \l "_Toc24366619" 3 References  PAGEREF _Toc24366619 \h 2  HYPERLINK \l "_Toc24366620" 4 Test Setup  PAGEREF _Toc24366620 \h 2  HYPERLINK \l "_Toc24366621" 4.1 Hardware Configuration  PAGEREF _Toc24366621 \h 2  HYPERLINK \l "_Toc24366622" 4.2 Software Configuration  PAGEREF _Toc24366622 \h 2  HYPERLINK \l "_Toc24366623" 4.3 Load Runner / Webload Settings  PAGEREF _Toc24366623 \h 3  HYPERLINK \l "_Toc24366624" 4.4 List of Transactions  PAGEREF _Toc24366624 \h 3  HYPERLINK \l "_Toc24366625" 4.5 Load Generator Machines Configuration  PAGEREF _Toc24366625 \h 4  HYPERLINK \l "_Toc24366626" 4.6 Test Procedure  PAGEREF _Toc24366626 \h 4  HYPERLINK \l "_Toc24366627" 5 Test Results  PAGEREF _Toc24366627 \h 4  HYPERLINK \l "_Toc24366628" 5.1 Scenario1  PAGEREF _Toc24366628 \h 4  HYPERLINK \l "_Toc24366629" 6 Key Findings  PAGEREF _Toc24366629 \h 8  HYPERLINK \l "_Toc24366630" 7 Recommendations  PAGEREF _Toc24366630 \h 8  HYPERLINK \l "_Toc24366631" 8 Appendix  PAGEREF _Toc24366631 \h 9  HYPERLINK \l "_Toc24366632" 8.1 Transaction Traversal Summary  PAGEREF _Toc24366632 \h 9  Introduction Cognizant Technology Solutions engaged E-Test labs to evaluate and tune the performance of their application. the performance testing team to evaluate and tune their application performance. This report presents the summary of the findings and recommendation results of the performance test runs conducted on the on . The findings and recommendations of the performance testing team are presented under Section 4. Performance Test Objectives The objective of the load test was to study the stability and scalability of the under a simulated load of concurrent virtual users connecting at LAN (100 Mbps) speed. Identify performance bottlenecks, if any, in the application components under the given load condition. References Test Plan Document. Transaction Traversal Document Performance Test Report1 Test Setup Hardware Configuration SNOServer TypeUnitsDetails In Server Type Column mention the server that is being used. In Units Column mention the number of servers used. In Details Column mention the Make, Model, CPU (including processor speed), Memory, Hard disk for the server mentioned. Software Configuration SNOServer TypeUnitsDetails In Server Type Column mention the server that is being used. In Units Column mention the number of servers used. In Details Column mention the OS with version. Load Runner / Webload Settings SnoDescriptionValueMaximum iteration countThink time between iterationsClient side loggingThink time replay modeConnection speedLANNetwork buffer sizeNumber of concurrent sockets for each http connection4(typical browser emulation)Connection timeout120 secsReceive timeout120 secsHttp VersionHttp1.0Custom User AgentMozilla/4.0(Compatible; MISIE 5.0; Win 32)(Common agent for IE5.0 and Netscape4.6)Client side cachingDisabledHtml parsingDisabledDownload non-html resources optionEnabledHttp keep aliveEnabledDNS cachingEnabledReset context between iterationsEnabledTraffic through proxyDisabledEach virtual userRunning as a thread List of Transactions S NO.Trans Id.Description In the Trans Id. Column mention the Transaction Id as mentioned in the scripts In the Description Column mention the transaction description. Load Generator Machines Configuration SNOServer TypeUnitsDetails In Server Type Column specify the Load Generators, Controller and the servers that are used for monitoring. In Units Column mention the number of Server Type used. In Details Column mention the Make, Model, CPU (including processor speed), Memory, Hard disk for the server mentioned. Test Procedure Virtual users were scripted to perform the transactions mentioned in Section 4.4. Specify how the load is going to be increased and as the load is reached for what time the level was maintained. Probes and server monitors were used to collect performance metrics for the entire test duration. Test Results Scenario1 Scenario Mix SnoTransaction NameMix Percentage In the transaction Name Column mention the name of the transaction In the Mix Percentage Column mention the mix the particular transaction is going to handle. Client Side Statistics This section includes the statistics as observed from the load generating clients. It gives a picture of how the application performed as observed from the client end. Description The graph that depicts the throughput and hits per second (HPS) plotted with load as the test progressed. Fig 1 Client Side Statistics Observation Small description of the graph mentioned above. Server Side Statistics This section includes the performance statistics on the server. It gives a picture of how the server performed at different load conditions. Description The graphs that depict the overall CPU usage, Run queue length and memory usage on the server. Web Application Server CPU Statistics Fig 2 Web Application Server CPU Statistics Observation Small description of the chart that is mentioned above. Web - Application Server Memory Statistics Fig 3 Web Application Server Memory Statistics Observation Small description of the graph mentioned. Database Server CPU Statistics Fig 4 Database Server CPU Statistics Observation Small description of the graph mentioned. Database Server Memory Statistics Fig 5 Database Server Memory Statistics Observation Small description of the chart. Oracle Database Server Statistics This section includes performance statistics of the Oracle database server. Description The following table shows the instance efficiency percentages and top wait events of Oracle. S. No.ParameterValueBuffer Nowait RatioBuffer Hit RatioLibrary Hit RatioRedo NoWait RatioIn-memory Sort RatioSoft Parse RatioLatch Hit Ratio S. No.Wait EventWaitsTime (cs)% Total Wt Timedirect path write direct path read latch free log file parallel write  Key Findings Mention the key findings for the test run being conducted like For how much users the HPS was rising. The average response Time for the transactions. At what number of users did the application servers CPU reached 100% The memory utilization in the Application server, database server. When the number of jdbc connections on the Weblogic and ATG Dynamo application servers were increased in the dedicated server configuration of Oracle the processes parameter has to proportionally incremented. Recommendations Appendix Transaction Traversal Summary Following are the transactions with screen navigation details identified for the Performance test Run. SNOUser ActivityForm DataThink Time in SecondsRemarksT1P9AccountAll5Sufficient records needs to be inserted for all the user accounts. In SNO Column specify the transaction name. In User Activity Column specify the user action to be simulated. In Form Data Column specify the user input data In Think Time in Seconds Column specify the wait time In Remarks Column specify the description of users action .  EMBED Word.Picture.8  Controlled Copy Test Summary Report Proj. IDSCI. IDS.No.Doc. VersionForm No. w.e.f. Page page 1 of  NUMPAGES 10 For Private and Confidential use of Times Internet Limited Page  PAGE 9 ;=FG^_aef+-.BCDE`abcdeqrrjmHnHu$5;CJOJQJ\^JmHnHu0JaJ mHnHu&j, >*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHu; j;U 5CJ\5CJ55CJ56j= UVmHnHu jUCJ 5CJ \5CJ5CJ ).;<=>?@A3$($&#$$d%d&d'd+Dq/NOPQa$3$($&#$$d%d&d'd+Dq/NOPQa$#;%ABCDEbcdefgstu $$Ifa$$If3$($&#$$d%d&d'd+Dq/NOPQa${,uuuuuu$If$$Ifl\tZ2%    (%4 la{,uuuuuu$If$$Ifl\tZ2%    (%4 la{@uuuuuu$If$$Ifl\tZ2%    !!!!(%4 la{,uuuuuu$If$$Ifl\tZ2%    (%4 la+,-={ywuppwwiiii # $a$$$Ifl\tZ2%    !!!!(%4 la rs 7неБнеoБ&j>*B*UmHnHphujUmHnHu0JaJ mHnHu&j">*B*UmHnHphu mHnHu0JmHnHu$5;CJOJQJ\^JmHnHuj0JUmHnHuj UmHnHumHnHujUmHnHu&789:;<=>?Z[\]^_ijkѾѶђބѾѶpѶ`:CJOJQJ^JmHnHu&j>*B*UmHnHphujUmHnHu0JaJ mHnHu&j>*B*UmHnHphu mHnHu0JmHnHu$5;CJOJQJ\^JmHnHuj0JUmHnHumHnHujUmHnHujUmHnHu$  !:;<=>?@AB]^_`cdѹѹޑѹ}ѹojkUmHnHu&j>*B*UmHnHphujuUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHu:CJOJQJ^JmHnHuj0JUmHnHumHnHujUmHnHujUmHnHu+@f V B $a$$a$ #  #  EFG`abcdefgh|h&j>*B*UmHnHphujWUmHnHu&j>*B*UmHnHphujaUmHnHujUmHnHumHnHu:CJOJQJ^JmHnHuj0JUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHu(       % & ' ( ӹ󕂕t`&j>*B*UmHnHphujCUmHnHu$5;CJOJQJ\^JmHnHu0JaJ mHnHu&j>*B*UmHnHphu mHnHujMUmHnHujUmHnHumHnHu:CJOJQJ^JmHnHu0JmHnHuj0JUmHnHu%( + , 5 6 7 P Q R S T U V W X s t u v w x ӸsӸ_&j>*B*UmHnHphuj/UmHnHu$5;CJOJQJ\^JmHnHu0JaJ mHnHu&j>*B*UmHnHphu mHnHuj0JUmHnHuj9UmHnHujUmHnHumHnHu:CJOJQJ^JmHnHu0JmHnHu%       ! " # < = > ? @ A B C D _ ` a b e f ϴۄϴp`:CJOJQJ^JmHnHu&j>*B*UmHnHphujUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHuj%UmHnHujUmHnHumHnHu0JaJ mHnHu$5;CJOJQJ\^JmHnHu%f - ~ =>Vuvz|o5LRijklmo)HJKLȸ;aJ\ 5\aJ^JaJaJ 5\aJaJ cHdhi&5\ j;U:CJOJQJ^JmHnHuj0JUmHnHujUmHnHujUmHnHumHnHu0JmHnHu6 12=>UVZflt $$Ifa$$a$$ & Fa$ tuvwxyQC::: $$Ifa$ $ !$Ifa$$$Ifl4\WH  8p (064 layz{ijljjjjjaj_j$^a$$$Ifl\WH  8p064 la H: $ !$Ifa$$$Ifl4\WH  8p (064 la $$Ifa$ca____$$Ifl@\WH  8p064 la $$Ifa$ LMNnosOl$$IflFR,"f 06    4 laP $$7$8$H$Ifa$$^a$ WIW\> & F$7$8$H$If$$Ifl FR,"f 06    4 laP $7$8$H$If !$7$8$H$If & F$7$8$H$If fhf\$$Ifl FR,"f 06    4 laP $7$8$H$If & F$7$8$H$If    !"Xuvw\qffTqffxqf $7$8$H$If & F$7$8$H$If$$Ifl FR,"f 06    4 laP tlft\ftf & F$7$8$H$If$$Ifl FR,"f 06    4 laP $7$8$H$If ,-.BKLMZcdt|ft`ft & F$7$8$H$If$$Ifl FR,"f 06    4 laP $7$8$H$If defhfX$$Ifl FR,"f 06    4 laP $7$8$H$If & F$7$8$H$If    qffqffqf $7$8$H$If & F$7$8$H$If$$Ifl FR,"f 06    4 laP 456KLR\htrpn`WW $$Ifa$ $ !$Ifa$$$Ifl FR,"f 06    4 laP $7$8$H$Ifhijklh^XM  !$If$If h$If^h$$Ifl4LF 8 06    4 lalmn()-9?}}}}}{y}ppp $$Ifa$$$Ifl F 806    4 la ?GHIJKLH==7=$If  !$If$$Ifl4\WH  8p (064 la $$Ifa$LMNOopljjjdddd^d^`$$Ifl@\WH  8p064 la pqr $7$8$H$If@^@$a$`la[[$If  !$If$$IflFdT<N 06    4 la>\]ij}}ww}uommmm !^$$IflhFdT<N06    4 la \h`a)5iu v!!!!!!6"q""""#######9$;$x$}$~$$$$$$5B*mHnHphuj5B*Uph 5B*ph jUj= UVmHnHu jU\OJQJ Hhi& Hhi& cHdhi& Hhi&5\5OJQJ^J5aJ:jLMdemmmmmmkCEƀbGEƀb`^ e`aiiCEƀbGEƀb^^ DEFxyupppuuu & FGEƀb^CEƀb rpnF$Eƀba$GEƀb^()56`auusuGEƀb^CEƀb ussGEƀb^CEƀbijvw$IfF$Eƀba$ g\UOO$If & F$If^`$$IflF<$ 06    4 la+,-.@|Pjdd|Tjdd|Tjd$If & F$If^`$$IflhF<$ 06    4 la @ABCXYZ[lmnov`dvPdvLd & F$If^`$$IflhF<$ 06    4 la$If ovtt$$IflhF<$ 06    4 la$If 4"$If & F$If^`$$Ifl4r < A8 20p64 la N< & F$If^`$$Iflhr < A80p64 la$If   ;N< & F$If^`$$Iflhr < A80p64 la$If;<=>?@hN< & F$If^`$$Iflhr < A80p64 la$IfhijklN$$Iflhr < A80p64 la$Iflmn{|  ] ^ ^CEƀb ^ u!v!r+&$a$F & FEƀi& CEƀi&JhdhEƀb^hv!!!!!kkM$hdhEƀi&^ha$DC$Eƀi&!!!!!!!5"6":"H"pnljldd^^$If2^F$Eƀi&a$I$dhEƀi&a$ H"R"h"p"q"v"4\$$Ifl4rL] *,"t D 20"4 la$Ifv"~""""""""7#VTTTT$$IflrL] *,"t D 0"4 la$If 7#8#h#i########9$:$;$D$L$R$_$i$ $$Ifa$  Z&dP]^`Z !F2i$j$k$l$m$n$w$x$$\8SSSSS\I $ !F2a$ $$Ifa$$$Iflr" xF%rbl04 la$$$$$$$$$$.%/%5%6%7%8%<%CJmHnHu jCJUCJ56CJ\] 6CJ]0J mHnHu0J j0J U$$$9%:%;%<% !F2k 0&P+p,p-p.p/R / =!"#$%4567o0&PP+p,p-p.p/R / =!["#$%4567o 0+p,p-p.p1h/R / =!"#+ $%4567o 0+p,p-p.p1h/R / =!"#+ $%4567l+p,p-p.p1h/R / =!"#+ $%4567h+p,p-p.p1h/R / =!"#$%4567D ` l x 1GM Cards - Performance Testing Executive SummaryanM CIndira BalakrishnanndindiNormalBCTS4SMicrosoft Word 9.0@F#@fP@d@`ƊF ՜.+,D՜.+,|8 hp    #Cognizant Technology Solutions Ltd8 D  1GM Cards - Performance Testing Executive Summary TitleL 8@ _PID_HLINKSA`4_ _Toc243666324Y _Toc243666314S _Toc243666305M _Toc243666295G _Toc243666285A _Toc243666275; _Toc2436662655 _Toc243666255/ _Toc243666245) _Toc243666235# _Toc243666225 _Toc243666215 _Toc243666206 _Toc243666196  _Toc243666186 _Toc24366617Oh+'0$ 4@ ` l x Testing Methodology Functional Testing MethodologyCognizant UserNormalKAGTECH7Microsof      !"#$%&'()*+,-./01234567:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0t4ࢢf рIyE%0#`\dN+B (pt4"s`^hEE +0@G.*J(\aF@930NF(:h83 ;v0E@?!\+Gd c@tԑxa1࢕lo<%U6`G?WTZCՊIS"dA;2j@@^_5d>A@+ ef )0 JRwAuPIZ27uFQ1>iXgnW"8&SLC5m` 2U֏f,RL7-/FyXŦԘ5[~~g0s,ڱIFUYtԌ.Ԛp(kL#jH9*+4sjݑ=XYėFp4טucZ+y݃94H*/(:+jx*;$v" J5@hIt[IЎMkm#vxv Js'Qfӏ)6џEłi" D{=le_Й߂yore,8.̨bZs,ԫxL|Y!@֡ Pbۿ)]Crocy)@YLkY8ńRB 9Ae|-Q1~=d Sl t(Ԙ0=sA.q3 MFrt,)%fDrseL eF &X2 @z[ ]W԰ , #BO Y] 3.Д+ Au 0'FT|-_S;@`jħ΃0@2ߓ8#%~oa, @䪫0 h/=@ Ɗ؜krrad @uݨn.qJG]+`GzT4#- Hi8k A c {X!@SqJ9Ĺ$B McN;띓b‚'\5r_]aVfO0>-1bz!^5Mؑ1Zy9Ti:4˚#dIn+VC:DlW>KZR; [.rL?c5j-S?:#<*N~YqZN ~K=W(F %xɨqobnpDOF#ڊQuHex]1shJIӤ_my)Z<}/H H?M9@x/L:NU%)7|Y= @1&Dh;P #ORpy(98Dۊx IAhafX`}7JY`ILL@+nHr ?GG۸ / 13SPcaG0(;A(DA8r K0ELAO_2SټH2z=+1ELA}O(;=qbܵOmJj%Y2p^sߒ`V{ YY3߿wxWLػw7ʠhP'wM :M_h~z^|1?V)a[GlSŌNxPLTh<4~$d'12t+Me;+YccdyՒ+H&PK)T&s:&n<^⇲b#Br}IE P2 Ԥ*2);=bkn_q'PWC1OkF4@$I%yVSLpJ7#feAŜW:S} 7콓'17$֔/تYY=A1AU9GbA1lż)&>8,ߠ(F+5{@1ϷQ N /9sF.w7̤}:DRad/?Ml@1:ϫq9矻BIf &Txy&mpf(F7uz4P1Nx6 )f{&O $*ax (F'?y%9Y''ǿcC% * XkG2LJ3, iA@B1^g1Ou?z6-T; }:q΀RLٟ+Ybg'pITj$9PvjobxRcn+} gطw$U2bxw<(F #1J16q51G=#B1PMJy @1Rܳ9.dP #=>(ZNx͎ưl(f*B@1$j(@1P ;ɦb"4{0P Nb Űl(f*B@1$j(@1P ;ɦb"4{0P Nb Űl(f*B@1$j(@1P ;ɦb"4{0P Nb Űl(f*B@1$j(@1P ;ɦb"4{0P NxP6*@ emc8_IENDB`$$If!vh5 5 #v #v :V l 6`$0    ,"5 5 /  /  /  / a$$If!vh5 5 #v #v :V l 6`$0    ,"5 5 /  /  / /  a$$If!vh5 5 #v #v :V l 6`$0    ,"5 5 /  /  / /  a$$If!vh5 5 #v #v :V l 6`$0    ,"5 5 /  /  / /  aDd#LD  3 @@"?DyK www.betasoft.comyK 2http://www.betasoft.com/$$If!vh555555555 5 5 5 5 5 555#v#v#v#v#v#v#v#v#v #v #v #v #v #v #v#v:V l4 0)v555555555 5 5 5 5 5 55/ 4af4kdĐ$$Ifl4 z l_D7!#                0DDDD4 laf4$$If!vh555555555 5 5 5 5 5 555#v#v#v#v#v#v#v#v#v #v #v #v #v #v #v#v:V l0555555555 5 5 5 5 5 554akdѕ$$Iflz l_D7!#0DDDD4 la$$If!vh555555555 5 5 5 5 5 555#v#v#v#v#v#v#v#v#v #v #v #v #v #v #v#v:V l0555555555 5 5 5 5 5 554akd$$Iflz l_D7!#0DDDD4 la$$If!vh555555555 5 5 5 5 5 555#v#v#v#v#v#v#v#v#v #v #v #v #v #v #v#v:V l0555555555 5 5 5 5 5 554akd$$Iflz l_D7!#0DDDD4 la$$If!vh555555555 5 5 5 5 5 555#v#v#v#v#v#v#v#v#v #v #v #v #v #v #v#v:V l0555555555 5 5 5 5 5 554akd$$Iflz l_D7!#0DDDD4 la$$If!vh555555555 5 5 5 5 5 555#v#v#v#v#v#v#v#v#v #v #v #v #v #v #v#v:V l0555555555 5 5 5 5 5 554akd$$Iflz l_D7!#0DDDD4 la$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If!vh55H#v#vH:V l0655H4a$$If<!vh55\ #v#v\ :V l0655\ 4a<$$If<!vh55\ #v#v\ :V l0655\ 4a<$$If<!vh55\ #v#v\ :V l0655\ 4a<$$Ifl!vh5 5#v #v:V l 0t"5 5/ 4alp$$Ifl!vh5 5#v #v:V l0t"5 5/ 4al$$Ifl!vh5 5#v #v:V l 0t"5 5/ 4alpyDd 6  3 A?2":#`K7I`!":#`K7fBxP xڵWKo@u UH18jNJ9Jԋ/ Kݺ BH9r'qpA2~l&رYK`( h;JQFp"PJYFXv~77O)`1w?\Jߔ׵:#G(@Q-۰:x\ڲ m9ۅFs,~s2U#Xfq~2Ee b,ÿrj#(ßgt6f2KXzK@9ʁBߞS!imKR"t3x屁}iSug ww0b l~0>'ϠG!;j;Y2{]aJgkeBg[^0'~Ѓ_GӃ{}xz:M9݉0B: YxͷW@^ov}UvA<ꗮ7Q- h1ZXX$$Ifl!vh5 5#v #v:V l40t"5 5/ 4alf4$$Ifl!vh5 5#v #v:V l4 0t"5 5/ 4alp$$Ifl!vh5 5#v #v:V l40t"5 54al$$Ifl!vh55#v#v:V l44 0t"55/ 4alf4p{Dd J  C A? "2_IEuQ$m+=be`!_IEuQ$m+=befBxP xڵWo0~NI؁c)кDlRlHL%6J3E!9'q4 4b;<%?6j6 xZ #\Rm_o.^ x\ <,NPY}L K8RxPHQ5[q:xRڲ SXsN/ 0ijgiDc+G S92?)N_3lE>&J]P?:KR|uSkdÿPęoI:&Q(Jqu)N4 a 3*g ыDMf)wgS$Qa2şc]L&>LCHPI#@1rv) 4[t,:KT?)V]]^?oe ee0>ڦaDjNc yӆ#z6|xb5 b+=wB >.6{k;_8ӽ?z̐R%}sgSB<n #bx:8xkw&Yx9p™Lܙ i:V=o̓iVoYǝ?{= uњ$$Ifl!vh55#v#v:V l44s0t"554alf4$$Ifl!vh5 5#v #v:V l 0t"5 5/ 4alp$$Ifl!vh5 5#v #v:V l0t"5 54al$$Ifl!vh55#v#v:V l 0t"55/ 4alpfDd 6  3 A?2ǰCn 5`!ǰCn fBxP ~xڵWKo@uJ6\8"!. 55'hhT+qR+UA)G$N.H@]ƻ~Տس'ovv%2x{%+C(Rз  O]<|Ks'xǾE&}M8>@h1IrMGm9.4œg%B)POe'8}ϰ1~}'̟wA_eWn(|.L&֩ e,/@@6'Tav&W,"2yvoEiITɱ.?[r L&<\@%lچ'K_fwhW߲g[arH}K _]Ik_R >9;]퇸OLr=T#Q~o޹hT1^v[9 Zycke_Ϝ.9WmSBD F1\Sӳewlz֞ʙ{dr/o4]^o|U5?Wqg6v}dA;hMZ?bߓZ$$Ifl!vh55#v#v:V l0t"554al$$Ifl!vh5 5#v #v:V l 0t"5 5/ 4alp$$Ifl!vh5 5#v #v:V l0t"5 54al$$Ifl!vh55#v#v:V l 0t"55/ 4alpeDd 0  # A2Q{ k"E/Ll}`!Q{ k"E/LlfBxP xڵWKo@u  8p EB\R9jjNJ9ԋ/ Kn BH9r'qpA2~l֎{c'ήZ/ڀvDCe," E{[a'|.W/5Ph1݆cIjVMsz]h97K?H#X8VLȱO?VǸ ?Dm bGYV xrdWjb9K-_BB j-z*4 QQg U/!E/&g7VƟ' ߝMD%R$l"/*d UA|Fy-~O*..+ݷˀʟE_%EX+SF~Y,!ރ(~Mk>w0f윙Υ[Pxށ'xl03^X;s/Vdܸv[ ~37'Scpug;L=ukgg.k||{jధz=u;' Ak b'aDd 0  # A2?IYm%h6<9`!?IYm%h6<fBxP xڵWKo@u UJ.CWNyR$h%@KT!98{ UuU?6czdٵ&@ڀvѶ23RʢM- BA+ "󱯑 :{~)k!uG$P$<ZLAu+U&QsN/ 0YfiDcG S92Rg؊>MTϻ Ư?2+R|eSKd&ÿTYoi2 GmPkqi0;R~ z<ͷ"4?Vl$*?[fX-DP&gAPCHhDc6mC%/3;4ʫfo~R9xXuqYyᄉ%T_/W.M/)Z͜ܧMs?CQ ּ?` yk~p?܇m p2N~;sRd^xuKv3=7N'7|nOͥ:ݱ4WsҘ89[E홦ÞvjھG~pj\ƎZ,h)CJ$$Ifl!vh55#v#v:V l0t"554al$$Ifl!vh5 5#v #v:V l4 &&0t"5 5/ 4alf4p&&$$Ifl!vh5 5#v #v:V l40t"5 54alf4$$Ifl!vh55#v#v:V l 0t"55/ 4alpsDd 0  # A2?[BfaZǐ`!?[BfaZǐfBxP xڵWMo@u UJP$%ũPSs"-^|WXr5*Bʑ#? R%P?Y;aY۷&@m:GojqEDh{}qko_hSxb2 o :E~#ߌj1έ#G)@Hӭq̦mX]R*MCZ-,;+N+F'0xeNgl:c+pikhޥwe`_^F{xiw:v@?nntqxj^yAa6ԣlPc3.$$Ifl!vh55#v#v:V l0t"554al$$Ifl!vh5 5#v #v:V l4 &&0t"5 5/ 4alf4p&&$$Ifl!vh5 5#v #v:V l40t"5 54alf4$$Ifl!vh55#v#v:V l 0t"55/ 4alpbDd 0  # A2,=\#k`!,=\#kfBxP xڵWKo@uJ6H 1 qqT9G#@+R/BF!98{ UuU?6czxٵ@.ۀv}e Rʢ=.!`u ߠoxbطIߔ׵6#G(@Q-۠3A <*GmӄԶǜB#9xY~*đETFLIW [q~yGYV xrdjb: -_ j+z"N5 aagrUϏ!A/"g7Vğf ߝMDg %l"*` TAw0f%5;Lނx:Xc=!L앹쾶֎͝CtmsBLF/1Xlgigs,[Y׎@j`љ6^7¨<j[saYcBw`e.K`saM=ے=.짯U; ߅6ێzy ,AmnjfmUl{8j45WmlwNTTkmͰ=&ޒHtR݊F0:Z"y'Z`I.dNdL 4 ,!_OqX Cjk7+cܟu'Ei?u_Ā!)'},tƗ|KYf(o}pQe>R^bV# Vl_aa6V,?'Mw0֑c'B!oiI6!!q'ʤ w )(##R=>-+IlsDB̧xGۘW$ښ&ܨKME"Sbj9K'DZ ~eQ7\x ;bwws6tRER hi2xZNecG]R}Aa&a&55 f},SݳN1~owx0qDwQkf]Lfc]̙P V^v_"Nu[NWGإN.<#-V*(=lju\'Rɼrgm5)nezܾ_m`|N@sIZ=;ZEk}G;06'aPγTck 6NUW&3\wϽ0]J,ey&594`Ll.?~uXsq[Yq津vJqOjͥ)uɉ6L9¦ oj&M6w5;yA[eN* &*Dn DBTF\ LE(٘@YP]1( % ~~8ؼ!;'x`%vqY8-A7AG&HӔ0EI KwDA8&h@#xTs`RSr?!)KSJ؍* 7_S+wGS8lBudKǽNܑn\_m샶/\ɽ؁W7٧DX )Uޠ `@g#߅b$hͱicFЄY̙'l%}@I!nr cVQ$CzBAĚ/v<=;@e<E5"s.0R7KAy ב+\O#[k!˛V zYػoҨNoϸ.a$%[g5A+2%^"@ 5˱N막Sǩ6s 4vO[HM>KkDaI)Qߜ8S^FX.g\ұa)+ j9;OlbZV $vR!2N@=1v2H@*?7hP hN}yHQ -ʅF,<怯 6)\9cGzg:+3`Zl]| 31\t7)*$BTH"L+\ffp%yU͸7)t"XrDvTcω|Rbɠ!٦1*oJdo4ȲwV(}3ZV^ho@P!]j%1M6YDMJOæRlUd:*CZI%;<֨4b9pY 7bSxB:IU@2 wHNM32i]c{Mq= [IȱrհE%H9T=&|ePTع, (`!],u-eǞW=<^.&[ax3#$![iXx{IENDB`1Table9;SummaryInformation(DocumentSummaryInformation8:LGCompObj y^C 666666666vvvvvvvvv666666>6666666666666666666666666666666666666666666666666hH6666666666666666666666666666666666666666666666666666666666666666662 0@P`p2( 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p8XV~_HmH nH sH tH @`@ NormalCJ_HaJmH sH tH f@f  Heading 1$$ & F<@& 5B* CJ KH OJQJaJphn@n  Heading 2$$ & F<@&a$#5B*CJOJQJ]^JaJph33l@l  Heading 3$$$ & F <@&a$5B* CJOJQJaJphb@b  Heading 4$$ & F<@&a$5B* OJQJaJphl@l  Heading 5+$ <@&^`a$5CJOJQJaJd@d  Heading 6,H6% <@&^` 5CJaJD@D  Heading 7$$@&a$ 5CJ\P@P  Heading 8$$@&a$5CJOJQJ\aJb @b  Heading 9 $7$8$@&H$#5B*CJOJQJ\^JaJph# DA`D Default Paragraph FontVi@V  Table Normal :V 44 la (k (No List TOT Heading1_Body$^a$CJOJQJaJTOT Heading2_Body$@^@a$CJOJQJaJTOT Heading3_Body$^a$CJOJQJaJ6U@!6 Hyperlink >*B*ph<@< TOC 1 xx5;CJaJ:@: TOC 2 ^ :CJaJDORD Table textG$CJOJQJaJTbT Heading4_Body$`^`a$CJOJQJaJ<Or< BulletxCJOJQJaJp@p Header. s&d1$P]s^5B* CJOJQJaJphTT Body text for H2 _^_CJaJmH sH 6!@6  Index Heading: : Index 1^`hh RESPONSE$$ p@ h^hB*CJOJQJaJphXOX Cog-body$ d<<^ a$CJOJQJaJTOT Cog-bullet" ((^`aJ`B@` Body Text,bt$ d*$a$CJOJQJaJ`` WSIB B4( hhPx*$G$^h`CJOJ QJ aJFF bullist!   P^ `TC@"T Body Text Indent"1$6CJOJQJaJr2r Bullet 1,b1,Bullet for no #'s# hhd^h`.. TOC 3 $^.. TOC 4 %^.. TOC 5 &^.. TOC 6 '^.. TOC 7 (^.. TOC 8 )^.. TOC 9 *^4 @4 Footer + !XR@X Body Text Indent 2 ,^CJOJQJ^JlSl Body Text Indent 3- &h&^&`CJOJQJaJ6>@6 Title.$a$ 5CJ0\D@D  Comment Text/CJOJQJaJ8P@8 Body Text 20$a$TTT Block Text1 & Fh]^h CJaJh8Q@"8 Body Text 32$a$FV1F FollowedHyperlink >*B* phr/r label.4$$d9&#$*$./1$5CJOJ QJ _HmH sH tH jOBj normal-end chunk#5$d&dPa$ OJ QJ aJJObJ summary6$da$6OJ QJ aJ>Oq> rf15CJOJQJ\aJo(ph\^@\ Normal (Web)8dd[$\$B*OJPJQJ^Jph*W@* Strong5\22 bodytext1blue44 bodytext1black** bodytext1XX bodytextspecial=dd[$\$OJPJQJ^J.X@. Emphasis6]XOX textnormal1*CJOJQJ^JaJo(phq ^O^ Formula 10pt#@shd1$]s^hCJaJzOz BodyBull2:A$ & FJ hpspd<<]s^pa$CJOJQJ]aJjo"j 1x3:cell B pd &1$CJOJQJ_HhmH sH tH PK![Content_Types].xmlj0Eжr(΢Iw},-j4 wP-t#bΙ{UTU^hd}㨫)*1P' ^W0)T9<l#$yi};~@(Hu* Dנz/0ǰ $ X3aZ,D0j~3߶b~i>3\`?/[G\!-Rk.sԻ..a濭?PK!֧6 _rels/.relsj0 }Q%v/C/}(h"O = C?hv=Ʌ%[xp{۵_Pѣ<1H0ORBdJE4b$q_6LR7`0̞O,En7Lib/SeеPK!kytheme/theme/themeManager.xml M @}w7c(EbˮCAǠҟ7՛K Y, e.|,H,lxɴIsQ}#Ր ֵ+!,^$j=GW)E+& 8PK!Ptheme/theme/theme1.xmlYOo6w toc'vuر-MniP@I}úama[إ4:lЯGRX^6؊>$ !)O^rC$y@/yH*񄴽)޵߻UDb`}"qۋJחX^)I`nEp)liV[]1M<OP6r=zgbIguSebORD۫qu gZo~ٺlAplxpT0+[}`jzAV2Fi@qv֬5\|ʜ̭NleXdsjcs7f W+Ն7`g ȘJj|h(KD- dXiJ؇(x$( :;˹! I_TS 1?E??ZBΪmU/?~xY'y5g&΋/ɋ>GMGeD3Vq%'#q$8K)fw9:ĵ x}rxwr:\TZaG*y8IjbRc|XŻǿI u3KGnD1NIBs RuK>V.EL+M2#'fi ~V vl{u8zH *:(W☕ ~JTe\O*tHGHY}KNP*ݾ˦TѼ9/#A7qZ$*c?qUnwN%Oi4 =3ڗP 1Pm \\9Mؓ2aD];Yt\[x]}Wr|]g- eW )6-rCSj id DЇAΜIqbJ#x꺃 6k#ASh&ʌt(Q%p%m&]caSl=X\P1Mh9MVdDAaVB[݈fJíP|8 քAV^f Hn- "d>znNJ ة>b&2vKyϼD:,AGm\nziÙ.uχYC6OMf3or$5NHT[XF64T,ќM0E)`#5XY`פ;%1U٥m;R>QD DcpU'&LE/pm%]8firS4d 7y\`JnίI R3U~7+׸#m qBiDi*L69mY&iHE=(K&N!V.KeLDĕ{D vEꦚdeNƟe(MN9ߜR6&3(a/DUz<{ˊYȳV)9Z[4^n5!J?Q3eBoCM m<.vpIYfZY_p[=al-Y}Nc͙ŋ4vfavl'SA8|*u{-ߟ0%M07%<ҍPK! ѐ'theme/theme/_rels/themeManager.xml.relsM 0wooӺ&݈Э5 6?$Q ,.aic21h:qm@RN;d`o7gK(M&$R(.1r'JЊT8V"AȻHu}|$b{P8g/]QAsم(#L[PK-![Content_Types].xmlPK-!֧6 +_rels/.relsPK-!kytheme/theme/themeManager.xmlPK-!Ptheme/theme/theme1.xmlPK-! ѐ' theme/theme/_rels/themeManager.xml.relsPK] +17@HQYy &?V{2DWg|:^ )D]=`3AR`o} \js     r{wvsl|{zywvurqmlkjihg^]\[ZYXWVUT_`abcdefg h i j k lmnopqrstuvwxy +17@HQYy &?V{2DWg|:^ )D]=`3AR`o} \js       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyllo?G1 u  iQ - % M  m FgaaM7 f U#|Bu'3g(K ? ] !!!K""#<##%$g$$ %c%%(&~&& 'n''R(((\))8***7+++=,,,M---J...C///*001[11"222C33'44405o55+666N777>889w99K:::p;;(<<<A==>W>>?g??@X@@2AAABBB5':>ZF_gvX&}4 n: 0> > S@ C F      !"#$%'()*+,-./0123456789:;<=>?@ABDEFGHKNTW\`hqw '.48AKV]cqxz|:I:#,6@J*SXy_dvFb޸O{` "2Vn9Mz'7I^N$*0m6^BBBB'CkCCCBDDDEHh[{*Ƌ ߘkmڭ&CȽ@IMQUZ_cgkosw{{C"l%2GXzbq~4ԫܵ@5jzG; D ]  _&g0u6@6MVx_m.x8io Mk?|xA,h2r:  *!'.|0255Y7}77f8;99:*:;<=L=v=>>`>>?@#AqAAABCB_DnFFFFGK\__beghidklltnoKpqYrtuvwwz8N4nO|O>?K\lF2f, q, , , 0 4 C5 d6 6 6 6 `: : : L; ; ; = <> > ? @ MB C D E LF F  &CIJLMOPQRSUVXYZ[]^_abcdefgijklmnoprstuvxyz{|}~     !"#$%&()*+,-/01235679:;<=>?@BCDEFGHIJLMNOPQRSTUWXYZ[\^_`abdefghijklmnoprstuvwy{}~Qfg.013R   .Toqrt !#Be),-/Nq.ILMOn@[^_a"%&(Gr(CFGIh| " = @ A C b {  " = @ A C b  , G J K M l    1 X s v w y   / 2 3 5 T f 'BEFHg!2MPQSr$=X[\^}!"$Cf6QTUWv (Fadeg4D_bce )Pknoq '*+-Li 7:;=\j9<=?^y"Jehik '*+-Lq478:Yv&D_bce   ,B]`ac )?Z]^`=Lgkln - 1 2 4 S x !:!U!Y!Z!\!{!!!!!!!!""""9"K"f"j"k"m"""""""""####8#M#h#l#m#o#########$$$$>$T$o$s$t$v$$$$$$$$ %(%,%-%/%N%i%%%%%%%%%%%% &%&)&*&,&K&^&y&}&~&&&&&&&&&''"'#'%'D'R'm'q'r't''''''''(#('(((*(I(g((((((((((())6):);)=)\)u))))))))***#*E*`*d*e*g********++"+#+%+D+x+++++++,,, ,(,@,[,_,`,b,,,,,,,,, ----1-K-f-j-k-m-------- .$.(.).+.J.e............/)/-/./0/O/b/}///////////05090:0<0[0s00000000000171R1V1W1Y1x1111111 2&2*2+2-2L2k22222222222 303K3O3P3R3q33333333444 4)4B4]4a4b4d4444444455 5!5#5B5i55555555555636N6R6S6U6t6~666666666667'7B7F7G7I7h777777777777868Q8U8V8X8w88888888 999939L9g9k9l9n999999999 ::::1:W:r:v:w:y:::::::;;5;9;:;<;[;q;;;;;;;;;;;<<0<4<5<7<V<s<<<<<<<<<<< ==9===>=@=_=r===========>F>a>e>f>h>>>>>>>>?/?3?4?6?U?u???????????@8@S@W@X@Z@y@@@@@@@@AAAA&ACA^AbAcAeAAAAAAAAB#B'B(B*BIBuBBBBBBBBBBBC@C[C_C`CbCCCCCCCCDD D!D#DBDjDDDDDDDDDDDM!"*af2*3+3-333555666HgHiHV!W#W`HaJaf-g:ghhiItttuSubu{uuuЫҫܫ#;>$x  +-Rmo245PR"$###$Jr|#5U{! tX%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕X%4̕̕XCXCXXXCCCCCCX4X4X4X4X4:::_X::::::::XXXXXX4X4\cfo!  Opb$#Gދ/ڊ b$8g܋@J殔4&b$Xw JF?n b$gT [m+ b$dQSY (a b$'ךZbj$ b$s7g;7ZJk="r b$笐屦mt$!e^( b$n',ς1R b$&Mf;ԁr{E JX b$8!J[{Sm~:FE b$HM7xX`n(S/ b$ 0jZqλ.R. R$Aq=ȊB] b${̝0߳ey-w!gL| b$@|n_`*Q6 b$st r(ݸ3 b$uȚ}LIYKUz / b$(/v+"  2$Tqtb|wnB @L DL(  |  (55 3  "0?`  c $X99?(55b  # U"`! Ub  # T"`x # Tb  # S"`8#c% Sb  # R"`)(+ Rb  # Q"`.I0 Qb  # P"`)0+ Pb  # O"`#f!& Ob  # N"`s#I! NTB  C DjH0TB  C DjI0b  # M"`[L  Mb  # L"` ($% Lb  # K"`0 )|* Kb  # J"`.h/ Jb  # I"`-! 0 Ib  # H"`(q%!+ Hb  # G"`W!#&D& Gb  # F"`0#2 FTB  C DilI0TB  C Dli(#I0b  # E"`30x2 E $r9 R3  "0?` S c $X99?$r9T T # DT$  H7  DT U # CUr (# CT V # BV (#7  BT W # AWp#? AT X # @XPt"l @T Y # ?Y.t"J ?T Z # >Zp >T [ # =[t" =T \ # <\p6R <T ] # ;]6t"R ;n ^ C :^"`pQt" :ZB _ S DH  ZB ` S D\ 7 ] #ZB a S D^^ZB b S D ZB c S D\ 0] ZB d S DZB e S D\ \ 6ZB f S DDET g # 9gp " 9T h # 8h t"" 8T i # 7ip$' 7T j # 6jp'7) 6T k # 5k$t"w% 5T l # 4lw%t"' 4T m # 3m't") 3ZB n S D$&ZB o S D&&ZB p S D&(T q # 2qp*, 2T r # 1rr*", 1ZB s S D!!ZB t S D++T u # 0up-0 0T v # /vp0k1 /T w # .w."0 .ZB x S D//T y # -yp2,4 -T z # ,zp,4u6 ,T { # +{pu68 +T | # *|,4(#H6 *ZB } S D3:5ZB ~ S D:5:5ZB  S D:5V7ZB  S Dj1 k   6@@A? C"? (3 3  "0?`  c $X99?(3TB  C DjH0TB  C DjI0h  3 )"`[L  )h  3 ("` ($% (h  3 '"`0 )|* 'h  3 &"`.h/ &h  3 %"`-<X/ %h  3 $"`)t"m* $h  3 #"` ($#% #h  3 "`<i&  h  3 "`G02 b p   #" ?  DAvd @?cztp d  Bvd @  b l C l"?3 \B q S D"?6b r C  r"?4  b s C s"?7 b v C v"?; b w C w"?@ b { C {"?E \B  S D"?:\B  S D"?>\B  S D"?B\B  S D"?H\B  S D"?Lb  C "?N b  C "?J \B  S D"?Rb  C "?U \B  S D"?5b  C  "?8  \B  S D"?9\B  S D"?=b  C  ̙"?<  \B  S D"?Ab  C  ̙"??  VB @ C D"?GVB  C D"?Q\B  S D"?Fb  C  ̙"?D  \B  S D"?Cb  C "?I \B  S D"?Kb  C "?T \B  S D"?SJ  # "?MJ  # "?OJ  # ̙"?P n  )#5  C"?ht `p # #"  )#T3Z  ` P    B  ND3fԔ333?" `P B  ND3fԔ333?"` P   T  3f333?"`    T 3f333?"0 ql    T! 3f333?" A  !  T" 3f333?"/   "  T 3f333?"    T 3f333?"     T 3f333?" A     T 3f333?" a     T 3f333?">pJ    Z 3f333?"4P5 P   "? P   "?  V  # "? P   "? P   "? VB @ C D"?VB  C D"? VB @ C D"? VB  C D"?VB @ C D"?\B  S D"?\B  S D"? P   "?  n2  c $V"? VVB  C D"?VB  C D"?P2   X"? XP2   W"? Wn  c $^3f"? ^h  S ]3f"?" ]h  S \3f"?! \n  c $[3f"?  [n  c $Z3f"? Zn  c $Y3f"? YB  B D3f?#" ?B  B D3f?#" ?B  B D3f?#" ?B  B D3f?#" ?B  B D3f?#" ?V  # _"?* _J  # A"?$J  # A"?&J  # A"?#J  # A"?%J  # A"?'J  # A "?(J  # A "?)J  # A "?+J  # A "?,J  # A "?-J  # A"?.J  # A"?/J  # A"?0J  # A"?1J  # A"?2V  # A3"?VB S  ?(  d  C &Aheader"?b  C "? 7>N< ='=  #8KLbcf#qtU[<UUUUUUUUUUUķN\}.{/ 1 3 5 9 ; = ? B D L O R S U W [ \ ] _ ` b e f h    "#)9:;X=r  t  t Ret  tppLtp,t,, t8 Tt ttpZt$ t82Tt28t t8t tA t \ (t\ t:VtL81ttptpst  t # t  t g t / tptp #tp tpgt4<e!4\44!4$4 4 4t!454C4h0!D4 !(4X 4!4h # 4l/ trdt dtqts9 ;td9Ut dttv tdt udut-tda}twa }t /d/tt dtdt{ 8t* ttltdt t dt&Bt !t"tv@ ~t !t"zt !yt"tbbt6t OdOtdt t! 4  0B'tLAX ]u _Toc15455045 _Toc66267053 _Toc66267054 _Toc66267055 _Toc65912672 _Toc65999379 _Toc66267056 _Toc65912673 _Hlt65913076 _Toc65999380 _Toc66267057 _Toc65999381 _Toc66267058 _Toc65999382 _Toc66267059 _Hlt65999458 _Toc66267060 _Toc66267061 _Toc66267062 _Hlt65561468 _Hlt65561469 _Toc66267063 _Toc66267064 _Toc66267065 _Toc66267066 _Toc66267067 _Toc66002397 _Toc66267068 _Toc66002398 _Toc66002399 _Toc66002400 _Toc66002401 _Toc66002402ExcludeRegion0 _Toc66002403 _Toc66002404 _Toc66002405 _Toc66002406 _Toc66267069 _Toc66002407 _Toc66002408 _Toc66002409 _Toc66002410 _Toc66002411 _Toc66002412 _Toc66002413 _Toc66002414 _Toc66267070 _Toc66002415 _Toc66002416 _Toc66002417 _Toc66002418 _Toc66267071 _Toc66002419 _Toc66002420 _Toc66002421 _Toc66267072 _Toc66267073 _Toc66267074 _Toc66267075 _Toc66267076 _Toc66267077 _Hlt65995109 _Hlt65995110 _Toc66267078 _Toc66075680 _Toc66267079 _Toc66075681 _Toc66267080 _Toc66075682 _Toc66267081 _Toc66075686 _Toc66267082 _Toc66075687 _Toc66075688 _Toc66267083 _Toc66075689 _Toc66260290 _Toc66266116 _Toc66266701 _Toc66267084 _Toc66075690 _Toc66267085 _Hlt66074570 _Toc66075691 _Toc66267086 _Toc66075692 _Toc66267087 _Toc66075693 _Toc66267088 _Toc66267089 _Toc66075694 _Toc66267090 _Toc66075695 _Toc66267091 _Toc66075696 _Toc66267092 _Toc66075697 _Toc66267093 _Toc66075698 _Toc66267094 _Toc66267095 _Toc66075699 _Toc66267096 _Toc66075700 _Toc66075701 _Toc66075702 _Toc66267097 _Toc66075703 _Toc66075704 _Toc66267098 _Toc66075705 _Toc66267099 _Toc66075706 _Toc66267100 _Toc66075707 _Toc66267101 _Toc66075708 _Toc66267102 _Toc66075709 _Toc66075710 _Toc66075711 _Toc66267103 _Toc66075712 _Toc66075713 _Toc66267104 _Toc66075714 _Toc66075715 _Toc66267105 _Toc66075716 _Toc66267106 _Toc66075717 _Toc66075718 _Toc66075719 _Toc66075720 _Toc66267107 _Toc66075725 _Toc66267108 _Toc66267109 _Toc66066940 _Toc66267110 _Toc66066941 _Toc66267111 _Hlt66066938 _Toc66066943 _Toc66066944 _Toc66267112 _Toc66066945 _Toc66066946 _Toc66066947 _Toc66066948 _Toc66267113 _Toc66066949 _Toc66267114 _Toc66066950 _Toc66267115 _Toc66066951 _Toc66267116 _Toc66267117 _Toc66267118 _Toc66267119 _Toc66267120 _Toc66267121 _Toc66063956 _Hlt66064051 _Toc66064769 _Toc66063957 _Hlt66064056 _Toc66064770 _Toc66267122 _Toc66063958 _Hlt66063987 _Hlt66064240 _Toc66064771 _Toc66063959 _Toc66064772 _Toc66267123 _Toc66063960 _Toc66064773 _Toc66267124 _Toc66063962 _Toc66064775 _Toc66267125 _Toc66063964 _Toc66064777 _Toc66267126 _Toc66063965 _Toc66064778 _Toc66267127 _Toc66267128 _Toc66076692 _Toc66267129 _Toc66076693 _Hlt66076622 _Toc66076694 _Hlt66076610 _Toc66267130 _Toc66065836 _Toc66076695 _Toc66065837 _Toc66076696 _Toc66065839 _Hlt66076625 _Toc66076698 _Toc66065840 _Toc66076699 _Toc66065841 _Toc66076700 _Toc66065842 _Hlt66066088 _Toc66076701 _Toc66065843 _Toc66076702 _Toc66076703 _Toc66065845 _Hlt66076604 _Toc66076705 _Toc66065846 _Hlt66076664 _Toc66076706 _Toc66267131 _Toc66267132 _Toc66267133 _Toc66267134 _Toc59441289 _Toc66267135 _Toc66267136 _Toc66267137 _Toc66267138 _Toc66267139 _Toc66267140 _Toc66267141 _Toc66267142 _Toc66267143 _Toc66260351 _Toc66266177 _Toc66266372 _Toc66266565 _Toc66266761 _Toc66266953 _Toc66267144 _Toc66102374 _Toc66267145 _Toc66102375 _Toc66267146 _Toc66102376 _Toc66267147 _Toc66102377 _Toc66267148 _Toc66102378 _Toc66267149 _Toc66102379 _Toc66267150 _Toc66102380 _Toc66267151 _Toc66102381 _Toc66267152 _Toc66102382 _Toc66267153 _Toc66102383 _Toc66267154 _Toc66102384 _Toc66267155 _Toc66102385 _Toc66267156 _Toc66102386 _Toc66267157 _Toc66102387 _Toc66267158 _Toc66102388 _Toc66267159 _Toc66102389 _Toc66267160 _Toc66102390 _Toc66267161 _Toc66102391 _Toc66267162 _Toc66102392 _Toc66267163 _Toc66102393 _Toc66267164 _Toc66267165 _Toc66105250 _Toc66267166 _Toc66105251 _Toc66267167 _Toc66105252 _Toc66105253 _Toc66105254 _Toc66267168 _Toc66105255 _Toc66267169 _Toc66105256 _Toc66267170 _Toc66105257 _Toc66267171 _Toc66105258 _Toc66267172 _Toc66105259 _Toc66267173 _Toc66105260 _Toc66267174 _Toc66105261 _Toc66267175 _Toc66105262 _Toc66267176 _Toc66105263 _Toc66267177 _Toc66105264 _Toc66267178 _Toc66105265 _Toc66267179 _Toc66105266 _Toc66267180 _Toc66105267 _Toc66267181 _Toc66105268 _Toc66267182 _Toc66105269 _Toc66267183 _Toc66105270 _Toc66267184 _Toc66105271 _Toc66267185 _Toc66105272 _Toc66267186 _Toc66105273 _Toc66267187 _Toc66267188 _Toc15455046 _Toc32058952 _Toc66267189 _Toc32058953 _Toc66267190 _Toc66267191 _Toc66267192 _Toc66267193 _Toc66267194 _Toc15455047 _Toc66267195 _Toc15455048 _1097676910 _1097676916 _1097677042 _1098089914 _Toc66267196 _Toc15455049 _1097677147 _1097994013 _1098090446 _Toc66267197 _Toc15455050 _1097677187 _1097993525 _1097993848 _1097995131 _1098090836 _Toc66267198 _Toc15455051 _Toc23764924 _1098096350 _Hlt23767372 _Toc66267199 _Hlt23767379 _Toc7253626 _Toc15455058 _1098096251 _1098096283 _Toc66267200 _1098108558 _Toc66267201 _1098108739 _Toc66267202 _Toc66267203 _Hlt65386126 _Hlt65386127 _Toc66267204 _Toc66267205 _Toc66267206 _Hlt32058965 _Toc32058957 _Toc66267207 _Hlt32029830 _Toc66267208 _Toc32058959 _Toc66267209 _Toc32058960 _Toc66267210 _Toc32058961 _Toc66267211 _Toc32058962 _Toc66267212 _Toc32058963 _Toc66267213 _Toc66267214 _Toc65664668 _Toc66267215 _Toc65664669 _Toc66267216 _Toc65664670 _Toc66267217 _Toc65664671 _Toc66267218 _Toc65664672 _Toc66267219 _Toc65664673 _Toc66267220 _Toc65664674 _Toc66267221 _Toc65664675 _Toc66267222 _Toc531774758 _Toc65664676 _Toc531774759 _Toc65664677 _Toc66267223 _Toc66267224 _Toc65664379 _Toc66267225 _Toc65664380 _Toc66267226 _Toc65664381 _Toc65664382 _Toc66267227 _Toc65664383 _Toc66267228 _Toc65664384 _Toc66267229 _Toc65664385 _Toc66267230 _Toc65664386 _Toc66267231 _Toc66267232 _Toc65994859 _Toc66267233 _Toc65994860 _Toc66267234 _Toc65994861 _Toc66267235 _Toc65994862 _Toc66267236 _Toc65994863 _Toc66267237 _Toc65994864 _Toc66267238 _Toc65994865 _Toc65994866 _Toc65994867 _Toc65994868 _Toc66267239 _Toc65994869 _Toc66267240 _Toc65994870 _Toc66267241 _Toc65994871 _Toc66267242 _Toc65994872 _Toc66267243DDD+JJNJNJNPPPPyWyWYYZZ[`.o.oev|)ªS//V]IPWOS ##8      %t)022G8Y8Y8':':<<*=*=GkHkH1N"W"W"W"W%WLa_a_a_amgmguuvvvhh  DD1>> jtuZZ  ɨȳzzGUUM   @@}}[nFnFnFnFVVV```zzz??@aaaVCDnťťťťHH,,,ssswwggg*(;Xk" D,MUUUUUUUUU@X@X[[__ee/i/ippntntgwgwzzʃʃMM؍؍ΙΙjjmmLLWWUUnn  ~~AA SS=   +++++1""mry2PV"(##'''44@7TTTVVZZEaEazbzbcccc.mooppqqqq1w1wWyWyzz}}ĀĀĀAPPabA''JJooRRppzz{{G @ @@@ !"#$%&'()*+,-./0123456789:;<=@>@?@ABCDEFGHIJKLMNOPQR@STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@@@@@@@@@@@      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFHPIJKLMNOQRSXT@U@V@W@Y]Z@[@\@^d_@`@a@b@c@eifg@h@jk@rsl@m@no@pq@twu@v@xyz{@|}~@D*EbJeNeNeNPPPPWWYYZ[[`/o/ov|AӪ^UUbhOdb-e4y77I   (  7-%)022X8e8e8B:B:<<====GHHIN$W$W$W$W=W^a_aaagguuvvv##OO=ZZ!""٥٥//00ê ճTaakK""ZZrnFnFFF=V=V=V.`.`.` ,5%`i(-06?<<cRmRUUfnmnOq]q*r6rr sssz||~~E~[gjv ĪǪѪԪت۪>G$;AA ))h*r*,,11)333"A,AAAABBBCCCCDD;EEEoExEEEUUddjzʖX[\aOO:TBTXX&g/gjj-0ы݋UZt|yjou}!* v?K׳ bjGSJR(0`hqzBJ3;RZ$V^**4444444455P5Z55566@7G7M7T7,83888/9@9w9~9@:G:::>;E;????6C>CADFDe      !"#$%&'()*+,-./0V3456789F;<=>?@ABCDE2GHIJKLMNOPQRSTUWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}DnDpDwDkEnEGG\GfGGG,H.HHH:K>GGTTibsbbbbbbbdckccdAeekkmm-p5pEpMp[s_syyezizL{P{{{||}}n}u}cs'-Ӈۇ8Bۈ+щ߉&4#+ލTZwЏ֏^hv[h3;Dlw$+  $,9DMRèŨĪǪ  (*=Aaeqw[-wlnINZir{ RW{BLHLuw~mxO[&+?CPUgji#r#t##$$p$|$~88FFGGHHJ KK KKKKLXLLLSSUUWW[\f]p]^^^^aa|llllMmYmmmcnln~xxgt}Wap}\j+2Yb?IۗITl|™̙ ƛ&ox~(1ޠKVJPťץȦݦ0víʮخѯۯy]k x%,X`MY>H;Q NVKX2[ebk6@    ejmx NU=G0<?I056= ##=+I+,,,,11 22j2r233335555Y7]79 9[9f9:::;A;;;<<<<??]BfBBB8D@DMSSST!T[TcTTTTTUUUU D   g p    DxNU=SM T   ((,-f1v144NNO$OTTXX[Z_Z\ \x]]]]#^0^Qd[de eHfNf8gCgggoo%s'sz#z7{F{!~#~~+/1 QS  '(pvknpv:3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333$$ %-%i%%%% &*&^&~&&&'#'R'r'''(((g(((();)u)))*E*e***+#+x+++,@,`,,,,-K-k--- .).e...././b////0:0s000071W111 2+2k222203P33334B4b4445!5i555536S6~6666'7G7777768V88889L9l9999:W:w:::;:;q;;;;<5<s<<<<=>=r====F>f>>>?4?u????8@X@@@@ACAcAAAB(BuBBBB@C`CCCD!DjDDDD22ɬɬ77nn  '(FHRSXY^_ghopxyy23BCMNfg}~ "#67DEFGYZkl~BCab01PQkl,-ABde  /056EFZ[hiyz01D9:<H22  '(^ie'o*-zԈ;JnG[b4e7G L<"֍̃q ̹zA $; ~4IV} n{ .2$6 L&Z\t],0ަF;]d|>i`u%+ep.X~w>e:YxTyՔC&x z8"orp>d+h<9 B2=tE9"sxc%6L@&H&Pz0*'0r(pO(09G)Vz`H)q*^&r7F,:i~,Pb"!.įQ/j L0 5P0 *~o2<hs2B~2D,M>i5#/}5 j5S|0H+u8J _:W{:"x=~ ;J($swGDqJFc&t KB2g[5L\]oO~V/@Rn: RzRt],PRAI7cSosTNVwfxZ5,S[VZN [zp\HWk_6,"oB@.yOoҺ}_q|.15r(| rrnw3w0yUy {NHT{܉J'~Fc?~vl9HLÚ^`* ^`OJQJo( ^`OJQJo(o pp^p`OJ QJ o( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( ^`OJQJo(o PP^P`OJ QJ o(h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJ QJ o(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJ QJ o(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJ QJ o(hHh ^`OJ QJ o(h pp^p`OJQJo(oh @ @ ^@ `OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h 88^8`OJ QJ o(h ^`OJQJo(oh   ^ `OJ QJ o(h   ^ `OJ QJ o(h xx^x`OJQJo(oh HH^H`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(h ^`OJ QJ o(h   ^ `OJQJo(oh   ^ `OJ QJ o(h xx^x`OJQJo(h HH^H`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h^`.h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(h ^`OJ QJ o(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(h ^`OJ QJ o(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`.^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.hpp^p`OJQJo(hHh@ @ ^@ `OJQJ^Jo(hHoh^`OJ QJ o(hHh^`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJ QJ o(hHhPP^P`OJQJo(hHh  ^ `OJQJ^Jo(hHoh^`OJ QJ o(hHh ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(88^8`o()h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJ QJ o(h PP^P`OJQJo(h   ^ `OJQJo(oh   ^ `OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ``^``OJ QJ o(h 00^0`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h^`.^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJQJo(h   ^ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ``^``OJQJo(h 00^0`OJQJo(oh ^`OJ QJ o(^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(h ^`OJ QJ o(h pp^p`OJQJo(oh @ @ ^@ `OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJ QJ o(h 88^8`OJQJo(oh ^`OJQJo(oh   ^ `OJ QJ o(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(-h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(^`.^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.h ^`OJ QJ o(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJQJo(-h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`.^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJ QJ o(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`.^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJQJo(h pp^p`OJQJo(oh @ @ ^@ `OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h PP^P`OJQJo(oh   ^ `OJ QJ o(^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.  ^ `.h PP^P`OJQJo(h   ^ `OJQJo(oh   ^ `OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ``^``OJ QJ o(h 00^0`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJ QJ o(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o( ^`hH. ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH.h^`.h ^`56o()hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(h ^`OJ QJ o(h^`.h pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`.^`.^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(^`OJPJQJ^Jo(-^`OJQJ^Jo(hHopp^p`OJ QJ o(hH@ @ ^@ `OJQJo(hH^`OJQJ^Jo(hHo^`OJ QJ o(hH^`OJQJo(hH^`OJQJ^Jo(hHoPP^P`OJ QJ o(hHh 88^8`OJQJo(-h ^`OJQJo(oh   ^ `OJ QJ o(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(0^`0o(.^`. L ^ `L.  ^ `.xx^x`.HLH^H`L.^`.^`.L^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o( 88^8`OJ QJ o( ^`OJQJo(o   ^ `OJ QJ o(   ^ `OJQJo( xx^x`OJQJo(o HH^H`OJ QJ o( ^`OJQJo( ^`OJQJo(o ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h^`.^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(h ^`OJQJo(-h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.  ^ `.h ^`OJ QJ o(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h^`.^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(88^8`CJOJQJo(^`CJOJQJo(o  ^ `CJOJ QJ o(  ^ `CJOJ QJ o(xx^x`CJOJ QJ o(HH^H`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`.^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJ QJ o(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o( ^`hH. pp^p`hH. @ L@ ^@ `LhH. ^`hH. ^`hH. L^`LhH. ^`hH. PP^P`hH.  L ^ `LhH.^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.  ^ `.h 88^8`OJ QJ o(h ^`OJQJo(oh   ^ `OJ QJ o(h   ^ `OJQJo(h xx^x`OJQJo(oh HH^H`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oht Office Word@z(@d @Z @nh%м=4  F'Microsoft Office Word 97-2003 Document MSWordDocWord.Document.89q   Cogniznt Technology Solutions Testing Methodology TitleE 8@_Toc662672063 _Toc662672053 _Toc662672043z _Toc662672033t _Toc662672023n _Toc662672013h _Toc66267200:b _Toc66267199:\ _Toc66267198:V _Toc66267197:P _Toc66267196:J _Toc66267195:D _Toc66267194:> _Toc66267193:8 _Toc66267192:2 _Toc66267191:, _Toc66267190;& _Toc66267189;  _Toc66267188; _Toc66267187; _Toc66267186; _Toc66267185; _Toc66267184; _Toc66267183; _Toc66267182; _Toc66267181; _Toc662671804 _Toc662671794 _Toc662671784 _Toc662671774 _Toc662671764 _Toc662671754 _Toc662671744 _Toc662671734 _Toc662671724 _Toc662671714 _Toc662671705 _Toc662671695 _Toc662671685 _Toc662671675 _Toc662671665 _Toc662671655 _Toc662671645 _Toc662671635 _Toc662671625~ _Toc662671615x _Toc662671606r _Toc662671596l _Toc662671586f _Toc662671576` _Toc662671566Z _Toc6626՜.+,D՜.+,\ hp   Cogniznt Technology Solutions Testing Methodology TitleE 8@ _PID_HLINKSAE!>outbind://7-000000008153BA368374D711A0690002A50D8BAB84EE2400/glossary_failure!>outbind://7-000000008153BA368374D711A0690002A50D8BAB84EE2400/glossary_failure.phttp://www.testwell.fi/EPhttp://www.soft.com/TMhttp://www.rational.com/ Zhttp://www.compuware.com/GAhttp://www.bullseye.com/AFhttp://www.betasoft.com/H>Ghttp://www.yourwindow.to/information-security/gl_regressiontesting.htmK7Chttp://www.yourwindow.to/information-security/gl_systemtesting.htmj@http://www.yourwindow.to/information-security/gl_scopecreep.htm~Vhttp://www.yourwindow.to/information-security/gl_userrequirementsspecificationurs.htm!BEhttp://www.yourwindow.to/information-security/gl_parallelrunning.htmg6http://www.jiludwig.com/Configuration_Management.html}-0http://www.webopedia.com/TERM/R/programmer.htmlB})http://www.webopedia.com/TERM/R/bug.htmlRw#http://members.tripod.com/~bazman/topRq#http://members.tripod.com/~bazman/top7j _Toc662672437d _Toc662672427^ _Toc662672417X _Toc662672400R _Toc662672390L _Toc662672380F _Toc662672370@ _Toc662672360: _Toc6626723504 _Toc662672340. _Toc662672330( _Toc662672320" _Toc662672310 _Toc662672301 _Toc662672291 _Toc662672281  _Toc662672271 _Toc662672261 _Toc662672251 _Toc662672241 _Toc662672231 _Toc662672221 _Toc662672211 _Toc662672202 _Toc662672192 _Toc662672182 _Toc662672172 _Toc662672162 _Toc662672152 _Toc662672142 _Toc662672132 _Toc662672122 _Toc662672112 _Toc662672103 _Toc662672093 _Toc662672083 _Toc662672073 71556T _Toc662671546N _Toc662671536H _Toc662671526B _Toc662671516< _Toc6626715076 _Toc6626714970 _Toc662671487* _Toc662671477$ _Toc662671467 _Toc662671457 _Toc662671437 _Toc662671427  _Toc662671417 _Toc662671400 _Toc662671390 _Toc662671380 _Toc662671370 _Toc662671360 _Toc662671350 _Toc662671340 _Toc662671330 _Toc662671320 _Toc662671310 _Toc662671301 _Toc662671291 _Toc662671281 _Toc662671271 _Toc662671261 _Toc662671251 _Toc662671241 _Toc662671231 _Toc662671221 _Toc662671211 _Toc662671202 _Toc662671192 _Toc662671182| _Toc662671172v _Toc662671162p _Toc662671152j _Toc662671142d _Toc662671132^ _Toc662671122X _Toc662671112R _Toc662671103L _Toc662671093F _Toc662671083@ _Toc662671073: _Toc6626710634 _Toc662671053. _Toc662671043( _Toc662671033" _Toc662671023 _Toc662671013 _Toc66267100: _Toc66267099:  _Toc66267098: _Toc66267097: _Toc66267096: _Toc66267095: _Toc66267094: _Toc66267093: _Toc66267092: _Toc66267091: _Toc66267090; _Toc66267089; _Toc66267088; _Toc66267087; _Toc66267086; _Toc66267085; _Toc66267083; _Toc66267082; _Toc66267081; _Toc662670804 _Toc662670794 _Toc662670784 _Toc662670774 _Toc662670764 _Toc662670754 _Toc662670744z _Toc662670734t _Toc662670724n _Toc662670714h _Toc662670705b _Toc662670695\ _Toc662670685V _Toc662670675P _Toc662670665J _Toc662670655D _Toc662670645> _Toc6626706358 _Toc6626706252 _Toc662670615, _Toc662670606& _Toc662670596  _Toc662670586 _Toc662670576 _Toc662670566 _Toc662670556 _Toc662670546 _Toc66267053 pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJ QJ o(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`.^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.^`.^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.h ^`OJ QJ o(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`.pp^p`.@ @ ^@ `.^`.^`.^`.^`.PP^P`.  ^ `. ^`OJQJo( ^`OJQJo(o pp^p`OJ QJ o( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( ^`OJQJo(o PP^P`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(h PP^P`OJQJo(h   ^ `OJQJo(oh   ^ `OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ``^``OJ QJ o(h 00^0`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(P^`P@@^@`.0^`0..``^``... ^` .... ^` ..... ^` ...... `^``....... 00^0`........h ^`OJ QJ o(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h ^`OJ QJ o(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(h PP^P`OJQJo(h   ^ `OJQJo(oh   ^ `OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh ``^``OJ QJ o(h 00^0`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(^`CJOJQJo(^`CJOJQJo(opp^p`CJOJ QJ o(@ @ ^@ `CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(^`CJOJ QJ o(PP^P`CJOJ QJ o(^3wk 9?.yOoG["!.osT~7cS R>d+5P0yc?~nw(< lE;$ r[VZ"_qg[5L {9HL L0IV} O>Wk _:H+u89G)i~,],(PRae^U:d@&"orJV/@R{:p\15r|-:ar(&t KE9"~ ;B2=*~o2H& xc%V9yR [q*fxZ LleUyO{ `]hs2>q #/}5&xr7F,z`H)\\=e'6,"ou%YQ/$swGj5p.HT{~2 $; ;]M>i57G0*'Ar`i@h OJQJo(^^                                                      ^H"6ȖJ*y.-L^@0mbl*EZ8`&#hƒXtE7         P 3,SZ]񪹈]ȏ&(          0xftV&B`AԒRaR:ftQ8                                      w2;rS欰uVH                  ~]Tr?6I̕?$UzFҬ                  \        BǬ5F'J6HV?7T\jd~"}ޤ~\Vbq> t]`$wTHB                  \        ,.5^neޚZu<$w#؀ Fp42hi,                           DDMlTuПvHd0BD         ,0oV :2lē^'P.*K                           Nb[LxlW|V?Hüh@d                  Fnm"r}z"ҾАJQNmb\w蘘zUvZ]e긁                  ?rbRl=vFPD. ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]