ࡱ> @ D C n o I A^LLLLLLLLLLLLLLLL[ $bjbj jje ݾlj,L"""$l::::P;2C\l:&[h gLNgNgg!t!S"hG&I&I&I&I&I&I&$J& j&Jm&""U!!""m&$ - -Nggdf&$$$" -0jNgp"gG&$"G&$$a$m%OPP"g[&g[ Ojl:b:$K&{[&1|&0&S&&$&{[&$" 0 x D# - -The Design and Construction of a State Machine System that Handles Nondeterminism Graham G. Thomason Submitted for the Degree of Doctor of Philosophy from the University of Surrey  Department of Computing School of Electronics and Physical Sciences University of Surrey Guildford, Surrey GU2 7XH, UK July 2004 Graham G. Thomason 2003-2004 Summary We describe a language system (called STATECRUNCHER) which implements statecharts, handling nondeterminism in a novel way. Statecharts specified in the style of UML dynamic models can generally easily be expressed in STATECRUNCHER. STATECRUNCHER is intended as a test oracle, working in conjunction with a test generator and a test harness connected to an implementation. Such a tool chain tests an implementation for conformance against a specification (compare model checking, which checks properties of a specification without the need for an implementation). Nondeterminism is becoming an increasingly important issue, especially in integration testing, where internal behaviour may be subject to some freedom, and where control over subsystems is limited, so that alternatives in behaviour are acceptable. We cover the language, its implementation, and experience with it in a tool chain automatically generating and executing tests on embedded software at the sponsoring company, Philips Electronics N.V. Acknowledgements Thanks are due to my supervisors: Timotheo Trew, ars cui summa est, studium doctrinae pudorque. quem magni artifices semper dicunt magistrum. doctior hoc nemo est; potest quem vincere nemo programmata qui noverit probare. Aan Prof. Paul Krause. Hij bezit de grootste vaardigheid, enthousiasme voor het vak, en bescheidenheid. Grote waarschijnlijkheidsleerdeskundigen noemen hem steeds meester. Niemand is geleerder dan hij; niemand kan hem overtreffen die kan redeneren onder onzekerheid. To Dr. David Pitt, who has the greatest skill, enthusiasm for his subject, and modesty. Great academics always call him the expert. No-one is more scholarly than he; no-one who knows how to formally specify a system can surpass him. If STATECRUNCHER is found to have syntax and semantics that map well to (models of) a variety of industrial systems, that are intuitive to system architects and testing practitioners, that are powerful enough to satisfy the intellectually adventurous, then this is thanks to the expert guidance of Tim Trew. If STATECRUNCHER is found to be of interest to the scholarly world, and if the works of the scholarly world are found to be amenable to engagement with STATECRUNCHER, then thanks for this are due to Prof. Paul Krause who first proposed that the present author submit the work in an academic context. If the present thesis bridges the proverbial industrial-academic gap, then thanks are due to Dr David Pitt, without whose assistance much of the academic side would have remained an unknown quantity. Thanks are also due to Nitin Koppalkar at Philips Research India Bangalore for his competent integration skills in a cross-continental co-operation to see the successful integration of STATECRUNCHER in the TorX tool chain, and subsequent testing of various embedded software components. Thanks are also due to many others at Philips, including my internal customer Ing. Wil Hoogenstraaten at Consumer Electronics who was contract research project owner for this project, and Bob Barnes at Philips Digital Systems Laboratories Redhill, whose support for the undertaking was invaluable. Contents  TOC \o "2-2" \t "Heading 1,1" 1. Introduction  PAGEREF _Toc77649770 \h 1 1.1 Context of the work  PAGEREF _Toc77649771 \h 1 1.2 The problem to be considered  PAGEREF _Toc77649772 \h 1 1.3 A peek at the result of the work  PAGEREF _Toc77649773 \h 2 1.4 What STATECRUNCHER is not  PAGEREF _Toc77649774 \h 2 1.5 The structure of this thesis  PAGEREF _Toc77649775 \h 4 2. Software testing in context  PAGEREF _Toc77649776 \h 5 3. State-based testing and STATECRUNCHER overview  PAGEREF _Toc77649777 \h 9 3.1 States and events  PAGEREF _Toc77649778 \h 9 3.2 Deterministic state-based testing  PAGEREF _Toc77649779 \h 12 3.3 Nondeterministic testing  PAGEREF _Toc77649780 \h 25 3.4 STATECRUNCHER and the TorX tool chain  PAGEREF _Toc77649781 \h 26 3.5 Alternative modelling techniques to state-based modelling  PAGEREF _Toc77649782 \h 26 3.6 Summary of this section  PAGEREF _Toc77649783 \h 28 4. Nondeterminism  PAGEREF _Toc77649784 \h 29 4.1 Review of nondeterministic testing  PAGEREF _Toc77649785 \h 29 4.2 Fork nondeterminism  PAGEREF _Toc77649786 \h 30 4.3 Race nondeterminism  PAGEREF _Toc77649787 \h 33 4.4 Set transit nondeterminism  PAGEREF _Toc77649788 \h 35 4.5 Fired-event and multiple nondeterminism  PAGEREF _Toc77649789 \h 36 4.6 Set-action nondeterminism  PAGEREF _Toc77649790 \h 38 4.7 Set-meta-event nondeterminism  PAGEREF _Toc77649791 \h 39 4.8 Effects of nondeterminism  PAGEREF _Toc77649792 \h 41 4.9 Worlds  PAGEREF _Toc77649793 \h 42 4.10 Containment of combinatorial explosion  PAGEREF _Toc77649794 \h 44 4.11 Test generation under nondeterminism  PAGEREF _Toc77649795 \h 63 4.12 Summary of this section  PAGEREF _Toc77649796 \h 64 5. STATECRUNCHER as a language  PAGEREF _Toc77649797 \h 66 5.1 General syntax  PAGEREF _Toc77649798 \h 66 5.2 STATECRUNCHER statements  PAGEREF _Toc77649799 \h 68 5.3 Basic syntax of statechart / cluster / set and (leaf-)states in a hierarchy  PAGEREF _Toc77649800 \h 69 5.4 More about hierarchical states  PAGEREF _Toc77649801 \h 70 5.5 Declarations and scoping  PAGEREF _Toc77649802 \h 75 5.6 Expressions, operators and functions  PAGEREF _Toc77649803 \h 80 5.7 Review of items parsed as expressions  PAGEREF _Toc77649804 \h 99 5.8 Transition block  PAGEREF _Toc77649805 \h 101 6. Algorithmic sequencing  PAGEREF _Toc77649806 \h 118 6.1 Cycling  PAGEREF _Toc77649807 \h 119 6.2 Maintaining machine integrity  PAGEREF _Toc77649808 \h 120 6.3 An in-flight approach  PAGEREF _Toc77649809 \h 124 6.4 An after-landing approach  PAGEREF _Toc77649810 \h 131 6.5 Client-server composition and PCOs  PAGEREF _Toc77649811 \h 133 6.6 Conclusions on the sequencing in the transition algorithm  PAGEREF _Toc77649812 \h 135 7. The transition algorithm  PAGEREF _Toc77649813 \h 136 7.1 The formal statechart and the nondeterministic transition function  PAGEREF _Toc77649814 \h 136 7.2 Statechart properties  PAGEREF _Toc77649815 \h 139 7.3 Transition selection  PAGEREF _Toc77649816 \h 142 7.4 Discussion of hierarchical fork nondeterminism  PAGEREF _Toc77649817 \h 145 7.5 Transition course  PAGEREF _Toc77649818 \h 150 7.6 Task processing  PAGEREF _Toc77649819 \h 165 8. The STATECRUNCHER command language  PAGEREF _Toc77649820 \h 190 9. Using STATECRUNCHER  PAGEREF _Toc77649821 \h 195 9.1 Data flow  PAGEREF _Toc77649822 \h 195 9.2 Running STATECRUNCHER  PAGEREF _Toc77649823 \h 196 9.3 Testing of STATECRUNCHER  PAGEREF _Toc77649824 \h 197 9.4 The dining philosophers  PAGEREF _Toc77649825 \h 198 10. Experience with STATECRUNCHER and conclusions  PAGEREF _Toc77649826 \h 218 10.1 Experience at Philips  PAGEREF _Toc77649827 \h 218 10.2 PROLOG as the implementation language  PAGEREF _Toc77649828 \h 226 10.3 Future directions  PAGEREF _Toc77649829 \h 229 10.4 Final conclusion  PAGEREF _Toc77649830 \h 233 11. Glossary and abbreviations etc.  PAGEREF _Toc77649831 \h 234 11.1 Greek letters  PAGEREF _Toc77649832 \h 234 11.2 Glossary and abbreviations  PAGEREF _Toc77649833 \h 234 12. References  PAGEREF _Toc77649834 \h 239  AppendicesAppendix 1[StCrContext]Software Testing in ContextAppendix 2[StCrSemComp]A Semantic Comparison of STATECRUNCHER and Process AlgebrasAppendix 3[StCrOutput]A Quick Reference of STATECRUNCHER's Output FormatAppendix 4[StCrDistArb]Distributed Arbiter Modelling in CCS and STATECRUNCHER - A ComparisonAppendix 5[StCrNim]The Game of Nim in Z and STATECRUNCHERAppendix 6[StCrBiblRef]Bibliography and References Related reportsRelated report 1[StCrPrimer]STATECRUNCHER-to-Primer ProtocolRelated report 2[StCrManual]STATECRUNCHER User ManualRelated report 3[StCrGP4]GP4 - The Generic Prolog Parsing and Prototyping Package (underlies the STATECRUNCHER compiler)Related report 4[StCrParsing]STATECRUNCHER ParsingRelated report 5[StCrTest]STATECRUNCHER Test ModelsRelated report 6[StCrFunMod]State-based Modelling of Functions and Pump Engines Introduction Context of the work We are concerned with testing embedded and distributed software systems. They are difficult to test, yet it is vital that they are properly tested, as consumers expect reliable products. The introduction of component technology has facilitated the design and construction of such systems, but the issue of integration testing remains indeed the lack of knowledge of component internals may increase the potential for integration faults, c.f. [Trew 01]. Lack of implementation knowledge may translate itself into a nondeterministic view of a component, where several behaviours are acceptable. This, too, increases the complexity of testing. Furthermore, system composability leads to large state spaces from which, for an effective test-suite, an intelligently selected subspace must be distilled as a separate problem in its own right. We discuss software testing in more detail in the next main section, and in more detail still in the appendix [StCrContext], where we consider various approaches to automating test execution and test generation. In the present introduction, we focus on the approach that is our main subject matter: state-based testing. The problem to be considered One of the most successful approaches taken to software testing is state-based-testing. Tests (and their oracle) can be automatically generated from a model based on a description of state behaviour. The statechart concept of [Harel] has made this approach much more manageable than it was previously, with large, flat state machines, and statecharts are now part of standard [UML] dynamic modelling. In this area, Philips Research has in the past helped deploy State Relation Tables [Yule] and Concurrent Hierarchical State Machines [CHSM]. These tools are powerful but they have limitations. Neither can deal with nondeterminism, a factor that is becoming increasingly important. Although Philips Research can demonstrate many techniques to address these issues, they use special, often academic, products such as the Concurrency Workbench [CWB], or LOTOS or PROMELA based tools, such as [SPIN], that would not be suitable for direct use by most testing practitioners. An aim of the present research programme as a whole at Philips is to provide an integrated toolset that is sufficiently easy to deploy for use on development sites. UML is well-known to many software professionals, and the UML dynamic model the statechart is the basic model from which we wish to derive tests. The broad problem considered is: how best to test (composed) systems based on a nondeterministic UML dynamic model. We tackle a specific aspect of this problem, the design and construction of a UML-statechart based nondeterministic test oracle, since existing tools for the remainder of a testing tool chain are conveniently already in place, thanks to e.g. the TorX tool chain delivered by the Cte de Resyste project [CdR]. While constructing our nondeterministic oracle program, we investigate the usefulness of PROLOG as the implementation language for compilation and as a runtime machine engine. A peek at the result of the work The work underlying this thesis has resulted in a state based test oracle program called STATECRUNCHER. Its main novel and distinguishing feature is its handling of nondeterminism. In STATECRUNCHER, provision has also been made for component composition at a language level by its scoping operators. At the time of writing, STATECRUNCHER is being used with the TorX tool chain (which is part of the Cte de Resyste [CdR] project) to derive tests from formal specifications. Philips Research India - Bangalore (PRI-B) is testing software components using this tool chain, illustrated in the following figure:  STATECRUNCHER in a tool chain Experience with this tool chain is described in the concluding part of this thesis (chapter  REF _Ref58506404 \r \h 10). What STATECRUNCHER is not Remembering that STATECRUNCHER is a test oracle program, we discuss the issue of what STATECRUNCHER is not, for clarification with respect to related disciplines. STATECRUNCHER is not a property checker We distinguish two kinds of tool: model checkers and simulators/test oracles. The corresponding activities may be called property checking and testing respectively. A software system needs a design and an implementation, and both need a separate kind of tool and activity to ensure the quality of the final system. The distinction is as follows: The design must guarantee certain properties, e.g. safety, liveness, fairness, freedom from deadlock. Given a formal design, such as a statechart with properties attached to states, and a formulation of the properties required in a system, a model checker can attempt to prove them. Two possible limitations are: the expressiveness of the property language (typically a temporal logic), and the size of the state space (though some techniques allow for vast numbers of states). Given a design, the system must be implemented, and the implementation tested. Televisions, mobile phones etc. are a combination of hardware and software. The concept of being in a state means much more to a real system than to a simulator: mobile phone transmitters may be switched on, threads may be waiting for semaphores, buffers should have certain content, such as a teletext page. Testing involves making sure that these things that should happen really do happen. The state model tells us what it is that should happen. A slogan popular in Philips in the 1990s was: Doing the right thing and doing things right. This is like saying: checking the properties of the design, and testing that the implementation conforms to the design. Both are extremely important, but distinct. Despite the above, model checking tools necessarily have state exploration capabilities, whether by exhaustive search or algebraic manipulation, and some tools offer verification and simulation facilities, e.g. [SPIN]. For an interesting combination of tools, using a property checking tool to generate state-based test inputs, see [Jagadeesan]. STATECRUNCHER was designed as a test oracle, and the thrust of the main thesis is that its design will help in testing. Nevertheless it could be used to verify properties, given the aid of an additional tool communicating with it, because it offers facilities which will help in exploring state spaces. However, STATECRUNCHER is probably not a very efficient tool for this purpose. The appendix with a bibliography [StCrBiblRef] includes many references to property checking because it is a closely related field to testing. STATECRUNCHER is not a test generator There are two concerns in state based testing that can usefully be separated out: (1) determining what test to perform and (2) obtaining an expected result (an oracle) to that test. A tool for the first is a test generator; a tool for the second is a simulator or oracle program. STATECRUNCHER belongs to the latter category. We mention test generation techniques in section  REF _Ref60654795 \r \h 3.2.4 and include many annotated references in our appendix [StCrBiblRef], since it is an important related subject. The structure of this thesis We first put software testing in context. Then we introduce the concepts of state behaviour and state-based testing, with an introduction to STATECRUNCHER's role in this. Special attention is given to handling of nondeterminism, as this is the main novel feature in the system. The subsequent section covers the syntax of STATECRUNCHER in more detail. This is followed by a discussion of approaches to detailed transition semantics, and the chosen transition algorithm is described in depth. Since STATECRUNCHER is intended to work with other tools, its command-level interface is explained. Finally, the deployment of STATECRUNCHER at Philips is discussed, and the PROLOG-based implementation technology is reviewed. There are various appendices to this thesis to support many of the discussions in more detail, including a comparison of STATECRUNCHER's semantics with those of some process algebras. There are also many related reports, based on Philips reports produced in connection with the work. These are listed under the references. STATECRUNCHER has been implemented in PROLOG, but the ordinary user need not be aware of this, because STATECRUNCHER has its own syntax which is independent of PROLOG. Nevertheless, the author feels that some samples of PROLOG code, for some key algorithms, are valuable for the record, and they have been included in this thesis. Software testing in context In this section we describe the various kinds of software testing activities and what the aim is in each case. This will give a context to our main theme of state-based testing. For a more detailed discussion of what kind of testing is applicable under what circumstances, the reader is referred to appendix [StCrContext]. The V-model for the software development life-cycle is well-known from standard works on software engineering. The testing phases of this model are shown in  REF _Ref46657201 \r \h Figure 2. V-model and testing The V-model identifies various kinds of testing activity, and each has its own emphasis. We consider the aims of and techniques for each form of testing, starting at the bottom of the Vmodel and working up the right-hand side: Code checking in general: Static analysis can reveal bad coding style and possible pitfalls. Dynamic techniques can check for memory leaks and can provide code coverage, such as statement coverage, described in more detail in [StCrContext]. Module testing: The question to be answered is: Does the implementation correspond to the design? Modules are usually single functions, or a small number of tightly coupled functions designed against a single specification. Exercise code statements and branches. Use code instrumentation to check for coverage of these. Also include a memory leak check in the tests. Module testing is typically white-box testing - we have a knowledge of the code structure and use it to guide us in designing test cases, and we have detailed controllability and observability of the module. Integration testing: The question to be answered is: Is the design internally consistent? Exercise interfaces between modules. Measure call-pair coverage (i.e. every call and every return from it). Integration testing is typically black-box testing - some modules may even be only available as object code, and the only way we can test the integrated system is via the published interfaces. System testing. The question to be answered is: Does the system satisfy the project requirements? This will typically be a black-box testing activity, since the requirements do not normally specify internal controllability and observability, but rather the operations and their outputs to which the end-user has access. For some kinds of system, a part of system testing will be volume testing. For example, a set-top box will need to be tested with large quantities of MPEG streams, and a Global Positioning System will need to be tested with large quantities of sampled radio-front-end (intermediate frequency) satellite data. All the above testing phases are suitable for at least some automation. There are two levels of test automation: automated test execution and automated test generation. Automated test execution The first level of automation is to be able to run tests automatically and have a test report produced. Tests are preferably called in a uniform way, and each test should provide its own pass/fail criterion. The test report should produce a uniform description of whether each test passed or failed. A tool providing facilities for doing this is called a test harness. We can picture automatic execution of tests as follows:  Automated test execution There are good commercial and public domain test harnesses. A Unix-based public-domain test harness with which Philips Research has considerable experience is Deja Gnu [DejaGnu]. A commercial tool for GUI-driven testing under Windows NT with which Philips Research is also familiar is WinRunner [WinRun]. A Philips Research tool to give an (embedded) multi-threaded application a GUI so that it can be tested using WinRunner is GFET [GFET]. A second level of automation is automated test generation. In this case we have some formal specification or model of the system to be tested. From that we derive tests, either as a batch or dynamically during testing.  Automated test generation The kinds of model that are most used for automated test generation are: A state behaviour model, or statechart, such as the UML dynamic model A cause-effect graph (or a decision table, which is a simple form of cause effect graph) A grammar of a language or protocol for syntax testing Orthogonal arrays for parameter/property interaction testing. The next section of this thesis focusses on state behaviour and modelling. The other techniques are described briefly at the end of that section. More detail on them is given in the appendix [StCrContext]. In addition to being aware of model-based testing techniques, the tester should be aware of other technical considerations in ensuring adequate testing, such as a static and dynamic analysis of code properties. We have mentioned measuring the degree of statement and branch coverage exercised in a test suite, (preferably using code instrumentation techniques); this gives guidance on how to design more tests to cover unexecuted statements and branches. Similarly data flow analysis techniques examine the declaration, write-usage, read-usage, and destruction of variables, signalling any anomalies. These and related techniques are well described in [Beizer] and [BCS-SIGIST]. Summary of this section We have seen that different forms of testing are applicable in different phases of the V-model. Code can be statically analysed and instrumented for dynamic checking and coverage measurement. Testing is more efficient when automatically executed, and for this we use a test harness, and define all tests in a uniform way, where each test defines its own pass/fail criterion. Results are logged to a test report. Further gains are made when we automatically generate tests, using a model of the system under test. We mentioned state behaviour models, cause-effect graphs, grammars, and the use of orthogonal arrays. These will be described in the next section, with a heavy emphasis on state behaviour models, since that is the area we focus on in this thesis. State-based testing and STATECRUNCHER overview In this section we consider what is meant by a system state and an event, both from the perspective of a mental model of a system, and from the microscopic computer hardware perspective. We show how a model of state behaviour can be used in test generation and execution. The question of how to represent the model is addressed, leading to the concept of a statechart. Then we introduce STATECRUNCHER as a statechart system, restricting ourselves to deterministic situations while we introduce the fundamental features. White box and black box testing issues are addressed. Nondeterministic testing is mentioned, but details are reserved for the next section, as this is a major topic. STATECRUNCHER cannot perform testing on its own, and we mention how it can fit into the TorX tool chain as an example of a complete testing tool chain. We conclude the section with a brief look at alternative testing approaches to state-based testing. States and events Many systems can be modelled according to their state behaviour that is their state and how the state changes as a result of some stimulus or signal, which we call an event. Under this modelling technique, if a system is in a particular state, it will remain so indefinitely until an event occurs. In other words, the notion of a state entails durability - the state exists over a period of time. Even if a system enters a particular state s1 and there is an event ready and waiting to cause a change of state (say to state s2), we still regard the moment when the system is in state s1 as a point at which the system has become stable in terms of its state behaviour. At such a point, the state of the system (in a wide sense) will map to a state in our model of the system. Events are modelled as instantaneous signals which have no duration. They are able to trigger some processing in the system which may or may not result in a new state. In some states, events may effectively be ignored by the system without any further processing at all, so leaving the system in its previous state. While the system is processing an event, at a modelling level we do not talk about its state, while still recognising that the system will assume states at a detailed level which we do not model. At a modelling level we regard processing an event ideally as an infinitely fast and atomic activity, whilst recognising that real-world implementations require time to process events. If an event would appear to require duration, the situation should probably be modelled by two events (start x and stop x events) and an intermediate state (doing x). A system may be of the kind that theoretically runs indefinitely, such as an operating system or real-time kernel, or it may have a clear lifecycle. But even operating systems can generally be closed down in a controlled way. A simple picture of a system state lifecycle under a specific set of events, (so not a state transition diagram, which will be introduced later) is as follows:  Specific system-life-cycle abstract example As a concrete example, we take using a television (in a simplified way - for example tuning and teletext page acquisition are regarded as instantaneous). Here we place the time axis vertically  Specific system-life-cycle concrete example: Television We have a concept of a state as something durable until an event is presented and processed. Systems characterized by this kind of behaviour are called reactive systems, since they do nothing until they react to an event. For a computer system, this suggests that the system is actually idle (as regards machine processing cycles) when it has settled into a state. However, this need not be the case. For example, a multi-threaded application might be modelled with states which represent the fact that low priority threads are running - such a system would still be able to react to events which interrupt at a higher priority. It may even be necessary to represent cpu-bound tasks as states, perhaps using several states so as to model events as having been recorded but unable to be processed until the task completes. Input data to a program can also often conveniently be thought of as a sequence of events. In this case, the program will normally have instant access to the next event (apart perhaps from an occasional disc-access), and so will be cpu-bound, but this does not detract from the state model. An example of such a kind of program is a compiler where the input tokens can be regarded as events; the state is some record of completed successful parsing of terms in production rules. We can ask the question: what does it mean to say a computer system is in a particular state? The system modeller may distinguish states according to a mental model of the system, or according to situations (such as use-case situations) from the requirements or specification documentation. It should be possible to distinguish in the system implementation between states which the modeller has defined somehow - either by direct observation of the system, or by examining the system behaviour as further events are presented and processed. If two states show identical responses to any sequence of events that is processed from a system in such a state, then they are indistinguishable and are best modelled as one state, so as to avoid redundancy in the model. Conversely, if a particular state has been defined in a model, that state must show identical behaviour as regards its response to further events, irrespective of how that state was arrived at by preceding sequences of events. As an initial modelling technique, we consider a system as being in just one state at any one time. This will be extended later. We can also describe the state at a microscopic level. A computer application, based on binary memory and registers, at the finest level of detail, has as many states as bit patterns in its memory and registers (e.g. program counter, accumulator, working registers, overflow and carry indicators, interrupt registers, device registers, system clock) - as far as these can impinge on the application - in other words 2N, where N is the number of bits in all this memory and registers. The macroscopic states that a system modeller defines are equivalence classes of the microscopic states. Deterministic state-based testing Deterministic systems always process an event from a given state in the same way. Nondeterministic systems show alternative permissible outcomes. This is usually due to working at a level of abstraction at which detailed system information is lacking, or because of limited control and observation of the IUT (Implementation Under Test). We first consider the deterministic case. When states are controllable (i.e. we can directly set any state in the IUT), and are observable, we have the white-box situation. If states can only be set by driving the system through a transition sequence to reach them, and if states must be deduced from system output produced on transitions (traces), then this is a black box situation. We consider these in turn. White box testing We wish to exercise all events under all state configurations. For a state machine consisting of three parallel machines, we wish to execute the following pseudo-code: For each state i in parallel machine 1 For each state j in parallel machine 2 For each state k in parallel machine 3 For each event { Put machine 1 in state i Put machine 2 in state j Put machine 3 in state k Process event Check IUT is in correct state } The oracle comes from some executable state behaviour model (SBM). The process of sending instructions to the SBM and IUT is illustrated in the following figure:  White-box state-based testing A typical message-sequence diagram of the testing process is as follows:  Message Sequence Diagram for White-Box State Based Testing There is an issue as to whether the For all events loop should refer to all events that are transitionable (i.e. they will trigger some transition) from the state as set in the outer loop, or to all events in the model absolutely. A possible problem with the latter is that some tests may be hard to run, or be unrunnable. This might be because a certain event cannot be offered to the implementation for processing in certain states. For example, one cannot press a button on a GUI (graphical user interface) if that button is not present in some context (though one can verify that the button really is absent). As another example, one cannot call a function on a certain thread if that thread is currently executing another function. So certain tests may have to be excluded. A caveat to the tester is that when a designer or developer says the program logic precludes the situation where this event is offered to this state, the tester should verify this before accepting it, by some form of testing and/or by a code review. How should the state behaviour be represented? Early work used a state-relation table, or SRT, in which entries in the first columns define initial states, a middle column contains the event, and the latter columns define final states, i.e. states after processing the event. The use of wildcards can help keep the table size reasonable. An SRT has affinities with a decision table. At Philips, a program by David Yule has been used to obtain an oracle to state behaviour this way, to test inter alia a DVD player and a set-top box. As an example (without parallelism), the figure below shows a dynamic model of a smart card reader, followed by part of an SRT representing it.  Dynamic model of smart card reader The state-relation table below represents part of the above model, using the notation ? for a wildcard, and #0 for as in the first column. Start StateEvent Result StateDisconnectedConnectNo_CardDisconnected?#0?DisconnectDisconnectedNo_CardInsertCardResettingNo_Card?#0?RemoveCardNo_CardErrorErrorHandledResetting Partial state-relation table for a smart card reader A disadvantage to state-relation tables is that they are hard to maintain (write only). What is needed is something that users can more easily relate to the diagram of a statechart. Statechart systems A diagram showing states and transitions is called a state-transition diagram. Statecharts extend the basic notion with hierarchical structure, to be described in detail later, but evident in  REF _Ref57193758 \r \h Figure 9, which is a statechart. Such a representation provides a compact and intuitive means to express all the relationships between states, events, and new states after processing the event. Statecharts were first proposed and used by David Harel [Harel]. We now consider the primitives of a statechart in more detail. A transition is what maps a source state and event to a new state (the target or destination state). We say the event triggers the transition. States are conventionally denoted by circles or rounded boxes, and transitions by arcs with an arrowhead. Transition arcs are normally annotated with the events that trigger the transition (not with transition names). The present author frequently adopts for compactness the convention of [CHSM] in using Roman-letter names for states and Greek-letter names for events in an abstract model. Transitions are often not named they are normally referred to as the transition on event some event, qualified by the source state if necessary to avoid ambiguity. A transition triggered by events  or  is drawn as follows:  To explicitly name a transition, we will use the following diagrammatic convention:  We now give an elementary example of a state-transition diagram.  Elementary state-transition diagram The above diagram models a system as having: three states: a, b and c. The initial state is a (symbol ). five events: , , ,  and . four transitions: t1, t2, t3 and t4. At any one time, a system modelled by the above state-transition diagram will be in one and only one state. That state is called the occupied (or active) state. The others are vacant (or inactive). Transitions whose source states are vacant (at the time an event occurs) do not cause any state transitioning to take place they are inapplicable (or invalid) in the current state. If an event occurs which is the trigger to a transition whose source state is occupied, then (apart from exceptional situations to be considered later) the transition takes place. The source state is vacated and the target state is occupied. In the above example, when the system is in state a, it will react to event  by executing transition t1, i.e. by transitioning from state a to state b. If the system is not in state a, then transition t1 is not applicable because the system is not in t1's source state. Only one transition takes place as a result of one occurrence of this event, so transition t2 does not take place as well, unless (and, in this case, until) another event ( or ) occurs. Notice that: there can be several transitions emanating from any state (for example t1 and t3 from state a). an event can be a trigger to more than one transition (for example  triggers t1 and t2), but, (until we consider nondeterminism), we do not expect to find two transitions triggered by the same event from the same source state. a transition can be triggered by more than one event, in which case any one of the events will trigger the transition. For example, transition t3 is triggered by event  or . If an event occurs which does not trigger a transition, (for example if in state b event  occurs), then the event is disregarded and no state change occurs. This is not an indication of an error. Indeed, if such an event does represent an error in a system, then the state-transition diagram should model the error-handling, for example with a transition to a new state error. There is then nothing special about a state called error except its interpretation. The way in which the state transition diagram of  REF _Ref511633276 \r \h Figure 10 is represented in the STATECRUNCHER language is: statechart sc(s) event alpha,beta,gamma,delta; cluster s(a,b,c) state a {alpha->b;beta,delta->c;} state b {alpha,epsilon->c;} state c {beta,gamma->a;} The syntax will be fully explained later. For the moment, observe that the state transition diagram is declared as a statechart, which consists of a cluster s, which consists of three (leaf-) states a, b, and c. A cluster indicates a grouping in which no more than one member state can be occupied (the XOR-state of [Harel]). Events are declared and are used in transitions, which are denoted by events -> target state; State behaviour modelling is part of the UML (Unified Modelling Language) dynamic view. It is not particularly onerous to prepare STATECRUNCHER models using a text editor. But an alternative way might be to use CASE (Computer Aided Software Engineering) tools to draw the diagram, and use them to export the state machine view in textual form. Utilities could then be written as necessary to convert exported descriptions to STATECRUNCHER code. A good public domain tool that relates well to statechart diagrams, supporting hierarchy and concurrency, is CHSM by Paul J Lucas [CHSM]. It generates a C++ class having the same behaviour as the statechart. As such, the class behaves consistently, even if the statechart is nondeterministic. CHSM has been used for testing at Philips, and it provided the inspiration and a basis for the extended system, which is the subject of this thesis. The main extension to be discussed is alternative outcomes under nondeterminism, but we begin with some more basic concepts. The hierarchical structures supported by statecharts are hierarchy and parallelism, which lead to the concept of a cluster and set. If a cluster is occupied, then exactly one of its member states must be occupied. If a set is occupied, all its member states must be occupied (the AND-state of [Harel]). The members may be leaf-states, or clusters or sets themselves. Clusters The following figure illustrates a cluster, with the source code in STATECRUNCHER (which is similar to that of CHSM). Cluster and transition target notation [model t4160] Source code: statechart sc(sys) event alpha, beta, gamma, delta; event epsilon, zeta, eta, theta; cluster sys(a,cl) state a {alpha->cl; eta->cl.c;} cluster cl(b,c,d){beta->a; theta->cl.d;} state b {gamma->c;} state c {delta->d; epsilon->$a;} state d {zeta->$cl;} The syntax of STATECRUNCHER is such that target states are by default a sibling of the source state. Non-sibling target states need more precise specification than just their name, giving their scope. Parent scope is specified using the operator "$". A grandparent scope would be designated by "$$". Descent into child states is achieved using the operator ".". Grandchildren would be designated using this operator twice, e.g. cl.d.grch. Note that on event theta a transition will take place from anywhere in cluster cl to member state d. On loading this model, STATECRUNCHER will enter the default state and give the following output: 2 statechart sc 2 cluster sys [sc] = OCC [] ** 2 leafstate a [sys, sc] = OCC [] ** 2 cluster cl [sys, sc] = VAC [] 2 leafstate b [cl, sys, sc] = VAC [] 2 leafstate c [cl, sys, sc] = VAC [] 2 leafstate d [cl, sys, sc] = VAC [] 2 TRACE =[] 2 TREV [[alpha, [sc]], 0, [], []] 2 TREV [[eta, [sc]], 0, [], []] States are indicated with their position in the hierarchy and their occupancy. Occupied states are emphasized by a double asterisk. The output also shows TRansitionable EVent information, i.e. what events can be responded to, (with some other details not discussed right now). On processing event eta, the following output is obtained: 3 statechart sc 3 cluster sys [sc] = OCC [] ** 3 leafstate a [sys, sc] = VAC [] 3 cluster cl [sys, sc] = OCC [] ** 3 leafstate b [cl, sys, sc] = VAC [] 3 leafstate c [cl, sys, sc] = OCC [] ** 3 leafstate d [cl, sys, sc] = VAC [] 3 TRACE =[] 3 TREV [[delta, [sc]], 0, [], []] 3 TREV [[epsilon, [sc]], 0, [], []] 3 TREV [[beta, [sc]], 0, [], []] 3 TREV [[theta, [sc]], 0, [], []] Sets A set is illustrated in the figure below, with STATECRUNCHER source code following: Set and transition target notation [model t4170] Source code: statechart sc(sys) event beta, gamma, delta, epsilon, theta; event pi, rho, tau; cluster sys(a,b) state a {theta->b; gamma->b.b1; \ beta-> b.(b1.q/\b3.t); \ delta->b.(b1.q/\b2.r/\b3.u);} set b(b1,b2,b3) {theta->a;} cluster b1(p,q) {gamma->$a;} state p {pi->q;} state q {pi->p;} cluster b2(r,s) state r {rho->s;} state s {rho->r;} cluster b3(t,u) state t {tau->u;} state u {tau->t; epsilon->$$a;} When members of sets are clusters (as they often are), the rounded rectangle for the cluster can be omitted. In defining transitions, strictly one should distinguish targeting the set as a whole (as is done by a transition on theta), and targeting a single member, as is done by a transition on gamma). But in practice there is no difference, because targeting the whole set entails entering the default state in each member, and targeting just one member entails entering that member and, (in order to maintain integrity of the set occupation rule) the remaining members too. When targeting sets, individual states in different members can be specified, using the split operator, "/\". The transition on beta does this, though it does not specify a target in all members. Where no explicit target is specified, the default is taken. On entering the initial state, the STATECRUNCHER output is: 2 statechart sc 2 cluster sys [sc] = OCC [] ** 2 leafstate a [sys, sc] = OCC [] ** 2 set b [sys, sc] = VAC [] 2 cluster b1 [b, sys, sc] = VAC [] 2 leafstate p [b1, b, sys, sc] = VAC [] 2 leafstate q [b1, b, sys, sc] = VAC [] 2 cluster b2 [b, sys, sc] = VAC [] 2 leafstate r [b2, b, sys, sc] = VAC [] 2 leafstate s [b2, b, sys, sc] = VAC [] 2 cluster b3 [b, sys, sc] = VAC [] 2 leafstate t [b3, b, sys, sc] = VAC [] 2 leafstate u [b3, b, sys, sc] = VAC [] 2 TRACE =[] 2 TREV [[theta, [sc]], 0, [], []] 2 TREV [[gamma, [sc]], 0, [], []] 2 TREV [[beta, [sc]], 0, [], []] 2 TREV [[delta, [sc]], 0, [], []] On processing event beta, the output is: 3 statechart sc 3 cluster sys [sc] = OCC [] ** 3 leafstate a [sys, sc] = VAC [] 3 set b [sys, sc] = OCC [] ** 3 cluster b1 [b, sys, sc] = OCC [] ** 3 leafstate p [b1, b, sys, sc] = VAC [] 3 leafstate q [b1, b, sys, sc] = OCC [] ** 3 cluster b2 [b, sys, sc] = OCC [] ** 3 leafstate r [b2, b, sys, sc] = OCC [] ** 3 leafstate s [b2, b, sys, sc] = VAC [] 3 cluster b3 [b, sys, sc] = OCC [] ** 3 leafstate t [b3, b, sys, sc] = OCC [] ** 3 leafstate u [b3, b, sys, sc] = VAC [] 3 TRACE =[] 3 TREV [[pi, [sc]], 0, [], []] 3 TREV [[rho, [sc]], 0, [], []] 3 TREV [[tau, [sc]], 0, [], []] 3 TREV [[gamma, [sc]], 0, [], []] 3 TREV [[theta, [sc]], 0, [], []] The rule for set occupancy is seen, with each member cluster (b1, b2 and b3) being occupied. Additional (deterministic) features A summary of additional enhancements to the basic idea of a statechart is now given. These are illustrated in STATECRUNCHER syntax, but the features are not unique to STATECRUNCHER. It should be borne in mind that these are introduced for user convenience (as with the cluster and set structures). Any finite model can be flattened to an equivalent leafstate-only model, but for any sizeable statechart, the flattened model is totally unwieldy. Internal events are generated when any state is entered or exited. So it is possible to have a transition as follows, where $x.y is some parallel state (addressed relative to the parent of state b). Internal event Variables can be defined and assigned to expressions on state entry or exit (the triangles pointing in or out of a state make for a compact notation, but UML uses keywords entry/ and exit/ inside the state). Assignments can also be on transitions. STATECRUNCHER allows for integer ranges and enumerated types, booleans, and strings. Variable assignment Variables and events can also be declared locally to a part of the hierarchy and be addressed with scoping operators. The operators have high precedences and can be used in arithmetic expressions, e.g. n=i+$j+s.t.k. If this assignment is found on a transition, n and i are in the scope of the source state of the transition, j is in the scope of the parent of the source state, and k is in the scope of child t of sibling s of the source state. A library of functions (such as maximum) is also provided. Transitions can be conditional. The conditional expression in square brackets will evaluate to a Boolean value (but as in the C language, 0 is taken as false and nonzero is interpreted as true). The expression may refer to the occupancy of another parallel state, using the in() function, as in the example below. This gives the equivalent of multiple source states of a transition. Conditional transition Events can be parameterized. The destinations for the parameters are listed in round brackets. A parameter may be used in the condition of the transition triggered by the parameterized event. In this example, care has been taken that there should be no nondeterminism.  Parameterized event Events can be fired on state entry or exit, or on transitions. Fired events and variable assignments are examples of what STATECRUNCHER calls actions. Some parallel part of the statechart will respond to the fired events if that is applicable.  Fired events There can of course be several actions on a transition or on entry or exit. An assignment has been included in the above figure to show this. The exact ordering of actions is a semantic issue, discussed later, with good arguments being made for various alternatives. Actions can be conditional. This is a separate matter to transitions being conditional. In the figure below, the transition is unconditional, but the action is conditional.  Conditional action Conditional actions can also have an else part, and the if-actions and else-actions can themselves be conditional (not illustrated). Transitions can be internal. This means that there will be no state change, but any actions on the transition will be executed. In  REF _Ref33941342 \r \h Figure 19, on event  the internal transition will take place provided cluster p is in the occupied state. Internal transition Transitions can have an orbital trajectory. In the figure below, the transition on event  causes cluster p to be exited and re-entered, whereas the transition on event  does not. This is reflected in the resultant occupied member of cluster q. Orbits can be to any height in the hierarchy, and are specified as event>orbitalstate>target-state. In the diagram, the loop in the transition arc emphasizes the orbit. Orbital transition When a cluster is exited, the member that was occupied is stored as the historical state. UML uses pseudo-states to indicate entering clusters either recursively (deep history) or just at the top cluster level. History can be (deep-) cleared. STATECRUNCHER currently marks a cluster with a (deep-) history marker (as in CHSM), indicating how the cluster is to be entered if a transition targets it. A deep-history cluster can be shallow-history-entered by deep-clearing its child history, or default-entered by deep-clearing its own history. UML's pseudo-states may be implemented in the future, where transitions can individually specify whether a (deep-) historical state is to be entered or not. In  REF _Ref36450114 \r \h Figure 21, the transition on  will cause the historical states of cluster b to be entered. Initially this is state b1, but if the last occupied states were b2 and q, then these would now be entered. However, event  clears b's history, and if this has happened since exiting b, then the transition on  will target member b1.  (Deep-) History Black box testing With white-box testing, we assume the state and variable values in the IUT (Implementation Under Test) are observable. In the black box case, this is not so, and only sequences of outputs, called traces, are observable. The basic testing paradigm is as shown in the figure below (compare with  REF _Ref71350780 \r \h Figure 7).  Black box testing - compare traces Trace elements can be produced wherever an action is allowed: on transitions, on state entry and on state exit. Some transitions may not produce any output, or produce the same output that other transitions produce. For this reason, a transition tour, (where all transitions are taken, and output from the tour is verified, but where that is all), is not a strong test. This is also known as the Chinese postman tour, after a publication by [Kwan] in 1962. Stronger testing can become quite difficult, involving transfer sequences to each state, with further event sequences to be executed in order to verify that the system is in the expected state. States can be checked in various ways; for deterministic systems, the best-known methods are: the D-method, or distinguishing method, where a sequence of events is sought such that the output produced distinguishes all states. A distinguishing sequence might not exist. The concept was known to [Hennie] in 1964. the W-method, also known as the characterizing set method [Chow], where a set of event sequences are sought which collectively identify the state. A disadvantage is that in general the state under investigation must be regenerated many times so that each member of the characterizing set can be applied to it. the U-method, or unique I/O sequence method [Sabnani], where an event sequence is sought for the expected state, which distinguishes this state from any other state, without necessarily identifying the actual state in the case of mismatch. Some of the methods are often considered impracticable, due to exponential calculation time with the size of the machine, or the sequence may not exist, (D and U methods). There are many optimizations to the basic algorithms in the literature, sometimes making extra assumptions about the state machine. For an overview of test sequence generation, see [Lee], [Dahbura], and the Philips report by [Koymans]. Although most theoretical articles describe a finite state machine in terms of a machine without hierarchy or parallelism, a concurrent hierarchical statechart can be flattened (or unfolded), since any configuration of state occupancies, variable values and historical states can be regarded as a single flattened state. So the theoretical results are fully applicable to statecharts. The figure below shows a trace of an expression value on a transition. Trace on a transition All traces recorded in this way are part of the output STATECRUNCHER produces per world when given a command to do so, e.g. 3 TRACE =[44] Points of control and observation When testing distributed systems, or systems with restricted observability and controllability, it is useful to categorize events (and traces) according to their PCO Point of Control and Observation. PCOs are defined in [ISO 9646-1]. When STATECRUNCHER lists transitionable (and other) events, it includes their PCO. Traces are under user control and can contain an indication of the PCO that produced them. Nondeterministic testing The distinguishing feature of STATECRUNCHER is its handling of nondeterminism. The basic principle that is applied is that, where alternative outcomes of processing an event are possible, each one is produced in a world of its own. In general, there will be several worlds in existence, and when an event is processed, it is processed in all of them. Identical worlds are merged (i.e. redundant worlds are eliminated). For worlds to be identical, their state occupancy and history and all data (variable values) and their traces must be identical. When testing, a comparison must be made between actual output and a match in any of the extant worlds. In the figure below, the sacks on the model side represent worlds.  Testing with a nondeterministic oracle It is a major issue to discuss the ways in which the different worlds can come about. The subject is addressed in section  REF _Ref513614242 \r \h 4, where we meet fork nondeterminism, race nondeterminism and other forms of nondeterminism. STATECRUNCHER and the TorX tool chain TorX is a tool chain delivered by the Cte de Resyste Project [CdR]. It separates out areas of concern in testing into distinct processes. Different test generation algorithms can be plugged in at the Primer level. STATECRUNCHER, which is an Explorer in TorX terminology, provides a command language to this end, described in detail in [StCrPrimer], but summarized in section  REF _Ref60655575 \r \h 8. The test harness is incorporated into the Driver.  TorX tool chain STATECRUNCHER has been experimentally integrated into this tool chain by Philips Research India - Bangalore. We show screenshots of this in chapter  REF _Ref58506404 \r \h 10. Alternative modelling techniques to state-based modelling Experience has shown that a common category of system defects is a fault in their state behaviour. However, state behaviour is not always the dominant characteristic of a system, and it is worth mentioning alternative approaches and discussing when each approach is particularly relevant. State-based modelling is appropriate where the memory aspect of a system is prominent: the system reacts one way or another way to the same event depending on something that has happened in the past. Decision tables and cause-effect graphs Systems which simply show feed-forward logical behaviour are often better modelled by Decision Tables or Cause-Effect Graphing, described in [Myers, p.56]. The idea here is to model the relationships between logical (binary) inputs and outputs in terms of logical functions (and-gates, or-gates, not-gates) and constraint relationships between them and their derivatives (exclusive, requires, masks etc). The figure below shows how outputs Y and Z are related to inputs A B C F G H J K P Q R S and T. It also how the inputs are constrained amongst themselves in that one and only one of B and F can and must be true, and G requires H, i.e. for G to be true, H must be true.  A cause-effect graph State behaviour can be imitated to some extent using cause-effect graphs some of the inputs could represent states, and others events, and the outputs might represent new states. But this is clearly not as elegant as a state machine model. Moreover, it has its limitations, since we cannot obtain a transition tour directly from this format. Syntax testing Another modelling technique is to describe the syntax, not only of input data and input commands, but of the conventions and protocols of inter-process communication perhaps even of inter-module communication. This is related to state modelling (mention has already been made of regarding input tokens to a compiler as events), but there is a difference in perspective. In addition to basic coverage of legal syntax, there will probably be a strong emphasis on checking the behaviour of the system when invalid input is processed. Reference: [Beizer, Ch. 9] Orthogonal arrays A testing technique to test pairwise (or any subset-wise) every combination of parameters is to use orthogonal arrays. The technique is applicable to interacting subsystems as well as parameters. For a popular article, see [Phadke]; for a library of orthogonal arrays, see [Sloane]. Suppose a routine needs testing with 4 parameters, (A, B, C, and D), each of which can take 3 values (1, 2, and 3). Exhaustive testing would require running 34=81 tests. Now suppose we find it adequate that all pairwise parameter value combinations are taken. A table can be found satisfying this with 9 entries of values of the 4 parameters as follows: ABCD 1111 1223 1332 2122 2231 2313 3133 3212 3321 For pairwise coverage we speak of orthogonal arrays of strength 2. If we had required that all triples of parameters should be covered for all combinations of values, the strength would be 3 and so on. The above array is equivalent to the one published by Sloane at http://www.research.att.com/~njas/oadir/oa.9.4.3.2.txt. There is opportunity to combine orthogonal array techniques with state-based testing where there are parameterized events. Summary of this section This section discussed the concepts involved in state modelling and state-based testing, and introduced STATECRUNCHER, but reserved its handling of nondeterminism for the next section. We concluded with a quick look at alternatives to state-based testing: cause-effect graphs, syntax testing, and the use of orthogonal arrays. For a more detailed discussion of testing in relation to the software development lifecycle, see the appendix [StCrContext]. Nondeterminism This section gives an informal treatment of nondeterminism in state behaviour; for a precise definition, see section  REF _Ref57290918 \r \h 7 ( REF _Ref57290924 \h The transition algorithm). Although the concepts of forks, races and interleavings are well-known in the literature, we believe that our implementation of a UML-compatible language to handle these concepts in a concurrent, hierarchical statechart exhibits many novel features. Since nondeterminism is a major source of combinatorial explosion, we consider ways of containing state space issues in this section. Review of nondeterministic testing In the previous section, we saw that nondeterminism is represented by different worlds, and that in testing an implementation, we accept its behaviour provided that it is in accordance with one world generated by the model:  Review of testing with a nondeterministic oracle We now consider various forms of structured nondeterminism as supported by STATECRUNCHER. This is the main novel area of the present work. The novelty with respect to existing systems is that we provide a broadly UML-compliant statechart language supporting structured nondeterminism, i.e. nondeterminism relating to the concurrent and hierarchical elements of statecharts. Existing experiments in nondeterministic testing, such as the Cte de Resyste project [CdR], use the languages LOTOS and PROMELA. Whilst these experiments have been very successful, are well-suited to the telecommunications industry, and have provided great inspiration, we feel that UML-aligned modelling is more accessible to most software practitioners. Within Philips, evaluations are currently (2003) taking place with STATECRUNCHER in the TorX tool chain as delivered by the Cte de Resyste project, and the results are encouraging (discussed in section  REF _Ref58506404 \r \h 10). Fork nondeterminism Fork nondeterminism occurs where there are several transitions on the same event from the same source state. The figure below illustrates fork nondeterminism on events ,  and .  Fork nondeterminism [model u5420] The forks are emphasized by the double ellipses. The first fork is on event , where the fork leads to two different target states. Then on event  there is another fork, but with two transitions from different source states (b1 and b2) converging on the same target state. A duplicate world will be discarded, and there will be 3 resultant worlds. On event , two worlds do not respond (those in states c1 and c3); these will be left intact. Departing from the world where c2 is occupied, there are 5 transitions, but they only lead to 4 new worlds, because the transitions marked  {v=v*10+1+1} and {v=v*10+2} lead to an identical world. They target the same state and set an identical value of the only variable v, whilst history and traces do not come into play. In all there are 6 worlds after event . The model can effectively be reset by event , which will be processed in all worlds, but will take them to the same configuration, and duplicates will be removed, leaving one world. After processing event , the configuration as given by STATECRUNCHER is as follows. 3 statechart sc 3 cluster m [sc] = OCC [] ** 3 leafstate a [m, sc] = VAC [] 3 leafstate b1 [m, sc] = VAC [] 3 leafstate b2 [m, sc] = OCC [] ** 3 leafstate c1 [m, sc] = VAC [] 3 leafstate c2 [m, sc] = VAC [] 3 leafstate c3 [m, sc] = VAC [] 3 leafstate d2 [m, sc] = VAC [] 3 leafstate d3 [m, sc] = VAC [] 3 leafstate d4 [m, sc] = VAC [] 3 VAR INTEGER v [sc] =0 3 TRACE =[] 3 TREV [[gamma, [sc]], 0, [], []] 3 TREV [[alpha, [sc]], 0, [], []] 4 statechart sc 4 cluster m [sc] = OCC [] ** 4 leafstate a [m, sc] = VAC [] 4 leafstate b1 [m, sc] = OCC [] ** 4 leafstate b2 [m, sc] = VAC [] 4 leafstate c1 [m, sc] = VAC [] 4 leafstate c2 [m, sc] = VAC [] 4 leafstate c3 [m, sc] = VAC [] 4 leafstate d2 [m, sc] = VAC [] 4 leafstate d3 [m, sc] = VAC [] 4 leafstate d4 [m, sc] = VAC [] 4 VAR INTEGER v [sc] =0 4 TRACE =[] 4 TREV [[gamma, [sc]], 0, [], []] 4 TREV [[alpha, [sc]], 0, [], []] STATECRUNCHER has produced 2 worlds. Space does not permit us to reproduce the output on processing events  and . In practice, fork nondeterminism is used to model cases in which there is uncertainty about what will happen, e.g. because of limited control over the IUT's environment. An issue in fork nondeterminism We have seen fork nondeterminism where the transitions have the identical source state:  Fork nondeterminism with same source state But how is the following situation to be handled? The transitions are named t1 and t2.  Hierarchical issue There are three ways this could be handled: We could say it is fork nondeterminism, with one world ending up in state m.b1 and the other in state b2. We could say that we prioritize and override by specialisation, saying that t1 takes precedence, because its source state is deeper in the hierarchy, and it masks t2. In this case, the model is deterministic. This is the approach taken by UML, and is in line with overriding member methods in C++ derived classes. We could say that we prioritize and override by the more external transition, saying that t2 takes precedence and masks t1. In this case, the model is again deterministic. This approach has the advantage that an external transition cannot be affected by (perhaps poorly understood) internals of a deeply embedded machine. This is the approach taken by [CHSM]. As pointed out by Lucas in [CHSM], under this scheme we can alter the precedence as follows:  Forced prioritisation reversal giving specialisation STATECRUNCHER implements option (2) and conforms with UML, since that is the standard with which many designs comply. A more general situation occurs when there are different levels of forks, and where the transitions are conditional:  Forks in a hierarchy with conditional transitions The hierarchical prioritization scheme means that transitions t1 and t2 form a fork, and t3 and t4 are masked by this and are not triggered by event . If t1 has a false condition, then only t2 is taken and there is no nondeterminism. If t1 and t2 have false conditions, then t3 and t4 come into view and form a fork. STATECRUNCHER proceeds as follows: Under an event, collect all possible transitions on it in the entire statechart hierarchy Evaluate all their conditions Find all innermost layers of the hierarchy that have at least one transition attached with a satisfied condition Take all satisfied transitions from these layers. To obtain behaviour equivalent to hierarchical impartiality on event  in the above figure under the hierarchical prioritization scheme, a self-transition fork can be introduced as follows:  Equivalent for hierarchical nondeterminism The original transitions on  are renamed 1 and 2. Two internal self-transitions are introduced as a fork on . One fires 1 and the other 2. STATECRUNCHER will generate separate new worlds for each. Race nondeterminism Race nondeterminism occurs where there are transitions on the same event in parallel components of the model (i.e. in different set members). The winner of the race may be distinguished by state occupancy or a variable value or a trace value or by cluster history. In the figure below, there is a race between the transitions on . They are distinguished by the resultant value of variable v, which, given an initial value of 0, is 12 in one world and 21 in the other. The resultant state occupancy is identical in these worlds.  Race - winner determined by variable value Race nondeterminism is a convenient way of expressing what would be fork nondeterminism in a flattened (or unfolded) model. The above model is equivalent to the following one:  Flattened race model In the above model, the states are marked so as to indicate the corresponding states and variable value in the statechart of  REF _Ref60476380 \r \h Figure 34. All structured nondeterminism is equivalent to fork nondeterminism in a flattened model. Although the flattened model in this case is very small, that is not normally the case, and a flattened representation is often not practicable. The next example shows a similar race, but the winner is distinguished by the transition that takes place in set member z. Only one can take place, and as soon as it has taken place, the internal event on the other one will have no effect, since the source state of that transition, z1, is no longer occupied.  Race - winner determined by state As with fork nondeterminism, the distinguishing aspect of the worlds generated, (so in a race, revealing the race winner), could also be trace values or cluster history. Set transit nondeterminism When a set is entered, all its members are entered. The order in which the members are entered may be significant, because of upon enter actions. STATECRUNCHER offers the facility to generate different orderings of entering the members. Similarly when a set is exited. Consider the following model:  Set transit nondeterminism [model u5410] We use strings rather than integers in the actions, because the integers could become very large. On processing event alpha, set b is exited in two orderings, then for each of those orderings, set c is entered in two different orderings. There are 4 different orderings of the set transit, and the values of u will register them: exit: (p2,p),(q2,q),b; enter: c,(i,i2),(j,j2); u=1234567890 exit: (p2,p),(q2,q),b; enter: c,(j,j2),(i,i2); u=1234569078 exit: (q2,q),(p2,p),b; enter: c,(i,i2),(j,j2); u=3412567890 exit: (q2,q),(p2,p),b; enter: c,(j,j2),(i,i2); u=3412569078 These orderings are produced in different worlds. The output lines showing the value of u in each world are: 22 VAR STRING u [sc] =[49, ...] =1234569078 23 VAR STRING u [sc] =[51, ...] =3412569078 32 VAR STRING u [sc] =[49, ...] =1234567890 33 VAR STRING u [sc] =[51, ...] =3412567890 If we transition back to set a with event gamma, say, then variable v will track another 4 orderings. And these will be done in the 4 existing worlds. That will produce 16 worlds. The last lines of output are: 157 VAR STRING u [sc] =[49, ...] =1234569078 157 VAR STRING v [sc] =[51, ...] =3412567890 157 TRACE =[] 157 TREV [[omega, [sc]], 0, [], []] 157 TREV [[beta, [sc]], 0, [], []] 157 TREV [[alpha, [sc]], 0, [], []] outworlds=[53, 54, 63, ... 156, 157] number of outworlds=16 The order of transit in this last world was: exit (j2,j), (i2,i), c; enter: b, (p,p2), (q,q2). Note that when a set member is exited, we exit the leafstate then always immediately follow this by the set member, before moving on to the other member. So we never have an ordering such as exit j2, exit i2, exit j, exit i. This would be too fine an interleaving, and would exacerbate combinatorial explosion. We have bracketed tied orderings such as (j2,j) in the above descriptions. If event beta is now given, then there will be 64 worlds. If then we process event omega, the variables are reset, and the number of worlds goes down from 64 to 1. Although our model does not show it, set transit nondeterminism is applied at several levels in the hierarchy if there are several sets at different hierarchical levels. Test model t6311 illustrates this, for which see [StCrTest]. Fired-event and multiple nondeterminism Fired event nondeterminism is an indirect form of nondeterminism that occurs when an action associated with a transition causes another event to be fired, and that other event itself gives rise to some form of nondeterminism. The following figure shows a model exhibiting fork, race, set-transit and fired-event nondeterminism in concert. The action of the transition on event  is to fire event . Event  triggers three transitions, which are explicitly named t1, t2 and t3. These give rise to a fork and race. The set of sequences produced is: {<t1,t2>, <t2,t1>, <t1,t3>, <t3,t1>}. Transition t1 gives rise to set-transit nondeterminism on entering set b2. In one set of worlds states p and p1 will be entered before states q and q1, and in another set of worlds this will be the other way around. The net result of processing event  is therefore to generate 8 worlds. The order in which transitions and set-member entry is done is recorded in the variable v, since each assignment to this variable adds a unique digit to the end of the current value.  Four kinds of nondeterminism in concert [model t5480] An example world generated on event  is: 66 statechart sc 66 set s [sc] = OCC [] ** 66 cluster a [s, sc] = OCC [] ** 66 leafstate a1 [a, s, sc] = VAC [] 66 leafstate a2 [a, s, sc] = OCC [] ** 66 cluster b [s, sc] = OCC [] ** 66 leafstate b1 [b, s, sc] = VAC [] 66 set b2 [b, s, sc] = OCC [] ** 66 cluster p [b2, b, s, sc] = OCC [] ** 66 leafstate p1 [p, b2, b, s, sc] = OCC [] ** 66 leafstate p2 [p, b2, b, s, sc] = VAC [] 66 cluster q [b2, b, s, sc] = OCC [] ** 66 leafstate q1 [q, b2, b, s, sc] = OCC [] ** 66 leafstate q2 [q, b2, b, s, sc] = VAC [] 66 cluster c [s, sc] = OCC [] ** 66 leafstate c1 [c, s, sc] = VAC [] 66 leafstate c2 [c, s, sc] = OCC [] ** 66 leafstate c3 [c, s, sc] = VAC [] 66 cluster z [s, sc] = OCC [] ** 66 leafstate z1 [z, s, sc] = VAC [] 66 leafstate z2 [z, s, sc] = OCC [] ** 66 leafstate z3 [z, s, sc] = VAC [] 66 VAR INTEGER v [sc] =612435 66 TRACE =[] 66 TREV [[gamma, [sc]], 0, [], []] 66 TREV [[omega, [sc]], 0, [], []] The value of v (=612435) shows that transition t2 was chosen from the fork of t2 and t3, and that it was executed before t1 in the race. This is corroborated by the occupancies of c2 and z2. The value of v shows that order of entering set b2 and its members is: b2, p, p1, q, q1. The other seven worlds have values of v of 613524, 135246, 124356, 712435, 713524, 135247, and 124357, with the corresponding state occupancies of c2, c3, z2, and z3. Permutations give rise to factorials, which are soon large numbers. In STATECRUNCHER, the following options for limiting the number of permutations are offered: the basic sequence without permutation (1 sequence) forwards and backwards only (2 sequences) all cyclic and anticyclic permutations (2n sequences) all permutations (n! sequences) Separate control of race and set permuting is offered. Set-action nondeterminism Processing a single transition may lead to actions taking place in several set members, even though no set member may be entered or exited. This could be seen as a special case of set-transit nondeterminism, but we consider it separately. The actions will be hierarchically grouped (or bracketed) and permuted as for set-transit nondeterminism. The example below contains a set of sets, and suffers from the beginnings of poor performance due to the many permutations involved. For that reason, part of the model has been commented out.  Set action nondeterminism [model t5412] When event  is given, all the set members undergo a local transition. (There is actually a race between them, but there is no difference in outcome whatever the race order, and we ignore the race). We could make all these set members transition back with another request to process event . As the set members transition back, they generate values of v that record the order in which it happened. Each order generates a different value of v. There are 5! = 120 orderings. Now event  will do a similar thing in principle, although it is only attached to one transition. But there is one difference in what happens: orderings will be hierarchically generated as follows: the 3! =6 orderings within set a will be generated, and the 2! = 2 orderings within set b will be generated. Then these 6 and 2 orderings will be regarded as single entities and ordered in 2!=2 different ways. So the total number of orderings will be 3!.2!.2! =24. We call this set-action nondeterminism. Set-meta-event nondeterminism This is similar to set-action nondeterminism. In our example below, we have a set containing a set containing two more sets, and we are not surprised to see poor performance, which is why part of the model has been commented out. Processing a single transition may lead to broadcast meta-events taking place relating to several set members, even though no set member may be entered or exited. The meta-events will be hierarchically grouped (or bracketed) and permuted as for set-transit nondeterminism. Example:  Set meta-event nondeterminism [model t5414] After event , any of events , _x, or _race will cause exiting of states, generating exit meta-events, triggering transitions in cluster z. Note that the transitions on the meta events respond from any state in cluster z, not just neutral. So all exit meta-events under consideration are recorded, in order. Events  and _x cause hierarchically grouped orderings as with set action nondeterminism, producing in this case 3!.1!.2! =12 orderings. Event _race will generate 12 worlds by a different mechanism: the transitions on this event are sequenced in two orderings by race nondeterminism, and one of the transitions produces 6 orderings by set nondeterminism. As it happens, _race is faster to process than _x. If after event , we again process event , a similar reset to the initial states in sets a and b occurs, but now all transitions race each other, and 4!=24 worlds are produced (when all permutations are enabled, i.e. under high race), or under medium race, 8 worlds. Effects of nondeterminism We have seen six causes of nondeterminism (fork, race, set-transit, fired event, set-action and set-meta-event). We now discuss the effects of nondeterminism, i.e. the ways in which it may manifest itself. State-occupancy nondeterminism This is the most obvious form of nondeterminism, where different states are occupied after the different transitions, and is naturally associated with fork nondeterminism.  State occupancy nondeterminism Variable-value nondeterminism If two statecharts have the same state occupancy, but with different variable values, the result is that the worlds generated are distinct. The following example illustrates fork nondeterminism resulting in different variable values.  Variable-value nondeterminism Trace-value nondeterminism Traces are by definition observable. They are written in by the trace() function. The following example illustrates fork nondeterminism resulting in different trace values.  Trace value nondeterminism History nondeterminism Just as variables can be the distinguishing factors in nondeterministic target states, so can history. In the following example, a transition from state qb under event  will lead to the same target state, c, as regards state occupancy, but history data distinguishes worlds and two worlds would be generated. A return transition on  will return to state qb if history data is present, or to state qa if history data has been cleared.  History nondeterminism Worlds As has been seen, under nondeterminism, STATECRUNCHER maintains several worlds. We will look at this in a little more detail. Consider the following model:  Fork nondeterminism [model u5420], for description of worlds The forks are emphasized as usual by the double ellipses. The first fork is on event , where the fork leads to two different target states. Then on event  there is another fork, but with two transitions from different source states (b1 and b2) converging on the same target state. A duplicate world will be discarded, and there will be 3 resultant worlds. On event , two worlds do not respond (those in states c1 and c3); these will be left intact. Departing from the world where c2 is occupied, there are 5 transitions, but they only lead to 4 new worlds, because two transitions lead to an identical world. In all, there are 6 worlds after event delta. The model can effectively be reset by event alpha, which will be processed in all worlds, but will take them to the same configuration, and duplicates will be removed, leaving one world. World numbers are arbitrary. Internally, the numbers are allocated sequentially as more and more events, transitions and actions are processed, but some world numbers may never be seen by the user as they are only used temporarily during processing (particularly when actions are involved). Worlds are not necessarily presented in numerical order, and the order is not significant. After any events, internally, before the user sees them, the worlds produced are a bag. If any worlds in the bag are identical, the bag is reduced to a set, as here; then they are presented to the user. Merging is just a bag_to_set operation. As has been mentioned, for the worlds to be identical, their state occupancy and history and all data (variable values) and their traces must be identical. World number 1 is special as it contains the initial data. This is kept as a save area to enable a reset to be done. The initial action when a model is run is to clone world 1 into world 2 and set that up as a starting point for further processing. On processing every event, new world-numbers are created for every derivative world. So we might have the following situation: Process event : worldbag immediately after processing this event = [3,4] Worldbag after reducing to a set = [3,4] Process event : worlds are [5,6,7,8] Worldbag after reducing to a set = [5,6,7]. Process event : worlds are [6,7,9,10,11,12,13,14,15,16,17,18] Worldbag after reducing to a set = [6,7,10,12,14,18]. This may seem to be uneconomical use of world numbers the first derivative world could sometimes use its ancestor's number but this scheme in simpler algorithmically and facilitates debugging and tracing the progress of event processing. A log with a unique reference to each world can be made. The figure below shows how worlds are generated as events are processed.  World generation and merging Containment of combinatorial explosion Statechart systems are subject to combinatorial explosion of state spaces, and when nondeterminism is introduced, the problem is exacerbated. We address the combinatorial explosion problem in this section. There are various levels at which some form of state explosion can occur: Representation explosion. The representation of the state space may require explicitly defining a large number of states. The use of statechart hierarchy and parallelism often mitigates this problem. If that is not the case, such a situation would suggest that the application being modelled is intrinsically complex or extensive. Effective state space explosion. Although there may be a compact representation of a model, using statechart facilities, there may still be a vast number of distinct effective states in the model. These would be explicit in a flattened (or unfolded) model. Coverage explosion. The testing technique may require visiting a large number of states, or executing a vast number of transitions, in order to achieve certain coverage requirements. World explosion. The number of nondeterministic worlds may become large. The first of these, representation explosion appears to be an application-specific issue. We briefly consider effective state space explosion and coverage explosion. The fourth level, world explosion is very pertinent to STATECRUNCHER and we will describe in some detail the ways in which the design of STATECRUNCHER addresses the issue. Effective state space explosion The effective number of states may be very large, even though the statechart representation is compact. This is especially the case because the hierarchical structure allows for parallel state machines, where the number of states in a flattened state space is the product of the number of states in each parallel machine. This is only a problem if every state in the whole machine needs to be visited, and if this really is the case the approach is to do it as efficiently as possible. Techniques for compact storage of many states are binary decision diagrams (see e.g. [Brard, pp.51-58]), used in [SPIN]), and hashing algorithms (to record whether a state has been visited). Minimizing the dynamic number of states generated is achieved by on-the-fly (or adaptive) testing, as opposed to batch (or preset) testing. With adaptive testing, shorter sequences of events can be used, because the feedback from the system under test to the test generator enables it to apply some intelligence and prune search spaces. Variables and state history adversely affect the number of states in the flattened state space, since we must take the Cartesian product of states and variable values and state history values. The modeller should take care to do equivalence partitioning (maybe using enumerated values), rather than declaring an integer as, say, {0,...,10000}, as it explodes the flattened state space. Coverage explosion Some test coverage criteria are: Reach every state of the flattened machine Take every transition arc in a flattened machine Even though a state space is large, it may be acceptable to traverse it in a limited way. A possibility is: Use Projected State Machine Coverage [Friedman, Farchi]. In this technique, states are grouped into equivalence classes. Each equivalence class is a single state in the projected machine. Specific forms of projected state machine coverage would be to: Reach and vacate every leaf-state of the hierarchical statechart, i.e. to ensure that every leafstate is occupied in some test, and that every leafstate is vacant in some test, whilst remaining indifferent to which leafstates are occupied in combination with which other ones (and to variable/history values). Take every transition arc in the hierarchical statechart, but again showing indifference to the circumstances (occupancy of states in parallel parts of the machine etc.). To regard all leafstates in clusters as equivalent. More research is needed to ascertain whether these forms of limited coverage are useful in practical testing. Useful ones will find (almost) as many faults as would have been found with more exhaustive testing. World explosion In STATECRUNCHER, it is not a model that specifies its nondeterminism, but the transition semantics that apply in principle to all STATECRUNCHER models. The number of dynamic states per world is similar to what it would be without nondeterminism. World explosion arises from large number of worlds that can be generated, as follows: There will be f worlds for a fork with f prongs There will be r! worlds for a race between r transitions There will be s! worlds for a set operation involving s set members. It is the factorials that are especially troublesome; we consider ways of containing them. In any case, race and set-transit (with its derivatives) nondeterminism are separately controllable in STATECRUNCHER and can be switched off. STATECRUNCHER offers the following containment features: A reasonable, not-too-fine granularity of interleavings in set nondeterminism, avoiding micro-orderings of state entry/exit. Separate control of how many permutations are generated under race and set nondeterminism. The ability to kill unwanted worlds, either as an explicit command, or in mid event processing, by specifying the expected trace (i.e. what the implementation has already given), so that worlds with a mismatching trace are pruned away quickly, nipping them in the bud. We explain these more detail below. The granularity of set-transit nondeterminism The number of worlds STATECRUNCHER generates on set-transit nondeterminism has been kept within reasonable bounds by avoiding excessive orderings of transition steps. This is illustrated using the figure below:  Set-transit detail On transition , two interleavings of the on-entry actions are set up (assume v=0): enter c, enter i, enter i2, enter j, enter j2. Variable v will be set to 12435. enter c, enter j, enter j2, enter i, enter i2. Variable v will be set to 13524. We do not generate the following interleavings (or any others): enter c, enter i, enter j, enter i2, enter j2. Variable v would be set to 12345. enter c, enter i, enter j, enter j2, enter i2. Variable v would be set to 12354. enter c, enter j, enter i, enter i2, enter j2. Variable v would be set to 13245. enter c, enter j, enter i, enter j2, enter i2. Variable v would be set to 13254. The above interleavings show what is lost by the restrictions imposed. The interleavings retained are analogous to a depth-first set-entering algorithm, and the ones discarded are analogous to a breadth-first set-entering algorithm. Depth-first algorithms are much more natural in most situations and in most programming languages, leading to the notion of a call tree. This explains our choice. In order to model a system which was capable of exhibiting the breadth-first orders of execution, it would probably be best to switch set-transit nondeterminism off (which can be done as an action in a model, or as an external command), and to manually supply separate transitions with actions representing each possible ordering the system could generate. These would then be processed as an explicit fork. When a transition enters several sets, the permutations take place at each hierarchical level, illustrated from  REF _Ref54258013 \r \h Figure 48 below.  Hierarchical set-transit (in outline) The outer set members are A (with members a1 and a2) and B (with members b1, b2 and b3). The following permutations will be generated: within S: and within A: and within B: , , , , , The net orderings on leafstate entry are therefore: , , , , , , , , , , , , , , , , , , , , This hierarchical permutation technique generates fewer permutations (here, 2!.2!.3!=24) than flat member permutation (here, 5!=120), since a subset of flat member permutations is always taken. This too is a form of containment of world explosion (assuming, as always, that we have not excluded a mode of behaviour that the system under test might actually exhibit). The orderings that are lost are ones such as . If they are required, they can be simulated (as in the  REF _Ref54257938 \r \h Figure 47 situation) by switching set-transit nondeterminism off and manually supplying separate transitions with actions representing each possible ordering the system could generate. Limited permutation generation Race condition nondeterminism and set-transit nondeterminism require, in principle, the generation of all permutations of a set of transitions. Different orderings of transitions can lead to different resultant states or different values of variables. A sequence of assignments, (each of which could be attached to separate transitions) such as v=v*10+1; v=v*10+2; v=v*10+3; gives a different result for each order of execution of the three assignments. The number of permutations of a sequence of length n is n!. For performance reasons, this restricts the applicability of exhaustive permutation generation to low values of n. If several cascaded permutations are involved, then the number of permutation sequences may be of the order of (n!)2 or (n!)3. The world-merging algorithm is not particularly efficient, and experience shows that it is necessary to keep the number of worlds below about 100 in practice, although this number will increase a little over time with the increasing power of computers. The number of variables and states in the statechart is an additional factor in this processing. The following table shows some powers of factorials: nn!(n!)2(n!)342457613,824512014,4001,728,00075,04025,401,6001.2802 x 1011103,628,8001.3168 x 10134.7784 x 1019 Factorial growth We would like to find a weaker alternative to generating all permutations of elements of the sets involved, but still retain some useful properties concerning the relative orderings of some of the elements of a set. In particular, a subset of all the permutations which covered all relative orderings of, say, any 3 elements of the set, would be useful. Example: given a set of 4 elements {a,b,c,d}, there are 24 sequences representing all permutations. However, if we only require that all relative orderings of any 3 elements are represented in a subset of the permutations, then just the following 6 permutations will suffice:  , , , , , The reader can verify that whatever subset of 3 elements of {a,b,c,d} is taken, e.g. {a,c,d}, and whatever permutation of this subset is taken, e.g. , then the relative ordering of these 3 elements will be found in at least one of the above 6 permutations of the original set. For our example, , the last-mentioned permutation meets the requirement: . The [n,k] problem The [n,k] problem is to find a (small) subset G of the permutations of a set S of n elements, such that all permutations of any k elements of S are found with their relative ordering in some element of G. What we have shown above is a solution to the problem of selecting a subset G of the permutation of a set of 4 elements, such that all permutations of 3 elements of the set retain their relative ordering in some element of G. We call this a solution to the [4,3] problem. We will now define some terminology, including the notion of embedding. Then we will address the [n,2] problem (which is very simple) and the [n,3] problem. Some terminology and context Sets All sets in the discussions that follow are assumed to be finite. Power set We denote the power set of a set S by P(S). Sequences Sequences contain elements in a particular order. In this discussion, sequences are assumed to be finite and with distinct elements. We represent sequences using angle brackets to enclose the elements. The head of the sequence is the first element; the tail of the sequence is the sequence remaining after removing the head. Example: Q=. Its head is a and its tail is . Precedence For a sequence A=i=1k (k(2) = ai precedes aj (in A) if ii=1k = B=i=1n = Sequence embeds into if there is a strictly increasing function f:[1..k] ( [1..n] such that ( r [1..n] ar=bf(r) Clearly |A| ( |B|; one sequence cannot embed into a smaller sequence. We use the notation A F B to denote that sequence A embeds into sequence B. Example of embedding F The permutation function Perm For any set X, we define Perm(X) to be the set of sequences representing all permuted orderings of the elements of X. Example of the permutation function Perm ({a,b,c}) = {,,,,,} Useful subsets of a permutation set Given a set S of n elements, it is desirable to have a subset of Perm(S), which we call G, i.e. G Perm(S), such that our embedding property holds for all sequences derived from all subsets of S of a certain size. We first define the set Sk, which is the set of subsets of S of size k, Sk = {s : P(S) | |s| = k s} i.e. the set of elements s of the power set of S such that the size of s is k. The embedding property that must hold is: ( s : Sk ( ( p : Perm(s) ( ( g : G pFg ) ) i.e. for all s in Sk it is the case that [ for all p in Perm(s) it is the case that there exists a g in G for which pFg ]. That is, every permutation-sequence of every size-k-subset of S embeds into at least one element of G. For convenience, we denote the elements of Sk, which are sets, by a single subscript: Ski We denote the permutation sequences of Ski, Perm(Ski), using a second subscript: Ski,j The subscripts i and j simply enumerate the elements. Example of useful subsets of a permutation set S= {a,b,c,d} P= Perm(S) = { , , , , , , , , , , , , , , , , , , , , , , , } Subset G consists of the bold sequences above: G= {G1, G2, G3, G4, G5, G6} , where G1=, G2=, G3=, G4=, G5=, G6= The set S3, (i.e. the set of subsets of S of size 3), is S3 = {{a,b,c}, {a,b,d}, {a,c,d}, {b,c,d}} The individual elements of S3 are: S31 ={a,b,c} S32={a,b,d} S33={a,c,d} S34={b,c,d} The permutations of these subsets together with the element of G into which they embed are: S31,1=FG1 S31,2=FG2 S31,3=FG6 S31,4=FG3 S31,5=FG5 S31,6=FG4 S32,1=FG1 S32,2=FG2 S32,3=FG4 S32,4=FG3 S32,5=FG5 S32,6=FG6 S33,1=FG1 S33,2=FG2 S33,3=FG4 S33,4=FG5 S33,5=FG6 S33,6=FG3 S34,1=FG1 S34,2=FG3 S34,3=FG4 S34,4=FG5 S34,5=FG6 S34,6=FG2 The above set G is optimal, i.e. there is no smaller set with the desired property. This can easily be seen because G contains the same number of elements as Perm of an S3i set. G can never have fewer elements, as no two permutations of elements the same S3i for any i can embed into the same element of G. Optimal solution to the [n,2] problem Given a set S S = {si}i=1n = {s1, s2, s3, ... sn} We select G to be the set of two sequences of the elements: in one order and in its reverse: G = {G1,G2} = {i=1n, j=n1} = {< s1, s2, s3, ... sn >, } Theorem For any set S, |S| ( 2, and set G as defined above: ( s : S2 [ ( p : Perm(s) ( ( g : G pFg ) ] This is the previously mentioned embedding property that must hold, for k=2. Proof All sequences S2u,v derived from S contain two distinct elements of S. For an arbitrary u and v, S2u,v= Case 1: pFG1 Case 2: p>q. It is seen from the definition of G2 that FG2  Example: S={a,b,c,d,e} G1=, G2= S2u,v = , which embeds into G2. Sub-optimal solution to the [n,3] problem (n(3) Although this solution is not optimal, it is linear with n, (|G|=2n), so it can be considered to be fairly good. Given a set S S = {si}i=1n = {s1, s2, s3, ... sn} and the permutation set P = Perm(S): We select G to be the set of the following 2n sequences of the elements: i=1n when i=1 (cyclic) j=in,j=1i-1 when i >1, i ( n (cyclic) i=n1 when i=n+1 (anticyclic) j=2n+1-i1,j=n2n+2-i when i >n+1, i ( 2n (anticyclic) Examples of G S={s1,s2,s3,s4,s5} G1= G2= G3= G4= G5= G6= G7= G8= G9= G10= S={a,b,c,d,e} G1=, G2=, G3=, G4=, G5= G6=, G7=, G8=, G9=, G10= We call G1...Gn the cyclic elements of G, and Gn+1...G2n the anticyclic elements. Theorem For any set S, |S| ( 3, and G as defined generically above: ( s : S3 [ ( p : Perm(s) ( ( g : G pFg ) ] This is the previously mentioned embedding property that must hold, for k=3. Proof All sequences S3u,v derived from S contain three distinct elements of S. For an arbitrary u and v, S3u,v= Without loss of generality, we can see an element of G into which this will embed by writing the elements of G in a form emphasizing the position of sp. We will use a form of arithmetic modulo n with an offset of 1 such that if p=n, then p+1(1 if p=1, then p-1(n It is not possible for both the above modulo adjustments to need to be made for the same p (since p=1, p=n, n(3 is false). All cyclic elements of G are of the form (prior to explicit modulo adjustment) Three cases come into view after making modulo adjustments: Gc-1: (p(n ,p(1) Gc-2: (p=n) Gc-3: (p=1) All anticyclic elements of G are of the form (prior to explicit modulo adjustment) Again, three cases come into view after making modulo adjustments: Ga-1: (p(n ,p(1) Ga-2: (p=n) Ga-3: (p=1) There are 6 main cases of to consider: Case 1: pp. embeds into the cyclic case Gc-3 Case 2: pr, r embeds into the cyclic case Gc-1 Case 3: p>q, q embeds into the cyclic case Gc-1 (p(n) or Gc-2 (p=n) Case 4: p>q, q>r, r embeds into the anticyclic case Ga-2 Case 5: p>q, qp. embeds into the anticyclic case Ga-1 Case 6: pr, r>p. embeds into the anticyclic case Ga-1 (p(1) or Ga-3 (p=1)  Examples of values of p,q,r for these cases representing typical permutations of three elements of a set of, say, 40 elements: {s1 ... s40}: Case 1: pp. p=10, q=20, r=30 Case 2: pr, rq, qq, q>r, rq, qp. p=20, q=10, r=30 Case 6: pr, r>p. p=10, q=30, r=20 We can also see the above case selection as working as follows. There are two sequences which start with any sp a cyclic one and an anticyclic one. A sequence is a candidate to embed into one of these. The tails of the two such sequences contain the remaining sq,sr elements in opposite orders. So one or the other will always satisfy the relative precedence requirement of sq and sr. Application in STATECRUNCHER STATECRUNCHER gives separate control over race and set nondeterminism, both from within a model and as an external command. For control of race nondeterminism: functionexternal command effectno_racenrOnly one ordering taken (forwards)low_racelrTwo orderings taken (forwards/reverse)med_racemr2n orderings taken (all cyclic, all anticyclic)high_racehrAll n! orderings of the permutation taken Control of race nondeterminism For control of set nondeterminism: functionexternal command effectno_set_trannstOnly one ordering taken (forwards)low_set_tranlstTwo orderings taken (forwards/reverse)med_set_tranmst2n orderings taken (all cyclic, all anticyclic)high_set_tranhstAll n! orderings of the permutation taken Control of set nondeterminism Set nondeterminism consists of set-transit nondeterminism, set-action nondeterminism and set-meta-event nondeterminism; they are all controlled by the same setting (the suffix _tran is a little misleading in this respect). Pruning worlds based on traces The commands to STATECRUNCHER include one to kill worlds, and this enables world pruning to be done by the Primer/Driver, when it is seen that some worlds do not match the IUT (Implementation Under Test) behaviour. The idea of optimising this process within STATECRUNCHER processing was first put forward by Tim Trew. The idea is for the IUT to produce its traces first, and for STATECRUNCHER to be given these and be asked to verify them, pruning worlds whenever it can en route. Non-matching worlds will be killed by STATECRUNCHER after processing any event, but also in the routine that processes a transition in one world. This routine is called after a series of reductions from the routine to process a set of transition sequences in many worlds, as explained in section  REF _Ref71352313 \r \h 7.6. It is a good point in mid-algorithm, just after new worlds have been produced, to prune them, nipping them in the bud.  Reduction of task processing Implementation in STATECRUNCHER Release 1.05 Abbrev. CommandCommand showing typical example and/or typical outputpe ...process event EVENT ?p=PARAMETERS ?t=EXPECTEDTRACE pe gamma p=[4,xy] (statechart scope assumed) pe [alpha,[sc]] p=1 t=[2,4] pe [alpha,[sc]] Parameters can also be supplied in STATECRUNCHER internal form, e.g. p=[[ex_co,int,4],[ex_str,[120,121]]] STATECRUNCHER command to prune worlds given a trace The idea is to process an event giving STATECRUNCHER a trace to expect. This would typically be what a SUT has already revealed. Supplying the expected trace to STATECRUNCHER serves two purposes: It may save the primer having to kill worlds It enables optimisations in STATECRUNCHER, because mismatching worlds can be nipped in the bud. Some traces are plain mismatches. But what should be done when STATECRUNCHER produces too little trace (undertrace), or too much trace (overtrace) while not being in flagrant violation of the expected trace? Examples (trace lists are read from right to left): undertrace: Expected-trace=[cd,ab], STATECRUNCHER-trace=[ab] overtrace: Expected-trace=[cd,ab], STATECRUNCHER-trace=[ef,cd,ab] Which of these should be permitted? Clearly, in mid-algorithm we must allow undertrace, as the rest of the algorithm may produce the required remaining trace. For the total algorithm, the requirement is not clear, and it depends on modelling philosophy. An argument for allowing overtrace is that the SUT may spontaneously produce the missing trace (e.g. by unsolicited notifications which have not been modelled as being initiated by an event). But is this a good approach to modelling? There is no clear argument for allowing undertrace. However, there may be ways of modelling in which it is required. STATECRUNCHER currently applies a very lenient strategy of allowing everything except a flagrant trace violation. This can be changed if required. Test models t5550 t5555, t5560, t5565 (q.v. in [StCrTest]) can be used for experimentation. Application in test strategies When black-box testing, worlds produced by STATECRUNCHER will be killed if their traces do not match the IUT's traces. This can either be done using the above mentioned pruning technique, or by explicit kill commands. If after a test STATECRUNCHER has been left with no worlds, the test has given a failure. The problem arises how to continue. It may be acceptable to fix the problem manually before continuing with testing; if not, automatic recovery will involve either recreating a previous set of worlds (which can be done by feeding world output back to STATECRUNCHER), from which subsequent tests can continue, or by a reset to the initial world from which an independent part of the test suite can run. If after a test STATECRUNCHER has been left with one world, then the tests are running as efficiently as possible. The notification example - and containment approaches A practical example shows that more is needed than the devices we have discussed so far. The notification problem as discussed here was identified by Tim Trew [Trew 03], who also proposed the basic technique of pruning worlds based on a supplied trace. A notification is a message between asynchronous processes, e.g. after one function (a client function) has called another (a server function) on a different thread. After the call, both functions can proceed on their own thread. The server function can communicate with the client function by sending messages to indicate progress, and ultimately, completion. (The client may also communicate with the server, of course).  Notifications A problem involving notifications is a good example of parallelism, two threads being active in parallel. It has the added difficulty that notifications are events that are generated by the system under test, rather than being events that are offered to the system under test. The result is that the system behaves nondeterministically - the number of notification events that will be generated is not known a priori by the state model. This is not a problem until the potential number of notifications becomes large, which is exactly what happens in the example we investigate: a TV program installation example. Program installation for one channel is a process of searching for a station with the tuner, reporting with notifications that that the search is in process. If a station is found, it will be registered. If no station can be found, the TV remains untuned. The program installation process can be stopped at any time. The state behaviour is (in part) represented by the following figure.  Notification example [model t4152] On the start_tuning event, the TV searches for a station by tuning. During the search, notifications are generated, representing search in progress. These notifications can be used to fill a progress bar. From the above model STATECRUNCHER generates worlds containing various numbers of notifications. When a station is found, the station_found event is generated. A fuller model would allow for stopping the program installation, and for failure to find a station. In a composite system of program installation and tuner as above, the start_tuning event is under the tester's control, but the notif and station_found events are generated internally to the IUT (Implementation Under Test), ultimately by hardware. The problem arises that a large number of notifications could be generated. The above model caters for up to 4 notification messages by using fork nondeterminism on event gen_notifs to generate: a world with no notifications a world with 1 notification a world with 2 notifications a world with 3 notifications a world with 4 notifications The STATECRUNCHER traces corresponding to this are: 4 TRACE =[] 9 TRACE =[notif_msg] 14 TRACE =[notif_msg, notif_msg] 19 TRACE =[notif_msg, notif_msg, notif_msg] 23 TRACE =[notif_msg, notif_msg, notif_msg, notif_msg] In practice, over 800 notifications can be generated. This number of worlds is rather excessive for STATECRUNCHER. What solutions can be found? One is to change our model of testing. Up to now we have been treating the model and the IUT symmetrically ( REF _Ref71350780 \r \h Figure 7,  REF _Ref71351373 \r \h Figure 22), giving them the same input and comparing their output. With white-box testing we can set and observe states, but with black box testing, we are restricted to processing events and observing trace output. The following improvements in efficiency are possible: Allowing for repetitions Conversion of traces to pseudo-events. They involve some degree of asymmetry between model and IUT. The first still allows for simultaneous processing in IUT and model, but requires special interpretation of certain model outputs. The second has the IUT precede the model in execution, and interprets IUT output in determining how best to verify against the model. A third technique is: Pruning worlds based on traces (section  REF _Ref53488171 \r \h 4.10.3.3). Repetitions We allow the IUT time to produce several outputs before comparing them with the model's output. We use an asterisk convention that the comparator should allow any number of notif_msg traces from the IUT against a notif_msg* trace from the model.  Repetition convention [model t4153] After processing event start_tuning, we have a trace of 5 TRACE =[notif_msg*] However, a problem arises if there can be several separate arbitrarily-interleaved notifications from different servers. Although a convention could be elaborated to cater for this, allowing for expressions with and and or operators, it would be rather cumbersome. Conversion of IUT traces to model events With this technique, we have a very simple model, as in  REF _Ref49592311 \r \h Figure 53. In state tuning, we wait to see what the output the IUT produces before processing an external event. (The driver may have instructions to wait a certain time when it sees a transitionable conversion-type event, which can be identified by its PCO). Every time the IUT produces an output of notif_msg, we see whether the model allows a transitionable event named notif_msg, on a special PCO (Pont of Control and Observation), indicating that the output can be converted to an event. We use the PCO name pco_convert. If this is the case, we have two approaches: allow the output without further ado, i.e. without processing any event in the model convert the output to an event and feed that event back into STATECRUNCHER and check that the actual trace produced matches the IUT output. This is shown by the optionally with /trace("notif_msg") action in  REF _Ref49592311 \r \h Figure 53. The former of these may be adequate in many cases and is very efficient; the latter may give extra flexibility, e.g. where a notification is parameterised, or where it causes a state change itself, or where the number of notifications must be counted in the model.  Conversion of traces to events The number of worlds generated at any one time is kept to a minimum, because the notifications are processed one by one, and they do not in themselves entail nondeterminism. However, with the second option only, performance may be affected if the model is called a very large number of times. Summary of containment techniques The following summarises the ways described for containing combinatorial explosion. Compact representation of a large number of states and transitions The use of hierarchy and concurrency: STATECRUNCHER's clusters and sets Binary decision diagrams are efficient, and are used in SPIN. Minimising the number of states Equivalence partitioning of numerical ranges; use an enumerated value per partition On-the-fly (adaptive) testing prunes away states that would have to be generated in batch (preset) testing. Limited state machine coverage in testing Projection coverage. Nondeterministic restriction of world explosion Fork nondeterminism: not controllable except by excision of forks in model source code Race nondeterminism: A race with n competitors can be set to no race (1 interleaving) low race (2 interleavings) medium race (2n interleavings) high race (n! interleavings) Set nondeterminism. Where there are n set member operations, the nondeterminism can be set to no set tran (1 interleaving) low set tran (2 interleavings) medium set tran (2n interleavings) high set tran (n! interleavings) Also The transition semantics avoid micro-orderings of set entry/exit The hierarchical permutation technique, applied to nested sets, reduces the number of interleavings. World pruning Kill invalid worlds after every test Mid-algorithm world pruning based on expected trace A special technique when testing against a deterministic IUT [Hierons 98]. Handling notifications Allow for repetitions of a notification in one pseudo-trace Conversion of traces to pseudo-events Test generation under nondeterminism Whilst it is not STATECRUNCHER's responsibility to generate test sequences, (but that of its neighbour in the tool chain, the primer), we give some informal descriptions of some of the issues and approaches involved. For precise descriptions, see [Hierons 98] and the other publications referred to. In section  REF _Ref60654795 \r \h 3.2.4, we described some methods used in generating tests for deterministic finite state machines. When the specification is nondeterministic, we wish to show that everything the implementation can do is allowed by the specification. We do not need to show equivalence between specification and implementation, because the specification may allow certain aspects of behaviour whilst not insisting on them. Various assumptions about the NFSM (Nondeterministic Finite State Machine) are generally necessary, including the fact that it is observable, an ONFSM, i.e. that a unique target state on a transition can be deduced from the output generated by the transition. A non-observable NFSM can be converted to an equivalent observable NFSM, (though, of course, knowing the state of the ONFSM does not imply uniquely knowing the state of the NFSM). One definition of conformance of an implementation NFSM MI to a specification NFSM M, is as follows. Define a language of an NFSM M with the symbols in its alphabet being input-event/output-trace pairs. The language of an NFSM M, L(M), is the set of such symbol sequences that can be produced by it. MI conforms to M if L(MI)(L(M). Tretmans, in a presentation on Cte de Resyste [CdR], (where inputs and outputs are both events, and traces are sequences of processed events, as in CSP) defines conformance of an implementation i to a specification s as: i ioco s =def (( Straces(s) : out(i after ) ( out(s after ) Tretmans explains this as: i ioco-conforms to s iff if i produces output x after trace  , then s can produce x after  if i cannot produce any output after trace , then s cannot produce any output after , (quiescence). A test suite T is sound if i ioco s ( i passes T. A test suite T is exhaustive if i passes T ( i ioco s. Test sequence derivation algorithms for NFSMs are given by [Petrenko], who introduces the concept of r-distinguishing sequences to distinguish states in an observable NFSM. [Hierons 98] addresses the issue of testing an implementation that is known to be deterministic against a nondeterministic specification, introducing d-distinguishing sequences, that distinguish states on this assumption. The paper also shows how adaptive testing is more efficient than preset testing. [Hierons 03] addressing the same issue shows how a candidate can be used, a deterministic FSM that is generated from the nondeterministic specification and the implementation. It has the property that if the implementation conforms to the candidate, the implementation conforms to the specification. Tests can then be derived from the candidate, using test generation algorithms for deterministic FSMs. The references given cover more issues and cite additional authors on this subject. Although there are algorithms for the generation of very strong test suites, we note that random testing is also very effective, and was used in the Cte de Resyste experiments [CdR], [Du Bousquet]. Summary of this section We have seen how STATECRUNCHER supports the following forms of nondeterminism in a UML-like statechart: fork, race, set-transit, set-action, set-meta-event and fired-event nondeterminism. Combinations of these forms of nondeterminism can be present at the same time. For each outcome, STATECRUNCHER generates a world, and events are processed in all worlds. Reference has been made to some approaches to test generation when a specification is nondeterministic. We have considered how to contain combinatorial explosion of worlds. STATECRUNCHER may be able to play a role in adaptive, on-the-fly testing, but this is a subject for further consideration and research. STATECRUNCHER can certainly flatten UML-style state spaces, and may be useful as a test oracle in adaptive testing too. For example, if after a test STATECRUNCHER has been left with more than one world (all with the same trace, but differing in internal state), and if it is known that the implementation is deterministic, then there may be very efficient disambiguating sequences of events (d-distinguishing sequences, [Hierons 98]) which could be applied to the IUT and STATECRUNCHER, after which STATECRUNCHER would be pruned to the matching world only. However, this does not prune the underlying model, only the data it has produced. A future very advanced possibility would be for STATECRUNCHER to allow for adaptation of its model, whereby states and transitions can be created and destroyed. Precise details of the language syntax, of design considerations, of the transition algorithm, and of the implementation strategy have not yet been given. These are the subjects of the ensuing chapters. STATECRUNCHER as a language In this section we describe STATECRUNCHER primarily from a syntactic point of view. The aspects of syntax and parsing fall into three main areas: declarations, expressions/operators and the transition block. General syntax STATECRUNCHER syntax is an extension to that described in [CHSM] and [ECHSM]. The distinguishing feature of STATECRUNCHER is primarily its semantics, with its handling of nondeterminism, rather than its syntax. Before the detailed syntax of states, clusters, sets and statecharts is described, some introductory syntax descriptions and conventions are needed. Then we use the railroad diagramming technique to describe the main syntax. The diagrams contain reverse-flow arrows to represent repetitions; the syntax is actually implemented in PROLOG Definite Clause Grammars (DCG's) which requires a forward-flow only description, using recursion to obtain arbitrary repetition. For parsing details, including a forward-flow description of the grammar, see [StCrGP4] and [StCrParsing]. General syntax conventions This subsection covers aspects of syntax that could be applicable to any statement. Statements currently must be written on a line of their own, and only on one line, except that a continuation character, the backslash, "\", may be used at the end of a line to denote continuation onto the next line. Use of the backslash may be repeated over many lines. Avoid having anything (e.g. spaces, comments) following the continuation character on the same line; it must be the last character of the line. STATECRUNCHER syntax is case sensitive throughout. Language keywords must be specified in the correct case. User-defined names (identifiers) must be consistent with respect to case. Identifiers are user-defined names of states, events, variables etc. The rules are: Identifiers must not be a language keyword, transition label or function name. Language keywords are: boolclearclusterdeepdeep_clearelseenterenumeventexitfalsefirehistoryifinisPCOsetstatestatecharttrueupon Keywords reserved for transition labels are: costnametimeutilitylk_costlk_namelk_timelk_utility Function names are: abscastformatget_nworldshigh_racehigh_set_tranlengthlower_caselow_racelow_set_tranmaximummed_racemed_set_tranminimumno_raceno_set_tranupper_case Identifiers must begin with a letter (upper case or lower case) or an underscore. This is optionally followed by a sequence containing upper or lowercase letters, decimal digits and underscores. Numbers are in accordance with their representation in C. Real numbers are not currently supported in any STATECRUNCHER statement. Examples of integer constants: 0 -0 123 -123 013 (octal) 0X12f (hex) 0x12F (hex) Examples of character constants: 'C' 'x' '\n' '\36' (decimal) '\057' (octal) '\0x2F' (hex) No distinction is made in STATECRUNCHER in practice between characters and integers. White space, used to separate syntactic items, consists of a sequence containing the following characters (with their decimal ASCII code) space (32)alert (7)backspace (8)horizontal tab (9)line feed (10)vertical tab (11)form feed (12) Comments (see below) also count as white space. White space can be omitted where that does not lead to an erroneous tokenization or parse. For example, if there is no white space between the keyword cluster and the identifier volume, a new identifier clustervolume is formed, so white space is required. But after brackets, commas, operators, semicolons etc., no white space is required. Comments in STATECRUNCHER source can be in either of the following styles, or a mixture of both: the 'C' and PROLOG convention: /*.....*/ The comment must be closed in the statement which opened it. the 'C++' convention: //... (running to the end of the line) The continuation line character, backslash, "\", retains its continuation function after 'C++' style comments, and does not terminate a // comment. STATECRUNCHER statements A STATECRUNCHER model consists of statements. The figure below shows this top level of the STATECRUNCHER grammar.  STATECRUNCHER statements In the sections following, these statements are considered individually. Basic syntax of statechart / cluster / set and (leaf-)states in a hierarchy We now show how to define hierarchical states in a STATECRUNCHER model. The grammar is shown with reverse-flow for compactness; for the feed-forward transformation (which is not difficult for this part), see [StCrParsing].  Basic syntax of statechart / cluster / set and (leaf-)states The statenames block contains the names of the member states of the cluster or set. The statements defining these member states must occur immediately after their parent. This gives the entire hierarchy a depth-first structure, as will also be seen in the example that follows. If there is an error in defining the member states (because the child states announced in a parent state do not actually occur, or do not occur in the right place), this is flagged as a machine path error. The machine path is the hierarchical path from the statechart level down the hierarchy to a state at some place in the hierarchy. History and deep history are described in more detail here; their effect on the transition course is considered in detail in section  REF _Ref509992704 \r \h 7.5. The transition block is considered in section  REF _Ref513287970 \r \h 5.8. More about hierarchical states Statecharts A STATECRUNCHER model is wrapped in the highest (outermost) hierarchical level by a statechart. This formality does not offer any additional functionality, except to provide a clear marker as to where one or more statecharts starts in a source file (but currently only one is supported). Clusters A cluster is a group of states (members of the cluster) such that at most one member state can be occupied. If one member is occupied, the cluster is regarded as occupied. If all members are vacant, the cluster is vacant. The members of a cluster can be other clusters, sets (to be introduced) or leafstates. The diagrammatic notation for a cluster is a rounded rectangle with its name at the top left. One member of the cluster is designated the default member (symbol ). This state is entered: if the cluster is entered when the statechart is initially entered if the cluster is the target state of a transition (to be discussed in detail later), unless other (history-related) factors come into play. Transitions can have a cluster as their source state. They can also have a cluster as a target state details of this will be discussed later. This gives a compact way to express what would otherwise be multiple transitions. The following diagrams show by example how a cluster is equivalent to a flat state machine, i.e. one without hierarchy.  Cluster with transitions  Cluster - equivalent flattened state machine History and deep history A cluster can be marked with a history or deep history marker. The history data records the member that was occupied when the cluster was last occupied. On our diagrams, history is marked according to the following legend:  A cluster with a history marker, when it is targeted without a specific member being specified, will enter the historical state. This assumes the history data is available otherwise the default state will be taken. Deep history indicates that historical data is to be used (assuming it is available) on re-entering the cluster and all descendant clusters below the marked cluster. The descendant clusters are entered under a deep history obligation whether or not they have a history marker. The deep history obligation is not applicable simply because a particular cluster is below another one with a deep history marker. It must be the case that the cluster with the deep history marker is actually entered in the course of the transition for the deep history obligation to apply. Low flying transitions will not see the deep history marker. In practice, history data is saved whenever a cluster is exited, and decisions are taken on whether to use the data on cluster entry. The following statechart shows the basic use of history. History and deep history We consider some transitions: The transition on 1 causes cluster a to be exited. The transition on 2 causes it to be re-entered, and as cluster a has a deep history marker, it and all descendants will be assume the previous occupancy (for example, states ab, abc and abcb, showing the applicability of history in a cluster without a history marker). The transition on 2 causes cluster aa to be exited. The transition on 1 causes it to be re-entered. The deep history marker in cluster a is not effective, as cluster a is not being re-entered on this transition. Since cluster aa does not have a history marker, the default member state is taken: this is state aaa. The transition on 4 causes cluster ab to be exited. The transition on 3 causes it to be re-entered. The history marker in cluster ab indicates that the historical member is to be entered. Suppose this is abc. Cluster abc is duly entered, followed by its default member: state abca. Notes: History data can be cleared (as an action - described later) using the functions clear(state-expr) and deep_clear(state-expr). A set (to be described) cannot be marked with a history marker, but it can be marked with a deep history marker. History also impinges on the transition course under more complex circumstances such as transitions targeting a parent state of the source state to be described later. STATECRUNCHER may be changed in the future to handle UML pseudo-states, where it is the transition, not the cluster, that specifies how history is to be handled. But STATECRUNCHER can simulate these, since all clusters can be marked with deep history, and history can be cleared beforehand when the historical states are not required. Sets A set is another way to group states hierarchically. If a set is occupied, all its members must be occupied. If the set is vacant, all its members must be vacant. The members of a set can be clusters, sets or leafstates. A set normally has at least two members, though it may have just one (but, in STATECRUNCHER, not zero). This gives the statechart concurrency (i.e. parallelism): several states can be occupied in parallel. The notation for a set is a rounded rectangle with a tab. Members are separated by a dotted line. If the member of a set is a cluster, no separate enclosing rectangle around the cluster is required; the symbol in the member area indicates a cluster. The following figure shows how members of sets can be designated.  Notation for members of sets The following diagrams show how a set is equivalent to a flattened state machine:  Set with transitions  Set - equivalent flattened state machine Transitions can have multiple targets so as to specify which states within set members are entered. They can also effectively have multiple source states, indicating that the transition requires all the source states to be occupied, but this must be modelled in STATECRUNCHER as a transition from one of the source states with a condition attached, testing for occupancy of the others. Conditions are described later.  Transitions with multiple source and multiple target states Sets and history A set cannot be marked with a history marker, since there is no choice as to which member to enter if the set is entered, all its members are entered. A set can be marked with a deep history marker. This means that on entry into the set and then into the set members, a deep history obligation will be passed on to all members of the set. Any clusters below the set in the hierarchy will then be entered in their historical state, in the same way as was described under cluster deep history. Example of hierarchical states In the figure below, default states are marked in bold font. The source code is shown alongside.  Example of hierarchical states [from model t6205, without aa prefixed] Declarations and scoping STATECRUNCHER supports the following declared items States PCOs: Points of Control and Observation Events Types Variables In STATECRUNCHER it is not necessary for all items (states, PCOs, events and variables) to have unique names. There can be global and local definitions of an item using the same name; the items are then quite distinct. This is roughly equivalent to global and local variables in C. STATECRUNCHER uses scoping operators to ensure that all items are accessible everywhere, if required. The scope of an item is given by a machine path. This is a sequence of hierarchical states starting at the statechart level and descending as far as some particular state. We denote the sequence using a dot to link the states in the path, e.g. sc.p.q.r, or the internal representation, a PROLOG list in reverse order, also used in STATECRUNCHER output: [r,q,p,sc]. The way states are declared has already been seen. Other items (PCOs, events and variables) can be declared straight after the statechart statement, in which case they are, in the absence of scoping operators, global to the statechart, or they may be declared after any state statement in the source code, in which case, in the absence of scoping operators, they are local to some part of the statechart.  Scope of declarations - default Scoping expressions allow a declaration or a reference to be made to a non-default scope, which could be higher in the hierarchy, lower in the hierarchy, or across the hierarchy (e.g. in a cousin relationship). Example operators are the $, which backs out one level in the hierarchy, and the dot, which deepens the machine path by the operand following it. There are more (described in section  REF _Ref513434414 \r \h 5.6.2.2). These operators will probably only rarely be employed directly by the user. However, statechart composition utilities may make copious use of them. The use of scoping expressions means that, in the syntax which follows shortly, an expression will be seen where just an identifier might have been expected. For example, an event can be declared as event alpha; but where alpha stands, an event-expression is allowed, modifying the scope of the defined event. So we might see event $$alpha; // scope is more global than current machine path or event a.b.alpha; // scope is more local than current machine path The syntactic items PCO-expression, event-expression, tag-expression, var-expression are scoped-name expressions. When evaluated, they return a name and a scope for that name. The syntactic item expression is a more conventional expression, using arithmetic operators, though scoping operators are also allowed. An expression evaluates to a value, not a name. State declarations States are declared and defined in the hierarchical way by the statements described in section  REF _Ref512400745 \r \h 5.4. The transition part of state statements is described in section  REF _Ref513287970 \r \h 5.8. PCOs and events PCOs (Points of Control and Observation) must be declared in order to be used (though they need not be declared in a source line preceding their use). Events must similarly be declared in order to be used. PCOs serve to classify events according to whether (and where) they are externally controllable and observable or not but use of them is a Primer (test generator) affair, and all STATECRUNCHER does with them is to provide information on them in its output. There can be several PCO and event declaration statements in a STATECRUNCHER model.  PCO declarations Examples: PCO pco1; PCO alf,bert,$$bert,charlie; // two berts (in different scopes)  Event declaration Examples event alpha; event beta,$$gamma,delta@pco1; event $$epsilon,zeta@$$$$pco2; Events are not declared with parameters, but, as will be seen, transitions can be labelled with events and their parameters. Types and variables Variables in STATECRUNCHER are typed. The types are bool (boolean) this is a built-in type user-typed using an integer range user-typed using integer enumeration by means of tagnames strings Reals are not supported. They would make a finite state space infinite, (theoretically; in practice, just very large), and the user when modelling a system should always partition reals into equivalence classes and model these with integers. Type declarations and variable declarations are separate statements.  Type declaration Examples of type declarations enum channel {14,..,18}; enum colour {red=6,blue,green=9}; enum $$channels {90,..,99}; enum $$colour {white,red=6,blue,green=9};  Variable declaration Examples of variable declarations bool b1; bool b1,b2=true,b3=false,b4=b2 && !b3; bool $$b1=false; channel fav_channel=15,your_channel=fav_channel+2; $channel $favourite_channel=91; colour tie_col, sock_col=maximum(red,green,blue); colour $$tie_col, $$sock_col=$$red; $$$colour $my_tie_col = $$colour_of_the_day; PCOs, events and variables in diagrams Since PCOs, events and variables can also have the same name in different scopes, it may be desirable to show where they are declared. We do that with the (, ( and ( symbols. In the absence of any symbol, the names can be considered unique and in scope, though it is not specified whether they are global or local.  PCOs events and variables in diagrams In the above figure, there are PCO declarations in scopes sc and sc.a event declarations in scopes sc, sc.a.aa, and sc.a.ab. variable declarations in scopes sc, sc.a, sc.a.aa, and sc.a.ab. The effect of the event declarations is that the 1,2 labels on transitions refer to different events according to the scope of the transition source state. Similarly, there are two PCOs called pco1, which must be distinguished. Similarly again, any expressions using variables (not shown on the diagram) would address the appropriate variable v1. Expressions, operators and functions Expression parsing Expression grammars can be represented in a feed-forward form and so that parsers can be implemented using PROLOG Definite Clause Grammars (DCGs). For an early paper illustrating the principle, with two operator precedences, (but dating from before the PROLOG -> DCG notation), see [Warren]. Expressions in different contexts can be allocated different operator sets, and parsed using the GP4 parser details of this are given in [StCrGP4]. We give a summary and a flavour of that here, by showing a left-recursive grammar and its transformation into a feed-forward grammar for expressions. The grammar terminals are tokens from a lexical pass performed by GP4, which include constants, identifiers and strings, but not operators, which are identified at expression parsing time. Expressions and terms are parameterized according to their precedence level, i.e. the level of operator precedence that is being parsed, with higher precedence expressions forming terms at the lower level concerned. A few features that are not pure syntax were introduced: Expression grammar rules are parameterized with a precedence level, which is the precedence level of the operators used to combine terms in the grammar rule for the expression at that level. Term sequences are also parameterized with an associativity parameter. Some small non-grammar operations are performed, indicated by . Examples: to left associate, which basically transforms [a+b-c+d] into [[a+b]-c]+d] to test for a property, or assign a parameter (such as ASSOC=yfx). Arity, position, and associativity are defined as follows in the grammar (analogously to a PROLOG convention): fx monadic, prefix, non-associative fy monadic, prefix, right-associative xf monadic, postfix, non-associative yf monadic, postfix, left-associative xfy dyadic, infix, right-associative yfx dyadic, infix, left- associative The diagrams below are not claimed to be an original exhibition of a general expression grammar, but  REF _Ref468519553 \r \h Figure 71,  REF _Ref468519556 \r \h Figure 72 and  REF _Ref468519557 \r \h Figure 73 were constructed from first principles by the author from the left-recursive grammar of  REF _Ref63418489 \r \h Figure 70, which is a variation of the expression grammar for C given in [Darnell]. (A moderate amount of searching and enquiry amongst compiler colleagues failed to come up with anything explicitly similar, apart from the early example of [Warren], though it could be argued that many parsers, though outwardly not similar, effectively implement what is shown here). For that reason, the approach may have some original aspects of some interest to others in a related field.  Left recursive grammar (requiring transformation)  GP4 expressions - feed-forward grammar (1)  GP4 expressions - feed-forward grammar (2)  GP4 expressions - feed-forward grammar - (3) Operators Operators are used to construct expressions including the initialisation expressions in variable declarations. The expression parser is supplied with a set of operators as a parameter per expression, so that it can parse the various kinds of expressions required according to their individual operator set. STATECRUNCHER operators fall into two categories: Arithmetic operators, which return a value Scoping operators, whose action depends on the kind of expression in which they are applied: In an arithmetic expression (sometimes just called an expression), they cause an evaluation to be performed under a modified scope, and the expression ultimately returns a value. In a state-expression, pco-expression, event-expression, tag-expression, or var-expression, they return a name. Most functions require that their parameters, (which are expressions) are evaluated to values. Currently, all functions return a value. There are also some functions (e.g. in), described later, which have special handlers, whereby the parameter is evaluated to a name. These operators and functions can be mixed seamlessly in expressions. Operators have the following attributes: A symbol, e.g. +, && A name, used internally, which distinguishes between operators of like symbol, e.g. mplus (monadic plus), dplus (dyadic plus). A precedence (also called priority). Higher precedence operators bind their arguments before lower precedence ones. Note that this does not mean that they will necessarily be evaluated sooner, although this is sometimes perforce the case. Example a-b+c*d+e = a-b+(c*d)+e, since multiplication has a higher precedence than addition and subtraction. A position. This can be prefix (as in -x) postfix (as in i++) dyadic infix (as in a+b) post-circumfix (as in the brackets of function call operator, e.g. maximum(a,b) ). Note how these operators come in two parts. triadic infix (as in a?b:c) but this is not currently supported. An associativity. This can be left associative: a+b+c+d is equivalent to ((a+b)+c)+d right associative: a=b=c=d is equivalent to a=(b=(c=d)) An arity. This gives the number of arguments to the operator. It can be monadic: -a dyadic: a+b triadic: a?b:c but not currently supported. Some semantics. The STATECRUNCHER arithmetic and logical operators are commonly known, being mainly compatible with C. The tables below define the STATECRUNCHER operators. For their definition in GP4 format, see [StCrParsing]. Arithmetic operators The following operators are supported: OperationSymbolArityPrecedenceAssociativityPositionPrimary SuffixesArray indexing[]dyadic18nonecircumfixFunction call()dyadic17nonecircumfixVarious monadicplus+monadic16rightprefixminus-monadic16rightprefixlogical not!monadic16rightprefixpost increment++monadic16leftpostfixpost decrement--monadic16leftpostfixpre increment++monadic16leftpostfixpre decrement--monadic16leftpostfixMultiplicativemultiplication*dyadic15leftinfixdivision/dyadic15leftinfixmodulo%dyadic15leftinfixAdditiveaddition+dyadic14leftinfixsubtraction-dyadic14leftinfixRelationalless than or equal<=dyadic12leftinfixgreater than or equal>=dyadic12leftinfixless than<dyadic12leftinfixgreater than>dyadic12leftinfixequal==dyadic12leftinfixnot equal!=dyadic12leftinfixLogicalshort-circuit and&&dyadic7leftinfixxor^^dyadic6leftinfixequivalence!^^dyadic6leftinfixshort-circuit or||dyadic5leftinfixAssignmentassign=dyadic2rightinfixmultiply-assign*=dyadic2rightinfixdivide-assign/=dyadic2rightinfixmodulo-assign%=dyadic2rightinfixadd-assign+=dyadic2rightinfixsubtract-assign-=dyadic2rightinfix Arithmetic operators Notes: The logical operators work with a tri-valued logic, including the value unknown. The difference between logical equivalence (!^^) and arithmetic equality (==) is evident from an example with variables a and b, say, with values 1 and 2. The expression a==b is false, but a!^^b is true, since, as in "C", any nonzero value is counted as true. Scoping operators The motivation for scoping operators is that they will be needed when composing models so as to have a model of a system made by composing formal software components. The scoping operators allow local items (events, variables etc) to remain local, but for global ones to be made accessible to many components by renaming them with a scoping expression. Scoping operators have been introduced summarily (section  REF _Ref513437920 \r \h  \* MERGEFORMAT 5.5), mainly in the context of declarations. They are also used to reference items (states, PCOs, events, tagnames and variables) in other scopes than the current one, which can be regarded as a default scope. Remember that a scope corresponds to a state in the hierarchy, and that it is represented by a machine path. The scope in which an expression is evaluated (and so the default scope, i.e. the scope of a plain identifier) is as follows: when referencing PCOs, events, tagnames and variables, it is the machine path of current state. when referencing other states, it is the parent of the current state. This gives the most natural representation of states. The following figure illustrates how scoping operators are used to specify states by referring to their precise position in the hierarchy. The operators in use here are: $ (back out one level and enter state named by right-hand argument) . (starting from scope of left-hand argument, descend into state named by right-hand argument) Two examples showing state referencing follow.  Scoping example - states (1) In the above example, there are various states called a. The superscript serves to distinguish them in this description it is not part of the name. How are the targets of the three transitions specified in STATECRUNCHER? They cannot all be specified by event -> a as that does not distinguish the different targets. The transitions are specified as part of the state b statement. They are specified by: (for t1): event -> a // references a sibling of state b (for t2): event -> $$a // backs out two levels in the hierarchy (for t3): event -> $$$$a // backs out four levels in the hierarchy Where a target state is not masked by a more local target of the same name, the back-out operator $ can be omitted. STATECRUNCHER will find the state by an outbound search from the precise state specified. So if t1 and t2 were not present, t3 could be specified by just event -> a The target will be found by looking for it in states t,s,r,q,p in that order. With all three transitions present, transition t2 could be specified by just event ->$a since that specifies a in the scope of state s, and a2 is the nearest state of that name in state s. Similarly transition t2 could be specified by just event ->$$$a We now show how states in some other common relationships to a transition source state are referenced:  Scoping example - basic specifications of states (2) The statechart level is the outermost named level, and global PCOs, events, tagnames and variables are declared in this scope by putting their declarations between the statechart statement and the first state statement. More local PCOs, events, tagnames and variables are declared either by putting their declarations immediately after the state statement of the required scope, or by placing the declarations elsewhere, but applying scoping operators to specify their effective scope. Every state/PCO/event/tagname/variable that is declared is in scope to its descendants, unless a descendant defines a new item of the same name, in which case the most local item is in scope by default. Looking at this from the perspective of an item being referenced: the item will be found by an outbound search, starting at the current scoping level, and, if the item is not found to have been declared there, backing out one hierarchical level at a time until the item is found. This means that scoping operators are not needed to address the most local name. When items need to be referenced which are more local than the current scope, scoping operators must be used to descend into the required scope to address the item. We now discuss the scoping operators themselves, and then the application of them is reviewed. Design of scoping operators There are four scoping operators: back-out one level and then evaluate the argument in this scope back-out to a named parent and then evaluate the argument in this scope back out to the outermost level and then evaluate the argument in this scope enter one named level and then evaluate the argument in this scope These operators are composable into a scoping expression, and are compatible with arithmetic operators. This is achieved by an appropriate selection of operator symbols operator precedence operator associativity The operators are defined as follows: Operation SymbolArityPrecedenceAssociativityPositionparent scope$monadic19rightprefixstatechart scope::monadic19rightprefixnamed child scope (evaluate arg2 in child arg1 scope)..dyadic20rightinfixnamed ancestor scope (evaluate arg2 in ancestor arg1 scope, backing out one level anyway, and then as far as the first occurrence of arg1).%%dyadic20rightinfix Scoping operators It is good to realise that there is a major difference in the way scoping operators work compared with arithmetic operators. Arithmetic operators apply their own operation after evaluating their arguments (which they do by a recursive call to the evaluator). For example, a simplified PROLOG predicate to evaluate the monadic minus operation on a parameter P1 might be:  P1 is evaluated by a recursive call before the negation takes place (V is -VV). Similarly for dyadic operations (simplified): In these predicates, MPATH is the machine path (i.e. scope) in which the evaluation takes place. Termination of the recursion takes place at a terminal item, such as an identifier (whose value is then obtained from a database). Now when it comes to scoping operators, they must perform their own operation i.e. changing the scope before evaluating their arguments. It will be seen that this has implications for the choice of precedence and associativity. Here is what the back-out operator does: The predicate first modifies the supplied machine path. It effectively removes the head of a list describing the machine path [HMPATH|TMPATH], the head HMPATH being the most local part of the path. Then it performs the recursive call to have its parameter, P1, evaluated in the new scope. Similarly for a dyadic scoping operator. The following operator evaluates its first argument (P1), as a required addition to the machine path, so as to make the scope more local. The second argument (P2) is then evaluated in the new scope.  The "." (descend) and "%%" (dparent) operators are right associative. This means that an expression such as aa.bb.cc.dd is equivalent to aa.(bb.(cc.dd)) At first sight, this might seem wrong. It appears that the term (cc.dd) will act first and add element cc to the machine path first, whereas we want to add element aa to the machine path first. But bearing in mind the reasoning about scoping operators performing their operation before evaluating their arguments, the above expression will add element cc to the machine path last, and behave as follows: add aa to the machine path, making it one level deeper than the caller's level add bb to the machine path, making it one level deeper than as above add cc to the machine path, making it one level deeper still evaluate dd in this new scope Similarly aa%%bb%%cc%%dd will evaluate dd in the scope that backs out to the first occurrence of aa (cutting blindly through bb's and cc's if they occur), then backs out further to the next occurrence of bb (cutting blindly through cc's if they occur), then backs out further to the first occurrence of cc, and finally evaluates dd in this scope. Similarly, the "::" (mscope) and monadic "$" (mback) operators are right associative. This means that expressions consisting of multiple monadic operators can be composed simply: $$$aa which is equivalent to $($($aa)) backs out three levels then evaluates aa. The expression ::$aa backs out to the outermost shell, then backs out one more level, which in STATECRUNCHER is admissible, as the "::" operator backs out to the statechart level, from which it is possible to back out once more to the absolute level. The expression $::aa would normally be pointless, as it backs out one level before performing a global back-out operation. These monadic and dyadic operators combine with dyadic operations binding tighter, so that $$aa.bb.cc which is equivalent to $($(aa.(bb.cc))) means back out two levels, then enter aa then enter bb then enter cc. The rule is emerging that the expression is to be interpreted as a sequence of actions in left-to-right reading order. One consideration is that dyadic operators have a higher precedence than monadic ones, which is fine for expressions such as $$aa.bb.cc but it means that brackets are needed for adjacent dyadic-monadic accumulations, e.g. cc%%($$dd.var2) which is to be read as: back-out to parent cc, then back out twice more, then descend into dd, then evaluate var2 in this scope. Scoping operators have a higher precedence than non-scoping ones. An example of a combined expression, extending the above example, is: var1 + cc%%($$dd.var2) which is to be read as: evaluate var1, back-out to parent cc, then back out twice more, then descend into dd, then evaluate var2 in this new scope, then finally add together with the evaluation of var1. The split operator This operator is used to define multiple target states of transitions. STATECRUNCHER allows transitions to specify targets in more than one member of a set. This can take place at various hierarchical levels, so requiring a target state tree. This is illustrated in the figure below.  Multiple target states Note that the target state tree need not specify all targets in a set defaults (or historical states) will be taken where no specific target is specified. The target state tree is specified using the split operator denoting "and co-member", represented above by the symbol /\. The operator is available to target state expressions but is not available in other state expressions. The operator is specified (in the same notation as used for scoping operators) as follows Operation SymbolArityPrecedenceAssociativityPositionsplit/\dyadic14leftinfix Split operator This gives a lower binding precedence than the scoping operators (:: %% $ .). It is a left associative operator, (such as the + operator), so that a /\ b /\ c /\ d = ((a/\b)/\c)/\d. A restriction The left hand side of the "." and "%%" operators should not be a term which has already been split, (although such a thing does make sense), since such a construction is unusual and the evaluator does not currently support it. So, in the figure below, it would not be permissible to write ->a.((aa/\ab).x) Instead, the following should be used: ->a.(aa.x/\ab.x)  Restriction in use of the split operator Evaluation of the split operator The evaluator for terms combined with this operator produces a list of lists representing the target tree. Expressions are evaluated in an evaluation scope representing a state in hierarchy. Typical evaluations are as follows: Evaluation ScopeExpressionEvaluation1[bb,aa]dd/\ee[[dd,bb,aa], [ee,bb,aa]]2[bb,aa]pp.dd/\ee[[dd,pp,bb,aa], [ee,bb,aa]]3[bb,aa](pp.dd)/\ee[[dd,pp,bb,aa], [ee,bb,aa]]4[bb,aa]pp.(dd/\ee)[[dd,pp,bb,aa], [ee,pp,bb,aa]]5[bb,aa]pp.(dd/\(ee/\ff.gg))[[dd,pp,bb,aa], [ee,pp,bb,aa], [gg,ff,pp,bb,aa]]6[bb,aa]pp.((dd/\ee)/\ff.gg)[[dd,pp,bb,aa], [ee,pp,bb,aa], [gg,ff,pp,bb,aa]]7[bb,aa]pp.((dd/\$ee)/\ff.gg)[[dd,pp,bb,aa], [ee,bb,aa], [gg,ff,pp,bb,aa]]8[bb,aa]pp.((dd/\ee)/\(ff.f2/\gg.hh))[[dd,pp,bb,aa], [ee,pp,bb,aa], [f2,ff,pp,bb,aa], [hh,gg,pp,bb,aa]]9[bb,aa]pp.(dd/\ee)/\(ff.f2/\gg.hh)[[dd,pp,bb,aa], [ee,pp,bb,aa], [f2,ff,bb,aa], [hh,gg,bb,aa]]10[cc,bb,aa]$$pp.(dd.ee.ff/\$gg.hh.ii)[[ff,ee,dd,pp,aa], [ii,hh,gg,aa]]11[cc,bb,aa,sc]::pp.(dd.ee.ff/\$gg.hh.ii)[[ff,ee,dd,pp,sc], [ii,hh,gg,sc]]12[cc,bb,aa,sc]::$pp/\$$dd[[pp], [dd,aa,sc]]13[cc,bb,x1,x2,aa,sc]aa%%pp/\$$dd[[pp,aa,sc], [ddx1,x2,aa,sc]]14[cc,bb,aa](pp/\qq).rr // violates the restriction mentioned above.unknown Evaluation of the split operator The target of transition  in  REF _Ref35073612 \r \h Figure 76 is represented by aa.(p.pb.pba/\t.q.(qa.qaa/\qb.qbb)) in evaluation scope [a,s,sc] evaluating to [[pba,pb,p,aa,a,s,sc], [qaa,qa,q,t,aa,a,s,sc], [qbb,qb,q,t,aa,a,s,sc]] Functions Arithmetic functions Arguments are a comma-separated list of expressions. P1, P2 refer to the first and second parameter respectively. The return value is an integer (which may represent a boolean), or string value. The value may be ignored. The functions are as follows: Basic arithmeticabs(P1)absolute value of a numbermaximum(list)maximum of several numbers, e.g. i=maximum(v1,v2+1,v3)minimum(list)minimum of several numbers, e.g. i=minimum(v1,v2+1,v3)String relatedformat(P1,P2)Format integer expression P1 as text. P2 is the field width: -ve for left justify, 0 for just fit, +ve for right justify. length(P1)length of stringlower_case(P1)convert string to lower caseupper_case(P1)convert string to upper caseCastingcast(P1)i=cast(j) allows an assignment that would otherwise be a type mismatchTracingtrace(list)add parameter(s) to the trace listtrace_clear()clear the trace listSystem informationget_nworlds(P1)get_nworlds() or get_nworlds(1) gets the number of worlds at the start of event processing. get_nworlds(2) gets the dynamic number of worlds.Nondeterminism controlno_race()turn race nondeterminism offlow_race()allows only two race permutations, forwards and backwards.med_race()allows 2N race permutations. Allows distinction of all triplet orderingshigh_race()allows all N! race permutationsno_set_tran()turn set (e.g. set-transit) nondeterminism offlow_set_tran()allows only two set permutations, forwards and backwards.med_set_tran()allows 2N set permutations. Allows distinction of all triplet orderingshigh_set_tran()allows all N! set permutationsSpecial functions taking a state-expression argumentin(P1)returns true (=1) if the state specified is occupied, else false (=0)clear(P1)clear history of the state specifieddeep_clear(P1)clear history of the state specified and its descendants Functions Special functions The evaluation of most functions proceeds as follows: evaluate the arguments (which can contain arithmetic and scoping operators) as values pass the evaluated parameters to the function return a value from the function Certain functions are exceptions to this in that their parameters are evaluated to a name. These functions are described in this section. in The function in(state-expression) returns a boolean value: true if the specified state is occupied, false if it is not. clear and deep_clear The function clear(state-expression) removes history data from the specified state. The function deep_clear(state-expression) removes history data from the specified state and all its child states recursively down the hierarchy. trace The function trace(expression) writes the evaluation of its argument to a special location called the trace list. Traces model black-box outputs of the Implementation Under Test. The trace list, along with state occupancies, variable values and other information, is provided by STATECRUNCHER after processing an event. Type compatibility in expressions A rigorously typed language would require exact type matching of terms in expressions, and in left and right hand sides of assignments. It is felt that in STATECRUNCHER more freedom should be allowed: certainly, a range-type variable should be compatible with raw integers. Note that there is a type incompatibility if two types have the same name but due to scoping considerations they refer to type definitions at different scoping levels. Example $$$colour $$mycolour = $yourcolour; There are two references to a type definition named colour. the one found by an outward search starting from $$$ the one found by an outward search starting from $, to find the definition of yourcolour, and the scope of its declared type, followed by another outward search to find the scope of its actual type. If these yield the same definition, the expression is type compatible, otherwise it is not. In the current version of STATECRUNCHER, raw integers are compatible with all enum types. Type compatibility in functions STATECRUNCHER supports functions according to the GP4 implementation paradigm. For simplicity in the current version (1.05) of STATECRUNCHER, functions are typeless. All functions accept any type in their parameters and the return parameter will match any type. This means that an identity function could act as a cast such a function exists, and it is called cast. Review of items parsed as expressions Items (states/PCOs/events/tagnames/variables) in STATECRUNCHER occur once in their declaration, and any number of times when used, (i.e. when referenced, whether read-accessed or write-accessed). As can be seen from the syntax diagrams, the following items are scoped expressions: States in usage (State scope on declaration is determined by the statement position in the machine hierarchy) PCOs in declaration / usage Events in declaration / usage Tagnames in declaration (enum statement) / usage (variable declaration) Variables in declaration / usage (e.g. initialisation, condition, action, label) This means that there is opportunity to access, and even declare, items in a scope other than the current scope, whether more globally, more locally or in a different relation to the current scope. States, PCOs, events, tagnames, variables defined in a more global scope than the current scope are implicitly in scope, unless masked by a more local homonym. It is recommended that non-local scoping should be used sparingly, especially non-local declarations. In any case exceptional scoping should not be used gratuitously (for readability reasons), but only when composition of subsystem models requires it. However, in compositions of components, scoping operators should be used. A useful construction is to define a wrapper set for the composition (called, say, Composition) with set members for the comprising components. An individual component model declares its own inter-component events inside the confines of its source code as regards where the statement is positioned, but outside its confines as regards its effective scope, specifying Composition scope e.g. as follows: event Composition%%ReturnDropRequestAccepted; The following (rather concocted) example shows the potential complexity of scoping operators and the outbound search mechanism to find the nearest variable and its type in scope.  Complex tagname/variable scoping Transition block Transition blocks are part of state statements. Transition block overview  Overview of transition block Transition block syntax Transition block syntax (1) Transition block syntax continued: Transition block syntax (2) Detailed examples of transition block functionality Remark In the state diagrams that follow, for compactness the transition labelling may not be the full STATECRUNCHER syntax. We may exclude braces, destination states, and semicolons. So we may have, e.g. 1{$v1+=2} rather than {1>bb{$v1+=2;};}. To compensate for this, we provide the full model source code of some examples in this section. Specification of states (as transition targets) - further examples Reminder The scope in which an expression is evaluated is as follows: when referencing PCOs, events, tagnames and variables, it is the machine path of current state. when referencing other states, it is the parent of the current state. This gives the most natural representation of states. The following figure shows some common examples of transitions. Self-transitions are explained later in this section.  Specification of states A model illustrating internal events Internal events were introduced in  REF _Ref57557556 \r \h Figure 13. Meta events include ordinary events and internal events. In the figure below, the transitions on  cause various states (leafstates and hierarchical states) to be exited / entered. Some of the corresponding enter and exit meta events are used to trigger transitions in a parallel part of the statechart, in cluster b.  Meta event (state entry/exit) [model u5180] Source code of the model Conditional transitions and conditional actions In  REF _Ref57602875 \r \h Figure 15 we saw a conditional transition, and in  REF _Ref57602766 \r \h Figure 18 a conditional action. A complete model illustrating some detail of this is given below. An action (conditional or otherwise) can be triggered by an event without transitioning between states by using an internal transition, such as the one on event setv in the diagram below (to be discussed in more detail later).  Conditional transitions and actions, and the in() function [model u5190] Points to note There is a conditional transition on . There is a conditional action on the transition on , and also on entering state a2. The transition on  has an else part. The transition on  has nested conditional actions. The conditional action of the transition on  fires an event, putting cluster z in state z2. We can set the value of v (used in the conditions) using the setv event. We can reset variables and states using the  event. Source code of the above model: Route; orbit; internal and external self-transitions The transition route describes the target state(s) of the transition, and also which states must be exited and entered en-route. The highest state in the route is called the orbit. The orbit is optional if omitted, no more states than necessary will be exited and entered en-route. The whole route is also optional if omitted, the transition is an internal self-transition. External self transitions are transitions with the same source and target state. They may nevertheless cause a transition between states. We illustrate these things in the next figure. Internal self-transitions are drawn on the inside of the state and never cause transitions between states. As with other transitions, they are valid for processing if the state to which they are attached is occupied; if not, they are totally discounted. There is no difference between leafstate and non-leafstate internal self-transitions. If they are valid and there is an action attached to them, the action is performed (see transitions on 1 and 1 below). Internal transitions cannot be orbital (the transition on 2 is unspecifiable). External self-transitions are drawn outside the state. If they are on a nonleaf state, they can cause transitions to default states, (but not in clusters with history, because the current state is counted as the historical state). This applies to the self-transition on 3 when state p2 is occupied below. If they are on a leafstate, nothing is exited or entered (unless the self-transition is orbital), but actions are executed, and they behave like internal transitions (see transitions on 1 and 3). External self transitions can be orbital (to any height of orbit). In this case they always cause exiting and entering to the height of the orbit (transitions on 4 and 4). How is the transition on 2 to be interpreted? As an internal orbital transition it is undefined and unspecifiable in STATECRUNCHER. It can, however, be regarded as an external transition, a shorthand for what might otherwise be drawn as the transition on 5. This is specifiable in STATECRUNCHER and the meaning is to exit from whatever deeper states are occupied as far as the orbit, and to re-enter states according to the transition course algorithm as described in section  REF _Ref509992704 \r \h 7.5. Internal orbital self-transitions (as on 2, and as on 2 if it were to be regarded as internal) are currently unspecifiable. However, they could be given a syntax such as 2 ->@shallow_internal 2 ->@deep_internal and some semantics: execute the exit and entry actions on the current member state, either at the current hierarchical level only, or at all occupied states in the hierarchy. Self transitions can be parameterized, but we do not illustrate that in our example below.  Orbits and self-transitions, [model u5170b] Source of this model Points to note Variable v tracks a transition from p to q. Variable u tracks a transition from q to p. The on-transition actions simply add digit 0 to u and v by multiplying by 10. This gives us a complete record of the order of the actions that take place during a transition. The variables can be reset without any transitioning by executing event . If there are upon enter actions and upon exit actions, the upon enter actions must be specified first. An example of orbital notation is delta->$$sc->q. More detail is given later in this section. So far, we have been precise about the orbital state. Where states have unique names, the operators can be omitted and the correct state will be found by the outbound search for the nearest state in scope. So we can also specify the example as simply delta>sc>q. More on orbital transitions The feature of orbital transitions is that they exit and enter superstates up to a higher level than a direct (non-orbital) transition. In so doing they generate additional enter and exit meta-events, and can cause re-entered states with no history to revert to default occupancies. We draw orbital transitions with a loop in the orbital state of the transition arc: The transition notation specifies this with an extra arrow: event -> orbital_state -> target_state Note that an orbital transition is not achieved by specifying the target state in any particular way: a transition on event 1 in  REF _Ref57606653 \r \h Figure 86 below might be specified as any of the following: 1 -> aab 1 -> $aa.aab 1 -> $$a.aa.aab 1 -> ::s.y.a.aa.aab It is a state, not an operator sequence (such as $$), that is specified as the orbital state. The evaluation scope for the expressions for the orbital state and target state is (as for target state expressions) that of the parent of the source state. Referring to  REF _Ref35350781 \r \h Figure 86, note that it is possible to have an orbital from-superstate transition (transition on event 1). It is possible to define orbital states that make little or no sense: because they are lower in the hierarchy than the highest point of the equivalent non-orbital transition. because they specify a state that is not an ancestor of source or target. Such orbital data is ignored by STATECRUNCHER.  Orbital transitions [model t6260] Useful rules on orbital states If the transition arc to an orbital state crosses n hierarchical layers, use (n+1) $ characters in specifying it. If the transition arc to a target state crosses n hierarchical layers, use (n) $ characters in specifying it. The hierarchical layers can be counted by counting the number of boxes crossed (but not set member boundaries, i.e. the dotted line). Note, however, that a cluster member of a set can be specified without drawing a box round it, so when counting boxes exited, allow for an  invisible box in this case. Notes Two examples of evaluated orbits are shown, for the transitions on 4 and 5. Evaluated orbits are machine paths, here in PROLOG list notation, to be read from right to left when descending in the hierarchy. To specify the very highest orbital level, the state expression ::$sc is used. The reason for this is that ::arg evaluates arg in the statechart level (i.e. machine path sc), not at an absolute root level (machine path []). This convention is convenient for statechart-global declarations such as ::alpha, ::var1. But to specify an orbital state at statechart level it is admittedly not so convenient. Since :: must take an argument, it will be the statechart name, and the evaluation scope must be further back still, which is effected by the $. UML pseudo-states In a future release, we hope to introduce UML pseudo states no_history, history and deep_history which will give the user more flexible control over the issue.  REF _Ref35228298 \r \h Figure 87 shows how transitions would be made to pseudo states and what the effective target state is (by means of the dotted arrow). Multi-target transitions to a mixture of pseudo and real states would have to be supported (not illustrated).  Pseudo-states (option for possible future implementation) Illegal transitions The following figure illustrates some examples of illegal transitions  Illegal transitions Categories of (potentially) illegal transitions Set member to co-member: the transitions on 1 etc. Such transitions can be legalized by raising the orbit. Illegal route: the transitions on 1, 2, 3 do not have a straight-out straight-in route. Multiple target states include cluster co-members: the transition on . Detection of illegal transitions It is possible to detect before executing a transition whether it is legal or not, at least for cases where the transition is always illegal. The STATECRUNCHER validator could do this; it is an option for an extension. Hong provides rules for how this could be done [Hong] (though these do not allow for orbital transitions). Assuming that the worst thing that can happen with an illegal transition is that the state machine is left in an illegal state, there is a simpler way to check for illegal transitions. It is to execute the transition anyway, and examine the resulting state for integrity. Integrity means that the statechart machine as a whole is in an occupied state exactly one member of every occupied cluster is occupied; the rest are vacant all members of every occupied set are occupied. all members of a vacant set or cluster are vacant Integrity checking is used in the test suite for STATECRUNCHER, but it is slow, and has not been included in normal use of the product. The user bears responsibility not to specify illegal transitions. Actions Actions occur in upon-enter and upon-exit blocks and in transition blocks. The kinds of action have already been seen, and are as follows expressions firing of events conditional actions containing any of these three kinds of action in the if and optional else part. Expressions can contain function calls, and might only consist of a function call, and need not return a value. Under the current semantics (discussed in section  REF _Ref57629584 \r \h 6), actions in one action block take place sequentially. Knock-on effects of fired event actions Anticipating the discussion on semantics, we show in the following model that actions as currently implemented can have knock-on effects. Use will be made of this in composing models (section  REF _Ref57630348 \r \h 6.5).  Knock-on effects of fired event actions Labels Labels can be used to provide extra information about transitions. Specific labels have not currently been finalized, but candidates are: the execution time taken in performing a transition. It could be based on an actual measurement. This enables transition tour algorithms to optimize test cases against execution time. the probability of a transition in the case of fork nondeterminism. This could make some optimizations in testing strategy possible; see [Zhang]. the cost of a transition, if there are factors other than execution time that make a transition expensive (or cheap). Any transition requiring manual intervention or observation would probably be classed as very expensive. a name for the transition a usefulness factor indicating how important it is felt that such a transition should be taken in a test suite. If it turns out that there is a need to provide a selection from various options of distinct transition semantics for some transitions, a label could be used to identify the semantics required in each case. Algorithmic sequencing There are many different approaches that can be taken as to how a transition algorithm should be designed, with the decisions taken affecting the possible features and semantics of the statechart system as a whole. The characteristics of various state machine systems in the literature, including that of [Harel], have been compared in a paper by [von der Beeck]. In [StCrBiblRef], where we annotate that reference, we characterize STATECRUNCHER according von der Beeck's criteria. Here, we first consider how steps in the algorithm can be sequenced, this being a key area for exploration and evaluation of alternatives. Then, having motivated and taken the main decisions, we describe the transition algorithm in detail (chapter  REF _Ref57290918 \r \h 7). The relationship between aspects of the transition algorithm and process algebras (or process calculusses) such as CCS and CSP is rather complex, and we approach our transition algorithm design from an algorithmic rather than an algebraic perspective. However, having arrived at a satisfactory transition algorithm, accommodating composition and interaction of statecharts, we are able to make a comparison with the CCS and CSP approaches. For that, we refer the reader to our appendices [StCrSemComp], [StCrDistArb] and to the dining philosophers problem discussed in section  REF _Ref71204126 \r \h 9.4. In addition, we have taken an example Z specification, for the game of Nim, and implemented it in STATECRUNCHER, showing the relationship between the two formalisms. This section addresses the (potentially conflicting) requirements of: Allowing repeated cycling through a sequence of transitions - though Lucas and von der Beeck consider this undesirable [CHSM, section 1.4.2.2]. Ensuring machine integrity (i.e. ensuring that the rules for occupancy of states according to their kinds and their parent-child relationships are not violated). Sequencing issues concern: When conditions on transitions are evaluated. The use of an original or current value of a variable. The ordering of processing of on-transition actions. The ordering of processing of upon-exit actions. The ordering of processing of upon-enter actions. The ordering of generation and processing internal meta-events. The design of algorithms to meet the requirements is a matter of identifying the micro-steps of the transition algorithm and sequencing them in the right order. Some algorithms introduce extra restrictions on transitions, e.g. blocking them when other transitions are in certain phases of execution, but our final choice of algorithm does not require any special restrictions. Cycling Consider the transitions of the figure below:  Cycling Starting with the transition on , a cycle is seen: effectively (via the transitions and their actions)  fires ,  fires ,  fires  and  fires  again. Clearly, this machine as it stands is unsuitable, at least for testing purposes. However, if there were extra conditions and actions on the transitions, the cycling might be terminated at some point, as follows:  Cycling with termination Here, a variable v is initially set to a value of 6. The start of the cycle has a guard on it, v>1. The cycle decrements v on the transition on , so the loop will terminate. It is possible that certain systems should be modeled this way. For example, if v is the volume of a television, it might be that a client module needs to reduce the volume step by step to the minimum volume, but that the actual decrementing is done in a separate server module. Another application of cycling to generate interleavings of system-under-test-internal events (over which the environment has no control, such a notifications), with user-generated events. This might be done with self-transitions cycling a number of times, generating the required events, using nondeterminism to generate different interleavings. The problem is addressed in [Trew03]. We note that CHSM prevents cycling by marking transitions [CHSM]. CHSM processes fired (broadcast) events after exiting all states on the initiating transition, but before entering any states. Every time a transition is taken, it is excluded from further participation in the processing ensuing from the initiating transition. An alternative way to prevent cycling is to block states involved in the initiating and subsequent transitions as they are taken. This is considered below in the context of maintaining machine integrity. But, in the STATECRUNCHER system, we ultimately opt for an algorithm that allows cycling and does not require marking transitions as taken or blocking states. Prevention of infinite cycling If no protection is built into a system to prevent infinite cycling, then the system will probably crash on a heap or stack overflow condition, though it is conceivable that some kinds of infinite loops will run indefinitely without consuming memory. Given that we do not mark transitions as taken, or block states, infinite cycling could be prevented by recognising that a configuration of state occupancies, state histories, variable values and traces has been seen before in the cycle. However, this is computationally expensive, as it involves comparing the configuration of a machine (which may be quite extensive) with a number of recorded configurations (which may be quite high). A weakened version of this is to evaluate a hash function of the full state, and to store and compare against that instead. If the co-domain of the hash function is effectively a set of say 264 ((1020) pseudo-random numbers, then the probability of a false positive match compares favourably with the probability of the user being struck by lightning in a year ((10-8.5). A weaker method still is to count transitions executed within the compass of an initiating transition, and to put a maximum, say 100, on the number of ensuing transitions. The initial version of STATECRUNCHER for simplicity will not contain protection against cycling, thus leaving the responsibility with the user (as with looping in conventional programming languages). Maintaining machine integrity During a transition, there are five sources of new events (which can, of course, entail new transitions). A major design issue in the transition algorithm is when to perform them. We first review them: % exit meta-events These are meta-events that are generated when a state is exited. Other transitions may be triggered by this event.  Review of exit meta-events % upon exit actions These are specified as part of a state's transition block, but they belong rather to the state than any one transition. They are the actions that are executed when the state is exited, and can contain events to be fired.  Review of upon-exit actions % transition actions, which may consist of firing new events  Review of transition actions % upon enter actions, analogous to upon exit actions  Review of upon enter actions % enter meta-events, analogous to exit meta events  Review of enter meta-events A major algorithm design issue is when to process these processing steps. As will become apparent, it is not a good idea to execute any of these actions as they occur. Instead, it is better to collect the actions first, and execute at some other time. This gives us various possibilities as to exactly when to execute them, and what other precautions need to be taken. What we do not do is to regard differing execution strategies as differing nondeterministic interpretations that must be catered for. This would lead to excessive generation of worlds as combinatorial explosion took place. Instead, these processing steps must follow a prescribed sequence. The modeller should be aware of this sequence, and if, exceptionally, alternative orderings are required, they should be modelled manually using existing STATECRUNCHER constructs. In addition to the ordering of transition actions and meta-events, two more issues arise. They concern: When conditions on transitions are evaluated. The use of an original or current value of a variable. We first acquaint ourselves with situations leading to potential breakdown of machine integrity.  REF _Ref530386543 \r \h Figure 97 shows one way in which, unless precautions are taken, performing transition actions too early can lead to breakdown of the statechart integrity. Suppose state aaa is occupied. On event , state aaa is exited. If we immediately process the exit(aaa) meta-event (and so exit state aa and enter state ab), and then return to the transition on , we also end up in state ac, and so break the cluster rule that only one member can be occupied.  Integrity threat (1) One option in avoiding integrity breakdown would be to cancel state ab as an occupied state when entering state ac. However, this leads to other problems: what if there were actions on enter(ab)? It would be most inelegant to have to undo them. Other solutions are in two basic categories, depending on whether the transition actions are performed in-flight or after-landing of the transition. In-flight means that the actions are performed after the transition has performed all its state exit duties, but before its state entry duties, and with some precautions in place. After-landing means that the transition actions are executed after the target states have been entered.  In flight and after landing A simple test for whether a statechart system uses an in-flight or after-landing approach, is as follows:  Distinguishing in-flight and after-landing If the system uses an in-flight transition algorithm, then the event  will have no effect (unless the algorithm is adapted in some way). If the after-landing approach is taken, then fired event  will trigger a knock-on transition. An in-flight approach In-flight state blocking Although the in-flight approach will be laid aside in favour of the after-landing approach, we consider it in detail since it is an intuitive approach, is applicable for some purposes, and (with many variations possible) is present in the literature: see [von der Beeck]. Many issues that are raised in the in-flight descriptions that follow are also applicable to the after-landing approach. Consider  REF _Ref530386543 \r \h Figure 97 again. We postpone consideration of execution of exit(aaa) until the transition on  has reached its outermost point, and block the exited states from further participation in the transition algorithm. By the time we consider exit(aaa), state aa is in a blocked state, which we will call shadow-vacant. The exit(aaa) meta-event becomes inapplicable and integrity is preserved. We introduce the concept of shadow-exiting and shadow-entering a state. The states that will be exited and entered are first collected (or acquired) on traversing a transition route, so as to acquire exit(...) and enter(...) broadcast events and uponexit and upon enter actions. As they are collected, these states are set to a state which is neither occupied nor vacant: shadow occupied or shadow vacant. These shadow states are temporary internal states that can be regarded as blocked states, since they block further transitioning on them. If the source state or any target state of a transition is blocked, the whole transition is inapplicable. Shadow states are set to a real vacant and occupied state towards the end of the algorithm. However, a little more is needed. Consider the following situation:  Integrity threat (2) Suppose in the above machine, the transition t1 on  takes place. When state d1 is exited, transition t3 from b to c will potentially be triggered. Although this transition could be executed after processing the original transition on  (which would take us to state c1), we would opt to block it. It  interferes with the incomplete originating transition t1 on  in the sense that the transition is robbed of its target state. A way we could prevent this kind of transition is by blocking all non-shadow-exited or shadow-entered ancestral states up the hierarchy from d1 as far as the statechart level, (so only leaving non-ancestral set co-members unblocked). If there are no sets, then all states will be blocked. If there are multiple target states, we apply the blocking technique to the relevant ancestors of all these target states. States which need blocking but are not shadow-exited or shadow-entered are given a simple blocked state until the end of the transition, when they are necessarily restored to occupied (since if they are not shadow exited, they must remain occupied). The example below shows an elaboration of the previous example where some set-co-members remain unblocked.  Integrity threat (3) On processing transition t1, the whole of member a of set s will be blocked except set member d2. There is no blocking of member z, so the transition there (transition t4, on exiting d11) can take place. Nor does it affect state d2, as it is not an ancestor of the source or target state of our original transition t1 on . So the transition t2 from d21 to d22 can in principle be triggered. Transition t3 is invalid in this situation. Orbital transitions An orbital transition is blocked if its orbital level takes it to a blocked state. In the figure below, as transition t1 takes place, transition t2 becomes blocked, because state d becomes blocked, so it cannot be exited or entered.  Blocking of orbital transitions Unblocking of states Each transition causes its own set of states to be blocked. In the example below, processing the transition on  will block states d11, d12, d1 and d; the transition on  will block d21, d22, d2 and d. As the processing of  completes, the states that were blocked by processing of  only will be unblocked, i.e. d21, d22 and d2.  Unblocking example History The history setting is only relevant on entering a vacant cluster. Since, under an in-flight approach, a vacated cluster cannot be re-entered as a consequence of the one initiating event, it is not critical when history is set. History can conveniently be set when a state is really vacated. The record of a historically occupied child can conveniently always be set whether or not the History/Deep History markers indicate that it is required. The issue of whether to make use of this data is resolved on cluster entry. This policy is robust in the event of changes to the algorithm. When should the conditions associated with transitions/actions be evaluated? Under the conditions we understand the requirement that a source state is occupied the requirement that the boolean condition expression, (or guard), evaluates to true. The options are: at collection time only at execution time only on both occasions The choice will depend on either what is necessary to ensure machine integrity, or what is expedient, in giving the most desirable behaviour. We consider a number of typical situations, and the consequences of each strategy in each case. The issues revolve around race-nondeterministic situations. The key question is: if two or more transitions on the same event are eligible at collection time, can the consequences of starting or completing one invalidate the other? In the following figure, at transition collection time, two transitions on  are valid. This gives rise to race nondeterminism, so that transition sequences <t1,t2> and <t2,t1> will be prepared. If the condition [v==0] is re-evaluated at execution time, then in the world which processes <t1,t2>, transition t2 will not take place.  Race with arithmetic transition condition The following figure shows that there is a need for condition re-evaluation, at least as regards the occupancy requirement. There is race nondeterminism. However, owing to statechart integrity considerations, one transition must invalidate the other. This can be achieved by in-flight blocking or execution time re-evaluation of the conditions (including the source state occupancy). Under nondeterministic processing, a world will be generated in which c is the final occupied state and a world will be generated in which d is final occupied state. It is simply not possible to proceed on the basis that (perhaps just in some world) both transitions must take place.  Race with occupancy requirement In the  REF _Ref35411330 \r \h Figure 106, it might be argued that (whatever the nondeterministic world being considered), both transitions should take place. However, it can also be argued that one transition does invalidate the other, as in the previous figure. It will furthermore be argued that if a transition sequence, as produced by nondeterministic processing, such as is to be processed as a sequence, then the second transition in the sequence must take into consideration the effects of the first.  Race with in(..) transition condition The following figure shows that collection of transitions is a one-off process. Suppose event  occurs when state e is occupied. Although transition t8 becomes eligible for processing, it must not be processed on the same occurrence of event  that triggered t7, because when  occurs, state f is vacant.  Collection is a one-off process Conclusion on condition evaluation In view of the threats to machine integrity in race condition situations, we opt for condition evaluation at collection and execution time. Mutual order of actions and meta-events We consider the best order in which to process transition actions and meta-events relative to each other, the categories being: exit meta-events upon exit actions transition actions enter meta-events upon enter actions The order is relevant, because Variables are always referenced in the latest context not, say, the context just prior to the transition. So if a variable is modified by one collected action, a subsequent collected action will see the modified value. States are also referenced in the latest context, and may become occupied or vacant through a certain action, so that subsequent fired or generated events do not trigger a transition which they would otherwise have triggered. Within the context of one transition, each action, however ordered, will be completed before the next one is executed, so it will never be the case that one action causes new blocked states to come into effect and be seen by subsequent actions in the list of collected actions. Note, however, that knock-on actions, (actions associated with transitions triggered by events that were fired as an action of an original transition) will typically see more blocked states. It is clear that upon exit actions should precede upon enter actions and that these should take place in the order in which they were generated. Similarly upon exit meta-events should precede upon enter meta-events. Where in the sequence should the transition actions be executed? Candidate orderings are: 1st transition actions, 2nd exit and upon exit actions, 3rd enter and upon enter actions 1st exit and upon exit actions, 2nd transition actions, 3rd enter and upon enter actions 1st exit and upon exit actions, 2nd enter and upon enter actions, 3rd transition actions Option (2) has an intuitive feel to it. Note that actually entering the target state can never be invalidated by earlier actions, because it has already shadow-taken-place. One disadvantage is that transition actions cannot override on-enter actions. This would be useful, as on-entry actions are generic to many transitions. So if an on-entry action is v=v%3, (the modulo function) but for a specific transition we would like v to be set to 5, we cannot do it this way. A work-around is to cancel the on-entry actions and re-write all relevant transition actions to include the appropriate assignment to v. This argument lends support to option 3. However, we feel that user-intuitiveness is important, and provisionally choose option (2). As to the question of the order of exit meta-events versus upon exit actions, we choose to do the upon exit actions first. Similarly concerning the order of enter meta-events versus upon enter actions, we choose to do the upon enter actions first. Where a hierarchy is exited, the exit meta-event and upon exit actions for one level are performed before those of the next level up. Similarly where a hierarchy is entered the enter meta-event and upon enter actions for one level are performed before those of the next level down. The ordering of all aspects of transition processing for the in-flight approach is therefore: shadow exit (all relevant states), collecting exit meta-events and upon exit actions shadow enter (all relevant states) collecting enter meta-events and upon enter actions block ancestors  execute upon exit actions (loop with next step) execute exit meta-events (inner loop to previous step for each hierarchical level) execute transition actions  execute upon enter actions(loop with next step) execute enter meta-event (inner loop to previous step for each hierarchical level) unblock ancestors execute real exit (loop with next step) set history (inner loop to previous step for each hierarchical level) execute real enter (all relevant states) We illustrate this with an example:  Order of actions on hierarchical entry/exit The ordering, with bracketed reference to the above numbering, will be: (1a) shadow exit ab (1b) shadow exit a (2a) shadow enter b (2b) shadow enter ba (3a) execute upon exit(ab) action (fire 1) (4a) execute meta-event exit(ab) (3b) execute upon exit(a) action (fire 2) (4b) execute meta-event exit(a) (6) execute on-transition action (fire ) (7a) execute upon enter(b) action (fire 3) (8a) execute meta-event enter(b) (7b) execute upon enter(ba) action (fire 4) (8b) execute meta-event enter(ba) (10a) real exit ab (10b) real exit a (11b) set history of a (12a) real enter b (12b) real enter ba Major disadvantages of the in-flight approach The problems with the in-flight approach are that by blocking states: it prevents cycling. The fact that this is so can be seen by reference to  REF _Ref530372866 \r \h Figure 90. The transition on  fires , which triggers a transition involving states which will not be blocked, so that transition can take place, However, the transition on  will not take place because its source and target states are blocked. Cycling has been found to be useful in generating a number of interleaved traces. it may prevent knock-on transitions as in  REF _Ref60725048 \r \h Figure 99. In-flight approaches that do not prevent (all) knock-on effects may be possible. It will be seen that knock-on transitions are essential to composition of models (section  REF _Ref60725123 \r \h 6.5) Given that the ability to cycle under well-constructed circumstances is desirable, and the relative complexity of blocking and unblocking states, we examine an alternative approach (in the next sub-section), which we will adopt. An after-landing approach After landing ordering In this approach, the transition actions are executed after the initiating transition has actually entered the target states. Fired events (and other actions, and meta-events) are processed after completion of exit and enter processing of the transition that fired them. Processing them may be done by an in-line call at the end of processing the original transition, or by placing the new event as a job in a buffer, which we could call a joblist, for a read-execute loop. The actual implementation in STATECRUNCHER is an in-line call, elaborated on in  REF _Ref35414465 \r \h  \* MERGEFORMAT Figure 140, (p. PAGEREF _Ref35414465 \h 170). The net effect in either case is that, referring to  REF _Ref35420568 \r \h Figure 108 again, we have a new ordering such as the following: real exit ab real exit a set history of a real enter b real enter ba execute upon exit(ab) action (fire 1) execute meta-event exit(ab) execute upon exit(a) action (fire 2) execute meta-event exit(a) execute on-transition action (fire ) execute upon enter(b) action (fire 3) execute meta-event enter(b) execute upon enter(ba) action (fire 4) execute meta-event enter(ba) In  REF _Ref35415218 \r \h Figure 109, the transition on  will be processed to completion, while its action (fire ) will be collected and executed afterwards.  After-landing equivalence A more complex example shows how multiple fired events and their consequent actions are sequenced:  Multiple fired events Note that the list of events to be processed is built up by depth-first traversal of the nested fired events, but that all are processed at a top-level after completion of the previous one there is never anything to be re-visited for a previous event. For the processing order to actually make a difference in our example, there would have to be more detail in the model, such as variable assignments on the self-transitions, but we keep the example simple. Condition evaluation The discussions under the in-flight approach on race conditions apply equally well to the after-landing approach, as they are not concerned with fired events. The conclusion there, that conditions on transitions processed in transition sequences must be re-evaluated at execution time, applies to the after-landing approach too. An example is given illustrating the time reference of the in() function below. The after-landing approach views transitions such as the one on  in  REF _Ref35418797 \r \h Figure 111 from the point in time of completion of the transition on . The transition on  will be accepted. This may or may not correspond to the user's instinctive idea of when conditions are evaluated.  Time reference of the in() function Client-server composition and PCOs In this section, we see how the after-landing approach enables us to model one software component or function calling another using fired events.  Component composition Points to note STATECRUNCHER's composition paradigm is closely analogous to the function call and return of imperative languages such as C. The making of the function call is modeled by a fired event The response to this is modeled by a transition on the event that was fired The return statement is modeled by fired return event The response to this is modeled by a transition on the return event that was fired. If there are many such calling sequences in a model, return names can be made unique to a server function by affixing the function name to the event (e.g. return_max) or by putting the return event in a sufficiently local scope (using STATECRUNCHER's scoping capabilities). The client can be seen as an independent state machine, which can be driven through its cycle with events  and return. It does not care who it is that responds to its firing of , nor who it is that provides the return event. A different server to the one shown might be connected to the client, e.g. with more states and transitions between its initial and final states (S1 and S2). Similarly, the server is independent of its client, except for the agreed interface of  and return. Event  is supplied externally to the client and server. Events  and return are part of the agreed interface between the client and server. We indicate this by putting the events on different PCOs. STATECRUNCHER's output will reveal the PCOs so that a test generator program can distinguish, and if required, restrict itself to certain PCOs only. We put  on pco_ext (for external) and  on pco_cmp (for composition). If we had more events local to the server only, say, we could put them on pco_serv and so on, but we have kept this model to the basics. The scheme would not work with the in-flight approach, because the return event would not be eligible when needed. For a discussion of these semantics in relation to the process algebras CSP and CCS, see [StCrSemComp]. Conclusions on the sequencing in the transition algorithm Given a requirement to allow cycling and composition between parallel machines, the conclusions for the best approach to the transition algorithm are: An after-landing approach Condition re-evaluation for transitions at the time they are executed. The transition algorithm The formal statechart and the nondeterministic transition function Finite state machines (FSMs) are often formally described without reference to the hierarchical structures of a Harel or UML or STATECRUNCHER statechart (Harel's AND- and XOR-states; in UML's concurrent and non-concurrent composite states; STATECRUNCHER's sets and clusters). This is because the hierarchical structure is just a convenient way of expressing a mathematically equivalent flattened state space. When the hierarchy is introduced, the terminology changes from FSMs to statecharts, but the two are equivalent. A state in the flattened state space is an element of the Cartesian product of parallel states in the statechart. Only statechart leafstates need be considered, because the occupancy of their ancestors is a derivative of that of the leafstates. If the statechart contains history, variables and traces, then these must also present as terms in the Cartesian product in defining flattened states. Just as the hierarchical states of a statechart offer convenience in representing the state space, so the structured forms of nondeterminism offer convenience in representing what is equivalent to FSM nondeterminism in the flattened state space. STATECRUNCHER simply structures the nondeterminism into various categories that are easy to visualize in a statechart. As has been seen, STATECRUNCHER supports the following forms of structured nondeterminism, all equivalent to fork nondeterminism in the flattened state space. fork race set-transit set action set meta-event fired event (or broadcast event) nondeterminism. We gave an example of flattened race nondeterminism in  REF _Ref60476375 \r \h Figure 35. After processing an event STATECRUNCHER produces a world per distinct state configuration, which, in flattened state space terms, is equivalent to a world for every possible resultant flattened state. We develop the notion of a world more formally, working from the definition of a NFSM (Nondeterministic Finite State Machine) given by [Hierons 98]: An NFSM M is defined by a tuple (S, s1, h, X, Y) in which S is a set of states s1 is the initial state h is the state transition function X is the input alphabet Y is the output alphabet Given an NFSM M, SM shall denote the state set of M. When M receives an input value x X, while in state s S, a transition is executed producing an output value y Y and moving M to some state s' S. The function h gives the possible transitions and has the type SX!P(SY) where P denotes the power set operator. ... An NFSM M is completely specified if, for each s S and x X, |h(s,x)|1. M is deterministic if for each s S and x X, |h(s,x)| d" 1. What in Hierons' description is the notion of M being in state s, is to STATECRUNCHER having an occupancy configuration s, and other dynamic properties, where an occupancy configuration gives the occupancy (occupied or vacant) of every state. Several states can be occupied, due to parallelism (modelled by a STATECRUNCHER set), and hierarchy (the fact that a parent of an occupied state is also an occupied state). Remark: the occupancy of non-leaf states can be derived from that of their child states (by the set and cluster rules), so, given the hierarchical structure, the occupancy configuration need only explicitly comprise the set of occupied leaf states. The other dynamic properties which s must comprise are cluster history and variable values. In our definitions below, we define G(AB) P(AB) to be the set of all functions from A to B. A STATECRUNCHER statechart is therefore (C, V, P, s1, v1, p1, X, Y, h) where C is a hierarchy of states (sets, clusters and leafstates), from which we can easily derive S, the set of all states P, the set of all clusters, P S V is a set of variables. We assume the range of values is finite - it is determined by practical limitations. s1 is the initial state v1 is a function giving the initial variable values, V!Z, where Z is the set of integers p1 is a function giving the initial history values per cluster, P!S X is the input alphabet (a set of events in STATECRUNCHER) Y is the output alphabet (a set of trace elements in STATECRUNCHER) h is the state transition function h : [S G(VZ) G(PS)]X!P([S G(VZ) G(PS )]Y), where the G(VZ) term represents all the variables with their values the G(PS) term represents all the clusters with their histories the [...] bracketing on the LHS and RHS is introduced because of the commonality of these terms; they are the STATECRUNCHER worlds, which we can denote by W. There may be no worlds in existence. We could add to this definition Q the set of PCOs A the set of actions and a way of attaching them to other components of the statechart, but PCOs are effectively a simple attribute to events, and actions can be absorbed into the transition function, since they occur on transitions and influence the final configurations. The domain and range of h can be represented as domain (h) : [S G(VZ) G(PS )] Y = WX range(h) :P([S G(VZ) G(PS )] Y) = P(WY) When an event is processed in many worlds, a new set of worlds is produced. To represent this, we define a multi-input-world transition function: H: P(WX) ! P(WY) H(A)=BA h(B) In a practical situation, the elements of the domain of H will all contain the same event in all the Cartesian product terms. Remark: in the actual STATECRUNCHER implementation, traces also distinguish worlds, so we should strictly say that the dynamic configuration d of a statechart is of type S G(VZ) G(PS )Y* where Y* is the set of strings consisting of elements of Y, (including the empty sequence). So this could be considered to be the actual type of the range of the transition function h. However, the most efficient mode of operation is to clear traces and merge worlds between processing events; if this is not done, old and new traces are concatenated. Traces do not impinge on the transition algorithm. With this understanding, we discount the traces in a dynamic state; in this way we more closely map to the description given by Hierons. Unfortunately, the term state is overloaded, since it can mean either of a part of a statechart: a set, cluster or leafstate. We may also call this a state-machine or just a machine. an occupancy configuration of a state-machine. However, the word state is so much more natural than, say, machine and occupancy that it is often retained, with clarification where needed. Statechart properties The following definitions are available in expressing various properties of a statechart: source(t): the source state of a transition t orbit(t): the orbital state of a transition t targets(t): the set of target states of a transition t cond(t): the condition on transition t, (dynamically true or false) actions(t): the sequence of actions attached to transition t sources(T): the set of source states of a set of transitions T sources(T) = { source(t) | t T} parent(s) : the set of parent states of state s (or ( for a top level state) ancestors(s): the set of ancestor states (superstates) of state s (or ( for top level states) children(s): the set of child states of state s (or ( for leafstates) descendants(s): the set of descendant states (substates) of state s enter_actions(s): the set of on-enter actions attached to state s exit_actions(s): the set of on-exit actions attached to state s Machine states S are partitioned into state-types {clusters, sets, leafstates}. We also define nonleafs = clusters ( sets = S \ leafstates For convenience, we write s is a cluster to mean s ( clusters etc. Furthermore, the arrangement of states is a tree-like hierarchy: The set of top-level states is the set of states which are no state's descendant: toplevels = {sS | parents(s)= ( } There is only one top-level state. | toplevels | = 1 Clusters and sets must have at least one member (=child): (s nonleafs ( |children(s)| ( 1 Leafstates do not have children (s leafstates ( |children(s)| = 0 States have at most one parent (s S ( |parent(s)| ( 1 If a state has children, then the parent of those children is the original state (s children(p) ( parent(s) = p Ancestors are parents, or parents of ancestors; to express this nonrecursively: a ancestor(s) iff ( some sequence (p1,p2,..pn) where p1=a, pn=s such that ( i [1,n-1] ( pi = parent(pi+1) Descendants are child states or descendants of child states: d descendant(s) iff ( some sequence (p1,p2,..pn) where p1=d, pn=s such that ( i [1,n-1] ( pi children(pi+1) Dynamic aspects of a statechart Each state has occupancy; it can be occupied or vacant. States also have a history indication, although it is only relevant to clusters. States have a history attribute, but for sets and leafstates it is none. For clusters it is either none or the child state that was last occupied. A third dynamic aspect of a statechart is the value of the variables. We assume the range of values is finite it is determined by practical limitations. A full configuration of a statechart contains the occupancies of all states, all state history, and all variable values. An occupancy configuration F comprises a tuple {occs, vacs }  where occs is the set of state that are occupied, and vacs is the set of states that are vacant. The function H maps a machine state in a configuration to its history. H: F(S({none} ( S if for any H(f,s) = x(S then s is a cluster and x ( children(s) The function V maps a variable in a configuration to its (integral) value. Z is the set of integers (within some practical limits) V: F(V(Z Configuration sets As discussed in section  REF _Ref514659517 \r \h 4.9, nondeterminism is handled by creating worlds to represent the various alternative outcomes when an event is processed. Worlds contain the dynamic data associated with a statechart (state occupancy, state history and variable values). In other words, each world corresponds to a configuration. A configuration set is a set of worlds W containing state data of a particular statechart. At specific intermediate phases of the transition algorithm, the configuration-set-to-be will in general be a bag of worlds rather than a set, though this will be converted to a set on completion of a transition. Properties of a valid configuration of a statechart The statechart as a whole is occupied. This means that all top-level states (although we only allow one) are occupied: toplevels ( occs Every state is occupied or vacant but not both {occs ,vacs} becomes a partition For every occupied cluster, the number of occupied children is 1 ( s clusters ( occs ( | children(s) ( occs | = 1 For every vacant cluster, no children are occupied ( s clusters ( vacs ( children(s) ( vacs For every occupied set, all children are occupied ( s sets ( occs ( children(s) ( occs For every vacant set, no children are occupied ( s sets ( vacs ( children(s) ( vacs Transition selection We consider a statechart in configuration f under some event  T is the set of all transitions on event , (whatever their condition and whatever the configuration-state of the statechart). Tf,,true is the set of all transitions where the associated source/orbit/target pre-requisites and transition conditions are true. The default condition is true. The source pre-requisite is that the source state is occupied. No orbit or target pre-requisite is needed in after-landing semantics. (Otherwise, these states must not be blocked in any way). Tf,,true= {t : t T, cond(t)=true ( source(t) ( occs ( targets(t) ( occs ( vacs ( (orbit(t) ( occs ( vacs ( orbit(t) = () } Tf,,false is the set of all transitions where the associated pre-requisites and conditions are false. Tf,,false= T \ Tf,,true Sf,,true is the set of source states of transitions on the event under consideration for which at least one associated transition condition is true: Sf,,true = sources(Tf,,true) Tsf,,true is the set of transitions from source state s where the associated pre-requisites and conditions are true: Tsf,,true = { t Tf,,true | source(t)=s } Sf,,qual is the set of source states of transitions on the event under consideration for which at least one associated transition condition is true, and for which the source state qualifies under the hierarchy prioritisation algorithm. A state qualifies if there is no transition with a true condition (on the same event) having a source state hierarchically below it. Sf,,qual ={ s Sf,,true | descendants(s) ( Sf,,true=( } Tf,,qual is the set of all transitions where the associated pre-requisites and conditions are true and which qualify under the hierarchy prioritisation algorithm Tf,,qual = { t ( Tf,,true | source(t) ( Sf,,qual} Tf,,disq is the set of all transitions where the associated pre-requisites and conditions are true but which are disqualified by the hierarchy prioritisation algorithm Tf,,disq = Tf,,true \ Tf,,qual Qualifying transitions come from the outermost statechart layer(s) containing true transitions. This could be regarded as an exercise to Find the innermost layer of the hierarchy that has at least one true transition All true transitions from this layer are qualifying All true transitions above this layer are disqualified Tsf,,qual is the set of all transitions from source state s where the associated pre-requisites and conditions are true and which qualify under the hierarchy prioritisation algorithm Tsf,,qual = {t Tf,,qual | source(t)=s} T*f,,qual is the set of sets Tsf,,qual, for all states s in Sf,,qual. Each member set contains all qualifying transitions from the same qualifying source state. T*f,,qual = { Tsf,,qual | s Sf,,qual} Since different elements of T*f,,qual contain transitions from different source states, they are disjoint: T1, T2 T*f,,qual T1 T2 = ( Tf,,qual is the set of sets where each element of Tf,,qual is formed by taking one element from each element of T*f,,qual. (It is rather like a distributed cartesian product, but it is a set of sets, not a set of tuples). Each element of Tf,,qual contains a qualifying transition from each qualifying source-state. There is as yet no notion of orderings of transitions. These elements represent fork nondeterminism. Tf,,qual = { T PTf,,qual | (T1T, T2T*f,,qual #(T1 T2) =1) } Here, # is used to denote the size of a set. Tf,,exec is the set of sequences formed by replacing each set in Tf,,qual by sequences covering every permutation (i.e. ordering) of the replaced set. So each sequence contains an ordering of a qualifying transition from each qualifying source-state. These sequences represent fork and race nondeterminism. Tf,,exec = { seqi Perm(tupj) | tupj Tf,,qual } Set transit nondeterminism is not part of transition selection; it is handled within the transition processing algorithm.  Transition derivatives example (similar to test model t6240) Notes: There is just one event  - the superscript identifies transitions on  . [t] stands for a true condition, [f] for a false one. To illustrate the alternative prioritisation scheme, we would have 9[t], 2[f]. As an example, given the statechart in  REF _Ref506189033 \r \h Figure 113, assuming leafstates a5b and baa are occupied, event  leads to the following quantities: T {t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13} Tf,,true {t2,t5,t7,t10,t11,t12,t13} Tf,,false {t1,t3,t4,t6,t8,t9} Sf,,true {a2,a4,ba,baa} Ta2f,,true {t2} Ta4f,,true {t5,t7} Tbaf,,true {t10,t11} Tbaaf,,true {t12,t13} Sf,,qual {a4,baa} Tf,,qual {t5,t7,t12,t13} Tf,,disq {t2,t10,t11} Ta4f,,qual {t5,t7} Tbaaf,,qual {t12,t13} T*f,,qual { {t5,t7}, {t12,t13} } Tf,,qual { {t5,t12}, {t5,t13}, {t7,t12}, {t7,t13} } Tf,,exec {t5,t12,t12,t5, t5,t13, t13,t5, t7,t12, t12,t7, t7,t13, t13,t7 } STATECRUNCHER's transition selection algorithm is to select all transition sequences in Tf,,exec. For each sequence, a new world (or more than one) can result after execution of the sequence. As will be seen, worlds are not created in advance of processing each sequence, but rather are created deeper in the algorithm where each individual transition is processed when it needs to change the configuration. Discussion of hierarchical fork nondeterminism As mentioned, when there are transitions on the same event at different hierarchical levels, STATECRUNCHER applied the UML-conformant policy of specialisation, whereby inner transitions take precedence over outer ones. We consider here what procedure would best be followed if hierarchical prioritisation is replaced by fork nondeterminism across different hierarchical levels, which we call hierarchical fork nondeterminism. It must first be decided what is meant by event  in the figure below.  Hierarchical ambiguity (1) The nondeterminism lies in choosing either (1 and 2) or just 3 (with set-transit consequences). We do not allow combinations such as 1 and 3.2 in  REF _Ref506799903 \r \h Figure 115 below (where 3.2 is considered a logical component of 3).  Hierarchical ambiguity (2) For more general state structures containing many nested clusters and sets, we organize transitions into groups originating from source states which are members of the same cluster or set and groups which stand in hierarchical relationship to one another. We wrap and mark sibling source states in a set with a from-each tag, indicating that a transition must be taken from each source state. We wrap and mark source states in a hierarchical relationship with a fromone tag. Sometimes there will only be one state in a from-each or from-one package, making the issue irrelevant, but in the examples, we show the tag anyway. We create a quantity Sf,,true to represent this; for  REF _Ref506800633 \r \h Figure 114 above, this would be [from-one, [from-each,baaa,baba], [from-one,ba]]. As a more extensive example, we take the following model, which is similar to the previous one, but with more depth of hierarchy.  Model to illustrate hierarchical fork nondeterminism Hierarchical fork nondeterminism, as a variation on hierarchical prioritisation, will generate a new Sf,,qual set, from which a new Tf,,qual and Tf,,exec set can be constructed analogously to the previous algorithm. Sf,,true = [from-each, [from-one,a2,a4], [from-one, [from-one,ba], [from-each,baaa,baba]]] Next, per source state, we substitute all transitions from it, with a from-one tag, giving T*f,,true = [from-each, [from-one, [from-one,2], [from-one, 5 ,7]], [from-one, [from-one,10,11], [from-each,[from-one,12],[from-one,13]]]] This tree can be walked according to the tagged instruction, with example PROLOG code shown following. PROLOG code for an each-one walker The output of running go_eo is: This corresponds to: Tf,,qual = { {a2,a10}, {a2,a11}, {a2,a12,a13}, {a5,a10}, {a5,a11}, {a5,a12,a13}, {a7,a10}, {a7,a11}, {a7,a12,a13}} Permuting the transitions, we obtain the sequences we wish to execute: Tf,,exec = { t2,t10, t10,t2, t2,t11, t11,t2, t2,t12,t13, t2,t13,t12, t12,t2,t13, t12,t13,t2, t13,t2,t13, t13,t12,t2, t5,t10, t10,t5, t7,t11, t11,t7, t5,t12,t13, t5,t13,t12, t12,t5,t13,t12,t13,t5, t13,t5,t13, t13,t12,t5, t7,t10, t10,t7, t7,t11, t11,t7, t7,t12,t13, t7,t13,t12, t12,t7,t13,t12,t13,t7, t13,t7,t12, t13,t12,t7 } Transition course Effective transitions A transition arc (including bifurcations) indicates one source state and one or more target states. In general, the transition arc does not indicate leafstates at either end, and these must be determined by some algorithm. The transition course is the actual sequence of states exited and entered, and can be indicated by an effective transition arc, which we show by a dotted line in the figures below. A requirement is that, in the absence of orbital transitions, the transition should be as low flying as possible, i.e. it should not exit and enter any states unnecessarily. The algorithm to find the effective transition arc basically involves: Determining the enter tree scope and exit tree scope. These are sometimes (but not always), identical, and might be the common ancestor of the source and target states of the transition. The reason these scopes are needed is given below. Constructing an intermediate exit tree to the exit tree scope level. Constructing an intermediate enter tree to the enter tree scope level. Removing common states between the enter and exit trees, (but not necessarily so when the transition is orbital). The reason for this operation is that effective transitions are as low flying as possible, which means that the exit and enter trees must not take the transition to an unnecessary height. An example of a low-flying transition with higher level intermediate exit and enter trees is the transition on 1 in  REF _Ref71018690 \r \h Figure 120, (given the occupancy configuration shown in the figure). After common state removal, the highest level remaining is called the altitude of the transition. The residual exit and enter trees are called the definitive exit tree and the definitive entry tree. The algorithm is explained in more detail in this section. The scopes are needed, because without them, we would have to exit to statechart level, and we could then be exiting set members that are not involved in the transition. Constructing the enter tree would then be more difficult, because we would have to re-enter states that really never should have been considered for exit, when we want to concentrate on entering states because the transition demands it. Moreover, we would have to ensure that such states are never actually exited and re-entered. It would also be inefficient to work with exit and entry trees to statechart level if this is not necessary.  REF _Ref35159452 \r \h Figure 117 below indicates how a transition on event  might effectively correspond to the transition marked by 1. The tail and tip of the transition arc explicitly give states to be exited and entered.  Transition arc and effective transition Deep History The effect of deep history is to ensure that when a decision must be taken as to which member to enter of a cluster that is under deep history, the member that was last occupied is entered. We call this the historical member. If no member has ever been entered, or the record of the history has been cleared, the default member is taken. If the cluster is already occupied, the currently occupied member is regarded as the target member. A cluster member is liable to be under deep history if there is an ancestor set or cluster that has a deep history marker. We shall see that there are nevertheless circumstances when we do not regard a transition entry step as being under the dominion of an ancestral deep history marker. Deep history ensures that after an excursion from a cluster, such as the excursion from t to c and back again in  REF _Ref35156513 \r \h Figure 118 below, defined by the transitions on  and , the original cluster is back in its original state. However, a transition such as the one on event  below does not  see the deep history, since no member of the cluster with the deep history marker, t, undergoes an enter operation. This is the behaviour we want; the local behaviour in clusters a, c and d should not be altered by an outer wrapper such as t. The orbital transition on , however, does see deep history, because it actually enters cluster t, which is marked with deep history, since cluster t is below its orbital level.  Deep history illustration  Deep history illustrations - effective transitions (1)  Deep history illustrations - effective transitions (2)  Deep history illustrations - effective transitions (3) Now the issue in finding the transition course in a statechart with deep history appears at first sight to be a chicken and egg problem: to find the transition course, we need, amongst other things, the enter tree constructing the enter tree depends on knowing when to apply deep history knowing when to apply deep history depends on knowing whether a particular cluster will actually be entered in the effective transition knowing whether a particular cluster will actually be entered depends on knowing the transition course. Despite the apparent circular reasoning, it is possible to find a satisfactory algorithm. The algorithm parameters available to control the transition course are as follows: Exit/enter tree scope logic is based on transition source and transition target states, and orbital state Enter tree construction logic is based on explicit target states, history markers, target occupancy, and the orbital state. The intermediate exit tree is created by (recursively) exiting the highest level in the exit tree scope then the child of each state exited. When a member of a set is exited, sibling set members are also exited. The intermediate entry tree is more difficult to construct; details follow in Section  REF _Ref35240766 \r \h 7.5.3. Logic for exit and enter tree scopes Terminology for the decision logic Given a transition, with its source state, orbit and target states, we may refer to: the transition common ancestor, TnCA (the common ancestor of the source state and all target states) the target common ancestor, TgCA (the common ancestor of all target states) the source-side child of transition common ancestor the target-side child of transition common ancestor the source-side child of orbit the target-side child of orbit Not all conceivable algorithms require all these terms. Examples of the terms are given with reference to  REF _Ref35163395 \r \h Figure 122.  Model for reference to transition common ancestor and related concepts For the transition on : the transition common ancestor is the common ancestor of cluster d, cluster e and leafstate f1, which is cluster s the target common ancestor is the common ancestor of cluster e and leafstate f1, which is set b For the transition on : the transition common ancestor is the common ancestor of cluster d and cluster a, which is cluster a For the transition on : the transition common ancestor is the common ancestor of leafstate c1 and leafstate d1, which is cluster a the source side child of transition common ancestor is cluster c the target side child of transition common ancestor is cluster d the orbit is cluster a the source side child of orbit is cluster c the target side child of orbit is cluster d The logic for the scope of the intermediate exit and enter trees is given in  REF _Ref8568101 \r \h  \* MERGEFORMAT Figure 123. Legend for that figure (not all terms necessarily used in the current algorithm): Sor = Source state of transition Tar = Target state of transition, or common ancestor of target states if there are several TnCA = Transition common ancestor orb = orbital state A > B reads "A is a strict ancestor of B." [A is greater in age, as it were]. A < B reads "A is a strict descendant of B." A / B reads "A and B are not in a direct ancestral line." A-1 reads "a child of A". A-1s reads "the child of A on the source side of the transition, i.e. the active child of A. A-1t reads "the child of A on the target side".  Decision logic for scopes Notes By target scope, we mean the common ancestor of all targets. The above logic could be exhibited in a more condensed form, but as it stands, it brings out separate cases more explicitly, making it easier to review the logic. In particular, cases 1,3,5,7 (orbital cases) condense, as do cases 4,6,8 (line-of-descent cases). For all orbital cases, the enter and exit trees have exit and enter scope of orbit-1s and orbit-1t respectively. Where the source and target are in the same line of descent, the enter and exit scope given will necessarily be the same for each. In case 2 we have TnCA-1s and TnCA-1t, and that we do not attempt to remove any common tree, because we know there is no common tree. Where there is a low orbit, it will have the effect of limiting the amount of common tree removal. Where there is no orbit, the maximum amount possible of common tree removal will take place.  Scope of enter/exit trees Notes All the above transitions terminate on state c. The 1/1/1/1 events are high orbital, the 2/2/2/2 events are lower orbital, and the 3/3/3/3 events are non-orbital. Examples from the above figure: CaseTransitionOrbitTnCA Key PropertiesIntermed. exit scopeIntermed. enter scopeAttempt common tree removal? Remarks1t1xySor/Tar orbit>TnCA (high orbit)orbit-1s = x-1s = yorbit-1t = x-1t = yNoOrbit above common ancestor Orbit-child scopes No common tree removal.1t2yySor/Tar orbit=TnCA (high orbit)TnCA-1s y-1s =pTnCA-1t y-1t =aNoOrbit at common ancestor Common tree removal would fail if attempted2t3-ySor/Tar no orbitTnCA-1s y-1s =pTnCA-1t y-1t =aNoCommon tree removal would fail if attempted3t1yaSor/Tar orbit>TnCA (high orbit)orbit-1s = y-1s = aorbit-1t = y-1t = aNoOrbit above common ancestor Orbit-child scopes No common tree removal.4t2aaSor>Tar orbit<TnCA (low orbit)TnCA =aTnCA =aYes, but...Orbit at common ancestor Transition common ancestor scope ORBIT will restrict common tree removal4t3-aSor>Tar no orbitTnCA = aTnCA =aYesTransition common ancestor scope Common tree will remove c (at least) Note that c's history marker will be seen.5t1bcSor=Tar orbit>TnCA (high orbit)orbit-1s = b-1s = corbit-1t = b-1t = cNoOrbit above common ancestor Orbit-child scopes No common tree removal6t2ccSor=Tar orbit=TnCA (low orbit)TnCA = cTnCA = cYes, but...Orbit at common ancestor Transition common ancestor scope ORBIT will restrict common tree removal6t3-cSor=Tar no orbit TnCA = cTnCA = cYesTransition common ancestor scope Common tree will remove c (at least) Note that c's history marker will be seen.7t1bcSor<Tar orbit>TnCA high orbitorbit-1s = b-1s = corbit-1t = b-1t = cNoOrbit above common ancestor Orbit-child scopes No common tree removal8t2ccSor<Tar orbit=TnCA low orbitTnCA =cTnCA =cYes but...Orbit at common ancestor Transition common ancestor scope ORBIT will restrict common tree removal8t3-cSor<Tar no orbitTnCA =cTnCA =cYesTransition common ancestor scope Common tree will remove c (at least) Note that c's history marker will be seen. Exit and enter tree scope examples Entry tree construction Entry of a cluster We first introduce the terminology guide-mode and orbitality.  Guide mode and orbitality The transition on  in  REF _Ref35231392 \r \h Figure 125 is specified as coming from cluster b, but this is a non-leafstate; the effective transition source could be various leafstates within cluster b: j, k, c2, or b2 (but not a2, which is not within cluster b). The target state is also specified at non-leafstate level, (cluster d), the effective target state always being in fact j. The transition arrow is not entirely an explicit guide for determining the effective transition. If the transition actually comes from state b2, (because state b2 is the occupied leafstate) it is clear from the transition arrow that clusters c and d must be entered. This is guided entry. If this transition comes from state c2, then cluster d will be entered as guided entry. But the final part of determining the actual transition target (leafstate j) is not explicit in the transition arrow, and will be performed as unguided entry. The transition on  illustrates orbitality: Cluster b is at-orbit Cluster a is above the orbit, i.e. super-orbital Clusters c and d and leafstate k are below the orbit, i.e. sub-orbital Note that for the transition on  all states in the hierarchy are qualified as no-orbit The dependency factors for entering a cluster are: whether the cluster is entered in guide-mode = guided or unguided whether the cluster history-attribute = deep history or history or no history whether the cluster history-availability = available or unavailable whether the cluster is entered under a dho = deep-history-obligation (on statechart entry set to false) or not. This means that the historical member must be (recursively) entered if possible, due to a deep history marker having set this up in a preceding part of the transition course. whether the cluster orbitality = suborbital (i.e. at a level at-or-below orbital level) or superorbital or no-orbit. whether the target state occupancy = occupied or vacant Entry of a set This is basically as for a cluster, except that all members are entered there are typically several guides, prescribing entry into various set members. An illustrative example is given at  REF _Ref35232324 \r \h Figure 128. The following figures show flow diagrams that specify which member of a cluster is entered using the above factors.  Entry tree for clusters (1) Rationale for the above As these are all the guided entry mode cases, the cluster member entered will certainly be the one specified by the guide. The remaining issue is whether or not to impose a deep history obligation (dho) on the member state that is entered, for its (or its descendants) use when the guide ceases. The dho is imposed when a cluster is entered with a deep history marker, but it can be cancelled. Cancellation takes place (cases 1 and 4 in  REF _Ref35241134 \r \h Figure 126) when a cluster is entered which has the property that both source and target state belong to it (the transition being local to the cluster, and the deep history being inapplicable) providing there is no orbit that takes the transition above the cluster being entered. An example of cancellation of the dho taking place is the transition on 1 in  REF _Ref71018690 \r \h Figure 120. If a cluster is entered which is vacant, or which is occupied but sub-orbital, then it is known that this entry step will form part of the effective transition, as the transition cannot be more local. In these cases, a deep history marker will set up a dho, and an existing dho will be imposed on the member cluster. Unguided entry:  Entry tree for clusters (2) Rationale for the above The first issue is to determine which member state is to be entered. We first determine whether history is applicable: this is the case if there is a (D) or (H) history marker, or if a deep history obligation (dho) has been imposed. Having established applicability of history, we regard a currently occupied member state as the intended target, i.e. the present as overriding history, or to put it another way, the currently occupied state is the last entered state and so is the historical state. This is the correct choice of member state whether or not the effective transition passes through this hierarchical level. If it does, then the entry step will be reflected in the effective transition. If it does not, then the transition is at a local level in the cluster we are entering, so the enter-tree must reflect this; it will be eliminated when the intersection of the entry tree and exit tree is taken to form the common tree. To apply history to a vacant cluster requires that history data is also available. If it is, we take the historical state; if not, we take the default state. If history is not even applicable, we ignore historical state information and take the default state (even if another member is currently occupied). In this last situation, there is no dho, and this is maintained that way. The fact that the cluster is vacant implies it will be entered in the effective transition too. The second issue is the deep history obligation (dho) setting. The dho is imposed, maintained or cancelled employing the same considerations as those given under guided entry relating to  REF _Ref35241134 \r \h Figure 126. Example for a set  Example course for sets The rules as given for a cluster apply, but with the following extra provisions: If any member of a set is exited, the entire set must be exited. So if the transition altitude would otherwise be a member of a set, the whole set must be exited recursively upwards in the hierarchy until a non-set state is found (cluster or statechart). There can be multiple target states. Construction of the entry tree involves following all multiple target states (as far as they go), then relying on history and default settings. If any one member of a set is entered, all members must of course be entered, be it guided by a target state or relying on history and default states. When members of a set (or a member of a cluster) are entered under guided entry, all elements of the guide-list that can be consumed, must be consumed as entry takes place. The guide list will be supplied to each member entered, and irrelevant elements in it for each particular member can be discarded. Sometimes (when we are about to commence unguided entry) an entry may be reduced to the empty list; such entries can also be discarded. An example of this is the guide-path as far as y3 in the figure above. The paths of the target of the transition on  above, as the entry progresses, would be Initial guide-paths, in set x, as we are about to enter members x1 and y1 [ [y3,x2,x1], [q5,y4,x3,x2,x1], [p2,y2,x1] ] After entering member x1 the guide-paths are: [ [y3,x2], [q5,y4,x3,x2], [p2,y2] ] In parallel, member y1 is entered, but the guide paths do not apply, and will be ignored or effaced. From set x1, members x2 (a set), and y2 (a cluster) must be entered. After entering set x2, this set retains guide paths as follows (irrelevant ones struck through) [ [y3], [q5,y4,x3], [p2,y2] ] From x2 we enter x3 and y3. In x3, we retain one guide path in the list which is as follows. [[q5,y4]] In y3, which we must enter anyway, we retain an empty path, which can be effaced from the list [[]] leaving no guide paths, represented by the empty list: [] The remaining guide-path in to y4 and q5 is followed through, being consumed as entry steps are taken. Common tree removal An exit or enter tree is a nested structure of states, e.g. (simplified) [a,[b,[c]]], with the outermost layer representing the highest part of the statechart hierarchy in the tree. The process of removing common states is to examine the top of each tree for a match and if found, to peel off the outer layer from each structure (giving in our example [b,[c]]) and to repeat the operation until a difference is found. An intermediate enter tree of [a,[b,[c,[d]]]] and an intermediate exit tree of [a,[b,[e,[f]]]] would yield definitive trees of [c,[d]] and [e,[f]] respectively. If the trees are identical, all states are removed, and the transition is effectively a self-transition. Some nesting layers may represent sets, giving e.g. [a,[b,[c,d,e]]]. Where the two trees contain several top-level elements, representing set members, the set members are subjected to common tree removal by a recursive call for each member. This can only occur when their parents have just been removed, so guaranteeing that the enter and exit trees contain the same set members at this stage. The exit-tree and enter-tree orderings of set members correspond to enable this (set members are ordered in their declaration order). As soon as the exit and enter trees differ, the removal process is complete and they become the definitive exit and enter trees. Throughout the process, an orbital level (if present) is used in a check so that the process can terminate prematurely, as it were, if the enter and exit trees have reached the level at which no more common tree removal is permitted. The enter and exit trees actually contain permutation markers on set members so as to support set nondeterminism (section  REF _Ref535897479 \r \h 7.6.5), but this does not affect the test for commonality or the removal of common states. Task processing Introduction to event processing and generalisation to tasks The algorithm presented here for processing an event, taking account of all forms of nondeterminism (as discussed) involves extensive mutual recursion at many processing levels. We take a top-down approach to event processing, generalising to a task, and leading to a highly general top-level call, which effectively abstracts away many details which are best considered at a lower level. The main function of the machine engine is to process a single event. The first event is normally processed on the initial state, which is unique and so is represented by just one world. However, apart from special situations, an event is typically processed in each of several worlds. This is because the previous event (which may entail broadcast events, i.e. fired events and internally generated meta-events) will in general produce many worlds. When one event has been processed, the resulting worlds will be needed for subsequent event processing. Any worlds representing an earlier situation can be destroyed, unless a record of them is required for some reason, in which case they can be retained, but they will not participate in any world merging during event processing. When an event is processed, the transition selection algorithm produces a set of transition sequences. This is the input to the transition execution algorithm. We generalize a transition into a task. The most general internal STATECRUNCHER call is a call to process a set of sequences of tasks in a set of worlds. We also generalize events and actions into tasks. The outer layer of our algorithm for processing sets of sequences of tasks in many worlds will be applicable to any kind of task. When we come to process one task in one world, we will identify the task and handle it with a specific handler, (a client handler to the more general routines). The world merging symbol In the diagrams, the following symbol is used to indicate world merging:  World merging diagram Processing a sequence We represent sequences of items, and sets of items, as lists. As is conventional in PROLOG and elsewhere, we call the first element the head, and the remainder, which is a list, the tail. The tail may contain many elements, or just one, or none at all (in which case it is a null list). Typical recursive processing of a given list is as follows: Process the head using a different, lower level routine, which knows how to process the one item Process the tail by a recursive call to the same routine that is handling the given list Combine results of the processed head, and processed tail The termination condition of the recursion is to process the null list, and return a null list as the processed output. The example code for processing a task sequence in worlds, given later in this section, illustrates this. An issue for any processing routine: In typical parallel world head/tail processing, where we are not concerned with a specific sequence, the processing order (of head and tail) may be reversed. As long as there are no side effects in the two calls, these are equivalent.  Process task in worlds (i)  Process task in worlds (ii) Totally different is the serial (or feed-forward) case, used for sequences, where the output worlds of head processing feed into the tail processing.  Process task sequence in world The specific routines We now consider what routines are needed when an event is to be processed in many worlds. In the section following this one, we will generalize these routines to tasks. Process event in worlds  Process event in worlds Process event in world  Process event in world Process transition sequences in world  Process transition sequences in world Process transition sequence in world  Process transition sequence in world Process transition sequence in worlds: Algorithm A - outer loop on worlds  Process transition sequence in worlds (A) Process transition sequence in worlds: Algorithm B - outer loop on transitions  Process transition sequence in worlds (B) Process transition in worlds This is required by the algorithm B approach to process transition sequence in worlds  Process transition in worlds Process transition in world  Process transition in world Housekeeping exit and enter tasks These are the simple state occupancy changes without execution of any actions.  Process housekeeping task sequence in world Process meta-event sequences in worlds: Algorithm A - outer loop on worlds  Process meta-event sequences in worlds (A) Process meta-event sequences in worlds: Algorithm B - outer loop on meta-event sequences  Process meta-event sequences in worlds (B) We opt for algorithm B (see the dependency analysis below in this section). Process meta-event sequences in world [Required by the algorithm A approach to process meta-event sequences in worlds]  Process meta-event sequences in world Process meta-event sequence in worlds - Algorithm A - outer loop on worlds  Process meta-event sequence in worlds (A) Process meta-event sequence in worlds - Algorithm B outer loop on meta-events  Process meta-event sequence in worlds (B) Process meta-event sequence in world  Process meta-event sequence in world Process action in world (1): Clone-world action type  Clone-world action type The clone world action type applies to assignments (including function calls). Process action in world (2): Delegated action types  Delegated action types Delegated action types are: fire event conditional action These action types do not clone directly. Task generalisation Generalisation is possible across different kinds of task as long as such tasks are wrapped up in a similar way, with a tag to identify the actual task when it comes to be processed at a low level. We have the following routines and their generalisation, with the following classification of world mode: serial mode, as previously explained parallel mode, as previously explained specific mode, where one task is to be processed in one given world, i.e. we are at a client handler level for processing the task. The task will be identified (as an event, transition, action etc.), and handled accordingly. Responsibility is taken for cloning if any changes are to be made to the world, and the changed world (or indirectly generated worlds) are the output. If cloning responsibility has been taken care of by the caller, the routine is free to make alterations in the world given. This mode is used for making direct state occupancy changes. SpecificGeneralizedDirect CloningWorld modeprocess event in worldspecific client handlernospecificprocess event in worldsprocess task in worldsnoparallelprocess transition seq in worldprocess task seq in worldnoserialprocess transition seqs in worldprocess task seqs in worldnoparallelprocess transition seq in worlds process task seq in worlds alg A/B Alg. A - outer loop over worlds Alg. B - outer loop over tasks no no parallel serialprocess transition in worldspecific client handleryesspecificprocess hkeep exit seqs in world process hkeep enter seqs in worldprocess task seqs in worldno parallelprocess hkeep exit task in world process hkeep enter task in worldspecific client handler no specific process meta-event seqs in worldsprocess task seqs in worlds alg A/B Alg. A - outer loop over worlds Alg. B - outer loop over seqs no no parallel parallelprocess meta-event seqs in worldprocess task seqs in worldnoparallelprocess meta-event seq in worldsprocess task seq in worlds alg A/B Alg. A - outer loop over worlds Alg. B - outer loop over tasks no no parallel serialprocess meta-event seq in worldprocess task seq in worldnoserialprocess meta-event in worldspecific client handlernospecificprocess action seqs in worldprocess task seqs in worldnoparallelprocess action seq in worldsprocess task seqs in worldsnoparallelprocess action seq in worldprocess task seq in worldnoserialprocess action in worldspecific client handlersomespecific Task generalisation The actions mentioned in the above table could be upon-exit actions, on-transition actions, or upon-enter actions. Some actions clone a world directly (e.g. an assignment); others may cause world generation indirectly (e.g. firing an event). Having generalized, we regard the general routines as a task-processing server, serving client handlers that handle single tasks in a single world. A dependency analysis shows that if we select the algorithm-B options, a minimal set of processing routines will suffice. Shaded routines are not required.  Task processing dependency diagram Further descriptions of task processing routines These descriptions complement those of the previous section, including some additional world generation diagrams and actual STATECRUNCHER PROLOG-code (which is remarkably compact for the functionality it gives). Various equivalent names are used in the descriptions that precede and follow, e.g. Process task sequences in worlds a descriptive name process_task_seqs_in_worlds a pseudo-code name me_process_task_seqs_in_worlds_algB a specific actual code example The prefix me_ is the machine engine module naming prefix. The hierarchy of routines derived from the dependency diagram (see previous section) can be represented as follows.  Hierarchy of transition-processing routines Process task sequences in worlds In Algorithm A we turn the Process task sequences in worlds call into Process task sequences in world calls. This algorithm was not chosen. In Algorithm B we turn the Process task sequences in worlds call into Process task sequence in worlds calls. This algorithm was chosen. PROLOG code for process task sequences in worlds (Algorithm B)  Process task sequence in worlds There are two possible approaches, which we discuss and illustrate in figures following: Algorithm A: Outer loop over worlds, inner loop over tasks, requiring an intermediate routine process_task_seq_in_world Algorithm B: Outer loop over tasks, inner loop over worlds, requiring an intermediate routine process_task_in_worlds The second of these options is probably better in general, as it probably involves merging of one small worldbag with one large worldbag. (We use the term worldbag for consistency with the STATECRUNCHER code - during processing it is often a bag, but to the user it is always a set, because the user is never confronted with intermediate results). The smaller worldbag is the result of processing just one task since the previous world merge. We have the option of processing the worlds in head first or tail first order, though in Algorithm B this is determined at a lower level, in process_task_in_worlds. The diagrams following illustrate world generation: according to algorithm A, with head world first according to algorithm B, with head world first according to algorithm B, with tail worlds first.  Process task sequence in worlds - Alg. A with head world first   Process task sequence in worlds - Alg. B with head world first  Process task sequence in worlds - Alg. B with tail worlds first N.B. The example diagrams taken do not correspond to the same state behaviour as this would not be practical in the limited diagram width. The Process task sequence in worlds Algorithm B routine processes the sequence of tasks in each world in the worldbag. The first task is processed in the worldbag which obtains on calling the routine. Subsequent tasks are processed in the subsequent worldbags resulting from processing the previous task. PROLOG code for process task sequence in worlds  Process task in worlds This routine calls Process task in world, which is regarded as a client routine to the task processing service. Client Process task in world routines will be written for event processing, transition processing, action processing etc. It is seen that all client handlers are of signature me_process_task_in_world(TASK,WORLD,OUTWORLDS) and that by conforming to this, routines which really are hardly aware of nondeterminism are embeddable in a scheme for handling highly nondeterministic tasks. PROLOG code for process task in worlds  Set-transit nondeterminism; permutable sequences and trees We are nearly ready to review the individual task client handlers. But first we illustrate exit and enter trees, and task permutations derived from them, as needed in Process transition in world, where we process set nondeterminism. In this section, we will denote sequences using square brackets, for compatibility with illustrative PROLOG examples. The following model gives rise to set-transit nondeterminism:  Effect of set-transit nondeterminism (cf.  REF _Ref506189033 \r \h Figure 113) We ignore the fork on transitions 10 and 11, and any races with any others (1 - 9), since these will have been abstracted away by the time one transition is to be processed in one world. We take the exiting part of 10 as our example. In general an exit tree is produced, in our example as follows:  Exit tree Each node will give rise to a permutation of its branches. The exit sequences are equivalent to the paths (from right to left) through the diagram below.  Exit sequences Notice that we do not permute all lowest-level exit tasks in one big permutation. We permute on a level by level basis, retaining orderings imposed by a previous level. So we do not permute the lower level exit tasks from one set member with any exit tasks of a different member. The total number of paths through the above figure is 27 = 128 (being less than the number of permutations of all 8 leafstates to be exited, which is 8! = 40320). The above tree happens to be a binary one, because our sets have just two members, but that is of course not the case in general. If there had been an intervening cluster in the exit tree, it would not give rise to any extra permutations, as it would be at a node with one branch, and would not be marked for permutation. Such a cluster is shown in dotted outline in  REF _Ref60910403 \r \h Figure 155. Permutation handling Permutable sequences need to be able to represent parts of the sequence being permuted and parts not. This must apply across different nesting levels. Two elements, [A,B] may form a permutable subsequence, so requiring expansion into [A,B] and [B,A]. One of these elements, say A, may itself be a subsequence, say [a1,a2], that is to be permuted. The other may be a subsequence [b1,b2] that is not to be permuted. The required generated subsequences from [A,B] = [[a1,a2],[b1,b2]] if flattened are then [a1,a2,b1,b2], [a2,a1,b1,b2], [b1,b2,a1,a2], [b1,b2,a2,a1]. It may be that [b1,b2] should be treated as a single element, so that we must generate [a1,a2,[b1,b2]], [a2,a1,[b1,b2]], [[b1,b2],a1,a2], [[b1,b2],a2,a1]. In general, we will need control over what is to be permuted, and what is not, and what is to be flattened and what is not. Certain elements of a sequence are likely to be nested lists in themselves, and as such they must neither be permuted nor flattened. We can represent all our requirements in a PROLOG-compatible way using the following indicators in a list leading element $pm_y (permute-yes) means generate all permutations of this list. The $ is to avoid clashes with user symbols, and in PROLOG code this needs quoting, '$pm_y'. Each permutation generated will substitute $pm_d (permute-done) for $pm_y. Also, all sublists will be walked for further permutation indications. The $pm_d 's can be removed later. A nonleading $pm_y element is not recognized as an indicator. for any other leading element, the list will be not be permuted at this level, but it will be walked looking for permutations at lower levels. When a permuted list is flattened, that all sublists starting with $pm_d are raised up a level. If the user wishes to effect a permutation on certain chunks of a list monolithically (but with possible sublist permutations as well), then the user will need to wrap the chunks as sublists. Automatic unwrapping of such chunks can be performed if the user supplies an extra $pm_d element at the head of such chunks. The following examples show this in action. They show sequences wrapped as permutations. Wrapped sequenceEquivalent straight sequences after flattening[a,[b,c]][a,[b,c]] no permutation because no indicator['$pm_y',a,b,c] [a,b,c] [a,c,b] [b,a,c] [b,c,a] [c,a,b] [c,b,a][a,[b,c],['$pm_y',d, ['$pm_y',e1,e2]],f] two independent permutations[a,[b,c],d,e1,e2,f] [a,[b,c],d,e2,e1,f] [a,[b,c],e1,e2,d,f] [a,[b,c],e2,e1,d,f][ba,['$pm_y',BAA,BAB]], where BAA=['$pm_d',baa,['$pm_y',BAAA,BAAB]], BAB='BAB', BAAA=['$pm_d',baaa,['$pm_y',baaaa,baaab]], BAAB=['$pm_d',baab,['$pm_y',baaba,baabb]]. Note the user of $pm_d in the input. This is the set-transit example, but simplified by condensing all bab... items into one symbol, BAB.[ba,baa,baaa,baaaa,baaab,baab,baaba,baabb,BAB] [ba,baa,baaa,baaaa,baaab,baab,baabb,baaba,BAB] [ba,baa,baaa,baaab,baaaa,baab,baaba,baabb,BAB] [ba,baa,baaa,baaab,baaaa,baab,baabb,baaba,BAB] [ba,baa,baab,baaba,baabb,baaa,baaaa,baaab,BAB] [ba,baa,baab,baaba,baabb,baaa,baaab,baaaa,BAB] [ba,baa,baab,baabb,baaba,baaa,baaaa,baaab,BAB] [ba,baa,baab,baabb,baaba,baaa,baaab,baaaa,BAB] [ba,BAB,baa,baaa,baaaa,baaab,baab,baaba,baabb] [ba,BAB,baa,baaa,baaaa,baaab,baab,baabb,baaba] [ba,BAB,baa,baaa,baaab,baaaa,baab,baaba,baabb] [ba,BAB,baa,baaa,baaab,baaaa,baab,baabb,baaba] [ba,BAB,baa,baab,baaba,baabb,baaa,baaaa,baaab] [ba,BAB,baa,baab,baaba,baabb,baaa,baaab,baaaa] [ba,BAB,baa,baab,baabb,baaba,baaa,baaaa,baaab] [ba,BAB,baa,baab,baabb,baaba,baaa,baaab,baaaa]X=[ba,['$pm_y',BAA,BAB]], BAA=['$pm_d',baa,['$pm_y',BAAA,BAAB]], BAB=['$pm_d',bab,['$pm_y',BABA,BABB]], BAAA=['$pm_d',baaa,['$pm_y',baaaa,baaab]], BAAB=['$pm_d',baab,['$pm_y',baaba,baabb]], BABA=['$pm_d',baba,['$pm_y',babaa,babab]], BABB=['$pm_d',babb,['$pm_y',babba,babbb]]. This is the set-transit example above.[ba,baa,baaa,baaaa,baaab,baab,baaba,baabb,bab,baba,babaa,babab,babb,babba,babbb] [ba,baa,baaa,baaaa,baaab,baab,baaba,baabb,bab,baba,babaa,babab,babb,babbb,babba] [ba,baa,baaa,baaaa,baaab,baab,baaba,baabb,bab,baba,babab,babaa,babb,babba,babbb] ... (128 permutations) [ba,bab,babb,babbb,babba,baba,babab,babaa,baa,baab,baaba,baabb,baaa,baaab,baaaa] [ba,bab,babb,babbb,babba,baba,babab,babaa,baa,baab,baabb,baaba,baaa,baaaa,baaab] [ba,bab,babb,babbb,babba,baba,babab,babaa,baa,baab,baabb,baaba,baaa,baaab,baaaa] Permutation generation Review of tasks This section is a review of the various tasks. The following figure shows what tasks exist.  Breakdown of tasks Process task in world Here we come to the innermost part of the hierarchy of sets and sequences and worlds, where we must process according to the specific kind of task involved. In C terms, this is just a switch statement to route control to the right lower-level routine. In C++ terms this might be a question of matching a prototype function according to a parameter type. In PROLOG terms, it is a question of matching a call with a predicate using parameter unification to obtain the right predicate for the task in question.  Process_task_in_world We have seen the general nature of these ( REF _Ref35414465 \r \h Figure 140,  REF _Ref60901472 \r \h Figure 141,  REF _Ref60901491 \r \h Figure 148 and  REF _Ref60901512 \r \h Figure 149). In this section, we consider the tasks in more detail, especially the processing of a transition, where set-nondeterminism is handled. Process event An outline was given in  REF _Ref60904353 \r \h Figure 134. Transitions for the supplied world only are selected according to the algorithm given in section  REF _Ref535640501 \r \h 7.1. This gives rise to a set of transition sequences. Note that this is the case whether we opt for hierarchical prioritisation or hierarchical fork nondeterminism, except that the latter case generally produces larger sets and longer sequences. The resulting set of transition sequences can be processed by process_task_seqs_in_worlds.  Review of process event We do not pre-clone for any of these transition sequences. This routine will perform all processing needed departing from a given world (which will be left intact, eventually being cloned at a lower level). We do not need to think about intermediate processing, such as process a transition sequence, as all has been taken care of in our hierarchy of task processing routines. Process transition The structure of this task was shown in  REF _Ref35414465 \r \h Figure 140. Transitions are processed according to the after-landing principles and sequencing as already discussed. A transition can alter state occupancies, and so clones the supplied world. Through the multiple calls to this routine as a result of event processing, many new worlds will be created (and merged). Even if there is no nondeterminism, one new world will be generated, because this routine does not know how much nondeterminism is involved, if any. We considered transition processing in more detail, covering especially set nondeterminism. Set nondeterminism involves entering (or exiting) the members of a set in different orderings. Unlike fork nondeterminism and race nondeterminism, set-nondeterminism permutations are generated during transition processing, not transition selection. From the transition, an enter tree and an exit tree are derived. From these trees, all forms of set nondeterminism are derived (set transit/action and set meta-event nondeterminism). Process expression A clone takes place ( REF _Ref60901491 \r \h Figure 148). Expressions are evaluated in a specified scope by a standard call to the evaluator. An assignment is regarded as an expression including the assignment operator =. Process conditional action This simply consists of evaluating the condition and recursively calling the relevant nested action ( REF _Ref60901512 \r \h Figure 149). Process enter state housekeeping and Process exit state housekeeping An outline was given in  REF _Ref60901472 \r \h Figure 141. The routines changes state occupancies and cluster history settings in the current world. No clone of the world is needed as the transition processing routine takes responsibility for it. Since all consequences of state changes have been separated out (on-exit actions etc.), the order in which housekeeping changes are made is irrelevant. Only one of the many orderings generated by permutation of the enter/exit trees is used by the transition processing routine when it calls this routine. Summary by example of event processing  Example of event processing The STATECRUNCHER command language This topic is discussed in detail in [StCrPrimer]. Here, we give the inventory of all STATECRUNCHER commands. The most important point about the commands is that they enable a primer (a neighbouring program) to communicate with STATECRUNCHER in various ways, the combination potentially providing very sophisticated test generation algorithms. The table below shows abbreviated commands as well as unabbreviated ones. Where abbreviated ones are not available, the arrow (!) refers the reader to the unabbreviated one. Syntax of the descriptions: An optional argument to a command is preceded by a question mark, (?). Normal courier indicates a literal item; italics indicate a non-literal or explanation. A choice is indicated by a vertical bar ( | ). The important commands are those that allow setting of state occupancies and variables and traces. These make a state-space exploration algorithm possible. These are WORLD STATEKIND STATENAME MPATH = OCCUPANCY HISTORY WORLD VAR VARKIND VARIABLENAME MPATH = VALUE WORLD TRACE = TRACE These commands are in STATECRUNCHER's own output format. Abbrev. CommandCommand showing typical example and/or typical output Main processing: high priority black box testing commandspe ...process event EVENT ?p=PARAMETERS ?t=EXPECTEDTRACE pe gamma p=[4,xy] (statechart scope assumed) pe [alpha,[sc]] p=1 t=[2,4] pe [alpha,[sc]] Parameters can also be supplied in STATECRUNCHER internal form, e.g. p=[[ex_co,int,4],[ex_str,[120,121]]] Worlds in direct violation of EXPECTEDTRACE will be killed, but overtrace and undertrace are tolerated.gtget trace 7 TRACE =[1,2]ctclear trace (this also causes a world merge) Main processing: medium priority commandsgaeget all events (whether transitionable or not; not world-related) EVENT [theta2, [z3,z,s,sc]] [pco1,[z,s,sc]]gateget all transitionable events (union from all worlds; no worlds shown) TREV [[delta,[sc]],0,[],[]] TREV [[gamma,[sc]],3, [[r,0,100000],[r,0,100000],[r,0,100000]],[]] TREV [[gamma,[sc]],1,[[r,0,100000]],[]] TREV [[gamma,[sc]],2, [[r,0,100000],[r,0,100000]],[]] TREV [[alpha,[sc]],0,[],[]]gavget all variables Gets the value-ranges, not the current value per world VAR INTEGER bool1 [sc] RANGE=[0, 1] VAR INTEGER col1 [sc] ENUM=[0, 7, 8, 4, 8] VAR INTEGER p1 [b2, b, s, sc] RANGE=[0, 9] VAR STRING str [sc] gawget all worlds Gets the current worlds [2,7,8]gcget config 2 statechart sc 2 cluster a [s, sc] =OCC [] ** 2 leafstate a1 [a, s, sc] =OCC [] ** 2 cluster a2 [a, s, sc] =VAC [] 2 VAR INTEGER bool1 [sc] =1 2 VAR INTEGER col1 [sc] =8 2 VAR INTEGER p1 [b2, b, s, sc] =unknown 2 VAR STRING p5 [b2, b, s, sc] =unknown 2 VAR STRING str [sc] =[98] =b 2 TRACE =[] 2 TREV [[zeta,[s,sc]], 4,[[r,0,9],[e,0,7,8,4,8],[r,0,1],[]], [pco1,[z3,z,s,sc]]] outworlds=[2,4] number of outworlds=2gstget symbol table SYMB delta [sc] eventdecl [] XREF leafstate b1:[b, s, sc] XREF leafstate z1:[z, s, sc]kill ...kill WORLD | WORLDS kill 2 kill [2,7,10]!WORLD TRACE = TRACE input is as the output of get config this does not cause a world merge (we will probably issue this kind of command several times before requiring a world merge)!WORLD STATEKIND STATENAME MPATH = OCCUPANCY HISTORY input is as the output of get config this does not cause a world merge (we will probably change more)!WORLD VAR VARKIND VARIABLENAME MPATH = VALUE input is as the output of get config this does not cause a world merge (c.f. WORLD TRACE = TRACE)cnwcreate new world Creates a new world in its default state - needed before writing variable/state/trace values to a new world 34 (the new world number is returned)mwmerge worlds (useful when all trace/state/variable changes have been made)gptget processing time (timing data is set on processing an event) exec time=00h 00m 00s 210msgdget date (get date and time) DATE: 24 Apr 2003 16:01:40/649 Containment of combinatorial explosion: low priority commands These commands limit the number of permutations used in set transit nondeterminism and race nondeterminism.nstno set tranlstlow set tranmstmedium set tranhsthigh set trannrno racelrlow racemrmedium racehrhigh race Compilation, loading, start-up, and finish: very low priorityroot ...root ROOTDIRECTORY Sets the root directory to be used with FILENAMEsmmmode modelnames Sets compilation etc. to work with model names. The directory structure must be set up correctly.mfmode filenames (Default). Sets compilation etc. to work with file names. Use the root command to set the directory (can be null, then give a full path here).cp ...compile FILENAME | MODELNAME (also loads machine, and enters it (as of Rel 1.05))ld ...load FILENAME | MODELNAME (does not enter machine)run ...run FILENAME | MODELNAME =Load and enter machinenmenter machine Machine enters default statexmexit machine Leaves a pristine machine ready to be enteredumunload machine Removes data and object codermreset machine =exit and enterquitquit  System/diagnostic: very low priorityhelphelp prologprolog Gives a PROLOG prompt; enter a PROLOG goal STATECRUNCHER commands Notes: By priority, we mean the priority given through the parse-attempt order, which will affect the response time. If anything is to be set in non-existent world, it is created (but a model must have been loaded) A typical sequence of commands mm set model mode run t5110 load model and enter machine pe alpha process event alpha (in statechart scope) gc get configuration pe gamma process event gamma (in statechart scope) gc get configuration rm reset machine pe gamma process event gamma (in statechart scope) quit quit STATECRUNCHER Error and warning messages are shown in the following table. Command parsingPR-E-020COMMAND SYNTAX ERROR Preliminary checksPR-E-040NO MODEL LOADED (compiler-produced part)PR-E-041NO MODEL LOADED (validator-produced part)PR-E-042MULTIPLE COMPILED FILES LOADEDPR-E-043MULTIPLE VALIDATED FILES LOADEDPR-E-044THERE WAS A COMPILATION ERRORPR-E-045THERE WAS A VALIDATION ERRORPR-E-046VERSION INCOMPATIBILITY Command executionPR-E-060COMMAND EXECUTION ERRORPR-E-061WORLD IS NEITHER EXTANT NOR EXTINCT Internal errorsPR-E-900INTERNAL ERROR - NO COMMAND HANDLER Error and warning messages Using STATECRUNCHER In this section, we briefly describe what STATECRUNCHER does from an input/output perspective, and how a user prepares a model. Full details of operation are given in the user manual, [StCrUser], which is designed also as a training manual. This section also gives an indication of how STATECRUNCHER was tested. In order to illustrate STATECRUNCHER in action in a concrete way, models of the well-known dining philosophers problem are developed in this section, without and with the use of a semaphore. These models are deterministic (though care must be taken to ensure that); we discuss a nondeterministic model of a television component as developed in Philips Research in section  REF _Ref58506404 \r \h 10. Data flow The following figure shows the data flow in model compilation and event processing. Primitive compilation and validation are regarded as one compilation process by the user, as the cp command invokes the validator automatically, (unless the previous phase gives errors).  Data flow in preparing and running models Running STATECRUNCHER STATECRUNCHER runs under [WinProlog] and [SWI-Prolog], and is also available as an MSDOS executable (using the WinProlog kernel, but the user need not know that the implementation language is PROLOG). Details of how to install and run STATECRUNCHER are given in [StCrManual]. As an executable, STATECRUNCHER will read commands from standard input and direct its output to standard output. The protocol between STATECRUNCHER and the primer program is the subject of a separate report [StCrPrimer]. The development cycle of a STATECRUNCHER model is basically to: Load or run STATECRUNCHER. Prepare a model using a text editor Compile the model with the cp command. This includes validation and loading and entering the initial configuration of the model. If there are no errors, the model is ready to be driven with pe (process event) commands. Otherwise, edit and re-compile. A previously compiled model is loaded and made ready for use with the run command. The user manual [StCrManual] serves as a detailed set of demonstration models, with model source code supplied, and compilation and running instructions given, and output explained. Testing of STATECRUNCHER STATECRUNCHER has been tested throughout its course of development with module tests, where test cases are defined by a PROLOG predicate as follows: tc(test_name, description, predicate_under_test, pass_criterion). The test_name is hierarchically defined, e.g. [sc,sy,decl,evns,2], so that any subtree of all tests can be run, e.g. [sc,sy]. A test harness, described in [StCrGP4], picks up all test cases specified and runs them, producing a test report. An example of an actual test, testing the parse of a list of event-expressions in an event declaration such as event ev1 , $ev2 , ev3; is: tc([sc,sy,decl,evns,2],syzc(sy_event_names,A,SP,R),SP=E):- A=' ev1 , $ev2 , ev3 ', E= [g_ok, [eventnames,l_ok, [ [ex_evt_expr,[ex_id,ev1]], [ex_evt_expr,[[ex_monadic,mback],[ex_id,ev2]]], [ex_evt_expr,[ex_id,ev3]] ] ] ]. The syzc predicate is a testing auxiliary to apply a parsing predicate under test (here sy_event_names) to an ASCII string (the second argument, A, which is ' ev1 , $ev2 , ev3 ') and to produce a status-and-parse (the third argument, SP), and a rest-string (fourth argument, R). The SP=E (E for Expected) term tests that the parse is as expected. There are also, as system tests, 23 models to test the compiler, 31 models to test the validator, 80 models for machine engine tests, 9 models for stress testing, and many models of practical examples. Tests using these models are run using the [StCrGP4] test harness in the same way as the above parsing example. In all there are well over 10,000 tests, covering general utilities (such as permutation generation), parsing, expression evaluation, machine engine operations etc. System testing of STATECRUNCHER is described in detail in [StCrTest], where diagrams of the main models are given. Users report that STATECRUNCHER is reliable. The dining philosophers In this subsection, we show how a system taken from the CSP literature can be modelled in STATECRUNCHER. We take a fairly easy example that nevertheless illustrates the essence of CSP and which is discussed in [Hoare] and [Schneider] (and many other books): the Dining Philosophers. A first STATECRUNCHER model is shown, with output from a session driving it to deadlock. A refined model shows how a semaphore can be used to prevent deadlock. The dining philosophers in CSP The description of the exercise is given in [Hoare, p77] : In ancient times, a wealthy philanthropist endowed a College to accommodate five eminent philosophers. Each philosopher had a room in which he could engage in his professional activity of thinking; there was also a common dining room, furnished with a circular table, surrounded by five chairs, each labelled by the name of the philosopher who was to sit in it. The names of the philosophers were PHIL0 PHIL1, PHIL2, PHIL3, PHIL4, and they were disposed in this order anticlockwise round the table. To the left of each philosopher there was laid a golden fork, and in the centre stood a large bowl of spaghetti, which was constantly replenished. A philosopher was expected to spend most of his time thinking; but when he felt hungry, he went to the dining room, sat down in his own chair, picked up his own fork on his left, and plunged it into the spaghetti. But such is the tangled nature of spaghetti that a second fork is required to carry it to his mouth. The philosopher therefore has also to pick up the fork on his right. When he has finished, he would put down both his forks, get up from his chair, and continue thinking. Of course, a fork can be used by only one philosopher at a time. If another philosopher wants it, he just has to wait until the fork is available again.  The dining philosophers Schneider [Schneider, p79] also describes the problem, (but with chopsticks, not forks). Beveridge [Beveridge, p93] describes the problem, and shows a Win32 solution to the deadlock problem using mutexes. The description of the behaviour in CSP is as follows, where the symbol p means addition modulo 5 and q means subtraction modulo 5. PHILi= (i.SitsDowni.PickUpFork.ii.PicksUpFork.(ip1)i.PutsDownFork.i i.PutsDownFork.(ip1)i.GetsUpPHILi) FORKi=(i.PicksUpFork.ii.PutsDownFork.i FORKi |(iq1).PicksUpFork.i(iq1).PutsDownFork.i FORKi) PHILOS=(PHIL0 + PHIL1 + PHIL2 + PHIL3 + PHIL4) FORKS= (FORK0 + FORK1 + FORK2 + FORK3 + FORK4) COLLEGE=(PHILOS || FORKS) The dining philosophers in STATECRUNCHER The model of the dining philosophers in STATECRUNCHER  REF _Ref45099587 \r \h Figure 164 shows how the dining philosophers can be modelled in STATECRUNCHER. Following the figure, a description of the model is given, then a session running the model is reproduced. The source code of the model given later in this section. It corresponds to the figure in almost every detail.  The dining philosophers [model t4330] A description of the STATECRUNCHER model, with the relationship to the CSP specification It would have been sufficient to represent the forks as in  REF _Ref46381768 \r \h Figure 165, but we more closely follow the CSP model as implemented in  REF _Ref45099587 \r \h Figure 164. In the  REF _Ref46381768 \r \h Figure 165 model, if a fork is being held, examination of the philosopher states will reveal who is holding it.  Simpler Fork Model Now there is a fundamental difference in approach between CSP and STATECRUNCHER, described in the following paragraphs. [Hoare p.65-66] When two processes are brought together, the usual intention is that they will interact with each other. These interactions may be regarded as events that require simultaneous participation of both the processes involved. CSP has an AND condition on combined processes: they must both be able to respond to the common event. STATECRUNCHER transitionable events are transitionable if they trigger a transition in ANY (OR) set members. The CSP model for composition is not applicable in STATECRUNCHER. The standard model for communication in STATECRUNCHER is the fired event, and a returned fired event, with after landing semantics, so that in  REF _Ref64625138 \r \h Figure 166, event alpha is sufficient to bring client to state3 and server to state9.  STATECRUNCHER client-server composition (1) If the intermediate state2 is never observed by the user, and the server is regarded as completing instantly, the following simplification can be used:  STATECRUNCHER client-server composition (2) Why we need the STATECRUNCHER composition paradigm If we allow server and client to respond to the same event, we get a race problem as follows: (we take the Phil0 situation, but it applies to all the philosophers).  Race problem We see that we need a condition on P0_PickFork0, [in($$Forks.Fork0.Lying)], because without it, Phil0 can pick up a fork that is in use by Phil4. We also put a condition on P0_PickFork0, [in($$Philosophers.Phil0.SittingHungry)], because it causes the event to show as transitionable only when it really is. When finding transitionable events, STATECRUNCHER evaluates the condition on the transition. We do not want a race between two transitions on P0_PickFork0[in($$Philosophers.Phil0.SittingHungry)] and P0_PickFork0[in($$Forks.Fork0.Lying)] This is because the transitions invalidate each other. But the current semantics will not allow both transitions, because the condition is re-evaluated at execution time. Without a condition on the second transition, two race orderings will be run, and one will not execute the first transition. Two worlds will be produced, one of which is unwanted. The solution adopted is the fired event system between client (philosopher) and server (fork), as shown in  REF _Ref45099587 \r \h Figure 164. That is why the fork transitions are called L0_PickFork0 etc., where L stands for local, as opposed to the external one initiated by the philosopher. Session with the dining philosophers [model t4330] We allow all the philosophers to sit down, then we have them each pick a fork. The events to do this are shown in bold font. ?- cruncher. SC:|: mm SC:|: run t4330 ... SC:|: gc 2 statechart sc 2 set College [sc] = OCC [] ** 2 set Philosophers [College,sc] = OCC [] ** 2 cluster Phil0 [Philosophers,College,sc] = OCC [] ** 2 leafstate Standing [Phil0,Philosophers,College,sc] = OCC [] ** 2 leafstate SittingHungry [Phil0,Philosophers,College,sc] = VAC [] 2 leafstate OneForkHungry [Phil0,Philosophers,College,sc] = VAC [] 2 leafstate Eating [Phil0,Philosophers,College,sc] = VAC [] 2 leafstate OneForkSatiated [Phil0,Philosophers,College,sc] = VAC [] 2 leafstate SittingSatiated [Phil0,Philosophers,College,sc] = VAC [] 2 cluster Phil1 [Philosophers,College,sc] = OCC [] ** 2 leafstate Standing [Phil1,Philosophers,College,sc] = OCC [] ** 2 leafstate SittingHungry [Phil1,Philosophers,College,sc] = VAC [] 2 leafstate OneForkHungry [Phil1,Philosophers,College,sc] = VAC [] 2 leafstate Eating [Phil1,Philosophers,College,sc] = VAC [] 2 leafstate OneForkSatiated [Phil1,Philosophers,College,sc] = VAC [] 2 leafstate SittingSatiated [Phil1,Philosophers,College,sc] = VAC [] 2 cluster Phil2 [Philosophers,College,sc] = OCC [] ** 2 leafstate Standing [Phil2,Philosophers,College,sc] = OCC [] ** 2 leafstate SittingHungry [Phil2,Philosophers,College,sc] = VAC [] 2 leafstate OneForkHungry [Phil2,Philosophers,College,sc] = VAC [] 2 leafstate Eating [Phil2,Philosophers,College,sc] = VAC [] 2 leafstate OneForkSatiated [Phil2,Philosophers,College,sc] = VAC [] 2 leafstate SittingSatiated [Phil2,Philosophers,College,sc] = VAC [] 2 cluster Phil3 [Philosophers,College,sc] = OCC [] ** 2 leafstate Standing [Phil3,Philosophers,College,sc] = OCC [] ** 2 leafstate SittingHungry [Phil3,Philosophers,College,sc] = VAC [] 2 leafstate OneForkHungry [Phil3,Philosophers,College,sc] = VAC [] 2 leafstate Eating [Phil3,Philosophers,College,sc] = VAC [] 2 leafstate OneForkSatiated [Phil3,Philosophers,College,sc] = VAC [] 2 leafstate SittingSatiated [Phil3,Philosophers,College,sc] = VAC [] 2 cluster Phil4 [Philosophers,College,sc] = OCC [] ** 2 leafstate Standing [Phil4,Philosophers,College,sc] = OCC [] ** 2 leafstate SittingHungry [Phil4,Philosophers,College,sc] = VAC [] 2 leafstate OneForkHungry [Phil4,Philosophers,College,sc] = VAC [] 2 leafstate Eating [Phil4,Philosophers,College,sc] = VAC [] 2 leafstate OneForkSatiated [Phil4,Philosophers,College,sc] = VAC [] 2 leafstate SittingSatiated [Phil4,Philosophers,College,sc] = VAC [] 2 set Forks [College,sc] = OCC [] ** 2 cluster Fork0 [Forks,College,sc] = OCC [] ** 2 leafstate Lying [Fork0,Forks,College,sc] = OCC [] ** 2 leafstate HeldByPhil0 [Fork0,Forks,College,sc] = VAC [] 2 leafstate HeldByPhil4 [Fork0,Forks,College,sc] = VAC [] 2 cluster Fork1 [Forks,College,sc] = OCC [] ** 2 leafstate Lying [Fork1,Forks,College,sc] = OCC [] ** 2 leafstate HeldByPhil1 [Fork1,Forks,College,sc] = VAC [] 2 leafstate HeldByPhil0 [Fork1,Forks,College,sc] = VAC [] 2 cluster Fork2 [Forks,College,sc] = OCC [] ** 2 leafstate Lying [Fork2,Forks,College,sc] = OCC [] ** 2 leafstate HeldByPhil2 [Fork2,Forks,College,sc] = VAC [] 2 leafstate HeldByPhil1 [Fork2,Forks,College,sc] = VAC [] 2 cluster Fork3 [Forks,College,sc] = OCC [] ** 2 leafstate Lying [Fork3,Forks,College,sc] = OCC [] ** 2 leafstate HeldByPhil3 [Fork3,Forks,College,sc] = VAC [] 2 leafstate HeldByPhil2 [Fork3,Forks,College,sc] = VAC [] 2 cluster Fork4 [Forks,College,sc] = OCC [] ** 2 leafstate Lying [Fork4,Forks,College,sc] = OCC [] ** 2 leafstate HeldByPhil4 [Fork4,Forks,College,sc] = VAC [] 2 leafstate HeldByPhil3 [Fork4,Forks,College,sc] = VAC [] 2 TRACE =[] 2 TREV [[P0_Sit,[sc]],0,[],[external,[sc]]] 2 TREV [[P1_Sit,[sc]],0,[],[external,[sc]]] 2 TREV [[P2_Sit,[sc]],0,[],[external,[sc]]] 2 TREV [[P3_Sit,[sc]],0,[],[external,[sc]]] 2 TREV [[P4_Sit,[sc]],0,[],[external,[sc]]] 2 TREV [[L0_PickFork0,[sc]],0,[],[internal,[sc]]] 2 TREV [[L4_PickFork0,[sc]],0,[],[internal,[sc]]] 2 TREV [[L1_PickFork1,[sc]],0,[],[internal,[sc]]] 2 TREV [[L0_PickFork1,[sc]],0,[],[internal,[sc]]] 2 TREV [[L2_PickFork2,[sc]],0,[],[internal,[sc]]] 2 TREV [[L1_PickFork2,[sc]],0,[],[internal,[sc]]] 2 TREV [[L3_PickFork3,[sc]],0,[],[internal,[sc]]] 2 TREV [[L2_PickFork3,[sc]],0,[],[internal,[sc]]] 2 TREV [[L4_PickFork4,[sc]],0,[],[internal,[sc]]] 2 TREV [[L3_PickFork4,[sc]],0,[],[internal,[sc]]] outworlds=[2] number of outworlds=1 SC:|: pe P0_Sit SC:|: pe P1_Sit SC:|: pe P2_Sit SC:|: pe P3_Sit SC:|: pe P4_Sit SC:|: gc (occupied leaf states and external transitionable events only) 7 leafstate SittingHungry [Phil0,Philosophers,College,sc] = OCC [] ** 7 leafstate SittingHungry [Phil1,Philosophers,College,sc] = OCC [] ** 7 leafstate SittingHungry [Phil2,Philosophers,College,sc] = OCC [] ** 7 leafstate SittingHungry [Phil3,Philosophers,College,sc] = OCC [] ** 7 leafstate SittingHungry [Phil4,Philosophers,College,sc] = OCC [] ** 7 leafstate Lying [Fork0,Forks,College,sc] = OCC [] ** 7 leafstate Lying [Fork1,Forks,College,sc] = OCC [] ** 7 leafstate Lying [Fork2,Forks,College,sc] = OCC [] ** 7 leafstate Lying [Fork3,Forks,College,sc] = OCC [] ** 7 leafstate Lying [Fork4,Forks,College,sc] = OCC [] ** 7 TRACE =[] 7 TREV [[P0_PickFork0,[sc]],0,[],[external,[sc]]] 7 TREV [[P1_PickFork1,[sc]],0,[],[external,[sc]]] 7 TREV [[P2_PickFork2,[sc]],0,[],[external,[sc]]] 7 TREV [[P3_PickFork3,[sc]],0,[],[external,[sc]]] 7 TREV [[P4_PickFork4,[sc]],0,[],[external,[sc]]] outworlds=[7] number of outworlds=1 SC:|: pe P0_PickFork0 SC:|: gc (occupied leaf states and external transitionable events only) 9 leafstate OneForkHungry [Phil0,Philosophers,College,sc] = OCC [] ** 9 leafstate SittingHungry [Phil1,Philosophers,College,sc] = OCC [] ** 9 leafstate SittingHungry [Phil2,Philosophers,College,sc] = OCC [] ** 9 leafstate SittingHungry [Phil3,Philosophers,College,sc] = OCC [] ** 9 leafstate SittingHungry [Phil4,Philosophers,College,sc] = OCC [] ** 9 leafstate HeldByPhil0 [Fork0,Forks,College,sc] = OCC [] ** 9 leafstate Lying [Fork1,Forks,College,sc] = OCC [] ** 9 leafstate Lying [Fork2,Forks,College,sc] = OCC [] ** 9 leafstate Lying [Fork3,Forks,College,sc] = OCC [] ** 9 leafstate Lying [Fork4,Forks,College,sc] = OCC [] ** 9 TRACE =[] 9 TREV [[P0_PickFork1,[sc]],0,[],[external,[sc]]] 9 TREV [[P1_PickFork1,[sc]],0,[],[external,[sc]]] 9 TREV [[P2_PickFork2,[sc]],0,[],[external,[sc]]] 9 TREV [[P3_PickFork3,[sc]],0,[],[external,[sc]]] 9 TREV [[P4_PickFork4,[sc]],0,[],[external,[sc]]] outworlds=[9] number of outworlds=1 SC:|: pe P1_PickFork1 SC:|: pe P2_PickFork2 SC:|: pe P3_PickFork3 SC:|: pe P4_PickFork4 SC:|: gc (unabridged) 17 statechart sc 17 set College [sc] = OCC [] ** 17 set Philosophers [College,sc] = OCC [] ** 17 cluster Phil0 [Philosophers,College,sc] = OCC [] ** 17 leafstate Standing [Phil0,Philosophers,College,sc] = VAC [] 17 leafstate SittingHungry [Phil0,Philosophers,College,sc] = VAC [] 17 leafstate OneForkHungry [Phil0,Philosophers,College,sc] = OCC [] ** 17 leafstate Eating [Phil0,Philosophers,College,sc] = VAC [] 17 leafstate OneForkSatiated [Phil0,Philosophers,College,sc] = VAC [] 17 leafstate SittingSatiated [Phil0,Philosophers,College,sc] = VAC [] 17 cluster Phil1 [Philosophers,College,sc] = OCC [] ** 17 leafstate Standing [Phil1,Philosophers,College,sc] = VAC [] 17 leafstate SittingHungry [Phil1,Philosophers,College,sc] = VAC [] 17 leafstate OneForkHungry [Phil1,Philosophers,College,sc] = OCC [] ** 17 leafstate Eating [Phil1,Philosophers,College,sc] = VAC [] 17 leafstate OneForkSatiated [Phil1,Philosophers,College,sc] = VAC [] 17 leafstate SittingSatiated [Phil1,Philosophers,College,sc] = VAC [] 17 cluster Phil2 [Philosophers,College,sc] = OCC [] ** 17 leafstate Standing [Phil2,Philosophers,College,sc] = VAC [] 17 leafstate SittingHungry [Phil2,Philosophers,College,sc] = VAC [] 17 leafstate OneForkHungry [Phil2,Philosophers,College,sc] = OCC [] ** 17 leafstate Eating [Phil2,Philosophers,College,sc] = VAC [] 17 leafstate OneForkSatiated [Phil2,Philosophers,College,sc] = VAC [] 17 leafstate SittingSatiated [Phil2,Philosophers,College,sc] = VAC [] 17 cluster Phil3 [Philosophers,College,sc] = OCC [] ** 17 leafstate Standing [Phil3,Philosophers,College,sc] = VAC [] 17 leafstate SittingHungry [Phil3,Philosophers,College,sc] = VAC [] 17 leafstate OneForkHungry [Phil3,Philosophers,College,sc] = OCC [] ** 17 leafstate Eating [Phil3,Philosophers,College,sc] = VAC [] 17 leafstate OneForkSatiated [Phil3,Philosophers,College,sc] = VAC [] 17 leafstate SittingSatiated [Phil3,Philosophers,College,sc] = VAC [] 17 cluster Phil4 [Philosophers,College,sc] = OCC [] ** 17 leafstate Standing [Phil4,Philosophers,College,sc] = VAC [] 17 leafstate SittingHungry [Phil4,Philosophers,College,sc] = VAC [] 17 leafstate OneForkHungry [Phil4,Philosophers,College,sc] = OCC [] ** 17 leafstate Eating [Phil4,Philosophers,College,sc] = VAC [] 17 leafstate OneForkSatiated [Phil4,Philosophers,College,sc] = VAC [] 17 leafstate SittingSatiated [Phil4,Philosophers,College,sc] = VAC [] 17 set Forks [College,sc] = OCC [] ** 17 cluster Fork0 [Forks,College,sc] = OCC [] ** 17 leafstate Lying [Fork0,Forks,College,sc] = VAC [] 17 leafstate HeldByPhil0 [Fork0,Forks,College,sc] = OCC [] ** 17 leafstate HeldByPhil4 [Fork0,Forks,College,sc] = VAC [] 17 cluster Fork1 [Forks,College,sc] = OCC [] ** 17 leafstate Lying [Fork1,Forks,College,sc] = VAC [] 17 leafstate HeldByPhil1 [Fork1,Forks,College,sc] = OCC [] ** 17 leafstate HeldByPhil0 [Fork1,Forks,College,sc] = VAC [] 17 cluster Fork2 [Forks,College,sc] = OCC [] ** 17 leafstate Lying [Fork2,Forks,College,sc] = VAC [] 17 leafstate HeldByPhil2 [Fork2,Forks,College,sc] = OCC [] ** 17 leafstate HeldByPhil1 [Fork2,Forks,College,sc] = VAC [] 17 cluster Fork3 [Forks,College,sc] = OCC [] ** 17 leafstate Lying [Fork3,Forks,College,sc] = VAC [] 17 leafstate HeldByPhil3 [Fork3,Forks,College,sc] = OCC [] ** 17 leafstate HeldByPhil2 [Fork3,Forks,College,sc] = VAC [] 17 cluster Fork4 [Forks,College,sc] = OCC [] ** 17 leafstate Lying [Fork4,Forks,College,sc] = VAC [] 17 leafstate HeldByPhil4 [Fork4,Forks,College,sc] = OCC [] ** 17 leafstate HeldByPhil3 [Fork4,Forks,College,sc] = VAC [] 17 TRACE =[] 17 TREV [[L0_PutFork0,[sc]],0,[],[internal,[sc]]] 17 TREV [[L1_PutFork1,[sc]],0,[],[internal,[sc]]] 17 TREV [[L2_PutFork2,[sc]],0,[],[internal,[sc]]] 17 TREV [[L3_PutFork3,[sc]],0,[],[internal,[sc]]] 17 TREV [[L4_PutFork4,[sc]],0,[],[internal,[sc]]] outworlds=[17] number of outworlds=1 SC:|: There are no transitionable events at the external PCO: deadlock! Introduction of a semaphore on picking up forks The model with semaphores Hoare discusses the following solutions to the deadlock: Agree that one philosopher should always pick up the wrong fork first. Buy more forks. Employ a footman to restrict the number of seated philosophers to a maximum of 4. Schneider adds Allowing a philosopher to release a fork if he holds only one. Neither considers the use of a semaphore, which is the obvious software-technical choice. Beveridge shows how to use Win32 mutexes (mutual exclusions, which are essentially semaphores with a maximum count of one), to solve the problem. The mutexes enable the philosophers to wait for two forks atomically. In order to reduce unnecessary elements of the model, we make the following simplifications: We eliminate the Standing state, and we call the sitting-with-no-forks-held-or-requested the Thinking state. The philosophers now do their thinking at the table. We restrict fork states to Lying and Held. The forks respond to events PickFork0 etc., in which no account is taken of who is interacting with the fork. We add STATECRUNCHER traces, which are not the same as CSP traces they are a record of specific selected outputs, generated by the trace(...) function. They are used in black-box testing, representing observable outputs. We record traces on entering and exiting the Eating state: (trace(P4Eat) and (trace(P4Stp). We also shorten the names of some items for convenience. We also distinguish between various categories of event: External events A philosopher has a Pang of hunger A philosopher has eaten enough and becomes Full Events for communication with the semaphore Request, Acquire and Release a pair of forks Internal events Fork status administration In the model, the different events have different PCOs (Points of Control and Observation). The model should be driven by external events only. The pairwise fork operations work broadly as follows. The Reset state is for when there is no outstanding request. Whenever in a fork-pair cluster a Request for a pair of forks is made, it is either satisfied, broadcasting the Acquisition, with no change of state here, or the cluster goes into the Requested State. Whenever, elsewhere, one of the participating forks is Released, a broadcast event causes a new Try in this cluster to be made to satisfy the request. By the same token, when in the present cluster the forks are Released, two Try events are broadcast so that other clusters can respond to them, each involving one of the forks just released. The self-transitions on Try01, Try12 etc. are unnecessary, are not present in the implemented model. However, such transitions could be used to trace what has happened, and could be useful in debugging a model.  Model with semaphores [model t4335] A session with the model with semaphores [model t4335] SC:|: gc 2 statechart sc 2 set College [sc] = OCC [] ** 2 set Philosophers [College,sc] = OCC [] ** 2 cluster Phil0 [Philosophers,College,sc] = OCC [] ** 2 leafstate Thinking [Phil0,Philosophers,College,sc] = OCC [] ** 2 leafstate Waiting [Phil0,Philosophers,College,sc] = VAC [] 2 leafstate Eating [Phil0,Philosophers,College,sc] = VAC [] 2 cluster Phil1 [Philosophers,College,sc] = OCC [] ** 2 leafstate Thinking [Phil1,Philosophers,College,sc] = OCC [] ** 2 leafstate Waiting [Phil1,Philosophers,College,sc] = VAC [] 2 leafstate Eating [Phil1,Philosophers,College,sc] = VAC [] 2 cluster Phil2 [Philosophers,College,sc] = OCC [] ** 2 leafstate Thinking [Phil2,Philosophers,College,sc] = OCC [] ** 2 leafstate Waiting [Phil2,Philosophers,College,sc] = VAC [] 2 leafstate Eating [Phil2,Philosophers,College,sc] = VAC [] 2 cluster Phil3 [Philosophers,College,sc] = OCC [] ** 2 leafstate Thinking [Phil3,Philosophers,College,sc] = OCC [] ** 2 leafstate Waiting [Phil3,Philosophers,College,sc] = VAC [] 2 leafstate Eating [Phil3,Philosophers,College,sc] = VAC [] 2 cluster Phil4 [Philosophers,College,sc] = OCC [] ** 2 leafstate Thinking [Phil4,Philosophers,College,sc] = OCC [] ** 2 leafstate Waiting [Phil4,Philosophers,College,sc] = VAC [] 2 leafstate Eating [Phil4,Philosophers,College,sc] = VAC [] 2 set Forks [College,sc] = OCC [] ** 2 cluster Fork0 [Forks,College,sc] = OCC [] ** 2 leafstate Lying [Fork0,Forks,College,sc] = OCC [] ** 2 leafstate Held [Fork0,Forks,College,sc] = VAC [] 2 cluster Fork1 [Forks,College,sc] = OCC [] ** 2 leafstate Lying [Fork1,Forks,College,sc] = OCC [] ** 2 leafstate Held [Fork1,Forks,College,sc] = VAC [] 2 cluster Fork2 [Forks,College,sc] = OCC [] ** 2 leafstate Lying [Fork2,Forks,College,sc] = OCC [] ** 2 leafstate Held [Fork2,Forks,College,sc] = VAC [] 2 cluster Fork3 [Forks,College,sc] = OCC [] ** 2 leafstate Lying [Fork3,Forks,College,sc] = OCC [] ** 2 leafstate Held [Fork3,Forks,College,sc] = VAC [] 2 cluster Fork4 [Forks,College,sc] = OCC [] ** 2 leafstate Lying [Fork4,Forks,College,sc] = OCC [] ** 2 leafstate Held [Fork4,Forks,College,sc] = VAC [] 2 cluster Pair01 [Forks,College,sc] = OCC [] ** 2 leafstate Reset [Pair01,Forks,College,sc] = OCC [] ** 2 leafstate Requested [Pair01,Forks,College,sc] = VAC [] 2 cluster Pair12 [Forks,College,sc] = OCC [] ** 2 leafstate Reset [Pair12,Forks,College,sc] = OCC [] ** 2 leafstate Requested [Pair12,Forks,College,sc] = VAC [] 2 cluster Pair23 [Forks,College,sc] = OCC [] ** 2 leafstate Reset [Pair23,Forks,College,sc] = OCC [] ** 2 leafstate Requested [Pair23,Forks,College,sc] = VAC [] 2 cluster Pair34 [Forks,College,sc] = OCC [] ** 2 leafstate Reset [Pair34,Forks,College,sc] = OCC [] ** 2 leafstate Requested [Pair34,Forks,College,sc] = VAC [] 2 cluster Pair40 [Forks,College,sc] = OCC [] ** 2 leafstate Reset [Pair40,Forks,College,sc] = OCC [] ** 2 leafstate Requested [Pair40,Forks,College,sc] = VAC [] 2 TRACE =[] 2 TREV [[Pang0,[sc]],0,[],[external,[sc]]] 2 TREV [[Pang1,[sc]],0,[],[external,[sc]]] 2 TREV [[Pang2,[sc]],0,[],[external,[sc]]] 2 TREV [[Pang3,[sc]],0,[],[external,[sc]]] 2 TREV [[Pang4,[sc]],0,[],[external,[sc]]] 2 TREV [[Pick0,[sc]],0,[],[internal,[sc]]] 2 TREV [[Pick1,[sc]],0,[],[internal,[sc]]] 2 TREV [[Pick2,[sc]],0,[],[internal,[sc]]] 2 TREV [[Pick3,[sc]],0,[],[internal,[sc]]] 2 TREV [[Pick4,[sc]],0,[],[internal,[sc]]] 2 TREV [[Req01,[sc]],0,[],[composition,[sc]]] 2 TREV [[Rel01,[sc]],0,[],[composition,[sc]]] 2 TREV [[Req12,[sc]],0,[],[composition,[sc]]] 2 TREV [[Rel12,[sc]],0,[],[composition,[sc]]] 2 TREV [[Req23,[sc]],0,[],[composition,[sc]]] 2 TREV [[Rel23,[sc]],0,[],[composition,[sc]]] 2 TREV [[Req34,[sc]],0,[],[composition,[sc]]] 2 TREV [[Rel34,[sc]],0,[],[composition,[sc]]] 2 TREV [[Req40,[sc]],0,[],[composition,[sc]]] 2 TREV [[Rel40,[sc]],0,[],[composition,[sc]]] outworlds=[2] number of outworlds=1 SC:|: pe Pang0 SC:|: pe Pang1 SC:|: pe Pang2 SC:|: pe Pang3 SC:|: pe Pang4 SC:|: gt 20 TRACE =[P2Eat,P0Eat] SC:|: pe Full0 SC:|: gt 30 TRACE =[P4Eat,P0Stp,P2Eat,P0Eat] SC:|: pe Full4 SC:|: gt 35 TRACE =[P4Stp,P4Eat,P0Stp,P2Eat,P0Eat] SC:|: pe Full2 SC:|: gt 50 TRACE =[P3Eat,P1Eat,P2Stp,P4Stp,P4Eat,P0Stp,P2Eat,P0Eat] SC:|: gc 50 statechart sc 50 set College [sc] = OCC [] ** 50 set Philosophers [College,sc] = OCC [] ** 50 cluster Phil0 [Philosophers,College,sc] = OCC [] ** 50 leafstate Thinking [Phil0,Philosophers,College,sc] = OCC [] ** 50 leafstate Waiting [Phil0,Philosophers,College,sc] = VAC [] 50 leafstate Eating [Phil0,Philosophers,College,sc] = VAC [] 50 cluster Phil1 [Philosophers,College,sc] = OCC [] ** 50 leafstate Thinking [Phil1,Philosophers,College,sc] = VAC [] 50 leafstate Waiting [Phil1,Philosophers,College,sc] = VAC [] 50 leafstate Eating [Phil1,Philosophers,College,sc] = OCC [] ** 50 cluster Phil2 [Philosophers,College,sc] = OCC [] ** 50 leafstate Thinking [Phil2,Philosophers,College,sc] = OCC [] ** 50 leafstate Waiting [Phil2,Philosophers,College,sc] = VAC [] 50 leafstate Eating [Phil2,Philosophers,College,sc] = VAC [] 50 cluster Phil3 [Philosophers,College,sc] = OCC [] ** 50 leafstate Thinking [Phil3,Philosophers,College,sc] = VAC [] 50 leafstate Waiting [Phil3,Philosophers,College,sc] = VAC [] 50 leafstate Eating [Phil3,Philosophers,College,sc] = OCC [] ** 50 cluster Phil4 [Philosophers,College,sc] = OCC [] ** 50 leafstate Thinking [Phil4,Philosophers,College,sc] = OCC [] ** 50 leafstate Waiting [Phil4,Philosophers,College,sc] = VAC [] 50 leafstate Eating [Phil4,Philosophers,College,sc] = VAC [] 50 set Forks [College,sc] = OCC [] ** 50 cluster Fork0 [Forks,College,sc] = OCC [] ** 50 leafstate Lying [Fork0,Forks,College,sc] = OCC [] ** 50 leafstate Held [Fork0,Forks,College,sc] = VAC [] 50 cluster Fork1 [Forks,College,sc] = OCC [] ** 50 leafstate Lying [Fork1,Forks,College,sc] = VAC [] 50 leafstate Held [Fork1,Forks,College,sc] = OCC [] ** 50 cluster Fork2 [Forks,College,sc] = OCC [] ** 50 leafstate Lying [Fork2,Forks,College,sc] = VAC [] 50 leafstate Held [Fork2,Forks,College,sc] = OCC [] ** 50 cluster Fork3 [Forks,College,sc] = OCC [] ** 50 leafstate Lying [Fork3,Forks,College,sc] = VAC [] 50 leafstate Held [Fork3,Forks,College,sc] = OCC [] ** 50 cluster Fork4 [Forks,College,sc] = OCC [] ** 50 leafstate Lying [Fork4,Forks,College,sc] = VAC [] 50 leafstate Held [Fork4,Forks,College,sc] = OCC [] ** 50 cluster Pair01 [Forks,College,sc] = OCC [] ** 50 leafstate Reset [Pair01,Forks,College,sc] = OCC [] ** 50 leafstate Requested [Pair01,Forks,College,sc] = VAC [] 50 cluster Pair12 [Forks,College,sc] = OCC [] ** 50 leafstate Reset [Pair12,Forks,College,sc] = OCC [] ** 50 leafstate Requested [Pair12,Forks,College,sc] = VAC [] 50 cluster Pair23 [Forks,College,sc] = OCC [] ** 50 leafstate Reset [Pair23,Forks,College,sc] = OCC [] ** 50 leafstate Requested [Pair23,Forks,College,sc] = VAC [] 50 cluster Pair34 [Forks,College,sc] = OCC [] ** 50 leafstate Reset [Pair34,Forks,College,sc] = OCC [] ** 50 leafstate Requested [Pair34,Forks,College,sc] = VAC [] 50 cluster Pair40 [Forks,College,sc] = OCC [] ** 50 leafstate Reset [Pair40,Forks,College,sc] = OCC [] ** 50 leafstate Requested [Pair40,Forks,College,sc] = VAC [] 50 TRACE =[P3Eat,P1Eat,P2Stp,P4Stp,P4Eat,P0Stp,P2Eat,P0Eat] 50 TREV [[Pang0,[sc]],0,[],[external,[sc]]] 50 TREV [[Full1,[sc]],0,[],[external,[sc]]] 50 TREV [[Pang2,[sc]],0,[],[external,[sc]]] 50 TREV [[Full3,[sc]],0,[],[external,[sc]]] 50 TREV [[Pang4,[sc]],0,[],[external,[sc]]] 50 TREV [[Pick0,[sc]],0,[],[internal,[sc]]] 50 TREV [[Put1,[sc]],0,[],[internal,[sc]]] 50 TREV [[Put2,[sc]],0,[],[internal,[sc]]] 50 TREV [[Put3,[sc]],0,[],[internal,[sc]]] 50 TREV [[Put4,[sc]],0,[],[internal,[sc]]] 50 TREV [[Rel01,[sc]],0,[],[composition,[sc]]] 50 TREV [[Req01,[sc]],0,[],[composition,[sc]]] 50 TREV [[Rel12,[sc]],0,[],[composition,[sc]]] 50 TREV [[Req12,[sc]],0,[],[composition,[sc]]] 50 TREV [[Rel23,[sc]],0,[],[composition,[sc]]] 50 TREV [[Req23,[sc]],0,[],[composition,[sc]]] 50 TREV [[Rel34,[sc]],0,[],[composition,[sc]]] 50 TREV [[Req34,[sc]],0,[],[composition,[sc]]] 50 TREV [[Rel40,[sc]],0,[],[composition,[sc]]] 50 TREV [[Req40,[sc]],0,[],[composition,[sc]]] outworlds=[50] number of outworlds=1 SC:|: Diagram of the events Shading shows the fork in use Bold font shows the change(s) due to the last event EventPHIL0PHIL1PHIL2PHIL3PHIL4initial stateThinkingThinkingThinkingThinkingThinkingPang0EatingThinkingThinkingThinkingThinkingPang1EatingWaitingThinkingThinkingThinkingPang2EatingWaitingEatingThinkingThinkingPang3EatingWaitingEatingWaitingThinkingPang4EatingWaitingEatingWaitingWaitingFull0ThinkingWaitingEatingWaitingEatingFull4ThinkingWaitingEatingWaitingThinkingFull2ThinkingEatingThinkingEatingThinking Diagram of the events Conclusion on the dining philosophers This section has shown how a typical client-server application is modelled in STATECRUNCHER, providing a direct comparison with a well-known example in the literature. Both STATECRUNCHER and CSP are amenable to the problem, but the emphasis is different: STATECRUNCHER is a state machine engine providing the white box or black box oracle to tests and does not support calculus manipulations; CSP is a calculus which is used to prove properties of composed systems. Source listings of models Source listing of the dining philosophers without semaphores [model t4330] //----------------------------------------------------------------------------------- // Module: Philosophers.scs.txt // Author: Graham Thomason, Philips Digital Systems Laboratories, Redhill // Date: 18 July, 2003 // Purpose: StateCruncher model: The Dining philosophers [Hoare, p.75] // // Copyright (C) 2003 Philips Electronics N.V. //-------1---------2---------3---------4---------5---------6---------7---------8----- statechart sc(College) PCO external; PCO internal; event P0_Sit, P0_Stand @external; event P1_Sit, P1_Stand @external; event P2_Sit, P2_Stand @external; event P3_Sit, P3_Stand @external; event P4_Sit, P4_Stand @external; event P0_PickFork0, P0_PickFork1, P0_PutFork0, P0_PutFork1 @external; event P1_PickFork1, P1_PickFork2, P1_PutFork1, P1_PutFork2 @external; event P2_PickFork2, P2_PickFork3, P2_PutFork2, P2_PutFork3 @external; event P3_PickFork3, P3_PickFork4, P3_PutFork3, P3_PutFork4 @external; event P4_PickFork4, P4_PickFork0, P4_PutFork4, P4_PutFork0 @external; event L0_PickFork0, L1_PickFork1, L2_PickFork2, L3_PickFork3, L4_PickFork4 @internal; event L0_PutFork0, L1_PutFork1, L2_PutFork2, L3_PutFork3, L4_PutFork4 @internal; event L0_PickFork1, L1_PickFork2, L2_PickFork3, L3_PickFork4, L4_PickFork0 @internal; event L0_PutFork1, L1_PutFork2, L2_PutFork3, L3_PutFork4, L4_PutFork0 @internal; set College(Philosophers,Forks) set Philosophers(Phil0,Phil1,Phil2,Phil3,Phil4) cluster Phil0( \ Standing,SittingHungry,OneForkHungry,Eating,OneForkSatiated,SittingSatiated) state Standing {P0_Sit->SittingHungry;} state SittingHungry {P0_PickFork0[in($$Forks.Fork0.Lying)]->OneForkHungry \ {fire L0_PickFork0;};} state OneForkHungry {P0_PickFork1[in($$Forks.Fork1.Lying)]->Eating \ {fire L0_PickFork1;};} state Eating {P0_PutFork0->OneForkSatiated \ {fire L0_PutFork0;};} state OneForkSatiated {P0_PutFork1->SittingSatiated \ {fire L0_PutFork1;};} state SittingSatiated {P0_Stand->Standing;} cluster Phil1( \ Standing,SittingHungry,OneForkHungry,Eating,OneForkSatiated,SittingSatiated) state Standing {P1_Sit->SittingHungry;} state SittingHungry {P1_PickFork1[in($$Forks.Fork1.Lying)]->OneForkHungry \ {fire L1_PickFork1;};} state OneForkHungry {P1_PickFork2[in($$Forks.Fork2.Lying)]->Eating \ {fire L1_PickFork2;};} state Eating {P1_PutFork1->OneForkSatiated \ {fire L1_PutFork1;};} state OneForkSatiated {P1_PutFork2->SittingSatiated \ {fire L1_PutFork2;};} state SittingSatiated {P1_Stand->Standing;} cluster Phil2( \ Standing,SittingHungry,OneForkHungry,Eating,OneForkSatiated,SittingSatiated) state Standing {P2_Sit->SittingHungry;} state SittingHungry {P2_PickFork2[in($$Forks.Fork2.Lying)]->OneForkHungry \ {fire L2_PickFork2;};} state OneForkHungry {P2_PickFork3[in($$Forks.Fork3.Lying)]->Eating \ {fire L2_PickFork3;};} state Eating {P2_PutFork2->OneForkSatiated \ {fire L2_PutFork2;};} state OneForkSatiated {P2_PutFork3->SittingSatiated \ {fire L2_PutFork3;};} state SittingSatiated {P2_Stand->Standing;} cluster Phil3( \ Standing,SittingHungry,OneForkHungry,Eating,OneForkSatiated,SittingSatiated) state Standing {P3_Sit->SittingHungry;} state SittingHungry {P3_PickFork3[in($$Forks.Fork3.Lying)]->OneForkHungry \ {fire L3_PickFork3;};} state OneForkHungry {P3_PickFork4[in($$Forks.Fork4.Lying)]->Eating \ {fire L3_PickFork4;};} state Eating {P3_PutFork3->OneForkSatiated \ {fire L3_PutFork3;};} state OneForkSatiated {P3_PutFork4->SittingSatiated \ {fire L3_PutFork4;};} state SittingSatiated {P3_Stand->Standing;} cluster Phil4( \ Standing,SittingHungry,OneForkHungry,Eating,OneForkSatiated,SittingSatiated) state Standing {P4_Sit->SittingHungry;} state SittingHungry {P4_PickFork4[in($$Forks.Fork4.Lying)]->OneForkHungry \ {fire L4_PickFork4;};} state OneForkHungry {P4_PickFork0[in($$Forks.Fork0.Lying)]->Eating \ {fire L4_PickFork0;};} state Eating {P4_PutFork4->OneForkSatiated \ {fire L4_PutFork4;};} state OneForkSatiated {P4_PutFork0->SittingSatiated \ {fire L4_PutFork0;};} state SittingSatiated {P4_Stand->Standing;} set Forks(Fork0,Fork1,Fork2,Fork3,Fork4) cluster Fork0(Lying,HeldByPhil0,HeldByPhil4) state Lying {L0_PickFork0->HeldByPhil0;\ L4_PickFork0->HeldByPhil4;} state HeldByPhil0 {L0_PutFork0 ->Lying;} state HeldByPhil4 {L4_PutFork0 ->Lying;} cluster Fork1(Lying,HeldByPhil1,HeldByPhil0) state Lying {L1_PickFork1->HeldByPhil1;\ L0_PickFork1->HeldByPhil0;} state HeldByPhil1 {L1_PutFork1 ->Lying;} state HeldByPhil0 {L0_PutFork1 ->Lying;} cluster Fork2(Lying,HeldByPhil2,HeldByPhil1) state Lying {L2_PickFork2->HeldByPhil2;\ L1_PickFork2->HeldByPhil1;} state HeldByPhil2 {L2_PutFork2 ->Lying;} state HeldByPhil1 {L1_PutFork2 ->Lying;} cluster Fork3(Lying,HeldByPhil3,HeldByPhil2) state Lying {L3_PickFork3->HeldByPhil3;\ L2_PickFork3->HeldByPhil2;} state HeldByPhil3 {L3_PutFork3 ->Lying;} state HeldByPhil2 {L2_PutFork3 ->Lying;} cluster Fork4(Lying,HeldByPhil4,HeldByPhil3) state Lying {L4_PickFork4->HeldByPhil4;\ L3_PickFork4->HeldByPhil3;} state HeldByPhil4 {L4_PutFork4 ->Lying;} state HeldByPhil3 {L3_PutFork4 ->Lying;} //------------------------[end of module]-------------------------------------------- Source listing of the dining philosophers with semaphores [model t4335] //----------------------------------------------------------------------------------- // Module: phil_semaph.scs.txt // Author: Graham Thomason, Philips Digital Systems Laboratories, Redhill // Date: 19 July, 2003 // Purpose: StateCruncher model: The Dining philosophers with semaphores // // Copyright (C) 2003 Philips Electronics N.V. //-------1---------2---------3---------4---------5---------6---------7---------8----- statechart sc(College) PCO external; // For philosopher actions PCO composition; // For communication from semaphote to philosopher PCO internal; // Internal events event Pang0, Pang1, Pang2, Pang3, Pang4 @external; event Full0, Full1, Full2, Full3, Full4 @external; event Req01, Req12, Req23, Req34, Req40 @composition; event Rel01, Rel12, Rel23, Rel34, Rel40 @composition; event Acq01, Acq12, Acq23, Acq34, Acq40 @composition; event Try01, Try12, Try23, Try34, Try40 @internal; event Pick0, Pick1, Pick2, Pick3, Pick4 @internal; event Put0, Put1, Put2, Put3, Put4 @internal; set College(Philosophers,Forks) set Philosophers(Phil0,Phil1,Phil2,Phil3,Phil4) cluster Phil0(Thinking,Waiting,Eating) state Thinking {Pang0->Waiting {fire Req01;};} state Waiting {Acq01->Eating;} state Eating {upon enter {trace("P0Eat");} \ upon exit {trace("P0Stp");} \ Full0->Thinking {fire Rel01;};} cluster Phil1(Thinking,Waiting,Eating) state Thinking {Pang1->Waiting {fire Req12;};} state Waiting {Acq12->Eating;} state Eating {upon enter {trace("P1Eat");} \ upon exit {trace("P1Stp");} \ Full1->Thinking {fire Rel12;};} cluster Phil2(Thinking,Waiting,Eating) state Thinking {Pang2->Waiting {fire Req23;};} state Waiting {Acq23->Eating;} state Eating {upon enter {trace("P2Eat");} \ upon exit {trace("P2Stp");} \ Full2->Thinking {fire Rel23;};} cluster Phil3(Thinking,Waiting,Eating) state Thinking {Pang3->Waiting {fire Req34;};} state Waiting {Acq34->Eating;} state Eating {upon enter {trace("P3Eat");} \ upon exit {trace("P3Stp");} \ Full3->Thinking {fire Rel34;};} cluster Phil4(Thinking,Waiting,Eating) state Thinking {Pang4->Waiting {fire Req40;};} state Waiting {Acq40->Eating;} state Eating {upon enter {trace("P4Eat");} \ upon exit {trace("P4Stp");} \ Full4->Thinking {fire Rel40;};} set Forks(Fork0,Fork1,Fork2,Fork3,Fork4, Pair01,Pair12,Pair23,Pair34,Pair40) cluster Fork0(Lying,Held) state Lying {Pick0->Held;} state Held {Put0->Lying;} cluster Fork1(Lying,Held) state Lying {Pick1->Held;} state Held {Put1->Lying;} cluster Fork2(Lying,Held) state Lying {Pick2->Held;} state Held {Put2->Lying;} cluster Fork3(Lying,Held) state Lying {Pick3->Held;} state Held {Put3->Lying;} cluster Fork4(Lying,Held) state Lying {Pick4->Held;} state Held {Put4->Lying;} /*--[Fork Pair Control]--*/ cluster Pair01(Reset,Requested) state Reset {Req01[in($Fork0.Lying) && in($Fork1.Lying)] \ {fire Pick0; fire Pick1; fire Acq01;}; \ Rel01 \ {fire Put0; fire Put1; fire Try40; fire Try12;}; \ Req01[ !in($Fork0.Lying) || !in($Fork1.Lying)] \ ->Requested; } state Requested {Try01[in($Fork0.Lying) && in($Fork1.Lying)] \ -> Reset \ {fire Pick0; fire Pick1; fire Acq01;}; } cluster Pair12(Reset,Requested) state Reset {Req12[in($Fork1.Lying) && in($Fork2.Lying)] \ {fire Pick1; fire Pick2; fire Acq12;}; \ Rel12 \ {fire Put1; fire Put2; fire Try01; fire Try23;}; \ Req12[ !in($Fork1.Lying) || !in($Fork2.Lying)] \ ->Requested; } state Requested {Try12[in($Fork1.Lying) && in($Fork2.Lying)] \ -> Reset \ {fire Pick1; fire Pick2; fire Acq12;}; } cluster Pair23(Reset,Requested) state Reset {Req23[in($Fork2.Lying) && in($Fork3.Lying)] \ {fire Pick2; fire Pick3; fire Acq23;}; \ Rel23 \ {fire Put2; fire Put3; fire Try12; fire Try34;}; \ Req23[ !in($Fork2.Lying) || !in($Fork3.Lying)] \ ->Requested; } state Requested {Try23[in($Fork2.Lying) && in($Fork3.Lying)] \ -> Reset \ {fire Pick2; fire Pick3; fire Acq23;}; } cluster Pair34(Reset,Requested) state Reset {Req34[in($Fork3.Lying) && in($Fork4.Lying)] \ {fire Pick3; fire Pick4; fire Acq34;}; \ Rel34 \ {fire Put3; fire Put4; fire Try23; fire Try40;}; \ Req34[ !in($Fork3.Lying) || !in($Fork4.Lying)] \ ->Requested; } state Requested {Try34[in($Fork3.Lying) && in($Fork4.Lying)] \ -> Reset \ {fire Pick3; fire Pick4; fire Acq34;}; } cluster Pair40(Reset,Requested) state Reset {Req40[in($Fork4.Lying) && in($Fork0.Lying)] \ {fire Pick4; fire Pick0; fire Acq40;}; \ Rel40 \ {fire Put4; fire Put0; fire Try34; fire Try01;}; \ Req40[ !in($Fork4.Lying) || !in($Fork0.Lying)] \ ->Requested; } state Requested {Try40[in($Fork4.Lying) && in($Fork0.Lying)] \ -> Reset \ {fire Pick4; fire Pick0; fire Acq40;}; } //------------------------[end of module]-------------------------------------------- Experience with STATECRUNCHER and conclusions The project set out with two experimental goals: (1) to investigate whether an approach to automatic generation of state-based tests of nondeterministic systems using a nondeterministic oracle would offer an improved testing technique, and (2) to see whether PROLOG is a feasible implementation language for such a tool, both from an ease-of-coding viewpoint and from a run-time performance perspective. This section reports on how the testing approach is being pursued within Philips. We illustrate how STATECRUNCHER has been successfully transferred to an end-user within Philips Electronics, with a real example of an embedded software component being tested in a tool chain using STATECRUNCHER as the test oracle. We also review the implementation approach taken. Lastly, we draw a final conclusion. Experience at Philips Software testing as a Research activity was formally transferred from PRL (Philips Research Laboratories - Redhill) to PRI-B (Philips Research India - Bangalore) at the start of 2002. The development of STATECRUNCHER at Redhill, and support to PRI-B continued in 2002 and part of 2003, carried out in the PDSL-R organisation (Philips Digital Systems Laboratories - Redhill). Philips Research India - Bangalore (PRI-B) has successfully worked with STATECRUNCHER, having integrated it into the TorX tool chain, testing [Koala] components for television systems. The following figure is by Nitin Koppalkar at PRI-B, who did the integration.  STATECRUNCHER integrated in the TorX tool chain (Nitin Koppalkar) Two components that have been modelled and tested are TV Program Installation and the Last Status Manager. TV Program Installation (modelled by Tim Trew) A STATECRUNCHER model has been produced for a component that installs a program in a TV. The sequence of operations is to: 1. Find the carrier 2. Analyse the modulation to find out the TV system (PAL / NTSC / SECAM) 3. Analyse the VBI (vertical blanking interval) data to deduce the station name. The issues are: To use a generic model of the program installation component in any testing configuration or composed-system configuration. To obtain all nondeterministic outcomes in the STATECRUNCHER model due to a failure to proceed at any stage. To obtain all nondeterministic outcomes in the STATECRUNCHER model due to interleavings of external and internal events. The Philips report [Trew03] covers this model, and discusses challenging generic issues in component modelling, such as how to generate interleavings of external and internal events in STATECRUNCHER. The following model is a simplification of what has been produced. A more extensive model contains details of the tuner.  Program Installation, simplified, (Tim Trew) [model t4410] Points to note: The clock generates tick events, to which the programinstallation states respond, forking on alternatives where they exist. The programinstallation area fires a tock after any response to a tick, in order to keep the clock going. This clock does not need to limit the number of ticks fired, as the programinstallation is not capable of infinite cycling. Race nondeterminism is used to generate interleavings of external events ( PCO_ ...) and internal events (tick). This covers situations where an external event is given, but is pre-empted by an internal event. Fork nondeterminism is used to continue or terminate the clock at every step. Performance is acceptable: on a 300MHz machine, it takes about 2 seconds to process PCO_pgins_startmanualinstallation giving 9 worlds. Output after event PCO_pgins_startmanualinstallation (9 worlds generated). Wldprogram instaln.ClockTrace (read in reverse order)Remarks on program installation17idleidle[tock, tick/pgins_onstationnotfound, tick in searching, firing tick, PCO_pgins_startmanualinstallation clock, pginsN_onmanualinstallationstarted, pgins_startmanualinstallation in idle, PCO_pgins_startmanualinstallation executed]Searching did not find a station.20idleactive[firing tick, tock, tick/pgins_onstationnotfound, tick in searching, firing tick, PCO_pgins_startmanualinstallation clock, pginsN_onmanualinstallationstarted, pgins_startmanualinstallation in idle, PCO_pgins_startmanualinstallation executed]Searching did not find a station. There was an extra tick, with no response.24tunedidle[tock, tick/pginsN_onstationfound, tick in searching, firing tick, PCO_pgins_startmanualinstallation clock, pginsN_onmanualinstallationstarted, pgins_startmanualinstallation in idle, PCO_pgins_startmanualinstallation executed]Searched and found a station. Did not proceed to detect the TV system.32Tv System Detectedidle[tock, tick/pginsN_onTvSystemDetected, tick in tuned, firing tick, tock, tick/pginsN_onstationfound, tick in searching, firing tick, PCO_pgins_startmanualinstallation clock, pginsN_onmanualinstallationstarted, pgins_startmanualinstallation in idle, PCO_pgins_startmanualinstallation executed]Searched, found a station and detected the TV system. Did not proceed to find station name.40idleidle[tock, tick/pginsN_onStationNameFound, tick in TvSystemDetected, firing tick, tock, tick/pginsN_onTvSystemDetected, tick in tuned, firing tick, tock, tick/pginsN_onstationfound, tick in searching, firing tick, PCO_pgins_startmanualinstallation clock, pginsN_onmanualinstallationstarted, pgins_startmanualinstallation in idle, PCO_pgins_startmanualinstallation executed]A complete cycle through searching, finding a station, detecting the TV system and finding the station name.43idleactive[firing tick, tock, tick/pginsN_onStationNameFound, tick in TvSystemDetected, firing tick, tock, tick/pginsN_onTvSystemDetected, tick in tuned, firing tick, tock, tick/pginsN_onstationfound, tick in searching, firing tick, PCO_pgins_startmanualinstallation clock, pginsN_onmanualinstallationstarted, pgins_startmanualinstallation in idle, PCO_pgins_startmanualinstallation executed]A complete cycle with an extra tick, to which there was no response.44searchingidle[PCO_pgins_startmanualinstallation clock, pginsN_onmanualinstallationstarted, pgins_startmanualinstallation in idle, PCO_pgins_startmanualinstallation executed]Searching, with no further progress.55searchingidle[pginsN_onmanualinstallationstarted, pgins_startmanualinstallation in idle, PCO_pgins_startmanualinstallation executed, PCO_pgins_startmanualinstallation clock]Searching, with no further progress. Differs from world 44 because of the race (clock wins).61searchingactive[pginsN_onmanualinstallationstarted, pgins_startmanualinstallation in idle, PCO_pgins_startmanualinstallation executed, firing tick, PCO_pgins_startmanualinstallation clock]Searching, with clock winning a race and doing nothing.Program Installation results After the traces have been cleared, there are 6 residual worlds. Then event PCO_pgins_stopmanualinstallation can be given, generating 24 worlds (in about 15 seconds on a 300 MHz machine). Space does not permit us to tabulate the results, but we remark that on stopping the installation, a race is run on two transitions on PCO_stopmanualinstallation, generating interleavings of events pgins_stopmanualinstallation and tick. The tick first situation could represent a user stopping the installation, but just before the command is seen, the installation completes. Model listing // Author: Tim Trew // Test of transition algorithm for clock ticking - can we interleave // all "wait" events with external events? // User enters // SC: pe [PCO_pgins_startmanualinstallation, [composition, sc]] // SC: ct // SC: pe [PCO_pgins_stopmanualinstallation, [composition, sc]] statechart sc(composition) set composition (programinstallation, \ controllable_function_handler, \ notification_handler) cluster programinstallation (idle, searching, tuned, TvSystemDetected) /* Program Installation Provided functions */ event composition%%pgins_startmanualinstallation; event composition%%pgins_stopmanualinstallation; /* Program Installation notifications */ event composition%%pginsN_onmanualinstallationstarted; event composition%%pginsN_onmanualinstallationcompleted; event composition%%pginsN_onmanualinstallationstopped; event composition%%pginsN_onsearchinprogress; event composition%%pginsN_onstationfound; event composition%%pginsN_onstationnotfound; event composition%%pginsN_onTvSystemDetected; event composition%%pginsN_onStationNameFound; state idle { \ pgins_startmanualinstallation -> searching \ {trace("pgins_startmanualinstallation in idle"); \ fire pginsN_onmanualinstallationstarted ; }; \ pgins_stopmanualinstallation \ {trace("pgins_stopmanualinstallation in idle - ignored"); }; } state searching { \ pgins_startmanualinstallation \ {trace("pgins_startmanualinstallation in searching - ignored"); }; \ pgins_stopmanualinstallation -> idle \ {trace("pgins_stopmanualinstallation in searching"); \ fire pginsN_onmanualinstallationstopped ; } ; \ tick -> tuned {trace("tick/pginsN_onstationfound"); \ fire pginsN_onstationfound; fire tock; } ; \ tick -> idle {trace("tick/pgins_onstationnotfound"); \ fire pginsN_onstationnotfound; fire tock; }; } state tuned { \ pgins_startmanualinstallation \ {trace("pgins_startmanualinstallation in tuned - ignored"); }; \ pgins_stopmanualinstallation -> idle \ {trace("pgins_stopmanualinstallation in tuned"); \ fire pginsN_onmanualinstallationstopped ; } ; \ tick -> TvSystemDetected{trace("tick/pginsN_onTvSystemDetected"); \ fire pginsN_onTvSystemDetected; \ fire tock; }; } state TvSystemDetected { \ pgins_startmanualinstallation \ {trace("pgins_startmanualinstallation in TvSystemDetected - ignored"); };\ pgins_stopmanualinstallation -> idle \ {trace("pgins_stopmanualinstallation in TvSystemDetected"); \ fire pginsN_onmanualinstallationstopped; }; \ tick -> idle{trace("tick/pginsN_onStationNameFound"); \ fire pginsN_onStationNameFound; fire tock; }; } // provides functions set controllable_function_handler (prov_fun, clock) event composition%%PCO_pgins_startmanualinstallation; event composition%%PCO_pgins_stopmanualinstallation; event composition%%tock; event composition%%tick, StartClock; state prov_fun { \ PCO_pgins_startmanualinstallation \ {trace("PCO_pgins_startmanualinstallation executed"); \ fire pgins_startmanualinstallation ; }; \ PCO_pgins_stopmanualinstallation \ {trace("PCO_pgins_stopmanualinstallation executed"); \ fire pgins_stopmanualinstallation ; }; } cluster clock (clockidle, starting, clockactive) { \ PCO_pgins_startmanualinstallation -> clock -> clock.starting \ {trace("PCO_pgins_startmanualinstallation clock"); }; \ PCO_pgins_stopmanualinstallation -> clock -> clock.starting \ {trace("PCO_pgins_stopmanualinstallation clock");}; } state clockidle; state starting { \ upon enter { fire StartClock; } \ StartClock -> clockidle; \ StartClock -> clockactive; } state clockactive { \ upon enter { \ trace("firing tick"); \ if (in (::composition.programinstallation.searching)) \ {trace("tick in searching"); } \ if (in (::composition.programinstallation.tuned)) \ {trace("tick in tuned"); } \ if (in (::composition.programinstallation.TvSystemDetected)) \ {trace("tick in TvSystemDetected"); } \ fire tick; } \ /* Fork non-determinism to terminate at every possible step. */ \ tock -> clock -> clockactive {trace("tock");}; \ tock -> clockidle {trace("tock");}; } cluster notification_handler (notif_handler) /* Turned fired notifications in to traces */ event composition%%pginsN_onchannelfound; state notif_handler { \ pginsN_onchannelfound -> notif_handler \ {trace ("pginsN_onchannelfound"); }; \ pginsN_onmanualinstallationstarted -> notif_handler \ {trace ("pginsN_onmanualinstallationstarted"); }; \ pginsN_onmanualinstallationcompleted -> notif_handler \ {trace ("pginsN_onmanualinstallationcompleted"); }; \ pginsN_onmanualinstallationstopped -> notif_handler \ {trace ("pginsN_onmanualinstallationstopped"); }; \ pginsN_onsearchinprogress -> notif_handler \ {trace ("pginsN_onsearchinprogress") ; } ; } The more extensive model (including the tuner) has been integrated into the TorX tool chain by Nitin Koppalkar at PRI-B. The following diagram, by Nitin Koppalkar, shows the tool chain in action:  STATECRUNCHER and TorX in action (Nitin Koppalkar) Last Status Manager: Currently (November 2003), PRI-B is working on testing this module, which manages status information, writing it at intervals to non-volatile memory (NVM). At any time, the cache can contain messages that have been written to NVM and messages that still have to be written to NVM, under the constraint that if a message has been written to NVM, all older messages must have also been written to NVM. Later messages may or may not be in NVM, hence nondeterminism. It was considered useful to have an array facility to handle the messages in chronological order. It was to meet the needs of this system that arrays were implemented in STATECRUNCHER (in Release 1.04). Outcomes of the trials of STATECRUNCHER We have shown that STATECRUNCHER has been successfully deployed in a live project. The experience of this trial clearly demonstrated STATECRUNCHER's ability to handle all the forms of nondeterminism that were inherently present in the system under test. The successful outcome of these trials has led to a number of reports and continued work using STATECRUNCHER. The following reports have been written or are nearing completion: On integrating STATECRUNCHER into the TorX tool chain [Koppalkar 02, 03]: Nitin Koppalkar and Animesh Bhowmick Integration of Generic Explorer with the TorX Tool Chain Philips Nat. Lab. Technical Note 2002/387, October, 2002 Nitin Koppalkar Interfacing STATECRUNCHER with TorX for demonstrating the state-based testing technique taking MG-R components for a case study Philips Nat. Lab. Technical Note (under preparation, December 2003). On modelling software components in STATECRUNCHER [Trew 03]: Tim Trew State-based modelling of software components for integration testing A practical guide to the creation of STATECRUNCHER models Philips Nat. Lab. Technical Note (under preparation, December 2003). We indicate some future directions at the end of this section. PROLOG as the implementation language There is of course a subjective element in stating whether PROLOG is a feasible implementation language for any given purpose. Different people show affinity to different programming languages, and few can claim competence in a really wide range of them. The present author's view is that to build the same STATECRUNCHER system in C would require a significant multiple of the effort taken, although such an undertaking by a team, given the present implementation as a precise specification, would not be pointless, as it would lead to improved performance and greater maintainability in an organisation, because one could then tap into a wider pool of programmers than is the case with a PROLOG implementation. To use an object oriented language could help in many ways, but the hard parts of the transition algorithm are not clearly amenable to an object-oriented approach. Strengths of PROLOG as a programming language In the author's estimation, the power of PROLOG (for readers not entirely unfamiliar with PROLOG), lies in the following features: Compact notation. Although this is arguably a very superficial aspect, it does make for readable programs. They can be overseen with more ease because there is less syntactic overhead (compare the abundant use of brackets in LISP). Examples: Variables have no declaration and their scope is just the one clause they are used in. Symbols beginning with capitals or underscore are variables, and are distinct from those beginning with lower case letters which are atoms, i.e. constants. The and operator is a comma, and the or operator is a semicolon. The result approaches the compactness of the notation for predicates and specifications in discrete mathematics. The notation [H|T] denotes the head and tail of a list. The head is one element of a list and the tail is conventionally zero or more elements of the list. The term [H|T] will construct a list from a head and a tail, or split a list into head and tail, or it can be used to check whether an item is a list with at least one element and some tail, (which may be the empty list). Typelessness. The fact that PROLOG is untyped makes many routines very general, where in C many versions of a function might be needed, one for each type of argument, though this is less of a problem in C++, where a template construction can be used. The interpretative nature. Programs, whether large or very small (e.g. just one clause) can be experimented with at the command prompt. PROLOG programs have no header files and compile so fast there is no need for a developer to build them, as in non-interpretative languages. The whole of STATECRUNCHER compiles in little more than a second on a modern computer. Unification. This allows a partially grounded structure to be matched against another one, e.g. [a,[B,C]] against [D,[e|T]]. A variable matched against a grounded item is instantiated to that item and becomes grounded. The above match succeeds with B = e C = _G163 D = a T = [_G163] This sort of match is useful e.g. in extracting parts of compiled statements, such as the condition of a transition, where the parse contains structures partly labelled by fixed atoms, with the remaining parse body representing the real parse content to be extracted. The result of the unification may still contain non-ground terms, as variable T is in the above example, though it is constrained to be a list of one element. Backtracking. This is a search mechanism that will look for a structural match, and satisfaction of further constraints. An example of use might be to find a parsed statement satisfying a certain constraint, such as finding a declaration of a variable of a certain name, or finding a potential transition, then requiring that it satisfy various conditions. An extension to backtracking is to find all items satisfying some constraint. Backtracking is also a good mechanism for generating many solutions to some requirement, such as permutations. Reversibility. PROLOG clauses can be written to work in two directions - indeed they will do automatically in many cases, perhaps without the program author realising it. The same simple PROLOG clauses defining how to append two lists L1 and L2 making L3, can also break up a given list L3 into sublists L1 and L2 which when appended, make the given list. It will do this in all possible ways, e.g. [a,b,c] can be split this way into: L1 = [], L2 = [a,b,c] L1 = [a], L2 = [b,c] L1 = [a,b], L2 = [c] L1 = [a,b,c], L2 = [] In fact the append clause can work with three instantiated parameters to verify that L1 and L2 append into L3, and even with only L1 instantiated or only L2 instantiated or even more unusually with all three parameters uninstantiated. The Definite Clause Grammar (DCG). This is very convenient way of expressing Backus-Naur grammar rules and recording a parse for them. It is based on processing list structures by specifying what part of a list is used up in the parse, and what part is returned as unused, available for the next term in a grammar rule. It is described very lucidly in [Clocksin]. The implementation of STATECRUNCHER's expression parser shows that use of DCGs is feasible on a large scale (about 20 operator precedences), provided care is taken to maintain efficiency. PROLOG's run-time performance There are two parts to PROLOG's execution performance: compilation and the run-time engine. Although PROLOG's Definite Clause Grammar is well-known for its parsing capability, it is probably for performance reasons that it is not more widely used for full domain-specific-language systems. However, the compilation speed of a STATECRUNCHER model is very acceptable, good even, on a modern (3GHz) machine, where typical illustrative models (as in [StCrManual]), compile in a second or so. Compilation, especially of expressions is certainly felt to be an area where, with more analysis and profiling, the performance could be improved further. The stress tests in [StCrTest] show that performance is generally good, but with nondeterminism, there are, and always will be, cases of combinatorial explosion. In deterministic situations, STATECRUNCHER is fast, by human standards, in all models investigated, including automatically generated large ones. There are differences between different PROLOG implementations, but the author has been very satisfied with the two chosen for the investigation: [SWI Prolog], which is in the public domain, and [WinProlog], a commercial system. There are not great differences in execution speed, although it can be remarked that the difference between running the WinProlog system as an MS-DOS executable and running in the development environment gives a factor of 2 or 3 difference in performance. Future directions Future directions can be seen in tooling and in testing. The tooling side Possible enhancements to STATECRUNCHER Philips Research has expressed interest in extending STATECRUNCHER with machine implantation, whereby state machine templates can be dynamically implanted into a statechart, as described in [StCrFunMod]. This makes whole statecharts recursive, and would solve the problem of how to model (indirectly) synchronous and asynchronous recursive function calls. A less drastic enhancement to STATECRUNCHER is to implement UML pseudo-states, though these can be simulated with the existing features. Ideally, STATECRUNCHER would keep pace with all developments in UML, as this is becoming the industry standard. Other possible enhancements are: to support forward chaining of data and lambda transitions (i.e. transitions that take place when some boolean expression becomes true) and to combine cause effect graphing with statecharts. STATECRUNCHER's performance STATECRUNCHER has been subjected to some stress tests, decribed in detail in [StCrTest]. Some models of regular structure but arbitrary size can be generated by PROLOG programs. Examples are: broad clusters, deep clusters, broad sets, deep sets, intensive nondeterminism, and long chains of fired events. Response times for processing an event as given below are for STATECRUNCHER running under [SWI-Prolog] on a 300 MHz machine. More modern machines can give a factor 10 improvement. STATECRUNCHER almost always performs well with deterministic models (i.e. no forks in the model, and with race and set transit nondeterminism disabled). Examples: Test model t7110, with 25 clusters of 25 leaf-states (625 leaf-states in total), executes a leafstate-to-leafstate transition in 1 second and a cluster-to-cluster one in 2.5 seconds. Test model t7120, containing a set of 5 sets each with 5 member clusters of 2 leaf-states, executes an event causing transitioning in all 25 clusters in 1.8 seconds. Test model t7180 executes a chain of 25 fired events across 25 members of a set in 1.7 seconds. In nondeterministic situations, models with a few tens of worlds generally perform adequately. The Program Installation example ( REF _Ref71432496 \r \h Figure 171) performs well. With larger numbers of worlds (say 100), performance can become a bottleneck, though models have been run leading to world numbers in the thousands after very few events. Set nondeterminism with nested sets appears to degrade performance considerably. Approaches to increasing STATECRUNCHER's performance What options are there for performance improvements? We consider some: Re-write the program in C. C is a compile-to-executable (non-interpretative) language which facilitates very precise control over all algorithms, including memory allocation. A disadvantage of this approach is that it would probably be a very time-consuming exercise, though the existence of the PROLOG implementation would provide an unambiguous specification, and would give much guidance on implementation strategy. Write critical inner loops in C. One would profile the execution of the PROLOG version to find the critical inner loops. Profiling utilities and an interface mechanism to external code exist for most PROLOG systems. This approach could be very effective, but it is PROLOG-implementation specific. It could be that what is critical to one PROLOG engine is not critical to another. Also, the external interface mechanisms are liable to be specific to the PROLOG system used. Write one's own subset of PROLOG in C. By implementing some PROLOG operations as C routines, especially list operations, one might be able to produce a system that generally makes use of the existing PROLOG structure, whilst benefiting from the efficiency and controllability of C. Investigate other PROLOG engines. There are many suppliers of PROLOG systems. STATECRUNCHER already runs under two PROLOG systems, [SWI-Prolog] and [WinProlog]. This means that a framework for further porting is already in place, with many system-dependent predicates already implemented in a compatibility library. The test suite, (mentioned in section  REF _Ref71270864 \r \h 9.3) would help drive the porting process: once all tests run, the serious porting work is likely to be complete. Tweak PROLOG garbage collection. A weakness of PROLOG as a programming language could be that the user does not have adequate control over memory management. The garbage collection algorithm used may not be known. However, most PROLOG systems offer the possibility to make extra garbage collection calls. A few experiments have been done with this, but so far no significant improvements have been observed. Tailor the coding style to a particular PROLOG engine. Some PROLOG suppliers offer guidance on how to write efficient code, though what is good for one system may be bad for another. A case in point is whether to be liberal or sparing with the use of the PROLOG cut. One might think that putting in a redundant cut at the end of a deterministic predicate helps a PROLOG engine, enabling it to recover many stack frames, but it may impede it. This may be because it interferes with tail recursion optimisation, where a recursive call at the end of a predicate is executed at the caller's level, rather than by creating a new calling level. A few experiments with removing cuts in the process set of task sequences in worlds routine shows that memory requirements become very different (e.g. stack space is traded for heap space), but that there is no drastic performance or capacity change. Another aspect to tailoring code is to make use of supplied library functions rather than one's own generic implementations. Algorithmic experimentation. The transition algorithm was described with various algorithmic alternatives, such as the algorithm A / algorithm B options in the main process set of task sequences in worlds routine. It could be that a better choice can be found. Write a front-end cache to STATECRUNCHER that pre-explores the state space when the IUT is not executing under real-time constraints, so that when the IUT is executing under real-time constraints, a rapid-response test oracle can be given. Make use of parallel processing (e.g. a processor per world). This would be easier at a macroscopic level (allocating each extant world visible at user-event processing time to a processor) than at a microscopic level (allocating each extant world visible at internal-event processing time to a processor). As the number of worlds may be larger than the number of processors, some form of dynamic allocation of tasks would be required. The above list gives many options, but it must be remembered that performance optimisation is in competition with pressure for new features (e.g. as mentioned in this subsection). Moreover, STATECRUNCHER is in competition for resources with the other elements of the tool chain. Should more effort be spent on test generation? Priorities are often determined by the customer. Perspectives for on-the-fly testing and test generation There is scope for research into advanced primers (test generators), performing intelligent transition tours and disambiguating IUT states under nondeterminism. STATECRUNCHER at least enables flattening of nondeterministic UML statecharts, and may be useful for other transformations, e.g. finding an observable NFSM (Nondeterministic Finite State Machine) that is equivalent to an unobservable one (observable means that outputs on transitions reveal the new state). STATECRUNCHER could have a role to play as an experimental vehicle for advanced on-the-fly testing (Lee's adaptive testing) algorithms, which can be more efficient than off-line generated batch tests (Lee's preset testing). For example, the homing problem (see [Lee], p.1095) consists of determining the final state of a machine by giving it a sequence of events and observing the outputs. With on-the-fly testing the homing sequence can be shorter than in the batch case. However, homing (which drives the machine into a known state following on from a test) is weaker than distinguishing or verifying or identifying the state after the test, but on-the-fly testing helps here too [Lee, p.1097, p.1105], [Hierons 98]. STATECRUNCHER's command language offers efficient hooks needed by the test generation or other programs. The testing side Practical problems being tackled STATECRUNCHER has been the test oracle tool on which state-based testing at Philips has been focussed for well over a year. The strength of STATECRUNCHER is seen as being in its UML-friendly and intuitive syntax, and its ability to handle nondeterminism, which was the motivation for its development. Other strengths are its support for scoping operators and its after-landing transition semantics, both of which facilitate component composition. PRI-B has shown itself able to use STATECRUNCHER in an advanced testing environment. STATECRUNCHER has been integrated into an end-to-end tool chain, based on TorX, using EXPECT scripts to adapt STATECRUNCHER's interface to that required by TorX. Various components have been selected for modelling and testing. It has been found that creating some dynamic models from a conventional specification is a particularly skilled task. Part of the difficulty is that this needs to be done in a way that enables component model composition to follow the mechanism of component composition. The challenges have been successfully met, and as they have revealed additional needs in STATECRUNCHER, (a socket interface, pruning of worlds on invalid traces, arrays) these have been supplied. The testing activities have also exposed some new problems, in particular the issue of how to handle large numbers of notifications (asynchronous messages) without creating a STATECRUNCHER world for each potential number of notifications. It is intended to complete this phase of trialling with STATECRUNCHER in 2004. There are plans to make a comparison with another product, Conformiq, of Finnish manufacture. The results of the comparison should be available in the course of 2004. Final conclusion We have presented a state machine system that handles nondeterminism for the purpose of providing a test oracle in a tool chain. It has successfully been transferred to Philips Research India - Bangalore for use on live projects, where it has been deployed for testing of embedded software components with inherent nondeterminism. The successful outcome of these trials to date has led to ongoing use of STATECRUNCHER in testing research within the Philips Electronics organization. We believe that one of the main contributions of this thesis has been to take a research concept from inception through to deployment in an industrial setting. Glossary and abbreviations etc. Greek letters For compactness, and as in [CHSM], we will often use Greek letters for event names; in the STATECRUNCHER source, these would be spelled out in Roman letters. The English names of the letters are as follows:  alpha beta gamma delta epsilon zeta eta theta iota kappa lambda mu nu xi omicron pi rho sigma tau upsilon phi chi psi omega Greek letters Glossary and abbreviations Action: A STATECRUNCHER term for processing that is associated with a transition (or the entering/exiting of a state). An action can be e.g. a C-like assignment to a variable the firing of an event the generation of output (a trace). Black-box testing: Testing where system outputs can be observed, but not system internals. In the case of state-based testing, the state (more precisely, configuration) of the system will not be directly observable, and must be deduced from traces (outputs generated when events are processed). Broadcast-event: An event that is generated within a statechart which can be responded to by the model (transitions can be triggered by it). The STATECRUNCHER keyword to generate a broadcast event is fire event. Broadcast-event nondeterminism: Also known as fired-event nondeterminism, this is the form of nondeterminism that arises when an action associated with a transition fires an event, which in turn gives rise (directly or indirectly) to one of the other forms of nondeterminism (e.g. fork, race, set-transit). CCS: The Calculus of Communicating Systems. A process calculus defined by Robin Milner. CHSM: Concurrent Hierarchical finite State Machine. A language implemented by Paul J Lucas [CHSM]. Cluster: A hierarchical state and component of a statechart with the understanding that if the cluster is occupied, exactly one of its members must be occupied. It is the XOR-state of Harel. Configuration: The dynamic state of a statechart in a broad sense, comprising: occupancy (occupied/vacant) of the states in the statechart, variable values, cluster history, and trace values. CSP: Communicating Sequential Processes. A process calculus defined by C.A.R. Hoare. DCG: Definite Clause Grammar. This is the standard PROLOG grammar notation, which enables grammar rules to be written in Backus-Naur form. Event: A signal (that has no time duration) which may be responded to in a statechart model by the triggering of transitions. Fire: The act of generating an event in an action associated with a transition: the action fires the event. [Compare triggering a transition, which may take place when the fired event is processed]. Fired-event nondeterminism: Also known as broadcast-event nondeterminism, this is the form of nondeterminism that arises when an action associated with a transition fires an event, which in turn gives rise (directly or indirectly) to one of the other forms of nondeterminism (e.g. fork, race, set-transit). Fork nondeterminism: The form of nondeterminism that arises when an event triggers mutually exclusive transitions in the statechart, and which produce a different outcome. FSM: Finite state machine. We normally mean a flattened state machine of the Mealy type that produces observable outputs on transitions. GP4: Generic Prolog Parsing and Prototyping Package. An underlying layer of PROLOG programs to provide parsing support (especially tokenization and expression parsing). GUI: Graphical User Interface. Harness: A test harness is a tool that contains or accesses a test script so as to obtain tests and their oracle, and communicates with an implementation under test to run the tests. It compares actual with expected output, and logs the results as pass or fail. IUT: Implementation Under Test. Leafstate: A state and a component of a statechart at the lowest hierarchical level. LHS: Left Hand Side. Machine engine: A program that holds a representation of a statechart and a configuration of that statechart, and which can process an event and in so doing calculate and assume the new configuration. Meta-event: An event that is internally generated when a state is exited or entered, and which can be used to trigger transitions in other parts of the statechart. NFSM: Nondeterministic Finite State Machine. Nondeterminism: Dynamic behaviour of a system whereby there is more than one outcome of processing an event. Distinguishing aspects of an outcome are: state occupancy, cluster history, variable values, and traces. For a formal definition of a nondeterministic finite state machine, see section  REF _Ref61174596 \r \h 7.1. ONFSM: Observable Nondeterministic Finite State Machine. For ONFSMs, a unique target state on a transition can be deduced from the output generated by the transition. Oracle: The pre-determined output of the system on a successful test, for comparison purposes with the actual output. PCO: Point of Control and Observation. These are used for systems such as networked and client-server systems where inputs and outputs must be partitioned according to which separate testing point can provide and observe them. Primer: The TorX terminology for the part of the tool chain that decides what events (or transitions) are to be given to the explorer and indirectly to the implementation under test to be processed. Race nondeterminism: The form of nondeterminism that arises when an event triggers transitions in parallel parts of the statechart, and when the order in which these events are processed will affect the outcome. RHS: Right Hand Side. Set: A state and a component of a statechart with the understanding that if the set is occupied, all its members must be occupied. This represents the parallelism of a model. It is the AND-state of Harel. Set-action nondeterminism: The form of nondeterminism that arises when actions (such as variable assignments) in different members of a set are executed, when the order in which this happens affects the outcome. Set nondeterminism: A generic term for set-transit nondeterminism, set-action nondeterminism and set meta-event nondeterminism. Set-meta-event nondeterminism: The form of nondeterminism that arises when elements of a set are exited or entered, (generating enter and exit meta-events), when the order in which this happens affects the outcome. Set-transit nondeterminism: The form of nondeterminism that arises when a set is exited or entered, when the order in which the members are exited or entered affects the outcome. SRT: State Relation Table. A table relating input states to output states via events. State: This word is used in two senses according to the context a statechart consists of a hierarchy of states, which may be sets, clusters, or leaf-states a state is the occupancy (occupied/vacant) of a state in the above sense. Statechart: A concurrent, hierarchical representation of a dynamic behaviour model consisting of states, events, transitions, and optionally variables and statements for processing them. STATECRUNCHER: A provisional name for a program that compiles statecharts, process events, and provide state or trace information. SUT: System Under Test. Trace: The output generated on processing an event (or transition), corresponding to the expected observable output of the Implementation Under Test. Transition: The relation between the state of a system before and after that system has processed any event that triggers that transition. Trigger: The act of responding to an event by processing an associated transition: the event triggers the transition. [Compare firing an event, which may take place as an action on the transition]. UML: Universal Modelling Language, as set out by the Object Modelling Group. UML is the industry standard for various modelling views on a system. The dynamic modelling view uses statecharts. White-box testing: Testing where system internals can be observed. In the case of state-based testing, the state (more precisely, configuration) of the system can be observed directly. References STATECRUNCHER documentation and papers by the present author Main Thesis[StCrMain]The Design and Construction of a State Machine System that Handles Nondeterminism AppendicesAppendix 1[StCrContext]Software Testing in ContextAppendix 2[StCrSemComp]A Semantic Comparison of STATECRUNCHER and Process AlgebrasAppendix 3[StCrOutput]A Quick Reference of STATECRUNCHER's Output FormatAppendix 4[StCrDistArb]Distributed Arbiter Modelling in CCS and STATECRUNCHER - A ComparisonAppendix 5[StCrNim]The Game of Nim in Z and STATECRUNCHERAppendix 6[StCrBiblRef]Bibliography and References Related reportsRelated report 1[StCrPrimer]STATECRUNCHER-to-Primer ProtocolRelated report 2[StCrManual]STATECRUNCHER User ManualRelated report 3[StCrGP4]GP4 - The Generic Prolog Parsing and Prototyping Package (underlies the STATECRUNCHER compiler)Related report 4[StCrParsing]STATECRUNCHER ParsingRelated report 5[StCrTest]STATECRUNCHER Test ModelsRelated report 6[StCrFunMod]State-based Modelling of Functions and Pump Engines References Note: For a separate annotated bibliography, where references have been structured into categories, see [StCrBiblRef], listed above. The references below are those specifically referred to in this thesis. [BCS-SIGIST] Standard for Software Component Testing British Computer Society - Special Interest Group in Software Testing [Beizer] B. Beizer Software Testing Techniques International Thomson Computer Press, 1990, ISBN 1850328803 [Brard] B. Brard Systems and Software Verification Springer-Verlag, 2001. ISBN 3-540-41523-8 [Beveridge] Jim Beveridge and Robert Wiener Multithreading Applications in Win32. The Complete Guide to Threads Addison-Wesley, 1996, ISBN 0-201-44234-5 (pb) [Callahan] John R. Callahan http://www.cs.wvu.edu/~callahan/interests.html http://www.ivv.nasa.gov [CdR] Cte de Resyste (delivers the TorX tool) http://fmt.cs.utwente.nl/CdR [CdR-iP] Ren de Vries, Jan Tretmans, Axel Belinfante, Jan Feenstra, Lex Heerink, Loe Feijs, Sjouke Mauw, Nicolae Goga, Arjan de Heer Cte de Resyste in Progress see the [CdR] site [Chow] Tsun S. Chow Testing Software Design Modeled by Finite-State Machines IEEE Transactions on Software Engineering, Vol SE-4, No 3, May, 1978 [CHSM] Paul J. Lucas An Object-Oriented System for Implementing Concurrent, Hierarchical, Finite State Machines. MSc. Thesis, University of Illinois at Urbana-Champaign, 1993 [Clocksin] W.F. Clocksin & C.S. Mellish Programming in Prolog, 2nd Edition Springer Verlag, 1984. [CWB] The Edinburgh Concurrency Workbench http://www.dcs.ed.ac.uk/home/cwb/ [Dahbura] Anton T. Dahbura, Krishnan K. Sabnani, and M. mit Uyar Formal Methods for Generating Protocol Conformance Test Sequences Proceedings if the IEEE, Vol. 78, No. 8, August, 1990 [CMMI] CMMI-SE/SW, Version 0.2b, Sept 1999 Capability Maturity Model - Integrated Systems/Software Engineering CMMI website: http://www.sei.cmu.edu/cmmi/cmmi.html [Conformiq] http://www.conformiq.com [Darnell] P.A. Darnell and P.E. Margolis C: A Software Engineering Approach Springer Verlag, 1988. ISBN 0-387-97389-3 and 3-540-97389-3 [DejaGnu] R. Savoye The DejaGnu Testing Framework The Free Software Foundation, 1993 [Du Bousquet] Lydie Du Bousquet, Solofo Ramangalahy, Sverine Simon, Csar Viho Formal Test Automation: The Conference Protocol with TGV/TorX Available on the web at the [TorX] site. [ECHSM] M.J. Hollenberg Extended Hierarchical Concurrent State Machines, Syntax and Semantics Philips Nat. Lab. Draft Report, 1999 [Farchi] E. Farchi, A. Hartman, S.S. Pinter Using a model-based test generator to test for standard conformance IBM Systems Journal, Vol. 41, No 1, 2002. [Friedman] Galit Friedman, Alan Hartman, Kenneth Nagin, Tomer Shiran Projected State Machine Coverage IBM Haifa Research Laboratory Presentation ISSTA 2002 [Harel] D. Harel et al. On the Formal Semantics of Statecharts Logic in Computer Science, 2nd Annual Conference, 1987, pp.54-64 [Hennie] F.C. Hennie Fault Detecting for Sequential Circuits Proceedings of the 5th Annual Symposium on Switching Theory and Logical Design, 1964, pp. 95-110. [Hierons 98] Rob M. Hierons Adaptive testing of a deterministic implementation against a nondeterministic finite state machine The Computer Journal, 41, 5 (1998), pp. 349-355 [Hierons 03] Rob M. Hierons Generating candidates when testing a deterministic implementation against a non-deterministic finite state machine The Computer Journal, 46, 3, pp. 307-318 [Hoare] C.A.R. Hoare Communicating Sequential Processes Prentice-Hall, 1985, ISBN 0-13-153271-5, 0-13-153289-8 PBK [Hollenberg] M.J. Hollenberg Test Templates for PHACT Philips Nat. Lab. Technical Note 152/99 [Hong] Hyoung Seok Hong, Jeong Hyun Kim, Sung Deok Cha and Yong Rae Kwon Static Semantics and Priority Schemes for Statecharts Proceedings of COMPSAC '95, IEEE Computer Society Press. [IEEE 610.12.1990] IEEE Standards, Software Engineering Volume I, Customer and Terminology Standards, 1999 Edition [ISO 9646-1] International Organization for Standardization ISO/IEC 9646-1 (1994) Information technology -- Open Systems Interconnection -- Conformance testing methodology and framework -- Part 1: General concepts [Jagadeesan] Lalita Jategaonkar Jagadeesan et al. Specification-Based Testing of Reactive Software: Tools and Experiments. Experience report, Proceedings of the International Conference on Software Engineering, May 1997 [Koala] R. van Ommering, F. van der Linden, J. Kramer, J. Magee The Koala Component model for Consumer Electronics Software IEEE Computer, March 2000, pp. 78-85. [Koppalkar 02] Nitin Koppalkar and Animesh Bhowmick Integration of Generic Explorer with the TorX Tool Chain Philips Nat. Lab. Technical Note 2002/387 [Koppalkar 03] Nitin Koppalkar Interfacing STATECRUNCHER with TorX for demonstrating the state-based testing technique taking MG-R components for a case study Philips Nat. Lab. Draft Report, December 2003 [Koymans] Ron Koymans An Overview of Automatic Test Generation Techniques for Communication Protocols Philips Nat. Lab. Report RWR-508-re-93558, November, 1994 [Kwan] Kwan Mei-Ko Graphic Programming Using Odd or Even Points Chinese Mathematics 1962, Vol. 1, pp. 273-277 [Lee] David Lee and Mihalis Yannakakis Principles and Methods of Testing Finite State Machines Proceedings of the IEEE, Vol. 84, No 8, August, 1996 [Myers] G.J. Myers The Art of Software Testing John Wiley & Sons, 1979. ISBN 0-471-04328-1 [Petrenko] Alexandre Petrenko, Nina Yevtushenko, Alexandre Lebedev, Anindya Das Nondeterministic State Machines in Protocol Conformance Testing Protocol Test Systems VI (C-19), pp. 363-378, 1994 [PHACT] L. Heerink and M. Hollenberg Conformance Testing Using PHACT Philips Nat. Lab. Technical Note NL-TN 2000/011 [Phadke] Madhav S. Phadke Planning efficient software tests http://www.stsc.hill.af.mil/crosstalk/1997/10/planning.asp [Sabnani] Krishnan Sabnani and Anton T. Dahbura A Protocol Test Generation Procedure Computer Networks and ISDN Systems 15 (1988), pp. 285-297 [Schneider] Steve Schneider Concurrent and Real-time Systems, The CSP Approach John Wiley & Sons Ltd, 2000, ISBN 0-471-62373-3 [Sloane] N.J.A. Sloane A library of orthogonal arrays http://www.research.att.com/~njas/doc/OA.html [SPIN] http://netlib-bell-labs.com/netlib/spin/whatisspin.html [StCr...] For STATECRUNCHER appendices/references, please see the start of this section. [SWI Prolog] http://www.swi-prolog.org [Trew 98] Tim Trew State-based Testing with WinRunner: the State-Relation Package Philips PRL Internal Note SEA/704/98/05, June 1998 [Trew 01] Tim Trew Software Component Composition - Still "Plug and Pray?" Proceedings of the 6th Philips Software Conference, February, 2001 [Trew 03] Tim Trew and Seshaiah Uppala State-based modelling of software components for integration testing A practical guide to the creation of STATECRUNCHER models Philips Nat. Lab. Technical Note (under preparation). [UML] The Object Management Group website is: http://www.omg.org UML specifications are available from this website. [VnV] Eleen Hollenberg and Erik Mallens CvnvTestframe User Manual MG-R Software Documentation, v2.0, October 2001. [von der Beeck] Michael von der Beeck A Comparison of Statechart Variants Aachen University of Technology, Aachen, Germany [Warren] David H.D. Warren Logic Programming and Compiler Writing Software Practice and Experience, Vol. 10, 97-125 (1980). [WinProlog] WinProlog, Logic Programming Associates Ltd http://www.lpa.co.uk [WinRun] WinRunner v4.0/v5.01, Mercury Interactive http://www.merc-int.com/products/winrunguide.html [Yule] D.C. Yule Automatic State-Based Testing Philips PRL Technical Note TN 3611, 1997 / DVD Document V19 C4 S415. [Zhang] Fan Zhang and To-yat Cheung Optimal Transfer Trees and Distinguishing Trees for testing Observable nondeterministic Finite-State Machines IEEE Transactions on Software Engineering, Vol. 29, No. 1, Jan. 2003  Property checking is often called software verification [Brard], but others, e.g. [Callahan], effectively equate validation with property checking, and verification with testing. Neither [IEEE-610.12.1990] nor [CMMI] makes a clear distinction of the V&V terms along these lines. They should always be looked at in context.  e.g. hierarchical prioritisation, where an inner transition masks an outer one or vice versa  This set was found by Alistair Willis.  Additionally, the suffixes for long and unsigned or both may be appended, e.g. 123l(long) 123L(long) 123u(unsigned) 123U(unsigned) 123ul(unsigned long) 123UL(unsigned long). 123Lu(unsigned long) However, these do not alter the internal representation.  For normal use the white space characters are space and horizontal tab. An embedded backspace does not remove the preceding character. Line feed and/or carriage return may not be possible as embedded characters as they may be absorbed in the line read process. DOS and Unix have different end-of-line conventions. The user need not normally be concerned about this. Some text editors may not allow embedding of some of these characters in a file.  Various factors ignored here: error conditions, details of type and wrapping of data, and overloading of the operator (i.e. different actions on different types of data).  One could imagine allowing more than one top-level state, e.g. so as to have two totally independent machines in one source or object file. However, this has little value, and would complicate the descriptions.  One could imagine allowing sets and clusters that contain no children. This would introduce a partition of cluster and sets into {empties,nonempties}. However, an empty set or cluster has little benefit (a leafstate will serve as a replacement). To allow empty sets and clusters would only complicate the properties of a statechart.  For an in-flight algorithm, this would be {occs, vacs, shadow_occs, shadow_vacs, blockeds}  Later additions are strings and arrays. Array elements can be counted as scalar variables, and the concatenated ASCII values in strings can be considered as integers.  Another term that was considered to express this, but which is too imprecise, is state vectors.  In an alternative prioritsation: above  In the alternative prioritisation: ancestors  In the alternative prioritisation: outermost  In the alternative prioritisation: below  If the sequence ordering convention is reversed, then the output of tail processing feeds into the head processing.  By convention in the implementation, the tasks are in tail first order (head of list is the last task).  PAGE vi Graham G. Thomason 2003-2004 Graham G. Thomason 2003-2004  PAGE v  PAGE 246 Graham G. Thomason 2003-2004 Graham G. Thomason 2003-2004  PAGE 245 Note: the guide path to y3 is unnecessary, but harmless ->x1.(x2.(y3/\x3.y4.q5)/\y2.p2) evaluated in MPATH= [x,st], this evaluates to: [ [y3,x2,x1,x,st], [q5,y4,x3,x2,x1,x,st], [p2,y2,x1,x,st] ] DscDataTransmit DscDataReceived DscDataReceived Configuring Sending Retrieving Ready Sent q1 Eating world 14 OneFork Hungry world 18 world 10 world 18 etcetera b world 7 Sitting Hungry Phil4 p1 eff possibilities shown by dashed arcs (depending on the occupancy configuration) potential recursion, e.g. when a transition task fires a new event process_task_seqs_in_worlds (many task sequences in many worlds) process_task_seq_in_worlds (one task sequence in many worlds) process_task_in_world (client handler) (one task in one world) process_task_in_worlds (one task in many worlds) Lying world 12 q3 a world 5 bag_to_set world 7 ................... world 9 world 5 process event  in worlds 5,6,7 w111 w12 s  -> bb  -> ab world 6 process event  in worlds 3,4 w11 w33 w32 w31 upon enter block exit block } enter upon enter block  Pick4 Put4 Held Lying Simulator/ Real Target Target VnV STATE-CRUNCHER { console output myfile.scd.pl data file console output myfile.scv.txt validator listing myfile.sco.pl object file myfile.scs.txt STATECRUNCHER model source myfile.scl.txt process event  in world 2 Validator compiler listing Compiler various states etc. Machine Engine world 4 input and output will normally be connected to a Primer program. standard output per world, transitionable events, state occupancies, traces etc. p3 q2 p2 y3 { notif_msg @pco_convert optionally with /trace("notif_msg") station_found tuning world 3 bag_to_set Full2 /fire Rel23 Pang2 /fire Req23 tuned Full1 /fire Re121 Pang1 /fire Req12 This transition is redundant, but it shows a failed Try40 This transition is redundant, but it shows a failed Try34 This transition is redundant, but it shows a failed Try23 This transition is redundant, but it shows a failed Try12 start_tuning This transition is redundant, but it shows a failed TryNN (trace(P4Eat) (trace(P4Stp) integer (trace(P3Eat) (trace(P3Stp) (trace(P2Eat) (trace(P2Stp) (trace(P1Eat) (trace(P1Stp) (trace(P0Eat) (trace(P0Stp) integer world 7 } process_event In world supplied wi Generate the set of transition sequences on this event, Texec Wrap the world as a list (with this one element) Process set of transition sequences using process_task_seqs_in_worlds idle prog_inst gen_notifs / trace("notif_msg*") station_found tuning tuned enum body enum body ] f   g b world 5 bb ba Note: the arrow symbol is used here to show knock-on effects. bag_to_set world 8 world 7 world 6 world 5 world 4 world 3 initial world = 2     c3 c2 aa w112 w122 Try40 [!in($Fork4.Lying) || !in($Fork1.Lying)] Try40[in($Fork4.Lying) && in($Fork0.Lying)] /fire Pick4; fire Pick0; fire Acq40 Rel40/fire Put4; fire Put0; fire Try34; fire Try01 Req40[!in($Fork4.Lying) || !in($Fork0.Lying)] Re quested )  c1 bac t13 t12 t11 baaaa t10  baaab t9   t8 t7 t6 t5 t4 t3 t2 t1 13{v2=v2*10+4;} C1 12{v2=v2*10+3;} baa bab ba _a5a _ba 9[f]{v1=v1*10+9;} 8[f]{v1=v1*10+8;}   a c d e cl2 cl1 my_set            gamma state9 state8 state3 state2 state1 similarly for the other forks PutFork0 Fork0 t1 t2 Req40[in($Fork4.Lying) && in($Fork0.Lying)] /fire Pick4; fire Pick0; fire Acq40 Reset t3 standard input driving commands Lying PickFork0 a2 a3 Held statechart sc q t y2 s p y1 y5 x5 y4 x4 x3 x2 x1 q5 p5 x statechart st a1 statechart sc(a) set a(aa,ab,ac) cluster aa(aaa,aab) cluster aaa(aaaa,aaab,aaac) state aaaa; state aaab; state aaac; state aab ; cluster ab(aba,abb,abc) state aba ; state abb ; state abc ; set aaac(aca,acb,acc) state aca; state acb; state acc; r t2 acb abc aaac acc aca ac(set) aa(cluster) aaa(cluster) aaab aaaa aab aba abb ab(cluster)  EMBED Visio.Drawing.5  dhistory history deep dhistory history history , dhistory identifier , identifier identifier identifier ; statechart statement identifier statechart ( ) state- name identifier statechart name state statement state name transition block ( ) state- name set name transition block identifier set, cluster or (leaf) state state statement event declaration statement PCO declaration statement variable declaration statement type declaration statement statechart statement null statement statement    b,d Standing b,e a,e b,c a,d a,c b       a c d e L2_PutFork3 Held ByPhil2 cl2 P3_PickFork4 [in($$Forks. Fork4.Lying)] /fire L3_PickFork4 cl1 my_set A deep history marker is possible D db da alternative: member is a cluster (containing two leafstates) Note no symbol outside the cluster b ba bb member is a cluster (containing a cluster (containing two leafstates)) member is a set (containing two clusters, each of which contains two leafstates) member is a leafstate. Note no symbol outside the leaf state member is a cluster (containing two leafstates) Note symbol a in the member area ea e historical state 9->::$sc->$z.zb k eaa alpha/fire beta eab boolean expression ( if 4->::s->aab orbit=[s,sc] (n=n*10+5 (x=x*10+5 ; 4->$$a->aaa ( n=n*10+4 ( x=x*10+4 transition action block 1->a->a.aa.aaa w w1122 v } { ( event expression fire ; expression statement label block action block route ORBITAL STATE state expression disallowing the split operator, "/\" -> TARGET STATE state expression allowing the split operator, "/\" state expression state expression -> condition boolean expression ] s statechart sc baa [ bab aba abb state expression aaa aab a ba ab ab b 1 2 ) ( 3 4 5 6 7 8 9 10 11 2 1 4 3 5 12 x aa bb e y 3->c.cb->d.db 2->$d.da->d.db c d21 d2   b2 b1  {v=v*10+3}  {v=v*10+2}   (v=v*10+4 exit state expression ) ( event expression enter meta event s t q but tag defined here variable actually declared here r1 p d4 (v=v*10+1  {v=v*10+1+1} 3->$g 2->$g.ga 1->g.ga , meta- event condition route Declarations here (straight after the state statement for cluster r) are local to state r and its decendants. Machine path here = sc.p.q.r p1 q1 statechart sc (3->$a (2->ab (1->a.aa but defined for this scope tagname refers to here u to-child transition to-sibling transition to-parent transition ab aa a action block q to-cousin transition to-nephew transition to-uncle transition fb fa f gb ga g t s p (fire 2 w1112 w1111 w1223 w1222 w1221 w1221 w1122 w1121 w1123 w1122 w1121 w1113 w1112 w1111 (3 w223 w222 w221 but referring to here variable y usage here but defined for this scope t1 r d3 t2 d2 statechart sc s1 Forks L4_PutFork4    b  b1 w221 w122 w121 w123 w122 w121 b2 a1 t2 t1 w113 w112 w111 10actions etc. d22 w22 w3 w32 w22 w21 w22 w21 w2 w13 w12 w11 daa dab dbb dba c P3_PutFork3 /fire L3_PutFork3 d s ab aa a abc historical state (2 N 8 7 (1 w1 tasks (1 (2 (3 initial worlds w1 w2 w3 L4_PickFork0 w33 w32 w31 w112 w122 w1122 w1112 w1111 w1223 w1222 j q abcb abca a p Phil0 aac w1221 w1122 N 8 7 aacb aaca w1112 w1111 az w1123 w1122 w1121 w1113 w1112 w1111 (3 ->x@deep_history 2 5 4 6 3 ->x@no_history 1 3 2 5 4 1 6 ->x@history sub- orbital no-orbit or at-orbit or super- orbital a  {v=0;} w1122 acc w1121 aca beta/fire gamma D ac acb 3 w111 2 w223 w222 w221 w1111 5 4 1 6 aba H ab Error abb 4 2 5 4 1 6 aaa N aa P3_PutFork4 /fire L3_PutFork4 aab 1->$ab 2 (and) Z (and) T (requires) R OneFork Satiated O (one) P3_PickFork3 [in($$Forks. Fork3.Lying)] /fire L3_PickFork3 b a s (or) (and) (or) recursion (nand) Y exit($a.aa)->bb S  -> ab R bb ba aa ab X3 Q P{ X2 K J X1 H G F C B A Card Test report Test Harness Test script System Under Test test script generation or on-the-fly testing Code checking Test script  compare y1 and y2 state = y2 state = y1 get state P3_Sit m  w122 get state done done w112 process event  done done process event  set state x set state x SBM IUT Test Script  conditional action with else action  if (v%2==1){w=w*10+2; w=w*10+3;} else {w=w*10+4; w=w*10+5;} setv(v) w111 w123 w122 process task sequence in world recursion worlds worlds worlds process task in (tail) worlds process task in (head) world process task in worlds 1 2 z1 a z z2 Eating 10. take default dho= (D) true (H,N) no chg 9. take historical dho= (D) true (H,N) no chg q 8. take occupied dho= (D) true (H,N) no chg 7. take occupied dho:=false Generates abstract tests and verifies the results OneFork Hungry Sitting Hungry 11. take default dho= no chg (=false) Phil3 no transition sequences 5,10 10,5 yes Standing P2_PickFork3 [in($$Forks. Fork3.Lying)] /fire L2_PickFork3 P2_PutFork2 /fire L2_PutFork2 P2_PutFork3 /fire L2_PutFork3 OneFork Satiated P2_PickFork2 [in($$Forks. Fork2.Lying)] /fire L2_PickFork2 P2_Sit Eating s  if (v%2==1) {AC1} else {AC2} where AC1= if (v==3) {w=w*10+1;} else {w=w*10+2;} AC2= if (v==4) {w=w*10+3;} else {w=w*10+4;} w1212 t4 t3 t2 t1 , w1131 w1122 w1121 w1111 w3333 w3334 w2211 w1211 w1212 w1212 w1212 w1222 , w1222 w1222 w1221 w1212 w1211 ,  recursion worlds worlds worlds process task in (tail) worlds process task in (head) world process task in worlds w122 w121 w113 w112 w111 w22 w12 task w11 w3 w22 exit state housekeeping expression (includes assignment) j qb H conditional action action on a transition enter state housekeeping action transition Held ByPhil0 Fork0 Lying P4_Stand baaba baabb babaa babab internal housekeeping w121 babba babbb w1131 baaab baaaa baabb baaba babab babaa babbb babba w1131 w1131 w1122 w1122 w1122 w1121 w1121 w1121 w1111 w1111 w1111 w113 w112 w111 w1132 w1131 w1112 w1111 w2211 w3333 w3335 w3334 w3111 w2222 OneFork Hungry w2211 w2111 w1122 w1121   5 5 10 10 actions etc. 10 10 5 actions / task sequences 10 5 c b a  if (v%2==1){fire 2;} , t22  w12 , w11  event ( w2 state ( switch off press Txt off w1 Channel 2 audio/video press 4 press 7 press 3 press Txt press 2 transition sequences 6,10 10,6 10,5 5,10 switch on OneFork Hungry initial worlds recursion  Sitting Hungry Channel 2 Teletext - page 374 & no digit stored Channel 2 Teletext - page 100 & second digit stored Channel 2 Teletext - page 100 & first digit stored Channel 2 Teletext - page 100 & no digit stored Channel 2 audio/video Channel 1 audio/video off time ErrorHandled Disconnected time system startup start_tuning/ fire gen_notifs idle prog_inst  similarly L0_PutFork0 unspecifiable state 3 state 2 event  event  event  (causes system termination) event  state 1 similarly transition sequences 6,10 10,6 6,7 7,6 exit statechart sc(a) event alpha,beta,gamma,delta; event epsilon1,epsilon2,epsilon3,epsilon4; event zeta1,zeta3,zeta4; event omega; enum int {0,..,10000}; int u=0,v=0,w=0; cluster a(p,q) {upon enter{u=u*10+3;} upon exit{v=v*10+3;} \ omega{u=0;v=0;w=0;}; } cluster p(p1,p2) {upon enter{u=u*10+4;} upon exit{v=v*10+2;} \ delta->$$sc->q{u*=10;v*=10;}; \ beta->q{u*=10;v*=10;}; gamma->q.q2; \ epsilon1{w++;}; epsilon2->p->p{w++;}; \ epsilon3->p{w++;}; epsilon4->$a->p{w++;};} state p1 {upon enter{u=u*10+5;} upon exit{v=v*10+1;} \ zeta1{w++;}; zeta3->p1{w++;}; \ zeta4->$p->p1{w++;}; alpha->p2; } state p2 {upon enter{u=u*10+5;} upon exit{v=v*10+1;} \ alpha->p1; } cluster q(q1,q2) {upon enter{v=v*10+4;} upon exit{u=u*10+2;} \ beta->p; gamma->p.p2; } state q1 {upon enter{v=v*10+5;} upon exit{u=u*10+1;} \ alpha->q2; } state q2 {upon enter{v=v*10+5;} upon exit{u=u*10+1;} \ alpha->q1; } 4/w++ ; bool (fire 3 = expression var- expression tag-expression , label block r ev_com_expr(MPATH,[[ex_dyadic,descend],P1,P2],V):- ev_com_expr(MPATH,P1,V1), V1=[ID,_], MPATH2=[ID|MPATH], ev_com_expr(MPATH2,P2,V), !. ev_expr([HMPATH|TMPATH],[[ex_monadic,mback],P1],V):- ev_expr(TMPATH,P1,V), /* remove head of machine path */ !. ev_expr(MPATH,[[ex_dyadic,dminus],P1,P2],V):- ev_expr(MPATH,P1,VV1), /* evaluate P1 */ ev_expr(MPATH,P2,VV2), /* evaluate P2 */ V is VV1-VV2, /* operator's own action */ !. ev_expr(MPATH,[[ex_monadic,mminus],P1],V):- ev_expr(MPATH,P1,VV), /* evaluate argument */ V is -VV, /* operator's own action */ !. 1 D expression must be type compatible with tag-expression enum $int1 ... w12 variable declaration $$int1 $y=0; action block var-expression ::= identifier or scoped name expression expr ::= scoped arithmetic expression; includes fixed constants true and false = integer identifier ( value-name [ label-name w11 w22 w21 w2 w13 w12 w11 10actions etc (2 (1 w1 Pair40 Try34 [!in($Fork3.Lying) || !in($Fork4.Lying)] Try34[in($Fork3.Lying) && in($Fork4.Lying)] /fire Pick3; fire Pick4; fire Acq34 Rel34/fire Put3; fire Put4; fire Try23; fire Try40 Req34[!in($Fork3.Lying) || !in($Fork4.Lying)] Re quested Req34[in($Fork3.Lying) && in($Fork4.Lying)] /fire Pick3; fire Pick4; fire Acq34 Reset Pair34 c qa  {clear(q);} p  {trace(y);} a d  {trace(x);} p  {v1=2;} a d Test Script get trace process event get trace process event state 2  {v1=1;} Sitting Hungry (v=6 Phil2 p Fork3 {fire ;} e  P4_Sit     a d a2,b2, v21  unavail-able avail-able member history data available < history is applicable> < history is not applicable> dho a2,b2, v12 compare ,.., Implementation Under Test (IUT) Model see above recursive outer loop on worlds recursion worlds worlds worlds process meta-event sequence in (tail) worlds worlds tock here, we generate more notifications here, we stop generating notifications fork nondeterminism 3/w++ p commented out for performance reasons p exit(x.b.b1.u{v=v*10+6;}) exit(x.b.b1.s) {v=v*10+5;} exit(x.b.b1.q) {v=v*10+4;} exit(x.a.a1.n) {v=v*10+3;} exit(x.a.a1.l) {v=v*10+2;} enter($a.a1) 2 4/w++; 1 aaa aab a 3/w++; ab 2 see discussion aa 1/w++ {u=0;v=0;w=0;} exit(x.a.a1.j) {v=v*10+1;} _neutral neutral exq 2 1 2 abb  {u*=10; v*=10;} 1/w++; 2 1 3 4 6 5 (v1 (v1 aba statechart sc (1,2 (1,2 (v=v*10+3 (u=u*10+3   {u*=10;v*=10;}  (v=v*10+4 (u=u*10+2 (v=v*10+5 (u=u*10+1 (v=v*10+5 (u=u*10+1   q tasks: (1 (2 (3 (unguided) from previous page t9 t8 t7 t6 t5 t4 t3 t2 11{v2=v2*10+2;} 10{v2=v2*10+1;} bc bb Pick3 Put3 Held Lying Think-ing Host VnV exu exs exj exn exl z x _x _race, 2 b3 b2 b1 ,_t ,_u ,_r ,_s ,_p ,_q t u b r s q p c3 a b = deep history = (shallow) history = no history (default) D H N b c d a         cluster_1      Acq40 Waiting Eating Phil4 Think-ing Acq34 Waiting Eating Phil3 Think-ing Think-ing Think-ing Try23 [!in($Fork2.Lying) || !in($Fork3.Lying)] Try23[in($Fork2.Lying) && in($Fork3.Lying)] /fire Pick2; fire Pick3; fire Acq23 Rel23/fire Put2; fire Put3; fire Try12; fire Try34 Req23[!in($Fork2.Lying) || !in($Fork3.Lying)] Re quested Req23[in($Fork2.Lying) && in($Fork3.Lying)] /fire Pick2; fire Pick3; fire Acq23 Reset Pair23 Try12 [!in($Fork1.Lying) || !in($Fork2.Lying)] Try12[in($Fork1.Lying) && in($Fork2.Lying)] /fire Pick1; fire Pick2; fire Acq12 Rel12/fire Put1; fire Put2; fire Try01; fire Try23 Req12[!in($Fork1.Lying) || !in($Fork2.Lying)] Re quested Req12[in($Fork1.Lying) && in($Fork2.Lying)] /fire Pick1; fire Pick2; fire Acq12 Reset Pair12 Try01 [!in($Fork0.Lying) || !in($Fork1.Lying)] Try01[in($Fork0.Lying) && in($Fork1.Lying)] /fire Pick0; fire Pick1; fire Acq01 Rel01/fire Put0; fire Put1; fire Try40; fire Try12 Req01[!in($Fork0.Lying) || !in($Fork1.Lying)] Re quested Acq23 Waiting Eating Acq12 Waiting Eating Acq01 Full0 /fire Rel01 Waiting Forks Req01[in($Fork0.Lying) && in($Fork1.Lying)] /fire Pick0; fire Pick1; fire Acq01 Reset Pair01 Fork2 Fork1 Pick2 Put2 Held Lying Pick0 Put0 Held Lying Pick1 Put1 Held Lying Fork0 Phil2 Phil1 Reset OK OK Send Configure Resetting Component Specification Glue code/ Glue tools Test harness Test Report Test case generator Textual Dynamic Model System Under Test Machine Engine Compiler/ Validator College STATECRUNCHER FORK4 FORK3 FORK2 FORK1 FORK0 PHIL3 PHIL4 PHIL0 PHIL1 PHIL2  EMBED MS_ClipArt_Gallery  TorX (VnV is not shown) interacting with the simulator to execute the tests and getting back the results for the verification TorX generating the test cases, executing them on the target and verifying the result. In this case one test (actl3_Set!15!25) passes and another (pgins_StartManualInstallation) fails Statecruncher outputting events and traces Converts abstract tests into real tests System Under Test P4_PickFork4 [in($$Forks. Fork4.Lying)] /fire L4_PickFork4 i c u assigned on transitions in this direction v assigned on transitions in this direction (v=v+"0" (u=u+"3" t13 t12 t11 t10 t1 _a5a 9[f]{v1=v1*10+9;} 8[f]{v1=v1*10+8;} 4[f]{v1=v1*10+4;} 7[t]{v1=v1*10+7;} 5[t]{v1=v1*10+5;} 6[f]{v1=v1*10+6;} 3[f]{v1=v1*10+3;} 13{v2= v2*10+4;} 12{v2= v2*10+3;} baa baaa enter block exit block transitions meta-events con-dition route action block label block transition transition transition upon enter action block action block upon exit state- expression enter state- expression exit event and parameters assignment or function fire parameter list ( (expression) if action block else action block event and parameters ) destination parameter list ->g.(ga/\gc) f ga g gb gc p  q ) state- name cluster name history transition block state 1->$d->e.eb d (1,2 q2 q1 (v1 (u=u*10+4 (v=v*10+2 (pco1 (pco1 (v1 (1,2 (4 (5 2->::s.y.i.ia 1->y%%i.ib 2->ga 1->g 3->$g 2->$g.ga 1->g.ga 3->e 2->$e 4->e.e 1->e 2->b 1->$b (2->d (1->b.d (3->$a (2->ab (1->a.aa ib ia i internal self transitions to-child transition to-sibling transition to-parent transition ab aa a external self-transitions to-parent transition to-child transition e->e disambiguation to-uncle transition to-sibling transition da->b disambiguation to-child transition to-sibling transition b->d disambiguation fb fa f gb ga g  EMBED CorelPhotoPaint.Image.7  s b baab [in(a.a2)] a a2 b1 a1 {fire } L3_PutFork4 Held ByPhil3 L3_PickFork4 L4_PickFork4 Held ByPhil4 Fork4 Lying L3_PutFork3 L2_PickFork3 L3_PickFork3 Held ByPhil3 Fork3 Lying L2_PutFork2 L1_PutFork2 Held ByPhil1 L1_PickFork2 L2_PickFork2 Held ByPhil2 Fork2 Lying L1_PutFork1 L0_PutFork1 Held ByPhil0 L0_PickFork1 or process() ... process() return processing  is equivalent to processing  and  on the right b  b1 b2 Joblist: process  process   s a a1 a2 b  b1 b2  {fire ;} s a (fire 1  -> $b.ba{fire ;} b ba a ab (fire 4 t8 t7 ->g ->f g f e c1 (v=0 t6 t5 [in$x.a]->d c d y x s [in$y.c]->b a b c1  t4 c d t3 b y x s  a (v=0 t2 t1 [v==0]->d c d y x s ->b {v=2} a b d1 d11 d12 {fire } d! ba b eb e! e b! da d y 5->mc mca mbb mc 3->mab 4->$ma.mab 2->$mb.mbb 1->$mb Notes: 1. Although some of the above transitions are illegal (they cross set member boundaries), a means of referencing states in co-members is needed under other circumstances: specifying a state for the in(...) function, and in orbital transitions (e.g. the transition on 2 would be legal if it were orbital). 2. ma, mb, mc are clusters, denoted in alternative notations. mb ma mbb mbb mba mab maa m $$1->ka 1->kb kb initial worlds w1 w2 w3 Process_task_in_world Given an input world and kind of task, switch on kind of task Case transition: call process_transition Case fired event: call process_event Case expression( incl. assignment): call process_expression Case conditional: call process_conditional_action Case enter-state housekeeping: call process_enter_state_housekeeping Case exit-state housekeeping: call process_exit_state_housekeeping a a1 ,_m ,_n ,_k ,_l ,_i ,_j m n a m checks (pco_comp (pco_ext server k {fire return;} S2 S1 client comp {fire ;} (1,2 return exit($a.p) p2 p1   a1 b1 a exit($a.a1) b s C3 event  l j i _race, 1  da System test Module design System design Requirements Coding Test report A orbitality N H D vacant occupied a1 processing  is equivalent to processing     on the right a2  a(set) cluster occupancy history mark in current cluster sub- orbital a2 y history no_ history deep_ history x no-orbit or at-orbit or super- orbital the diagram applies to having entered the current cluster, and to selecting which member state to enter next 6. follow guide dho:=no chg 5. follow guide dho:=no chg 4. follow guide dho:=false 3. follow guide dho:=true 2. follow guide dho:=true 1. follow guide dho:=false START unguided next diagram A orbitality vacant occupied target occupancy sub- orbital no-orbit or at-orbit or super- orbital orbitality N H D or vacant occupied target occupancy history mark in current cluster? guide mode guided   a2 b2 c2 c k j d q2 q1 applies to cluster y w3 (fire 21 statechart sc s x y a aa ab 01->ab{fire 11} 02->aa z Chain of broadcasts a aa ab 11->ab{fire 21} 12->aa a aa ab 21->ab 22->aa One cycle b ba bb 01->bb{fire 11} 02->ba b ba bb 11->bb{fire 21} 12->ba b ba bb 21->bb{fire 02} 22->ba c ca cb 01->cb 02->ca Upon enter broadcast chain immediately circular d da db 01->db{fire 02} 02->da c ca cb 11->cb 12->ca (fire 11 (fire 12 c ca cb 21->cb 22->ca d da db 11->db 12->da 5actions etc. circular on entry d d2 d21 d22  s a a1 a2 b {fire ;} b1 b2 {fire ; fire ;} s a t3 t2 t1 d22 d21 d2 d exit($d1.d11)  d12 d11 d1 t4 exit (b.c.d.d1.d11) exit($a.b.c.d.d1.d11) c1 a1 b1 z2 z1 z s c b a t3 t1  d2 d1 d exit(b.c.d.d1) c1 a1 b1 c b a  a a2 b1 x a1 {fire ;} in-flight: actions are executed while the transition is at its highest point after landing: actions are executed when target states have been entered b a a2 b1 b2 x a1 {actions} exit(aa.aaa) aa aab ac ab a aaa  ({fire ;} b a s  -> bb  -> ab bb ba aa ab Fork4 b a s enter($a.ab)->bb  -> ab bb ba aa ab d1 d11 ab aa ba bb  -> bb s a b ->ab{fire ;} ({fire ;} {v=v-1;fire ;} [v>1]{fire ;} 4[f]{v1=v1*10+4;} 7[t]{v1=v1*10+7;} 5[t]{v1=v1*10+5;} 6[f]{v1=v1*10+6;} 3[f]{v1=v1*10+3;} 2[t]{v1=v1*10+2;} 1[f]{v1=v1*10+1;} 11{v2=v2*10+2;} 10{v2=v2*10+1;} bc bb s b (v=v+"8" (u=u+"1" s b a 1eff 2eff sy commented out for performance reasons (v=v*10+5 (v=v*10+6 a1 b2 (v=v*10+4 Held ByPhil4 Note head first worlds 1 and 2 are merged first (1 (2 (3 similarly P4_PickFork0 [in($$Forks. Fork0.Lying)] /fire L4_PickFork0 w3111 w2742 w2522 w1227 w1223 w1212 w1112 w1111 P4_PutFork4 /fire L4_PutFork4 w3122 w3111 w2742 w2522 w1227 w1223 w1212 w1112 w1111 w2742 w2522 w2111 w1227 w1223 w1212 w1112 w1111 w1227 w1223 w1221 w1212 Standing b a w1112 w1111 Note head first - worlds 1 and 2 are merged first w1212 w1211 w1113 w1112 type declaration enum ; tag-expression ::= identifier or scoped name expression tag- expression , (v=v*10+2 , @ pco- expression event ; event- expression event_declarations pco-expression ::= identifier or scoped name expression event-expression ::= identifier or scoped name expression set pco_declarations expression PCO cluster ; in CAPITALS! pco-expression ::= identifier or scoped name expression pco- expresssion  a b c d j2 w1111 (v=v*10+3 (v=v*10+1 _race, 2 d12 (3 _race, 1  b3 b2 (u=u*10+5 (v=v*10+1 , identifier = else action block , action block ) statechart sc transition exit block { d exit($d1.d11) }  13->$b->$b.ba.bab (not orbital enough to be legal) cb ca ea eb b1 a1,b1, v0 ,_t Standing P1_PickFork2 [in($$Forks. Fork2.Lying)] /fire L1_PickFork2 P1_PutFork1 /fire L1_PutFork1 P1_PutFork2 /fire L1_PutFork2 ,_u OneFork Satiated ,_r P1_PickFork1 [in($$Forks. Fork1.Lying)] /fire L1_PickFork1 ,_s ,_p ,_q t u P1_Sit Eating OneFork Hungry Sitting Hungry Phil1 (u=u+"0" (v=v+"3" (u=u+"8" (v=v+"1" (u=u+"6" (v=v+"5" (u=u+"9" (v=v+"4" (u=u+"7" (v=v+"2" (u=u+"0" (v=v+"3" (u=u+"8" (v=v+"1" i1 i2 j1 j2 t b t1 1->$y->a.b.c orbit=[y,x,sc] 2->$$c->$$c orbit=[c,b,a,y,x,sc] r Primitive compilation bab baba babb bac baca bacb ba 2[t]{v1=v1*10+2;} _ba {u="";v="";} 1->$$$b->$$c orbit=[b,a,y,x,sc]  1[f]{v1=v1*10+1;} t1 Standing ka k scoped event Notes 1. The more local 1 is found by outbound search; 2. $$ is needed to reference the outer 1. db 2->za 1->zb z self transition of son self transition of parent complex expression to denote destination to-cousin transition to-nephew transition to-uncle transition zb za s Notes: Exclamation marks on names are attention-drawing, not syntactical Transitions are shown with explicit target state expressions statechart sc w122 w112 w111 OneFork Satiated w132 w131 w122 w121 t2 w113 w112 w111 w13 w12 w11 (1 (2 (3 similarly w122 w112 w111 (2 w3 w2 (1 w1 tasks: (1 (2 (3 initial worlds w1 w2 w3 L4_PutFork0 P4_PutFork0 /fire L4_PutFork0  detail level 5actions etc. 10actions etc. upon exit action upon enter action transition Process task sequences in worlds /*---------------------------------------------*/ /* no sequences, OUTWORLDS:=INWORLDS */ /*---------------------------------------------*/ me_process_task_seqs_in_worlds_algB([],INWORLDS,INWORLDS):- me_set_world_and_bag(INWORLDS), !. /*---------------------------------------------*/ /* one sequence, many worlds */ /*---------------------------------------------*/ me_process_task_seqs_in_worlds_algB([TSEQ],INWORLDS,OUTWORLDS):- !, /* this must be the ONLY way to handle one sequence, many worlds */ me_process_task_seq_in_worlds(TSEQ, INWORLDS,OUTWORLDS), me_set_world_and_bag(OUTWORLDS), !. /*---------------------------------------------*/ /* many sequences, many worlds */ /*---------------------------------------------*/ me_process_task_seqs_in_worlds_algB([H_TSEQ|T_TSEQS],INWORLDS,OUTWORLDS):- me_process_task_seqs_in_worlds_algB(T_TSEQS,INWORLDS,OUTWORLDS1), me_process_task_seq_in_worlds(H_TSEQ,INWORLDS,OUTWORLDS2), /*care,INWORLDS!*/ me_merge_worlds(OUTWORLDS1,OUTWORLDS2,OUTWORLDS), me_set_world_and_bag(OUTWORLDS), !. s Process task in worlds /*--------------------*/ /* no worlds */ /*--------------------*/ me_process_task_in_worlds(_,[],[]):- !. /*--------------------*/ /* one world */ /*--------------------*/ me_process_task_in_worlds(TASK,[WORLD],OUTWORLDS):- !, /* this must be the ONLY way to handle one task, one world */ da_write_world(WORLD), me_process_task_in_world(TASK,WORLD,OUTWORLDS), /* calls client handler */ me_set_world_and_bag(OUTWORLDS), !. /*--------------------*/ /* many worlds */ /*--------------------*/ me_process_task_in_worlds(TASK,[H_INWORLD|T_INWORLDS],OUTWORLDS):- me_process_task_in_worlds(TASK,T_INWORLDS,OUTWORLDS1), da_write_world(H_INWORLD), me_process_task_in_world(TASK,H_INWORLD,OUTWORLDS2),/*calls client handler*/ me_merge_worlds(OUTWORLDS1,OUTWORLDS2,OUTWORLDS), me_set_world_and_bag(OUTWORLDS), !. q Process task sequence in worlds /*---------------------------------------------*/ /* no tasks, OUTWORLDS:=INWORLDS */ /*---------------------------------------------*/ me_process_task_seq_in_worlds_algB([],INWORLDS,INWORLDS):- me_set_world_and_bag(INWORLDS), !. /*---------------------------------------------*/ /* one task, many worlds */ /*---------------------------------------------*/ me_process_task_seq_in_worlds_algB([TASK],INWORLDS,OUTWORLDS):- !, /* this must be the ONLY way to handle one task, many worlds */ me_process_task_in_worlds(TASK, INWORLDS,OUTWORLDS), me_set_world_and_bag(OUTWORLDS), !. /*---------------------------------------------*/ /* many tasks, many worlds */ /*---------------------------------------------*/ me_process_task_seq_in_worlds_algB([H_TASK|T_TASKS],INWORLDS,OUTWORLDS):- me_process_task_seq_in_worlds_algB(T_TASKS,INWORLDS,OUTWORLDS1), me_process_task_in_worlds(H_TASK,OUTWORLDS1,OUTWORLDS2), me_merge_worlds(OUTWORLDS2,OUTWORLDS), me_set_world_and_bag(OUTWORLDS), !. p a3 a2 a1 ,_m Note tail first - world 1 is merged in last ,_n worlds worlds worlds generic level fine detail level implementation level   (fired) event event fire exit state event fire enter state event meta-event s if no route or action block, first square bracket must introduce a condition t2 a3 a2 a3 (u=u*10+5 (v=v*10+1 2->c->c orbit=[c,b,a,y,x,sc] 1->$b->c orbit=[b,a,y,x,sc] t1 t2 2->a->a.b.c orbit=[a,y,x,sc] e t2 2->::x.y.a->::x.y.a.b.c orbit=[y,x,sc] t3 t3 t3 t3 t1 3->$$c 3->a.b.c 3->c s r q p d c b worlds process transition sequences in world select_transitions process event in world see below a2 recursive recursion worlds worlds worlds each world will generate something completely unrelated to what is generated in the other worlds process (same) event in (tail) worlds process (same) event in (head) world process event in worlds indirect recursion ,_k ,_l ,_i ,_j m n a k l j gen_notifs notif / trace(notif_msg) station_found tuning gen_notifs / fire notif; n--; if (n>0) {fire gen_notifs;} tuned (n=4 start_tuning/ fire gen_notifs idle prog_inst thread starts thread ends completion notification progress notification progress notification initial call server function client function any worlds produced here that conflict with the trace provided are killed potential recursion, e.g. when a transition task fires a new event process_task_seqs_in_worlds (many task sequences in many worlds) process_task_seq_in_worlds (one task sequence in many worlds) process_task_in_world (client handler) (one task in one world) process_task_in_worlds (one task in many worlds) { Gi= u3 t3 s3 t2 s2 t1 s1 q2 p2 r1 q1 p1 b3 b2 _a5b b1 a2 a1 b B A  a S (v=0 b (v=v*10+4 (v=v*10+5  {v=0}    (v=v*10+3 (v=v*10+2 a (v=v*10+1 (v=v*10+5 (v=v*10+4 _a5b b2 b2 a5b a5b a5a a4 i1 i2 j1 j2 j i c Full4 /fire Rel40 Pang4 /fire Req40 a1 Full3 /fire Rel34 Pang3 /fire Req34 a5a babbb babba baaab Eating We process event  in 3 worlds. The transition sequences per world to process are: w1: 5,10 10,5 w2: 6,10 10,6 w3: 6,10 10,6 6,7 7,6 baaaa baaba baabb babab babaa babaa babab babba babbb baaab P0_PutFork1 /fire L0_PutFork1 baaaa baabb baaba babba babbb babaa babab baabb baabb baaaa baaab baaab baaaa baba babbb babba babb babab babaa babb baba b1 a2 P0_Sit bab baaab baaaa baabb baaba baaa baabb baaba baab OneFork Satiated P0_PickFork0 [in($$Forks. Fork0.Lying)] /fire L0_PickFork0 baab baaa System Under Test baa babab babaa baaa baabb baaba baab {fire ;} baaab baaaa {fire ;} baab baaa baa babab babaa babbb babba {fire ;} {fire ;} b a a1 b2 b1 P3_Stand a2 [a2,a10] [a2,a11] [a2,a12,a13] [a5,a10] [a5,a11] [a5,a12,a13] [a7,a10] [a7,a11] [a7,a12,a13] P2_Stand /* Each/One-walker data */ eodata1(X):- X= [from_each, [from_one, [from_one,a2], [from_one,a5,a7]], [from_one, [from_one,a10,a11], [from_each, [from_one,a12], [from_one,a13]]]]. /* Each/One Walker */ eowalk(X,X):- atom(X). eowalk([from_one|T],X):- gn_member(M,T), eowalk(M,X). eowalk([from_each|T],X):- eowalks(T,X). eowalks([],[]). eowalks([H|T],[LH|LT]):- eowalk(H,LH), eowalks(T,LT). /* Walk the example data */ go_eo:- eodata1(X), eowalk(X,Y), gn_flatten(Y,W), write(W),nl, fail. P1_Stand i sy t3 c2 t4 2 2[C4] t2 1[C2] babb baba bab 3.2 bold font in a leafstate name indicates an occupied state bb ba L1_PickFork1 3 b2 t1 2[C3] c1 3.1 m baa baab baaa 1 babb baba 1[C1] b1 baba babbb babba babb babb baba bab ba exit babbb exit babab exit baabb exit baaab exit babba exit babaa exit baaba exit baaaa exit babb exit baba exit baab exit baa exit bab exit baaa exit ba various states and transitions: P0_Stand Sitting Satiated Sitting Satiated Sitting Satiated Sitting Satiated Sitting Satiated Philosophers 1, 2, 3, 4, 5, 6, 7, 8, 9  EMBED Visio.Drawing.5  f P0_PutFork0 /fire L0_PutFork0 worlds after merging Option: an extra cluster layer is introduced in a variant model. This layer is not considered present in the descriptions. (t) babb babba babbb baba babaa bab babab baab baaba baabb baaa baaaa baa baaab ba _ba 11{v2=v2*10+2;} 10{v2=v2*10+1;} bc bb Fork nondeterminism to generate a stop step and a continue step Race nondeterminism to generate interleavings of external events (PCO_...) and internal events (tick) Fork nondeterminism to continue or terminate at every possible step. No counter needed as tocks are not generated indefinitely StartClock P0_PickFork1 [in($$Forks. Fork1.Lying)] /fire L0_PickFork1 StartClock tock (fire tick (fire StartClock PCO_pgins_stopmanualinstallation PCO_pgins_startmanualinstallation clockidle searching controllable_function_handler s b a1 clockactive starting  PCO_pgins_stopmanualinstallation/ fire pgins_stopmanualinstallation PCO_pgins_startmanualinstallation/ fire pgins_startmanualinstallation clock prov_fun tick/ fire pgins_onstationNamefound; fire tock; tick/ fire pgins_onstationfound; fire tock; tick/ fire pgins_onstationfound; fire tock; pgins_startmanualinstallation pgins_stopmanualinstallation TvSystemDetected tuned idle a {fire 2;} {fire 1;} p {fire ;} c2 t4 [C4] t2 3->$aa->aaa bab bb 3 ba baab baaa baa Held ByPhil1 1 (v=v+"6" (u=u+"5"  worlds before merging Compare. Accept a match of any sack in Model with IUT sack pgins_stopmanualinstallation 2 a4 a1 worlds pgins_stopmanualinstallation composition tick/ fire tock; 5 see discussion  p p2 p1 a statechart sc(s) event alpha,beta,gamma,delta,epsilon,eta; event setv; event zeta1,zeta2; enum int1 {0,..,10000}; int1 u=0,v=0,w=0; set s(a,z) cluster a(a1,a2) {setv(v); eta->a.a1 {u=v=w=0; fire zeta1;}; } state a1 \ {alpha [in($z.xxx.z2) && (v==0)]->a2; \ beta-> a2 {if (in($z.z2) && (v==0)) {w=w*10+1;} }; \ gamma-> a2 {if (v%2==1) {w=w*10+2;w=w*10+3;} \ else {w=w*10+4;w=w*10+5;} }; \ \ delta-> a2 {if (v%2==1) \ {if (v==3) {w=w*10+1;} else {w=w*10+2;}} \ else \ {if (v==4) {w=w*10+3;} else {w=w*10+4;}} }; \ epsilon->a2 {if (v%2==1) {fire zeta2;}}; } state a2 {upon enter { if(v>5) {u=u*10+1;} else {u=u*10+2;}} } cluster z(z1,z2) {zeta2->z.z2; zeta1->z.z1;} state z1; state z2; statechart sc(s) event alpha,beta,gamma; set s(a,b) cluster a(a1,p,q) state a1 {alpha->p.p2;} cluster p(p1,p2) {alpha->q.q2;} state p1 {beta->p2;} state p2 {beta->p1;} cluster q(q1,q2) {alpha->a1;} state q1 {beta->q2;} state q2 {beta->q1;} cluster b(b1,j) {gamma->b.b1;} state b1 {exit ($a.a1)-> j.j1; \ exit ($a.p) -> j.j2; \ enter ($a.a1)-> j.j3; } cluster j(j1,j2,j3) state j1; state j2; state j3; C2  b aaa x aba x ac ab aa aca acb a a s ab p pba pbb pb paa pab pa q aba worlds process (tail) task sequence in (above) worlds Model of System under Test qbb qb qaa qab qa tt aa t transition block x=$y+1;  ->aa.(p.pb.pba/\t.q.(qa.qaa/\qb.qbb)) statechart sc process (head) task in world 1 y 2->aaa 1->::x->::x.y.a.b.c orbit=[x,sc] 3->$$a.b.c a x (n=n*10+1 (x=x*10+1 (n=n*10+1 (x=x*10+1 statechart sc Fork1 event naming in example  Test Harness  no TnCA-1t TnCA-1s orbit-1t orbit-1s 2 1 orb( TnCA or no orbit orb> TnCA (high orbit) orbit-TnCA Sor/Tar no   yes no yes yes no no attempt common tree removal? TnCA TnCA orbit-1t orbit-1s TnCA TnCA TnCA TnCA orbit-1t orbit-1s orbit-1t Extract the state information and outputs events and traces TorX IUT-Implementation Under Test Model 8 7 6 5 4 3 case orb( TnCA or no orbit orb> TnCA (high orbit) orb( TnCA or no orbit orb> TnCA (high orbit) orb( TnCA or no orbit orb> TnCA (high orbit) orbit-TnCA orbit-TnCA orbit-TnCA SorTar orbit-1s enter-scope= exit-scope=   b2 b b1 s  f f1 f2 e e1 e2 d d1 d2 c c1 c2 a Deep history is only  seen if the effective transition arc actually enters the deep history cluster. In STATECRUNCHER, history is recorded on cluster exit. So it is still present on subsequent cluster entry. We therefore take the current cluster to act as a more recent equivalent to history than the formal historical cluster, when dealing with a target cluster that is already occupied. historical state p3 historical cluster 3eff 2 1eff 1 3 occupied state q p historical state D a q1 q2 p1 p2 historical state p3 historical cluster 3eff 2 2eff 1 3 occupied state q p historical state D k q1 q2 p1 p2 1 6 4 occupied state q p historical state D b q1 q2 p1 p2  -> $$$s ->$b ->d D ->t t c f2 b s ->c f f1 e e1 e2 d d1 d2 c c1 c2 a 1 b s ->$b.e f f1 f2 e e1 e2 d d1 d2 c c1 c2 a see below process transition sequences in world process (head) transition sequence in world process (tail) transition sequences in (same) world process each sequence in an identical clone of the world given worlds worlds recursion worlds recursive see below process transition sequence in world process (head) transition in world process (tail) transition sequence in (above) worlds each transition will produce many worlds - through set transit nondeterminism or broadcast event nondeterminism worlds worlds see below see below (this is new) indirect recursion process transition sequence in worlds process transition sequence in (head) world process transition sequence in (tail) worlds worlds worlds worlds recursion outer loop on worlds recursive see above process transition sequence in worlds process (head) transition in worlds process (tail) transition sequence in (above) worlds process meta-event sequence in (head) world process meta-event sequence in worlds worlds recursion outer loop on transitions recursive see below process transition in worlds process (same) transition in (head) world process (same) transition in (tail) worlds each world will generate something completely unrelated to what is generated in the other worlds worlds worlds worlds recursion recursive see below world clone world (and apply subsequent operations to it) prepare all "tasks" (from the exit and enter tree) process upon enter action sequences in worlds process meta-event enter sequences in worlds process transition action sequence in worlds process upon exit action sequences in worlds process meta-event exit sequences in (this) world process first housekeeping enter sequence in (cloned) world process first housekeeping exit sequence in (cloned) world worlds worlds worlds worlds worlds process transition in world There are many different exit and enter orderings due to set-transit nondeterminism. These exit and enter sequences, as housekeeping (simple exit/enter occupancy setting) exercises, will all produce the same effect, since ordering has no consequence. So we may as well just do any one sequence (the first). Only when actions and meta-events are executed do differences appear. To correspond precisely to the sequencing described in section 6, meta-event exit sequences and upon-exit sequences should alternate hierarchical level by hierarchical level but in Release 1.06 are simply as shown. Similar ordering applies to enter sequences. process h-keep task sequence in world process (head) h-keep task in world process (tail) h-keep task sequence in (above) world all executed in current world no clone needed as caller clones recursion elementary operation no world generation recursion process meta-event sequences in worlds process meta-event sequences in (head) world process meta-event sequences in (tail) worlds worlds worlds worlds recursion outer loop on worlds recursive see below process meta-event sequences in worlds process (head) meta-event sequence in worlds process (tail) meta-event sequences in (same) worlds worlds worlds worlds recursion outer loop on meta-event sequences recursive see below Process meta-event sequences in world process (head) meta-event sequence in world process (tail) meta-event sequences in (same) world worlds worlds recursive see below worlds recursion tick/ fire pgins_onstationnotfound; fire tock; Process meta-event sequence in worlds process (head) meta-event in worlds process (tail) meta-event sequence in (above) worlds programinstallation Notification handler: responds to fired pginsN_ events (not shown in diagram) and converts them to traces worlds worlds recursion outer loop on meta-events recursive see below process meta-event sequence in world process (head) meta-event in world process (tail) meta-event sequence in (above) worlds L0_PickFork0 worlds worlds indirect recursion indirect recursion - see above see below Process action in world clone world actual processing of action (in clone) (cloned) world Process action in world process event in world worlds action= event process action in world worlds conditional action condition true? return input world world indirect recursion no yes could be local or delegated action event in worlds event in world task sequences in world task sequences in world - options task sequences in worlds algA task sequences in worlds algB task sequences in worlds - options task sequence in worlds - options task sequence in worlds algA task sequence in worlds algB task in worlds task in world (CLIENT HANDLER) task sequence in world process event as task in worlds, see below wrap the world in a list or or (task sequences in worlds) on a transition or client handler. Gives rise to a set of transition (=task) sequences. [C2] b2 t3 t1 [C3] c1 m [C1] b1 a t2 t1 [!in(m.a)] b2 m  b1 a t2 t1  b2 m  b1 a   b2 b1 a 2->aa.aab 4->a.aa 3->$$$y->$ab 2 1 z zb za ( n=n*10+2 ( x=x*10+2 ( n=n*10+3 ( x=x*10+3 4->$$y->aa.aab 3-> $a 2->$y->a.aa 1->$$y ->$a a 5->::$sc->aab orbit=[sc] 3->$$$y->aab b ab 2->$$a->aab 1->aab aab aaa aa y s (n=0 (x=0 statechart sc Integration test Module test tests tests tests Card OK Disconnect Connect RemoveCard InsertCard No_Card Connected conditional transition  [in($z.z2)&&v==0] State Behaviour Model (SBM) Implementation Under Test (IUT) compare set state process event get state set state process event get state Test Script Pang0 /fire Req01 Eating Phil0 Philosophers College Phil0 P0_PickFork0 [in($$Philosophers. Phil1. SittingHungry)] OneFork Hungry P0_PickFork0 [in($$Forks. Fork0.Lying)] Sitting Hungry Held ByPhil0 Fork0 Lying server client set beta alpha/fire beta state9 state8 state3 state1 server client set d a ->d ->cl ->c ->$cl cl c b ->$a ->cl.c ->a ->cl.d p q b1 b a b2 b3 r s t u       ->b.b1 ->$a ->b.(b1.q/\b3.t) ->b.(b1.q/\b2.r/\b3.u) ->$$a ->a ->b c b enter($x.y)->c c b ->c {i=i*j+3;} (n=n*10+1 (x=x*10+1 b [(i+j>4)&&!in($x.y)]->c c (i)[i>j]->c b c d (i)[i<=j]->d c b ->c {fire ; i=j;} (fire  (fire  ->c {if (in($z.y) && i==0) {w=w*10+1;} } b c c b p {v=v+1;} c b p ->$$s->c ->c e d exit($p) q s  q b1 b  a p b2     {clear(b);} D b a {trace(i+3);} MiscellaneousErrors t3 t2 t1 a1 {v=0;}     (v=v*10+1 (v=v*10+3 (v=v*10+2 (v=v*10+5 (v=v*10+4 (v=v*10+6 (v=v*10+7 enter($c.c3) z3 z2 z1 enter($b.b2.p.p1) p1 p2 q1 q2 q p b2  c3 b a2 a1 ->a2 {fire ;} c2 c1  z c s b1  a     b2 b1 z3 z2 z1 a2 a1 b enter($b.b2) enter($a.a2)  z s a   {v=0;}  {v=v*10+2;} b2 b1 b a2 a1 j j3 j1  EMBED Visio.Drawing.5   EMBED Visio.Drawing.5   {v=v*10+1;} s a (v=v+"9"(u=u+"4" (v=v+"7" (u=u+"2" (v=v+"0" (u=u+"3" (v=v+"8" (u=u+"1" p1 p2 q1 q2 q p b a     c3 c2 c1   b2 b1  {v=v*10+3}  {v=v*10+2}   (v=v*10+4 d4 (v=v*10+1  {v=v*10+1+1} d3 d2 a  {v=0;} m Compare. Accept a match of any sack in Model with IUT sack IUT-Implementation Under Test Model EXPLORER Test Oracle e.g. STATECRUNCHER PRIMER Test case generator DRIVER Controls test process & produces log ADAPTER Abstract to concrete & interface to IUT IUT Implementation Under Test unconditional transition, conditional action  if (in($z.z2)&&v==0){w=w*10+1;} reset for next demo-transition  {u=0; v=0; w=0;fire 1;} a2 ( if v>5 u=u*10+1 else u=u*10+2 (u=0 v=0 w=0 R9demnHTWc =Kb f w M N S _ !-8D "#$%&'*+>?@YZ[\]^̼¦¦j{UmHnHuaJmHnHujUmHnHu mHnHuCJaJmHnHuaJ0mHnHu jU5CJ05CJ 655CJ$CJCJCJjUmHnHuCJ*<Refg6789CDELJJdK] G]^wǂ#Edmnb c d e f w x X Y d e N O }~ & FF$$a$$L'^_#iN;s<~ p ^ab~"#?@AZ[\]^_ab}~jUmHnHuaJ0mHnHujgUmHnHujUmHnHujqUmHnHujUmHnHujUmHnHu mHnHuCJaJmHnHuaJmHnHu8 !"#&'HIJcdeghilmjIUmHnHujUmHnHujSUmHnHuaJmHnHsH ujUmHnHuaJmHnHuj]UmHnHujUmHnHu mHnHuaJ0mHnHuCJaJmHnHu4-./HIJLMNQRijk5ݫݓj5UmHnHuaJmHnHsH ujUmHnHuaJ0mHnHuj?UmHnHujUmHnHu mHnHuaJmHnHuCJaJmHnHujUmHnHu45679:;>?RSTmnoqrsvw678:;<?@]^_xככככj UmHnHuaJmHnHuj! UmHnHujUmHnHuj+UmHnHuaJmHnHsH uCJaJmHnHu mHnHujUmHnHujUmHnHu7xyz|}~-./12378\]^wxy{|}j UmHnHuj UmHnHuj UmHnHuj UmHnHuaJmHnHuCJaJmHnHu mHnHujUmHnHuj UmHnHu7~3},iY"]G+\  p   &'(*+,/0HIJcdeghilm׹׹׹׹׹׹׹׹jjUmHnHuj UmHnHujt UmHnHuaJmHnHuj UmHnHuaJ0mHnHuCJaJmHnHu mHnHujUmHnHuj~ UmHnHu7 89:STUWXY\] !"$%;<=V׏׏aJ0mHnHujUmHnHujVUmHnHujUmHnHuj`UmHnHuaJmHnHuCJaJmHnHu mHnHujUmHnHujUmHnHu7VWX[\]`ahij  %&'@ABEFGJKϩϩj8UmHnHujUmHnHu6aJmHnHujBUmHnHujUmHnHuaJmHnHuCJaJmHnHu mHnHujUmHnHujLUmHnHu7Kmno   $%&)*+./qrsθθjUmHnHuj$UmHnHujUmHnHuaJ0mHnHuj.UmHnHuCJaJmHnHujUmHnHujUmHnHu mHnHuaJmHnHu8  :;<UVWZ[\_`qrs   %&֜֜֜֜jUmHnHuaJ0mHnHujUmHnHujUmHnHujUmHnHuaJmHnHuCJaJmHnHujUmHnHujUmHnHu mHnHu8Gv,  !?!v!!!0"`"b"c"n"o"p"M$If0$If  p &'@ABEFGJKTUVopqtuvyz % & ' * + , ϩjmUmHnHujUmHnHu6aJmHnHujwUmHnHujUmHnHuaJmHnHuCJaJmHnHujUmHnHu mHnHujUmHnHu5, / 0 ] ^ _ x y z } ~  !!!!!! ! !!!!8!9!:!=!>!?!C!D!T!U!V!o!p!q!t!u!v!y!jUmHnHujYUmHnHujUmHnHujcUmHnHuaJmHnHujUmHnHujUmHnHu mHnHuCJaJmHnHuaJ0mHnHu8y!z!!!!!!!!!!!!!!!!!!!!!!!""")"*"+"."/"0"3"4">"?"@"Y"Z"["^"_"`"a"c"n"""7#C#####9$J$CJ56 jUjUmHnHujEUmHnHujUmHnHuaJmHnHujOUmHnHujUmHnHu mHnHuaJ0mHnHuCJaJmHnHu8p"q"r"s"t"u"""""""""""##XN$IfM$IfY$$IfG4F^ !}    4 Ga#### ##!#T#U#V#W#X#Y#d#r####0N$IfY$$IfG4F^ !}    4 GaM$If############ $$3$4$5$6$N$IfY$$IfG4F^ !}    4 GaM$If6$7$8$9$I$J$K$L$M$N$O$P$a$n$$$$$LM$IfY$$IfG4F^ !}    4 GaN$IfJ$o${$$$%%5%A%K%q%}%%%&& ' '(+;+++//0a000222 3%31333444444T5U5m5n5o5q5r555554656A6\6666666667"7*78777B:R:;<>>'>2>v> j0J"U 56CJj;U jU5CJ5j5UmHnHu566CJ6CJN$$$$$$$$$$$$$L%M%N%O%P%N$IfY$$IfG4F^ !}    4 GaM$IfP%Q%b%p%%%%%%%%%%%%%%%LM$IfN$IfY$$IfG4F^ !}    4 Ga%%%&&&&&)&=&))**J2K2l23lTY$$IfG4F^ !}    4 GaN$If334444444444444u5v553646\6]67779;<D0$/0$a$$<<>>>??@@=@>@FBGBdBwFxFGGG#I$IIIIIIIII$/0v>}>A?M?@@$@=@@@@@@@AA9ABAFATAWAcAAAAAAAABBCyCCCWDcDDDEEyFFFFIIIIIIIII JJKKKlM}MMMNN N3NOOOO"P3P"Q0QRRRRRRDTPT5jUmHnHuj1 UjU jU6 56CJCJ56RIIIIIII J JJK NORRRRRRTTTTTTTTT/ & FG$a$$PTTTTTSU[UUU`VdVVVJWKW\WvWWWYYfZuZu[~[L\d\R]Z].^6^aal?l@lAlBlClDlEl$ Ta$$ElFlGlHlIlJlKlLlMlllooqqrrttuuvvTxUxwxyy & F$  a$$yf{x{ |!|H|q||||||}2}X}`}a}~~~~~ ~ ~ ~ ~*~ $^`a$$ & F) & F & F!|X}_}~~ ~*~+~t~u~~~+Ȃ no25AHVckȆʆІۆ8؇߇:Rňƈވ߈&0QVNpOJQJhmH sH j U jU56 6mH sH 65jUmHnHumH sH  CJOJQJ5CJI*~+~t~v~w~x~y~z~{~|~}~~~~~~~~~~Ȃɂnpqrstu$ & F$a$$ & Fuvwxyz{|}~45AHU$If/$a$$ & FUVcksx|||$If|$$IflF b  2 0    4 lastL|||$If|$$IflF b20    4 laȆʆ͆ΆІl|||x|||8|||X|$If|$$IflF b20    4 laІۆ89|x|zxvvvt?/|$$IflF b20    4 la$If #$8<>@Bvx|~ҏԏ$ C a$$ 68:xzҏ.0LNRT^dАҐ֐ؐܐސ $(,6:<%-PV<>RT"fjtx 48BF j0J"U6OJQJ5jUmHnHuOJQJhmH sH  hmH sH Tԏ.>@fg$&ؗ`›=>OoПD$F~dftvUZ #/>ƠǠ ,GSYWe 19S_§ҽұ 5OJQJ55nHo(tHj5UmHnHu CJmH sH 56mH sH  6mH sH mH sH  CJOJQJCJj'!U jUOJQJhmH sH OJQJ6?Z[ §çЧѧ&8$a$/$^§ѧ ĩ$&cdȪͪ3?}"%J!LX~ٲڲ³Ե׵CO\CJ 5OJQJ55nHo(tH 5nHtHjUmHnHu56mH sH OJQJhmH sH OJQJmH sH  6mH sH  CJmH sH PJmH nHsH tH CJOJQJmH sH :8cܨ|} >oԬIJ]ڮ @@q̯pqrstuvwxyz{|}~ $e^e`a$$/Ұ!Qѱ,@^|ڲ۲[\oö/M!P͸;`aĹI)`λ\_uyż Ž οϿտֿ9:MNO%TUZ[ ,ǼOJPJQJmH nHo(sH tHPJmH nHo(sH tHPJmH nHsH tH5 5nHtHjUmHnHu 6mH sH  CJmH sH OJQJmH sH mH sH CJOJQJmH sH :λ6Y|ƼǼ%&J ҿӿԿտ3456789NO$a$$,3G[f\`# 4?02FHJᬝ拝杬{OJQJhmH sH  hmH sH #j!PJUmH nHsH tHjPJUmH nHsH tHPJmH nHo(sH tH CJmH sH 5 5nHtHjUmHnHuOJQJmH sH  6mH sH mH sH PJmH nHsH tHOJPJQJmH nHsH tH0OGH $/$$a$$$%pq*,89:;<=>?@A$a$$J|(*,\j~÷vfvXvX6PJhmH nHsH tHOJPJQJhmH nHsH tH6PJhmH nHo(sH tHPJhmH nHsH tH hmH sH OJQJhmH sH 6PJmH nHo(sH tH5 5nHtHj5UmHnHumH sH PJmH nHsH tH"OJPJQJhmH nHo(sH tHPJhmH nHo(sH tHPJmH nHo(sH tH"7BCJUVWJKW./09:ź}paOaaEOJQJhmH sH #j"PJUmH nHsH tHjPJUmH nHsH tHCJPJmH nHsH tH6PJmH nHo(sH tHPJmH nHo(sH tHmH sH 5 5nHtH5nHo(tHj5PJUmHnHuPJmH nHsH tHPJhmH nHo(sH tHPJhmH nHsH tH6PJhmH nHo(sH tH"OJPJQJhmH nHo(sH tHABVWTXZ\^`b & F$$a$$a$$tv"$LPRTVb/xyYh 34mƺ״״״״״״״״״ƥ565j"U jU 6mH sH 5PJmH nHsH tH 5nHtHjUmHnHumH sH OJQJhmH sH OJPJQJmH nHsH tHPJmH nHsH tH>OP45ijlmnopq$a$$ & Fmyt}>ijks/0123./GHIJK56NֶֶּjUmHnHuj#U6CJj#U jU5 5nHtHjPJUmHnHuCJPJmH nHsH tHPJmH nHsH tHPJmH nHo(sH tH CJOJQJmH sH  CJmH sH 8qrsU$h^ha$$a$$NOPRS{\]aczFGUj ~34 (/78/5 6mH sH mH sH j%Uj$UCJ CJOJQJ5CJOJQJH*5jUmHnHuOJQJ566 jUj $UCUVz{FHIJKLMNOPQRSTUjk$a$/$ds^$^/ "$&(*,.0M$a$$GSU&2hrv<@JNDF,0 ۷۱ۧۧۧۖ OJQJhOJQJ 5OJQJjUmHnHu hmH sH OJQJhmH sH  6mH sH j~%UmH sH jUmH sH 56mH sH  CJmH sH mH sH 5 5nHtHjPJUmHnHuPJmH nHsH tH402vx:    + S |    $ M v       ( L t    M$a$$ *,Bz$&: h j    hjnBDNPVvNPUWYZ_rXZyIKW67?qv6hmH sH CJ6OJQJ5jUmHnHu56 CJmH sH CJOJQJmH sH  CJmH sH mH sH h OJQJhOJQJhmH sH  hmH sH A  E n      jlTVUVvwY[\$a$$M\]^_rs  GHIJ689h^h & FMM$$a$$9:;<=>?qrRT'E D$a$$ TX Vn $@v `@BZ^|!!""""""""8#A#Ǿdzǘ 6mH sH 5 5nHtHjPJUmHnHuPJmH nHsH tHOJQJmH sH mH sH 5hmH sH jUmHnHu6hmH sH CJhmH sH  hmH sH OJQJhmH sH < `b"6!8!"""""""""""""########$$a$A#F#N#####)$*$B$C$D$M$N$V&X&q&s&t&&&&,'8'<'K'j'''' ((((((((N)S)Y)Z))) * *"*+o+p++껵 CJOJQJOJQJ5OJQJmHnHu5mHnHujCJUmHnHuCJ65 5nHtHPJmH nHsH tHOJQJmH sH j%UmH sH jUmH sH  5mH sH jUmHnHu 6mH sH mH sH 2######:%;%q&r&s&u&v&w&x&y&z&{&|&}&~&&&&&N'O'j'w($a$$w(x((((((((((((((((((((((((((("*$a$$"*_***+++++,D,E,-G-w------.1.2._...0000+C,b,c,o,t,,,,-0.1._..R/s///0#0j0o0r1w11%3+344&4(484:4444444X5\5^5b5j5n5p5t5|5555555555.626n6p6z6~6666677H8I88OJQJmH sH OJQJhmH sH  6mH sH mH sH  CJOJQJCJ mHnHuOJQJCJOJQJhmH sH G01112288888888888888888888888$a$$88888888:: ::???????????@@W@Y@^@`@o@p@@@@@@@@@@@@@@@NAPARATAVAXA^A`AAAB#E$E8EYE^E`Eӛ 5OJQJ CJmH sH OJQJmH sH CJOJQJmH sH CJOJQJmH sH CJOJQJhmH sH 55OJQJnHtH 5nHtHPJmH nHsH tHmH sH jUmHnHu=8 ::4:t::&;;;<L<<<<6=v=== >>>m>>>>(?I?X?}????bAcAB8BbBBBBB C#E%E&E'E(E)E*E+E,E-E.E/E0E1E2E3E4E5E$ & FR5E6E7E8E`EaExGzGIIKKKMMMMMMMMMMMMMMMM$a$$`EFF.H0HHH\I^IIIJJJJKMMNZNdNhNNNNNNNNNNNOOOOP&P(P>PLPVP\PPPPPQRRSSTT*T,T^T`TTTTTUUUVVWWWWXXXYPYZYwY~YYYY66hmH sH OJQJ 5OJQJ5jUmHnHu hmH sH OJQJhmH sH QMMMMMMMMMNNNNN N NNNhNjNVV-VVWWWW^$a$$WWWWWWW XXXXXXXXYY7YYYYYYY Z Z:Z]$a$$a$$Y Zl[p[[[[[\\]]X]\]]]]]!^-^^^^^^^^^````,a0a:a>a4b6bbbbbc cidndf fffggUg_gUh^hjjjjkkmmmmno3oeppGqPqUq]qfqyq 6mH sH 56mH sH mH sH 656 5OJQJCJjUmHnHuOJQJhmH sH OJQJ5L]]]]]]]]]]]^^^^^^^^^^^^^^^^dd$a$/$$dwfxfhhizjjktkk0l2lmmmmmmmmmmmmmmmm$DmmmmmmmmnnnoepfqrfrgrssswwUyVyiyyy & F & F$a$$yqr-r{rrrrr ss.sEsQssssscujuu vvvvvvvvwy)yO~[~~~ 89 03?uƃ 0NP΅Ѕ%&CDOJQJhmH sH 5jCJUmHnHuOJQJ6 CJmH sH  6mH sH 56mH sH mH sH NyyySz{{P{|1}e}f}:~;~K~BCH12k & F$ & Fe^e` & Fe^e`$ & Fe^e` & FkCPQuv 02څ= & F$a$$ & FDLMUW_`hjuvԆՆ݆ކ%&./78@BJLWXvwLJȇЇчهڇċŋƋϋЋًڋ   5Vٓj&U hmH sH 5jUmHnHujt&U jUOJQJSΆp:;؋ًۋ܋݋ދߋ  $a$$ & F̌R(pqܑ5Vghjmsy <<$IfM$ & Fe^e`a$$ & FٓړޓŔǔȔʔΔДєҔhqrwxzÖݖߖ9>fm yz{|~-.12348JKOTǛʛ˛͛  hqɝ0: 56>*CJ 56OJQJ j0J"U0J"5H*5H*6Vyz|oDiiiio`iiiioi$If$$Ifl\< TTT04 lal ĖŖȖҖiige?M$$Ifl\< TTT04 lal$If ef|78JK*+ȝɝ/0:;ghr$/:abhrsAEptß !$%,-0145<=@ABJLM^hiŠƠ5?¡áơǡΡϡݡޡ%&:;> j" j6CJ 6 jH*H*OJQJ5CJ 56OJQJUrs?]^hiWXѡҡ:RS/`$>?GIJKMQ_`բ٢    /34NR`pУѣգ9JKz~*+Y[\]fgloqry|~ťƥʥH*OJQJ6H* 6>*CJCJ 56CJ OJQJ5CJCJ566OJQJ jH*OJQJM45Уѣ9Y~ͥΥ+i^ & F/ʥ˥ͥ  "$%+89=>?^_cgj;<HLfghϧѧէ֧&'+2346;CCJ 56CJ 566H*6H*OJQJ j$OJQJOJQJH* j"OJQJ6M&'4C˨STө:fgAg׫"$CN|ɨ'0QũƩǩȩөթ֩שة  :<=>?CHLQUZ^cH* 5OJQJOJQJH* CJOJQJ5CJOJQJY #$+,-.1256=>?ACDEHIPQRSWX[\cdegijknovwxy|}«ëīǫȫ˫̫ӫԫի׫٫ګ۫ޫ߫OJQJH*H*OJQJ`   "$%&)*123478;<CDEGIJKNOVWXY\]`ahijkmopqtu|}~OJQJOJQJH*H*_"Glmݬެ89Gmʮ$%-.bJ[\`$d/$$ & FƬǬȬɬ̬ͬЬѬج٬ڬ۬|ޭ߭89GIOPQTUZ[^_bcjkʮ̮ҮӮծ֮ݮޮ߮   !%-ABbd j56CJ 6>*CJ6OJQJOJQJH*OJQJH*Udeklmnqrw{JLMNQUVXY[\bΰϰװذڰ۰ܰݰް߰  !$:;>j 6>*CJ5jUmHnHu>*OJQJH*CJ 56OJQJ j$OJQJOJQJH* j"L\=>no9:Ҳ12@AT/$ x^x` & F`$a$jkno  /4:;òIJԲղֲٲڲ  2@EFHIKLNOQRTUWXY\]_`bcefhimnqrOJQJ56 jjUmHnHuOJQJH*H*CJ 6>*CJ j6>*CJQTU³01?޴ߴ12:;wbvwXm$x^$^$rtuwxz{}~³ijųƳɳʳ̳ͳϳгҳӳճֳ׳ڳ۳ܳ߳   CJ OJQJOJQJH*_  !"$%'(*+-.@APQ`apqϴѴ&2:;NOwyz OJQJ j$OJQJOJQJH* j" jCJ 566OJQJH*Sbdefimnpqst 1MXZjkmo *,./14;>¸øʸ͸ӸԸظٸܸ޸߸  )3SUWXZ]dg׹ٹڹݹ j5 j j6H*OJQJH*[m*lܸ$%S׹ 0STʺfRTU ^  "#0236:;=>EFpqstvwƺɺʺк ()+,./NQTU\_flȻɻ˻̻λϻ>*OJQJ jH*`:=@AHKRSU]ּؼݼ߼ 34:]cGH{|~ \]cdg$'KVzззЭЭOJQJhmH sH 56hmH sH 6hmH sH CJhmH sH  hmH sH 56>*hmH sH  56>*6>*56jUmHnHu jH*D 4]ؽٽfg&'0CJ$$IfM$/JKSVyzzzzzzzzzzz$$If|$$IflFO O0    4 lal$DTfi  <NRTzJP{"EKqy>?Sp &'(H׹רOJQJ 5OJQJ 56CJ565jUmHnHujj'U jU6CJ56hmH sH h6hmH sH OJQJhmH sH  hmH sH B"#$CDEhirzwusqnw$/?M$|$$IflFO O0    4 lal$$If  ;<Jzzzzzzzzzz$$If|$$IflFO O0    4 lalJNxyzz{{|zwusqqqoqq/?/$|$$IflFO O0    4 lal$$If |>@ABCDEFGHIJKLMNOPQRSpqr$$IfT$$$a$ k$$IfG40 504 Ga$If$$If(cx$Ifk$$IfG40 5  04 GaHc  gsMY 09,8{4lW[xeq\hl3@;@EROJQJhmH sH  5OJQJjUmHnHu5j5UmHnHu56CJ6CJOJQJ6M  >?09: & F & F?Mk$$IfG40 504 GayzklfgSTWX$/cd$a$$w >Me> & F$a$$R^h>Ua+,-67'(-9:012Z_ay"#;<=FGƻƵ̮̮̫jV)UCJ 56>*6 5OJQJjUmHnHu55CJ 56j(Uj`(Uj'U jUOJQJCJOJQJhmH sH @>W~+,-9:013456789:;<=ab$a$$ & F & F & Fbz & Fe^e` & F$`GRXbhlu@L p%&cdeDEFp./STno&'EFgiF565jUmHnHuj)UhmH sH jUhmH sH CJ6hmH sH  hmH sH OJQJhmH sH 6OJQJG#$F&deEFp J & Fe^e` & F & Fe^e` & F & F$a$$Jd7VyEFTyLr & F & F & F & F ^e^e & F ^ & Fe^e` & F^FTAFkxuvw !#'ijkxy}NOcdijkopqsvx &(*,68: jOJQJhmH sH  j"H*OJQJ j6H*jL*U jUCJ5656Nrs<=i`RAxy<=12 & Fe`e:>@BHJLNXZ^  "<>LNPXZ!&*+,01234567=>?NOS]acijklmnoptuv0 j hmH sH OJQJhmH sH OJQJhmH sH 5OJQJ6 jS0<<HUZ3?P\BRjv  F N   :]_z|  0Gce%1Z[]^cejmquvyzOJQJ j0J"U6CJOJQJ CJOJQJ566CJWt u   ) *  "9:?EMR]$If $d^`E$F$F$a$F$ & F7a$]^_djouzItCCCCCC$If$$Iflֈu7 }?04 laz{|IlCCCCCC$If$$Iflֈu7 }?04 laIxCCCCCC$If$$Iflֈu7 }?04 laI<CCCCCC$If$$Iflֈu7 }?04 laIG;555$If x^`$$Iflֈu7 }?04 la    C$$Iflֈu7 }?04 la$If$/012FCA98x^8$$Iflֈu7 }?04 la$IfFGKPWcdeo}V$$Ifkrv *----04 ka$If }VV$$Ifkrv *----04 ka$If V@$$Ifkrv *----04 ka$If =]VTRTPI$e^eFE$$Ifkrv *----04 ka$If]v\] $If F$e^e`ex^ex^e^e e^e` e^e`"."6<O\Zcdgi* dmhot   &@AZ[\_`jD+Uj*U jUCJ5CJjUmHnHu5 5OJQJ j0J"UCJOJQJ6K !0BQRST\VVVVV\Rx$If$$Iflru^ G004 laT:st     $E F$e^e`xe^e*+u$$$  a$ghbcO $ a$$`P Q """"# #7#####2$3$4$5$%%%%D&G&&&''(((D)F)H)h)j))))* ******++++++2,4,6,,,,,,,l-p-..B.D.F.f.j....&/*/////%0)020OJQJOJQJhmH sH 65jCJUmHnHujUmHnHuCJSO P   !!f"g"""""""""######## # #7#8#/$$ 'a$$D8#Q###2$4$5$''((((((((((((((((( )+D$ 'a$$ & F+.+0,0300#11 3!3&3446666666666666$F$ & Fa$F$ & FVa$F$ & FUa$F & FUD2030;0?0000000000011x22q3t3R4^466$6A66666666677888889 :$;(;T;U;f;;;;;;;;;;F<R<<<<<_=k===>>??&?0????@A@F@t@@@@@@AA 5OJQJ5jUmHnHuCJ 6OJQJOJQJ6CJV6666 6!6"6#6$6A6B6C66666666666666666$ 'a$$  a$$666666888888888888888:::S;T;V;W;$a$$ 'a$$W;X;Y;Z;[;\;];^;_;`;a;b;c;d;e;f;;;;;<*<1<7<A<B<==D$ a$$=2?3?@@@@@@@@@@@@@@@@=C>CDDDDDEEF$ ]a$$ABBBBBBBBBDDD#D/D?DDDDDDE+EkEpEEEEEEAFEFRF\FlFrFFF G GGGG+G0GTGUGnGoGpGsGtGGG H&HHH IIIIIIIIIJJ J$J%J/JAJLJJJJKK9KjUmHnHuCJj,Uj>,U5OJQJj+U jU6PFFFwGxGGIIIIIIIIIIIIIIII"J#J$J&J'J(J$ a$$(J)J*J+J,J-J.J/JAJBJKJYJyJJJK+K_KKKKKKLL&M'M & F h$ a$$9KEK'M(M=MNMnMMMMMNNNQ\Q^QaQhQnQuQQQQQQQQQRRRR R$S,S(T*TTTjUlUX X)X.XY6OJQJhmH sH  j; hmH sH CJOJQJhmH sH  j~CJOJQJhmH sH  jOJQJhmH sH jOJQJUmHnHuOJQJ5jUmHnHuCJ>'M)M*M+M,M-M.M/M0M1M2M3M4M5M6M7M8M9M:M;M*656^cc>d?dhd}ddXfpffff.gpggghKhWhdhh i ixiiiii <x$If/EDiiiiiii?\$$If8ֈ4 ^6 04 8al <x$Ifijjjjjjj>$$If84ֈ4 ^6             04 8al (($Ifjjjj"j'j1j($If (($If1j2j@jCjJjMjRjI????7($If (($If$$If8ֈ4 ^6 04 8alRj\j]jmjnjojpjAX7777 (($If$$If8ֈ4 ^6 04 8al($Ifmjnjxjzjjjjjjjkk?kBkiklkkkkkkkkkkkkkkll l lllll0l1l=l?lTlUl`lalelflyl|lllllllllllllmmmm&m'm1m4mImJmRmSmWmXmjmmmsmtmvmmmmmmmmmmmmmmmm5CJOJQJ5CJ5OJQJ^pjqjrjsjxjzjjj?$$If8ֈ4 ^6             04 8al (($Ifjjjjjjjj?$$If8ֈ4 ^6 04 8al (($Ifjjjjjjjj?$$If8ֈ4 ^6 04 8al (($Ifjjjjjjjj?$$If8ֈ4 ^6 04 8al (($Ifjjkkkk k#k?$$If8ֈ4 ^6 04 8al (($If#k(k0k1k?kBkJkMk?$$If8ֈ4 ^6 04 8al (($IfMkRkZk[kiklktkwk?$$If8ֈ4 ^6 04 8al (($Ifwk|kkkkkkk?T$$If8ֈ4 ^6 04 8al (($Ifkkkkkkkk?$$If8ֈ4 ^6             04 8al (($Ifkkkkkkkk?$$If8ֈ4 ^6 04 8al (($Ifkkkkkkkk?|$$If8ֈ4 ^6 04 8al (($Ifkkll l l l l?<$$If8ֈ4 ^6 04 8al (($If llllll"l%l?$$If8ֈ4 ^6             04 8al (($If%l*l0l1l=l?lFlIl?$$If8ֈ4 ^6 04 8al (($IfIlNlTlUl`lalblcl?D$$If8ֈ4 ^6 04 8al (($Ifcldlelflyl|lll?$$If8ֈ4 ^6             04 8al (($Ifllllllll?$$If8ֈ4 ^6 04 8al (($Ifllllllll?$$If8ֈ4 ^6 04 8al (($Ifllllllll?$$If8ֈ4 ^6 04 8al (($Iflmmmmmmm?|$$If8ֈ4 ^6 04 8al (($Ifm m&m'm1m4m;m>m?$$If8ֈ4 ^6 04 8al (($If>mCmImJmRmSmTmUm?8$$If8ֈ4 ^6 04 8al (($IfUmVmWmXmjmmm?9/ )(($If$If$$If8ֈ4 ^6             04 8al (($Ifmmtmvm{mmm/p$$If8ֈ4 ^6 04 8al (($If )(($If$Ifmmmmmmm (($If )(($If$IfmmmmmmIC9C9 )(($If$If$$If8ֈ4 ^6 04 8almmmmmm?9/ )(($If$If$$If8ֈ4 ^6 04 8al (($Ifmmmmmmmmmmmmmnnnn,n/nDnEnSnVnknlnzn}nnnnnnnnnnnEoLoeoxozo}ooooooooooo pprrrr,r-r0r1rMrYrqrzr_sksrusuuuEvFvQvnvvvDwPwswCJjUmHnHuj*/U jU65CJOJQJ55CJOJQJQmmmmmm/D$$If8ֈ4 ^6 04 8al (($If )(($If$Ifmmmmmmm$If (($If $(($Ifmmnn nnnI|??9??$If (($If$$If8ֈ4 ^6             04 8alnnn,n/n6n8n>n?$$If8ֈ4 ^6 04 8al (($If>nDnEnSnVn]n_nen?$$If8ֈ4 ^6 04 8al (($Ifenknlnzn}nnnn?$$If8ֈ4 ^6 04 8al (($Ifnnnnnnnn?$$If8ֈ4 ^6 04 8al (($Ifnnnnnnnn?$$If8ֈ4 ^6 04 8al (($IfnnnnnnNo?=;=9D?$$If8ֈ4 ^6 04 8al (($IfNoRpSpepqqsKtttruuvvEvGvHvIvJvKvLvMvNvOvPvQvnvovpv$a$$Dpvw wswwww xUxxxxzz_z`zzzU{e{f{{{{{{{{{{$swuw{wwww xxxxx5xSxTxUxWxaxgxhx~xxxxxxxWyXyjyvyyyyyyyyyzz z zzFzGzHzIzJzKzLzMzNzOzzzzzzzzzzzzzzz{ {7{9{U{W{]{^{d{{{{|H|N|||||||e}5jUmHnHuH*CJOJQJ6 6OJQJX{{{{{{||}},-ԀՀ45QRtI%6JabDM$$a$$e}j}~~"15QłƒуӃ+PR~υԅ?@5:sy-.=>OQËՋ=?z|68MQnpDFgvOJQJjUmHnHu j0J"U6CJ CJOJQJCJ>*CJ566RbÃ$If/ ÃăуӃۃރICCCCCC$If$$If8ֈ2 'u 2      04 8a8 ICCCCCC$If$$If8ֈ2 'u 2 04 8a8+PRY\I@@@:::$If $$Ifa$$$If8ֈ2 'u 2 04 8a8\bhi~C: $$Ifa$$$If8ֈ2 'u 2 04 8a8$If"CA??$$If8ֈ2 'u 2 04 8a8$If"# <=-/012367$`H$$H$78ËՋ֋j;Z[fvltѐِϑבD$vڎ܎)+EGɏˏltѐِ$0HJfpϑבϒ0 Cgoܔޔŕɕޕ $im˖זctʗߘșə֙יCJ>*CJjUmHnHu65CJOJQJYב=>В oop$ʗ˗hiJKəי$If/$a$$יߙS\Ț˚ٚښ$rڜ>@HZ+;ٞܞ ?Bvyɟ̟mpܠߠCG$,>P6CJ CJOJQJ6CJ5jUmHnHu hmH sH OJQJhmH sH 5CJ56OJQJ CJOJQJCJ>*CJHI|CCCCCC$If$$If8ֈ2 'X 2      04 8a8ʚ˚IGECCCC?/$$If8ֈ2 'X 2 04 8a8˚ٚښ$r>@ $d$If d$If/$  a$$`̞ٞڞܞd^^^^^d^$If$$If84\}   04 8a8 x$If ܞ  "2?@Bhh$$If84\}   04 8a8$If BJVfvwyɟʟhLhL$$If84\}   04 8a8$If ʟ̟ԟ '=MZhD$$If84\}   04 8a8$If Zmnpxɠܠݠߠhh$$If84\}   04 8a8$If #3CDGRmh4h@$$If84\}   04 8a8$If С $&hh$$If84\}   04 8a8$If &,Tnʢ@PhH_ $$Ifa$$$If84\}   04 8a8$If PRT"H^iwnljhhhhhhcc$a$?/$$If84\}   04 8a8 ʣ̣ԣ֣"H^iwǤŧ#z1IPjkѭԭխ;@Qfgt|̮ٮSYZgoyz¯̯ͯίt\h߲CJ 6OJQJ6CJ56j/U jUOJQJhmH sH OJQJSƤǤѤX$$Ifl4  04 lal$IfM$a$ &]^l$Ifi$$Ifl0 04 lal %@i$$Ifl0 04 lal$Ifi$$Ifl0 04 lalŦ@AL(7ti$$Ifl0 04 lalX$$Ifl4  04 lal$IfL]^mi$$Ifl0 04 lal$If %(i$$Ifl0 04 lal$Ifi$$Ifl0 04 lalçħŧΧDi$$Ifl0 04 lal$If %(i$$Ifl0 04 lal$Ifi$$Ifl0 04 lal!"#/Ri$$Ifl0 04 lal$IfRSavw% i$$Ifl0 04 lal$Ifi$$Ifl0 04 lalwxyzP7X$$Ifl4  04 lali$$Ifl0 04 lal$If-./0 i$$Ifl0 04 lal$If01HISp`7X$$Ifl4  04 lal$Ifi$$Ifl0 04 lalpq|é  9:;<=Kz{T ($Ifi$$Ifl0 04 lal{ĪŪԪ-L`i$$Ifl0 04 lal$IfLMNOP %i$$Ifl0 04 lal$Ifi$$Ifl0 04 lalPӫԫޫ87i$$Ifl0 04 lalX$$Ifl4  04 lal$IfޫLMNXjk%FGѭ$D?/i$$Ifl0 04 lal$IfѭԭխOPQfgt̮RSYZg{ұӱ{||2lmǴȴXYDE &D޸߸FDF & F8$bdlmhtRVXYҶݶ %0;>CP[]aotdjļ !Qƽ>nsϾ*+G{56j5UmHnHu5mHnHujUmHnHu5CJ>*6OJQJRFGCD!QR     $>OP$$  a$$Ͼо)*G{!"_;<D/$$M$$  a$$!"z| BC[\]fg :>OTVWflh OJQJhj1Uj0U 5OJQJj"0U jU5jUmHnHu5CJ56OJQJOJQJhmH sH CJD4$$  a$     ?$$a$M$$?     V$a$$VWfd\^$4*l & F; h & F:$ & FD & FCln "bdNP D\^fgw1" DHJbCJhmH sH 56jUmHnHuOJQJ6hmH sH  hmH sH OJQJhmH sH M dfjlpr$*,-.DR\]wx|}DFdx.<frtuvſCJ656 5OJQJ5jUmHnHuOJQJOJQJhmH sH j1UhmH sH  hmH sH jUhmH sH Hl,-C$a$$$e^eCDSJ jktuvBklHJe^e & F?$BMZ^j >@BTVHZdv ,./Pkprt &TUſſſſ>* 5OJQJCJj2U5 hmH sH OJQJhmH sH j2U jUCJOJQJhmH sH 6 6OJQJOJQJjUmHnHuC  j.0123456789:;<=>?@ABCDE0$ & FEFGHIJKLMNOPrstsDFRy_5D & FD & F$D$ a$0UFRrx#%OPhijst_`s  /st4CJCJ5jUmHnHuj3U jU 6OJQJOJQJ hmH sH OJQJhmH sH 566K_abcdefghijklmnopqrs   $$a$0$ !"#$%&'()*++,-./Cst6LMr*\]'(0D & FD & FD$$a$;P "045]789<=@A\o$(dhAE[e ;am     r ~ j4Ujw4U65mHnHuj5UmHnHuj3U56j3U jU>* 6OJQJCJ5F;<45]^@BCDEFGHIJKLMNOPQR/$$ D & Fh^h`DRSTUVWXYZ[\`?Y D$a$/$    1 2 M {    J    vz|~$a$$D~ vxjlz|@CDEZ[:@t  |KLko  ( !!!T!X!p!!<#>#N#56 jH*CJ CJ66hmH sH  hmH sH OJQJOJQJhmH sH 5jUmHnHuMst,-KL( !!5^5$a$$!!!!!!!T!V!X!!<#@#B#D#F#H#J#L#N####$$ $$$H$$5^5$a$M$$N####$$ $$R$V$n$$$$$$$$$%%$%X%`%z%|%~%%%%%&&&&_'b'))]*^*w*x*y***#+&+,,,,l,~,,,,,6-8-l-p--.. ..c.e...../|///// hmH sH OJQJhmH sH OJQJjm5U jUCJ6jUmHnHu565N$$$$$R$T$V$$$$$$$$$$$%%%z%|%%%%%%%$a$M$$%%%S'T',)-)))))\*]*-........ ...//00$D$a$//^0k00000000Y1Z1a1p1y1~1112222H3N3b333334&4h5i5555555566707@7D77777%8C8Q8V8e88888888888899&9+9599999ܿ6hmH sH OJQJj5U jUCJ hmH sH OJQJhmH sH 556jUmHnHu6K0000000000000Y1[1\1]1^1_1`1a111H3J3v333^5$a$$^5_5&8'8;;T;U;W;X;Y;Z;[;\;];^;_;t;u;AABB}BBBBBB$a$$9::_:b:::::U;V;_;t;;;<<4<8<f<j<v<x<<<<<<<p=r==== >4>d>h>p>r>v?x???@ @;@W@@AAAAAB}B~BBBBBBBBBBCC$C%CKCMCZC]CCCCCDD*D.D:D@D6hmH sH  hmH sH OJQJhmH sH OJQJ5jUmHnHu6SBBBBBBBBBBBBBDDEEsFtFvFwFxFyFzF{F|FFFF$a$$@DHDNDDDDDEEFFFF=F>FtFuF|FFFFFHH(H.H2H8Ha' & F1$a$$.dʅ˅bd=>yڏۏ7͓ٕ̓ޕ & FD & F2 & F1h^h & FS^2BhpS]jlv@LFHR^prz $4@BJXdz$<>7Đ(4"7ABJKZĔДMYst–ΖCJj:UhmH sH jUhmH sH CJhmH sH OJQJhmH sH  hmH sH 6hmH sH Lޕ ;<de5Jb[\i$ & Ft8^8h^h$ & FqΖӖc !+56JKLbcĘŘǘȘɘ    "%)367Z[\_kl{~™Ù   z|Ț̚ΚҚܚ(BF 6OJQJ 6OJQJ6H*hmH sH 6hmH sH jUmHnHu hmH sH 6RFHLVZ\`dt Yŝʝѝ`zߞ +DOPSUWYbijşǟޟڠޠ 6OJQJhmH sH 6H*hmH sH CJhmH sH  hmH sH OJQJ6hmH sH OJQJCJ6 6OJQJKişޟܠ FDAEFfx^ & F h^^ & Fz8^8^ & Fv8^8 & Fu^v|¡<DFH(@DF£ȣʣ̣Σңܣޣ  ADEFHLCDfgxy˦̦ͦΦЦզ 6OJQJ 6OJ QJ OJQJ 6OJQJ6CJhmH sH 6hmH sH  hmH sH 6H*hmH sH Nզ֦צئ٦  "*24Ԩܨ0bz&(;DFGHIKOPQS[`bwCJhmH sH 6CJH*OJQJ 6OJQJ hmH sH  6OJQJ66hmH sH OJQJ 6OJ QJ Ng4624D[wx/^]^9$D`^e^e&-puׯvx46αб&.19:;<@GQܳݳ^pz| j" j0J"U jhmH sH CJ  j jOJQJ7 jOJQJhmH sH  hmH sH OJQJ6K9wx  d>òIJŲ%RSܳݳ^ ee^e`eD`̵εTVĶƶhLҸ.04Ժֺ e^`e^ ee^e`eD^ĵƵ*,.hjnrPTvxʸ̸Ҹ "(.0عڹ  ",.46hmH sH H*hmH sH  j$hmH sH  hmH sH  jOJQJhmH sH  j" j jH*OJQJL4FHJPRdfhjlnpԺֺ.6B9=Y]νнѽս׽۽޽߽OPҾӾ,-cdeghkμμ j j j j 5OJ QJ j0J"UOJQJOJQJ6CJ H*hmH sH  jOJQJhmH sH  j" hmH sH 6hmH sH D%&νAB̾оepqr ^`$^ $^` $^`$klmnorKLM  19ij"(*04LNPX\|  j jOJQJhmH sH  j" jOJQJCJ j7;U jUCJ j0J"5U56 j jILM&'ifh$&6 ^`$ & F^`^ & F^ ":J68<@HJLNVXZtvx,.462468<>HZt $(*,PRfhjltvxָ j jH*H*hmH sH 6hmH sH 5CJ hmH sH  j j jOJQJOJQJhmH sH  j"65H02460Pv Bn5^5 e^`eI 50^5`0 ^  ^` ^` ^` 0^`0x"(F`DHJTlpr|prvxRS j0J"UH*6OJQJhmH sH H*hmH sH H* j j j j hmH sH  jOJQJ jKnXtv(*~k()jdf>5^5 50^5`0D/^/ $0^`0I 0^`0SY "$.JLRTVXZ^`jlnprx|~$&,02<k}~  '(*+ Ltnptv6H* j j jj0J"UhmH sH OJQJhmH sH  hmH sH H*hmH sH H*O  8:DHJT".046@JNPRV`>BDFJLNPTVX\^hjnprtvz|CJH*OJQJhmH sH  j H*OJQJOJQJ6H*H*hmH sH H*OJQJhmH sH  hmH sH M>t<$$a$$ 50^5`0I 0^`05^5rtxzprvx "$&,.02468<>HJLVXZ\`bhjlVX\^h>BDN^`OJQJCJOJQJhmH sH OJQJhmH sH H*OJQJhmH sH 6H*H*hmH sH H*CJH*OJQJhmH sH J`bfvx~&rDNRb8>`bTVľﴲﴲOJQJj;U jUH*OJQJhmH sH  5OJQJ5jUmHnHu6hmH sH H*OJQJhmH sH H*H*hmH sH  hmH sH OJQJhmH sH ?RTbbXZ 50^5`0 & F h & F he^e` 0^`0$a$$X\^fhlnrtxz~ (*.046:<JRVZbhH*H*OJQJOJQJhmH sH H*hmH sH  hmH sH XZ NP02Z\ "l@\ ^` 50^5`0 0^`0  ,.48<DJV^bfnvx|~ $&*.6DFJLNTVX^`dlnpCJH*OJQJhmH sH OJQJhmH sH H*hmH sH H*H* hmH sH OJQJRptx "&(,.068:<@BDHJNPTVX^`bdhjlprvx|~CJOJQJhmH sH OJQJOJQJhmH sH H*hmH sH H*VHLPXs:zT(.dhjrv|BDFLN`"."T^ȫ5mHnHuj1<U jU hmH sH H*5jUmHnHuOJQJhmH sH CJhmH sH CJ6H*hmH sH H* 56CJ56C\^~TVLPRTVXZ\^`$a$$^`j <>prt*6>@~$468Jdv 0LNRT^fl~̹H* 5OJQJ5jUmHnHu56OJQJOJQJj<U jUH*hmH sH H*OJQJhmH sH H*56D8<>BDFHJLNPRTVXZ\^`bdfh$$a$$hjlnprtvxz|~ (TJdf$a$$(*,048N`dvx|vx,6*,>@RTlOJQJhmH sH H*hmH sH H*H*OJQJhmH sH jUmHnHu556j56UmHnHu56OJQJOJQJCJH*CJOJQJhmH sH @>tv$@BDFHJLNPRT~ ee^e`e$$*>RnpFn@h8` .Zq r  $ ee^e`e  ,4@HT\hp&.:BNVbj~&2:FNZbv~!r{  ǿ6CJhmH sH CJhmH sH CJOJQJhmH sH CJOJQJhmH sH CJOJQJhmH sH CJH*H*hmH sH J                     }vxz.02Fn()ABCMN˾˶j!>U565mHnHujCJUmHnHu5H*OJQJhmH sH j=Uj+=U jUOJQJOJQJhmH sH 6C   3 :;.0468:<>@BDFM$a$$ & F & F D & Fe^eDz|&')*+,-./012LMOPQRSTU$a$$ fhlnxz  '(2LMNU&2IU!~< G S Y     !!!!! jUCJ6>*jUmHnHu5j5CJUmHnHu6CJOJQJhmH sH OJQJOJQJhmH sH HUD$$a$3#}~<   !!""-"."Q"R"""#Z####$$,%M/ & FD!!!""-"Q"""#.#$$%%%&%(%.%0%B%%%& &@&&&&&&&&&&&'d'f'''''''''(`(b(|(~((((((()b)f))))))**Y*Z*p*q**CJOJQJhmH sH  5OJQJOJQJOJQJhmH sH 5jUmHnHuj?U56 jUj>UH,%.%2%4%6%8%:%<%>%@%B%%%&&'''((()*[*r****0D5$a$0$$****++0+1+A+B+L+M+&-'-------////90;0<0E0G0H00011k1l1111122:334<4>4D4H44444444445z5|555555556 6 6&6*66̺̺ 56CJCJH*CJhmH sH CJ5CJ hmH sH 65H*5jUmHnHuH*j?U jUOJQJI*++,?,S,,, -#--------------------$D5--------------*.//#00i1j1k1m1n1o1p1F$ & Fe^e` F & Fh^h`FF & F9$a$$p1q1r1s1t1u1v1w1x1y1z1{1|1}1~111111111112F & F:$a$F & FF$ & Fe^e`2283:3D3Z3f3p3r3z33333v$qqd$If]q^qa$qd$If]q^$qd$If]q^a$ $d$Ifa$qd$If]q^$qqd$If]q^qa$qd$If]q^/$$a$<`< 333334 4"4$4&4(4<4 $d$Ifa$ $d$Ifa$4d$If]^ $d$Ifa$ <4>4 |$$If4x p2 H 8  T  8  8  R  S  S  p f 0$$$$4 a>4B4J4N4R4b4x444444444$5J5z5 $$Ifa$$If $$Ifa$z5|5X$$If p2 H 8T88RSSpf0$$$$4 a|555555555556666N66 $$Ifa$$If $$Ifa$66$$If p2 H 8T88RSSpf0$$$$4 a66666666 777777777777888 8<8F88888>9N9Z9^99::::X;Z;`;d;;;;;;;;;<<<<:<<<<<<<=&=2=6=======4?6?9@9N999: $$Ifa$ $$Ifa$::$$If p2 H 8T88RSSpf0$$$$4 a:: :$:(:8:J:T:\:h:n:v::;X; $$Ifa$ $$Ifa$X;Z;t$$If p2 H 8 T 8 8 R S S p f 0$$$$4 aZ;^;f;j;n;~;;;;;;;;;<<<d<< $$Ifa$$If $$Ifa$<<$$If p2 H 8T88RSSpf0$$$$4 a<<<<<<<<<<= ===&=X=== $$Ifa$ $$Ifa$==$$If p2 H 8T88RSSpf0$$$$4 a====>>$>&>0>8>B>J>R>>>4? $$Ifa$ $$Ifa$4?6?p$$If p2 H 8 T 8 8 R S S p f 0$$$$4 a6?:?B?F?J?\?r?????????@>@l@ $$Ifa$ $$Ifa$l@n@$$If p2 H 8T88RSSpf0$$$$4 an@r@z@~@@@@@@@@@@@@*AlAA $$Ifa$ $$Ifa$@@AAlAAAAAABBBBBCCCCCC7C8CDD D DD@DTDVDXDDDDDvExE|E~EEEEEEEEEEE?F@FGFPFsFtFGGGG@GYGhGiGnGoGӾӰӾ6OJQJj @UhmH sH jUhmH sH OJQJhmH sH  hmH sH 5jUmHnHu56CJ>*CJhmH sH CJ 56CJBAA$$If p2 H 8T88RSSpf0$$$$4 aAAAAAAABB B BB1BVBB $$Ifa$ $$Ifa$BB$$If p2 H 8T88RSSpf0$$$$4 aBBBBBBBCCCCCCCCCCCC7C8CIIvIIJJDD & F0$a$$$?/oGGGGGGGrHtHHIBIDIIIIIIIIJJJ"J$JBJDJzJJJJ0K@KLMMMINQNxNNNDOEO]O^O_OiOjOOOOPP1P2PGPMPPPPP_QbQQQRRR RRFRpRTTT TT>TjAUjUmHnHuj@U jU>*CJ>*6OJQJhmH sH OJQJ5NJBKDKKLfLLM>NwNxNNNNN OlOmOOOOOOOOOOOO$DOOOOOOOOOOOOOOOOOPP1P2P\T^TlVmV}VVVV$<a$$>T@TBTVTXT}V~VVVVVVeWfWlWmWWWWX1X8XGXNXXXY YZZ.[8[<\E\]]+],]-]7]8];]M]N]e]}]^^o`r` bbbb(c*cpctc~ccccd d dEdZd\ddd hmH sH OJQJhmH sH OJQJjUmHnHu56jAU6>*CJ>*5j5UmHnHu jUj|AUEVVVVVVVVVVVVVVVVVVVVVVVVVVVVX$da$$XXxZyZV\W\:];]M]O]P]Q]R]S]T]U]V]W]X]Y]Z][]\]]]^]_]`]a]b]0$$b]c]d]e]}]~]]]^^``bbccc dFdddddRereseee/D/$$a$$dddddeeReheperexezeeeeeeeeeee>fDf}ffffffHgSg_hfhhhhh!i(i-i4iiikkmmmmmmmknlnfEf|ffffffDiEiii@lAl+m,mn.nknlnooqqs$D & Fssuuuuuuuuuuuuvvv,v-vLwMwwwCx}xxx D h^/$$  a$$/[tbtduruuuuuuvv,vdvivvvvv y/yayyyyyyrzsz|zzzzzzzzzz{ {U{V{W{c{m{{N|e|g|h|q|||||||||||||| }}}}}}B}C}D}N}s}u}}}}}}}}8~C~D~E~K~O~ mHnHu j0J"U5jUmHnHu566Xx`yayyyrztzuzvzwzxzyzzz{z|zzzzzzzzzzzz & F$  a$$ & FD/$$zzzzW{d{e{f{g{h{i{j{k{l{m{{{{{M|N|g|i|j|k|l|m|M/$$D & F$ pa$m|n|o|p|q||||||||||||||||||||||||/$$M$a$$||||}}}C}E}F}G}H}I}J}K}L}M}N}s}t}u}}}}}}}}$D & F$a$$}}}}}}}D~F~G~H~I~J~K~L~M~N~O~P~z~{~|~~~~D$ & Fh^h`/$D$ & Fe^e`D & F$a$$O~P~z~|~~~~~~~456RnpB^defpĀ,{ʁ܁݁#%MX[opqς+-RS]ƒڃ+_`n$.0;Ub|҆#(j5UmHnHu mHnHu6jUmHnHu565V~~~~~~~~~~5789:;<=>?@ABC$$a$D$ & FD$ & Fh^h`CDEFGHIJKLMNOPQRnop/$$$a$$eghijklmnop$/$$a$$,-yz{#$%p/$$`$ D & Fh^h`$a$$prstuvwxyz{+,/$$^$a$$,-RTUVWXYZ[\]ƒڃۃ<`<0$0$a$$$ۃ*+_abcdefghijklmnŅƅD$a$$$ƅ0U|Èʈ҈݈$qd$If^q$$If $x$IfD (*46=@AˆÈ݈67GMsvzʼnӉ׉ۉ $*LRlqrÊϊЊ"&*/‹ƋʋЋދ.23:;aein|ŌȌ̌ҌFIMR`cgl͍эՍ5656b݈ވ߈ldddd$$If$$IfG4\ M J J  04 Galffff$If$$IfG4\ M J J 04 Ga7NQZnhhhh$If$$IfG4\ M J J 04 GaZ[\]^_nhhhh$If$$IfG4\ M J J 04 Ga_`lc]]]$If $$Ifa$$$IfG4\ M J J 04 GaƉ3n$e___ntee_$If $$Ifa$$$IfG4\ M J J 04 Ga 3SrsvyzT$$IfG4\ M J J 04 Ga$If  & F $If  & F$If Ê̊͊ΊϊЊъ_$$IfG4\ M J J 04 Ga$If $$Ifa$ ъҊ034=lcc]]]]$If $$Ifa$$$IfG4\ M J J 04 Ga=>`nee______$If $$Ifa$$$IfG4\ M J J 04 Ga ne___$If $$Ifa$$$IfG4\ M J J 04 Gaы347:;l|ff\Rffff  & F $If  & F$If$If$$IfG4\ M J J 04 Ga ;DMNoیh$hp$$IfG4\ M J J 04 Ga$If ی!"+23T$$IfG4\ M J J 04 Ga$If  & F $If  & F$If 3Smpwxh$$IfG4\ M J J 04 Ga$If nhhhh$If$$IfG4\ M J J 04 Gaۍlffff$If$$IfG4\ M J J 04 GaՍڍ-15<W[_druy~  *9i|"EĒ֒ 0N?Ab~ɔ ,7Vmpy{ՕʺЬj56UmHnHu6mHnHu5mHnHu mHnHu56mHnHujUmHnHu5CJCJ5j5UmHnHu566D <?HIenhhhhnhhhhn$If$$IfG4\ M J J 04 Ga ȎɎʎގߎяҏfca___?/$$$IfG4\ M J J 04 Ga$$If ҏfg     $ !"EFwKLג PQ     /D$a$$ ?@Abcyz{•Õĕŕƕ$/$a$$ƕǕȕɕʕ˕͕̕ΕϕЕѕҕӕԕՕOǖ<љ1ce$D & F/$ՕkrƖ%;ܗߗRUcdeyњ.npq,.S]^_`aj56UmHnHuj0J"56UjUmHnHujCJUmHnHu5j5CJUmHnHuCJmHnHu5mHnHu6mHnHu mHnHu5656mHnHu:efghijklmnopqrstuvwxyš$a$šÚĚŚƚǚȚɚʚ˚͚̚ΚϚКњ$$a$M/ !"#$%&'()*+,-.nopq-.axcd$ & F$$a$awxǞȞiv/mnoʡˡ̡֡ס١,6Z\^fhtvz$¤äѤ˽H*jB5U j5U5jUmHnHu hmH sH j56UmHnHu56mHnHu56OJQJmHnHuOJQJ5mHnHu mHnHu6mHnHu6;dȞhiϟ./mopqrstuvwxyz{|}~$^١ڡ$%¤ĤŤƤ$a$M$$ƤǤȤɤʤˤ̤ͤΤϤФѤ45JK6GH.D^/$a$$Ѥդ01@G  %&'125J6;@EǩΩשک-DQS`boq~ت  39:fkӭح!385CJ56OJQJ 5OJQJCJ CJOJQJOJQJjlCU jUH*655mHnHuMDت 0 ]^ʰ $x$Ifa$/D^23CDLT\dltud d$If$Ifk$$If40 04 a23tu  (-b˲ѲزݲCDE45678Rxyz˷mvwx!345KFGHSijCU jUj5UmHnHu5mHnHu5 mHnHujUmHnHu6CJ CJOJQJCJ CJOJQJ 56CJ6CJOJQJ6OJQJ6CJ CJOJQJCJ:uѱ z$Ifk$$If40 04 a d$If  9r $If (.Vb߲D2$If$IfZ$$If4t  04 a DEtҳ0_Jy׵5 d$IfX$$If4  04 a5678RzζGZ$$If4t  04 a$IfX$$If4  04 a&Ryz˷mո&wtttf 3$$d$Ifa$ $d$Ifa$ 2$d$Ifa$ 3$d$Ifa$X$$If4  04 a 3$$Ifa$$If wxy   $?/$X$$If4  04 a    !45KGIJ$a$JKLMNOPQRSijν߿zI$$a$ռּ׼  ()*45  opܿ,IJ hmH sH 56hmH sH jFU5j5UmHnHu566jNFUjEUjXEUjDUjbDU jUAIJTU$$ & F$+,DEFPQ7 ?KHJ !()./23:;GH>*CJ5jUmHnHu mHnHu6jB 02<BTVdhrHPZ\bftv34;<BDY^TVmnCOJQJ6 6OJQJ 5OJQJ556[hJLPCDHYx$Ifk$$IfG40 504 GaUVZnP $If^$Ifk$$IfG40 504 GaCDk$$IfG40 504 Ga $If^$If HTL04@$Ifk$$IfG40 504 Ga#$15uv{~:;M57:=BCXprvy}~,.LN^_apr|}~ "#?@HJsOJQJ6556 5OJQJ]#$'18k$$IfG40 504 Ga$If1234 $Ifk$$IfG40 504 Ga4567u$Ifk$$IfG40 504 Gauv< $If^$Ifk$$IfG40 504 Ga: $If^$Ifk$$IfG40 504 Ga:;>M67>Xqrzh $If^$Ifk$$IfG40 504 Ga.MNQ$Ifk$$IfG40 504 Ga $If^Q_qrw|}~0 k$$IfG40 504 Ga$If $$Ifk$$IfG40 504 Ga0$Ifk$$IfG40 504 Ga  $ & F?$Ifk$$IfG40 504 Ga@t :;<yz{$If & F$ & Fstxz '-9zRb#uv TV8D+P\@B mHnHu5mHnHu5jUmHnHujHU jUCJ566CJ6OJQJN|%Xi$$Ifl0[!-04 la$Ifi$$Ifl0[!-04 lai$$Ifl0[!-04 la$If()2QR[{|$Ifi$$Ifl0[!-04 laTi$$Ifl0[!-04 la$If #$%i$$Ifl0[!-04 la$Ifi$$Ifl0[!-04 la$-QRScdLi$$Ifl0[!-04 la$Ifden%i$$Ifl0[!-04 la$Ifi$$Ifl0[!-04 la$?$%C^} & F$a$$6x/Kkno!^$/e`ee^e69ux|jx&'.245amam  *6#$4Lde޹6H*OJQJ5jCJUmHnHu 6CJH*6CJCJ6CJCJOJQJ 6OJQJ6CJOJQJ CJOJQJI!"#%&'()*+,-./01234LM/ W0^`0$a$$  <=ABUVmnopq}JKcdeop;xyjIU5CJ5hmH sH 5CJOJQJ 5OJQJjUmHnHuCJj2IU jU56H* 6OJQJ6G>pqIJ#$$/W`W$<=/0A ; < ^$$$a$  #$%/0/A *6am $ 3 9 = > I u      I K \ h ~   % & 2 ߪ6hmH sH  hmH sH 5hmH sH 6OJQJjKUCJ 56CJCJ 56CJ565jUmHnHujJUj(JU jU@< = ? @ A B C D E F G H I u v w              $a$$ I J K ~  $ % ' ( ) * + , - . / 0 1 2 ? @ A      /$$$a$2 ?   /0HIJTUW $$$% %%%#%*%3%=%|%)))(*.......... ALAAAyBBBB"C+CCCJCiDqDDDEEE#EAEJEEEFFFFF j5CJ656CJOJQJ5hmH sH OJQJ hmH sH jK56Uj56U56CJ5J 9 = c ! C){nX`nTE-pXG2'rIXI^*s? T    !i!!!!"N"}"""#K#XK####$T$$$$$$$$%%$%4%|%%(&~&&*'q'''F((((X();)p))))))))***++++$,k,,,@-O----#.X.Y.g.}.X}.~.......%/[///=00021112h22 3]333A444455X556l667_778J888?9992:a:::-;v;;;B<<< =W===X=>l>>>4???? @A@u@@@@@A AKALA|AAAB&BxByBB & FhXBBBCCXDDEFFAGBGRGuGGGGGHH+H,HHHOKPK#L & Fn & Fm & Fl & Fj & Fg & FiFFFFFAGRGfGjGGGGGGGGGGGHHHRIUIXIYIIIII0J3JYJ\JJJJJhKnKoKtK#L$LNLkLpLrLLLLL^^_ ___!_)_0_8_b_j_____rrrr7sEsyssssss!t)tWt_tfH q OJQJ 5OJQJ5jUmHnHu656 j6hS#L%L&L'L(L)L*L+L,L-L.L/L0L1L2L3L4L5L6L7L8L9L:L;LL?L@LAL$ALBLCLDLELFLGLHLILJLKLLLMLNLrLLLLLLL#MfMMNNNNN.OX0$a$.OyOO PYPPP8QQQRcRRR)SeSSS*TqTTT6UxUUU=VyVVWXW?WWW XTXXX!YiYYY6ZsZZ[[@[n[[[[&\T\\\\]@]q]Xq]]]^5^f^^^^^^^^ __*_9_B_\_k_t_______4`=`P`XP`v```@aaabgbbcEccc-dpdd eXeee8ffff5gwgggT˱̱ղֲزٲڲ۲ܲݲ޲$XXd޲߲"#:Nu[\%&$ & Fe^e$a$$·÷÷ķŷƷǷȷɷʷ˷yK"#nos{ $$Ifa$e`e & F$$a$ٸATĹȹ6XoȻ3 $Iejntx  m45VWc%;Vbcdx$0Ys`p.3ILjlCJCJ 56CJCJ65CJ5jUmHnHu CJOJQJ56CJ5CJOJQJNȻɻ̻ѻֻLTCCC $$Ifa$$$If4r3 R704 a $$Ifa$$Ifݼ޼߽,-R<IIIR $$Ifa$$$If4r3 R704 a $$Ifa$-06;efilIt$$If4r3 R704 a $$Ifa$ $$Ifa$ls| I$$If4r3 R704 a $$Ifa$ $$Ifa$ ~IP$$If4r3 R704 a $$Ifa$ $$Ifa$~wRdIIIRD $$Ifa$$$If4r3 R704 a $$Ifa$PI$$If4r3 R704 a $$Ifa$ $$Ifa$pIGEE?$$If4r3 R704 a $$Ifa$ $$Ifa$   f./JK~#$U%a/)Z Li \OBC*w^PUZ<wxK[4~-.]=*yfS--^Ua*mno346789:;<=>?@$@ABCDEFGHIJKLMNOPQRSTUV9:;c$$a$$cd^L Y? e^e` & Fe^e & Fe^e & F_`Rrsno & Fe^e`^ & F & Fh^h & F h^ & F/l sKSoTY<ENW+5W^{57<>KMbdz|O[\h?LZf + 7 8 o {     1 = y  56CJCJ656OJQJ]{  8 9  / & Fh^h & F h^ & Fe^e`    x y   {|} & F/$ & F$/y z     }*/AU_`xyz-12367@vFI!<8T > Z f   /!N!!!!!!!2":"#jLUjLU jU6OJQJCJ 56CJ56U?@78= > .!/!""]$^$$$)))))++,,--//$$/ & F##^$$$$9%E%%&&&'&1&l&x&&&&&'',':'@'\'j'M(S(((((((;)G)))))d*p*B+O+++++[,g,----:.F.T/a///22>2336#6&6266666 77777818A88888999(9<:B::::;; 6OJQJ 5OJQJ5656CJ\//000 3!3A3O3<4>4@4R4b4t44$If4444444444\VVVVV\VV$If$$IflrS +Sllll04 lal 44 5555&525H5T5V|$$IflrS +Sllll04 lal$If T5V5X5f5x555555\VVVVV\VV$If$$IflrS +Sllll04 lal 555555556VTRPN?/$$IflrS +Sllll04 lal$If666667 7081899<:=:::::;;z<{<<<\=]===> >^` > & F ^ >/;;z<<<<]=c===>>??@@AAAAAAAABB CC^CeCtCC@DLDDDE"E9F:FRFSFTFWFXF[FcFGGG G{GG_HgH'I;IIJJJJJKK8LWLM-M\M_MMMN$NOOOOOOEPIP]PePPQQQMRQRS S5CJ6j MU jU5\>>??@@AAAAAABB C C_C`CuCvC?D@DDDEEZF[FG >^`>GGzG{G^H_H&I'IIIJJJJKK7L8LMMMMNN]NN> & F h   ^  >  ^`>  >NOOOODPEP]P^PPPQQLRMR SSSSSSTTTT*TN$If/>>  > & F h   ^  SSSSSSTTT{T}TTTU UVUbUUU VVXViVVVVVDWTW`WjWWWWW9XDXEXIXIYaYYYZ4Z^Z_ZZZ[\n\\\]]x]]]]^^S__``aaaaabbbccdcddeeeeeeffffffgCJ5>*6CJCJ 56CJ566Z*T|T}T~TTTTTTTTTTTTTTT8M$If0$IfY$$IfG4F^ !}    4 GaN$IfTTTTTTTTT#U$U%U&U'U(U3U@UsUX0M$IfY$$IfG4F^ !}    4 GaN$IfsUtUuUvUwUxUUUUUUUUUUUVVN$IfM$IfY$$IfG4F^ !}    4 GaVVVVV(V6VRVSVTVUVVVWVXVhViVjVkVLN$IfY$$IfG4F^ !}    4 GaM$IfkVlVmVnVoVVVVVVVVVVVVVVN$IfY$$IfG4F^ !}    4 GaM$IfVVVVW WkWlWmWnWoWpWWWWWWWN$IfY$$IfG4F^ !}    4 GaM$IfWWWWWWWWWWWWX7X8X9XDXEXL$N$IfY$$IfG4F^ !}    4 GaM$IfEXYYHYYYYYYYZ4Z_Z`ZZZ[[[M[f[g[[[[\<\Z\n\o\o\\\]]]_]w]]]]^^^F^i^j^^^&_'_R______`@`}`$}`~`````&aeaaaaabbBbbbbbc:cScTclccccc$$a$ [^`[cdwdxdddd*e+eGeeeeef[f\fyffffg=gwgxggg$^$$a$ $$^a$$g>gXgggWiiii'j4jjjjjk!kkkkkl%l&l6l+mBmvmmUnjnnnnnyozooo*pJppp@qEqQqq rrr%rrrrr>shsts|s}ssssottt uuucuuvvvv]wwwwwwwwx x&x7x=xIxOxVx j0J"UCJCJ6H*6CJCJ56Zgg*hAhhhh+iViiiii&jMjNjjjjjkkkkklXlYl $$^a$^$Ylllllll*m`mamtmmmmnnTnnnnnooo>ozo{ooo p p$ p)p]ppppppp5q6qqqqqq r?r@rSrrrrr>s|ss$` [^`[$^$sss*t+tStntttttuu:ubuuuuuu vSvTvevvvvv^$v]wwxGypywz8||} gsˀ&  ;<`+ @e^@`e$^VxxxGyHypyqyryyyyyyyyyzzz'z-z>zuzvzwzxzyzzzzz6|8|9|||}}>~P~  7;=ACNOeghdrstʀˀ̀ %&'\]c0JmHnHu0J j0JUOJQJ5CJ66CJCJ j0J"UTcdefgjkqruvÂĂłǂBDjx"$&FHhj΅Ѕ܅ޅ6HJ\^prʆ̆҆Ԇֆ܆ܰCJH*OJQJhmH sH  CJOJQJ6CJCJ6CJhmH sH  hmH sH CJOJQJhmH sH CJ0JH*0JmHnHu j0JUB<ghijłƂǂBDʄ$&FHhjR & F^/$a$$a$`΅Ѕ܅ޅ&46HJ\^prY$a$R & Fʆ̆҆Ԇz|!FGbňƈ݈3$a$$a$$a$Y܆ކxz|!EFGbĈňƈ݈  (01EFNOWX(*,468>@DFHVXZhjOJQJhmH sH CJH*OJQJ CJOJQJCJOJQJhmH sH 5CJ CJOJQJCJ6CJ CJOJQJ5CJOJQJ6CJOJQJ6CJCJH*6CJhmH sH CJhmH sH ;  &'(01EFNOWX(*46>@D$da$$a$DFVXhjz|ŠĊ̊Ί֊؊ $&$da$$a$jz|ŠĊƊ̊ΊЊ֊؊ڊ@V^`b̋΋܋ދ .0LNbdȌʌ "$<>HXZxzƍȍ6CJ6 CJOJQJCJ B* phOJQJ55hmH sH CJH*OJQJ CJOJQJCJOJQJhmH sH 6CJCJI&24>@LXZ\^bdpr|~̋΋Ћ.Y$a$Y$a$ .0LNbdȌʌ "XZxz$a$.7$8$H$zƍȍ$%-.opǎȎˎ̎ώЎӎԎ$a$ $ 9r a$$a$$%-._eopǎȎˎ̎ώЎӎՎ؎ێݎߎ+5=׏؏MNѐҐӐ$%1234ABOJQJ CJOJQJ CJOJQJ j6CJCJh j5CJOJQJhmH sH CJ6CJ CJOJQJ56CJ66hmH sH GԎՎ؎َڎێݎގߎ,-45=>IJPV\]ciY$a$iopvw}׏؏MNѐҐd$a$Y$23AOP^lmnvw ^`/$a$dBNOPQ^_klmnuwϑБrt~"&Bfxz|~ CJOJQJ6CJCJOJQJhmH sH 5hmH sH OJQJhmH sH H*566H*65CJCJOJQJ CJOJQJ j6CJ j5CJ CJOJQJCJh>,ʒ̒$&DFTVbdfz|~$a$T^T ^`Гғؓړ^`vxz$da$$a$Гғؓړ^z”ҔԔ  "$&(*,.@FLNVXZbNPR\dfnpxz—ėʗ̗җԗڗܗCJCJH*OJQJ CJOJQJ CJOJQJCJOJQJhmH sH 6CJCJT”ҔԔ   $&(,.068>@O$da$$a$@FHJLVXbdpĕƕȕ hjЖҖ.06FHLNRY$a$Y$da$$a$RTZ\dfnpxz—ėʗ̗җ$a$Oҗԗڗܗ&(.0RT\^fhnp|~$a$$a$ $&(.026PRT\^fhnprz|~ژܘޘ  $&(*,.02468CJH*OJQJOJQJhmH sH CJH*OJQJCJCJH*CJH*CJOJQJhmH sH  CJOJQJOܘޘ  $&*,0$a$$a$0268<>BDHJNPTVZ\`bfhtvO18:<>@BDFHJLNPRTVXZ\^`bdfhrƙsvwŚǚȚɚ˚̚ΚϚҚӚ՚ؚ֚ٚܚݚCJH*H*OJQJ6CJ CJOJQJ6 hmH sH CJCJOJQJhmH sH Sęƙ  GklrsvwY$a$1OȚɚ˚̚ΚϚҚӚ՚ؚ֚ٚܚݚ$a$1$a$)*:QsǛM$a$$a$)*hikloptuyzŜƜʜ˜͜ל؜ٜ")*.68BCGQRS]^_6CJ6CJhmH sH 55hmH sH OJQJ jMUj(C CJUVmHnHu jU 5CJH*5CJCJCJH* CJOJQJF4FWhikloptuyz$a$ŜƜʜ˜ל؜ !"*+-.$a$.78CDFGRS^_jkmn_ijn˝͝ܝݝޝ,.89:Vghܞݞ    CJCJOJQJhmH sH 5B*OJQJhmH phsH 5B*OJQJhmH phsH CJ#6B*CJOJQJhmH phsH OJQJ55hmH sH 6CJ6CJhmH sH >Ɲ̝͝ݝޝ -.9:WXhiRžݞޞ    .08Y$a$R068:@BDJLNTVX^`bdfhjlnprtvxz|~ڠ\bvҡ,.JKMV -/k565B*CJOJQJph6 hmH sH CJhmH sH OJQJOJQJhmH sH CJOJQJhmH sH CJJ8:BDLNVX`bfhlnrtxz~O$a$Ƞؠڠ4@Z\dftv¡ȡʡСҡ$a$OYҡ'JKMNQRUV-./_"$ $ 9r a$$a$Okl"$(4R`ʤ̤Τ.0BFZ\^vzȥŽٱٝCJH*OJQJ CJOJQJh55hmH sH  j6CJOJQJ j5CJOJQJ j6CJ j5CJ5CJOJQJ 56CJOJQJ hmH sH CJ CJOJQJCJOJQJh6CJ6CJhmH sH 656OJQJ2$(*24TV^`pʤ̤.$da$$da$O$a$.DF\^lxz¥ƥȥԥ$a$$da$ !"./0567Vawyz{|ѦӦ  !%)*./34DFJKOPRSVWZ[^_a  "$(*,CJCJOJQJhmH sH CJ6 CJOJQJ 56CJ6CJ55hmH sH OJQJOJQJN!"/067E{|ǦҦӦ٦$a$$a$   !"$%)*./34:EFJKOPRSV$a$$a$VWZ[^_ab"$*,24:<BDJLR$a$$a$,0248:<@BDHJLPRTZ\^dfhlnptvx|~بڨܨ  "$68NPRTVlnprtCJOJQJh CJOJQJCJOJQJhmH sH CJH*CJCJCJOJQJhmH sH QRT\^fhnpvx~ڨ$a$$a$ڨܨ "$&,.46PRTnprvdO$da$$a$$a$tvxz|~Щ $&*,VXªĪƪȪ  (>BDVZ\fj 7?@ CJOJQJCJOJQJh CJOJQJ5CJ 56CJ55hmH sH OJQJ CJOJQJCJOJQJh j5CJOJQJCJOJQJhmH sH CJBvx|~©ĩȩʩΩЩܩ $&*,V$a$dVXjĪƪ  "&(4@BdO$a$BDXZ\hj@ADEHIWX_`ghqr$a$$a$$da$@ACDEGHITVWXY_`aghiqrCEHILMOPSTW[]^`acd ",24>@BLNPļļļļCJH*OJQJ CJOJQJCJOJQJh j6CJOJQJOJQJ65CJ6CJ jaCJOJQJCJ CJOJQJJӬ0DEHILMOPST$a$TWXZ[]^`acd ,.02>@LNZ\bdfh$da$$a$PZ\`bhjtvxĮƮ̮ήخڮܮ$&(02`btvȯʯίЯү֯ ">@BDFJLOJQJhmH sH CJ CJOJQJ5CJOJQJ5CJH* j CJOJQJ6CJCJH*OJQJNhtvƮȮʮ̮خڮ$da$  $&02V`bȯʯЯү֯دޯO$a$$da$ "$<>BDHJNPTVZ\bdjlnpz|$da$Y$a$$a$LPTVXZ\bdhjprz|~°Ȱΰаְذް  4:BRTZ`bfhjprtz|~CJCJH*CJhmH sH  CJOJQJCJH*OJQJ CJOJQJ6CJCJOJQJhmH sH CJO|°İưȰΰаְذް$a$$da$  468:BDFHJLNPRZ\^`fhprz|$a$d$da$|ıƱαбرڱO$da$ıƱȱαpxz|²ƲȲ̲βڲܲ޲ "@BH H*OJQJ jOJQJOJQJCJH*OJQJCJOJQJhmH sH 5B*CJOJQJphH* j66hmH sH CJH*CJCJH*OJQJ CJOJQJ6CJ? "FHJLNRTXZ`bhjnpz| $ 9r a$$a$YOIJƲ̲βڲ"$>@HJRT\Y$a$$a$$da$HJLRTV\^bdjltvxʳ̳гҳֳس (*.068BDHJNPRVXZdfprt~CJH*OJQJCJOJQJhmH sH 5B*CJOJQJphCJH*CJCJ6CJCJH*OJQJ CJOJQJL\^dfhjtvʳ̳гҳֳس$a$$da$ (*0246BDHJPRXZd$da$$a$$a$dfpr~Ĵƴ̴δдҴ޴$da$$a$Ĵƴʴ̴ҴԴ޴  468:<>@BDFHJLNPRTVXZ\^`~ļļļļĴĬĬĬĬCJH*OJQJCJH*OJQJCJH*OJQJ CJOJQJCJOJQJhmH sH OJQJOJQJhmH sH H* j6CJ CJOJQJCJH*OJQJD46<>DFLNTV\^~$a$$a$$a$ $ 9r da$$da$ҵԵ޵2BDFJL^`ln$da$O $ 9r da$$a$$a$ҵԵBL\^`blnvxz¶ʶ̶ζжҶԶֶ޶ҟCJ H*OJQJCJH*5B*OJQJph hmH sH CJCJH*OJQJ CJOJQJCJOJQJhmH sH CJOJQJOJQJhmH sH CJH*OJQJ CJOJQJCJOJQJhmH sH ;nvx¶ʶ̶ҶԶ޶$a$$da$$a$ "$&(*,.02468:<>FHLNTVXdfnprtvxz|~ CJOJQJCJOJQJhCJH*CJ5B*OJQJphCJCJH*OJQJCJ H*OJQJ CJOJQJCJOJQJhmH sH  CJOJQJCJH*OJQJB$&,.46<>FHLNVXdfnpvx~$ & Fa$$a$$a$$da$ҷ޷*,0#Y$a$$a$*,02>@DF\^b $&02>@JL^`bprvxƹȹιйֹع޹ CJmHnHuCJOJQJhmH sH CJ6CJ CJOJQJCJCJCJH*OJQJ CJOJQJCJOJQJhmH sH J02>@DF\^bdtи $&0$a$Y#02>@JL`bprvxƹȹιйֹع޹$a$#޹  "&(,.8:$ & Fa$#$a$$$a$# "&(,.68 HJL^bntԻֻػڻ޻ "*HJLVXbd8<B½ĽƽȽڽܽCJOJQJh6CJhmH sH OJQJhmH sH CJH*OJQJ CJOJQJ6CJCJCJOJQJhmH sH 6 B*CJphCJCJF:RTnp޺  (*,.FHLNtv1O̻λһԻػڻ *,LNXZdf$da$$a$OYļƼμмڼ8~ĽƽȽڽܽ$da$0d$a$Oܽ޽L`bprԾ@DFHLNPVdj~ؿ"(*,-Y`b}   CJH*CJhmH sH CJOJQJhmH sH B* CJOJQJph6CJCJ CJOJQJCJOJQJhmH sH 6CJ6CJCJCJH*OJQJ CJOJQJBFHJL`bprҾԾ>@FHN$a$$da$NPVX\^bdjln|~ȿ )*,-0>$a$Y$a$>CQ`abes~  $a$Y$da$$a$ "$&(0  &6<@LT "(*028<>HJLVXZdfhrtvккаккOJQJhmH sH  CJOJQJCJH*OJQJ CJOJQJ6CJhmH sH 6CJOJQJhmH sH CJOJQJhCJOJQJhmH sH OJQJCJCJCJOJQJhmH sH CJH*CJhmH sH 8&(02DF`z$<>@Pbd~8dY$a$$da$~@L "(*$ & Fda$$da$$a$Y*02:<HJVXdfrt$da$ (*,68>BFNbdrtFHPRT\^bdjltvx CJOJQJCJ6CJ6CJOJQJhmH sH  CJOJQJCJH*OJQJT (*68@BHJLNbdrt$a$$da$@BDFPR\^dfhjtv$da$'(*+./12d$a$$da$&'(*+./12EF\^xy $%+,239:;@ABGHINOPUVW\] CJOJQJCJ5B*OJQJphCJOJQJ CJOJQJ6CJOJQJ CJOJQJCJH*OJQJM2EFR]^kxy$a$Y$da$$a$ $%+,239$da$$a$9:@AGHNOUV\]cdjkqrxy$da$]^cdejklqrsxyz  $&*,.246:<@DFLfhCJCJH*CJhmH sH H* hmH sH CJH*OJQJ CJOJQJVY$da$"$(*028:BDfhjltv~$a$$da$d$da$hjlnrvx| $,.0246<>DHJPRTVXdfhjlp~ jEH jCJEHCJH*OJQJ CJOJQJ CJOJQJCJOJQJhCJOJQJhmH sH OJQJhmH sH CJCJH*CJhmH sH H* hmH sH CJ@"$,.24<>FH$a$d$da$$da$HPRVXhjpr&(<>O$da$&(<>NPz|~ 2468: Nj6CJOJQJhmH sH OJQJhmH sH CJOJQJhmH sH CJ6CJH* hmH sH CJOJQJhmH sH CJH*CJhmH sH CJOJQJhmH sH CJA>NPz 46:<LZ\^`$a$Y$da$$da$`bdfhjlQRR & F & FO    .0$da$$a$ZO02JLNjl|~ "68:<>$da$O8$a$Y  >hjlnprvz|~"$246:<>RVtxOJQJ CJOJQJ CJOJQJCJOJQJh j5CJOJQJCJCJhmH sH  CJOJQJOJQJCJH*CJhmH sH CJOJQJhmH sH CJOJQJhmH sH 6=>h$da$  )Tmz{01wIbd$a$7}~  Q "46:<>TV`vx8d$a$(b~.gjk#` ^` $^`$`$a$ijk%' |~ *~ (*8zzs CJOJQJOJQJhmH sH 56hmH sH 6CJhmH sH 6hmH sH OJQJ55hmH sH CJH*OJQJ CJOJQJ CJOJQJ66CJhmH sH 5B*OJQJphCJH*OJQJ CJOJQJCJOJQJhmH sH CJ CJOJQJ-#&'U |~ ~$da$$a$$a$ ^`~ "&(*:<RTXZ\^`vx|~$da$$a$8<PR^`tx|~ "$(*.0> 0248CJOJQJhmH sH CJH* jCJCJH*CJhmH sH CJH*OJQJ CJOJQJCJOJQJ CJOJQJ6CJ6CJhmH sH E &(.0d$da$0>@LrDF  "$|Y$a$Y$a$248:>@\^bdxz~Z & F$a$$a$8:>@Z\^bdvxz~02TV^`lnrt   67PQoptu6CJCJCJCJhmH sH  CJOJQJ CJOJQJ j;CJ56CJOJQJhmH sH CJN  24DRT^`lnrt$a$$da$Y$a$OZ  Y$a$8d67PQ^optu|Z $ & Fda$ & F$ & Fa$$a$ !"OPWX]^V$a$$da$$a$"OPW^bdhjFH~ܵ6CJOJQJhmH sH  CJOJQJCJOJQJhmH sH  hmH sH CJhmH sH 66hmH sH CJ 56CJ6CJ6CJCbdhjFH~8$a$d$a$$a$ 8$da$ .0PRd8d 8$da$ 8$da$$a$$a$ .0PR "&(*.0268:>@BFHJLRTVX^`dln j~CJOJQJhmH sH  CJOJQJ j;CJOJQJCJOJQJhmH sH OJQJ hmH sH CJhmH sH CJ6CJOJQJhmH sH CJOJQJhmH sH @ "(*028:$a$$a$ 8$da$8$a$d:@BHJRTV^`bdln8d$da$d$a$   246HJZ\^`btv»»»̻» H*OJQJ jOJQJOJQJCJCJOJQJhmH sH 5CJhmH sH CJhmH sH  CJOJQJ j6CJOJQJCJOJQJh j5CJOJQJ j~CJOJQJhmH sH CJOJQJhmH sH  CJOJQJ5 24H\^`t$da$$a$d8d 8$da$ $&,.46<>@D^`bdh"$,48:@DX\bdjlrtOJQJhmH sH OJQJ 5EHH*5EH5B*OJQJphCJH*CJH*CJOJQJhmH sH  CJOJQJ6CJCJ H*OJQJ jOJQJOJQJ@ $&,.46<>`bY$a$"$,.248$a$d.$a$Y$a$Y8:BDZ\bdjlrtd$a$t.0XZ CJOJQJOJQJhmH sH CJOJQJhmH sH 5B*OJQJphCJH*CJ hmH sH P.0XZ$a$$a$$a$  HTci,239:@AGHKLOPUV`akl%&./0=>BCDEIJ6H*6 CJOJQJ CJOJQJCJCJOJQJOJQJhmH sH CJCJOJQJhmH sH N  $&68FHTVjlnz|$a$YO&TVX01_`cklY$a$Y*NO$7Y$a$$a$Y7NOP| '(./78?@FGMY$a$YMSYZbcijY$a$$a$$a$Y #$%+,239:@A$a$$a$Y$a$YAGHKLOPUV`aklvO$a$R & F%&./=>DEKLR8d$a$8OJKLPQRSWXYZ^_`aefhlmostvz{}#$2CD j5CJOJQJ6CJOJQJhmH sH CJhmH sH OJQJ5B* OJQJphB* CJOJQJph6CJCJ j,RUjyB CJUVmHnHu jU6H*6CJ=RSYZ`aghnouv|}#$ 12D$a$2$da$$da$1DER_m  $a$ddY  (*,.02RTVXZz|~ "$&(HJLNRnprtx CJOJQJCJCJH*CJH*CJH*OJQJCJOJQJhmH sH  CJOJQJ CJOJQJ j6CJOJQJCJOJQJhF*,.TV|~"$JL\pr$a$$a$  ,-39:EF$a$  ,-9:EFQR]^ijwx *+01>?TXr"$*,028:@BFHJLNR^tCJOJQJhmH sH CJCJCJOJQJhmH sH OJQJ CJOJQJ CJOJQJRFQR]^cijwx$a$$a$  *+01>?TUWXst"$$a$$*,028:@BFHLNRTVX\^lvx$a$tx $&(*<>PRT^`blnpvxz|~üü{ jaCJOJQJCJOJQJhmH sH  jCJOJQJhmH sH  j6CJOJQJCJOJQJh j5CJOJQJ CJOJQJ j;CJOJQJ CJOJQJOJQJhmH sH  j~CJhmH sH CJCJCJOJQJhmH sH OJQJ.  $&(<PR^`lnvxzT$da$d$a$*,8:HJZ\hjv$a$$a$*,.8:<HJLZ\^hjnvxzNjlnLhjjC UV jU5CJCJ jbCJOJQJCJOJQJhmH sH  jaCJOJQJ CJOJQJLvx&Nz$a$DlnBjlrtz|$a$$a$$&,.46HJ`l ,vxz~μOJQJhmH sH 6CJ6CJOJQJhmH sH 6CJhmH sH CJhmH sH 6CJOJQJhmH sH CJH*CJ jU j[UF$&,.46JLdfpY$a$$a$  &(BDN^`lnz|$a$Y ,.:<TVnpz$a$$a$Y8^xz~$a$$a$   "68:>@DFHVXZ\z~ $,.248:>@D j; j5CJOJQJ CJOJQJCJOJQJh j6CJOJQJOJQJhmH sH CJCJOJQJhmH sH K   "8:>@DFXZ$a$$a$ ,.248:$da$$a$:>@DFJLhjnptv|~$a$$a$DFJL^hjnptv|~ ,.248:>@BJLTVhjlr CJOJQJCJOJQJhmH sH 5CJH* j; CJOJQJCJOJQJhmH sH CJQ ,.$da$$a$.248:@BJLTVjlrtz|$a$$a$  " $ 4 6 D  & ( * 0  $^`a$$d^`a$$a$   " $ & 4 6     Z \ ^       ( : J L T V ^ ` h p v | ~                          6Wbc6565 H*OJQJOJQJCJ CJOJQJCJOJQJhmH sH CJR0 2 8 : B J L T V ^ ` h j n p             x /$da$$a$x  R (*68DFRTVZ\`d$a$` (*68DFRVZ\`bfrv *,.0268<>JLNbdflntvxz|~ j~CJOJQJhmH sH  CJOJQJCJOJQJhmH sH CJhmH sH CJOJQJh jCJOJQJhCJ hmH sH G`bfhjlnprvx$a$01$a$ ,.<>LNdflntvz|d$a$ *.04:*,24JL ƸƸƸƴ 5CJH*5CJ6CJ6CJOJQJhmH sH 6CJhmH sH 5CJOJQJCJOJQJhmH sH  CJOJQJCJOJQJhmH sH CJOJQJCO$a$$a$  ,.24:<JTVdrt1O$a$*,24PVr$a$$a$  %-.1245=>BJKQYZ\]fs~d$da$$a$ -.1245<>IKQYZ\] )/1KMfhPRhjnptvz|&(6<>BDHNPVOJQJhmH sH 5CJOJQJ 56CJ6CJOJQJCJW~$014ALMP]ghkx$a$$a$*@PRhjnp$a$ptvz|&(68:<@BFHNPV$da$$a$VX^`dfjlprvxz|~$a$VX^`dfjlprv,.8<>@B^`dfjlprvx~  "*,0<>BDJLRTXCJ6CJCJCJOJQJhmH sH  CJOJQJ j6CJCJH*OJQJ CJOJQJ 6OJQJ6OJQJhCJJ$a$ "$&(*,8@B^`dfj$a$$da$jlprvx~*,<>B$a$$a$BDJLRTdfvx$a$Xdfjvx (*.068>@BDZ\dfhjvx|~$&,.2HJRTXdfjCJOJQJhmH sH CJ6CJCJOJQJhmH sH  CJOJQJV(*.068>@dfvx|~$da$$a$$&,.RTdfjlrtz|$da$$a$jlrtz|   ,.2>@BD^`OJQJhmH sH CJH*6CJCJH*CJhmH sH CJCJ j5CJ CJOJQJCJOJQJhmH sH CJK  ,.>@^`$a$$da$d$a$  "&(,.$a$$a$ "&(,.46<>DFNPXZ^`bdfh &(.0468:<>@BDFHJLNPVX^`b CJOJQJCJH* CJOJQJCJOJQJhmH sH CJOJQJhmH sH T.46<>DFNPXZ`bfh$a$$a$ &(.068<>BDHJNPVX^`d$a$$a$bdflntvxz|6 8 < > B D J L R T Z \ ` b h j n | ~                 5CJ6CJOJQJhmH sH 6CJ 56CJCJOJQJhmH sH CJCJH*Rdflntvz|$a$$a$6 8 < > B D J L R T Z \ ` b h j    $a$$a$                       !!!!$!&!$a$$a$               !!!!!!$!&!,!.!4!6!!D!F!R!T!X!Z!^!`!d!f!|!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""" " """"("*"0"2"4" j6CJCJH*OJQJhmH sH  CJOJQJ j5CJCJOJQJhmH sH CJP&!,!.!4!6!!D!F!R!T!X!Z!^!`!d!f!!!!!!!!!!!!!$a$!!!!!!!!!!!!!!""" " """0"2"H"J"l"n"""$a$$a$4"@"B"H"J"j"n""""""""""""""""### # #,#.#0#2#4#T#V#X#Z#\#|#~####################$$$$ $ $$$$ $CJOJQJh j5CJOJQJCJH*CJH*OJQJCJH*CJCJOJQJhmH sH OJQJhmH sH CJOJQJhmH sH  CJOJQJC"""""##.#0#V#X#~###########$$$ $$ $d$a$$a$ $"$0$2$4$8$:$>$@$D$F$H$J$P$T$V$X$Z$`$d$f$l$n$$$$$$$$$$$$$$ %*%4%H%~%%%%%%%%%%%%%&&&CJH*OJQJ CJOJQJOJQJH* j6>*566CJ j6CJ 6OJQJCJOJQJhmH sH CJH*OJQJ CJOJQJOJQJhmH sH CJ CJOJQJCJOJQJh j6CJOJQJ7 $2$4$8$:$>$@$D$F$R$T$V$b$d$f$l$n$$$$$$$$$$O8ddLd$a$$a$d$$ %%%(%*%%%%%%%&&&&&&#&$&*&+&1&2&8&9&?&@&$da$YO&&&#&$&%&*&+&,&1&2&3&8&9&:&?&@&A&F&G&H&M&o&p&u&v&w&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''' ' '''''''' '+'-'.'0'1'CJ6CJCJH*OJQJ CJOJQJ\@&F&G&M&N&O&P&\&n&o&u&v&|&}&~&&&&&&&&&&&&&&&Y$da$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$da$&&&&&&&&&&&&&'' ' ''''''' '!'*'+'-'$a$Y$da$-'.'0'1'7'8'>'?'@'A's't'z'{'''''''''''''''$da$$a$1'2'7'8'9'>'A'F'P'm'r's't'u'z'{'|''''''''''''''''''''''(( ((!(-(>(@(R(S(T(b((((((((((() ) )))E)F)G)6CJhmH sH  CJOJQJCJ j6CJOJQJ66hmH sH CJ55hmH sH  6>*CJ 56CJ6CJCJH*OJQJ CJOJQJC'''''''''''(( ( (((((("(#()(*(,(-(4(?(@(O$a$@(S(T(((((((((((((((((() ))F)G)L)X)Y)Z)$a$G)W)***** ******"*(***,*6*<*@*B*D*F*X*Z*\*n*p************************++(+@+J+6CJhmH sH  CJOJQJ j6CJOJQJCJOJQJh j5CJOJQJH* jOJQJhmH sH CJ j6CJ6CJCJH*OJQJ CJOJQJ hmH sH CJCJOJQJhmH sH OJQJ7Z)[)** * ******* *"*(***6*8*:*<*B*D*X*Z*n*p***$da$$a$O*******************++++++&+(+6+d$da$$a$6+B+D+H+J+X+d+f+j+l++++++++++++++++++Z,\,$a$$a$J+b+++++++++++++++++++,X,Z,\,b,d,j,l,r,t,z,|,,,,,,----j.v.x........////"/$/2/Ⱦ j6CJOJQJCJOJQJh j5CJOJQJ hmH sH  CJOJQJCJ6CJhmH sH CJOJQJhmH sH CJCJOJQJhmH sH CJH*CJ55hmH sH  CJOJQJOJQJ9\,b,d,j,l,r,t,z,|,,,,,,,,,,,, --2-4-L-p-r---Yd$a$----------- .&.B.h.j.v.x............$a$dY.......////"/4/6/H/Z/\/n////////////d$a$Y2/4/6/8/F/H/J/X/Z/\/^/l/n/p///////////////////////0 0 0000$0&0,0.04060<0D0H0J0L0P0R0T0V0X0p0|06CJ CJOJQJCJOJQJhmH sH OJQJhmH sH CJhmH sH CJOJQJ j4CJOJQJ j3CJOJQJ j6CJOJQJCJOJQJh j5CJOJQJ CJOJQJ;/// 000$0&0,0.04060<0>0B0D0H0J0R0T00000000$a$$da$$a$dd|0000000000001111&1(12161>1@1J1L1V1\1b1d1f1h1111111111111112222 2 2,2.2\2^2b2d2222٤CJhmH sH CJCJhmH sH CJhmH sH CJH*OJQJOJQJOJQJhmH sH CJH*OJQJCJH*6CJ6CJOJQJCJOJQJhmH sH  CJOJQJ5CJOJQJ:001111&1(1214161>1@1J1L1V1X1Z1\1b1d11111111$da$$a$$a$1112222.20222426282:2<2>2@2B2D2F2H2J2L2N2P2R2T2V2X2$a$X2Z2\2d2f2x2z222222223j3l3n3p3v3x3333333 $^`a$$a$/Y$a$22233b3d3h3n3p3v3x3z333333440414p4|4555555555#58595=5>5?5C5F5H5I5J5K5O5P5Q5U5V5666 666666 6"6*6,6.666<6@6B6D6F6L6N6ŽŽŽŽŽŽŽŽŽŽŽCJhmH sH CJH*OJQJ CJOJQJ6CJCJ CJOJQJCJOJQJhmH sH CJCJ CJOJQJCJOJQJhmH sH G334444.4/40414F4[4o4p4q4t4u4x4y4{4|44555555$da$$a$$a$555#5$5%5&5.57585=5>5C5D5E5F5I5J5O5P5U5V566 6 666$a$Y$da$66 6*6,66686:6<6B6D6L6N6V6X6`6b6d6f6l6n666666666$da$N6P6V6X6Z6`6f6j6l6n6p6r6t6v6x6z6|6~66666666666666666666666666666666677777 7(7*7,7.7274787:7<7777777 CJOJQJ6CJOJQJOJQJhmH sH  H*OJQJ jOJQJCJOJQJH* j6CJCJH*OJQJ CJOJQJF666666666666666 7 77*7<7>7V7X7p7|7777Y$a$$da$77777777777888 8888&8'82838T8U8888'9M$a$d$da$777777777788888%8'82838S8T8U8<<<<<#>r>1@3@5@8@M@X@Y@SATABBEEEE"E$E*E,E2E4E@EBELE`EEEEEEEEEEEEEżż6CJ6>*566 hmH sH  CJOJQJ5 CJOJQJCJ5>*CJOJQJmHnHu5mHnHu CJOJQJCJCJCJH*CJhmH sH A'9J9P9Q9999(:t::::: ;?;q;;<R<<<<<<<<<<<$a$2<===C=D=]=v=== >#>r>>>>>>>+?e???@,@2@3@5@6@7@$a$27@8@X@Y@@@@*AMASATAAAA*BsBBBBBC:ClCCClDDEEE/EEE"E$E*E,E2E4E@EBEEEEEEEEEEEEEEFFFHF$da$d$a$EEEEFFFFFHFJFLFPFRFVFrFtFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGH CJOJQJCJOJQJhmH sH  CJOJQJ j6CJOJQJCJOJQJh j5CJOJQJCJH*CJhmH sH 6CJ56CJhmH sH 6CJhmH sH CJOJQJhmH sH  CJOJQJ6CJOJQJ3HFJFNFPFTFVFrFtFFFFFFFFFFGGGGGGGGGGG$a$$da$$a$GGGG(H*HdHfHhHjHrHtH|H~HHHHHHHHHHH$I&I$da$$da$$a$$a$dH&H(H*H.H>HHHbHdHjHlHpHrHtHvHzH|HHHHHHHHHHHHHHHHHII"I$I&I(I*I,I.I4I6I:II@IDIFIHIJINIPIRITIVIXIZI\I`IlInIpIrIIIIIIIIIIIIICJhmH sH CJOJQJhmH sH CJhmH sH CJ6CJCJOJQJhmH sH  CJOJQJ5CJOJQJL&I.I0I2I4IIFIHIPIRIZI\IlInIIIIIIIIIIIIIII$a$$a$IIIIIIIIIIJJ"J#J:J=JGJHJJJKJLJVJWJaJbJiJjJqJrJyJ|JJJKK*K+KCKFKNKOKXKYKL LLLL(L*L6L:L>L@LDLFLJLLLPLRLVLXL\LbLxLzLLLLLTMdMfMnMpMMMMMMN~NNOJQJ j;OJQJhmH sH  hmH sH 6CJ6CJH*5CJ6CJCJRIIIIIIIIIJJ"J#J:J;JL@Ld$a$@LDLFLJLLLPLRLVLXL\L^L`LbLxLzLLLLLLLLLTMVMbMdMnM $ 9r a$$a$nMpMMMMMMMMMMNNNN4N5NKNLNYNZNjNkN{N|N}N~NNN3$a$$a$ZNNNNOOO-OQOROSOnOOOOOOOOOOOOPPPPPPP P*P0P2P8P:P@PBPHPJPPPRPXPZP`PbPhPjPpPrPxPzPPPPPPPPPPPPP CJOJQJOJQJhmH sH OJQJH*CJCJpRH7 56CJ6CJ CJOJQJ65CJOJQJ56CJOJQJ 56CJ6CJ6CJOJQJ?NOO-OROSOnOOOOOOOPP P PPPPPPPP$P&P(P*P 9r $a$3$a$*P0P2P8P:P@PBPHPJPPPRPXPZP`PbPhPjPpPrPxPzPPPPPPPPP$da$dPPPPPPPPPPPPPPPPPPPPPPPPPPPPd$a$$da$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQ Q QQQ Q"Q$Q4Q6Q8Q:QJQLQPQRQVQXQ\Q^QnQpQrQtQQQQQQQQQQQQQQQƿƿƿƿƿƿ j3CJOJQJCJhmH sH  CJOJQJCJOJQJh j5CJOJQJ j;OJQJhmH sH OJQJCJH*OJQJCJOJQJhmH sH DPPPPPQQ Q Q Q"Q6Q8QHQJQNQPQTQVQZQ\QpQrQQQQQQQddQQQQQQQQQQQQQQRR RRRRRR$R&R,R.R4R6Rd$a$$a$dQQQQQQQQQQQQQQQRR RRRRRRR$R&R,R.R4R6R:RYXYjY|YYYYYYYYYZZ.Z@ZYZvZdY$a$vZZZZZZZ[['[([A[S[b[c[}[[[[[[[[[[\8\^\|\\d\\\\\\\\\\\\\\\\\\\\\\\\\]]]$da$$a$$a$Y]]]]]$]&]0]2]]]]]]]]]]]]]]]]]]^^$da$Y$a$$a$]]]]]]^^^ ^^^^^^^$^&^0^2^<^>^@^B^D^F^P^R^\^^^j^l^n^p^v^x^^^^^^^^^^^^^^^^^^^_ _ _"_8_:_P_R_h_j_____________````*`,`j`6CJCJ5CJCJhmH sH CJH*CJH* CJOJQJCJOJQJhmH sH CJR^^^^^^^$^&^0^2^<^>^D^F^P^R^\^^^l^n^p^v^x^^^^^$a$$da$$a$^^^^^^^^^^^^^^^_ _ _"_8_:_P_R_h_j_____$a$_________````*`,`l`n`````````````Y$a$j`l`8aRaTaVaXaZa^a`abafahajanaparavaxaza~aaaaaaaaaaaaaaaaaaaab#b%btbwbbbbbbbbbbbbbbbbbbbbbbbbbbbCJ 56CJ6CJ 6OJQJ jdUji@iNiiiiij jDjZj\jjjjj$a$Vjjjkkkkkk2k4kLkNkRkTkjklkrktkzk|k~kkkkkk$da$$a$$a$$a$Vkkkkkkkkkkkkkkkkkkkkkllllll.l0l@lBlDlFlHlNlzlll6m8m:mmBmDmFmJmLmNm\mmmmνCJOJQJhmH sH CJhmH sH 6CJCJH*mH sH  6OJQJCJCJOJQJhmH sH  CJOJQJ j4CJOJQJCJOJQJh j3CJOJQJH*H*OJQJhmH sH  CJOJQJCJOJQJhCJ4kkkkkkkkkkkkkkkkkklllll.l@lBlDlHldY$a$$a$HlJlLlNlzl|l~lllll4m6mmDmFmLmNm\m^mmmmmmm$a$$a$VO$da$$da$mmmnnnnn n n nnn!nKnWnjnknnnnnnn*opooo$a$ 8$da$mmmnnnn n nn{r}ruuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvv v vvvv v&v(v0v2v:vuduuuuuuuuuuuuuuuuuuuuuuu$a$uuuuuuuuuuuvv v vvvv v&v(v0v2v:vy@yrytyvyxyyyyyյյCJ j6CJ j5CJ5CJOJQJ6CJCJOJQJh CJOJQJCJOJQJhmH sH  CJOJQJ55hmH sH CJH*CJDBwDwJwLwPwRwtwvwwwwwww2x4x:xy@yNybyrytyxyzyyyyyyyO$a$$da$ & F h^$a$yyyyyyyyyyyyyyyyyyyyyyyyzzz z.z0z^z`zvzxzzzzzzzzzzzzzzzzzzzzzzz{{"{${0{2{@{B{D{F{T{V{X{Z{f{h{t{v{{{{{{{{{{{{{{CJCJOJQJhmH sH  jCJCJH* 5CJH*CJ5CJVyyyyyyyyyyyyyyzz zz.z0z:zDz^z`zvzxzzz$a$$a$$a$zzzzzzzzzzzzzzzzzzzzzz{{ {"{${.{0{$da$$a$0{2{D{F{X{Z{d{f{h{r{t{v{{{{{{{{{{{{&|'|(|-|.|..$a$$da$$a${{{{||&|'|(|,|.|L|M|S|T|V|W|Y|Z|\|]|_|`|b|c|e|f|k|l|o|p|||||||||||||||||}}}}}}%}&}.}/}5}6}Q}R}Z}[}b}c}d}e}r}s}}~ CJOJQJ jCJ jCJCJmH sH 5 5CJEH5B* CJOJQJphB* CJOJQJphCJCJH*F.|L|M|S|T|V|W|Y|Z|\|]|_|`|b|c|e|f|k|l|q|v|||||||||$a$$a$O|||||||||||||||}}}}}}%}&}.}/}5}6}C}d$a$$a$$a$C}Q}R}Z}[}d}e}r}s}}}}}~~ ~ ~~~~~ ~"~&~(~,~.~2~4~$a$$a$~~~~~ ~ ~~~~~ ~"~&~(~*~,~.~2~4~:~<~B~D~H~J~P~R~X~Z~^~`~f~h~n~p~t~v~|~~~~~~~Z\d|` āʁ́   » CJOJQJCJH*OJQJ CJOJQJ6CJ 56CJ6CJ6CJCJOJQJhmH sH CJCJOJQJhmH sH J4~:~<~B~D~H~J~P~R~X~Z~^~`~f~h~n~p~t~v~|~~~~~~~Z\24$da$$a$4āʁ́  "(*HJNPTV$dLa$dL$a$d$a$$da$ "$(*HJNPTVxz~ȂʂЂ҂  "&(*.0NPTVZ\~ރ CJOJQJ6CJCJH*OJQJOJQJhmH sH  5OJQJCJ6CJ CJOJQJCJOJQJhmH sH LVxz~ȂʂЂ҂dLd$a$$da$ &(.0NPTVZ\~$da$$dLa$$a$ރ"$*,24:<Z\fhln$a$$a$ރ"$*,24:<XZ\dfhlnvxz~„Ȅʄ΄Єք؄ބ  "&(.CJH*OJQJhmH sH CJ5CJOJQJCJOJQJhmH sH  5OJQJ6CJCJQnxz~„Ȅʄ΄Єք؄$a$؄ބ  "&(.068<>DF$a$.068<>DFLNRTZ\bdhjprxz~!"JNVWƆdžцԆSTŇƇ͇·Շև78deň͈̈Έ؈و  15666CJ6CJCJ^FLNRTZ\bdhjprxz~!"VW$a$$a$WƆdžц҆ӆԆSTŇƇ͇$a$6$9]9a$͇·Շև78de$a$͈Έ؈و  12ghʼnƉЉщ$a$$da$12ghʼnƉЉщމ߉"#<=MNghyzۊފ  RS@Ast|  126CJCJ5CJ6CJ56566CJCJWщ"#MNyzۊ܊݊ފ$a$$((d](^(a$  RS@Ast$a$  12fgޏߏ9:$da$/7^$a$@Xfgry~ޏߏ9:yzADKLST[\fgu{|}!$+,34;<FGUjklvwגؒ  '(25<=G5666CJ6CJCJ6CJ 6>*CJZ:XyzABCDKLST[\f$a$fg|}!"#$+,34;<FGj$a$$a$$((d](^(a$jklvwגؒ  '(2345<=$a$$((d](^(a$=GHwxyzœƓ|}$((d](^(a$$a$TVGzœƓ|}Ȕ˔DJKZabij}~ÕĕЕѕ #$;<CDLMSTlmtuȖɖ̖͖іҖ 12TUst5CJ 56CJ66CJ6CJCJ\Ȕɔʔ˔KLYZabij}~ÕĕY$a$$a$ĕЕѕ   #$;<CDLMSTlmtu.d<69]9$a$Ȗɖ̖͖іҖ 12TUst.69]9$a$ۗܗ'(GH_`ʘ˘ۘܘߘ$a$$a$ۗܗ'(GH_`rʘ˘ۘܘߘ$%   "&(*,68:@BDHJTVXZ`bfhlnprvxz|CJhmH sH  CJOJQJCJOJQJhmH sH  56CJ5CJ6CJCJT%&  "(*,8:@BFHJVXZ`bfh$a$$da$$a$hnprxz|ĚƚȚΚКҚ֚$a$$da$šĚƚȚ̚ΚКҚԚؚ֚ښ   $&(<>@PRTnprvxz~ěƛڛܛ j6CJOJQJ j5CJOJQJ j6CJ j5CJ CJOJQJCJOJQJhCJOJQJhCJhmH sH  CJOJQJCJOJQJhmH sH CJCؚ֚ښ  $&<>$da$$a$>PRnpvx~›ěڛ$&@B$da$$da$$a$ܛ"$&(@BD\dfƜȜ&(.02Nʝ̝ $&68LNz%+,9:B8> hmH sH  6CJhCJCJ j;CJ5CJOJQJ 56CJOJQJ CJOJQJCJOJQJhCJOJQJh CJOJQJHBR\^bdĜƜ$a$$a$$da$02NPRjtvʝ̝ $$ & Fa$ & F1O$a$$&68LN|ƞޞ "$RTdfz|O & F0$da$$ & Fa$ğƟ֟  $%+,9:BCI & F$a$$ & Fa$$a$Y$ & Fa$O & FIJWkrŠ̠͠Ҡڠ۠ & F & F1$ & Fa$O$ & Fa$ '(/078?@GHLMOPR1O & F>@FHKMNOPQR  "$&(246:<>@BDFHJLTVXZfhjlrtvx־־ CJOJQJCJnHo(tHCJOJQJhmH sH CJOJPJQJnHo(tHCJPJnHo(tH&CJOJPJQJhmH nHo(sH tHCJCJOJQJhmH sH  hmH sH @RS  $&46<>BDHJVXhjtv$a$¢ĢȢʢ΢ТԢ֢ڢܢ$a$¢ĢȢʢ΢ТҢԢ֢آڢܢޢ68:hjlxz|£ģƣȣʣ̣ΣԣǾǬ#CJOJPJQJhmH nHsH tHCJPJnHtH&CJOJPJQJhmH nHo(sH tHCJnHo(tHCJCJOJQJhmH sH  CJOJQJ CJOJQJD8:jlz|ģƣʣ̣d$a$HNPRTVXjprtvxz|~ĤȤ֤ؤڤܤNȬȩȬȩȩȬȩȬȗȗ#CJOJPJQJhmH nHsH tHCJ&CJOJPJQJhmH nHo(sH tHCJnHo(tHCJOJQJhmH sH  CJOJQJ j6CJOJQJCJOJQJh j5CJOJQJCJPJnHtH;PRVXrtxz~ؤڤP$a$dNPRTVXZ\^`bdfhjlnp¥ĥƥȥʥڥܥޥ̰CJhmH sH CJPJnHo(tH&CJOJPJQJhmH nHo(sH tH#CJOJPJQJhmH nHsH tHCJPJnHo(tH&CJOJPJQJhmH nHo(sH tHCJCJnHo(tHCJOJQJhmH sH CJPJnHtH6PRVX\^bdhjnp¥ĥȥʥޥ$a$ޥ"$,.8:BD$a$ 8$da$  "$&*,.268:<@BD^`bfhlnrtĦƦ̦ΦԦަCJhmH sH CJ CJOJQJ 5OJQJCJPJnHtH#CJOJPJQJhmH nHsH tHCJnHo(tHCJCJOJQJhmH sH 5CJhmH sH DD`bfhlnrtĦƦ̦ΦԦ֦ܦަS$ & Fa$$a$24HJ^`tvħƧ̧Χԧ֧S  0246FHJL\^`brtvxħƧ̧Χԧ֧   "&(.0246<>BDJLRTrtv|~ j5CJCJh j3CJCJCJhmH sH Z   "&(.046<>BDJLRTtv|~S¨ĨȨʨШҨبڨ$a$S¨ĨƨȨʨШҨبڨ "$<>@DFHLNRTXZ\^`prtĩƩ̩ΩЩ ½ jUjC CJUVmHnHu jU CJOJQJCJOJQJhmH sH CJCJhmH sH OJQJhmH sH J"$>@FHLNRTXZ^`rt$a$SĩƩ̩Ω DFbdhjnpd$a$  <>@BF`bdhjnprΪЪު &(,.248:>@BDFHJLNPRTVXŽŽŽŽOJQJ CJOJQJ j6CJOJQJCJOJQJh j5CJOJQJ CJOJQJCJCJOJQJhmH sH  jcUj*C CJUVmHnHu jUBΪ &(,.248:>@DF$da$ddFHLNPTVX\^`fhnpvx|~dO$da$XZ\^xz|~ΫЫҫԫ֫ثګܫޫ024L\^fܬެ(`xĮ"(`bdίԯ֯د 56CJh 6CJhCJCJmH sH  CJOJQJCJOJQJh j5CJOJQJCJOJQJhCJ CJOJQJCJOJQJhmH sH EЫҫԫثګޫ246<>DFJL^`dfOdfܬެ(*<z|~ʭ.~$a$.O®Įbdدگ !"#$ @e^@`e0d$a$Oد!$OJQJ j;OJQJCJ CJOJQJ j5CJOJQJ0 0000/&P P. A!"#O$%- 000 &P P. A!"#O$j %za`nxּfa( ~~n~luϽ2fOhPNG  IHDR|^sRGB~YIDATx^۲mm&yq8q(D"7Li|ܤ*R媼N,Y[ے:DlőH|g{cc 4FcNZ9טh4cα>}_1P @1P ܓO|9z|c_b(f೿Og~m/SQ@1P 7dK_ͣg7D^b(b=OOq6#>F}oޛDiG#_E{t.`mo0u~!ݷ@wP_+>({Z?pGe0jHs_K>W!52QHӭ3?ލEMo Inڻ8WӍw_ekmgӻTmA|]S:QzW| &D ݽ$gMGR>y+Mf1~_?//>Ѕ>tT/4Owz9/tz]vk2QŖ.$@zLqARGZNtɵ;V/oi\Ւz<@{uٟݪڲ{}9iNtM}!+CL h+U}]\!E5XWEU^^-iGey[M ӭ8wg kK?8V(ˏҤ?_vۮ@1P 2p|6s|Q`>d@~fcfz ؏w~GԹ>$2]|?;15(b3p|[YA9J~o7Ϗ?g?ᅩc_|ϟ ؟}ϗc_??k??8~c~ ԇ|ԇ}玟t(d gFG>nDZV8Vs?ş:7H[_??3_-o[h/7|۟.?D}w][Qo~e>h?O}G?/>'_T;[@1 b?CX'_>Z56ΏSѱS?,_inϫOϟ?y?/{ߗKϐӮťq/Ai`_#_q_~ԣuؑٝnSCo~C~so۟o?[o_/_~햆b(nsc#?r׾|}G ſO}t㿿~vҹ}o:^Q1R[qVGGoP?j8;xqt__~ k-׾n-~{>=s;^s8d?|o{K9/@1P \؈wv~_'?⯿s{٠۟׽wL_~sҮ囿]غ8r9Əv/]{/?'?᛾;ۿgb(r>tSۗ\$~yk?g,ACa#]-w3v,7.3v,bQur\w|۟$#~ٚ?/ l8%._ٚgHmgp~xx;c}C%P ~wV` ȍ<-wҎ&1o__?w~m#?0m~s[#?fS}u|[&bX@CX_Jc77O;_N@#?q9 _z۔YyGſ>>]/H[o9>ۏK?;ig[?h叿||Ǿ̿v\kf?7}}x^Cp/~ۻȱ/?vEx$|q};>Co>kc|T=Z}_ޜi_Ki{_~mk'2M?Q>ywk؅G&"5HUUrt>+;*BC jlڂWndrg&x'3\] _ )﫤8١C?v-ڹ+>ovΨŭwj:sU^/R B b -SZ-jݯ^N$KX`׻h|$;s3@xyR:yت[/wC/^.+4XWxҒziP$ZlU]IOHƷwl¨z9c?v xz\et=;Zl^+o/:5r}y64}7Q[Bġt>/=odTj׫3R؇)70;i;єb(baվ|FQ-b( ܽǥ \1P @1P xo^~wƒ/b(m 8~z6P1P @1`eTG^G (oY\1P @1P 86ʏt+Cߎg)oy{W{@1P d8<~$cF%%{2\b(10;@{ ;rWs(b^GcCA'(bOݛC]e?@1P @kv5. 9WCN1P  >lϾ۝$zJ(bx/r| J'ot]0BU>@1P  3\9- @1P @@usjH1P @1P L2_GÖ~$/@1P [mu|SՕ2V @1P <_ۿ8t<Ӟ.u=s@1P ̀;icFYU@1P d`<;#l }Mw&G*bПNXڳvF`%V @1P <6NH 7}:6\N8ufoxz1wabwȌbCdY )OpVyKͷyȳ\/É =%<Ym c ʊG"y_; l'uF[y9o]FB Sע7!ɮglFF"5ϊsfqNnh\ٵy%m n!uTM4aI 3ˇǙjG䒖):db3aؽB@-8%~R[³j/_ ~ wyRv-$VlˀDIvwҺu,y'a\y( FU7^YDy 51rHܔꆮ)OrIna,I3i:$SK>u2ɕ#JU;./\?D+WW@s[3 eGx W G) !$Ls +iobtƊNs[^伸yZ佨HFy~f?H/tIjy tk)KF[[ӫ_=F~AY>) :ޔr7ϕyKm@wM+k\]d0gVKOc [ R6m:.u|BtX?!3K϶0 Fgȡ #xǩ~i:H tW $jf!M]upCvK1MKuc]8({OaZ\՝DeK|4 iy&FIQGz7yS{sO T3_Oio>K~=~/~Z!RM9 OJ+ )0XV)+ oq]VbdZOWzy X6|y:gb T/lh X1P @1`b Knh7'Y_b&dw֦zZ`=ÿp;}*IZbS2(DCNW 0 'hvo7qI PXHIF[[+E-Υ]s5QxKI5#^N%_JǚǞXR@,h=ϰ~7]{%D8,dG%S <*^A-'%EnTZ ݈{; Kjee;ֹrң#KjdDd 5I<)Ek$$o܅t!D%a MS51_qChbT[_ZBv)GFB4s oJtMHv%=+Joe!iPFyY-yD[! Fn\%;+/Q'1h T/τ>54*DЅ.b,/V @1P 喛p Ra걀1qτ֝lu޺.؍u;<\W^- ꃢἶ Q^YC@د(?wCѴWCeWrF4@nm 3İyVvv=1ㅣٵ7,q4ůnZK(]^K3p|K_M_C?+<ݎG0Df?o=4K/[,=厔lJ/:ܬW<r_ۿ|cڗ[+b(b`{~+o=Jxqh{m'{C.FUҼ>OSiT]R,%Q^yCYb y엊 Ts||;/K# E~Y\[d}Fi+J ۙyegXb6yV]:!J::ыտdg }z&t+dXФO=,7:Ф b׫\u䋁` up>}9wX#-;ciY`Y.,; F)?ƒEEƒgNDGIy_.b(f 3^C1ʇe ]mX>m-#uB!l Љ<@nOr2xuo{9+4^g|}Hb*Ҕ:I#ܥ&c>ąSo/J'JrS[ủ.toR`xEW1=c5KKpLn9Kӥ7[g_\dPI `e}  Νx=wlR尟rmrW.6ALڷMi,=]/oxu7fIryjqwE2wse}9b4Ɓ1/oTD@;H`ՑF'zojҲ\ YdXR;A:e+c5 s=x2/A&+ԑT!%RRZ'zci8&US֏`BA|'44%D]GjZ(D"BvCK^D;7/.1 ׋S? Yx_ߝGg]^*VJۭܘvd SzXpݑ^N W{@AJY#Br0d?]>o$-K6\<06edb?ыsq^20:̍ᮎ9s $3CQCCYz6X@gnH`Z0pr/+Eameb@=]xN)|J Ȑ5yx nb& &.-%koM:khm-J Tׅx5cwYܶĥ;RJSTO7oT;@o5O _p6C=뎬ם\-k-і*YJS]K$SFy4딇{y=}]P5C .^MO6ãnry"q5ek8K\^ϧ [Eܮ'gI籇O—-_Ƴ<?s;FpuGbyH z&N;}'~(u`%-q2ɯn~xO/?:9Ɛ5Cx8(dT˼uAޤ8r8n%MX+_ܿP}HRLw;imJ(!zH]"m~rQn@u:jK˔&(4mWTdQxw}œ_d+.'b>*牁(\խ!ґ)> Lvٸ,Rz y gnH`*H '͂s/+Eadݢ<-zzg8DmI-rEz$_d}a7/ůDNH#'0?Ne4\_INfʒo͋_I*[> ͓_OA(mRzXJ\2mUbWc8e7{z%~d_z秇eG h,P*o@ύW/@ˇ@1P *o*C} g1ԓxdMBcw֛էl^^a73?{@>OARRR\K Mkғq z$Ci.YV!\TG /ݬ Jz$V{z8*^̧.?Ξ`Q~C~FAofDŽ! Xxy ih NXr_/]aq|a~K~WG%O$RǤj3ĹwϾ8Z^ RRb`>,[,=Yzy>k>X Q^Q;5dzy&(b@f/=\_? A(M)ܟrIщ[uNH%g9LNHr,xy ه )3Sw/~~;w z]BvurRFu.ڭ%Z-KKuӭ %IY]23*4J[Eܮ'?@ t:f& A)6ūſGzb hY2Pc@opo`Jto%4S\J]_cVx`HVᙳꍗpS(>*ص1QtK<[”x5\%y fO\կ+ bݥǮzNA4C2WCFżw}yH4E+.)cJi1jr:T| $3CQCCWӣ{Wff{v[#MF+VXٔXOd݉~;Z>Vbw$L9ױYԅR޼SREAJ=Q^yC9)麱ƘVGcן.*]@7p}3YIн`߼I#o3GD CH9r3A "+ >WC]q\,|bX^#+^?:=bEwxLJI~#7:x֨2y۰]mH]X ) foh%n7j % b3<{5"oIF)@5jIkwFaS몌q37=. ٷ>kɹ8VO Sr#Jn0( _=tEo6CvAK\fTٍ IEY/NV]3Vn9ϛ/+Ea3Sص ) Yonrze[X$˂j.WdЏ[%Ѧ-s78, FZCJq < .a~͂w_TYaW2^%?VcUI%nHIDikiF]cK8+β{z%~dzղ9#| 4*~-V*>gzyeE1P @1po2{9?5S3+N|^[%ln{#6p߽cK׽ Pz ]D`>9G^%SznWK>w[otg8|e EzryJεiy陌}ы_ڢ񬦋4Z xbn4;9*5n_' = oLHtc=x3.IW8^:@K3` s+g&7DJf?˃wW ?u2;`/ױE lE=\2f$ȖGZ..e k&. n' { GwȐ7tK4~uݸc-CЅ,=D/w0p5j|zi&Jc3 .e7˵{z%~d_zA`ѝ47a@?w8'@1P  dr~k4q@Oxk&'t{_j}2|)[g;u[2(7]zFSNPOIř\7XTybs D2$yz/!%{++,VԢ-QөN4U"*+1 %bOu.ov%d_nnho%yݟY)KO>5eW~<0yy ț~u:#]\tDa t~= " (u(80{CK; x݅HKyYq1ҁwnINKP[ Ds $ ,l|ǍRVD ~]o*dh6MUҡI4߮EЏ!\㍼"k9o̖nw4/"8Jq.|D=^-$+t~,֍p,-Ə1-b|Nr)!\-$X/4"e1 P_uSTnmoESY ,8&S(+r{@:fV2M]#BEAo-RK}$ ;!Fx 1+iΤ83}ͮytS|qc:ˍU#hWR׽[C L.uB]VYQpX\*]j,cT/n.v$Z"I[u7|Mc{Jr@=]>Țב&`y˪Y|`FS~ROC 8W-Boר1'n'I'B#lH\tjb.ݹb P˛7%u&W|Kyhʰ=@< $) i2xI+EBXDmgwK]>>$%UHIbpӫFyebdSߡJvA|eERI C'5kF7CV|1C|-85''@l*XYzbxy/Gyy;+Q$P{_T^xۏ%I;!${J|҅ T7tix *UzAykj#)tQ/).~ dI)XP)pʼ3s OVK?o9Xrk^l$c28,-Ǯ{0q-]'4 ϤiL~oށuƒ'J?T\ \k(L6swY +/pŋWH?=^R|L۽nG+Ed%O3"%0,2y(J'[Jv/ERNeٻcCV9n1rj EIIɋeһpKT@}t4\*ڔ6"$IK^Ժ "CqIqs" W\*x*^sOI@tq*3CQ.]a`h(KАQ+aXL3.//W;Ƀ%.pr,8Hy,Yy25@=]#tk>OȚwn㿊e5yx _NwHחB u!E䉤7.v~u%icː7%%zuy2YIS2-ST pB濔'Z9~Ÿ}籿jT8[x=R7<^4S SB:C9uҠQYVYy h9KT/}`} *K/}ҝ0vWB|Z$zRږp<\J~)/17~{#W,YzؙÿİyX܊.ˮ'?5;~)n\Uo:N*5˯ecϙg0JvD|vmzݡI=v]q,YyJ #gW#ikw9 $O;Pyxk?`g*v1ށ HKvp8!M!<J;aevW`ĵnz Hyϫa\P䍓%b* D&{C]RrW,寭r Hn?lWorLL@ h\vR 1"vQݺ`y1Gg 8ƌL+va <'pEWrMf.`/'Vcu .\b=g4l`+Fd-EϮjN~d'Q4 /3V@ 7~{.R"w^ \nC-z onWAx1!N.̏~?08TϫJ<[+~IS dI)*oJwgMJ+%~5@:̃EH__d=ngKdczBV ("]1P @/_S @1p:gs+fasO ܟ>nX< Hw*9^ 1rxȐ*7{+>$eRcI:s$/@&]"eBl{2.&]*,Ȩ 1LQ;?Cq+.Zn=qKI1`acxhAO/$0[j֥_v׮!%y{Гۉ}6=d&S<˷MP^` ~ wԤ[%-~)v \iBx5!b_|HY7 :1$foaŏEKfrlp1 Dz95p)kDžn׊BoegC=+o>rC56%M:M򷋍/,0J=H$ ĔZ !&M%oYGw $K[1 Dz4NyG*I'^X}kkE 1QwB:3‚sodo^N+ğ\:ImJU$W~-sYsL($e uɶt 2gL. 6Kr毜7Nw??c!]XZt^]޺Ilŋ+8㫷4_C)OC'SIb^Zָt\pػ%_ֈ^;vhw ]x™玱.7e r;Jy.ا3PIuz @1 P0s_ !|]58#ZXp&:&!ݥm݀@n:KveS盲2ZE+Li l ؃`DЇH+gc|}{:W:ϾuoEN: $4lDiOֳ̅{@D.J!D&v/`M ߽ CXϐ7e#®?_z7d5F*=JSRKyγQTÅ3or<^2Da7uHugI3ۇQ :`;(!zx.d6a[)^BRx]` ЮTs"e@9*uZL & w+; deNΛ<)^R#W)%t>Jgp!i"9\ƛ/!tHanNmɦwu$GLr+ D!SKj 9"wg"׉C`fW$Jo$?6*ApTkRUɮZc>P]+'Ů21zpmWnY4v既*0@6fβYv?Yz*=ߧʉryb: .'HÃ}.19DBlbW?^n&! I j)yrE}b 25ߡ @J_ 2RJk˚6D?8pђ`"Y$WY]$Ks%KZ:iY~xS`ala37_ py)xny̴]9d7a<Ʀ%޾ j>d__YzO%y%y>db|AӰ31|EHE:`i&=UJwHz]J|y}]|^"k/)[Zu5F=py&72_._B L cIJȳb.H}곓&zYluS %D4v;ؚpws/]&Ǜvlu@v[yh]_$}n2 ,dٕ4[V]Rx:R/g8K=v YcvB \~bHo{8VS ~C&wJLC48oeK\n3&!zr$oe6Wj=ߤ|h&!y Ia%>yj)C{1ďGe>Jyh2z\p,b]JI/Mn}2Sb`/E,땗IܲV5-KO1P d@o;a s<-b`АSpuLj¶GHL T:=H/'M\xKALlt>c:o~.'060gl -v[3 hpͣ!̜,N:nmc*2. 9=Xxjx^VU iH_@g%o3q(0g @y3ߥxIm%_,=0~9Ԏ6ȂHݖIF9ֆGu jvB]XNsBx]<%|XF׺&;ϲ;ǯ{97p+v'}%1f6 #7c@n9ˮ$~]}^.`VZb( (ʮ$gr(bݛd7St>X'O`7b]11*Ȩ p3ͣ!"]+IzfR)bכ^^3^sl?Q:.Iz#tioC{1p>.eWYzub@ 7lı~UOc<`p7r\}Yv'ǥq-g=Ly| IB'ì9nKA?d:2p6'|=!pnwE,Rnlnz).+ZZJ>cW;3OJ e^)vyaTÅ{UM[ph6,z#ǮGk#]-nZD|Xw7Np*;0:rϑ)ׄy_o{K,;o κK ~ m8x8zxo&$?Ļ]W@1P @f/gƛP>BP KOFg $da6l1X2>e!{ 7y2?S0󠐣M _݀\p/g6gI՝Wp2t.<^$.3ZJ~YZd ߤնE"]&H'ŮWOn=q~/KyiFݻLo;Sgy}Cpm\vV홹SS'՝?N=Kfe_R9J9x:hp䕸U8q 4x< ˢ)H @+xw]`~Zj&.›gϮ!#p=cpn~FmqTvfD 3q w7./v~lu@v%pp,qr~.7,7MH\vGdd`O"xQ(͋E2auB@4ŕa(ƥ* 8mUCniW<:,,tYnV<^gw=c`:ϱw7'xݽVCϥ1~D|E{pD.JS"a7I ~w Eax#QC% 1Cْdr)&t,)x_!S7.UJV7߆󫛺xNu[@U/S"&U3Bz $<f>Bj"-p᭫rt)ڄ`Qޅ` |Y~ dׯ]y1ْ8?~o@y&< !I$3wn)&;\ Cȹ K}W]?Tkn{8kOM_'CA'Iy"'ƿ׮ϮI3]RwvЗQŮ4Z,hN>cA 6hc=I}kU.|Zxm)ڕ?'! rFj#ouO=,!^̓@BRʀfq>D矘˪Yzl@) ℭ%Q˒Kޕ?.͹ⴤGm^CgzBAZO.9-2 pi&l]y{I"?CJ~Ŏ.gZ毲f܂s7)^RWȜOGPcv%']P ؐ3dsWkUx Yc^(Sb1#ܵ~/%ޗ\XU8(d 3ynCq#;3ag,}MY=JC0 !}exFW逋o @zSA*s+A%|o)Rz?wC=D {#9 ]Ih%Y ?`WKɷ^ҼV 'cOin[g0zd5J C}D g'Gs} :`;(!z|&9xn׫ 2rd!oa *kWο/q`K_i^X s<97$.Dkm` 7)ʾE&H!^~X0-򮫶M\ͤR<qXn܇+yC \!`93t̉}9@ ^c{ݷy62uW%k6O;hIagifυMҬ<ʟu|5{e%{ b7lR[-T]y{q,'F[ŞYm׮?vta?6֒?ʺvQ|9oI*X,,=y/# #0JCw(J3G`nߌ=%.C b('W>gJx,qSM`3t7&ٕ4l9psL9(R-88zI]r)ufuGBtsaO B~Cp+e?QBϋ`nOWs&$5#U4~.?pѢĒ'DOg +#ǥ%ohG_Ke^bȽ_ڊ!I몰Cd ·!mv/i{C5noW~PB QJ+IV_:@>r[V2>; iM~]1i ύH5 @!\qXj@1uA\2CSQze᫩З-X9v{vV[]IҒñ0Λ ~ */p%v>u.E]XI3H-=ύv}a<)M Z䍔J)kB~^_gyi 74c^;CyK8YxβYv?Yz/=x^.LH„B-@> 3Ń+mJ8g]Fb(E drH|z=[е|R{(@Uе6lm^ߊyy˟ܐaȎ_B9xɈA>u{ VX !J<< 1lg'7?]=J$y6n޹gf\N Z_BF\jX0ByQ<̇+3s2'Vc{D{C.K3_,+2xaUaaAI99ݼݡ#_3N%a\c)8#L^ֱ :`nyz/7xvU]0oLXv³'zw C o-RFC=qKJzvRcKW{QJ>yGwqR-m1"}+"xY3:Lhc+7xŜex\p/^N|ZzA\VM=v;g}ƙ κ GOg+@JY ̘!a~#^k'eg'K$Afq 13"ݍySg®}p:7;XD%߆c {8oI*[,Yyey/#D L ܤ3,z:i] CpBK_Ǔc I>/ AW۵%z <^" ̏_q'z诅7B4U<+ݙy7&7p;֕)By>(Gδ_dR:;|fҊAibr!@gCו ׍N,.`Q|;aU3-G5.|i. 'XbW/Y~- $ -U_ wxM]bU/cbܻ(@oP:HR 2'z3K/Q=,)u<~[_٤<8\8|1FT*fr SKc["Ov#h`]ZmeǺr%![6~y=?,s<8r;|O:a0${jsR&33C w2j#K7Clp1K~JYp%X|(x$X H {9&Q)_0<inwrK*H/me_rel]unMңԣn>(}EJJqf\861.ToW>+[t]9а9yU$z{Z>HwCEzk񤻛]ULz;.eғvkŸcq/ǽK[?Ug02HM@1P ` b|!]o焱3Riw¯K8@ŻvmnLd( W> gWOJJbWbL!7.{Q!6~ΔgS7~;`YU@ՖOL>PJP5.D֩Ybμ7*֥LWc1T!»_m_ =ϗ8d.muDaH"j$3҅Ǩ:b@ _sXfҳuq_~4 e+|a< Nx$ -xpү؅ K>LIl | dh7!&/KLKr59̛ ka.q,8yYMמo~Q)uz^WKܞ%y}) .Cn>Q5}ůKܡ $2Y@Ӯ hН`dZk/Ҹ07]mnݗdó_e"S{J6&g@ǸЯ}]>aݨܕ]OL:Ks1|LoKHY 9);<8^'>%- lTUb@10À9tlN]Q h{ NGّ+|6(Kpⵅn{x#%oƸH|ZXc-ka܉_@}xq>%+x^C5L@V>;caFfy@}OxSvHD C{)CHx(43orI%=`?L@vWJ`= 0)q>%%bx[K[1< ϴ?4NyGI?-@V]H|z?Lx'LaÞa?z )vJ,8MIo2{+b8h-|H/'!ҭ9 Ů VgBTpn6oC fA,ŀ΀{nKɭޛceq04znEohC\I3q_f9GcNX ܋? } xU<ԁ[v!c ?W]\6s]]TtcaCnKJ;fUq˳ěg%qʼ[KKeeݫR'a {? RMO^I7KTPjUQ.SOt,^^y,=!(U^.= ts^n`\fsCgb}b(b2o{W^؊b(b1Nګ^^@1P yz`b(b@de_>\W @1P dd5b(b2+p}plIENDB`nKYҚ&Xo PNG  IHDRPRHlsRGBXIDATx^YnU}b>An]# I$cb`0FAb WQDEw|*\p"Tdd&ʉ#(>KsYս>~իu=<^z@85~Zw4I.s~ɧ%x7^a< +/7A2 !p ?>͵P8v_?bJ'3SӝbƃhUU=w»+>,n;4Bαx3O F?G2;&pqk0C4v$@K`s39fxLR9:3)3lfؗ_Zuoj?])egxg:KBXR\b0{o~,eWOy,-W(Z[ޒn&Q?*/.<³qS&fICoWaa'_M_OY~_mY?c6㯾[3ş~/ji_2ї8|m~{O6 u!|~>?@+{0%|-o _½ysjK__o /7|7-_c]ye + ;}jӊ=o @xI5wɇÊ':gɞT*M,eخ>ܜ?~/_}W3]/ojT =WW싷/}QJ}K_W>+|ݜ]~igxa؟|/~_"?_?4?_xj×j{)l|ۭܣ`ϼx9?C' aS? &_AҌ~߻>}kS>\<,y X J1h^Ó0CgռY4Oni-ҿڻb joٮּ9Hݯ?a,+^}wMdawr5/\Io|CWw<>ϿPؾ3|~]}|M +R~hV5j{Y4/H]i:Rl>}s}jϧh[P}@tJל OED_g :kx,lz /|+g3f}Rn'?1IP.= {]n=a(h9DKͤ&j75 ĸ~ F!@`t%3W -x;3Upb^M]s],7,>!lN }`vNk ^ue=a{/Ҽpfɏ͟3÷o/ܮ)gVzoZ}+g馕nZiFe馕 >LVnfICRMϒ<]9`^ه¥J<Ϋz9[|{Bzf,U¿r禕pJwiUK3|pn!!AtxGT̻oj%UnS]Va|J"}Qf|˛2ɻR_.p^cNïwZ˭}爾}|ux*=^-~a)Bj.{}@)ޥ^pU{n\媎f)Q:1Gx֌> eeWg 0~e 3@@ /{`]ǰLLdSsG]_+xZWTW֤:[07BOݣ#Kg$(jH!!]|:4:s%fSj_kxD  P'<=D*rX;.Y%4LKU.WQ)UٮL^PfSOF QRI PJ>.'D ЎEHEC B΁RyN EU `3TzgU^@(3A\oWhu3،ip *eMNե׹hڲkTvSh,*Y4 k)Ջ.S+xlY :;eŮw u  pڂb׉;Hw&&5@@ / ~7xu6|:96kG0N@+x H xՅ!x'8Ip@1dsX. o,?ɛ* 0 Ckh9elv z2/84l"6wv{=kLZ{|$c\"5ƆVeP)\@+m:tIW43QP/YK?;}39"χJ=!-j9 `.8m'Kd>W5JF W:q9f䯂=8d$;~&X^5z{v?`׬nJFVvpg-8Gf䌭I9bt{M \V;c eSz-gWl. n^A«powvM7`?\<%.i /kp ^] Ae}sW5Ld`Ղ)B)#_siߥ6,+Tζn5J{ X\^,;_)Xpq_] 4Sxyި~薞DZFd˭v2 jsHvzVw\~k3b4GISꇀX֔6+'!;Twi"x Q&vr+ bMr^*]~< <ڳy$ 4` `;@ @*x@B K3wJ`z/#X=vjcH*yJ`e)_zP"gHҨF|*uR 5c@`6[LJ5৳u2v55@u XW[Ai֌'Dsf0]{}9Ͻ9b@`"ob| B#N @`A,W5yw3ȏ,*l][Q ,esL}6cl KV=RZ9s'Xk>X<%E/=QJA84%-!TCD-)6v&u-Y$<:[z*^-!N%xZu[iveKwNR%N"'^M5JVTR֬N(2=_<@8>k$#,&C?zͨDBNTiJ7O*kP 2iJаOGhuIĩ"`0 pל ]W\(ʬ -f'C@7eq7=PjހSoΛlH<RvN%x2/ʭ%v=H-鿿Jz. &UD^5<5.yPn-eλ#AXK\*v@#3MYԭOmd~[rXK`k*Lm˱Ӭs4UHDM[-U҄)}ۺ*HmYL=)m:cWM8HO%x4p-U "Vj*Taa:+ВeuP  1'ٞ38Ճ񄚒U^tVz-gi)@&!x_NS0j)XתuX+T!,DC`n@<3N|jE:1߾hf,BJA؜K𖘦,s:lT9 63?k5#iZ=Lo <@Kd-]~kwڈuTT/uS/ALiMr4W %<dӋrCTo')3sRTŝE5S@K&u0K+c2P04گ6e-{ KMHy(_R}(R或%S;aD-W: FcȦ`ۈ@̖ժ#=-[] (r& 0 >J9[I'*Ns!@`e ^v6IYp ;ܴ' (oq@p@0 c@~D@N^i8]fPEz=}W~s!@`.^ o͟+m9PQ4V`4+ H*~Rhg/aۉ#O&' p\'{v藯tWHEk)g+5I^tvămXT @nje+EƉS6!pJ{/t~}d¿aa4cO @!V2EҐloO å(xG$ %`j[*@X@__F#(mZa= @R̂5G4Su鵽lk"xA=!@%*T"xYKٞ {¿uKSf 4uGtNmyYk& @TPW{ P"0x?g @Q:fx@V;0.<6[%F p XBSz.͒ȃi@P!H7,yvڌEsx7a{Jx5 p&}_ӌ}ٟٟ9ھK3s j$B@%_z b@d Ё-P"B@]]1 85(#ჼc(@ kNL @Bݗ4 pQ5i(' HrưՕl:C𖠍O@،@Iie&b@X&m  xb@X&m  x7E-g84Gbm 7H\;Ӓo4 a4QS3[\VL.ӑ$$|da§B=2bStz:"/{ x;lB#5^Z~( @6OG#'he(+zƒx! ozvkiwڟ&Y@`i҄Y~kY4ѳI -fTO'|vS;.޷" NYs5 BZXzAP.p]..~V,0Ίg73PA> xl x3 v!*@73PA> xl x3 v!*@73PA> xl% N 9o ;E6rQ x$ & o q尔RSl@? ռGcmYuiit5OT]k-/;4?+{q4bVhՔECfJٹtޥYF/%y8 :OЈpn;l)o ^{WA8;3{Xy>ǡxH*{[-ay'!٣ ::c=@8܆xеА믅‡s~".XMlnSmR6ղW^~ɧfIsP) M[,q,q7C xh& )@ @<ɐ)( @嘪= wv ~rCh [Ѡ*("9nj`b' cL/=@"cj\/&B`F짺cmF:%1U<ᝲW <V%]*⦲ ? rd6ϷZWb[*bCZ$Lsm@9qzvUL|zRc.@`6i+_}sPj`[i)km<vXd-0ސ<ǔDzbgߜީA:JϵE"?NjvJЖ-U5:)Ig2DdzVUhDئuexjQ?[̶0: B`~V3!H]Ymϱ*EQZCK|N0xU#m&RS3D8rǟ4!x]0! TJ_՗Ԣouٖ](+0.T@Gmr^.!0H !<3m6*&zYN. u2),9DDUP씼H kI+Jcrب G$=$pdhD!OvVW?Lg̈ -JmF@MZ@/X XN‰VUS׵(QS#-D񇙣\͋r8*]6 g0IʷR]l"M4!0L`cjP*bNNE<<<!Cl"g02]^ص-f9JX4 '6Q5^`ZTN}݂]ݟNkNk7` ';kVgcmgSƜs (GjL 樻t i$&.{-C'z:2'(ۋb !02PW~{w! I p2"x<';I!t)wA" 0FF)@8` F 0FF)@8c …c @Q,}yybjGa;i(~{; rH%4/XmHd.uC#Dvu4"xGo _!owoDgxc 䝳 %؜nX@8(^.MK P!ߴr[hW@@KjGׁ kY$/@4?|τ9<޴ri|!\vQ^jtlHB?a2fxgiR @P, 療@8" MG 0nZ". @`B  O! @". @`B  O! @". @`qfZRU؟n@NQ`J=b@V]d("[-S@Cy . ^!@U[r!fAWWZЯiiTQHxOH DdTAQ }8y;g*w4~g`ు - ^)T:LXv*럭n @OpѬ(&4 ..O1,#!@K*m"0]h]ŲrT@8'3*ߔ)eqtɆ#Jܫa[P5 CRjv0+E6?Tl*>=L<\zmF (vMg4"I 5lQ(~[W6R !m UC A {!@`@' A {!@`@' A {!Kx~{pݵ]{g{ߍ_ Es_G> p*Q^y'z̓Dв׿LW"PS\ H" pW+3v(.jwv$X@ p /\() @ewWs~ % R#Bx'*3CGR-c"B@[ke@=u˚gx=b @#p+Aox /;B}%tW<$Ca o "0=b!p@8xW`n̒.S @Af&I@$nQ!xoBK?ϒ.eZ@JoA5+xaW\:[eNdQ(aC'`uΩy^$̎9էkuΚ-R=k՘Mʃ" 8W*1 r?X@1Wyu $,g~=TdN.ޥթ}6vg1Wo YQ^u['}j ` wd);FO"3K;Չ5ik?Kv'گ6NI A}d="x)9TW$~Dz* @xXs%xv:%ee'5zQiHYF.RϪNWPU W}` 쁀K@uM[>ƶ|S2eCVh52V+lJpZ-R `} Wt8Hw'n\R#<,ϻ ,MjPgq28e!@1=b @Af&I@ em6޲jp(@`oİ p^^(;sR6b}Q>9VZ0[.0Ӧ6KFX3ښ1{O#IB\'StQcZۅ^mU4P].HhJvo =2WitZz)ژS?]<7N"=ԧPFL0]dGY@` 7VRBeeȘa%Z _] g\fY,<[g^!w6f@MYωNrWi襑>BzFPXuZz؀UæY{޲K+f4e!!<{A.:W/KFk$R~%%'_g-S* Tue)#+뙦?<~h\g:+!@7ᡴ[d!@`^^վгime#ȱ SXJd2ZUv2R6}) @N`)s>5_vQY)}.مU:]iߊ&i٨`B]) {3)Cp ^镾X_o^S?{r0lE@ oW<Ӿ]L0 <# {K  # @8XE 0HG1@8rlh[[jE &sos8 @g3L])3trVE~IDnqۉ!@`"]s<etO 3eZ56e7PA ϓ[񸹞˾6 K4z0kH4k,!@`[.7z&S_t |ŶJ p ^T,sa{P5 ,D-x[.U?$d'm-D  p8WJG|KWHk$NWk$ \ћJVtx 5 2*s4.]D AR# lB+x2ɫ92~,rJAx/M>֠R܊ht˥j%j @]P!CCw?cO-ke-QӬϴFTp.E-ICQA<<%l @7! @硄  w&$@@< @߄$@6 pxᛐ @CPO;| x xJ@ xoB C @8<MH !y(a@' I<<%l @7! @硄  Kk;[ZcA?Pf p. y~om̃Vy  E&*YtOQ'\8C @'0IDqL?}  $5DYC2YC8-z UVdbW_8=_S L!)uL,Y&ZX!@ x&o  x^}~ۼ$䙵/9l*茝WH%x<JAPbOU^M:*Ć$f@p !@G'\ڂ5ZsM%.Avڂbkg?] @pp ^>X\`@ؔWANthղޖ-gHP"K-d9 f#-}=l)́-Ry(TkloDbt ^s*j\" P_Du"+:^jSItYZ=} |ve1%'x-=q0:oN#Wd6=C簪mJmΆI?RNJ;\fg<|F?vDT59WQO .7,:T;AC `'eehԲ`:fS*uNU,X8M0%lӌVŬ[|"KVrJjJ)lw*3)cJ$r)aP ^tultNY`pV4kDcY4S=OkE_XWv*;q+' L(p C?k&rsuzxzS8hjGo`Kh)rb-ڎ,ۈa8-9]^|&Fs"V5Îj<: ;vV7o/!/fxvb'=t2Nlƀ5k__MLeJYVmJ#xYa\p, =>ۺeJ{ֲvLLlJ%I>[ŚW8DP20֕6u͆Fv)O+Ktb'K崣Y/8kA̮{_xsX7|ʫ}쉰3]%HS>yc?SO;+յ19WEs,yiyb'uΉ4="Z_ySU+m,I:: N}&HqxT.v@{\l9%X|Wzt@]\K]1 F!$@7?SH @I}~yp jA  ,A A2^MK𜾖 pJ$ .0@3_BH^Cfl?\A@5v^ Z,,@ ݡ!@PT݇P IENDB``!FH>G/AyA\dd xڝQNA};;! FBL$hB \1~Aj#3sD&ٛ7o罽q94{Ò,W0f^32cS!CgxEx oha]57dxduhCfG ^D_VCo%>|BM3'awj+UHtnq[fލrtwAwXĿnf8ELyFsg M7Vza h>"f[g( za=mRg9wJu( za|T>( wwwwww`! LE0BӮY7 "Mx_s x[ pTݷ{%3)9Sv'{5C=lN˽?,Xb+-<;Q;:< ]lyl9Kqb c8ON1퓁7{Pr[[W: Dl'e?Ž2Eb)a#*bBGxد\qoz^LtQ6zs[e,jf1+Rՙ {|=m>*]3 v,bLlj]t4d,i2F<ר1O0<ԋ+?oEG_/̝l=6%QPå/|G89o1Ojz~cL"bzc9p˩L~l;Mm{ siFm{y=_4P7gbbճ525o=O\^W˜y5Ñ`!е{7ZuzW_+xߗ%pu؎_2n)XҟS|:&h\W}IWckQʉ٧cm[8ZC쿪">$\Q:?I;Bk36'Z_xɧ5#1չ0rR_Ɋ1LJ|S~.>Xj/Q1~QQ^¼RU*+\RMc5?zee@+}܌pjWDqwBg~fD v(P@:0H*j)Ø1[QAPjէP ·7Aj+,U")?/wCi_ٍjb#cljļT *YUW0mwʕ3ϗs^~#O8擰Rm/8MY* 3]s1[uVU|m/8UoV&NM׽b׶0~miv6Rs@D1CU̘1B=j Tk z0[m{c!6܏F Ø׶7v!]Ypچv!}~m{o|Yԯ&|M%t,2arl81am, c-/` rl/1{Y-[Y-?es:!s1c=Dgb6D"4 Kh#X@3>E\s^ . [mg|'!|5Ac ꣱۷-"GPc(Csy'˺JKWLdYڸ3o\v<ANJFH=/w 'Võ'H﷚B"Vc5hc{Je-XysjcqZ=}Q*hCbx4,Rk0E)clL2 ? m+D{($Ȃ%u6v>9nvqyv=S1Ij&O3=vFϑ "h0 ' -pDh]}J$ FUi3Z8`< G%?5^6 rSUz.7 kM4+Y]dI7-x>i[hUl?#+َ mHjceVu,n\("k^w}J=>;hs Y+~^,h~ qz$:DC4 %!Kzf]Tߟ3(֒rQU*z}*+Dv4xøLЅVPi vX+!wf`!;îJK xWMhSY>?IPKZ#L3eMqY.i,6)郱"0lܹU(n.( ;V97yiLR'{wΗ~%|¿d,݅>p`W)>Q|3t_gI8%Gz[jESJT:z&NkN@Dos%T}GvNFks^nگv}'N\}W_~Y3D|j~1_0Eiv``S-ōU}f;Щw:!X0C, ܩӠ2fɘQ[5Y~%'0IQQ{[)eMa5)f~iT)^0G4gqm(؋[z>3T~ ,Vk?}!;w$8X0tY~PRB8+eb)u+7{4as\1\p=` _vFj;\]jba<8{^SKyZD7%Ө=eYoecdL0&YcK?5"]H/gzDcKyv/dz8?Q=;,?ϬW&}>CφOYg}eqO2fɘmT|4CIx,;k8'|-npH+!{^$zPNG  IHDRxt(PsRGBHIDATx^˳%G} b6݃= #AK-6mYn"@&B0@j@X`3jP ji"H &7OUVUVVfV>7*fYU;~?  8wҞ 4O+hd  дc>r@Mcx@@p7y|'| 6:Uz7;h]YWBr<*uJߩ%`KfZ}\#ݬA~!mkojG8Xΐk#w^sF6+Ѷ:&*avF.6րKuSvcsXam|l{9ݗ e;we$nީ#Qor}Y/;-ڶqkQkɿ& Q @@O3yԵ?zl',3%SU[;1a2_8%ko uD@G"_QsWMYfcL81;l8L`90l0hv ã;&g&yiݔw?+w*Rd-=9'߿g:䶫lPp&;SO_G6]e9x ]۬FT[勺 q5ћưLWX5nkۄ-{,ܶ:v*Fȿ[+f۱p\eF])NV!=6r[@cU*TOnq˿[t>?UKX-At?6 }#OS.>vyzfv;Y|{ﶋg|of̓@ PqUS3Rٝz C3*T~uoq u*߽3_(+ZuLeo[?Lnsu`RPD7z_˯Y}3%g~2[=5~v+MGvIa߼gG~wHʏ>f|;?dsn.h;w(s}7{/)?|It[|uoqvǟP)tW~bMޣ͗|AZΟK_]/w˯goto~%?gџU7nۄe-­f)M8|}m?nWqňmWa̻{nֆ} ;v%mݗG#m=y[ZݛMb7wL7KJf4s]TQz>/e?`71r4f1W?Ʒe^= 6,K{,*OnbJ솚cuۜ+?\.粘, Ě?ӋZ>S=9//v峟峒/~Z6>IpƥE|g"_^3j9KG3'~t >bg$c7~(7PbD|?yZjHJԜEYGJ߾Z"\K*reve] #f.;Kuٟݴ 4Ε54F*NoU|gs/7Eǚ*Q-W.PÛԢ>??۳:Q~BT>޲Y[g/G}E-GջΨeõ*j0^{[3懿Rοv9u.?2ͯmj9 +U|M-/c͏gQĚj=:֔{kNU{uܚRzq*`250Y}HTΘ7;{js  P@OaM&; 1zJ[-?*֔4bf3ԏ2Ce9F#!Џ5;RPbkz?ܞ./~N-:yܼ^ӽ|RFSVWg?Zw.e~gYF22n4:WkR" tNCYf4+bXS_rh7sar\˿w8yt˿”9ulɩdͿqfz%4O~ S:%ا-ՙ5f52F3-#4(ϘwhC!j?[o ҧ{9u.sSH꼹^< :,Ag1osԹ7Wԗin9 7;MKS.QfC%ּػ椀,;ed2MvYghʤQs4u<|(X/ݹyI[lr4Ҽ%H).Ӽ%H~?< }'|V]2)ޥ_=;0g}@ƸtxllPKߠs4bwfEgm{h/Fq5-}u<*,{[ŭ)u+9'Oߞ囑h"[95?}km&=jx =XM0T[e;ݖ:nɨѵͪ?\~q9&*o'{؈#s}`M,I9Y@!Q h[2=A4E@ c4:.#$cOtbQU耕˞zwths6#u++=mkv?ۣ=ZI^vp렣-eŌČf2X V! (p|f   "G  m hߴ@H&@@@4oZ $ LFMA  @[m7E@ h& @@-Ͷ" 4QS  Жf[Mk@@dɨ)@hK@  @2d %@VZ@@ f2j B@;~nߺ9nrI{3g/xԿV{@JkK{ {-V<5o7yW͑0tRpށf^R>Uʚx1iZпI|0',&' @@|4}X@@`R`ީs5 :Jp291i/ 4iK֑KvϓC"R:w\?_YH'{ CKvϓC"RfM#ь4@@`#5@@(QX@@@1  E@3 +" h2@@hFa%S@@M  @(d  @@@"@L@@_3ߓ1>;vZع$kmTW^=)~=}މ.=s¬ u*(LVӿyKJz{xUnu X. 44Yyl@3M,d %ϸkCK*R&5&o֍15'n;rTZxr۫j5ޮ^&hl4UTyoFӥ(UIY@ƼZVu9tFVeueZvg-{|YY@ ~;Y4trZ72G@sֵ:zFJ@YL,7#4neͧyz]n;@ V)^M56#9# oҬ 4Ƽ!ߩ@w{G{yyBnکoI Up<+U{򰳛~ X9& ;ڣ Kd*>.gS3-7HKMY e-loko,ߔU RG{K& T|mM=N_}MwgsKq kﴼ6\'x$"AﯚFuo@rhܩ  P@[&h hNM@@4b #\u" @{u1-F@h1dRsF  И@fc]Ls@@u4qT@@zFMΞW?i  .wp{k}K/)WVw^'싖I0sX@SXzh)zR}wտ;r&x<0ӿ 6; T<%lyq #  heTxL^Z@i4%t-AMu 4[S\uВt-@&@ @&a! Z@PiKKno;}MK@2:  hn.@@ f(IA@ ppK  \@38)" l4'_3RunwBj P'Ϟ;n! ) 8JDJ]otΊ[AVsVls+*˶6 ?CU|@qqIMyL"@ޠ+N=~1q?Z7SJʢ7:gzZRJgQ'dX* 8awzVOMaf):SeNκIıf珞#37N#D]ҫcXe tK_ݐ @bs;Z^ܳś"t!r9lLIwspBkL~e\Z!,:7zsvLZs&sb+Gj/XuG7w |u,wdw-gʭF|A$GB7ͅg&X]nDJ~o4UA8x_qΊq O{ue .S4c4=9ypSs{󗆖Y7HX+MUP?bY%^C:+xqY2l5sH@}'ӿǚ抎e7k~^YR^ց8;8_SKƧZGFY0o%a]hA`d'lK~@xLtiXG>)<>w3fS̒ҚK:|5 7.=OQ%V!ҡCx szsvᲽ/9pm׽ܵRFxP.: S<}[7VG)Wg^(1vMZʫ'%::|)N{'^)Wwmmm~GaOBƏGWʌf@Y-<89VoFIm@Su+Z)@ h.pF@ dh  D ЌJ  @@(QX@@@1  E@3 +" h2@@hFa%O<,#Wn%q(@64wZ D ЌNL)fCjP (M  @(d9U%E@Yf# q4{=9RKKZQ   h6>h>  K@3,"  h6>h>  K@3,"  h6>h>  K@3,"  h6>h>  K@3,"  h6>h>  K@3,"  h6>h>  K@3,"  \v]oE9{yrYsGukmm<ޔnK$*~UӮ<|u:̹{~^oT @@ 49u@@4   Q4)  &c@@ @6(%'G$҅1 pu=EZ#Qlok9΋huk*SV@S7(B@8 d4  DpFS7|hUCQ1$vQZJ^Kޣ\ZDEB}oi9$|ܬsɁu 4'Hs^.k5קo=8^MN׽:@@`5)@xYFZzHZ^@@ f"hA@es4R} 4b #Pru:VkzS #pkC R hVy4 @Y`z"z+n?瞠n^‹/gWV/|NG뮲=w]ӿSZ^stۙLQ  А@C3wgCKS{Mf4Kyx̼;ha2g^j#3O@@y3*v,* 컀 " u x#u^ȝ*u>,5Z{\H +A&^7Q$  Ў@C3뼝ammiM:.n6CP\-00[_ˌf$C@f 'ӟdX,*?0@X]@sub* )@ft_҅ԀwCa\1%Cbɺ+6[pyZ9ng#^6yڛZ5)RmsJP @+}4w4}P}EGS פ˕U^Z!z Nu\e"/hj@wO{Bg-cv9YZ2tijZ^f4lY  px\xE!#@A)@@@4  k   h!T@E@  @f_R&1R@f pM |׹_GsI3_ (dQVaf7OXXz{OT[1]rK=ˊa5Wj@M$.1PMcO T PQ] K2~ǾqM>&ʗ}<%d;9Yz쯖C!ˬS~ktO K]E̓h%HdtǾqM1/(s(GX є/K__`黁@*>FP?,:(U`K uZ\uΘL%[yyc4T[~y(CA Ow[.G:4fǩԹnyjs]f>@x#yvN>4"X %f4eRzOr~YUѴ]KMZԲ@3=7l̬䷙:T.=Țw`*@ӥICHG24=w#+ցwOqrj7OdnE#P̀bF33?# M 3:oz]@ h&8@@ d$  D ЌJ  Pm]4,,գ hF%s@POt\< `)@hR@w79-]@ h&8@@h@Aϻ4 TPW.|3PA-m~  @ h,Fz]S2!mY+dN@ !=2cČftb @@F t?b@MϞi5e}f4kPk[Ѭi   3 5'f<[rF h?ha<f43  ,k]چ'weu,ۿu?M?7B@jΝmC9,ya^ɻl]v CU@֞]  U@>Oot$qg7?ˊP+,uj:/6Zoz<75 7zuk>Kr֥0<^  P+u;}g+u)+3T˺+ihFsVW!c'2JKT3^Q8Ŭ9N~Zf4 j tH޹2l˺oQ^Lg%dzJ> 'ܷF cMio?>K<?u~<ՊEz~EjF @op34Oܒ[͚0OgYԹ  @x]ZF<j* m `^fMI[@KN ϫςֆ@3('!  hsFsF 4R  x#uXjҍ xU_y*3u(UE@JhhF40#|}q/ !I&js V7HH_wiy`@  @h ʖPS= @X Kanhf)T @hEVzv&h26(Kk/,Vͅ  /X\/W jd+ 8ߺm X4Δ 4'PɻΛ ]@ h&8@@suXuH@:/=dFVӿ뼠  @y h}jyIGx9:*yfݴQ=٭$@ sqQGfq.IsF  p-f4y(S?@O@3>F~s߾/-| O<,&G@ !ONVR%uE@ f]|(;Jͧ>{j/~}Yiy _xQWeނ hz D76=iɢ^x}ńd F6#Μ]_7QKd_#\n/zzIVUCWOJwg P" V'36jn.&hF2G@w\>ȌfC{E' @`-s\\ԱZ冟TV+(uٓEx3zCo6wy~E/6".rd2:Wy^bJu,k~ĺ ^%BN'  hf)*%(&2s&g@r ̭Gb p|i&ZŢO.E_~zk dL n^])\NhF/!Ymk ۷nUt#K0K_ 6C{ɼK 4#QrH[zEե?#EvGj$.fk48BiW?L%@@);W8Ǽa<)Fwa"Д8r/+S.b(PI@Qc2^BZMh>3k$@`:_nH @Y:7_V":u<5IhFm # eU{|{ksBZW/bs5ۯh#^ԍ]F*?tCO{k\Թ d}wL> $` `FojחcA 4kӟtGJf4=ZXM^pT/Pν̼WL?Nrwd(@p'"3PMUd.>oTJ3g/,@ @dJ2I򕇯n6]QKd%_Q.Wq)=qwd |JhϭKŒ_7CP{ 1A2 l4\@@9sf}kfAr@@X}eRR;ʭ1 :Y3HK|@@@`fF~QYvx5϶#H "ͬ7Uߘ+v^ũ`C@T@3dJ|Lufm3h:ƣC"Y|@ su9fn# #QLsrmC$wM@o%+3˺K_3xyB Wwǵ(*wo$܌q\Z_櫘̬t9]:VR! @6h. sFӚYKMuy TԆ8\՜&D@@ 3nZ!=jzl|YZ#+&2e@[O륂S@sx}˲G@J ,Ǩ/  Pf!E5@@4K1 " (jےӖ/|ot셒:"E[YIBhVٺUnRMe@x^L{hRh.& \ .R,WTUʌ gJܥI :ˬˌ&ΕKs:<*B 1p꼳aIfc @vu[47Wžmb]n5/ 4](VM.& $5uM,s6  f=ɲjJ\$áM/B糼z0)'H :knU 4犭^ŗodYk ԽD%jGo/9\ eJE@))JXWs+;Lj}\\#  dl|>ޡqΤPAt  !0x#"O::S">yYa}DCϝ͇wZsP dH>:~oFO1Z P=hF6io24OuyDH)׀J)5[=yI<МˤG@Yr,Kd)7X_D4"2^go$jN# ЀfDCig=3Hw΍bԄL@@ fT`SdkH*t:<ǚfbI?T~#hy" @z\jN-C&FO"h4_h>HOLZWd+9Kg4Fs0e}@ pfZ,KwkZُs4_Y?O , x p@@4!  QFs)M0Ks^>^M5 )@<= o@C_@h.xU͌;! Њf=_YYk+kA@V:{Ku6 Z{v!'@Y_"@@ ؞E7P @@VYk.@@`e͕;@@Z4kYڅ ,@rP<  Pf=K@@4WG@j Ьgi  @  @{~6v! "p᫫K   &7mkIENDB``! 6Hv-:Gݹ8 T^ xZpTv. ZȡIhtFΜmiqFFbXW3g&($aP0J^2̢\,NKHQةt8<]7@ J#]j,@dq=fx$7 [ko`["(Q91Vply7($a>mn}tgJ# I>4ARP&Hg 7A Xx{u$(N ;E?=kaѽ:^hri' ˭~0<Mg4iJaB? z?#V+O_4j E9)>ǒEHx}1!>»qc5OOg8w|/^__\gtRB #><"؁_6-IKF8'qGTvuUY Ϯ!Z,#,&bg],{;NC9=JQJ{QSBck뭬Oׯx>2A =M4p-d=C^i1h W)Z` ZxexSf@JrJeUd2Ts{Mr58(ýtTHrJW(s4.IUnQj/Q]S\jh+NiȎ 5E*T˲?,n1cj'*,$XȦV6pk[oQJL츋.$>.!ʹKXvC{ak6 ܮ{V^oʹ.YoG-$vjVQqZq CI1Xag{j%|ǮvgF̓gybM}EshjmFIkZnU(_nֆ#:~UM&3Nj׋ ]h3`xa ZSNm0Zk=ËDjWVyޢ"`0Tc++F0V|̠v}45 Vy9Y*jدo_WcbzNTx^ԇUxG]*)4(o):..%z׋nz(D2s8PoaG嬼ΕT%.yX-GzDlQ28Η4{Bh;Pp)5wwSkwpm/VkýtuTt7nZbމ5a~k:u;ֿG?' [z|Awgr ׶+;>Bm) [`! Йgğ= 5:y Thg| xZLUsjQt,\tjT[E]9KZ %Lx <LC?4tmmDgkf -nDAte]bYs`ι>=0l9?CCC|$i0 M; OCϊk8edu:'6:7j:&utںʚƲ~Ǎ"nW\)EO>0Pb#Wz;ޛX>Vu }0 4ڠHqK뱑F( @ܽIqsHY]5G@ 7=gk * ^qX֎}1RP<7U#yWWe*d\"TENP *nUvo RsHm##_yWejэR ~7.,'Eb>bSsBO(~}QR__SZY)3TMmLdX$[0u|Qd"Siɵ3D)3+A\o}ˍ"OrB`穃Q,|xd,, N >0"dH3'˛9+f#E/Fq‪Ӥ@NP?3tZ W-)?ykdm'Y{1k'""DOZYN֢X;)K!"_VͬV ZtDZd3x{#u|M7}'n`')4Bl| şN|:Z5%lجZEC%zPMډԳxZݷN9Էte9y0{- 5-,nOoA6O-ėT;T6Ι ϜpM<~;sRV Mwd-zkt7KFfgW Vy:L֊ڞ{Xl<ܽLœNTjF̌ ƫfz]Mm17"y^LT+!S(Qf*BhMTCXfv#]ky-FPa5hm L<|tLS^LXFbwx֕GRy3t0IX#UF6,{W"]{ TRйoy(oFLoUJc;V^&,%EgH? VFN%T(,'SSqa)vߋ}mqP/_ayAሼMށ}0w,PMkCX-YNϹ*5RcV=s-Q̶R ~9Q(rU &r*b7U2e70U̶R5h\MID;+՛ߧ㘫zI8nR,ĉ1({.^w:cv *miZ'WbUUFnR,kOY:!:{tV=ٖl}m"3ٚ a)qeSbf9rضtkĂߊ}L< }NKPDimb1_;C߱ @!,Bm)Ϻ .b#\j\]Gږ(hxna d_ "{ ʍ Er*f̳.a̰jAXCs2#9eD;f _zu3b9)ŸN|Ҍ.ݡۉ8{xVϾ*OVʲXD ia=f)וgeY,gGfhFF ;=,rv-&W6ׄjZmL=4M{g)K=4IY,0X5Hxb9=|X]2:^t1%2r"IqUe}(rZ7_.uwd2TUV;lXVQ}♥[+$kdmiR촵el!},q v3hgcgO]Lc;t=nwho\-\dW9_  2s 0|s;,+r}yTr~W8ty^8ЙN.oҟD_ N{/]YNE+1d_AFoj ^3b@ȹ)n?" 4c~rz.Jslj`2vQa+xcԖՕDj(wG=uv]wm[ؗ{DyK  _Toc77649770{DyK  _Toc77649771{DyK  _Toc77649772{DyK  _Toc77649773{DyK  _Toc77649774{DyK  _Toc77649775{DyK  _Toc77649776{DyK  _Toc77649777{DyK  _Toc77649778{DyK  _Toc77649779{DyK  _Toc77649780{DyK  _Toc77649781{DyK  _Toc77649782{DyK  _Toc77649783{DyK  _Toc77649784{DyK  _Toc77649785{DyK  _Toc77649786{DyK  _Toc77649787{DyK  _Toc77649788{DyK  _Toc77649789{DyK  _Toc77649790{DyK  _Toc77649791{DyK  _Toc77649792{DyK  _Toc77649793{DyK  _Toc77649794{DyK  _Toc77649795{DyK  _Toc77649796{DyK  _Toc77649797{DyK  _Toc77649798{DyK  _Toc77649799{DyK  _Toc77649800{DyK  _Toc77649801{DyK  _Toc77649802{DyK  _Toc77649803{DyK  _Toc77649804{DyK  _Toc77649805{DyK  _Toc77649806{DyK  _Toc77649807{DyK  _Toc77649808{DyK  _Toc77649809{DyK  _Toc77649810{DyK  _Toc77649811{DyK  _Toc77649812{DyK  _Toc77649813{DyK  _Toc77649814{DyK  _Toc77649815{DyK  _Toc77649816{DyK  _Toc77649817{DyK  _Toc77649818{DyK  _Toc77649819{DyK  _Toc77649820{DyK  _Toc77649821{DyK  _Toc77649822{DyK  _Toc77649823{DyK  _Toc77649824{DyK  _Toc77649825{DyK  _Toc77649826{DyK  _Toc77649827{DyK  _Toc77649828{DyK  _Toc77649829{DyK  _Toc77649830{DyK  _Toc77649831{DyK  _Toc77649832{DyK  _Toc77649833{DyK  _Toc77649834{DyK  _Ref58506404{DyK  _Ref60654795{DyK  _Ref46657201{DyK  _Ref57193758}DyK _Ref511633276{DyK  _Ref33941342{DyK  _Ref36450114{DyK  _Ref71350780}DyK _Ref513614242{DyK  _Ref60655575{DyK  _Ref58506404{DyK  _Ref57290918{DyK  _Ref57290924{DyK  _Ref58506404{DyK  _Ref60476380{DyK  _Ref54258013{DyK  _Ref54257938{DyK  _Ref71352313{DyK  _Ref71350780{DyK  _Ref71351373{DyK  _Ref53488171{DyK  _Ref49592311{DyK  _Ref49592311{DyK  _Ref60654795}DyK _Ref509992704}DyK _Ref513287970}DyK _Ref513434414}DyK _Ref512400745}DyK _Ref513287970}DyK _Ref468519553}DyK _Ref468519556}DyK _Ref468519557{DyK  _Ref63418489}DyK _Ref513437920{DyK  _Ref35073612{DyK  _Ref57557556{DyK  _Ref57602875{DyK  _Ref57602766}DyK _Ref509992704{DyK  _Ref57606653{DyK  _Ref35350781{DyK  _Ref35228298{DyK  _Ref57629584{DyK  _Ref57630348{DyK  _Ref57290918{DyK  _Ref71204126}DyK _Ref530386543}DyK _Ref530386543{DyK  _Ref35411330}DyK _Ref530372866{DyK  _Ref60725048{DyK  _Ref60725123{DyK  _Ref35414465{DyK  _Ref35414465{DyK  _Ref35420568{DyK  _Ref35415218{DyK  _Ref35418797{DyK  _Ref60476375}DyK _Ref514659517}DyK _Ref506189033}DyK _Ref506799903}DyK _Ref506800633{DyK  _Ref71018690{DyK  _Ref35159452{DyK  _Ref35156513{DyK  _Ref35240766{DyK  _Ref35163395yDyK  _Ref8568101{DyK  _Ref35231392{DyK  _Ref35232324{DyK  _Ref35241134{DyK  _Ref71018690{DyK  _Ref35241134}DyK _Ref535897479}DyK _Ref506189033{DyK  _Ref60910403{DyK  _Ref35414465{DyK  _Ref60901472{DyK  _Ref60901491{DyK  _Ref60901512{DyK  _Ref60904353}DyK _Ref535640501{DyK  _Ref35414465{DyK  _Ref60901491{DyK  _Ref60901512{DyK  _Ref60901472{DyK  _Ref58506404{DyK  _Ref45099587{DyK  _Ref46381768{DyK  _Ref45099587{DyK  _Ref46381768{DyK  _Ref64625138{DyK  _Ref45099587{DyK  _Ref71432496{DyK  _Ref71270864{DyK  _Ref61174596Dd$ <   C A?   !"#$%&'()*+,-./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[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Root Entry/ FPOj @Data WordDocument.ObjectPool1OjPOj_1137739560FOjOjOle CompObjlObjInfo !%&'()*-1234569=>?@ABDEFGHIJKMNOPQRTB C                        ! " # $ % & ' ( ) * , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A 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 { | } ~   FVisio 2000 DrawingVISIO 6.0 ShapesVisio.Drawing.69q՜.+,D՜.+,(@HP\h t   VisioDocument  mOVisioInformation"SummaryInformation( + -DocumentSummaryInformation8Visio (TM) Drawing mOMVt !fffMMM333?U$ $ 8 TD Arial@:NPWiWngdzs@:m Monotype Sort: NsSymbol5TF? Y@-1U;J:DT1EW-hTT<* %UbU 0{G/z?@E.>raMbUwww U  x wFB/T&/?\.? AaT&,",'/l&Qu&x w wy  xvx)x?2  w w wwwwwJww(?k/aU8B>E>E>EU>E>E>E>@L?>`x8B>EU>E>E>E>EU>E>E>@O/F-A'Y6; AKVKVA]$TCYMMT/VM___ow 35-eI?o\ #)!!4$ld%UlllgRGQEqoJM[ETtjA O.8OJO\OnOO????7ܻxu@L&d2%?izm#Ҍj sU将ҏH 2a){Μ  ww _Zc #cb6av i| u_' 0UF\u U?g>jo2# R 0j(N`Ȋ_6!3HH!,D///A`?dHcHǂ4Ak-f\nICUw%1k-(ap {ٻ )-8YVͷ!#ͷ/)T TE=cAUF~?M&d2?F\_.?Q6 J u` n?'u2 Ubaj jB>AVS>U5 gL@S|#I!N$5 E`;Copyright (C) 1997 Visio Corporation. All s"s reserved.`shape.hlp!#9000l>0>Udd@!! $ aU&2,5,0(%T#FT6.$jRDs6e 27(4N4^?p1u?1E>?x9119U6 Op?0G2N?;rA BC)q,^5/V:V"A(bCI}80 Q %[?0_@YM(}33 Q:%^_@_R_oK QEUJL@__aI_U:E\_couoo:nHl*-""  FL[#CJB ]][as] @+_$]MakH<( H<( UlE1 R T1<>;UFDfP 7h> /T7 UF~@xTPYY9 7;AU@bX?\.˫P} 4u `u bu  /A@6Ah@4u7` ?SjZdnujx4y b>4U @ -?T^,'T6-DZ`'j(R &,'4r<?b6666 *6 6 1MK77@#y?R  @+5ʕ0B@2?@2?45? nTtn*'LA-9b"_7 Phhn$>UdhX5 ZA6aRac`@-flJO_4:}3(WoiAhaE9 )3O'0Ur? wOBWH~-}$9  ԲFQz#H7OB id6}@+k7)sLU`P(t?2VO+ B$WD9K//iF\?wSj UPC=t@`0 @FDNTe@y  ahZ-(qTqUF1O*@F^JKTap@FxNUBF3Oze*|dAA_;!  @*1  H[QDgTrW5gTrW%EgT QrWgTarW QcXQrWQ@cXQrWQcXQGsVQcX'QrWQcX+QrWcX/QrW#QcX3QrW'QcXrW+QcX;QrW/QcX?QrW3QcXCQrWgTGQrW;QcXrW?QcX1rWCQcXSQrW@GQcXrWcXoZD1cXoZSQcXoZTcXoV"H2QyDaTb Q 3Qfn7Rz{1LqMqLuqRUiU@%EG e$e11h9Vc?@p|*@@~?@`_q?ߘ ?a:v5z%%??!:;OJFq22Dkcm(q.E'Q@8!DD lʈ0qrQ eO Sщ&1ARWaV\\(2?Cq==8}7"HоJı}4ϠXıU}⿚/Q5Tex_identifierj  6S?0 3 i^AS=d1'2r1BqT\$4PrQUو3 4"$Kkú75P?h=rQ%Ռ%C&6H4btl0;L}@ҦCV_eV1“3/ZF=4u3V=VA `'4>ȵLq/@4ͯ߯,u^6(/ ??.? @??d?v?Mk2?ʇe=ןzmocC?L &Wieoi3[i{N O0Aя1?$6/Zlѹ'̄GHm@\.q?/p&?QF&_Tu_t__ -Ij3RqaobĹ8I_&Qn88v4C5C}{M&d2?m'?0A]! g:Bo,oyבc/xse#¸﻾󥑾&u@fuϤl~fuopt_delima閟_.y9X]ˤzߞԏ|8 ]bX #A5pRr.QuA-Vh//%͟ߟ'կKApʯTi >PbtRrƿ'S.kudU-R'(-Rh"-ϋfu)p1_identifier 1CUg߅`t? Oxqu+PH'x<ޘH3ΪHe 5O/I6`OO__4C`T7SBFaY-n__\__9Y]KRqTY)pJo\ono KFof?y@iU"`1e}cBߪuL@̳pex_opt_delim*w($uGh6l$6)[bp!A@z@@ڥ8!!xosPO_OnPx_+OB3yLskE'}B// AO'OD:@oRodiI4:YAϓK!DK,|ԏ HT2;L}@7ҦV_eV <$65;PX;9j|K7A |COUOgIq,xGff4hOj|ώϠϲϐQ Z$ߌZ5zmU[CL &WtZO ZssA |=[ro=#G/6dAhqZ///I/MQ: ~6bX\.ҍ%#?Q|:3}%H5V?%h5%LK%7OSemOOOOQ#AI;:Y5&K|N% C8>SK7e?!.MM&d2?"?q1}39X1Ge_/wVLM[&*w^!M^%_x]|djO__""ȟ‬X8_(o:o5͐05p1_stringHq7p6,q3~EuUD//$/6/H/Z/6aA'̄Gؼm)./3/ ?$f8S?e?w???????OOG.,OlPOBtOOQOTUOO9UO __0_B_?o_oʯ^@_|MUoάm@ofex_opt_delimoo  0BTrqr|!9j|!q|[#'~ R/ R%<?.`UgyT$-/܅!$ !: "NtR# "S;`b@ ͪ¹i)&+6 v-?@;OO!ϒPP ?uՀ*&%%[gb(i845ȼi!&2q?&d"?XAs͇F&$E,E,IE'58LWTƏ؏ : -?m?[?,O?POٙu??Oda* (ional i?ter)j)4' 8 8'ƶ_03R!f oƶN$\W!T?N#VN#)g XUT 7(1 5D>@) wfrpΣeB!?#Fv v:'!bRD8Ŋdfewooo{zO[_5̖\Ofɿ)OHO[k$ 8 8#!ݓ(1q2;5 ߃k@L@@?@P(?@ BP(u~?Qv߸en,wՀ}87ù!//// ??1?8J1i9)qOB9wTծǣk EFbS?@zzk@@)BpeVpmC@z@jpɔW<`H{ B=+ ˆr!,eMjf, 3N# Ru@&bOHUx&1п{@?@"k?%?j(";/?i&Q=ݩAS˿ݿ,|8?UL6V?h?OOOXK=R0?B?P'O)@{?0?bO8(??L?e@Q~lM"Cѻz&?@vnOxB=wUaQ{B)_=A|v߈]8ۅ(Trw9=wwmwsOOOOO_;MD_V[_D]@~ :燙_;[U_)U_ oo.o@ewqwqVi uooooQoo*`r M4vU@JLmϨp ã[q);F 7 RUlL,{!d=@}?)VD><U$ 4(EPSON Stylus COLOR 860Z 4?h+EW.k 3DLLName16=EPIGUE4G.dll|32D2 3 rd'hh  q*0R2\i kjql3~xh~4 ?^wRPage-1GuideRectangleGesture FormatDynamic conn?ectorYellow fillRectangle.15ConnectorVisio 00 FaceVisio 01 HighltVisio 02 ShadowVisio 03 GraduatedVisio 10 Face2Visio 11 Hig;hlt2Visio 12 Shadow2Visio 13 Graduated2Visio 20 Face3Visio 21 Hig;hlt3Visio 22 Shadow3Visio 23 Graduated3Visio 50 Bkgnd FaceVisio 51 Bkgnd HighltVisio 52 Bkgnd ShadowVisio 53 Bkgnd GraduatedVisio 70 BorderVisio 80 MarkerBasicBasic ShadowRectangle.42Dynamic connector.43Rectangle.16Rectangle.4Rectangle.21Rectangle.129Rectangle.22  3m?E4x < G A_RUc MMc TMc lMc Mc Mc ̪Mc Mc O %c 4%c L%@d d%_% _%_%_%_%_ _#_'_$J+_C<_UD@_LD_UTH_\L_RP_B|^_}Uu_x_U_U_T*W_U$ _AUD )00T\ H0'| d07 ~: : z0"'0U U4 0#7V0B)<06:ET0O0^(0S00l0]:t0aT0'0r:0Uv:0z:0U~:0:0U:0:ĉ0U:̉0:ԉ0U:܉0:0U:0:0զ:0:W: 'P:U'P:'P:U$'P J<'Pϱ0%7'P:d'PJ:l'P;'P:|'P:'PCT 'PZ'P ZU'PZ'PZU'PZ'PZU'PZ'P"ZU'P&Z'P*ZU'P.Z'P2ZU'P6Z'P:Z'P>ZUBZ pFZ pJZ pNP'4 p_Z< pcZD pgZL pkZT poZ\ psZd pwZl p{Zt pZ| pZ p[ pk p$k p'k p9k pIKk p]k pokR pP pGz% pk pkI{#{5{Z$Z,RP'D}{2{D\*Uud ul)u' u! 00 BQ! !!1x!1Q1Q!~11$%U&'()*+7-./012456789:;I=>(_Ò0Pu!wFUHIJKWMNOPQJRSUUVWXYZ[e!]^_`abRciefUghijkmnopqrsTAuvwUxyz{!}~*{U A /APw+=O,-./01234 +@w/|1/C/f/t'//Tb!f]Uz$ih_aO$!I!79: yL?"?4?V68"W$M((!?@7D????9 U[$U#$%&'#O5O?D?dOvOTOlmnUo@[pUBZ^rUsegJUQKR$5D@O_!_3_j1}({?6%!!!%!O___H|_8~{ov/o5b__o@qooOO>A oo Ko(~ 1mr 4d!'r5I[mǏ^q#5GYk}`s˟ݟ%c=Oas%o()*?OůϤf]/Wb'!!!$ÿU^"U#$%&U'()*U+,-.U/012U3468Ul4,1O*@^JKTapK@ dVLUNC-T37AUl4, LA-37"AU~*<N@LqRgDq4u 'H<( H<( U~*<NEM RgLq{ * g"4FXh(u@( tZ-@(4sy :^R9V Ou&!B\@h >1  ,CH9Fj$TSr'|0>N_)LnUt}Ѕ2$D ߨIF?+2M6=yoh# ]|"LOyr]>>SryP& -r%7ytU,>]{g\7RVGuGG===0GYRgq=\|,`/Yx|gR=3RqxY0u & & ` -%N-V}h^EIdI?444*H*g***4?,SV^us%:BDaYYccnn&xPxyxncYO>:h/7uLKk"uq=d:ukVk7LA7 -%N 6_r]H>%)D)m ( G f  36>UStg|"$A9`9CCNNX0XYXNC9/HgtU,+KU`t{tQcDtjUKj6K,! & &@/) -%Juj^`?```jz[<'':c3Rq'K1tFQez/Xx I s(2=G#GBGa=20c;DP%dot`HUgK@6666"KA -%JUgJ>@@@@JiZ;Cm2Qz+T&~1EZdy8Xw)S|''"'A`bC$0DOnsiT@(5G+f +! & & -b%/kL-`A,7V u "A0`Eud )Hg`A"|]>  -b%/K, ~_@! 6Uu!@%UDtc (Gg~_@!{\= & &X]: -%`-xlxxxxxx;xZxyx4S|3R{,`:|chS43d=EHRRRH=a-Y:}}}}8Wvj1KP,d ooodE{&qqqgqvWBB8-"-AL -%`gwm XLXXXXXXX:XYXxbw3\|2[ @i|g\CHb3nD%(222(`A b9rg]]]~]_|__itt~7~V~~~iJ+0 DOOODp%[QQQGuQVf7""  !, & &y -%J[c<0uV, 'gFHe3 5T}38RWgv|;d>]r|qR3| ] >   )HgyKdjdZZPE; -%Joc;CtU6 fG&(Eo4]27GV\u{Dn=R{\Qg2qq\= (GfxdY+DJDt::0% & &} -%I ?^ 3#RL|lA`v%aNLx8^*(((e;clB.#uA g.>BW v>g'1; F,FKFjF;' -%In>g2,\L`ku!u@u_ukVA.,Xg> yElkCL"U!fG"7VuGq& &+&J&ta & & -%R>) yZ01P0Po *4?T>hh}"L8Ml:OdZ:ukaaMa-kuh?EneP;)) vWB88yBdbOE::E -%R uukxkYk:u0d0Ox 4HH]gg|,`-Lk/D:tUKA`A-A KU`t|H%NmdE0  uV7"xY"DB/a%% & &I - %r^I*A kPb$kA~siiisgH) $Cl 4Hr;[z -Lk4r-&W00000&0O&n>gV- rHgH)Z0 W>7Sg|r? o|eS[4[ eoz?^ )H]|7W - %rR>) !Ktd0aBKr!^SIIIqSGh(} #Lk(R{;Zn ,K`tRr 7u/NxGjf6 qR({G( c:`73G\{rRn{O\E3;;EOZy>r (=\{7`u & &v -%i&'PvZWe8eeZP;h14MeP;1J1 11Fp[cN:i/J%%f2:c (GgAj 2\{JDsc^H+R gggR\H<ncC.}I*oFwClmllbbbb'bGlfl!Jt<[*$SCrc}}h>( 2GGGo2<(mNC9F & &: -%BQpod5d_Z~ddy.W 4g,Ku/NnwW.nc/iT?+ uV, 5Ts"K$.8CCM -%B1PoxcODD?:^DDYn7avGq +U~.NvbWm7wwmNC}I4 tU6 4Sr+_##- & & -T%(Bk3g-VuV70000&r4uV7 4II"IA> -T%("KjuGf 6`u`U6qRtU6)))! & &0 -%BPo4]}>]-Vk,Kuk7hI*`A"qR) IrAu3RA` -%B0On=]= q6K`j t+tUttjKgH)t @!yqyQn2n y)R|!Ut2f!@_~ & &  -~%=,$U.uCXb9cPp=\p *Ih#Baf=vW7s I(*G4Q^Q}QQG==-2L -~%= 5U#8BaCl0Po<Peo )Hg"AuoFuV7rS) '1>1]1|1' , & &g#Y1 -|%< P'BwkXMCCM0bYx'en O*0??I?4a B "[1-BklXMMMEMnXl3Rq -|%<ggq|o0"WK8t-##-B9aXmwwwEwmcN/ )`A"y; "KltL8---%-N8Lal2Q & &%I -r%7;endZOEE4E^E}OZy#8B>WraaaW7L`B-rS*Vy,e PFFPgeSHHH S4r^ ,K -r%7cENdD:/%%%>%]/|:Y"7RAAA7,@"j |R3 ~_n6Y E0&&f0GE3n(((3R>{g| + & &* -%>]4~iO_TJJJaJAJ_s||8|l|LkElO.E;uA$Mw|hHH1>P>o>>H]| -%>g=}h^nI/?4**`*A*!*?Shq\\\L\vq,Ku%L/%uU!-{W\H((0Oy(=\ & &w%n -l%4RUka:LY7xxO/#BavOnv k)WR-q|}]4| q\R=dOE -l%4w2p5k`KA,9XmmX|/ggq"AV/`N`m```VK 72 Q\ff]f=f\Q<2cD/% & &8 -|%<dP0a8T 0ope[[e4z]| ?shI#) ^5 4Spr<BkwbXXXX0XObyw -|%<D0kAr4yOPnE;;EZ=o\|S|gH) r>3PRq"lKWuB88888/BYWxav & &c -h%2W8Kj/c#Bl2=GG1G[=z2xxmzm[m1x'; [z2=GR\ f?q^q}{{{{ -h%27+JtCl"Lu''';ZwXXyMZM;MXw;Zy'2<FQ>Q][|[[[ & & -N%% (GfrS4P1qR=13P3o3RqoP1W8 -N%%'qFRe3d0pQ20On2nQOe0za7zpe & &th -*%/OvxkkVVL(7G#f -*%t`````/VXKK66,'Fe & &6 -%BV]V]`ku7V:Y>g,LkkA hHZ1kLAAAlLBLVV```s`TL5, r -%B6=6=@gKUj6_9xGq ,K~jjK!gH(d:jK,!!k!L,",66@@}@S@4, qR & &W|v -%gB#sT5)QHHRR]]B]a]v -%g"rS4e 1(Gq!@_v~laaaaWXWWWaavG{ ;+e@U_j j>trttttt"jVU@+0E\Y(dnnncnDn$dYE%tj_u_L_"_t~]4/Xw )Sr(22=="=A=V & &n -%Ls4TSJr5+ "Lu +:?cix.Ml'nFOe/zuVVe`F<11<P:zc?h - L l    1Po -%LnhS43*R{ ,U CIXhw-LkmN&/EZooytU6d6E@&_~0ZCmHr ,Lk0On & &HI -%Ghihhrr}#Bb1Po-Ba >S]0gOrn|=qA|`gH) oP&tUv,l bWWWWqWHW)l&E d -%GHIHhHRR]g"qB|0On "Aj3=G/RN\xfqqq{Q{{{{qf!\@G_(~ xO0sTk5V LB777p7Q7(7 Lk%D & & -%L.&W0vEZn1Py4 ])|>]g|,Lkr%SOxyE&nWOB%....Bakv`VVV`Puy>0]Yr )Hq -%L7V%u:Ncx0Yx= \=G\ g,gKgjgggR3/XmY%m`N7/""jAKV@u666@0UYj~=9Rcggq{{ (Qp & & -%AHHH*=^=}=333#3L3l3=HHRR0]Pgoq|>]| ,Kj/OngHd;vW8xY:# -%A((( >]|,Lk((22=0GOQn\f{=\{ +Ji{/fNGm(wnDuV7wmX9~_ & &#P -D% 4CMXblwyZF1'Fe *I1hPso *Ihs -D% #-8BLyWYl:&&Eo )H0SOrn||||| r)gHS & &g& -%C;Zy&;Ed)44>>>]>|4"7Vjo;u`K7vW.|HoE&.W;d;PZ -%Cu:Yx%Dd =\{6nJO___U@+uV7\(xO%7`Dc0: & &n -f%1+g= xO0 !+5J`_6t9Xw ,Ku%DnmC$~i -f%1f GX/ _*@?Ts8Wv +Ut$NmlM#}^I & &,V -l%4&%E0d:EOYd d)nHnrnnnnn"dAY`E0kL7,V"7",,AVrkgggr,Kj%D -l%4%Dc%/9DD N(NRNqNNNND!9@%_~jK,~_ 6  !q6RKGjGGRq +Ji$ & &w\8 -x%:P 1!++++v+W+8+66666s+T+5+!zQ1qG(1Qp Is#3.RBqBMMWWW6WUWtM -x%:0   u V 7  rS 4  yZ1pQ'1Pywww)S|2"Q"p--777757T- & &H -`%.#Ba0;EOZd;oZy>]|yydE7&K````aA7"r>oZE -`%."A`%/:DO:cYcxnnnxxx=n\n{cYYD%+@@@`@A!{RnO:% & &\ -%F$ 8X3w=Rq'Fe!6K U?_^_}jjttt-jL_lK6{gRRgvlll+66;6Z6y66+!4SrgG( "-7 -%F8Wv2Qf&Ed+5?>?]J|JTTT J,?L+kz[G22uGVfLLL` :Yx 3RqfG'  & &K -%Be01:c3\wwllW C,.KU`A!.Ml6Ut/1DPNoYcccN /*I^}jK,|q -%BnECmkaa<WfWLL7# +5@!{p{-Lv5Tt$0.O9nCCC. )>]tqJ+ \Q & &:} -%_k;`ZVyL7--"">^}"-8-WAL`ku&Eo%:?O^d}8Wkdv:kLk"L-h|4h]SH>o4E)& dZZZd&;Peeoy>yr"VyoeZP -%_K@:6Y,x >]|  7!`,@KUj%Ox/>D]c|7cKDVkuuuutuK`,K, {gqH\H=3(nO% ukcuD:::Dc0EEOYYRd{nnnd6d`YOE:0 & &T0 -%jt0EOd/nNxmxxxxdO'02<FF'w%mEmdmw>]q<|[z5T}#Lk|E]d> n)O30>>HHHHkHAH>) gRyHZ3&  L- s3hghhs} -%jTi}%/DN.XMXlXXXD/&&laWM%MDMcWal=Q\;qZ{y4]|,Kjq\%=DnmN /(((t(K(!( {qGx2Y(:`, rSHGHqHS] & &@ -%r:::0%I%i%Mv%%0DO'dFxe3]"AkzZ;aB#sTu5L "q> nDzpeP1j````bC.:Yx.8MWl>]|7VulM.uV, -%r)Ih-V$/D&XEwd=q!KjyZ:uA"rSj4U,QyooNd$ZPE0t_J@@@a@B_#~9X-7Lav=\{6UtkL-tU6  & &Za -%Y Issh^-TaIIIII;^ZhsHr#"-A-`88888%-OxsI*nOz/zzzuVK 7I,h"-WvgH40PZdydyEyyydP& -%Y)|Sg|SH> 4A)u))))>:HcSg|(R{ ! @j /X|S) ymoNd/ZZZZotU6+) Hg 7V{ufG(0:DcYDY%YYYD0 & &jd -%CddO:C%m2Qp?^-Wv;Zy:Yx3 \ |    6Ut/Nm >]| -%CDD/#Mv1Pott>jrjjj j7tV:Yx9Xx<\{5Tsxxnn.nMxl=\ & &N& -%knSr -3VRk|7Vu%Ed )H|vV7A`u^> e1vW#hI`A]ze[PxPOF0FFPekVK 75,T,s""8W",7K`;Z*%I:h -%kN3cRmq 62K\`u6Ut%Dx (\uV6!@Utg>dEuV7rH)~_@!yfd=ZE;x0X0/&&&0EdjK6+ 4 Sr7` +@_j:d )H & & -%i/ XwqkaLB,Uts? e1w`XAC"/qHdE&/Nmvkk'aQazaav*Ih;Zy -%i8WEdHg)H]|"K`,Ku%DmujQKpA," 5Tr_S~dE~l_W@8!#{Q(cD%.MljVKKA1AZAyAVj )Hg:Y & &@ -%n`0O)\Aj 5%I:hcxBl1ZSrxc7Da%`6g=a)B r>3Hy\Zq;,aU-sT %[%<%bWC`8A.".. -%n@_yood/dcddd o<o{!Ji)HCrXw"Lu:n3RmXC$A`ui@fuG`A "qRx(Y<:Qfu` A5 _i~|S4y;aB~7_#@! &  & &b& .--$vW7 (Gg"Ba|qg<R[Hz=3(! @ _  (Hg:Zny"BayddyHS]]]H3)Hg -H%"Y:&0Potj j3tS|"/`Nx/Y(x3===( (G & &> -f%1n+6@@2@[@{@@6+!5 s$Cb{R3nO0kL#'Fe  -f%1>{+KjCwj2`QK{"|]>yZ;5Tt & &kH -%^ (Gg!j/tN_mK@, 2GQqf=fppf[nQO</'mN//On (~G_g@{\RGg=G=(= =RgxcYD!:@/t9Xw`A -%^7Vu:nxcOD/=\{`!A6 6@@6r+>! {\=>]|cN/7VujK,u"V7  "7|V]uH3) Dx n(OG0R\fqqqk & & -%[ 3Rf"Kj!Kj$Cm<eU6  ]> 5?^}3R]ggiR?3   nEzQv2kaaWLLbLCB$BBBBB~BUL+L Wakv{\= -%[Vu"6V:Y:Yx=q 5UtnO%a-.Ml"-w7X79"h>ioJ[!F;11'qQ2mN%'1;jFKP,e ez & &KZ -%nJi-Lk.C%MEmx3Rq Aj%9YmwxX9xYD/~iUJtJU@6@ @JJUi\~=9 b))<3e3) J^sdsEs%sJ pQ2b9~_6%0:EOYQdnx -%n9cx;o=H\|{"A`:Y )f=GH(R RH)mN9%dD%%`9,N m 2\ 5U~r.SC4CCC~_@!\2 N/ U)!4>HS & & &v -f%19X=\{+_~u`UA/"DNNNNgD=/x~Y_0@+! u L , +J_ -f%1 O(YRYqdnnnn n,nKnjnnnnd/YNOxE0%`7 |gnHN)/dE/ & &gb= -v%9:`A"rS4 2Rq!@i 4HS].]MHw) yZ1vM-<[e -v%9g gqq|Z0kB#"A`9Xw#--GfzhI*oFw l+l5b & & -%>%HgKt.C%NObnbmmmm)mHbqC. jUUU|URU3j ~xY.:N%Feu`A" -%>7`Dc2>2]=====2A`xY:%%k%L%"%:NcrH) Qo5ZTEs0 & & -%Uzp[YQ%QQQQQjQKQ,ezR3 +_$M<fGq ,Kjp[<%w9X99DDDDDD_D?D NNYccmexFx'xcD%jK, 2Q -%UJ@\+)!!!!!c!:!!5J_uiV"/mQ{ 6UtA~`~t:_Y@x+ pG (  wX/)3t3U=5HHH3xY:!u & &|o -%[Hg|3Rq 6"U7jVu$C%b:Ncx<Qx[Yf:pppp[F'V, wXgC>/yO0kL-/Nb<[#fBza; Z*yJi -%[|7LVk"uA`%:&YExd2 Rq3HR]g g!H+)6 @@@@+nO&fGk(7rIyZ;2Rq +6J1_Pto~ *I^9rX}w} & &@bl -|%<p-Ba +5&JPTyis~Hr ,$V8uWwuV7'1<<F|FSF4F <<'dE&wblCM.# -|%<@_~1Po $I9hCNXbmwBa&E'OGZfdZE&  L#  sS4fGe2<b & &&K'`---$j !-8COZeq| "0>LZhv "',05::>>CCuCiC^CRCGC:0,"~wskd`\rUdQVIHE:B,:6/' #/:EQ\hs~ & &C--%JCINTZ _ gmrx~#%*/38=?CHJOQVX[]bdimpty ~!',28=CKPV\bgmu| & &bc*%bdinprttwwwyyyyyy|yvyc & &H<%@:51,&   & &/;2%~y smhb\W Q#K%D'>,8133/ & &2%yrke^WPI=4+ & &M8%CEE~EwEpEiE`EYEREKEDC=C6A/>( !1&Dm$%(@"ZfVm`9{Bc $DRR޵c !$,@ ̬f=ZZc1FkZ/1J)Ƙ1FY񜣔sZ+B{ݪLf#]DY;lD43fFc@vw k0$k|4Z`BIZtw [UR&r`w>>>m;d{P4ƔRBJ_u}d{"x y!DB! s)Z Ƶ?sK$nkXk-EZkZ{w ZkK) }_0 l1C-3)%}=-"vXA*>N" H 3;IDRZ+<&SJ9gpwn wIR{ !k޻Zପf-"JU BmGQFik1tޣfEH$I [kc@H"D ,; a, P W{/c1 cRʽwWCVwߝίgK BI>>>>>>> 23"݁ M("B0e`TܝwQJ*BkD9g!49k1{" sZkavw@D!J)w3_hfVUh(@*|c㣡Ty ` "wLH缔bPhLDTnw"ǽ7!9̼;”l03U"P5j[k5k-l@D"BH)` 233 TD@LU!sR!$!> ! HAJsc\k9K)#!-3Ap$(ιO U],*9祔޻c|uwD01@%XkQJ[kk-!DkbzOI}A @?3w?s)%.")k-_ؖ-%?GI^L"@#"/IHJ$I$I*8$ 0∨NUH,l@.|||||||0EDfޝߝ0swG݉D Bhm63`fzwEcLJ c,(23?D;f&BDw9D4&"@Q֊1h@%mG!Bh T!D{0@SUf{/#5lpw,"23)3p̪BD3HD""ta9 !JTp @t73>>>>>>>9Zkx PJ3f̈sG H$"U%t!J)BH?1X!TJZ_%p"ёI0B)W)?!E9rOGaJI2̺[Dv>>>@@0RJsfffeU +gU53x-"q`$HGD*" "wj_wU%"of %UWU"ݭD`%mm1#lw`_[>>>>>>>̈! "D$3JU "JUU]D{f>>>>>>>֭5!z-"BBscz%?@w"""JDV BJc̜JZ !z?1@mq Dfk->>>>>>&.Ps !!>>>.w@DܽP݈hfPm 4LDtlYkSJBRI!Bmшhf" cD9ewB&?T_$Ii23 ?&jLJFYU T@ZD@||||||||||||PιT>>>>>>>>>>>>.Zw||||||||||||PHUGI$G *s "@fEkms~fx`swLw$"$mxj `HBN (RB""RJvw3QT8GQ!h9{0$IZ!Rs>ι1 1{80ҶR"J)@e&3{Z  󏏏bfD0ƨHDPJf nLDDTU`xcxsB99'4"EtΥ$Em"!u)%P(B^F[kwB@Lff bDLJ3J) 3/"cRP"QDtwU13$B^ks7!LJ6I8L)g!R{  !013KD _I6{{PH&@e&0sw+"8!A=9BT^BCkM(Xf&TJ` !!c,9%i`w`f "@+SJLJBZK)B!Jc0!D=ݻU[JAZ9&"! @T  G sQ {Xsw"f&\kI9Zk@JiBc1c, [kBQff?N)q=C  swfD$"hU3RIIl I "|||\P ΈhfeV-ŽR>@HCн 4"/6HpQ֒R9E5ZkCZk@q{sSJ|||`P% mJ)"޻朧h;R A_d-a”bND0aJ D@QA`1>Z9BBK)s4U{w (R8J)>>>>>>6֘ Zؖ @⽗H$@ !8K%mx%hYU;0mBX{{J 303@#"wnT&B@Z޽f`fqޏ18秒$u= _$Kmo_ *$Iu]׶ ǁ"!R $`,ZB@PFDqqm$$XJ᧪ꧪꧪꧪꧪꧪꧪꧪꧪꧪꧪꧪꧪꧪ ???0 00? 0 ?0 0 ? ?0 Wm^ݽ nwweA`\Ŧ„ 8v\`E«faAAAA}I@NKduxaDa 0`aaDr$Imm'!L)$&-msN!D)hK@aENW[J,Rp؏؏̏؏JR6!g͵1Ƹ00_? H$X̪]pM9g=Bh$HRj9s.Q`9/ `@&#B1##v A60 O0<Û O0/D>_  %jaK0=zt 'hcw 2swqfmD -v,"*3Eea 8  P : 0hpI^ %#xPzi(80 80oH4,= twk0 8LJAѶm{/ƘR BC@) {@R彗"(h9gEPEqp*@U 4!h7HBpب0 9)\. `X` . `h`g>mpWG 0| ||Af/{SJ{ZD쮻!HU|: CEyA DDDwGH) T,z!&L1=es \? ƐLSDPJ IRSSS˿SSSSSSSSSSyӊ=" W 6]C @@ pLJEH$I [kc@H"D ,; a, `}%pf`U4A4 ,@F=;OHd,hX$hTWDۆ=|QAl1j8N8ESD^8ESD^8ESD^8Eq[-Z5%_'Ll0 00A 3QDHDdAUeTUwg&*"U4M T!~\)mN p‘tde.>[hs3##p$ ~Gp$ ~>%evbBhrp)Q!l3 @4 _9?^dP*Fb{mD3(U3Zk P՗$@@* @{+P@'T8T8X2 3^: wv!y# {,` ,\p¡ ,\x~_%IK ;@`g>Bc!S$$&!ݶ `w̺;" 3BMhj AFP=1t0,Nf@5?nB3J$hp$0 p@T8P@T8TIKI|&8BIy"M``#$-|@efD"FQD`*,@U*;3ǃ">6 CЀA@ˉǕ< ?#@GA 8 $M_E)RH"EL)R`56iP`۞C} !H#@x 4 AC}wBR "fFU~m>XD߇Xtx% &!8,kN -@ _jN 0a j0OhZh" 0M9D0D#Q<}APEDg&$cs^J1ZHT4f&"*H(yHd"9)R6$ >/Y'R yBtJ(Q"B@0POOOGOOOO(8  hW8|bvW $ 4' TABZZkZ؀ER dffv7*@dž"_P𓁀'92#C <} ġ >|p _ _   N#Ej|%FP(foۑP )FZfޝ T?HQJ9sp*;|hYA0AˈC"#MŐM2;?/H#μ~بq~AAARDmʁ…& .~xIr`A/m>I#` 0H 0]{H0̏ODJI ~>N`6S@U8 7YasrM,*ݯ˘ `0p @!dAP ooeuW(it/ZC="BeC  o L%@Pl pDx Ы*'"4"($ $I$@ '`&_^Q 4A`H=؏ Fh/yr 8\!D@4o@ N N h9h_7T~["f3G>>VPi׃/}@`FOZBBbDiLu 4@|$_bN(l!@Ci 0 %@:L5ɸK@"<l!.03U"#u7BD,È41(PhSF 3fLVlN'LD?@J@OY ZeDU6Wbz7w׾Y3q2P`@^>!`ţ>>l,zt@$ Ԥ0x{s@(WbS&fugoUneqZioYswե] ࣁRsmp)0gK(8G^fV"Dv7@ "s/PxE9*/غ= ×aᑷ'b \U :^\^ Mo?P@ 4;u;q4z}Ax7;089wQ E@W @9Gka!J)`fv̘qc||8,Ϳ X! 8PrF 4@>+OXqVht/{(p8"I tt[gQCy0XnAwua; J)ZoK$2SD>>> @.G+F@i;B)U*T W,HU `#UN(-. dq 5@~7,-@x >(8:}~ B ܸCaJI2̺[Dv>>>XCt9VTIk@`:葇AdɩJDn/$8y/ Գ #q~JՉd!`E M4 x<~6V Ϊjf 3#[D%W} d@T$Dzv΄5lg$" P K }Y`;f#( 8 ;ͷ Ƅ?AqWU"f b,  "@TQ) hW/ڸ~ D|@#( h"@B a2dB+(`B(_(2ɇI%@@%mm1q0m).sמ׀֡AaK[?!bu :p:[j|\-;JQd|_?AfD"{ F`9 )B%B-aPBۂ_)!bzn @Ûyc6 WDVB9g >]"5?؀/ /$_a E? Z֚BkUED@įSB7焌0^1^^;D^F "3BLDz@ Y@Aclu>9T@`>(1sZ+!Dk-T||068urvswi*85u-u9-,9,-5u5959u9,9.u.@"ʁޅ@`!_. fab a'}(~i @~>.Ps !!>>>P^@q4S|G'@@P$"@@H52quCA1uOء <  O_R?2T$/ 4LDtlYkSJBGIУ t/AН -H?/x0 AR:0a/50 W#`A;XfLT>> 8D'80BP/ )[ Ѱ @AV"Dxn @ AP@~*f"+"+BK9p=mQ@"m0l009`cΝ;w^b: [Qy;4)Z|||||84h@oAtHV7Dm s7O>,pl .2sr!Ģp*䑐?P ^b#E":@|a^ 13y ~>>>>>(pa@hETƵSPQ 'p4CZ @w$)% <'7`@ @`0qȡ*L8@>}t5!`]qWN㑔ǿ  >>>>>8pa8l]( v JS2UÂ/zSp7ΐ@#~ W\^Za|^:$#!~{</ `@U S1,K!K&^< -X!Nxeq!  9&i&qy.@pB*U,\ Ay kBGKU@  JƖ? dQ)$Gc`R1 Z<|A )x 2edRǙ[kE &!M A>& %7`N!fk}PQH?c@ @ $di`xs0Y\* &@08k@# C @"<G _? {`=9v@q &aoUv= q4#2Z$uϒCw$4H0|||||d"f D 6hXJ@`ONl ٍH۟Qo ` C B 7 B Blsԛ. ?m~?%p Ĩ mݝ L%'xbq76\Y I>lP7]T7n`pGf-~P T +Zc]8k@  BTgo%``i`ESVZp-@T * 6sPv&ظ!vy{|DcSw ;[ٻ} XsP>U*HG 2?80 ""=nLP37VSv9Dhěm2  _ȑ  \`d?.90`ĸSB56]o0` ]*Mݮ i8 0Ѕh7<4;BD,H'+pGF`끏uCQo"и |IF &b*ʁoX:Hʀ-DAG 8 x<DYȠ9TH}" (48} V  @x O,|@ >O""$W#ΥEasy$7$PyzlO/~ȟ?xE+>e} PpLJ L $[D 6 ˊ,MJPl;7=-xh;*vl% , ;q^k| @p\. ^p\.  y w@( 8 | `|||||H _2b1T@$J0R-l1 ~a0= y\M @&s_i~"PԜPXHPXPXPXPXPXPXPXP[PXPXPXPXPXPXTXdL刽tLg)8 |||||0$_0@ô *Bqk]S IN$yP AxopC 7PpC 7PpC -PpC 3Pk9=}=YD 1| p|||||,|0|] 80.D9\!A&1 y4.:@z<7'ʁQ*I@ @@@@@p@ Af`Xt@P`"P#@ p  `#FQ0$ٻ %PPe#x߉g Dn l*/5*qpW[I@ A | 0<8p4( p6>>>>0F{IKDS(  @ q 9lphC9`)K*M*Q*X*[*[*X*Q*N(J ʕ>ZԀ ڧsܙQ9V ׀@C)=D;CǠ# ܱq0 V mnV}ӧO>}KImn`AZ@!"!@ | |||||89!@94D0D!p"F{|~ ЋX Z#K@@(,mǫ}H/i2@p@LJ D <$3ɂ, 4 M R B1ɡ #5\nLɓ͚8E>nwbRȈM D .\p… .IpksHwF7ؚ_ H DSBO2J&L`X`PDw}rDHvOY=~HB3^"P 0`XA$?LM &@ H;hXf0 I6:0G._8|P?4 ЀՁo1e2! ]TU { 0hD{^T  > \ 2BGϺ |L@|A|||||XPx: :7qtG ,d<://\K$,p~  @aA;x8|͙J$tP f̐vM ,;W,`E`"I7X @qa|6U78e=ՁZ G oO_x@@H(8<(Ao_ @`iqH 8BoHHoO-h@9gf@D PFD2 P@ H7ζo H?"@ X z _Pp%   <eV42497{|vpW^.Υ@T5"eNA@YUt^}zH1"v:uHtPh @@сnA@Ӏ/qHB|||||||@ CykY3 eX `0K=?Aӣ!r0Y(Ȅj5b/'8]\x`` u9$||||||(oV 7Ь,*@l~2б:$m@@?,˲,TF;vjٲeGf'rAދdQG0>W HW(I{(J)~P>>>>>2~  @ [c>| P `mOj@y{Em"2P/qǁzS+W^z9G2@ ljrF r0F"R9祔 HJ`6Iܽ@di42pὄi  `{v=AgN"wc `^1 I@@@ ?"; ˧@~ :nw>>o>h8PƓ̨́a . $ʈ>6k$@[{oT}U${/5 gg`HQD& Šڷz< ߝX+ؿt=#~#>;84> M(ZR9FkmAk !{oyJ 9snq pBAJ d ,1IBZv;ޗ:}=z~6zuZ5:u:5Zuz?5ZuZ6:Yv; `Tz$ ohuY Xh;R A_d-a”b#C䧌1ZZkBHs2 Th T@xa.CP@epu@! ")p8GtL @/lj`@M: @@0`G!BTJSk !!HP,pΕR|deWbuQJ!C .@ @4RNAAO(sN? $f?Ы B : +D@wݑPБV Լ-|G0? ] BFH5  XcLXtySIm@3SU`aXAJHpH dk`$ Z)+ I !ט!FRUf&`*// EB @HXJi "f_@R ҈hHBh@d@fH pH(PTN@, ) 5:Y@qB B(_ @?A?A_ @?A)@5`SUUUUUUUSUUUUUUUSUUUUUUUSUUUUUUUSUUUUUUUSUUUUUUUSUUUUUUUSUUUUUUUSUUUUUUUSUUUUUUUSUUUUUUUSUUUUUUUSUUUUUUUSUUU1eefH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkν44g= @*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʌ(🿛,X:!GtM#:$o&G*jO$o@?o ˧]Hݫo^~7 D/m0ۼ5X%haWh9C,]ZbGU#2-He8 8@:q|W@o'm>{(>{_l5`_z)+}@ ˏ'Z-: D^# РB+H3ICz+A$(X ")b$3lr ΂ G4}H~gIzH Y',H@812є'*~8.9# p,/`J@КND`4A8T `FDMT$-%LɶbQS(GJ!!;~ï Ӟ`h*P >C 2b@fuiv2ZP@`y Ot0ʈM3 j-8vS7F!-_FSFqErmR6DT!g `럮:y" p0`,L6,h.is p2L ,h"-L+ ɚ NmQh m8Hhç)^xFY#(GG ] @~{39zx'V` ! @[[2GruX]ُ?S?`X |{N2cv\zkBU)o B)N}<.+'$H2BP`:"e/ ,a 'hA%dzAGf`3@IǖNiPy c(%K1R=HIh^w!p#"X891lFR@_^Zǀn;:&Ih,2b(3SJ'2D{=0 @p?ȃ-Ot `z Q@SS{GHчh%@yģ;0@ PB4i1IE$)P%S2Yz{HυjllO?ПF;Pȩh:1nh  t ƃH iIhŨ jfDjFS(W-2YG= :peh>wՀ+(H`OV Џ} =QX<.rve@@\%ܦ3H@*) J(;qfFJmS#CMRboP9u܇} >x i{c8{. P"݉`Xby|;iGr0'P *"&c)1@@Td%" y}D3g8KE+ڝ:+׋u"eXo/Rҩltc0G߁ H>OK:h+dc 3xeN-ʅ  F:b @fc6z3$5`NBPi5q gt,A[P9`! s萅51 {瘅6̱ i1^p %0!XG='^KI~Ciۂo'0]txoHiD'H޲Gz@h ,p p )2 _ٗԅ0A$3zQǶBRD[<%v,X^ƏVY @@,hf5h@:4z\?0rQadt&&;NJT F:Na8/hmZ~Q&L 1`p,`_P hA|jB0$#!:{Zx-Q@ #Hh\.xH{9'7*\:0(Tx ر(xvЅ%skBq9qB`XxAۇ!ȀÀ-`!8 }Р}2i5EZ+x(yXw`o2rA#+ K,KORLS Ҹ 1&p/ :Cৄ3ۇZq{B %ɭ@%9 trj@: -鸬 sD0Hjv " ~ ؀Ђ{)r 0s Pȯ/ xv wxpyqhujȇUq`3(;9 TzP0Éh-ODX x8|x|Xd󊴂U2@k0uɮUÆiOxs. XP(|(Y=)pI' y`LD Pzآ 0єzXhX^k0$P(-(zhTvtrhPRuoȇZw#'`1qEQFLL'jR>@XXPBiG8ɔ'$ [k(KL컍3Ї(.8$g MxhTzhf`V(Hv&XQ&P‡-A O'!4pϻʑ29 y:@ԨC H&tthun}Q |y&ȋ\5=a=o! qpA@%UiRh y )yьҨ M4 "GMub4bK|8@krxS0|0dk00d]VeeguVe - (T;4lTP ѐ}YN1ǎ#B;Q hԙɟʾbbu 9r)ыxszp%Ѱ،]/0ٱCh xp%UNGNtGOɛD0R蛠Y8)ѩE9(Z| 8;~#(ʇ1_Ѐ//0#pViibYp<\ 8hHR`Pw=<(Da(d- ZxPל}P0! ғTZѬd }xz+z@jqЅ|(fdMh>>;[ Vp xZ& Pkb!ȇm'=#Dj-:zXy fSx R`+^>; -$3g^yyhh׫)(d]XQ;vxwPs CѠ`p>B*R;h9G^F!8)\,kX^pqpd M؇}@r2sy(1SN,}#9tfi8Pxwe0S-ؙۼ\AK Dƴޘϛx{Lq=Ҝ8F .^h\n&ɧ㨒 i^tjVydIy>nyHn\Opdvl^Wp臯[Vᗘ : ɮ ݤl.( jL# X<ӌ%!kӐ#NN #m 01ҼoE@΀#q#BщUx}oQH项ѯ|08po:۬k_nQuС[&(#Ipbn 0̮j9% +Iu:$AqpKiC@ ձ@AJBltļtOD[;K7SGTWUgVwWXYZ[u                          ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 { | } ~  2;îA`!;îJK xWMhSY>?IPKZ#L3eMqY.i,6)郱"0lܹU(n.( ;V97yiLR'{wΗ~%|¿d,݅>p`W)>Q|3t_gI8%Gz[jESJT:z&NkN@Dos%T}GvNFks^nگv}'N\}W_~Y3D|j~1_0Eiv``S-ōU}f;Щw:!X0C, ܩӠ2fɘQ[5Y~%'0IQQ{[)eMa5)f~iT)^0G4gqm(؋[z>3T~ ,Vk?}!;w$8X0tY~PRB8+eb)u+7{4as\1\p=` _vFj;\]jba<8{^SKyZD7%Ө=eYoecdL0&YcK?5"]H/gzDcKyv/dz8?Q=;,?ϬW&}>CφOYg}eqO2fɘmT|4CIx,;k8'|-/kDdD B  S A? 2jV)nuQ)ujP`!mjV)nuQ)F.:3؎MJ;jxxTUg % 4 AJ*H R %APB^TTJ}Ҕ&=g\/~9g2g^{{̑)-)М(a^J$nzAe0CoT/QVr( 7=-X!Uy.]9I:c6 ?n߫GްG8O:CoѐyMiG_zv0_[_[ׂAQDU~`>|2οx?CΝ;i]rwiopx(_?y8RIj[5kic/Fm>5} &_q_<@?(Th %%W&۩J$n F/$8s5iMĈ@T-^.Z¿[*@ $O~jѯ'CM\70q- $"G?5v`ޚoZ;_GV*GcANk߹XpeʩS[nL{o,F<ȶ^/G۩`=8ւBiJ *iO$Hؼfll1:٦ƛӽf?r lt7KK2U6M(Ed%4Cil%{X2?1 LFp}tk\v9{bڼtV-6ۑ4@{66\Ƃ8+ TaR˶vQzS2:Yl=jADBuYf.6KqJŦhfdvhs56U2y()CN)I eJfQH%/u rJDdϫ@0413Q;9稹n!dگv\CP0U,]76#@<8Jep&Ԝ?D{#ћt=>G)\Aquiǭd(e;1Zb`XS^J+kHeSA:2d%&598bWz9{BC==iWy![+pTY\wMG{5[]^=ESLggr'ڌ>lkơ^1 7P F4{Fy($XƂ:x>>-f(ur^]OϚŤtWZ}̟(VGR (.ȍO:w].WUpY]{0]wWҸ=L \n.7rǟ+)_/?rmGN75fS6Q%q-STʥVG"߸L-Ɉno%eiNrƪw2#/cռ{U X1,=[ (u̮(ΉS!j8 "4'j8QcT}ίY$B$JkHv8.tlò_oyMgiQPD.1۰b"?ۨOM/?0 >5G9b"͹ ujroj] #=Ksg^ M eĖ?m3j*8|YjAiեQ:LJY)4٧E@-m~f4m|OB\2 p֬FOWۙfڀJfKP=8joJJg@KIbcEHJwBNwxfC E`An*͐anLwdnVP.MM( oV3,P[(7y6HTA=0ib #ey~XB*TRtJ*Lnil,76 AƋB@̈|V$ m~G` Zi jc>>?p s~{EqdrL Tύ7h5œJ󗔟?RN7eĨe|b}}_qnsWbr-\6n>zxDžlPqqzPcAs ^=/]lӸ5]mѕ\Υ?;C- ߒQ^ mZʳyY[lEyb;bt#y8yc{Y=HN2e@tt,+Rvw+䨝!9tE%e8 KfdWc 7@T+w]n: ]o ^N6e "f{xw_.-wώ. "H1sdvq\rV1.p8=~c l)m{l+Ο@HI#'QOkN \r#P㍺+M^Dv"\׏{L^>ݪ-+7ᕐPJAN6eG|J:Ɯ4itn88VFs7 X+6 y:f0t(ՅMל/X0DZxr}N3)H !B^/$>K:CDAUk]sĜf`Se/.jtȕ3a_~I %ICg!3f95*&mj*ΦlF".y <{L=7O{}vr1^7kvxEOk ĩbU{t(x3'}JzlNhs_\X5nqd#RCB%/f}QB$rx+3lwpq9|vN<9yzNcXw<%^YZb$?_% ߿%tf51ylmS*9vbT=v thVM![z^v^uCnWmG/`ā>zk뼺:ڋ(Pd9 >:ѯmׇ֡T-ntwkUK@9P-iic$V9#%];.bUDS2:6zII3dB}]Mԕpq[NjЂ/}nRInEn?k*Heʓm ަQ&QoM_4l: .h:^C_Zڔn}ҧ.C// |,"ڋd5L/őgZ@Gbe釡~IjxBA!Yd?kלfTh89ysΚ $Ћn /Ay?Dj+( pJU`8h @p+m;>c9jP87AģAYc1ǣ %Pzpŝ`pk} :r_PiDzUP?ĜLEqt"}g"9 Դ3-Ito|Un wKMs}x`hs5Ǟ.cv/u':v5zbuEhMKKM`/;O/7T}c"t_S.73h1v{(I1PޅrQ>јbmIpGwM$*IH%$/`˨cNNZ w22L'|lV)[l.!W.<-,0@fp>l1//D2GeZ|@̟ y }93 nkVnCuOܙNC̨,&bZJtbͤ(̠X֥8CeuFO+T]Ԩ='L B;JylkjHxζi$;|M7E@z+jw\G?¿|ß4-kkSB[{P73LȽ`&Npu8 j&U: OI3[ُ+oK&CoG?~eMo 3&vjs6 h5}Tn› փ +r9:sf &Φcj&7 61;7dp쎹yy ];/PAO#ֿ'ɣ ^uZbiۄ1 d EBu~_] 3b\ÿCanΘUo[. |^B~CWj@Su?Tc!v(FvFک:.%nw<xۖrOmCg˩3FpGʏͩ#kt ݶ#[l5䰮< Zg$4O/7D X-b2&# '΂?jٌ^q i8T`8tI8Iw #=1\ᶘVnjc(_C0zyMʘy8&a;ǎ}P/E@Fy\WomtSࡋKw#m`{εMej~nUpSIt/Uwl; xI}m nwcuX a4- C@4` -гB;5/iN ]S-6nD^ΝιǏo^_yKoj/i̡-C)FM6gP7 ilΉe1 J:HP 7^uu%&Pϐkנ5AVNC黮vc 7@H ZP_L\7Cik>ޡ Y(~Z~@MO?rPoHzWz!Zix<)I21驴np":*%;4DZw0ߖ.3ou7 Ƴ=_sFn7r*? gx\~QW-?GM"oGۋX78 _ X0B +r}=Ǹio= zL낤tff{i>}o% 7X~%GJ>׷e:Ux4!y {|*Aߴ1߹OKT ߘ7iC?`$Θ߀gLP #f*hjs'8T,rI|>)Sy-@8 ` XC@{Aj f8v*L\EMRRTLT\Mv >d FE s6354\Gs00LQZdjhΌiZ$Û_7!~gbyCqsk{r/rm{r||dv(W<}/hؿnHQJ66!T Zb;J #g5)4VTJP0H\qn7NppU{ᛏ?'؋L:_i?-5N^Y}Pu:En톻+.ƥa M۵#<V5?\v6F?p,+_ZڹsWvtuh >ȅ1.>6=V.јvhO:)m\zڅn&04^tݮg< _[h]-}ιZ@{ۮtSk?wv\ 0uw ]{w\I./>EiЇhz Fw@E{B3zc* SОuhq ZߕaF;=H=pC5EiG#Z)i}jV+We_Q%B:XH ?[ 6 PZ @[[~5m%(0 znռZo[Qg^ x՘v=-su \HvPlMT2"x vGiJ\= қ&,#gvɈս.x!z\ޯ!R.R)?!_D^PZz{yl8j~j~Vk8}(*V~fhYmY@cPCHlt.$֐?m책P] I55 kT"v#V6miv2t)R:7*.J쥀._HFZ9ʞrcZhj/{v ځS۶=j[;bـA70M'u~jT5do,_X[בo."@|Mx|I+6֮S?4{:-ȯmVWۖrw+#T_M8vEG8?XLF[&lOvƸ:biYMߴ@[MjN#mOƶ}'6}\m#]@zy"Fqyg;2䝡;$xAwQ:f:?ƁXmX> kt-m hDiA+̓c/ f9s!3+(1ssW`o(>Ƃ4nH]D!+m2zQěNw'Bp425^Hu9(%eL9qu;\:׹=h}dД$Np]Fw O& |m 4Yz:j[c4ށĝ+\eR:NO߸&˾ݗm7B筀|#$}%^KhwOg@_mt~DggGĮ|<1%义 v<ҲDݵE.?5WtelX=@f@m6Vۼ6#iA(tmmRQk8=GtӟE^2Ȏ[•AFnlsC}Zo9tns-!%sCGEp3׶7ԕ6\6=+6/׮| >eHvKs k++ajc^N  8>p =?Crj1~jۇ)|wnrN!ϯ*42- XdqMEx._}/4-eޗ֠"J̗nr7p\%p8.D &QM2>˔Ό2.Ͻb~0>$f)XLB>e4MjT3ic |b1e'1+x<_QIKOlc3k.f<6L&_K h^=*F3F5iɜJ9zu ~dO#φʛĠĠ248)|v0 @8 >5:bަt@[5 5P^.tC]W^v|8WP8ע܉rdx1ݡtPS6pЂWwK.=5:Uxh".o3iґ.*kF ~]{t%^+wy]T |oB>6\o4A|FΠ6kJHr[q.%9,Gr0t~5 7gԜ(ASoQ(L6ҿ]<za?-LDUWauѫfj9oiozom^7ݝvK߽1bS*Vʳ`EԲS~+vizO -tF- e41:4][enKW6{EPaPaG%5{:D\9\P_`ciM,%տ X_bmb6ROk1p8ܗc1{0%Jz=Hp ;u:|.^ iÓv&<pP Lk/L.J^:td\ҿ24)ꁮ`4Xr]CחBn $b+afw5 aevq7^kE.r n[!y{dà J% 7$]hKr";%LVH&1Kmß &!ݏW` !w[fur4_v ("'":v"f=6LrHFWR"ttћN2[fx]u2+\Os<;7jp1|v>ncr-j3)|SZ0 .)<{Pn jD?QEi'HriR/ry[+~p ۩+(7]{2x N$~&B~ r *wpYe_JV e?@3n WMg"mQ3V6Kl9jSt^Wik7|e &y2햅nTوYg#fF̦n/ty[kV  \?xڗp(m(:jݲ]onRXU+Hf%HZU7,(-1AO7jpOx3q*?3͹y\"0YBeäJ.BDlӇP4y*#I+hn4hLptgUnl|Lڟ]mzS>lc(e 1PHNܘHcHh!=FAPB5{9K)LFeBr^wXtg]~J,@F6㤶.yJ!p `:%*,> 7T^)}A |yxAK[kFxp F]5x"tdJ\-j (xt 2i"7lJ6O pxync0 KwcK2dK-]~d,XlLQs{5nic9~SjH-GUDނmKqO錼X@/s`l_^{WRO&~XmКA-~/R5M&9MסR~gjy?VΆ>LuH(/VrCl}S~yW~=B+c\OSk܅VKG~bQצ0p1 VHPFC4Iasss`ޥSzpX+1Ċo-Q U7J t~v/jve2lY3+x&&݁V ph|]hEXȱS9,[zhG~B_F ÿC5gT&K>q(/OvXnف>H _п4DZy_%Go{b,O |" Zb[I*T\t)o`iB?<&*\%Ɔ=KU9i >nPST6LЇOic{أ|" LA(Q*6S#K (FFOѧ8i,Ol/'k ѿ]I C*.:m=/)RŰ^(Cl:c!`?e]o!Ҷ9t5޶ګxUڷAKL};QW/i8>(.iuwPcרW){Wo7{ ~sMMJu'Z!+ih Jb?9t](ԶU>j3پmy#vjI(;>` X ΃ۡoZ?x~at;gO`6l WǦtFrJ? B` tp]B ˵ r_ U@<8 !Q\#0s9K`qo?h P9vzM^/Eh 7 +ʹuA0 $U˅z:9\ PeTw#\vg "1 & or@[yS9[S~r\ 0y=טz b_yg(^1L^@{oȶ_Oks?SzbJJ>/. SA_p9z+X&Tk /Ǐ]4&|Oȭ6Dt~V4p]~]mFn|nz.L uPVJoٴS~2 )M5 &# r@3{$G ?Lyl3{'8=ދ99Sz;IhB齲 ;xQyl6~4w}b62i%7Y4Dg4t/x >4V4% @uL\FS'L8 @S/1:AQz߫Y4w`iv V[r#Ut=0Ílь@^PD 09¹rGj^/CA;/y)?nSΙYt2\z^8xW]bƃn+F$7rMrO~90DsjAdVZ= kht\vJȾm@jIZ!U^"A\Lhnc7˃-Y'*`6J1r#FO1f3,6fk9S<5EL&/ݔ!)Yɑ\OoHN} 5ik/3&Sm t@|yg{ٻoyyWD{ 0z[@y\,uE~CXgqf >=YKXl7N ?(|mz\WtImF4ob~6ew4_Yl1Y679(⭐X?3wζues]w]fхRPbh%}~:nzܦP.u%mwmb#'J?=`1bg];^YTB8K -|@p168=$jDuԈõ񮽬??p,=7)35`IԅP]^C^:Bh1HJOW>Ӎnpj D/?=E<x4P( ]k;}&P=pu#gb|ǾlU^- MK4~5v r5;ʔS?l5xkyЂ#t(y۹^XM)Ǵ m>>ϱd _0//%%5FcD`8n4vaRew}鎃\ح4n]0+t?kt/~UwB#=#=_fKB}U֗Rpj%%K87F[ rj7^Rj K &tνFWeF"4s3ژn p3[1Beͦ,1`Al1 7P(]FL j8$MeT(y[SE{=m䰶$"} XzBNr_5yj$E݋{.Jgv7B|-;5myԮ,NqϜyO bu&Ta ʐY`-8^S:s6Ԥl!ATW767㴟&ʶ[ ݃?mQo} 0 7ɇM+bp @&o Ah8Sh42Yޒ䉝<]tշdzJhhԛЫ_ʼ!y+7BZ߅ ^g P>C%z55`,A'N8<~xYOϛ["э:ћ~س; {?1cwA!~ Y=~Rt'F1}{x63q[{4as.(Ɍq??>} YQ=eVfTd1Սc9__xTP:31bf,/g'B( xE?ge_mQݪʵ3L@T@6 }6rl欜vFgUrHO }*uyK% cP U[}/zTH:oTREhG)ܰz<< <\}}@ }iJvIm>u?{$4IsKO#8U c2086j~g\uVF̍q6thWg1/(-<~{XH\Pmfj7TnpB5'P ˡg] B YTx3L,M1v?Mj>RN,=ܑ7Xie$"V yB|:-8~^t;vJ~#bި4zt [f>@Ԧ!zdՂ2&k\UrL'T!D> 3L5 3f 7se^rZV#L_Mofz®OQoJ6tg"I]#weQC%OPKX!2@ʺ<5!G zSu3p2GuP9]e[V^w.ɼD*§Lm0Q\xM^3Txj6sF^E+ЬYZ~r=CiSks5nql;_Y\{ZvgG{c=ű^䈳78,9+A$:rqd׻rIz~rT_Daq]{8˟x-,hYȗBNM~S7vE Ώ=X S63{WA/ՙ4]{-D5Ik~fwgPdF #YIu6UA"c %??@z!@)\E~ :^^SV!/gBV~}ׂBu?Ƞmeuv9GYS %U3ݺ(hqԴ[9zvcm/w:D9ƂuĀTMc;{Ѻq_78rrGE vjcqܦtJw|xՉgO 1!YQgP_bWdQc j0j0j0;)`-AX1u2^ TA,@jZ6h3[]jZjJy"\e,tLì~@Jaʍ~[>%bX5 xp]snpQת>] Au5!2=$asYPᖧf9O;na;ɛvWa{$9o*y$+,ATJ#T5&)^ {]Dn1+9I7Uj7 W'Pi,7>o99.Mc&@?$t=yr%=UsSjPޞGubBE%%霭Iఞ5]fCTZ $w#lr E*ۃ `)ث_eTzcIQ"\Urx >ɜ4/v3\OpY1pWw{>C"EoB?DzBK4ӟr]wc7Hk_A5Fynnyo mX@ E߃p "Y% %) C`fCyGR7ԝzIN T|10 D4PkvjQPC=C;IwQMm*m>TnPަ=3g@-ŗ{1׆Y̑{4CAf3 $OḮT=7A5jT-[Lo,Y}tn^N䳶XOL'O}xbzIwtk,kZ[HԕK!/䕝SSgH{ng5Hm@L5 LMmev`wg_{7Ws-(WmLAi^ ,Ƕ(SN4mYmokg[@+ŞfY2P !fݐ@˖~V g5P?;}vE[hiV :*+,-Np<yUCvh~rCeym!ͩDeѻ]ټ(\+hP?mU᳞H~ mj>='Ń4PZV%E? YS5vzkqoxs#ס:VNC!Ԣ DP%J!΋\j}YrZQz}F:\xt%!EKrRE녶Ȳ_hdotO3CW7ٕ%y-(>&&e1)eLmmh:|NW6nJ˸-/i"o|jTTOQ -Zco7x xmiNjp$c;)mEYSvrJZ33k$՜y3Draty!&jrmF1D J|k6n =F%ҀQGޣzt9`nCZ4=lUñu.}ڡ99D+dmt L.k8]"}`z 3 T9} hl2x:&}t#ͨza,h:ѧz^=iv G:bJtDř3f2*HE尩 :0e$x\3\:Dk_mQ{TC)LZ| Z6m/j2Rup ]|W8perݿ$MGuuk!.HWݬIz5I*BKQ6ړV$FKद»tjRMr>w$ce6o Vr%3_f}x٤u: :3Cl/mr= ϼP04\FIԽK _k{BkPM]t%hJM j߃ɠ~AnLЉ2E{"mJFU{_gٖ9;avg=-مȋ:r}}Cy#ۺ!ۦbt=|B}>! YdVϙ6yKL'fpm.^a!u,?EFf3)oE9pz?ܝBŋ{<宠>^pG7ÃW5Ϡmѯx:\pгj kзڃ ZY^^@a (!5A*(Tyc{,ޅ3t,`}%!GС5/%jUNM4L(7 [܃F@sdPnlJw#aᯟnf-a8ouV}j76vh5{ddM5ticA'u@[jƝtk {-00A$ p7Z[$_fEVQiduKLFcL?ٱy} V0AM}зc\=9zs݁8YS/-FuR4}Җf~TR {<]'3 _Q_jxD}e)7u#ZӴP=&ZZ@iKs?c1;KA|VL yDޠIi`9K>eӚAеU:@wZȚjSբ3ǞZ 'q9Z"q ANF5=z~s2~q28j-yѨz 4mjѧ1{xɠaL E EwnA݃1>zD8W]4U\w-RuB?.#c}Oij紧Hyϩov V MJr2\F^l&kzm92252͠lP܌B~}z t344Y!C-fʚZToW`cqR#n_v[S}q73g,x^9hZ! A_mܬ03IC9>Bz Nu-` `$`$迁TPt+CDd8izGJp$Hܑ!+SgK5e5# /cSv""ΛNaWk , }PJ7)i`,F5T{ғPVotP@ P|F@ [E9J9|H$7.Am刊>s)%]]+?Ss] O.UtPTcXv9T/@}C}ԇP!{@PP!Z@}4EJSMGTEm* ?61& 7zIYQU,G_::%x~]ޟgtUG1^fK]< 2G*NֻrZG=UAB5Щ`¥BG.IvzG]It6 Zj<;Y,lz '5u̗.~ iIto:*=KO.\#71\]Ck=u|^țaϤ0l{<;FtK9aK!`hpe /|T:/$TFK= T#&@D@GM:EBߧЎ!gp ^ͣ'm|ςG 7f[u1GzNq 8_POftrWPYoߡ]x bc>*}` x#PmfEu0PwA0׭Egx%*ה}cΜ2Ved4SFN`. A1p-e{ҙCċ׋1$2$r Z u&%h&Q5u]'.c1Of!D`.wmzq7Me8ܼ:9 '꺲m$4l h؊ 'A.:t@^TJZsԲƂNЪ-Vص}v!kfۧ@a݀7^3m'ŏ l$`l1#6c2fۗO9͞ą$;`Gv^ M*!]sQ:7V3jljB;M7ym!ok*VR_+&\/<ݬmblHQȈ#2yshJ2BЕMte)#NWsTj61C5)\o^jJP2J n ءݹ&:{M[D'1MG@8y4+ցfb9;lqN;%C _fs clD=ZNso-oAZLKzؼB05)ՁJZl\Yi=Vnha_2Wp.ˇ CN`.2e)mK*o.p4Je{E˂8pf!k]cZKt/X 5Nk-I&- 6p|jW%׀;kc&<M1gT}hXlf"VC|+,#-/ViG&})+l~҈ʚjkyj#"xwO_i} =:;>u} œUuM= 0](Ȍf1-4 l^l0578?IS>ȅmÎP^~6~dSsA"tC.G}MRYdCt]9B>rCz-H !4FF -է.鲺DQ}DMuZTdMx9: ޤt/kn*P[t?3w+A$'SD]fs 0',pk-Ơ|JW}:C~tJhڂkMjeV WDE$Zݚu=W!OJ+P5k"2c53k]K=WnKj'y@A.ee4~O@S}bmR#M%DdVH~Oda\|!q:3-IE<'+TM/d13 i!ꥩZAkzLk>- \4үN`0 t-@PE@.H_7jQuM*z^􄼭n1&F* bVoeA5mڃrƀY W=b_qpۮl TJQrD斁 82^T)']#P'?HCY+&q{rq8~Vw*=% 5Ps2#;V, \:Y)3Q#(R%ROICNJTY7K&}t eCW!zF~8Y."?% vD#&ބsM*GpНrh_$}KT'x8S2Q3RaD#q̻VD |/@`r,eU_mއx탱BHm݅c_))[XOa`~_岼/0k]I"GA#G ,~^jP[QA]Yb.1/sKJE+dE1OiAEԅ.rpPh=jY>RcN~G߁E` hP_Vg8.vKl8NVKk'O(ȍȓș:?:V!#\EieKD-5L.i>sͬ y]޽3$GCqMjԍxԐs%gĠ\ .y$szZ:_5/<<Ƅgfw|}&]SK4xz{2^G& +w0.atn_6xwq .gn" ],oáO:b^%Ym]uz.r"?H(YA(]= R|E|9YF#8px*WvKc}wNpxW}oZCG~N-@[11cq  4x*Аt$dVYhmrk\|>c;Cկ< ~0T~GPB!@Kp.UZ!p?Qj0ch*xjIMst[ZOG3ͺ B!AY`-8!M8 .N...C\>\\Wq,n<_Ъ (}y5d7'y1𒼀RSLS?}.-^j3cvVgߟ@322 j 2Dde<  C Aby1+u"-΀4Hlm{U1 nM1+u"-΀4Hlm{PNG  IHDRewYOgAMA pHYs   IDATx\[$UΉK^z.]aJ fybW$ ! O@Ȃ7ސ,KƻHXWqOwWeef\!33ӮOTgvTʯĉ$UF^>@n->@n->@n->@n->@n->@n->¾xحrkZHn{֋ dŻn|K)l#U!sP ӧ^8_,a "!g E)%IXNЋOS j2d *@ #d!H:F`@q1O#VUp~~9gkl6Xec 圉:f^_8_唛BO'60~.1Fk-[UAH׭c]b`^50`h:Yb@R*8ӭcb, &&ORܳh3q@U6!}7M35R*===sδQDڔ3OWz̾?ɴd6fݯ-{q W q|UHm.l gshbF֚{@4E)_~4Y3y ?bι몪*U5`^lq>qQfS+vu8B@;%6 ery4?PYCC׳PȞh* orOg48(JțJ fx"aj8GĒzݶ CxnK,a/v9sj+=6K!<qջAF{3k@@~ZHR$ ƟѬ#o][bO)A! K%#ιݔL}t/]ksbBJ_yW]L1Mqk62~˿~lxvV  :n!HIReR%$R2&HȖh\zq\k-aU< g#ʖrr/ˣD"A?C!oUM)m;c R>\ e5ƘΝ޽O~8R(R;"2d)KOՁo>3MKj5k.oOgffyeG RMߔicA6ØtУ"Kdf[>øJ ;`Y=N~仞b,<|nVba2_M~}163eg:oȐgMV{,K0XS$(":{3w2::臘̀'CeU]oD;#9:/~!њ~s*p`.yjQ1&QY7#{y.1?w/=`ĸ`r =7$F׌n> am'Cד+MoQ`G$ # {HSf! Nb|l5oAo5BwPƘ |tQ0_ݷbO SR`8BrIe_ekHLݟMҀ!/{_5,cUU;u,<(Ϝ ܡʈHWΒEv 4W!'C-,T1 ݘx )H7V{*<\b` 9$.nQ0*RKթ {?G߇u_7ewMwywA_qP`JiWJYno9;9_} H#e`/>w4ףa @H!t9VeI{DIG[I̜ (C}twrv1F)hE1h6i0 P7Ubu[p7n0ituV/ ⭍HaPD`hgDd !&o!MBܨ,i|tN5 & b"CJYgcq! |aU=Ӳ.ea:0W <9ao|!ѫBIH}/3RJMӤΝ;ؚj5͞)/ (a+| "<Ic|%'!J"J, ʖOL)499RIڡ >z@B;kS+$!!16MSJy=PJEW ƠX?{a3N)f?`xVdUYXuw:$0h4QB^esl]wW Knj7w1 oB˺mۢߋŢнTc|8;=ELصj aae0 `%aZkYWm}͸4㹉g&U!p^c IUm j~ `߇l QJLSny39$1"?[hܕةS VX4cn8}(vB(okkVĔ ވ 3{^?wRW2`7(ʵ2Dm]Y|'_=j@IXxnV0.8Nza/[<("TߗYRVފ1AiF\}-=ed^Aj0OH*| 8M fVw?a\.OI{@W3jY d(`~PϮ.aCDeZI1W.]DT|63+v_|Oɋ1|wARPSޒVBޝkX"UȥO\o** [%XYHEl/RHCcv} EѣG7ŻqAw-F<^cIiC[L ZjPzXɅKQW;H3OW>FCWΩꞯ{Nbg!0APCK"Y(Xl["8(;wLOw'gM6{革ސCCSzXxg7DWPNvhy(E *܃HOZB-3/K8hx^+BǭnbvhJf#bRUUMmeJZ+5cpQqf&J3$'Kks@it`"k,*)sn6%|3 \O2 99p?7܅)ߎ>Qd"aG e !operatort - "-%!xx---- $gMxg-- "-%Wxx---- $gxg-- "--$Mii?M?M-- Arial- Arial-- . Arial-  !arglistj ! operator Aq- "--$<WW?<?<-- Arial- Arial-- . Arial-  !arglistj ! operator B`- "--$ %%# # -- Arial- Arial-- . Arial-  !arraydimOA ! operator B.- "--$Mii#M#M-- Arial- Arial-- . Arial-  !arraydimO ! operator Aq- "--$=YY?=?=-- Arial-- . Arial-  ! expression^- "--6$}"')&  }-- Arial-- . Arial- !,- "-% \ky %4x---- $-- "-% }$3K---- $GxGG-- "-%ixx---- $ g=x  g-- "-%Yxx---- $ g<x  g-- "-$%x---- $x--CompObj lObjInfo"VisioDocumentD VisioInformation"# FVisio 2000 DrawingVISIO 6.0 ShapesVisio.Drawing.69q՜.+,D՜.+,4@HP\h t   PagesMastersPage k ( Visio (TM) Drawing  -Rt !fffMMM333?U$ $ 8 TD Arial@:NWingdzs@:NPtMonotype Sort: NSymbol5TF? Y@-1U;J:DT1EW-hTT<* %UbU 0{G/z?@E.>raMbUwww U  x wFB/T&/?\.? AaT&,",'/l&Qu&x w wy  xvx)x?2  w w wwwwwJww(?k/aU8B>E>E>EU>E>E>E>@L?>`x8B>EU>E>E>E>EU>E>E>@O/F-A'Y6; AKVKVA]$TCYMMT/VM___ow 35-eI?o\ #)!!4$ld%UlllgRGQEqoJM[ETtjA O.8OJO\OnOO????7ܻxu@L&d2%?izm#Ҍj sU将ҏH 2a){Μ  ww _Zc #cb6av i| u_' 0UF\u U?g>jo2# R 0j(N`Ȋ_6!3HH!,D///A`?dHcHǂ4Ak-f\nICUw%1k-(ap {ٻ )-8YVͷ!#ͷ/)T TE=cAUF~?M&d2?F\_.?Q6 J u` n?'u2 Ubaj jB>AVS>U5 gL@S|#I!N$5 E`;Copyright (C) 1997 Visio Corporation. All s"s reserved.`shape.hlp!#9000l>0>Udd@!! $ aU&2,5,0(%T#FT6.$jRDs6e 27(4N4^?p1u?1E>?x9119U6 Op?0G2N?;rA BC)q,^5/V:V"A(bCI}80 Q %[?0_@YM(}33 Q:%^_@_R_oK QEUJL@__aI_U:E\_couoo:nHl*-""  Fƺ#D~JB ][ac#@}+$MadqH<( H<( H<( U Et R T1;) mqUFDfP 7h> /T7 UF~@xTPYY9 7;AU@bX?\.˫P} 4u `u bu  /A@6Ah@4u7` ?SjZdnujx4y b>4U @ -?T^,'T6-DZ`'j(R &,'4r<?b6666 *6 6 1MK77@#y?R  @+5ʕ0B@2?@2?45? nTtn*'LA-9b"_7 Phhn$>UdhX5 ZA6aRac`@-flJO_4:}3(WoiAhaE9 )3O'0Ur? wOBWH~-}S9  ԲF#7OB QidoyoO@+_to)s|moPUFDfP h-RTUUUF~@x pp/quupwj  lpysopi`;Generic circle with text and connection points.bL&d2P?i鿈?~45DHDD 9# =hZ,>THYY9 AUF~?M&d2JQ6  u` ?/u :m biUr r~YA|XA@  B >!"!"!"+& " " "S>U5 L@"'%9 ~lb7#FR&`0 ?F\.:55?P6 0)6#CL#EC6 BLP{70N #F;P46B|# AD5 E`;Copyright (C) 1997 Visio Corporation. All 4Bs reserved.`shape.hlp!#90_00l>(>UdE $ aBE@"(Z$6Pr;< 5& ($ )37;\._?H4R^3R$iF77RRgQ%! _Z\_r#kiboc_^-Q_kqYkOVtZXBAo9R3Rq%\!;K6_{s% u^y!_{s% ~g;qE {X|#_{Hl-!  F<#FB d%Daρao @+kboLowo(P( ? mCR+BcSD'O:/iFl?SFv WS UdPC=t@`0 @FDNTe@y  ahZ-(qTqUFҾ/-@F-IH @FxNUBF3OzeJH8 DPAA_I;!   @UR1UA!"#$%&')*+,-./01234*567AU9:;?(4AUBCbEVG EcD#d.g5#da.g%E#d Q.g#dQ.g QhQ.gQh.gQh#Q.gQh'Q.gQh+Q.gh/Q.g#Qh3Q.g'Qh;Q.g+Qh?Q.g/QhCQ.g3Qh.g#d1.g;QhSQ.g?Qh.gCQh[Q.gGQh_Q.ghcQ.g1hgQ.gSQhkQ.ghoQ.g[QhsQ.g_Qh1.gcQh{Q.ggQhQ.gkQhQ.goQhQ.gsQhQ.g5#d.g{QhQ.gQhQ.gQhQ.gQhQ.gQhQ.gQhQ.gQhQ.ghQ.gQhQ.gQhQ.gQhQ.gQhQ.gQhQ.gQh-hQhc+jQhQ.gQha.gQhQ.gQhQ.gQh a.gQhY.gQha.gQhGaQhI+jQhR+jQhQ.gQhQ.gQhQ.gQhGQ.gQhe.gQhJ+j2#dL+jQhQ.gQhK+jahM+jl#dN+j ahO+jY#d.gahQF"H QDVaQS}[Q[Q#Q_Q_Q'Qv+QgQgQ3QoQoQ?QsQsQCQc]GQTD3@2AZRcQ$cQ{Q{Q{UQQFQ&QQQQQQVMQWZQ122QtbQQQQZa^e1XAYbAAMgHPj1{HPHPFHP5ee#5GEeTUT Q1HehD1DueVI1e4=tC?@h{@@H?B?@5?!)?5\?v5%+z%"O(;Q1BKlQ2ӅeQe@O SeGa1A)GQ?B89%"J+%E`.+R#e9.+e9/F5Q@Ol?B?bC?A/Q%ECQ@eexpressionqXQD_6heQd':?g;(>?%>+O=%5,OgOe>O OOi$!gQu4e9GhQR'ĵ>ҬTVVe %j #)?!Y%7e$ ;?@ Fs#g@@~?@`?q)=bMCe?GN*ec3e!FX/|@,O)?J'J(%O=KyOvC8uOO 1-%U_N/_K(monadic 5fix operator;M_q'9K@@@f|zL:և:s(u1u(@:u//lƵFFayvT/f/x/?//\?/z:w/@?yC?U?y?Tq??oq????OKx音_QOҏ_A_%XOܛO? _2DHxL@x_쯸_e3_ oo/oAoSoeo {o*o\Ͽoooo|7ƍq@@^T@@`0 ?@ @[ms{uŋuū$&U#5Yk*ƷR3%7*M_*͟o b̠jϯVl>Ft[ dyR_Ŀֿ ni +ύgKπ/oρϓϥϷ|=tC?R;u Š#搩# ms%+ߝs%u%[0mߑpVd6 @9&gO(:DKM5GYk}'O7O Y8 Y86DX%_mfH __d?$xo_Qo$`rp =ǐq/%/7/I/[/m/i ZP.P/>@/=P??%:+S:rR"w??? _??O?|POAOzeOwOOTqOOqqOO_!_3_aMos[ګ_pV: boF3oEo| ofooo#5GYk}2S|uqS%ݴuyW8!:WK*!EWi{//,/>/P/Σa 2DVhzߞ9r#?@w/5޸\Q"4FXj|a2 0B.6v/4`s!̦˯ݯC f21)ob|p?5#/*<N`r 0Bl$v/BUє//:T|E!?U@ma @-?@\@g6s G8Y?k2x?? ??DFZCOUOgOyOOOK_OOO_: D_V_h_~__ Ѷ_____oL4oFoÕ0ccco8o\Fcn/qH/i{ߍߟ߱"n# ﴋS2pbtϧ1pU@c8E 1 ;F51ä!I03#} bnv%_4FXj_!m!);4_q:_//D(/:/3O%V/////??*?ӈFԋarglist oper?ator A"4FXv!}v}əbA遱u ՗P`s a]2a%e3l0:Hϳ =Eƹ5&?= -?abt 5EM Q  '[S>Pbt(a9jfN`rZ { k"#A %r/ģ#VvBU)/@jfwig]$~jfw}yg,įܣa[#[??+?=?O?a?s?????9[^?O O2ODO>hOzOWaOOOOOO__'_ ?eb#@'֣s________oo'o9oKo(~9嶃oooo~j;μ3ʩ??Oʨf1uk~ϐ(ƽϐ@!]$"4i5s.ӟR~\i#ւʏ܏_$69֮w@Dp-(S i 4z񜯚1BTa!f@@Af|ԨH?f? `gy Ac)"Hnc$MW%= L*<5>19r#Qͦᄡ/Q tg1u &" /.4 F/MG-M'a(+`Lpa6192<.5 @~ʳbq49~ſ#" ?cW?232Ô5ԝ5A 2Y. 0&(O#uℯ=Oa~9EO>K)^f_+_yG}ݺ\.?TS%" 4FXjnao[O(:k?SJٿeBsIu~ 2Dnana[2P*|H 9Pß՟aG"/"[ uUgy:Ivٹycê"4ajTfx߀ߜ߮@=t?@@]?pސ.E~ P33V\vj!J\n"!._FCUgy 2Z,l ¶@@@:td!BO _KV7_J__FW^GR_^_FW]nG_8 j!.jFPfRPf 2DVhziP> //'/9/3o]/o/LԎq/////// ??ݙߦ)jG@`0 @g˃4F??????? OO/OAOqcIږxOOOOq9GҾ/OR&Ut`_srY)E.ږٗRږ,闀6qTcxooooooooU,&ˎBl~|L(:L^p^T+#5GYk}ş'8cI)wջı_pR,a- kl8woп*ωN`OϨϺ&->Pbtߘߪ߼0;{ @`53*o //oB/T/tn/////////?@dAvНu7UѶ调N8?u8W^qd?v????????OO*Oҕqޙ]OoOOOid;μ3*8Z3VV-H7ߧΗ p]ooooooooo:oۿQcu/1znX)gCz`A uzô?@Ҷ@@LH2?@p4F?ԕ?X5Uâձqn֚c a{Ś{]L%QF0Sc vp™˸ƿ%5F2fxՈա6g5X*CNH]fprimary expressionP Xj|i=rqxRHbh"!yϴCN]o=t?@\9@@R֭Vj?8D$4pN#?Q@3%a<%qE%O$> }o /c'6f&3;6f 6H$! y# ɾ5E&;>N%3 >Ky?S5MԺ\.˵q#,ZAy?)#f]174x/_:5'%!d Ob#2_BY#/R_+!u^N%u_@B]ZU;Lq__78SQoS _&o8o  identifier"Ϡϲzx/!/3&&z C(BOP(U(6g/y/$/7///&+qR݆7V?.?@?R?d?v????ZO? O?ǟ1%OROdOvOqOOqOOOO@ __B_T_1ģo>oS_7@]_o'Yk*r፫S9ooe constantoo /ASqq#jO߮@4%i- C( 7N`% ~#垏d&4V8V(:L^pBܟ :L^Ot| OѬЯ*<%Se C ?Q耫S/}okstring literal'9WѺSr߄ߖߨߺ k@@?@~?@73E4`5n5d5tEԆIVFRVF 2DVhz(uX6_H|Z[ 2D1Zlhm1GDo|/_o/ /0OwQjE/X+=GHy K//& monadic suffix op tor////??%?C1%5W?o=8$4$Rdvp̛Av?@\pVj?MŨG)E5EEEUFt$#¶$,S,S,S1,S16W #RnRBUrSR R$V.VRi@qd?@vt@1tf6;a_| @߲vc#Jd68qծetKu8CCor4Gp<]1`tn5r`<C$T$U??KO[sź4鲑A1\?4lb?@cBfRj9W`|?r@uu 0BfMl~ïfz 2fr sM`!-ШŚUOܿ쿬=ɫMhMh.#E0F6ASei3`}Ϗ0o<qb(1?4?:O'O9O؟oLmh@@]DBP(?pOAn5E>) _j(SbFSPSZSp [xSzcV\fSzS ooh$iRbT5hWoC0Z4F?@wx<Πooooo}0BT@3iۉ$?@?|)~tC0CX'L@"?@@D$я&8J\#@^ %&///=Oa\v 9  0ך [ݟSU@ Df t?@fkώSe(K@OPObOի0ŐOO0OTl_F+H/Msj-_OrUr__*0o@om"ߑhohz)ߘߪ߼VJOsV1 ?GWc???蚪1k?@%W~ @@bX,ۿ@"?ː %Is;7;S`u M0bu M1 A )|"x&oXV_rV?pjy`x=X0{Gzc@L2+?xɖA?b 8?qQx?@\䨪#`^lK5@p1 5m @z{p@ 6H"1&5_sysU_rۧ S*J+|Ѝ@Ou7X@֚V6! ;5@|(3U@Tc"׫?@Ɉ#`om?EƗu`P,>P_i`{oӋ8ʼnUΒߴ'9Hp4=\./?Կӄ4-PQC_q2D<ma[?@tCO8??ON8. q@qhV`_ESiFsWhGt_^iFW]xG_CU+!8(f/`/%/@7/j[=ox/%1///////?#?5?@ ¶-]˻o.?@X< @@Ѷ蕐#s8u8W^;M_qߕߧ߹ F%687FXbj 6Ot1?@:F b&'z ^R6@5}!:6 ?E61G7y2ODN6yGEM,7O_fF*F7I[m ._,Bu4GYk}@HR @@.c&)*3m0 :/L/^/p////////?a%v8@H?Z6pf;~?yR^?i-`6$#7y?x/r<gWvwyv1w;OOFaO __0_B_T_f_x____nG_@š5lc"d"oߛcidybl''oci1z @@%W~ @@( `?@"O '?PK/rT^̷̼asy A]vEx5Ï`B#ɑTDy=V1L&d2?d6/t82{m eg_a&"IkKk~bogĒ~ooe72VUo'7Pbscw`(O\. aC1 oo0oBoTofoxooAK@6@~('(&8J\πUg϶2C1!9&Z?9U@FMQS(ְ7r_!E2W?|ߎR!+D& G'OD ON&QGM7[Oq$F(CFß՟JSeJYg_e8);M_q@ @Vc//,/>/P/b/t///////zQyv?*?>O MP#E<:OLOtC_PjeOO_Ije6bn["" e;Ԡw?ף_m? Q>3@ ?6Hp[@zP@ (1b@ / ['e/%^WEȖ%," U);g'?P`v)Xnq/:a6oHoZolo~ooooomI?@F?ID18xcJ|mR&8J\nx` "4F Q_Zd9r#?@H ?!Lԁ[ָZlBDpX҃֙13R,xF鞙?W3_EPܟ$6HZ~ SoЯ>K]ksZ7ƍq@@@I?@L @/AO_OHP{F\ //-/?/Q/c/u/#?/(/4//*p+?-???U?g?=?????/w_Oc/j__r\rE?On:?OO(??H,UOF_(O}O|________ oo($A _-?QcuGh[CU@g Z@@x3/@@RA%\@g6s?dcneweee 0C0vC`Dvo/#/xfI/hx/zX///O /_Á?)?;?M?_?gŏ_?K`mOD5ҟOVe@OOaOz4}3Oe_QV"[triadic operator B:_L_^_p____QC__޿oo%o7oIo[o@vxooo^gooox+oqr2 Xj| E0TfxǏُ#5GYF}(L^:L^7 ߶E4 $A*<N`rh仱Ϳ'9K@Avdt`@I $u!#ϴb%e%!%'v*qC&GF3EWi{ߍ߱q ?*<:;i{ﻱM@#5_Y(Ć!'(j_J!%H_HD_V_/$o`__arglist!3aEr\#Oq}OaHCaiI<1A| ;?@Ȏ]?@jZ 7 7P̺n_  -k"u`u `bu F KN4Fe"rTDgIDOœYTuu` s?ʃuՉ/$ L!Dqb870{Gzvc4FU8bU $!IH(t7MQS?@H] /‹"̚M{@)rpL4Z@zp@Оj$ŮCrc*9KwC*K!(*#$562uo9 raMaU\9:.Ouщi0r9t ހ\FEWi{@u- @@F/Ljh$ M8ט;M_qˏݏ4,EW cqZtoF@@D{ @twԟvk"#pJ*M,a-k/[À##aR .@Rdvտ΋G+=OϯXQvZϖ%d௔@?vn%VeVD(,>a(Y%!ߟ&4,k} 5(гwGOOI5GYk}US@;#25=TfNOR!CL &W!O2e5?9# O a M3 I1#VO;e_4ra}@9Q9QQ?GAED7ƍqRp8D7SW &6 \W_qlـA[GcJ/\/reN ! zP 5Sfff)/@L&d2?-"-e~Χ41ngƼT椪Yq+?SSEvpET Xuvޢ eޢg}bfޣ ?'S"XH`12APd 5@#bJ8q4 ^PMb?@Yr?@řɯ^p?\9fwef#yT[& EG|"?4?F?X?j?|??7??'S9̞4I̕V0 Pb%Urݟq֗ue}\./?3_I HQuĐ[5[t\s1Zd#{V(௟I %S O;u_20pv}2{N1Dj ¶?@2\L~@`0W Ӎ___o o2oDoVohozos c$sj=ojZ(w$ 2yБaAv?@?@?@@=pgqpmuvttu+t,+ Z7$JβZl}ЋU@m$ƯӏۿoH ZCǙϏן<3UBf?Rd #5 / aJyTO'$!*Z/]-Y'oa4''Y@@HPuRb?@BP(%%?Qop%pE%%(u%svqZP5fw3sF6 7K!9x3Ϸ s bepZl] #U _-SE&dK'zN%lC%USNKsSO~&o2oookUarraydim operator B!iMgyXX^i'2#vK+/='qL/^/p/andr}Yĺo@@0z?@ $ī?#1@/5囅jqTr@qQ% S1Wg +;I |]|qt9?.2ML NKEDGZ4F?@wxF'`Di$?@Ĥ?/%`0  8~DC̤X' L@"?@Q@Da_ @J}pIc^r pLme@δ^ĵJݿ"ľi81`PiI[ϵrD=0 _Tf%_?1UqYU7dr?O!MY\D Df t?@fkW`r@cYPr=5uÇcu_ccc#ii/?MsR=Ur 8 ?M`U夎 5#y4w,Qcup9?8ȵ~KrL='pK//////@0p? \?//?NJ"%/?A?S?e?$0=&?&??߫0OBOOfOOO?OOOO?_pM3_MpY_k_}______ok_b_n/5_O*oA$6xQxꣾtOW.Z?O~:)1 1C3@@PW#?@~?@@ W+ؿ08ȁ|ʅi$Msi60`u`b+u  'A0@$фrx /`Ir9c4 r+(QM@0{Gz݄c@L5"?u08b qq 8MA ;@@0z?@ + @@@I:@)pAݘ@z#p@ؒޟ$@ŕ%Εs!Yr5!U+$5g: 1e ӀaA3+1~#jƕ# @#!HCU@hߜX-=7@j?@s?issr ?z!?6hadCR2!itw9JC Ba!a)09PAMOrr@ò9H1Yz}9:׀dIO`ܡJݓEDrܡx=xԂeY~mc@@d^7.8:=޿@(߇h@\cRdvЏ"%/$!A$LV`nNG \n }%U@o!??DF(=t8ϟC@@!9ILc|L¯ԥ^ 2DU@6;Tۿ`rΕ$ӿ -?Q !!/c\//(e?#?+=`Pb=ѳEA}dlbI\$<]߱qտ?UAf9 s~x=JC§d !=Y,O>OPObOtOFaO#?d!/]R/-'b@4v ~$"fg!g1f])gg1jsQ=ʆ]=b=%%d!5$/Id!@CY"h/z//VT:/ ?mww*n^C__*_<_N_`_r___]Fߑs `w@ ?BP(_ȣX_o mh?,(<8oJo\onoooooni׶j7$w6~}i_ڗ `ru{zό suƹo׶ַ30׶e1oߝ=e'9K]oΟ@rȮQ@4 ;'C5[m47Loo;11TB3 X,ŁϨMw Yk$K YW=}cR2i=L&d2?x)d0W"w,l ¶?Wn& ]jo(e> @ ($`ߢइ,~y FA)ԇ6 @?b&3U@>z;~Mbп@""?$%??aly<$G?A1&8( ACv),qI)%7I[F}zI>%?O75HOhOzEN?O@Ok7o?-R ?KT;aSR {Q)_M_Q0lrA)Q+5?SU@5EMQg2\L?@R*JR`0[ Ie?Sd- 2DVhz{Q۳{Q ;v Ev G"C0;N1@@?@?Oh=pqut;vst;v$)++8/ bOwO/a)n//,/[9^|-Ϩ///E?I7 _g v???0O?TOԟ+OUJg}_~OŨTeد_,X{Q;_M_{QQͰg"\sQݽ_y'%i<{?@ t@@x?-DT! s-mah7 \f"Ahifoo E@vv qQiy7vq>`yvF(xgm.‹"mvׄ4+*=uoŅ,ֆץ֏P`5Q,p4A)Q?9e/AS:mүfx= Qcÿտ /AS@k@ nULbΧ9ͨnlϼ(:L^p6rrI&߲֕yU@`Av-l ¶/"0&@R/j&I&]7H'^?p>I&7q=X'?#5rFcu@I:OXUUU!7<=U@BDOURSTUUVWXYUZ]^eUgv{UUl4,$Ҿ/-@-IH K@ UuC-37AU2@̰7LRH<( U2Ek RUlL$u!_t@?LwRD_x;?U$ 4(EPSON Stylus COLOR 860Z 4?h+EW.k 3DLLName16=EPIGUE4G.dll|32D2 3 rd'hh  q*0R2\i kjql3~xh~4 ?^wRPage-1GuideRectangleGesture FormatDynamic conn?ectorYellow fillRectangle.11Rectangle.12Rectangle.32Rectangle.15CircleRectangle.18Rectangle.19Rectangle.33ConnectorVisio 00 FaceVisio 01 HighltVisio 02 ShadowVisio 03 GraduatedVisio 10 Face2Visio 11 Hig;hlt2Visio 12 Shadow2Visio 13 Graduated2Visio 20 Face3Visio 21 Hig;hlt3Visio 22 Shadow3Visio 23 Graduated3Visio 50 Bkgnd FaceVisio 51 Bkgnd HighltVisio 52 Bkgnd ShadowVisio 53 Bkgnd GraduatedVisio 70 BorderVisio 80 MarkerBasicRectangle.34Basic ShadowCircle.40Circle.41Rectangle.58Rectangle.63Dynamic connector.82Rectangle.3Rectangle.9Rectangle.10Dynamic connector.24Dynamic connector.25Dynamic connector.44Dynamic connector.53Dynamic connector.71Dynamic connector.72Rectangle.67Rectangle.20Rectangle.68Rectangle.74Rectangle.76Rectangle.13Dynamic connector.101Rectangle.99Circle.100Dynamic connector.102Dynamic connector.104Rectangle.37  3k׃E l )*4)GL)AT)cUt)1c |)5c)Ec )Ic )Mc )Qc )Uc )Yc )]c )ac )ec )ic )mc )qc )uc )yc m}c c c JcCULd|cتܣ@  U On4 x, UO UD h Ud  T| *  U  Uj * )o#3074RA0=307TA0ZW:tA0w30"'A0R30 7A030#UA030'pk:A0R000,00D0-:\0>:d0B:l0FJ:t0J0B0UXSJ0f:0Uj:0n:̿0U:Կ0:0U:0077Oq;@:U$@:,@:U4@:<@:UD@:L@:UT@:\@KR@0|@:U@:@ZM@J*@PG@7j@Vjrj<5`j\5`j|5`ҊZ5`P5`Jj5`[5`ZM5` <5`jU5`j5`jU5`j5`!js%`1p6j$1p:5z<1pKjD1pOjL1pSjT1pWj\1p[jd1p_jl1pcjt1pgj|1pkj1poj1psj1pwj1p{j1pj1p5z1pj*1pj1pk1pɠk1p`7tWj πjUπjπG{πj,πj4*πj<πk{π}{π5zdπ`'π9π(π,ĢπLR 0 B%!!1x!1A1!~11$%&'(*)*+!U-./0U1245U6789:;GQ=>?@gBC!ӔFUUHIJK[MNOP*QRSmUUVWXYZ[A]^_`aJbc !eUfghijk9AmnopqrRsuvUwxyz{}~*Uc 300UP` XA /APw+=O)*+,-./01234U TvBA(-1/C/* n/P//b!U]OU!7@U_$I,9:yL?"?4?D1 ( =C?CI9O}MN$N''#XN})tuCO2W]VʯB?_6=# <# OC# DcW# 37\+`SummaryInformation( (DocumentSummaryInformation8$_1137739537 FqOjP!2OjOle +Oh+'0@HT`lxGX;C I&" WMFCϴ <\#;C EMF\d@VISIODrawing  $&%    '% V0B;UBUU;B;BU% ( % ( &%    '% V0;UUU;;U% ( % ( &%    '% % ( % %  W("H8H"H2H8H% % ( %    '% V,7DBL7DBH7L7D% ( % &%    '% % ( % %  W(HHHHH% % ( %    '% V,DLDHLD% ( % &%    '% V0B[uBuu[B[Bu% ( % ( &%    '% V0[uuu[[u% ( % ( &%    '% V0{{{% ( % ( &%    '% V0B{B{B{B% ( % ( &%    '% V01{q1qq{1{1% ( % ( &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% V0BBBB% ( % ( &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% V0!!!% ( % ( &%    '% V0% ( % ( &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W$!'!'% % ( %    '% V,&1&1&&% ( % &%    '% % ( % %  W$qwqw% % ( %    '% V,vvvv% ( % &%    '% % ( % %  W422% % ( %    '% V,(33(33% ( % &%    '% % ( % %  W8"(882,&#""(% % ( %    '% V,7B7B77% ( % &%    '% % ( % %  W$"h8h"h8h% % ( %    '% V,7dBl7dBh7l7d% ( % &%    '% % ( % %  W$hhhh% % ( %    '% V,dldhld% ( % &%    '% % ( % %  W$hhhh% % ( %    '% V,dkdhkd% ( % &%    '% % ( % %  W$"8"8% % ( %    '% V,7B7B77% ( % &%    '% % ( % %  W$''% % ( %    '% V,&1&1&&% ( % &% &" WMFC \   '% % ( % %  W$qq% % ( %    '% V,% ( % &%    '% V0% ( % ( &%    '% V0% ( % ( &%    '% V04444% ( % ( &%    '% V0:TTT::T% ( % ( &%    '% % ( % %  W$''% % ( %    '% V,&1&1&&% ( % &%    '% VPD:_U DGF@K;R:Y<^A_G]NXSQUJSFMDG% ( % ( &%    '% VP:T G@<:<AGNRTRMG% ( % ( &%    '% % ( % %  W8":G:G2G,F&B#="7"% % ( %    '% V,9CDK9CDG9K9C% ( % &%    '% % ( % %  W$_GwG_GwG% % ( %    '% V,vCKvCGvKvC% ( % &%    '% % ( % %  W$GGGG% % ( %    '% V,CJCGJC% ( % &%    '% % ( % %  W$"w"w% % ( %    '% V,v vv v% ( % &%    '% % ( % %  W$"'w'w'"'% % ( %    '% V,v$+v$'v+v$% ( % &%    '% % ( % %  W4GGG FB=% % ( %    '% V,   % ( % &%    '% % ( % %  W$% % ( %    '% V,  % ( % &%    '% % ( % %  W$''''% % ( %    '% V,$+$'+$% ( % &%    '% % ( % %  W$ww% % ( %    '% V,vvvv% ( % &%    '% % ( % %  W(HHHHH% % ( %    '% V,DLDHLD% ( % &%    '% V0B5B55BB5% ( % ( &%    '% % ( % %  W$(8(8((% % ( %    '% V,7$B,7$B(7,7$% ( % &%    '% % ( % %  W$((((% % ( %    '% V,$,$(,$% ( % &%    '% V01q1qq11% ( % ( &%    '% V0% ( % ( &%    '% V0% ( % ( &%    '% % ( % %  W$f&WMFC\% % ( %    '% V,% ( % &%    '% % ( % %  W$@@% % ( %    '% V,?J?J??% ( % &%    '% % ( % %  W$% % ( %    '% V,!!% ( % &%    '% % ( % %  W,aas% % ( %    '% V,% ( % &%    '% % ( % %  WD" ,'#""% % ( %    '% V,%%"%% ( % &%    '% % ( % %  W82wwB<63 22% % ( %    '% V,vvvv% ( % &%    '% % ( % %  W8qw| % % ( %    '% V,}}}% ( % &%    '% V0 ###  #% ( % ( &%    '% % ( % %  W$2@@2% % ( %    '% V,?J?J??% ( % &%    '% % ( % %  W$lwlw% % ( %    '% V,vvvv% ( % &%    '% V0JJJJ% ( % ( &%    '% V0,l,ll,,% ( % ( &%    '% V0!a!aa!!% ( % ( &%    '% V0JJJJ% ( % ( &%    '% V0% ( % ( &%    '% VP % ( % ( &%    '% % ( % %  W8   % % ( %    '% V,% ( % &%    '% % ( % %  W8% % ( %    '% V,% ( % &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W$""% % ( %    '% V,!,!,!!% ( % &%    '% % ( % %  WD % % ( %    '% V,% ( %   %--$BUU;B;BU----$UU;;U------- %"H2H8H---- $7DBH7L7D------- %HHH---- $DHLD----$Buu[B[Bu----$uu[[u----${{----$B{B{B----$1qq{1{1-------%---- $----$BBB-------%---- $----$!!----$-------%---- $-------%!'---- $&1&&-------%qw---- $vvv-------%2---- $3(33-------%82,&#""(---- $7B77-------%"h8h---- $7dBh7l7d-------%hh---- $dhld-------%hh---- $dhkd-------%"8---- $7B77-------%'---- $&1&&-------%q---- $----$----$----$444----$TT::T-------%'---- $&1&&----$ DGF@K;R:Y<^A_G]NXSQUJSFMDG----$ G@<:<AGNRTRMG-------%:G2G,F&B#="7"---- $9CDG9K9C-------%_GwG---- $vCGvKvC-------%GG---- $CGJC-------%"w---- $vv v-------%w'"'---- $v$'v+v$-------%GG FB=---- $  -------%---- $ -------%''---- $$'+$-------%w---- $vvv------- %HHH---- $DHLD----$B55BB5-------%8((---- $7$B(7,7$-------%((---- $$(,$----$1qq11----$----$-------%---- $-------%@---- $?J??-------%---- $!------- %as---- $-------% ,'#""---- $%"%-------%wB<63 22---- $vvv-------%qw| ---- $}}----$##  #-------%@2---- $?J??-------%lw---- $vvv----$JJJ----$,ll,,----$!aa!!----$JJJ----$----$ -------%  ---- $-------%---- $-------%---- $-------%"---- $!,!!-------% ---- $---1 RectangleDynamic connectorCircle0dlt_VPID_PREVIEWS_PID_LINKBASE A  FVisio 2000 DrawingVISIO 6.0 ShapesVisio.Drawing.69qCompObj",lObjInfo.VisioDocument!$ wVisioInformation"/                          ! " # $ % & ' l * + , - . / 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 m p q r s t u v w x y z { | } ~  Visio (TM) Drawing w Rt !fffMMM333?U$ $ 8 TD Arial@AN`Monotype Sor+ts@1NuWingd2 NtSymbol5TF? Y@-1U;J:DT1EW-hTT<* %UbU 0{G/z?@E.>raMbUwww U  x wFB/T&/?\.? AaT&,",'/l&Qu&x w wy  xvx)x?2  w w wwwwwJww(?k/aU8B>E>E>EU>E>E>E>@L?>`x8B>EU>E>E>E>EU>E>E>@O/F-A'Y6; AKVKVA]$TCYMMT/VM___ow 35-eI?o\ #)!!4$ld%UlllgRGQEqoJM[ETtjA O.8OJO\OnOO????7ܻxu@L&d2%?izm#Ҍj sU将ҏH 2a){Μ  ww _Zc #cb6av i| u_' 0UF\u U?g>jo2# R 0j(N`Ȋ_6!3HH!,D///A`?dHcHǂ4Ak-f\nICUw%1k-(ap {ٻ )-8YVͷ!#ͷ/)T TE=cAUF~?M&d2?F\_.?Q6 J u` n?'u2 Ubaj jB>AVS>U5 gL@S|#I!N$5 E`;Copyright (C) 1997 Visio Corporation. All s"s reserved.`shape.hlp!#9000l>0>Udd@!! $ aU&2,5,0(%T#FT6.$jRDs6e 27(4N4^?p1u?1E>?x9119U6 Op?0G2N?;rA BC)q,^5/V:V"A(bCI}80 Q %[?0_@YM(}33 Q:%^_@_R_oK QEUJL@__aI_U:E\_couoo:nHl*-""  Fąź#x}JB d_][a k"}@+_o#MaApH<( H<( H<( U E R T1<;) qUFDfP 7h> /T7 UF~@xTPYY9 7;AU@bX?\.˫P} 4u `u bu  /A@6Ah@4u7` ?SjZdnujx4y b>4U @ -?T^,'T6-DZ`'j(R &,'4r<?b6666 *6 6 1MK77@#y?R  @+5ʕ0B@2?@2?45? nTtn*'LA-9b"_7 Phhn$>UdhX5 ZA6aRac`@-flJO_4:}3(WoiAhaE9 )3O'0Ur? wOBWH~-}d9  ԲFT#z7OB |Pid_oO@+\/}o)sDJoPUFDfP h-RTUUUF~@x pp/quupwj  lpysopi`;Generic circle with text and connection points.bL&d2P?i鿈?~45DHDD 9# =hZ,>THYY9 AUF~?M&d2JQ6  u` ?/u :m biUr r~YA|XA@  B >!"!"!"+& " " "S>U5 L@"'%9 ~lb7#FR&`0 ?F\.:55?P6 0)6#CL#EC6 BLP{70N #F;P46B|# AD5 E`;Copyright (C) 1997 Visio Corporation. All 4Bs reserved.`shape.hlp!#90_00l>(>UdE $ aBE@"(Z$6Pr;< 5& ($ )37;\._?H4R^3R$iF77RRgQ%! _Z\_r#kiboc_^-Q_kqYkOVtZXBAo9R3Rq%\!;K6_{s% u^y!_{s% ~g;qE {X|#_{Hl-!  Fw#}DB #6J6 g@M&ɯd2?#M4H?\.FH$NUkBjF3OzeC$ AA_$!!  AE @1TU*1!"#AU%&')U*+,-U./01U2345U6789U:;<=>?4A HQTg%TagDTAgTAgAXAgAXQgAXgAX QgQX QgXQg QXQg QXgQX!QgQX%QgQX)QgT-Qg!QXg%QX1g)QXUQg-QXYQgX1g1XaQg9QXQgXeQgAQXuQgEQXyQgIQXgMQXiQgQQXmQgUQXqQgYQXQg5TQgaQXQgeQXQgiQXQgmQXQgqQX9QguQXgyQXAQgXEQgQXIQgQXMQgQXQQgQXQgQXQgQXQgQXQgQXQgQXQgQXQgQXQgQXQgQXQgQXQgQXQgQXQgQXQgQXQgQXQgQXQgQX2gQXQgQXg2TAgQXAgVc"H YQAQe22AYQQQQRYQYQ)Q^-QAA#g 1IQIQbaQaQAQ_3EQa@IQQQQQIZYQQQeQQQiQ#`QQƁQLQM(QQcVQWQ}Q1~QQQ2ZAu0BTfxS`Ae |D~emQE @!U43F @@] Kw@@h4@@޷?b?k9?532 ??5?QQBK R]@(GI7q%?$6?IB?0J@QCUThe cut,fail combination is reached if tinput stm cannot be parsas express(N+1). If N=MAX, wgnoreN<route and proceto look for a ima#ry.exeon. Thmeansatsyntactic item term_no_affixes(N)conside}r#have #"no furr ops^$"it aoexamined.j2MQDaeI*IXdFU^6n!3z2]W2r.BTy5? 4iAQDUAeAA5AaXiQ3d.' BoD$O6NDudO@DD=aO=GaeDeO:J~eD1O6NeO_=CkD?*?X<a5SeA~ce"85= ~?@ p@@ޏb?@`.?d`c rYff3ȵ44v 4q;5:Rv\v&vo2o2? bl(hH9/eniCaUq8SW1 HbWaEKKlgTbH c lf}wue؏9 El#Glя`k-{su!_list 2Ca__6uy4q1_?Q I{xrQ"39Cb!3qqί88\$wӟ?Ca5\_$3mAKdViAd=  HjGoq: }&rwCd:Iz~s`0 IlXB;d4'c/SaIkb="W+qc7IwUsu12`tCcndAd *U@bU@ 5I:T2E9ɿ@"?@2@#5R ߼zk`)&j(z[R 췂L /SaHN%/OAOO7E2zOOEUN'OOKO؁ PEĿS][m1?5Y1f=\_'LV0eڟSao0BTfx@tJ$ @@}?@(@@@Y?@B_P(?tuĿѢuޥ u.(A;vDv@Rdvп~mvϓxItϋvψϚSa`Sa϶?0(w<p|ē.w@xUIm)|$ #52} UoݯU#cexpression(0__l/4FNb3Yn`zKͣmqVSb2q9i<d@@%pw2 ¦PS?u q4XnY1`- (ei @E"d. C Chpu ="r8M#vцơZz^@@e״  7|t)pAaP@z@"BpSaz.2S.2DG#`NM])$|Ep5g2oo{???#: 5#oA0\JΣ3c [ar#5GYk}Ϗϡϳ;?k(ϧט?-DT! '9K]o߁ߓߥq&!7.- >KEzpO|> `?@m 6? @&7'O?>& /G=79O+>2sF 2DVhz)XE_c 2DVhz5 !q|@Wcɹ/(/:/L/^/p///////cٕv?2DVD$D" {h~| /?.@ m?DijvwOҏb䉼OcF! OOOO __-__Q_c_ nC_ő____ ofşן[1`ijZV@@=ywȀȑVeV nbfDVhz22 ?xC4P\[5`k,3LoC#5Gki0Wۢ說~F>(yEߘCL &W!й~He>ߔY0ۣ`ۯhn%7I9hHҳ $E@@?@`q?X-7?e.e7һ ʖB81$jqD\6rLvX8! 64ԅr bn0nUg'%GBTfk. +=M7fx _/X8bTeargliOstjh*gPHie6q9hShg/{32~P3:g]a i(//;f9h=h'2rJ)b)6nqU?g?9h9h\7o]a/ġ!ĬHc!nC i4*g1@AA{n`iFmd|>?@#vT@@Ƈb@h0 ?QTYUPdָYAv"aYU3}X3~SriXihS?hS!!2Wfafy4_L&d2?tde|bX?@\A+x ?@e $ (,¯v&~BWfIQlo}Wfwklx\+hkgva>5P]j d@ 1RV |?{@?@~ڇt]NO`MamGS&u±(G_ ?/Q/c.bO;RV̟lm\T㤡#@$!}dO!rOGۡO OOOOE_/^x?<`JUz^@ ZW?l_~________o o2oDoۡۡeiƄjGojiddamoU@`\Q@gv@0vFu*2.fYkJU3DE~"11kIm UdE U5&f;3|>%n35U> ;^U?c ?@93X@'_ ZrсrcB̒۟#/Wqc~@t:?d# "D ~/Gqd%7I[m~h4FhTuypyK~A+@n<FXj|ď֎$ /=Z@@Suv dUtx1斟ﻟ i~j|ֱ}׻Yk}cϯv;MpF4cr`N@" \&. '/9/K! Zi/{/&!c*!/%>4 b// ??0?B??f???}/?a*+?? O#O5OM=[OmOOOOO?OO9o_S6OZ_: O__(O"OГSOotOOJo!Viharglis t_`nooooooo}!D$!aHo@nc.eEWi{~v//(/:/L//p/'f/V/,//;?Tz=7?I?#ρc?u????gM_?@_Og"JC bOOO~3JCƯ_L࠯S_"Ur_close_______moS7oπ[omooooog}_?@(`o.-?zs1tA֑!ϏE(k߳ŏ T9K]o#OݟoxhM]'LAإ@U.(!V#D?raydimYk}ſ׿)g}ϯ2DVhzό@&?@e״CU>Љ QF&TC&Ugyߋߝ߯ߓ B-?Qcu? }M} 2DV _zɛO_/s_8_! o/-oS o@n %7I[ݽ~O!y)P//pД,@r?@ir;?@Fh?@`?q !?Ptqj?s u` s?YuPd@r;/%I !TqbTqRP1:ԺĆ)2qL@/ ??/?A?S?e?w:6Qa+9=A:Or`Yv9ԕbm 8'!@RIԞ*Iԟ9]aUkprimary_expressionCj4ooxxSf03!Xbf\=!a #p=pB+qr47}Ŝ#H AoHZI\{o9;h\qcX-Dcߙ/@r@ @@u߸bX?@pVj%.c/u"'%0問/&#8Hf/);M_qv??6O?}'?-OZ.O@ORO*tOOp*OOOOO8L(_GoUY_ 07__3EAc/Yoof3Ӱfex_identifiero,>kdgw.1`?ߺ2bCFl% !DydJ\6x!F6HfF&8J\nl_:O[Z&8.1N`;m.1o8e//GHm$k4Xo0"MmA/d~v/Y+constant/////??61 !2?T !O?)s??????!Z?% >ēO%OlĕCOUOgO43K73_OOOOO__'_9__]___5_zs__o !o+o !Qocouoooooo/hh'#PqʀĕωTT'#?/+߀@&.stringuϏA7Pbϓ-ߒ߳&Ŵ/8*8ߚ/\T//un? /G? G\pression(0)iqd?@@1tVa_ @J#ec&b,ccJuBBDb,b)5:K8C)nԾc؄1`ĕߧ"rTdcjkTU?T!+p4A#I@:ϯ%()\24lb?@cBf?V W`r@#`k),GWiύ>,ζ)5,z %5YH,r B  M`ToU5gh<~<~(!tWhza%Fc/9Pb7(OO+O=OOOaOsO)^%7J\9Ot*/ЉU6__Ёqn5+o=oЁ6ſ^vo_oЁO_$ooHn!ԅ(suffix_item(N)j4//cXŕcXSG&03rks-&YA!y/0=N1rD=uD3Q//A kn@{/)/oM-710?B7JN1~QN?}t?????՘y tr\. @@'_Z@@2X?@?BP(? ?Qՙ#F4EO7O[PAEQy__'_9_K_]_o_ZГQ igxq6gƻOgTJm0J~Q,~QO-Ջ}!3Ճd+ɺ@ʥ`q,3 z)2'arglist/Ï//??RPA5RʣWn3<ϡÀ19<1v@@Vt̊Y &!g!gP |1WnL1-Bu`u@`bu  A5Dȕc"rBA^sg$xEOWO`ICCX 0{GzL y 4 Zz^@@93X `0 )2pv~%[@z@yBpi]aӵ",/>%j'6-t/> t]eʓ!@ Xҟ5_UV_Z:Y!j{5?c=Rҡ%7I[m @@$Ε6C18W^'9K]oҡ V#5GF$D" ~@@Swi~f}oo#foo /;ֵVW@$!3~Yғ#O%i3y//Zߕsv/?"?4?F?X?j?|????uN?EDQNDRl~ ؟PezV?@p@@NF@ϓ֕/A@ϕ3VXt&&Kv_ůׯ 1CUyϗ8֗ο$DQ5GDQmϑϣϵ~XgKhhTlqˌϰߎK &+\H{expression(CommaPrec)# ,Pbt@X, @@ǕP ٕ 2$'v sͯ߯'L{ 2̿,>Pb%ߒr Ŭ/0*/RdT//'' .@? `%6t_arglistHZl~`56qM/!A;lAIAI hEP)p(hP@zB@@boeApq"qCv/B@T~5&CWfVgrVgu&Bw}fgpJE.f1x@Rx $s wała̓Ԁ :pEb ig ZSNX0`1%O@O/ev?@@/?@`ǟq?/K ?PBKoolBe2oDjB~[c~U+<LQ2DVhzńՄӏO#i B\?QaKzό`<1cs@+ߗV?7j(OOS_66033󿒱6 WNOX_aXJyw________+oگOe[inpoog l k/T5L 7@US*JoR?fͿ@e?@n´elƞ֯*z:pxA1pKBu,wRc$6FCj}Q\ř߫߹uեo&IߚCI@\. ?AKÀ1BIE7A(\@  1ӔݯفaُŊOOOOH9QH$@@BP(? UĕQH UUjba4acc5#aq !1"PPA#PZ #(";q73)QsR?neE@Z4?@w_x< %%ǚu!7>Uc bu$ r3EkCUfYigt`@iۉ$?@đߺ?/%`Qb d ~@C̤X'L@"?@4@Dq4ݖa_~ @ƥS36RSc$6VReRR\1u/4^z52?410841`!2(?OhrgP"CCr <)M?Ua0)q/JU@ Df t?@fkn_W`r@Q7^5___(?S`5V?No,o?PoSu^/MsooAoQ%VUr}oˆM`o]h'Ղ+CUiyYs&cFu0T,i-gXgX3'29?8 ̆*k ,ڡrU_ eqd @{>`?@ `Ͻ(@`5M/_/q)CWR_d_v])x!tфک祶Fu@FuFOT0_S%.%7نYGQΐ}F @˼i`5@οkE%d] ;:;By-Tea?rglistp ʀԎ6Fs׿(1C' 4)р4)_ DlXE2dzhr$|?@Lh?.R61*bFAjTao|u``uh`bu A HwCpa7BpBy0$p:hi2<x=ң0{Gz7 _0ه`b ]8 ?@D"HW@@pܾ@z@wB#p.B.AS 2, L32 L2K/E!W0kJ* &6 &0EFuqԡ`1`2q FC E@~bx;SU@r0ǿ@"?@">#\p#P6Tn/#i?paE&|z(ũң a2a30۩c JtDzP >%??7)5/,OPOPnN?O?ca͵ʹES`_E_]IFqc?2p8nu?qd $vn<&d<*'e0efC0C b``f a,6Ff%` @pcE: /QFVrA@zW__(ŋ???OO?XOU@t?LRJ"`OofM(eq4aH~RﰌAAx4ɐqTrw9=u}ZȟcqAcC~___E___퀮b(`$|4F@xâ,8rij"`"b oooo`i6Ѷ+1Z%JR$$,&d!!kWj|<*!$AѶBзз)ѶU!_)Y#@usU##D5́T4@́;:0Tib ufԣȨCgQ"v_#5_Yk}l@@?ɨۯRk yockճkcrw=Oa!/u(@:L'p]vU@;C[qGᰏ8U*.@R`?(/(ܜ/33u1OadvMNt@@!Z?W@aYNkGQ]a\DheFNjm11IC QCð1ACE BRE SR BFF:RB:RF:RV0R\0R@%S%2|6fV5V(E`nEVZåw?x< ec?0BTO"OP`$``iۉ$?@??/B<%`GJ˲F bMNV _`C̤X'a@L@"?@ d@Deta_ @5R'v/2>cv*!">_#oxt^nubtqpxt1`t("rI:ȃuc#EM&dg2??1!f!10'!ٗ15%M5)\]t Df t?@?fk׻?(? W`B2r W@,Nv@@uHQ[PXaeEoۯ*c/.-joB~AdBƷQп,vkR3ƲMs3\n9"E9QcnȏڏNvn@@̆g?@?ORs{2 9 H8s@>:=saHFaQ|9= OyL&d2?24tͅ_dbkpֺ!@@rGWa_>O9KC|$v|Ș`W_i_7(Lp!`P23f13 7e@3%1dwq_dwv;B*(/?S@tpɣڬ}yoaע3%Ƥ@x`Jtw&!"Ur'R//%___hoto9f8gRixuͿaU΀u(:υgv#Ʒz agq?Ŀoãa!6 //0/B/T/f/x/\//@"H$@W~(J??)?;?M?_?q??C???;D?}߈?(aMQ:AOCOR@9COO0a!_3_E_W_i_{______2nOo91oCoUogoyoooooo@u}4=?@o @@ؐy(?-DT! '9K]oȡ 1CU4aU@~$ {@ޱNPF>ˈCֶBۏ7ƓמקݮymȡzH湟˟ݟ%7[m鐾ﮯ̯ޯ&d9sbj L@@6P&d2闸.y(V?eVm=#-&N`rτf6 Ϭ?8W@5-T\T,i?V-TU@N/ +S<"碻X/#CL &Ww/<"RAOR/)v/*c; rR(1[6#:@44?11-Q1jFd0?@''߂@@`A@?8`BZ;43ME?i Aa\/n>Pb(//7Df{#'=)76HZl)EL3A7(1Zm?K[?a(1r<)?w{I?m?????>q@7HAFO O)O;OMO_OqOOOOOOOO{{YT ^.ZG<_NZ6O@e]_U@?T/% X_dU _S _Tl#dm?=5,??cm>gm R1IOmOOITprimary_expressioniaIQ78b'2R2V>Q_'9K]oo/ cfDh96vm!{| b//O/:/kl/z0///Q//Q ??/?A?S?e?B?$hOSOj/OSOPO%w%x30O OH1X,W(N+1)6_H_Z_l_~___Q_dzBioo)o;oMoo*2:ﯾuS(y``q?ľրjee*("74oe 2)tñLS0BTfx`rwsDg"8FYk:ޤaR v Q\term_no_affixes(N)Cjԯ毑ؕرSׂ03!qe֜V̡^N!rB$r-0a ׁЯas \RTUIQdI_ȿڿWo@keyf&@@}n@#ol.%e@%oϸj-.rA6&B'u&1CUgyߋߝ߮:@& ?-`?Qc?T: I׏ Q'uO*_@,'(D_\R,ǟ+__!f/Dk5%+wW/P<5N2/AKU:FOL{Sj3^2&w\Va\n}.?Q0!8iEL^pʏ܏$Va3HZl~hC?6'z$o {A eޟ`7fc7Ub~餯 ȣVo*?P?b?t????u'L?/RO{*+=OOOaOwOOg=OOOOO] C?o7[;RŽo>]^+O_ol,*OOnm^Ooosuffix_list(N)ooo 0BU!U79:w0W00w0W0'w0)U J@' J4@8 @f@< @BT@JSJl@XAJt@\AJ|@` J@qAJ@uAJ@yAJ@} @U@AJ@AJ@AJ@*AJ@ K4 AJU KPAJKP JU,KPJLKPAJUTKPAJ\KPAJMdKP\*KPZUtKP Z|KP ZUKPZKPPGKP4'jKPSZKPW'jKPv|P' ZU}`Z}`ZU$}`oj<}`ojUT}`'jt}`oj}`PB}`Z}`Z}`oj}` `}`Gp8}`!Gz}`%Gz}`)Gz-Gz p1Gzp5Gzp9Gz$p=Gz,pAGz4pEGzTc7 0 DB!)!@!1x!1DA1!~11$U%&'()*+ !-./012456789:R;m=>U?@BC/!FUH*IJKA!UMNOPQRS]AUVWXYJZ[]U^_`abcefghijRke!mnUopqrsAuvwxyz{T}~Q W0 @PGpQ XA /APw+=O*+,-./012*34@ U`Z)-1/C/ n///b!U_aIU!79:UL@kj/@.?%?7?D9 U681*_ =?CI9FWLN$N'kTN)t^__XWC̅}2eBV1`ލB?l_R7=# <# OC# D+# 3UG`SummaryInformation(#%) DocumentSummaryInformation80_1137691178(FPNcOjf}OjOle 7Oh+'0@HT`lxG6WD OA&" WMFCW 2R6*6WD EMFRd@VISIODrawing  .&%    '% % ( % %  W$UU% % ( %    '% V,~~~~% ( % &%    '% % ( % %  W,% % ( %    '% V,% ( % &%    '% V0yyy% ( % ( &%    '% % ( % %  WDqX qqsw}LRWXX% % ( %    '% V,U\UX\U% ( % &%    '% V0)))% ( % ( &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W$UooU% % ( %    '% V,nynynn% ( % &%    '% % ( % %  W$)6)6% % ( %    '% V,6A6A66% ( % &%    '% % ( % %  W,% % ( %    '% V,% ( % &%    '% % ( % %  W8aqkfcaa% % ( %    '% V,  % ( % &%    '% % ( % %  W8% % ( %    '% V,% ( % &%    '% V0% ( % ( &%    '% % ( % %  W$aooa% % ( %    '% V,nynynn% ( % &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% V0yyyy% ( % ( &%    '% V0AAAA% ( % ( &%    '% V0AAAA% ( % ( &%    '% V0yyyy% ( % ( &%    '% V0)))% ( % ( &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W$)6)6% % ( %    '% V,6A6A66% ( % &%    '% V0Y1JYJJ1Y1YJ% ( % ( &%    '% % ( % %  W$6=O=6=O=% % ( %    '% V,N:YAN:Y=NAN:% ( % &%    '% % ( % %  W$1=N=1=&" WMFC RN=% % ( %    '% V,M:XAM:X=MAM:% ( % &%    '% % ( % %  WD@>AX @>@KBRFWMX3X:W?RAKAH% % ( %    '% V,=>DI=IA>DI=I% ( % &%    '% V011JJ1J111J% ( % ( &%    '% % ( % %  W$====% % ( %    '% V0:A=A=:=% ( % &%    '% VPyx y{~yxy~{y% ( % ( &%    '% V0xxx% ( % ( &%    '% % ( % %  WDa aacgm% % ( %    '% V,% ( % &%    '% % ( % %  W(VoVao% % ( %    '% V,nynynn% ( % &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W(% % ( %    '% V,% ( % &%    '% V0)))% ( % ( &%    '% V0)))% ( % ( &%    '% V0)  ) ) % ( % ( &%    '% V0,)),),)% ( % ( &%    '% % ( % %  W$))% % ( %    '% V,% ( % &%    '% VP* $)*(#% ( % ( &%    '% VPB\) BDIOVZ\Z#U'N)H'D"B% ( % ( &%    '% % ( % %  W8 % % ( %    '% V,  % ( % &%    '% % ( % %  W$% % ( %    '% V,  % ( % &%    '% % ( % %  W$,8,8% % ( %    '% V,7B 7B7 7% ( % &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W4\x\jqvxx% % ( %    '% V,u|ux|u% ( % &%    '% % ( % %  W$)n)n% % ( %    '% V,mxmxmm% ( % &%  &2WMFCR   '% % ( % %  W$)n)n% % ( %    '% V,mxmxmm% ( % &%    '% % ( % %  W$yy% % ( %    '% V,% ( % &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W,!`!`1V% % ( %    '% V,U`U`UU% ( % &%    '% % ( % %  W8QQQPMHA% % ( %    '% V,NUNQUN% ( % &%    '% % ( % %  W8!AQ!Q1Q7P<M?HAAA% % ( %    '% V,=D=AD=% ( % &%    '% V0E!^^!^!EE^% ( % ( &%    '% V0!!!% ( % ( &%    '% V0%!>>!>!%%>% ( % ( &%    '% % ( % %  W$!161!161% % ( %    '% V,6.A56.A1656.% ( % &%    '% % ( % %  W$1111% % ( %    '% V,.5.15.% ( % &%    '% V0yHHHyy% ( % ( &%    '% % ( % %  W,HpHpSf% % ( %    '% V,epepee% ( %   0-----%U---- $~~~------- %---- $----$yy-------% qqsw}LRWXX---- $UX\U----$))-------%---- $-------%oU---- $nynn-------%)6---- $6A66------- %---- $-------%qkfcaa---- $ -------%---- $----$-------%oa---- $nynn-------%---- $----$yyy----$AAA----$AAA----$yyy----$))-------%---- $-------%)6---- $6A66----$YJJ1Y1YJ-------%6=O=---- $N:Y=NAN:-------%1=N=---- $M:X=MAM:-------% @>@KBRFWMX3X:W?RAKAH---- $=IA>DI=I----$J1J111J-------%==----$=A=:=----$ y{~yxy~{y----$xx-------% aacgm---- $------- %Vao---- $nynn-------%---- $------- %---- $----$))----$))----$ ) ) ----$),),)-------%)---- $----$ $)*(#----$ BDIOVZ\Z#U'N)H'D"B-------% ---- $ -------%---- $ -------%,8---- $7B7 7-------%---- $-------%---- $-------%\jqvxx---- $ux|u-------%)n---- $mxmm-------%)n---- $mxmm-------%y---- $-------%---- $------- %!`1V---- $U`UU-------%QQPMHA---- $NQUN-------%!Q1Q7P<M?HAAA---- $=AD=----$^!^!EE^----$!!----$>!>!%%>-------%!161---- $6.A1656.-------%11---- $.15.----$HHyy------- %HpSf---- $epee--h՜.+,D՜.+,4@HP\h t   PagesMastersPage-1 RectangleDynamic connectorCircle0dlt_VPID_PREVIEWS_PID_LINKBASE A CompObj'*8lObjInfo:VisioDocument),o VisioInformation"; FVisio 2000 DrawingVISIO 6.0 ShapesVisio.Drawing.69q՜.+,D՜.+,(@HP\h t   PagesMastersPage  Visio (TM) Drawing raMbUwww U  x wFB/T&/?\.? AaT&,",'/l&Qu&x w wy  xvx)x?2  w w wwwwwJww(?k/aU8B>E>E>EU>E>E>E>@L?>`x8B>EU>E>E>E>EU>E>E>@O/F-A'Y6; AKVKVA]$TCYMMT/VM___ow 35-eI?o\ #)!!4$ld%UlllgRGQEqoJM[ETtjA O.8OJO\OnOO????7ܻxu@L&d2%?izm#Ҍj sU将ҏH 2a){Μ  ww _Zc #cb6av i| u_' 0UF\u U?g>jo2# R 0j(N`Ȋ_6!3HH!,D///A`?dHcHǂ4Ak-f\nICUw%1k-(ap {ٻ )-8YVͷ!#ͷ/)T TE=cAUF~?M&d2?F\_.?Q6 J u` n?'u2 Ubaj jB>AVS>U5 gL@S|#I!N$5 E`;Copyright (C) 1997 Visio Corporation. All s"s reserved.`shape.hlp!#9000l>0>Udd@!! $ aU&2,5,0(%T#FT6.$jRDs6e 27(4N4^?p1u?1E>?x9119U6 Op?0G2N?;rA BC)q,^5/V:V"A(bCI}80 Q %[?0_@YM(}33 Q:%^_@_R_oK QEUJL@__aI_U:E\_couoo:nHl*-""  F s`#JB b][as] @+_$]Mak H<( H<( UlE6 R T1C;UFDfP 7h> /T7 UF~@xTPYY9 7;AU@bX?\.˫P} 4u `u bu  /A@6Ah@4u7` ?SjZdnujx4y b>4U @ -?T^,'T6-DZ`'j(R &,'4r<?b6666 *6 6 1MK77@#y?R  @+5ʕ0B@2?@2?45? nTtn*'LA-9b"_7 Phhn$>UdhX5 ZA6aRac`@-flJO_4:}3(WoiAhaE9 )3O'0Ur? wOBWH~-}X9  ԲF#7OB $id;@+*k<)seP(t? 4VT+ BDr$WD9P//iFy?|Sj UoPC=t@`0 @FDNTe@y  ahZ-(qTqUF$x4@Fr'ݨ@FxNUBF3Oze"TPDAA_;!  @*1T1!"#U$%&'U)*+,U-./0U1234U5678U9:;?(4AUBCbEVGUHIJKULMNOUQRS aEcDSd^g5Sda^g%ESd Q^gSdQ^g QOhQ^gQOhQ^gQOh#Q^gQOh'Q^gQOh+Q^gOh/Q^g#QOh3Q^g'QOh^g+QOh?Q^g/QOh^g3QOh^gSd_Q^g;QOhkQ^g?QOhQaEcCQOhCQhGQOhsQhOhSQ^g1Oh;Q^gSQOh[Q^gOhcQ^g[QOhgQ^g_QOhQ^gcQOhQ^ggQOhQhkQOhQ^goQOhhsQOhQ^g5SdQ^g{QOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOhQ^gQOh2^gQOha^gQOhe^gQOh a^gQOhY^gQOheEcQOha^gQOha^gQOha^gQOh#a^g2Sd+a^gQOh/a^gQOh3a^gaOh'a^glSd^g aOh;a^gYSdCa^ghQf3@]h^cQfW[jaOh?a^gaOhAh#aOhZ[j'aOh[[j+aOh][j/aOh_[j3aOh`[jSda[j;aOhm[j?aOhn[jCaOhY[f"HCgQ;aD;aaQ_Q_Q'QfHP 7RiHPSQA1XHP0[QjHP=ƧQkHPJQlHPWQQQoHP~Q#pHPQQQQdHPQqHPrHP!csHPatHP#auHP+a#a#a[wHPe10\HP"MQQjAAgHPA8T8bAeT cA%EGeA#A1D3uKeAIA1Ke5'?@D<@@cB?@`q?+$3%?[a:%v5#%5,%55%?C?#:!;OJ3223&ehG1BK&R'`@WAQQ KeQeO SHhoQ1AR.*250ehxu6E)0#)1h5,&?'%Oh#N%O?OAe?5OOYNqerKeexpression@wa1w ew9heHhCa(4n_03R36"!__d8d84(;[!'2rH$36^"f#bs1excs51@ug51i5)0u?@JOҢ@@BP(3(us G/Y)cum%lu}%uu/////.UZGQ?*?<9Scg aH?Z?l?~?????$_6_H_OsHuvrOjOOןOOO_Uny_]ȣu_n(N)_m+%b quc}-2,>L_q%?@x5WhprpHÐ +S?4%5Cv6u5 6u 565267wC0{Gza 8!Q2b /u/no`$U8BT`p1Ӥ@03ƫiiQ\"JS_ѯw^ϓ o0BTfxߊXA ؆`0 ؟cipٍee?.@RowyfhCYgykqseq(N,ASSOC'Kv` Uf~ l)U]7P Xx5 //-/?.YqT/f/x///&vGPbOOuyiPbtHOlG ur+y?U@?Qx?, 0 íoPobotnO5  W`x<@p85?TU?8dUeUuUsƣT fk8!Gauf afUebkfufuf5ff!cYEzqe(D_V_(xGa0Ga]:sHt aSs]GbZ"O9OKO'D{ ?@MS@e?#@.P6=^ota! B?{ %`hSts͙r4on_x 5reo"o uf-ufG"ÿտ%///817 KOAL9ʕ?OBA9ʕH6O]cp]ڢq詻u d_&Q1{ﮔT <hV?j?@U{ՂXZiUrU{sńߏ.o (Mc!]up/J"#LGO0'!yOOyo!U&𣔳(:^{0KP`tߝuB߀L1%߄g%+OT7qZ'-G_ϟ:~Z9fx1^J bá_%_7_I_[_m____YV B D" 拣XK~˼_o#o5oGoYoko}oooooBȃ1Qɚj7 z+{8S'u5 =Qf szuB‘sBϻ#Z6C x2]Qwy?ŏ׏ 1Ug ڋ 著Yk}٠ߠTxZDt?@BqTG@@`0 hp`q?HP?PD 7Y@yIiRI[ZluBឳ % sL桛-y!V | 3-w b&J Vf 4OI`c5Rg4EO/r*/4%Ol/ÕCtermseq(N,ASSOC)jP OO>>SVlkF\?03x2NF<-wAg?*?O@=Vx@rPeMEqO??> GLݠ/"/5Oˑ9{6ACS^L(@@A~?@BP(?TU?Q<|UUUUI Ey GS$/%49uVJ{`~URsIE9~{%9&.k?Ct9aM?C_9/)7xfy2)2Au,?GqMI6A%ogKadwP?gCշVčOUd bLhLhiAIE=16OHO?v[HANA\)ܭg]s@@E#< WlK?+@APvٱP-DTS! O!3-;us`uF``bu V@Ƹ80 -<"2K@#IJ@DFo ~9VD0{Gze3)hb Z^O<X:F@);p*Ű@zq@1;p%q^q߃{QCUƅ҅B ݕIe1u@.oʔOewWb__KU&0B:/)%w4#LQKǯٯ므p__I$AҦ^~h~P_:f4d$Rbc^n6HZl~KCXϱ 0Zau]eb%7z^wĖ[ D|'Q%q/~!G@tQTOWM=$ u q>d?vYO^A|RWXx< _p8?45? a5o7c54[F 18 1ÇqUF!UFBFFFFFV$9%e??xAq}ST!Sq= 1??4FX9'^D{ ?@M3@e?@qb0ycqe>ёtUA 1 B{ %a@btkAbRRwOcg_bUeg5RaESOeO.FĸF //-/$#zm+f#rjI1) //">!) ny3xC5qQ_W+_3e L_^_?N6Eptߥ@@HxCXm ȒfOH-EȔ@"4qON`$ɐMaa#Lup0w7i⡼vtYk}⏡Xt*ȔοJ3ebφ>Wp{Ϥ翼 (TuASSOC=xfyCi4$o6o((Ь'2sxaBu֨_r_?o 2FoXlepfEiEomMoMoo{8Jl~GQM(:LϾBď 菖Qߤ!!K7Yk}𙴅(@@J> !@@"?@BP(ԣ"ߣ?QOE-E,4}Ѻc.BSL&+"M%`&گ5QB42 %+>#S.@;/Pw<=M?\. ?triseq(N)q(,Q!ŧ/! 7D?Xd0?zOIai'i(B O_NOMբE^MO_O _JO,v_#_YG_Y_k_GU_ٯ_ oo1oCoUogoyoPēoﴴeal(o0i4~}YY֟Pa1E>䉌 @@BqTG@@K[ A zdsup`u ~b'Wu 0 53N.A'J Ef$LU4`UðjqG0{GzR@L[ɏ? tr3b x%?׏/"|ufuŬuxuCBe S"!/hơv''s's @~sb ǡƁCl@?[@?ù?̬ ? 7&@N!ПJZ ~aapb %P%p2!3Ռbb%i#򱠷w\L.^1Q/V)e$,Aq si/V=m摰я$њ)fn?%yǡV /@@CuI4vy6uFs6u5ߕH|F6 4}q ӹBR- w%=qu?`hz`:)׶m۶mÂ@t֗U_U$z_uCj_ 1?o0UH'kH3o-???Q?c?u?P23"@cV2)ޙ<?+@5c8sHK~A?AZ9sFr%P"s\َk-?XoOOOOEIĆOOOXR(f6O<@@4_M)pp!Y}F@zu}ĆÇϟ Ӈ 3+&_ӂ=U7OR??p___oo+oooU,-o%o);M_qrK> !u);M_qH!I|@ݏ%kLeDJeU_Dv6擟5︟| {씇|Vhz!;̯ޯs8J\n,ĭĿъ /ɼ7я$,e%?U@;&0Z}0cAX?d$?EH ^E^C'+=ߜ?KWi]Q%]!<"fL=Uc0JW!)A!A!3-EQU .9 %/< /5Se?'-????i/y?/@?eX?&??J> nASSOC?=yfxiPd@/`Q '2pҚFbRwѿOOoG'te?@Mp8?T?@ӮRUPSq?}tQ B{ %RtIRTkc]Ug5Rߢ@UyКٰfO a-t%//L]&Kf>O5 =O'O9OR?x^(phzraGc_ZTlмOTA|RW;/x<#0T^fo_oqooi8w;tӖ!ÒɖӖӖtƅP!em(ƈˆptզ瑱k_:Z)_;_M___q__\D{ ë____;_}aѲo$oг_ֲCkѲVoqoӖӖoooo#5GYk} Nñʡܯ$6HZl_ƿؿPbt疧Ϲ%7I[mߑߣߵ" STDVh qt%<ބV K> !@@J2#7!$"8Pa@l* 9׵<-u 2u`bu \! a&XCZj(Z(`@@`!Z" e!#o"j"$eZi16^T!0{oGzB6 /7 2b UH(ބ? %׏"@@L$)-p!-8p @z@@2?>I5X5$16;G076B07EOWE16GOM@7OW@+}a?3hCB6A[ ,>P: 9B U "._]#! y-?itgyfkQJd뀐7z@@X?d e#e8eHeXd//cD ??aɤvA7O7Q)L10a qq@_BWViTg___> g ˍd v.R@2k ~ceASSOC=noneihh0O'2scf2rmG V(fue-oϡɥᩊoqooonO{A|RW`bb0x<; lstZucEl&vCUgDy86As%aFH&aF\8>HH\\kPT6;e);7ƐH! ӣ\&!H^/6AϯSo5GD{ 6A@!F1CE_KbFuϒHHG_Y_afxƟ؟,P\Qcu߇ߙ߽߫G $6HZl~זe[:4\.@Rdv*<N``?'o%o7oIo[omo=hkl`$Hcw@@viCol}EuE#uE3/{-/r1yaV);M/,?>?P??5cGEo@ioy?OooY/o}So 6ooSC=xfxgy.dvj#?گ3OEOWOFXBb_`;Zj|!Ͽ__(_ϐ);j!B)*o Ϲҏ&8Cj!OM_qj!!¦Ï؟O_jT]/o/////o///_xoo}???7!3EWi{4ÿտ /A_qσϕ<%jT"4FXj|ߎ߲ 7+TQ&NOorO6HZ%OO9OK@O`O_sCOШO`_̂{xfyseq(N)QjS^7P?o?03_b 1Yc391q G_ô=^>!BFrm$Qe#1q4oo\Og7__@,q1隯GzQy^?@RI%jZ?@BP(?֊?QN`qkz{/0Q9a?8'/f3??@??<#A1I_SIś:۞͓GUR($M!x<Ο@ +S?ԾC*$ղ%m%//?*Ѭ 2H7Q0{GzLcW ,уlb E%.@Rdv)O@֛_y:|O@߿`00ӵ iC:X-_Q2.,>Pb!XA@yH$OD⊈yҜgď֏!yPLa1̶Sc=&FXjNğy/3?/cu=Vtermۯ/#(?g?ϝ]0=/ĵO޿>JO!u7P_*/Ƽ2(fNN_ϭϿ̱.@Rdv߀P*_qS<@p^1Pxvn-t*u`u`bu`u mv0G"AvxfxƠ@7lqfrqqs{rvrtp@̱=7 U Zt?/bZ #x>H#w)gbp1 a߈|p@z(`@ڂ!p#"32D Ѱ c=<~<˲ b˗L՟$f /#,_HZ߲y1:[? `G ܥ.~ na]#lo~oooooooo{fzWnP25x6ùGYk} ]!EVhzߢ4cFQ~nkl* ؆H"-1];':mF cEDסB ##O-#F_q˯ݯ<6TfdQ4d"4FXw"Z[ n%/r6ے$6 +#bB?]X/j/|/////j"6//<%?;_I?h/m?6d??W=d9L6xfyrestseq??O,/+O(N3?_oK;<_OMH _UO/_A_Oe\UO_sOO___ oo0oBoToXarp!A1i/, +ȀOx<5xcO"afxYwfw+5QAwv^ho߁ߓҼ!_hշz5p`%U@m39qun\fQz$oQ"oFoXojo ļ|C?@r'` `?@`q??Yŀbw@!&8fRdzBQIӣQTRʑL8!%SC b //0/5T$N^\~y%Cy25GW!pς6)λ')πi!ߍm1y?8jPmh_z_S%lAV03*󿈱p$VEy`Q Dߎ_=%aBPr4]ţx 1d_s9\ϻ@F_ikϘQ4Uϟ@ΩJN Xh4=ROa@YRů' A^HZl~D/V/Qz/R/X/O/?(65?G?-m9ޏ???y?,Ed/L_O /?_]?fNd O?OO?L3S;O_>OR____^5__oo*o l]Ï@`V'jC8TžokUoo qUKЯou-Q{yf 2DhX X,GŪfycC=X/gߞ^':L6gy____@X6?@%@@O"d1CR>[idytooӯ墠6@;-?Qcu˿ݿMq߃ITdafϩƿ2z9D]hzϓ,yfx߷OOR%77y],ߓ#d>P7<,U@y^?@\?jZYk} >sFȯگR/ /OB/f/x&//8/&op_//?&? j;5O'OOOOC/gC=?n/Sx5O[?q,mM]?O2DOO _\8._@_R_d_v_ 1\ ʝ?@r'ax< ` +S?TUCkU2f TBoEbfD՟矖of=AiVjog ?AܯRO=Oas8˖VόPS`0e0 SiVq |Bk@d~EA9ﳇq-?Qcu!XA@H$Dүz_ ,.A &;PYk}'/a̚.F?RҟvqqH6)zpv@z;@"bpq:1%F2EWA#POO" _7a:5 6(dGvOO!ooo Kqnw΄ZVA/s -}ߏߡ߳ fzPHI3Zl~ 2YYXFi{4cFQkl=8q!F[O _@sNV:_M_ȶXFWG_^__Y!36c@SfrO//&/iI>g/y%d%7I[mw_"Z[ B 듈Iۥ7͏ ߏI3O+6o#DzRgpok}şo}I O8N\{jש_syfxrestseq?>aFςO%[hBTϞxϳφۿ 1CUg=/////yg’oo#i/, >8xl6OO,O>OHTqJ{1OODBρ0ϊp '/ ?䥺oooos8U@ݡLޡoy%1>w @5Yk} 04WG?@_лdl@@ `?@`q?*2?l5u"+@49Kewg\Cg+T&ω>L12!8))G b 1CHgaqo8V5+(?E H?Z5j>4??I>?:?? ?|?4O>jPT{ύϻ((S8'lT!_03=R!7ƨsWcOO ;+rGU!wφ_\\?WY|%~O?k o$@ΩJN X?h4PesbtSuleȕ:/CqV[/m//////WidOȇevkxɿˏ);RoV&oNƯwvO_1Rpyw|`ϿN0Ԯ(e_ o_Ͽm ߡ@o#5]Ï@!`VjV `Ŧ~^m֣!3EW/{kX,Ūy?PkzO!:M_AASewωϛ\Ѳk}0?y< M7?@n'ݨ @@pt)| -DT! nu`u`bu5   0| ?B:ohDeao;U M!ϴ˱, AAA螇a?yEb@4vO~ ?SR/6sw\wW \ S:L e#kAkAt1jBC#/f*9fCfG-L?l+te4Ctk|'*%ue E%ueuvH/fIwb.gS}fb3/f~9<0)=0AuLF 5@eb[1t%$zWPoʡѿ@J?@S?IQ?b\AIIeVA?T5&x)Tf 0???8?4?F?X?j?|?6VWe_w_Yy<#@dCrgtxW9WL-ںRu0`up`bu P`u y6Pt;@bNE"Rr؀Qcxr}҂vOOOOEIIOO=w Z+&QZ!,^9tx)uϕ.tw)pQ@-z4@Rpa1?+>P1IHHBX*Q5S) W7i?@?___T:a_ ifDMF߉:bcavψϚϬ݉ g /ASew߉ߛ߭߿+IIQ6bt%u txUgH sD6T?O9KiGF3OFOyQ6P7ONߢOOI,) S3LVk}H 1CUgpAopAoo(:L^|V txHxBs٘{0uqBu,?C_iXNEVhz(^ԏBvHx+GOspAwpAʙ ژop_7tri BO:ZpSݿ{ُпk&إ m5`rDd]Aů@*:3M3mUyq23@!4>7 b,>P_tTT_,'Sofi9a`k&6OadgHl5etstermj亿̿蕇S瓶03{v笜7ѲPS࿟=qq !r͒WᴑL^\ HJw;M4ϕgg!o/xooo!|=Qf8~Ix'3[m{5q'5vOMV6l~as!Њ'6O-8mO6Hg!Ug\]g!7#expressionƟ؟878_nnvnu 薳!ن7()8G15:0T5f2ߠߏ5 %fHaAsk9 0i\rIeGFbeRdsbf!e+/=/O/a/xs]p@@G#"?@vnXĐۙ)*n%>朴YƏ(ҡd9JRqLT?f?x??4ʔȟI"ᕒH߯gyߴ߲*I6Z X/SA5Kleft associatebqooo$6zQGYk 0ixj)Ҵc<?~|H{,P?H$DxRFG[\- u0`u_`bu Y #_!U"R_!0 f#w3EWi{;tt0{Gz- G cb ^(p#snexžww)p tq}(m$@z@x"~/.;e%U"z1s"/ 5:Pc? 4A? 0_5+O!z:qV94EMO^eMa(a6HZ+=Oaߒߤ߶S( q|f? OO,>Pb8OOYلLO!Q4_܅!Y77R??Q\YjtWlK?@?@Xe?@`qUɅ҅Vӆ+o=o[WoijR&!4mwz1,E?,B}LcX!,CΣ>0' beZd8QYZZwoUPddobtwa}ˆO{ܬԅS{bΡ~ꯢXaCterm_prefixes_onl?y(N)j-_?_++S#3 ,Oi6Ug-+=!P'G2r然5C Hq++\.F׍=Z ZO!OO_`i{o@ @@Å\.O%7I[mLoO/"/4/ZÿbX, Y&r v&n(b/spm!# , 4-?t@~w<%?.3t22???oo$OտZOlO~H/OE[,>Pbt@l`+*C?@Å@l@w_3-DT! !"4FXj|te1iF 7) (@9 FJ Wz$ {x<р…  V_@FWGJ_^F *g]G4o+"1×f //-/?/Q/c/u///// $x>@/5]?*?T 9@P|oȰe˱,g˱˵2oo 0Tf/~Dr +D"^9·ՃCL &WЦs+A߁Fs3_< |W˱q0ԛur94|{y֟ґ9FWd[@@i5#?@j@ 鯻OD)2ɵ?AlA akx{vM NlpBI'Hl Џ?lÑb!t#t/d0֕: =FXL&d2?3X>DxG ,ش؀@@?@~0_> Xa֧_ޑbVU0*H0rD|moD8E Њښv=C Q@Ϙq,Ջد2O?@X?NVMF%ū -X`&{{2e~7b??54/AfĕVlf,wׁ#qu4w3ph0t"?z!tq`X xҿΤ $w 7&+?3"%L^pςϔϦϸ$٪#>66]Gk}e~oݮU@L߇E?h4@OBOO-6GROk6GOe(V $)U@)UFXj|2M{\:0o5/$6HZ@l~U_c%o/&xCASTj|ғUQqAe),a$'>y,a,ieX)ydpK: `qr?@BP(Ӆ܅?QeSPԆ5ޅ36#y\#.5T(_p1V#[Q>!R0Me0Zg`aye'[ƺFK]owC&F_,HG/kp_b1_mb1 .7G;o/_/*/<)HS,Hh._!3`Oφ/+߷3#_operator//??O7?I?Uv:BUKQXYU[\deUfghiUjklmUnopqUrstuwUl4,$x4@r'ݨK@ %_C-$37AU2@407KRH<( U2E07 RUlLi@}?)]VD|7<U$ 4(EPSON Stylus COLOR 860Z 4?h+EW.k 3DLLName16=EPIGUE4G.dll|32D2 3 rd'hh  q*0R2\i kjql3~xh~4 ?^wRPage-1GuideRectangleGesture FormatDynamic conn?ectorYellow fillRectangle.12ConnectorVisio 00 FaceVisio 01 HighltVisio 02 ShadowVisio 03 GraduatedVisio 10 Face2Visio 11 Hig;hlt2Visio 12 Shadow2Visio 13 Graduated2Visio 20 Face3Visio 21 Hig;hlt3Visio 22 Shadow3Visio 23 Graduated3Visio 50 Bkgnd FaceVisio 51 Bkgnd HighltVisio 52 Bkgnd ShadowVisio 53 Bkgnd GraduatedVisio 70 BorderVisio 80 MarkerBasicBasic ShadowRectangle.36Rectangle.63Rectangle.80Rectangle.8Dynamic connector.71Dynamic connector.72Rectangle.6Dynamic connector.81Dynamic connector.66Rectangle.74Rectangle.16Rectangle.76Rectangle.24Rectangle.23Rectangle.44Rectangle.46Rectangle.49Rectangle.52Rectangle.55Rectangle.57Rectangle.60Dynamic connector.68Rectangle.70Rectangle.72Rectangle.75Rectangle.77Rectangle.85  3,\Eg <q1|G>{UA_UUTc MU4Mc TMUc lMc MUc Mc Mc Mc } %c 4%c L%c d%c %c j%c %d U%% _ ~U,#U4'<+UD/L3UT7\;d?B|M*UtdxUUUUT*U$ UD 0T\ 70'|R S07 m:U : 0"'0 '0#70 T'<0%:T0>^(0B0l*0L:t0PU0a:0e JU0v:0z:U0~:ĉ0:Ủ0:ԉ0:U܉0:0 J50:x0:U @:@:U@:$@:U,@:4@:U<@ JT@;@:d@:lR@;@:|@@:j@:@ @j@j@ j@`'@/KjNj k`R`$k`bKjDk`jLk`jTk`j\k`jdk`jlk`jtk`j|*k`Kjk``Uk`5zk`5zk`5zk`}z,p"}zDp3}z\pD}ztpU}zpf}zpw}zRp}pNg܋p}z5p}z 0}zU$?}z?@BC/!FUHIJKTWMNOUPQRSUVWX*YZ[e!U]^_`abciefghiJjkmUnopqrs!uvwxyzR{!}~U){0_ A /APw+=O-./01234P :w,s///A/!j///f]zih_aOT$!I!U79$yL?)?;?68"W$dqXY\($%9D????9UsetUguQK $#H546E1?gOyOG!lmno@[pBZJ^r8AJH R$2ASO __0_r9=)v__!O___H|_8~{jov/o5b__oqoo#$%&'()*+$bto'4yw* mr 4OI'>OSewя^q#5GYk}`s˟ݟ8%(L(^pjkOJI OPC&E =4%-!@!b#!!! ߯U^"U#$%&U'()*U+,-.U/012U3468Ul4,$x4@r'ݨK@ IJUNC-37AUl4, 5>A-3D7"AU~*<N@LRgdF4u Y&H<( H<( U~*<NEdʖ Rg|fq{ * g"4FXh(N@(o@(9y :^R}9}V O}u&!B}\@h >1G UCHw9Fj$Tx'| φSNLs)/F|}Ѕ2hHڒ2F?z7=H# < !P# OCDr# @D C # 3d`SummaryInformation(+- DocumentSummaryInformation8<1Table. &SummaryInformation(0C                           ! " # $ % & ' ( ) * + , - / 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 p q r s t u v w x y z { | } ~  Oh+'0@HT`lxG0;I L&" WMFC ?_AX;I EMF_d@VISIODrawing  Y&%    '% V00JJJ00J% ( % ( &%    '% % ( % %  W(t===x=t=% % ( %    '% V,:A:=A:% ( % &%    '% V00TJJTJT00J% ( % ( &%    '% % ( % %  W$====% % ( %    '% V,:A:=A:% ( % &%    '% % ( % %  W,T==T=}===% % ( %    '% V,:A:=A:% ( % &%    '% V0% ( % ( &%    '% % ( % %  W$t  t % % ( %    '% V,   % ( % &%    '% % ( % %  W$    % % ( %    '% V,    % ( % &%    '% V0`zzz``z% ( % ( &%    '% % ( % %  W(mmmmm% % ( %    '% V,iqimqi% ( % &%    '% V0% ( % ( &%    '% % ( % %  W,y?y% % ( %    '% V,yyyy% ( % &%    '% % ( % %  W(u9B9uB|=% % ( &%    '% % ( % %  W(p9B9pBw=% % ( &%    '% % ( % %  W(9iGqGi9q@m% % ( &%    '% % ( % %  W(4iBqBi4q;m% % ( &%    '% % ( % %  W(9GG9@% % ( &%    '% % ( % %  W(4BB4;% % ( &%    '% V0% ( % ( &%    '% % ( % %  W$tmmmtm% % ( %    '% V,iqimqi% ( % &%    '% % ( % %  WLm mtzw% % ( %    '% V,mxxmxx% ( % &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W$yy% % ( %    '% V,yyyy% ( % &%    '% % ( % %  W(9&" WMFC _GG9@% % ( &%    '% % ( % %  W(4BB4;% % ( &%    '% % ( % %  W(9GG9@% % ( &%    '% % ( % %  W(4BB4;% % ( &%    '% V0U U  UU % ( % ( &%    '% % ( % %  W(AKKCA% % ( %    '% V,JUJUJJ% ( % &%    '% V0    % ( % ( &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% V0$  $ $ % ( % ( &%    '% % ( % %  W($-$(-% % ( %    '% V,,7,7,,% ( % &%    '% V0n 9n99 n n9% ( % ( &%    '% % ( % %  W(,,,,,% % ( %    '% V,)0),0)% ( % &%    '% % ( % %  W$U,d,d,U,% % ( %    '% V,c)n0c)n,c0c)% ( % &%    '% % ( % %  WD^,C ^,^7`=dAiCCA=76% % ( %    '% V,,77,77% ( % &%    '% V0UWqUqqWUWUq% ( % ( &%    '% % ( % %  W(AdKdKdCdAd% % ( %    '% V,J`UhJ`UdJhJ`% ( % &%    '% V0WqqqWWq% ( % ( &%    '% % ( % %  W$dddd% % ( %    '% V,`h`dh`% ( % &%    '% % ( % %  W$dddd% % ( %    '% V,`h`dh`% ( % &%    '% V0W$qq$q$WWq% ( % ( &%    '% % ( % %  W($d-d$d(d-d% % ( %    '% V,,`7h,`7d,h,`% ( % &%    '% V0nnnn% ( % ( &%    '% % ( % %  W(% % ( %    '% V,% ( % &%    '% % ( % %  W$UddU% % ( %    '% V,cncncc% ( % &%    '% % ( % %  WD\ \\&WMFC_^af% % ( %    '% V,% ( % &%    '% V0UUUU% ( % ( &%    '% % ( % %  W(AKKCA% % ( %    '% V,JUJUJJ% ( % &%    '% V0   % ( % ( &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% % ( % %  W$  % % ( %    '% V,$$% ( % &%    '% V0$d$dd$$% ( % ( &%    '% V0||||% ( % ( &%    '% % ( % %  W$dqdq% % ( %    '% V,q|q|qq% ( % &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% V0UUUU% ( % ( &%    '% % ( % %  W(AKKCA% % ( %    '% V,JUJUJJ% ( % &%    '% % ( % %  W$% % ( %    '% V,% ( % &%    '% V0444% ( % ( &%    '% % ( % %  W$44% % ( %    '% V,% ( % &%    '% % ( % %  W(`nn`g% % ( &%    '% % ( % %  W([ii[b% % ( &%    '% % ( % %  W$++++% % ( %    '% V,(/(+/(% ( % &%    '% % ( % %  W$++++% % ( %    '% V,(/(+/(% ( % &%    '% % ( % %  W,j,,j,,y,,% % ( %    '% V,(/(,/(% ( % &%    '% % ( % %  W8+KKKJGA;+% % ( %    '% V,HOHKOH% ( % &%    '% % ( % %  W845K4KtKzJGA;5% % ( %    '% V,+66+66% ( % &%    '% V0?4XX4X4??X% ( % ( &%    '% V0t88t8t8% ( % ( &%    '% V08888% ( % (   [--$JJ00J------- %=x=t=---- $:=A:----$JTJT00J-------%==---- $:=A:------- %T=}===---- $:=A:----$-------% t ---- $  -------%  ---- $   ----$zz``z------- %mmm---- $imqi----$------- %?y---- $yyy------- %9uB|=------- %9pBw=------- %Gi9q@m------- %Bi4q;m------- %G9@------- %B4;----$-------%mtm---- $imqi-------% mtzw---- $xmxx-------%---- $-------%---- $-------%y---- $yyy------- %G9@------- %B4;------- %G9@------- %B4;----$U  UU ------- %KCA---- $JUJJ----$   -------%---- $-------%---- $----$ $ $ ------- %$(----- $,7,,----$n99 n n9------- %,,,---- $),0)-------%d,U,---- $c)n,c0c)-------% ^,^7`=dAiCCA=76---- $7,77----$UqqWUWUq------- %KdCdAd---- $J`UdJhJ`----$qqWWq-------%dd---- $`dh`-------%dd---- $`dh`----$q$q$WWq------- %$d(d-d---- $,`7d,h,`----$nnn------- %---- $-------%dU---- $cncc-------% \\^af---- $----$UUU------- %KCA---- $JUJJ----$  -------%---- $-------% ---- $$----$$dd$$----$|||-------%dq---- $q|qq-------%---- $----$UUU------- %KCA---- $JUJJ-------%---- $----$44-------%4---- $------- %n`g------- %i[b-------%++---- $(+/(-------%++---- $(+/(------- %j,,y,,---- $(,/(-------%KKJGA;+---- $HKOH-------%4KtKzJGA;5---- $6+66----$X4X4??X----$8t8t8----$888---1 RectangleDynamic connector0dlt_VPID_PREVIEWS_PID_LINKBASE A Oh+'0 ,8T hx    RThe Design and Construction of a State Machine System that Handles Nondeterminismehe  q1F4V9'-lL9w":==],|)Y,RJUUJY}LbRo7Ei #C 9Uʐ-} FQ4vq oO[ӣ;VwoowKE tFs[XdY2,\UUuS `ZPn1E!x0ǭF7j"MCWo,P<ܤ{cT)rzHPԿvjt{Q, Kb2)KBl&_wu9n/Og0 }~۔6'FIΛn5Z :!r*^,ZY FV 5M#ZFxL3% .I{XvIC/!r̔3@D@}nkUEDer!AVs m?Cl`yb&NaXp|?%3t7J)QB {{KIDTxuSe֧f{eKn+;bpa˶߇c(x?8f:#;dq`DOb*y+4+!P"HtP:B9X=B10u^iVuݶ>\ {◑^It<-Qq(o{iEv^V5(2ؔž 9Jc2jfڻ6 1[;j>qM}|bFEPp!V&ޱV!sQNSӡu38x 7fN`\zP:"2$Hym[1%.?*z1oO ַ))3}U:Y+%j tQnݮ4eq2'7$i!@j?IqcVllϾB}Kkw?{@aemTE7Rus1꽺q(,z6kIHxN`\2۶],gg{R*uc r>ӻw^Dz/_ngnf/|EYS,#d֦!9D EaN܄\w=|m_-!Vu |n_ZHWB24onliw)=}Q'vh8L~JiXl[kٙD9R)oK8]raJ\=*KI?,)t [RdtaھuG~ԣO*! fp XmeZo3jhRJֲiC%yM8pkny+ ų3 ɵKc~M׃gMŃwMśI 1],؇}*A^*=VP ,Rҁ/_>aA2pp ٟ)ʽkC]d&ܯ`Kݣe[јX~ϫ?N!:<ƶV=pO^N9MY̔80É?4hzYM(2@)[R`_Wh5bA^lstpe>wJ*쬶>>V O?/f;(=|eugGF(Ծoxa+f6$闂pj)>,ihT~¦rjQA-P%x$Ҕ]H!`0x_k՚ӄ!8'e>BVL1st jA~3$cys4É*9M\7ڮZG}YѸyZ=vBKpeBd9vy{ tiߗʺppV9J,pQs?ZXR2K+IHR{7?wP3qJ/Ly~/9ISNŬٺ"s })I@PȔ(sG@Cr4k@ ;iO~q #JNGVʍ澐[y`@F.3߷zvB o}RxnJ"]4y8#0Kʨ౲&KN%:~ޮ=XdHHZ6ێM-yL!g!S)($ Rݢ2ON\5z{Ɵ+eilIM{S NcL(|<s{]g*T(M@w#:JSӴ@!]{|W; |XJ1΄xPPz9J hѾ|sQT{jDtmZktsdT˜ oVSsLwK뵻G9#:~NFdV!%Ȱq!!|Bщ~@>Ʂ}g2VR9ѼھJVJy`IXH̞9UNuLkߺr ,& H7(,I)eim˲|9˪~Nr*x~MAfgOJ\@ 3y|+0413(8$Q`6jvu@I[H$t.z|wZ/8o^<ER9 [,чR]VO (Iv69窪1>W-RQ/D5Zwt@Ll:`8O&/$bjwm=\WkﺝKv,BHb(X !!!Y-ڧ *f;b\- ʾkk+خ! ! `?iw9x8+L:OhB,9u\ŷ{6!W/Wm(ZܪVjW'-\INM;YGہ\> Q_<3WM# mb8DcD1b65ZuYT+ IѰ)!,_M/5a˝!.V6%h)v.SeȨlUU@ת-ιluOz~YdVe`Hino3Vx[[MVӕش;Ηb xXyR{ 0l`T&h]^XU,m ݩoH3F~2G!9%4{Ntzzt׻G$}4>\dNa.sҷa#K8KX@ElQ߼ψA;rV&ʰfW^~J ֞E.72{Ȓt5>W <i3=鹚Fa.=v Ry?|*-jQzV+3/ͦv-btA0aҴ'\$@10 2UIw@ {[Y>=~;@xAikgx̨؄V6s]52;`!7b!`k(e|ۢUJ“$d,ʲL{ZثQp ;_l3 Tq{?Kȳߡݛ5M#;f6.f(lkyۢơ=e1F [_Y#2D b`QM΃8\nN6ۉxONO8K-Ŵ)BBg 9( ;M=["X;DPTHz+rk8SmB!l:H(owǯ {"+j7woǵEkrO@.3~rtԇm{Shy_]!t/94NN RQ**eV[{&?۠Ml > ,>8%Sb꜌c"31X.tκ]%@7oܣ ,VLۇuz|ju&v9rb]ay\tn2%Wr۩,3qhv6vF´eD_V\K>%KݟH2b:<7wbCX"ϐ< UշL/^`ԯ4%bi=Iu)le&I>q 2d6la{gI[Wk 'mdfu XmxvmW֭[yTsnookŢ&mK%ejBj$"Ԃ <ĀCPYpiYrY;rlʔO:&&t:;Y)o[ 2s2 *̺7ݍD.Ay1f ق4Q\\nirif?{udZ\*ιF!GDTT{n6b^7 3맮(j1G"w\[;uݝxCw=q Ly#ɀsO@HAc([<})i74g?3kDS׀J>%z3fUUZ׵/ONNjF]4ȴ!SCj^KK|:H77K0jݦoa?}e{ռ[KTVY(tvq]Y̼  Lj!7ch4c6hE=k;u(195OMnG0 :XFRSc kdw>) MuȺa'2r<=N ,nQ DHg.vN"L? rcpL7mfbPL ԞKqF]4uպ/ l{-Kf)5Ն<<%E^ÒfB+-Iً߬z㺡"'"Fh$/5)L%lkn"1ǰn*h0dwIW/P9d4"G9ٱ9=pPo`29RW;wt„r} 2]^5*jhT]ɎO)u]kngnNMQUκ<`C-0Ͽ9\2C[Y#y;h[ߖw̆(ڥg͇bą7) !L)NvΈIXrgypkK[kVDP " *IhJ;3Y2]Q ڇ7dm ^{bc +a,G}'OL ~2V`E]G˛* ߱ E cs&aBn*(zԜW,ӗAz:IMg4|d31\SS&oꂄTTƘiC)#6[Y&GZ"3]Xݽɳt0*_]q؉dZj6896f=NwG:7i)g\1}ɓbT-c]NODSB:xwwӈmTo=PC_%21zXLD֤(Xѐ;]*5Sa?a`=ab' D1-{ͭ aY-2rM,{fVW3O}Eqج_@Pt氾ǘ޺5 S:cV9FL y{cMs]N1K5<C/u<Qkʏ䥢ԩ6u%] GU}8©zX\5M:do9e¤+-(p94FeȈ_"yq5^վs "S]{l!;e꺞Ƙw.KE<鸜FNm鰊Gޓ4% I]Yi.]kji>-[iE1MVxch]۲0 \ \ҦMIB Â"Htd`nJ%YBPwȇn yL|&彭mb``Fc4)M*pSϮ^qtd^,b$ɟhֲgn6D|$6~-I#s OtiTo;=v;~ё6W cW&te8w&]!&dE|DAMq_/Miv8 ' -=UBGFuzy$s_S{..f)W]+漹"*˒Lf3tcm }BDcbnw(u)=ڶǺ4K|.JcwI!w&o&9 %TeGw]'8hs9^Uz~Tmp1)Dֲޝ[P8KIaBKsZ>p/779IENDB`m Dd,"4&<  C A? 2  6Hv-:Gݹ }`! 6Hv-:Gݹ8 T^ xZpTv. ZȡIhtFΜmiqFFbXW3g&($aP0J^2̢\,NKHQةt8<]7@ J#]j,@dq=fx$7 [ko`["(Q91Vply7($a>mn}tgJ# I>4ARP&Hg 7A Xx{u$(N ;E?=kaѽ:^hri' ˭~0<Mg4iJaB? z?#V+O_4j E9)>ǒEHx}1!>»qc5OOg8w|/^__\gtRB #><"؁_6-IKF8'qGTvuUY Ϯ!Z,#,&bg],{;NC9=JQJ{QSBck뭬Oׯx>2A =M4p-d=C^i1h W)Z` ZxexSf@JrJeUd2Ts{Mr58(ýtTHrJW(s4.IUnQj/Q]S\jh+NiȎ 5E*T˲?,n1cj'*,$XȦV6pk[oQJL츋.$>.!ʹKXvC{ak6 ܮ{V^oʹ.YoG-$vjVQqZq CI1Xag{j%|ǮvgF̓gybM}EshjmFIkZnU(_nֆ#:~UM&3Nj׋ ]h3`xa ZSNm0Zk=ËDjWVyޢ"`0Tc++F0V|̠v}45 Vy9Y*jدo_WcbzNTx^ԇUxG]*)4(o):..%z׋nz(D2s8PoaG嬼ΕT%.yX-GzDlQ28Η4{Bh;Pp)5wwSkwpm/VkýtuTt7nZbމ5a~k:u;ֿG?' [z|Awgr ׶+;>Bm) [ Dd.<  C A? 2 LE0BӮY ߃`! LE0BӮY7 "Mx_s x[ pTݷ{%3)9Sv'{5C=lN˽?,Xb+-<;Q;:< ]lyl9Kqb c8ON1퓁7{Pr[[W: Dl'e?Ž2Eb)a#*bBGxد\qoz^LtQ6zs[e,jf1+Rՙ {|=m>*]3 v,bLlj]t4d,i2F<ר1O0<ԋ+?oEG_/̝l=6%QPå/|G89o1Ojz~cL"bzc9p˩L~l;Mm{ siFm{y=_4P7gbbճ525o=O\^W˜y5Ñ`!е{7ZuzW_+xߗ%pu؎_2n)XҟS|:&h\W}IWckQʉ٧cm[8ZC쿪">$\Q:?I;Bk36'Z_xɧ5#1չ0rR_Ɋ1LJ|S~.>Xj/Q1~QQ^¼RU*+\RMc5?zee@+}܌pjWDqwBg~fD v(P@:0H*j)Ø1[QAPjէP ·7Aj+,U")?/wCi_ٍjb#cljļT *YUW0mwʕ3ϗs^~#O8擰Rm/8MY* 3]s1[uVU|m/8UoV&NM׽b׶0~miv6Rs@D1CU̘1B=j Tk z0[m{c!6܏F Ø׶7v!]Ypچv!}~m{o|Yԯ&|M%t,2arl81am, c-/` rl/1{Y-[Y-?es:!s1c=Dgb6D"4 Kh#X@3>E\s^ . [mg|'!|5Ac ꣱۷-"GPc(Csy'˺JKWLdYڸ3o\v<ANJFH=/w 'Võ'H﷚B"Vc5hc{Je-XysjcqZ=}Q*hCbx4,Rk0E)clL2 ? m+D{($Ȃ%u6v>9nvqyv=S1Ij&O3=vFϑ "h0 ' -pDh]}J$ FUi3Z8`< G%?5^6 rSUz.7 kM4+Y]dI7-x>i[hUl?#+َ mHjceVu,n\("k^w}J=>;hs Y+~^,h~ qz$:DC4 %!Kzf]Tߟ3(֒rQU*z}*+Dv4xøLЅVPi vX+!wfj Dd")<  C A? 2 Йgğ= 5 `! Йgğ= 5:y Thg| xZLUsjQt,\tjT[E]9KZ %Lx <LC?4tmmDgkf -nDAte]bYs`ι>=0l9?CCC|$i0 M; OCϊk8edu:'6:7j:&utںʚƲ~Ǎ"nW\)EO>0Pb#Wz;ޛX>Vu }0 4ڠHqK뱑F( @ܽIqsHY]5G@ 7=gk * ^qX֎}1RP<7U#yWWe*d\"TENP *nUvo RsHm##_yWejэR ~7.,'Eb>bSsBO(~}QR__SZY)3TMmLdX$[0u|Qd"Siɵ3D)3+A\o}ˍ"OrB`穃Q,|xd,, N >0"dH3'˛9+f#E/Fq‪Ӥ@NP?3tZ W-)?ykdm'Y{1k'""DOZYN֢X;)K!"_VͬV ZtDZd3x{#u|M7}'n`')4Bl| şN|:Z5%lجZEC%zPMډԳxZݷN9Էte9y0{- 5-,nOoA6O-ėT;T6Ι ϜpM<~;sRV Mwd-zkt7KFfgW Vy:L֊ڞ{Xl<ܽLœNTjF̌ ƫfz]Mm17"y^LT+!S(Qf*BhMTCXfv#]ky-FPa5hm L<|tLS^LXFbwx֕GRy3t0IX#UF6,{W"]{ TRйoy(oFLoUJc;V^&,%EgH? VFN%T(,'SSqa)vߋ}mqP/_ayAሼMށ}0w,PMkCX-YNϹ*5RcV=s-Q̶R ~9Q(rU &r*b7U2e70U̶R5h\MID;+՛ߧ㘫zI8nR,ĉ1({.^w:cv *miZ'WbUUFnR,kOY:!:{tV=ٖl}m"3ٚ a)qeSbf9rضtkĂߊ}L< }NKPDimb1_;C߱ @!,Bm)Ϻ .b#\j\]Gږ(hxna d_ "{ ʍ Er*f̳.a̰jAXCs2#9eD;f _zu3b9)ŸN|Ҍ.ݡۉ8{xVϾ*OVʲXD ia=f)וgeY,gGfhFF ;=,rv-&W6ׄjZmL=4M{g)K=4IY,0X5Hxb9=|X]2:^t1%2r"IqUe}(rZ7_.uwd2TUV;lXVQ}♥[+$kdmiR촵el!},q v3hgcgO]Lc;t=nwho\-\dW9_  2s 0|s;,+r}yTr~W8ty^8ЙN.oҟD_ N{/]YNE+1d_AFoj ^3b@ȹ)n?" 4c~rz.Jslj`2vQa+xcԖՕDj(wG=uv]wm[ؗ[ i@@@ Normal$da$CJ_HmH sH tH P@P Heading 1 $$$ & F5@&a$ 5CJ0KHJ@J Heading 2$$ & F5x@&a$5CJD@D Heading 3$ & F5x@&5CJ@@@ Heading 4$ & F5d@&5DD Heading 5 & F5<@& OJQJkHH@H Heading 6 & F5<@&6OJQJkHHH Heading 7 & F5<@&CJOJQJkHLL Heading 8 & F5<@&6CJOJQJkHL L Heading 9 & F5<@&6CJOJQJkH<A@< Default Paragraph Font6'@6 Comment ReferenceCJ,@, Comment Text@ @@ Footer 9r hh]h`hCJ&)@!& Page Number0@20 Header  9r CJ*@* TOC 1 u .@. TOC 2 u ^.@. TOC 3 u ^.@. TOC 4 u ^&& DList  f:O: Reference< tH u(U@( Hyperlink>*B*6O6 Arial28Bullet  & FDOD Courier10Cen$da$ CJOJQJ8O8 Figure & F pen(O( Normal10CJ$O$ Cell10CJ6O6 Arial24Bullet & Ft8Y8 Document Map!-D OJ QJ 8&@!8 Footnote ReferenceH*FO2FArial24#$da$CJ0OJQJmHnHu>OB> Arial20$$da$ CJ(OJQJ:aR: Arial20Bullet % & FCJ(VbV Arial22Bullet& & FddCJ,OJQJhtH u80r8 List Bullet' & Fd(( qq ( & Fnx5DO1D CourNew20bold)$a$5CJ(OJQJ@@ Cour9Both*d CJOJQJ2@2 Footnote Text+CJ@Z@ Plain Text,$da$ CJOJQJJJ NormalDivider-$&d]^a$0P@0 Body Text 2.$a$&O& Normal5/CJ .O. Normal11 0d@&JOJ NormallCell1$ 7d<a$CJ2B@"2 Body Text2 CJOJQJ.Q@2. Body Text 33CJHT@BH Block Text4$qqd]q^qa$5*OR* Normal11b5CJ@C@b@ Body Text Indent 69^96PR@rP Body Text Indent 27$d^a$6>O> Cour11Cen8$dxa$OJQJ&@& TOC 5 9p^p&@& TOC 6 :L^L&@& TOC 7 ;(^(&@& TOC 8 <^&@& TOC 9 =^@O@ GlossaryItem>[^`[uNON Table1!?$ & F ]dxa$5mH sH uJJ Summary Keywords@ 7d1$544 SummaryA 7d1$>V@!> FollowedHyperlink >*B* ph<2< Style1C$ & F3 da$,OB, NormalB1 D & FFORF NormalB2#E & F ^`<Ob< NormalN1F$ & F6dda$TOrT Thesis Title&G$dhpx]^a$CJ,,O, NormalPageH$DOD NormalHang19I 55^5`JOqJ Thesis subtitleJX]^CJ,O, NameK]^:O: addressL$d]a$CJ&O& Normal7MCJ0O0 NormalLJN$da$8O8 NormalCellO$da$CJrr Reference17P & FM :d5$7$8$9DH$^`:CJPJ mH sH utt Table;Q$ & FL enJd1$5$7$8$9DH$]Ja$CJOJ PJ QJ mH sH uZO"Z NormalInBoxR$d5$7$8$9DH$a$CJPJ mH sH uHO2H DiagramSmallS$da$CJOJPJ QJ2OB2 Normal9T$da$CJ&R& GgtpageU$0OAb0 Normal9CellV$a$2Or2 ZstyleWd 6OJQJBOB StCrOutputXCJOJQJhmH sH u>O> Normal8TnrBoxY$da$CJ@O@ NormalSingleZ$ & Fda$3jvPIQImNOPM[{[]`^FCho) Y d g       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~FFFFFFFFFFFFFFCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCh d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d g   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~9 !(.2:DT^hr|>29:DHKTaj ".18>KMPW]el/K[wfjnrswxy|}(;v'5p   !   1 A I P Q \ h k n q t w z ~   $ & * . 2 6 : > B D J P  6 B E H L Q V [ ` g l o v z }       $ ) 1 4 7 : = @ C F I L O R Y a i q y %7>IMRXgjmqtw{ #(1?NTZ_div  ".:=@MYk|%@`| $)ejr  U8<?Qcfk|"),/25GMPfs$6:EY\_nsv{ !25:>BFJN]lor} '/:DGT`h %AY\ !(/18?FJLSZacjqx|~ #*7:=@CFJNPV\bdjpvz| =?BEIMPVhlosw{ #$%&-13:=AEKQX_afmt{:;>HOT[`qty~  # ' . 1 8 ; G J \ _ f !!! !!!!!! !#!&!)!,!/!5!B!P!]!p!!!!!!!!!!!"" " """""("."?"E"K"\"i"v"{"""""# #####<#>#I#Q#Y#a#c############ $B$E$z$$$$$%%"%K%P%Z%%%%%%%&-&5&8&&&&&&&&&&&&&&&'''''$'+'0'7'>'E'L'S'X'\'^'i'q'y''''''''''''''(( (((((($(=(_(b(f(i(}((((((((((()))$)+)2)9)@)G)N)U)\)c)j)q)x))))))))))))))))))))****&*-*4*;*B*D*F*I*L*P*T*Y*k*m*r*w******************++++0+9+B+K+V+_++++++++++++++,S,U,,,,,,,---%-D-J-U-V-Y-[-]-_-a-c-n-o-|-}------------0.1.2.3.4.5.6.7.8.9.:.;.<.=.>.?.@.A.B.C.D.E.K.L.M.N.O.3333 4 44*4:4=4J4M4O44Y56666677*787F777777777 888888"8&8+8085898;8K8O8S8W8_8889E9Q999999999999999:::::+:6:E:N:Y:i:o:v:y:::::::::::::::::;/;4;@;I;b;h;;;;;;;;;;;<<<D<m<<<<<<<< ='=C=Q=U=^=b=g=l=o=x=|=============>>>>> >$>(>.>4>5>:>I>Q>Y>n>q>t>>>>>>>>>>>?? ??????"?4?F?J?N?U?[?c?j?v????????????????????????????@@ @@0@H@K@N@Q@T@W@Z@]@`@c@f@i@l@o@r@u@@@@@@@@@@@@@@@@@@@/AAAAA@BGBOBBBC5CACCCCC$DXDDDDDDDDDDDDD>EEEMETE[EbEhEpEwE~EEEEEEEEEEEEEEEEEF"F3F@FYFpFFFFFFFFFFFFFFGG(GG`HHHHII I7IdIwI|IIIIIIIIIIIIIIIIJJ)J^B^E^I^M^P^`^d^h^l^o^r^u^x^{^^^^^^^._1_4_8_<_@_C_G_S_b_f_k_o_s_v_{_~________________________`` `````+`7`I`Z`n```````` aaaaa,a/a2a5a=aEaIapa{aaaaaaaa(b/b6b=bDbKbRbYb`bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccc&c(c,c3c=c@cCcJcQcSccccccccccccdddd!d$d5d|@||||} }}%},}3};}>}A}D}G}J}M}O}[}u}}}}}}}}~~#~<~S~j~x~~~~~/q#%'*137;?CGKOSW[_aeimuy}Àƀɀ̀׀ %)-159<?BUhlhov}΂Ղ܂ ")/6=DKRY_cgot{%,29@GSZamtzńЄԄ2=ɇχՇڇ#159>GKQUZ`fjpv̈؈*5?IT]~щ36Ul '.4;@GKRdvz~)+#Ehs~NU_ *<CILYfiuy~ɏ͏<Z^bfnĐȐ̐ϐ<—ŗʗϗӗؗݗ*FKOTY]aehz٘ݘ 4IX_y|י $(,JQXblsz "%+BZqěЛܛ$2?ADGKNRUX[_cfjnquy|#';BFNRVfil~Şɞў՞ٞ !147ILOSW[_oux~ßƟɟҟ՟ٟݟ 6cؠ;_"-<PRyԢ֢ޢ%'Ns֣.9DFd'/7BMX_ȥ&T.6>FNVs E{ƪܪ&Tɫԫ֫-cemu}ìŬNV^itv~=RƮήٮ 3W߯:JLe}ʰ۰ 79JZsԱ;Yiβ !gosx}óƳ˳гԳسܳ#'*.2I`qzôƴʴش"/6=DMYbnz׵%4?JYdq$4BIPS[chnǷͷշٷܷ߷ "%(+.14=DWpx~Ƹɸ '8cfilor}¹Źȹ̹ѹ׹ܹ!%)258;>IT_juĺȺ˺κҺպٺܺ #'+/37;>LZ^adgjtݻ+>BFJNQTWZ^bfjnrvz~ļռټݼ)HOyɽlξܾ+*)&$" ۊåj؊wwwww֥58ՊjyyjjjyyyyXXeX?XXX:X6Xr541+$#!S  ,zzzӊъϊ͊^]S_pnlyxewvusqocmcSba`_SS};b^[YWP SS[ yߖjj+ޖݖܖۖږӖҖіЖa`_ZYWjyyy\[YXW|| U  }ݓۓٓؓדޞݞܞ؞מ֞ўFECTO  =?Bߑޑܑ̊ڑّˊʊȊƊŊÊؑӑёwvusqnml  ڐِҐАϐΐ͐~|{zwچ҆ʆ†ОΞ̞ɞƞÞ ]\XWVUTQNMLKJI;~|:~HETZSZPZ||X||XX|VyV/|,|F| Z ZYYYYYYYYYYYYYYX^a^y^Y|^^^.Y^^^^j^^^^-Y*Y^^^^^^^^^^^^^^^^^t^^^^^^ےؒSROMKJDCA&YYYYY YY{V}VVVVVzV@>=UUUZXXX#VVVVUUUVVVUUUUXVUUUUUUUVVVyyyyyyyyyyyyyyyyyyyyyyyyyyyVVVVU<U:U!V.}|{yyzyyyxywyvyuytysyqyxQjyiyhygyneyޒ<=>?@A^y]y[yZyYyXyWyVyUyTyNyLyKyJyIyB86HyFy420/,%# 4~>y=y;y:y9yG}x|x{xzxxxqxpxFxExDxCxBxAx3~0~~+~*~OzB@x?x=x6xyutnj5x4x3xf2x1x0x/x-x&x%x$x#x!xx%~cba`_$~YTSRQPK#~! J86oEoB?<;6xx5xxxo432-'$!   | jjjnjjjjjj܀ۀڀԀӀҀ̀ˀ{zx/g2Ζxx x x xxxxn.t-tNsJsIsHsDsCsBsAsƖ/oooxwvusoooooooooooooqooooopo@s;s6s5s4s/s.s-s,s+soxxxwwwwwwwgwwww$ggRŖ gn#gg!gB?>;goo~o}o|o{ozoyoxowovouotosoroqopooonomolokojoiohogofoeodocoXoWoVoUoToSoRoMoKoJoIoDoAo?olif=o|=<20ɥQMFD9ʎɎȎKLMǎ    NOP ;8530-wv.-,)#    ߥ>=0.-,(%$# )n(n&n%n"n!nkjjjgjfjejbj_j\jkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk1l4l7l ? @ A B C D E F G H 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 { | } ~  Ĉ"~~~~~Ȉ|yvuzxrom$n%o&p'q(r)s*t+u,v-w.x/y0z1{2|3}4~56789:;<=>6?ABCDEFHIJKLNOPQRSTU|nVYZ[\]^'_% % %%%%% %!%"%#%%%'%)%,%-%/%1%3%6%7%8%:%<%>%A%B%D%F%H%K%L%N%P%R%U%V%X%Z%\%_%`%a%b%d%f%h%k%l%n%p%r%u%v%w%(_|%~%%%%%%%%%n%FlGlJlMl=ltkjgdcb_\[R7j6j5j3j0j-j,j#j"jjjjjjj j jjiiiiiii/l.l-l(l%l"l llll l llkkkkkkkGkFkEkCkBk?kXWVUTSz ? @RNMLHFEDrrrrrrrrrrrrrrrrr@t0/,+)& ǨŨè~}|tsrUTPMLIHFDCElgf\ZYA@4320-,)(%$#"!}|{zWݟa~}|{zrqfcb^[ZVTjj\QLKHGEBA?`];9Ǐ654)&%!jj  jjjjjjj:{jn9n8nߜnnnnnnnޥnݜۜڜٜnלnnnnnn֜ԜL76420.KBbnt('%$   ݣ    c ڣ٣ϣh٤ؤפΤͤä¤ҜΜ͜˜xjɜȜǜĜ|nnnnnnnڥn+Sltktn8tޤڤv }rWoWlWiWfWcW`W_W^W\WYWUWVVV WWWWWWW&W)W A B C D E F G H I2t0tݏ,W-W0W3W4W9WBWEWSXKWLW/t|=|<975||3ץ/.ȏ-,+*)('&%$!     .%.-܇ه؇ׇևՇhecaEDB@?<8740/,('$ ~|{xvuqponmjhea^SROMLIGFBA@?>;962/   ݉ى؉Չщrrrrrrrrrrrrrsssssssssssrrrrrrrrrrrrrrssת֪ժ s ssssssssssss s$s(s)sokjihgfedcXRMF@=<;sssssssssrrrrrrrrrrrrrrrrrrrrrrrrjskslsmsostsusvswsys}s֤SsTsUsVs]s^sbsfsgshsssssFsssss"t#t$t%t*tssssssssssssssssBtCtDtEtFtGtHtItJtKtLtMtNtOtStUtYt\t]t_tbthtÜ|||||||||||||||||||||||||||| jKNXYZ  Ʉʄ˄̄̈́΄τЄׄ؄ۄfa^QO  >?@ABCDGHINRTX[]^_`knqtwāǁȁɁ́Ёρ΁Ձցہ܁   "%),.CBA@>=;96543210/-*'$ߗܗחyxv}|xtng*)('&# љЙϙʙəǙřÙ™*ؙי`abcdÇƇ͇~9 !(.2:DT^hr|>29:DHKTaj ".18>KMPW]el/K[wfjnrswxy|}(;v'5p   !   1 A I P Q \ h k n q t w z ~   $ & * . 2 6 : > B D J P  6 B E H L Q V [ ` g l o v z }       $ ) 1 4 7 : = @ C F I L O R Y a i q y %7>IMRXgjmqtw{ #(1?NTZ_div  ".:=@MYk|%@`| $)ejr  U8<?Qcfk|"),/25GMPfs$6:EY\_nsv{ !25:>BFJN]lor} '/:DGT`h %AY\ !(/18?FJLSZacjqx|~ #*7:=@CFJNPV\bdjpvz| =?BEIMPVhlosw{ #$%&-13:=AEKQX_afmt{:;>HOT[`qty~  # ' . 1 8 ; G J \ _ f !!! !!!!!! !#!&!)!,!/!5!B!P!]!p!!!!!!!!!!!"" " """""("."?"E"K"\"i"v"{"""""# #####<#>#I#Q#Y#a#c############ $B$E$z$$$$$%%"%K%P%Z%%%%%%%&-&5&8&&&&&&&&&&&&&&&'''''$'+'0'7'>'E'L'S'X'\'^'i'q'y''''''''''''''(( (((((($(=(_(b(f(i(}((((((((((()))$)+)2)9)@)G)N)U)\)c)j)q)x))))))))))))))))))))****&*-*4*;*B*D*F*I*L*P*T*Y*k*m*r*w******************++++0+9+B+K+V+_++++++++++++++,S,U,,,,,,,---%-D-J-U-V-Y-[-]-_-a-c-n-o-|-}------------0.1.2.3.4.5.6.7.8.9.:.;.<.=.>.?.@.A.B.C.D.E.K.L.M.N.O.3333 4 44*4:4=4J4M4O44Y56666677*787F777777777 888888"8&8+8085898;8K8O8S8W8_8889E9Q999999999999999:::::+:6:E:N:Y:i:o:v:y:::::::::::::::::;/;4;@;I;b;h;;;;;;;;;;;<<<D<m<<<<<<<< ='=C=Q=U=^=b=g=l=o=x=|=============>>>>> >$>(>.>4>5>:>I>Q>Y>n>q>t>>>>>>>>>>>?? ??????"?4?F?J?N?U?[?c?j?v????????????????????????????@@ @@0@H@K@N@Q@T@W@Z@]@`@c@f@i@l@o@r@u@@@@@@@@@@@@@@@@@@@/AAAAA@BGBOBBBC5CACCCCC$DXDDDDDDDDDDDDD>EEEMETE[EbEhEpEwE~EEEEEEEEEEEEEEEEEF"F3F@FYFpFFFFFFFFFFFFFFGG(GG`HHHHII I7IdIwI|IIIIIIIIIIIIIIIIJJ)J^B^E^I^M^P^`^d^h^l^o^r^u^x^{^^^^^^^._1_4_8_<_@_C_G_S_b_f_k_o_s_v_{_~________________________`` `````+`7`I`Z`n```````` aaaaa,a/a2a5a=aEaIapa{aaaaaaaa(b/b6b=bDbKbRbYb`bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccc&c(c,c3c=c@cCcJcQcSccccccccccccdddd!d$d5d|@||||} }}%},}3};}>}A}D}G}J}M}O}[}u}}}}}}}}~~#~<~S~j~x~~~~~/q#%'*137;?CGKOSW[_aeimuy}Àƀɀ̀׀ %)-159<?BUhlhov}΂Ղ܂ ")/6=DKRY_cgot{%,29@GSZamtzńЄԄ2=ɇχՇڇ#159>GKQUZ`fjpv̈؈*5?IT]~щ36Ul '.4;@GKRdvz~)+#Ehs~NU_ *<CILYfiuy~ɏ͏<Z^bfnĐȐ̐ϐ<—ŗʗϗӗؗݗ*FKOTY]aehz٘ݘ 4IX_y|י $(,JQXblsz "%+BZqěЛܛ$2?ADGKNRUX[_cfjnquy|#';BFNRVfil~Şɞў՞ٞ !147ILOSW[_oux~ßƟɟҟ՟ٟݟ 6cؠ;_"-<PRyԢ֢ޢ%'Ns֣.9DFd'/7BMX_ȥ&T.6>FNVs E{ƪܪ&Tɫԫ֫-cemu}ìŬNV^itv~=RƮήٮ 3W߯:JLe}ʰ۰ 79JZsԱ;Yiβ !gosx}óƳ˳гԳسܳ#'*.2I`qzôƴʴش"/6=DMYbnz׵%4?JYdq$4BIPS[chnǷͷշٷܷ߷ "%(+.14=DWpx~Ƹɸ '8cfilor}¹Źȹ̹ѹ׹ܹ!%)258;>IT_juĺȺ˺κҺպٺܺ #'+/37;>LZ^adgjtݻ+>BFJNQTWZ^bfjnrvz~ļռټݼ)HOyɽlξܾ߾  !"#$%&'()*+,-./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[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                               ! " # $ % & ' ( ) * + , - . / 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 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 l m n o p q r s t u v w x y z { | } ~                    ">2> !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@6@6@6@6@6@6@ 6@!6@"6@#6@$6@%6@&6@'6@(6@)6@*6@+6@,6@-6@.6@/6@06@16@26@36@46@56@66@76@86@96@:6@;6@<6@=6@>6@?6@@6@A6@B6@C6@D6@E6@F6@G6@H6@I6@J6@K6@L6@M6@N6@O6@P6@Q6@R6@S6@T6@U6@V6@W6@X6@Y6@Z6@[6@\6@]6@^6@_6@`6@a6@b6@c6@d6@e6@f6@g6@h6@i6@j6@k6@l6@m6@n6@o6@p6@q6@r6@s6@t6@u6@v6@w6@x6@y6@z6@{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@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@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@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6A6A6A6A6A6A6A6ef "-3G>C JRKX^[e@iUttznlw%,&C_c m $)U-825?6E}OV\c0ms&z<HŌ&֦ҬH76DoB *P)")))*u/ 5:AqHOTR[bvfkqcw~}H~+m9A2ĵ(BA]Rx &6n!|(*1;CuINTS[cflxq#st^w߁ΈRl&;+˲bZ9]\h#V@\ #v#*/t5$:=ABD-NUY"Z{_da g y+,kbe(a  EB"!/;<FBQ[do{ˆ`G˕C\xCT5+ C50   e  / <^m( !"#%$%q&'(0)*3+,-.!/0 123 45678D9=:;H<=x>\?@AB C^DE3FGHMIMJPKLMNOPQR}ST UVWXYZ\[\s]4^4_s`ab cdCefgg&h ijk#lmnop!q7rs tuvw0x yz{y|M}~?i(+i?q#><2[!  uG;B(R,8'E1(#1@4[Y 58.FF8 N. U4[Z 4v@ [IA?Refg6789CDEdmnbcdefwxXYdeNO } ~ '^_#iN;s<~3},iY"]G+\Gv,?v0`bcnopqrstu !TUVWXYdr  3 4 5 6 7 8 9 I J K L M N O P a n L!M!N!O!P!Q!b!p!!!!!!!!!!!!!!!!!""""")"="%%&&J.K.l.//0000000000000u1v113242\2]23335788:::;;<<=<><F>G>d>wBxBCCC#E$EEEEEEEEEEEEEEE F FFG JKNNNNNNPPPPPPPPPPPPPPPPPPmRnRISJSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS[S\SvSwSST_TTTTUUKXLXdXeX][^[[7_I___WbXbcceeeeffAgBgDgEgFgGgHgIgJgKgygzg;hh?h@hAhBhChDhEhFhGhHhIhJhKhLhMhhhkkmmnnppqqrrTtUtwtuufwxw x!xHxqxxxxxxy2yXy`yayzzzzz z z z z*z+ztzvzwzxzyzzz{z|z}z~zzzzzzzz~~npqrstuvwxyz{|}~45AHUVckstȂʂ͂΂Ђۂ89#$"$%&'{}~‰ĉʼnƉljȉɉʉˉalm$%R6CDUu֓`a țɛ֛כ ,>i !DuڠOPcFwң!"vwxyz{|}~ĤŤؤ'Wץ2Fd"#$%abuɪS'VĬӬAfgʭO/fԯ <_̰Ͱ+,Pسٳڳ۳9:;<=>?TUMNϸиѸҸӸ *+ؼڼۼܼݼvw>?@ABCDEFGH\]~ !  %&mnopq9 '(YZ[mn :;3NO+GH[&OxChi|Gp0?d#%&'()*UV_`bdefgh(CD     9:$%-.012345678cd45               + ,        " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 ` a   %b =m4X}~EF-.V89wyz{|}~"L{4k^&U1@eJ K   !J!!!!!! $ $$$$$$$$$$$$$$$$$$$ $H$I$%%#&$&((;(;*=*>*?*@*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*[*\***f.g..O/n/00000 0!0@0A0_0J1K1M1N1O1P1Q1o1p1182:2;2<2=2>2Y2Z2q2%4'4(4)4*4+4,4-4D4E4L444444444444444354588::;; =T=~===>G>I>???????????????????????@@@1A|B}C4D}D~DEEEIIlKmKKKKKKjL&M'MgMNHO|O}OQPRPbPYQZQQQR_RHSISSSZTgUhUUUUVVVVVVVVVVVVVVVVWTWWWW6XXX)Y*YZZQ\R\\\\\\\\\\\\\\\#]$]]]]4^5^i^^?__``aabbbLdmddd~ggggggggggggggggggggggggghhhhhh|i}ijjjNlOlalbl0m1mAnBnnnnnooFoGoQoRo~oooopqqqq,qVqtquqqqnrorrrrr sQsisjssssstt,t-tKtLttttt+u,uPu'v(vpvvvvwBwww%x&xxx yy=y>yKyZyyy&zjzkzzz{{Q{}{~{{{{3|X|~|||||}}9}^}}}}}}}()OP^;<DEyars/TU+PQHIWXkl„؄ل0GHVHIQRyoA;<j"Gjk%}Ō ikl"KtƎ}~=>GZabjmđőΑё 9:;Z[\גؒ"RSaeUWXYZ[\]^_`abcdefghijǘϘ ?z !UVG+,PQ̝͝-.%&}~jkޣߣno¦æĦŦƦǦզ֦z{ªĪŪƪǪȪɪʪ˪̪ͪΪϪЪѪҪӪԪժ֪תتѬҬȮ Ud|ͯUnܳݳBCDPQGHJKLMNOPQRSTxyʵ˵նֶ׶ܺ:;]={|\]Ϳ$a{0Nm\]k'cST9 jk6R"1JeYc   "%&'*.28CDEJOPQRST  !*7?HIJW_gstuIJ/0Qyxyhi1oRS2456789:;<=>?@ABCDEFGHIJKLMNOPQRBKCoqrstuv{| bBabc%'()*+,ABDEFGHIJKLMvw !"#$`arsbc=>WT U   X Z [ \ ] ^ _ ` a b c d e f   ]`#>?ABCDEFGHIJ[\fq )*;u}~pq:W CefPRSTUVWXYZ[\]^_`aGH  "#$U$`$$$$^%%%%&)&R&S&)))))))**B*C*D*N*++++>,,a-p.q.....u/0001(1112A2|2222 33334-4.484?4E4P4^4g4h4y4z4{4|4}4~4444444444444444444444444445 5 55555%5,5-595;5C5F5L5S5T5c5f5n5q5v5~55555555555555555555555 6666666"6$6+6.63696:6C6E6L6O6T6Z6[6b6d6k6n6s6y6z6666666666666666666666666666666667 7 7!7$7+7.73797:7D7F7M7P7U7[7\7i7k7r7u7z777777777777777777777777777777778 8 8888#8'8.80858;8<8M8P8W8Y8^8d8e8p8q8r8s8t8u8v8}88888888888888888888888889 9 999!9#9)9/909@9C9J9L9R9X9Y9Z9o9v99:::?<@<d>>@?A??/@@@@@@@@@@@@@@@@@@AAAA-B.BBBCmCnC|DDDD&E4EEEEFFGFIFJFKFLFMFNFOFPFQFRFSFTFFFpHqHJJMKNKKKKKK-LuLLMMMMMMMNN N NNN%N3Nm?mIm^mYnZnknlntnnnnnnnooooo.o/o=oooooooppp/p0p1p2p3p;p?@ABCDEFGHIJKLMNOPQRSTUm !"#$%&'()*+WXrstuvwxyz{|}~jlmnopqrstuvwxyz{|}~ΏϏޏ[[89pk1ߘߚfgœĜŜƜǜȜɜʜ˜̜͜ΜϜМќҜӜԜ՜֜){@AJKLhiڡۡܡAB(8Kbc^_; !"#$%&'()*+,-./0123456789:;<=>?abcbhNPQRSTUVWXYZ[\]^_`ab     2bcϮ*rs۰ܰ;IUfʴ˴;<õĵ϶ѶҶӶԶնֶ׶ضٶڶ۶ܶݶ޶߶]ιXY(?"#;<EF AvMOPQRSTUVopst,-KL+ !"#@ABxz{|}~jkCDstSTVWXYZ[\]rshi !"#$%&BC./\]_`abcdefg|}-/0123456789:;<=RS     01FGOPu %<NO=>'(tvwxyz{|}~EFHIJKLMOop|}{}~&'[l~mnFGT7 8        _    N j   ,r=>Rey&Q})<PQuxy56 2Nt =>  mnpqrstuvwxyz\q  ; < > ? @ A B f g  !! !!!"!#!$!%!&!'!(!)!*!@!A!P!! "W"""##%%(({(|((( )))**2*u* . .00!0-080G0y0z0001182s22222244]7^77788k8889p999%:`:::;C;;G<H<h<z<<====>>i>>>>>P?Q??@.B/BxBBCCCCDDDDsDDD.E/EnEEEEAFFFGRGSGTGGGGG)H*HkHlHHHHIIITIuIvIIIIIIICJdJeJJJ&K'KdKKKKKKLLMMMM]NoNNNO,OGOLO[O_OoOpOOOPPPPuQvQRRRRSSdSeSSSSS.T/TbTTTTTTUuLuVu`unuxuuuuuuuuuvevyvvvv w[w]w^wpwwyyz{E{{W~X~~~ށ߁ !׃؃./    GHJKLMNOPQRS͈ΈWvފ89stHIÍ  bcɎJQRTUVWXYZ[\0)Ւ-Y\}ؔ\ĕޕ;klnopqrstuvwxyz{|}~ޘd$%&()*+,-./0123456789:;<=>?YZ`016AGLMQ\fkq{śЛݛ &9QRTXZ\do| "%(TUW[]_grȝ۝"%+.34;TužȞ˞Ϟ@ACGIKS^kt{Ɵݟޟ  '@aޠ./1579BMXahlu|ʡˡ͡ѡӡաݡ )Jrsuy{}Ţ:;Sfgˣ̣lm'DUVefJK¬ìĬŬƬǬȬɬʬˬ̬ͬάϬЬѬҬӬԬլ֬׬ج٬ڬrsñıűƱDZȱɱʱ˱̱ͱαϱбѱұӱԱձֱױرٱڱ۱ܱ~¸ab56d56Կտ"#./Copbr56FG:<=>?@ABXYZpq.9: /123456789:`ab     78946789:;<=>[\]y{|}~&()*+,-./0\]^:<=>?@ABCDEpq689:;<=>?@Aghi9;<=>?@ABCDEopqno./C  t!"#$%&'>VYbc{ %(12STw7Ytwx9Ywx{~?^_befovw:=FGd  "#GIJKLMNOPQRSTUVWXYZ[\]^_`abcdefNGHIKLMNOPQRSTUVW45     9: ;<Eu     UVXYZ[\]^_`abcdefghijklmnopqr@qr rsMOPQRSTUVWXcd      st06uSm\]^_o^_     8 9 C M q r              $ 8 L M N O g m           @ o    +ZEtuvw 9e [e=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`st !"#$%&'?@    #0#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#v##$$%%&&4'h''''''''*(+(,(-(.(/(0(j(k(r((())^))))))***$*F*G*H*I*J*K*L*v*w*{******+D+c+|++++!,@,A,E,W,,,,-3-4-8-H-`-m-n-q-|----.A.d....//W/t///////0:0;0D0X0d0w0x0z0000;1<1>1s111112?2222223@3A3D3Q33333333344A4B4C4D44444455555&5'5+595:5=5E5F5I5R5S5V5b5c5f5p5q5r5s5t5u5v555556666y6z6}6677#7@7u7v7}7777777777888+8Y8Z8]8m888888888888888888888889192939J9K9R99":#:$:C:X:::::;+;_;y;z;{;;;;;;;;;;;;<< <3<4<=<g<h<q<<<<<<<<<< = ==+=,=-=?=@=A=J=b=c=l=============>>>=?>?@@AAAAAAAAAAAAAAAAAABBBBBBBBB B B B B6B7BNBcCdCADBDDDDBEEFFFFFuGGI.I2I3InIIIIJPJQJKK-NENPPZPRR`UaUbUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUUUZV[VVVMWNW}WWWWX(X)XRXXXXXbYcYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"Z{Z|Z[[[[[[[[[[[[[[[n\o\\^]_]4^5^z_{_|_~______________O`P`R`S`T`U`V`W`X`Y`Z`[`\``````cadafagahaiajakalamanaoapaqa~aaabbccCcxc|ccMdNdee,f-f`fffffg g gg&gLggghhhhiYiiiAjjj0kkkllllm[mmnFnnn;ooo.pqppqfqqrYrrr sTsss tittt5u~uuvJvvvw_wwwx/x^xxxx yUyyyy)z^zzzzz {"{#{3{C{S{c{s{{|g||}i}}}>~~~~Ez   hjc8Ã-bӄ+>d݅*|҆qŇUH3Ҋ(sNj^SF֎(~ɏqܐl4ʒIߓ^0s L,BH՗Ueǘ9:9қ >?Ojkbdefghijklmnopqrstuvwxyz{|}~,bBФ!mL&wçQ9h-i.u:|A~ƭKۮ`-uBQ۱ 7eNCtִ,-<KZixٵ,5s|.˷YAչ!lHڻ+w¼-t5{@|AOd1n; 7eJw3d(YPQW]ciouv "*1:CDJQY`hqrx #,-.Dj<=WjXYpq89 QDDE[=v<t5PNd*y(f>uS@xO-fRV%],d3k:r-./wx>Z./FGxQR([FnCzJKwF~ Bz>v78Wz#Fij56VW|fPQ;<aK56 !F0~i+ycN^H3&'(V|}             a b    y   ' ( 8  !   d e                                    EU<-Oab  %,klouz]ABEJO./27>; < J K _     "!,!m!n!!!!!""b"c"""""*#d### $8$h$$$$ %K%%% &V&W&&&J'''=(((0))))*i**+P+++7,8,,,=---B..../?/{////00F0001V1111)2s223Q3R3l3m3333)4-4|445i556V666C7771828<8l88889Q999:]:::&;i;;;;r<s<u<v<w<x<y<z<{<|<}<~<<<<<<<<<<<<<<<<<<<<<<<<<<x?y?z???RASAAAA4B5BEBBB C CJCSCCCDDWDXD~DGGHHHHI6K7KLLMMOOPP$P*P6PQQTTUUUVV W W3Y4Y5YSYTY[[ ]]^^_?_P_w_x_``aabbbbdd^effgghhiiOiPijjllmmoo~qqvuwu|v}vmwnw"y#yzzzzՁց҅Ӆʆˆ܆_`]^_hpyĊʊˊ̊Ҋ؊ $-./=>YZ #GHopFG{|ԏՏ89˕̕VW !'(HI~#$QRBCef:;QR vwOP[\BC34LMPQR^i̩ͩΩϩЩѩҩөީ     &bcdefgrªЪ&0WXYZ[\gu̫*+,-./@Jά !"#$5BvwxQRήϮ<=Ps˯?@\հF{±BCXBZ[.efִ  12[ѵeζ϶.TUƷ7ZyӸ+Tӹ8ij#%:^һE|,-i7j۾(e&'F \ 0iCR?@Z}KLh45tu J~7}4ij+]^y+,_  .FIG0K000J0J0J0J0J0J0J0J0J0L0L0L0L0L0L0L0L0L0L0L0L0L000000000000F"00F"00F"000000000000000000@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@00@M0@M0@0@M0@M0@M0@0@N0@N0@N0@0@M0@M0@M0@0@N0@N0@N0@0@M0@M0@M0@0@N0@N0@N0@0@M0@M0@M0@0@N0@N0@N0@0@M0@M0@M0@0@N0@N0@N0@0@M0@M0@M0@0@N0@N0@N0@0@N0@N0@N0@N0@0@N0@N0@N0@0@M0@M0@M0@0@N0@N0@N0@0@M0@M0@M0@0@N0@N0@N0@0@M0@M0@M0@0@N0@N0@N0@0@M0@M0@M0@0@N0@N0@N0@0@M0@M0@M0@0@N0@N0@N0@0@M0@M0@M0@0@N0@N0@N0@0@0@0@`05"05"0""@0)"@0)"@0)"5"0""@0&@0&5"0""@0K.@0K.@0K.@0K.@0K.@0K.@0K.@0K.@0K.@0K.@0K.@0K.@0K. 0K.@0K.@0K.@0K.5"0""@0v1@00@00@/042@00@00@00#D03#D03@00@00@00@00@/0:@0:@0:@0:@0:@0:@/0:@0:@0:5"0":@0G>@0G>@0G>@0G>5"0@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C 0C@0C@0CG"0CG"0CG"0CG"0C@0C@0C@0C@0C@/0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C 0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C 0C@0C@0CI"0CI"0CI"0CI"0C@0C@0C@0C@0C@0C@0C@/0C@0C@0C5"0@0^[5"0^[^[@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_ 07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_ 07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_@07_5"0^[^[L0UtL0UtL0Ut(5"0UtUtL0fwL0fwL)0fwL)0fwL)0fwL)0fwL)0fwL)0fwL)0fwL)0fwL)0fwL)0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fw 0fwL0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw 0fw@0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fwL0fw 0fw@0fw@0fw@/0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@0fw@/0fw#?0fw@0fw@0fw@0fw(5"0UtUt@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0 @0@0#D0#D0#D0@0@0@0@0@0@0@0@0#D0#D0#D0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@/0@0@0@0@0@0@0@0@0@0 0 @0@0@/0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@/0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0 @0@0@/0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0(5"0UtUt@0,@0,@0,@0,@0,@0, 0 ,@0,@0,@0,@0,@0,@0,@0,@0, 0 ,@0,@0,@0,@0,@0,@0,@0,@0, 0,@0,@0,@0,@0,@0,@0,@/0,@0,@0, 0,@0,@0,@0,@0,@/0,@0,@0, 0,@0,@0,@0,@0,@0,@0,@0,@0, 0,@0,@0,@0,@0,@0,@0,@0,@0,@0, 0,@0,@0,@0,@0,@0,@0,@0,@0,@0,@0,@0,@0, 0,@0,@0,@0,@0,@0,@0,@0,@0, 0,(5"0UtUt@0@0@0@0@0@0@0@0@0@0 0@0@0#0#0#0@0@0@0@0@0@0@0@0@0 0@0@0@0@0(5"0UtUt@0@05"0^[^[@0@0@0@0@0@0@0@0@0@0 0@0@0@05"0^[^[@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@05"0^[^[@0@0@0@0@0@/0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@0@/0@0@0@0@0@/0@0@0@0@0@0@0@0@0@0@0@0@0@05"0^[^[@0@0@05"0@0@05"0@0@0@0@0@0@0@0@0@0@0 0@0@0@M05"0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@M0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@M0@0@0@0@0@0@0@0 0@0@0@0@0@0@0@0 0@0@0@M0M#0@0M#0@0M#0@0@0@0@0@0@0@0 0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@0#D0#D0 #D0 #D0 @0@0@0@0@0@0@0@0@0@0@0@0@0 0 @0@0@05"0@0@0@0@0@0@0@0@0@0@0@0@0@0 0!@0@0@0@0@0@0@0@0@0@0@0@0 0"@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0#@0@0@05"0@0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0  0$ @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 5"0@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0. 0%.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.@0.R"0.R"0.R"0.R"0.@0.@0.5"0@0!@0!@0!@0!@0!@0!@0!@0!@0!@0!@0!@0!@0!@0!@0!@0!@0!@0!@0!@0!@0! 0&!@0!@0!@0!@0!@0!@0!@0!5"0@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0(@0( 0'(@0(@0(@0(5"0@0g.(5"0g.g.@0O/@0O/@0O/@0O/@0O/@0O/@0O/ 0(O/@0O/(5"0g.g.@0A0@0A0@0A0@0A0@0A0@0A0@0A0 0)A0@0A0(5"0g.g.@0p1@0p1@0p1@0p1@0p1@0p1 0*p1@0p1(5"0g.g.@0Z2@0Z2@0Z2@0Z2@0Z2@0Z2@0Z2@/0Z2 0+Z2@0Z25"0@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4 0,E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4#D0 E4#D0 E4#D0E4#D0E4#D0E4#D0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4@0E4 0-E4@0E45"0 @0?@0?@0?#0?#0?#0?#0?@0?@0?@0?(5"0??@0E@0E@0E@0E(5"0??@0mK#0mK#0mK@0mK@0mK#0mK@0mK@0mK#0mK#0mK#0mK@0mK@0mK@0mK(5"0??@0RP@0RP@0RP#0RP#0RP#0RP@0RP@0RP@0RP#0RP#0RP#0RP@0RP@0RP@0RP85"0RPRP@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U 0.U@0U@0U#0U#0U@0U@0U#0U#0U#0U#0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U 0/U@0U@0U#0U#0U#0U@0U@0U#0U#0U#0U#0U@0U@0U@0U@0U@0U85"0RPRP@0b@0b@0b@0b@0b@M0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@M0b#?0b@/0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@/0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@0b@/0b@0b@0b@0b@/0b@0b@0b@0b@0b@0b@0b(B0?@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u@0,u(B0?@0)@0)@0)@0)@0)@0)@0)@/0)@0)@0)@0)@0)@0)@0)@0)@0)@0)@0)@0)@0)@0)@0)@0)@0)(B0?@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@/0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@/0U@0U@0U@0U@M0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@M0U#?0U@/0U@0U@0U@M0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@0U@/0U#?0U@/0U@0U@0U@0U85"0RPU@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 00@0@0@0@T0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@M0#?0@0@0#0#0@0@0#0#0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@/0@0@0@0@0@0@0(5"0??@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ 01ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ 02ߣ@0ߣ@0ߣ@0ߣ@0ߣ#0ߣ#0ߣ#0ߣ#0ߣ#0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ#0ߣ#0ߣ@0ߣ@0ߣ@0ߣ@0ߣ#0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ 03ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ#0ߣ#0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ@0ߣ 04ߣ@0ߣ@0ߣ@0ߣ(5"0??@0;@0;@0;#0;#0;@0;@0;#0;#0;@0;@0;#0;@0;@0;#0;#0;#0;#0;#0;#0;#0;#0;#0;#0;#0;@0;#0;#0;@0;@0;#0;#0;#0;@0;@0;#0;#0;@0;5"0 @0@0@0@0@0@0@0@0@0@0@0#0#0@0@0@0@0@0@0@05"0 @0@0@0@0@05"0@065"066@0"@0"@0"(5"0""@0J@0J7"F0J6"F0J6"F0J!E0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J!E0J@0J6"F0J@0J@0J@0J@0J@0J@0J@0J@0J@0J6"F0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J@0J6"F0J!E0J!E0J@0J@0J5"066@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 05@0@05"066@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 06@0@0@0@0@0@0@0@0@05"066(5"0@0(5"0@0B@0B@0B@0B@0B#D0B#D0B@0B@0B@0B@0B@0B@0B@0B@0B@0B@0B 07B@0B@0B@0B@0B@0B@0B@0B@0B@0B@/0B 08B@0B(5"0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 09@0@0#D0#D0#D0@0@0U#F0U#F0U#F0V#F0@F0(5"0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0:@0@0@0@0@0@0@0@0@0 0;@0@0@0@0@0@0@0@0@0@0@0 0<@0@0@0@0@0@0@0@0@0@0@0@0 0=@0@0@0@0@0(5"0@0c@0c@0c@0c@0c@0c@0c@0c@0c@0c@0c@0c@0c@0c@0c@0c@0c@0c@0c 0>c@0c5"066@0>#D0>#D0>#D0>#D0>#D0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0> 0?>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>@0>(5"0>>@0@0(5"0>>@0@0@0@0@0@0@0@0@0@0@0@0 0@@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0A@0@0@0@0@0@0@0(5"0>>@0 0 0 0 0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0B@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0C@0@0@0@0@0@0@0@0@0@0@0@0@0(5"0>>@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0D@0@0"0"0"0@0@0@05"066(5"0@0@0@0"0"0"0@0"0"0@0@0 0 0 0 0 0 0@0@0@0 0E@0@0 0F@0 0G@0 0H@0@0(5"0@0D*@0D*@0D*#D0D*#D0D*!E0D*!0D*@0D*@0D*@0D*@0D*@0D*#D0D*#D0D*#D0 D*#D0!D*!E0D*!E0D*!E0D*!E0 D*!E0 D*#D0"D*!E0 D*!E0 D*#D0#D*!E0 D*!E0D*!E0D*#D0$D*@0D*@0D*85"0D*D*@03@/03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@)03@03@)03@03@03@03@03@)03@03@)03@03@03@03@03@)03@03@)03@03@03@03@03@)03@03@)03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03@03#?03@03#D0%3#D0&3@0385"0D*D*@0:@0:@0:#D0':#D0(:@0:@0:#D0):#D0*:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0: 0I:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0: 0J:@0:@0:@0:      !"#$%&'()*+,-./0123456789:;<=>?@BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@0:@0:@0:@0:@0:@0:@0:@M0:@0:#D0+:#D0,:#D0-:#D0.:@0:@0:#D0/:#D00:#D01:@0:@0:@/0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:#?0:@H0:@H0:@H0:@H0:@H0:@H0:@H0:@H0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@H0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:#D02:#D03:#D04:#D05:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:@0:85"0D*D*@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0` 0K`@0`@0`@0`@0`@0`@0`@/0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@/0`#?0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0` 0L`@0`@0`@0`@0`@0`@/0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@/0`#?0`@0`@0`@0`@0`@0`@0`@0`@0`@0`@0`(5"085"0?m?m@0Im@M0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@0Im@/0Im#?0 Im85"0?m?m@0t@0t#D06t#D07t#D08t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t(5"0@0y@0y@0y@0y@0y@0y@0y@0y@0y8"F0y8"F0y@0y@0y@0y@0y@0y(5"0@0@}@0@}5"066@0~@0~@0~#D09~#D0:~#D0;~#D0<~#D0=~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~@0~ 0M~5"066@0@0(5"0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0N@0(5"0@M0H 0OH@0H@M0H 0PH(5"0@0@/0@0@085"0@0M@0M@0M#D0>M#D0?M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M@0M 0QM85"0@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@M0m 0Rm@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m85"0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0S@0@0C#0D#0D#0D#0D#0D#0D#0@0@085"0@0@0@0:#0:#0@0@0;#0:#0;#0;#0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0T@0@0@0@0?#0?#0?#0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0#0#0@0@0@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@0= 0U=@00@00@0b#D0@b#D0Ab#D0Bb@00@0#D0#D0@D0(5"0@50@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00@00 0Va@0a@0a(5"0a@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0W@0@0#D0C#D0D#D0E@0@0@0@0@0@0#D0#D0#D0#D0@0@D0@0(5"0a@0#D0F#D0G#D0H@D0@0@0@0@0@0@/0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@/0@0@0@0@0@0@0 0X@0(5"0a@0#D0I#D0J#D0K#D0L#D0M@0@05"0@0(@0(@0(@0(@0(@0(@0(#D0N(#D0O(@0(@0(#D0P(#D0Q(#D0R(#D0S(#D0T(#D0U(@0(@0(@0(5"0((@0@0@0@0@0@0@0@0@0 0Y@0@0@0@0@0@0@0@0@0@0 0Z@0@0@0@0@0@0@0@0@0@0@05"0((@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@M0- 0[-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0- 0\-@0-@0-@H0-@0-@0-@0-@0-@0-@0-@0-@M0- 0]-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@M0- 0^-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0- 0_-@0-@0-@0-@0-@0-@0-#D0V-#D0W-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0- 0`-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0-@0- 0a-@0-@0-@0-@0-@0-@0-@0-@0-@0- 0b-@0-@0-@0-5"0(((5"0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0c@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0d@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0e@0@0@0@0@0@0@0@0@0@0 0f@0@0@0@0@0@0@0(5"0@0@0#D0X#D0Y@0@0#D0Z#D0[#D0\@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0g@0@0@0@0@0@0@0@0@0@0 0h@0@0@0@0@0@0@0@0@0@0@0@0@0 0i@0@0@0@0@0@0 0j@0@0@0@0(5"0@0#D0]#D0^#D0_#D0`#D0a@0@0#D0b#D0c@0@0@0@0@0@0@0 0 0 0@0@0@0@0@0@0@0@0@0@0!0!0!0!0!0!0!0!0!0!0 !0 !0 @0@0@0@0@0@0@0@0@0 0k@0@0@0<"F0<"F0<"F0<"F0<"F0<"F0<"F0<"F0<"F0<"F0 <"F0 6"F0 6"F0 6"F0 6"F06"F06"F06"F0@0@0@0@0#0#0@0@0@05"0(((5"0yy@/0@0@0@0@0@0="F0="F0="F0="F0="F0="F0="F0="F0="F0="F0 ="F0 ="F0 ="F0 ="F0 @0@0@0@0@0@0@0@0@0@0@0@0@0 0l@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0m@0@0(5"0yy@0\@0\@0\@0\@0\@0\@0\@0\@0\ 0n\@0\5"0((@0g @0g @0g @0g @0g @0g @0g @0g @0g @0g @0g @0g @0g  0og @0g @0g 1#0g S#0g S#0g S#0g S#0g @0g @0g 1#0g @0g 2#0g @0g 2#0g @0g @0g @0g 5"0((@0(#D0d(#D0e(@0(5"05"0**@02*@02*@02*#02*q#02*q#02*q#02*q#02*q#02*@02*@02*@02*@02*@02*@02*@02*t#02*t#02*t#02*t#02*t#02*@02*@02*@02*@02*@02*@02*@02*@02*@02*u#02*v#02*v#02*u#02*u#02*u#02*u#02*u#02*u#02*u#02*@02*z#02*z#02*z#02*@02*@02*#02*#02*@02*@02*@02*@02*@02*@02*@02*@02*@02*@02*@02*@02*@02*@02*@02*@02*@02*@02*#D0f2*#D0g2*@02*@02*5"0**@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C@0C#D0hC@0C@0C#D0iC@0C@0C#D0jC@0C@0C#D0kC@0C@0C#D0lC@0C@0C#D0mC@0C@0C#D0nC@0C@0C@0C#D0oC@0C@0C@0C(5"0CC@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K@0K!0K@0K@0K!0K@0K@0K!0K@0K@0K!0K@0K@0K!0K@0K@0K!0K@0K@0K5"0**@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@I0=U@0=U@0=U@I0=U@0=U@0=U@I0=U@0=U@0=U@I0=U@0=U@0=U@I0=U@0=U@0=U@I0=U@0=U@0=U@0=U#D0p=U#D0q=U#D0r=U@0=U@I0=U@0=U@0=U@I0=U@0=U@0=U@0=U@0=U@0=U@I0=U@0=U@0=U@0=U@I0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U 0p=U@0=U@0=U 0=U 0=U 0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U@0=U5"0**@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij 0qij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij 0rij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij 0sij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij@0ij5"0**(5"0^w^w@0pw@0pw@0pw#D0spw#D0tpw#D0upw#D0vpw@D0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw 0tpw@0pw@0pw@M0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw 0upw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw 0vpw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw 0wpw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw@0pw 0xpw@0pw@0pw#D0wpw#D0xpw#D0ypw#D0zpw@0pw@0pw8@0pw#D0{9#D0|9@09@09@09@09@09(5"0^w^w@0Í@0Í@/0Í@0Í@M0Í#D0}Í#D0~Í#D0Í#D0Í#D0Í#D0Í@0Í@0Í@0Í@0Í@0Í@0Í@0Í@0Í@0Í@0Í@0Í@00 0y[@50[@50[#D0[#D0[@00@00#D0@00@00#D0#D0#D0#D0#D0#D0@50@50#D0#D0#D0#D0#D0#D0#D0#D0#D0#D0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0z@0@09"F09"F09"F09"F06"F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0@F0 0{@0@0:"F0:"F0@0@0@/0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@40@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@/0#?0 @0(5"0^w@0;@0;@0;@0;@0;@0;@0;@0;@0;@0;@0;@0;@0;@0; 0|;@00@D0ˣ@00@00#D0m#D0m#D0m#D0m@0m@0m#D0m#D0m#D0m#D0m#D0m#D0m@0m@0m@0m@0m#D0m#D0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m 0}m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m 0~m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@0m@00@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@/0#D0@/0#D0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0(5"0^w@D0/@D0/@D0/@D0/@D0/@D0/@D0/@D0/@D0/5"0*(5"0bb@0r@0r@0r@0r@0r@0r@0r@0r@0r@0r@/0r@0r@0r@0r@0r@0r@0r@0r@0r 0r@0r@0r@0r@/0r@0r@0r@0r#D0r#D0r#D0r#D0r@0r@0r@0r@0r@/0r#D0r@0r@0r@0r@0r@0r@0r@0r@0r@0r 0r@0r@0r@0r@0r@0r@0r@0r@0r@0r@0r 0r@0r@0r#D0r@0r@0r@0r@0r@0r@0r@/0r@0r@0r@0r 0r@0r@M0r(5"0bb@0@0@0@0@0@0@0@0@0@0@0@0 0@0@M0@0@0@0@0@0@0@0@0@0 0@0@0@0@0@0@0@0@0@/0@0@0@0@0 0@D0@D0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@D0@D0@D0@/0@D0@D0@D0@D0@D0@D0@D0@D0@D0@D0 0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@/0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@0@0@0@0@/0@0@0@0@0@0 0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@D0@D0@0@0@0@0@0@0@0@/0@0@0@0@0 0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@0@0@0@0@0@0@0@/0@0@0@0 0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@00@00@00@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#D0#D0@0@0(5"0b@0/@0/@0/#D0/#D0/#D0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/"0/ "0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/"0/ "0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/"0/ "0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@/0/#?0 /@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/@0/ 0/@0/(5"0b@0@0@0#D0#D0#D0@/0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@/0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@/0@0!0!0@0@0@0#D0#D0#D0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@0@0@0@0@0@0@0@0@/0@0@0@0@0@0@0@0@0@0@M0 0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@0@0@0@08@0@0@0@0@0@0@0@0@0@0(5"0b@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@M0 0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@0@0@0@0@0@0@/0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0#D0#D0@0@0@0@0@0@/0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@20@20@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@30@0@30@20@20@0@0@0@30@0@/0#?0 @0(5"0b@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0@085"0@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t@0t 0t@0t@0t@0t85"0@0@0@0@0@0@0@0@0@0 0@0@085"0@0@0@ 0@0@085"0@0@085"0@0@085"0@0 (5"0b@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0#@0# 0#5"0@0v#@0v#@0v#@0v#@0v#@0v#@0v#"0v#"0v#"0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v##?0 v#@0v#@0v#"0v#"0v#@0v#@0v#@0v#"0v#"0v#"0v#"0v#"0v#"0v#"0v#"0v#"0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v#@0v##?0v#@0v#5"0@0=@0=@0=@0=@0=5"0==@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@ 0@@0@5"0==@07B@07B@07B@07B@07B 07B 07B 07B 07B@07B@07B@07B@07B5"0==@0F@0F@0F@0F@0F@/0F@0F@0F@0F@0F@0F@0F@/0F@0F@0F@0F5"0==@0-N(5"0-N-N@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P@0P 0P@0P@0P@0P@0P@0P@W0P@/0P@W0P@W0P@/0P@W0P@W0P@W0P@0P(5"0-N-N85"0)X)X@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX 0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX 0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX 0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX 0RX@0RX@0RX@0RX@/0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX 0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX@0RX85"0)X)X@0-f@0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@X0-f@0-f@0-f(5"0-N-N85"0@0h#0h#0h#0@0@0i#0@0@0@0@0g#0j#0j#0@0@0@0@0l#0l#0@0@0m#0@0@0n#0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 085"0@00@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X0@X085"0k#00k#00@00@00P@00P@00P@00P@00P@00P@0P@00P@00P@00P@00P@00P@00P@0P@00P@00P@00P@00P@00P@00P@0P@00P@00P@00P@00P@00P@00P@0P@00P@00P@00P@00P@00P@00P@0P@00P@00P@00P@00P@00P@00P@0P@00P@00P@00P@00P@00P@00P@0P@00P@00P@00P@00P@00P@00P@0P@00P@00P@00P@00P@00P@00P@0P@00P@00P@00P@00P@00P@00P@0P@M0P#?0P(5"0-NP@0D@00(5"0-N<85"0==@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@X0W@0W@0W85"0==@0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@X0/@0/5"0 @0(@0(5"0((@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0} 0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}#0}#0}#0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0} 0}@0}#0}#0}#0}#0}#0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}#?0}@0}@0}@0}@0}@/0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0}@0} 0}@0}@0}@0}@0}@0}@0}@0}@0}@0}#0}@0}@0}@0}#0}@0}@0}@0}@0}@0}#0}@0}@0}@0}@0}@0}@0}5"0((@0XD@0XD@0XD@/0XD@0XD@/0XD#0XD#0XD@/0XD#0XD@0XD#0XD@0XD#0XD@0XD#0XD@0XD@0XD@0XD@0XD@0XD@0XD#0XD@0XD#0XD#0XD#0XD#0XD#0XD@0XD@0XD#0XD@0XD@0XD@0XD@/0XD@0XD@0XD@0XD@0XD@0XD@0XD5"0((@0^(5"0^^@0?_@/0?_@0?_@0?_@0?_@0?_@0?_@0?_@0?_@/0?_@0?_@0?_@0?_#0?_#0?_#0?_@0?_@0?_@0?_@0?_@/0?_@0?_@/0?_#0?_@0?_#0?_@0?_#0?_@0?_#0?_@0?_#0?_@0?_#0?_@0?_#0?_@0?_#0?_@0?_#0?_@0?_@0?_@0?_@0?_@/0?_@0?_@0?_(5"0^^@0@/0@0@0@0@0@0@0@0@0@0@05"0((@0ˆ@0ˆ5"0 5"0``@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@/0#?0@05"0``@/0>@>0>">0>">0>">0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>#>0>#>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@>0>@0>@>0>5"0 00/0N0N0N00N0N0N0N0000M0M00M0M0M00N0N0N00M0M0M00N0N0N00M0M0M00N0N0N00M0M0M00N0N0N00M0M0M00N0N0N00M0M0M00N0N0N00N0N0N0N00N0N0N00M0M0M00N0N0N00M0M0M00N0N0N00M0M0M00N0N0N00M0M0M00N0N0N00M0M0M00N0N0N00M0M0M00N0N0N00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005aaccc^5xVK&, y!J$v>PT!|F§\,JmN A#+8`EYyqDٓ:>ʥCdjr HRGF:0`20A9KYqbmjmswe}vיlU~ N#/9@DQ`kGsy2ΖFզ4k xS`p^ !*6@oG>Td[tO~(ՍՕaѤHps2 F_tٸly #; SgVxc܆jB8_k,t@PLHܽ]h88tJtD VXjb 4" $&1'G)J+2/|02N67EHINPQTUX]j`bkm wy{~ ރ.1Gܛ>N Xد$ "#$)/17?ACHJMNPRTXZ^`dfjmqtw{} ,067:=AEHKNPSVYZ\`bcefhklnprtuwxz|}~ %'+.8K`qtv} !%(147;>AFJNQTY^cfilpsux}  E~p"##6$$P%%3<ITZWgEly*~uUsІԏ8@λO$AqU0 \9 #w("*08?5EMW]dmykyr"\Tm JJ|>bJr]zF}]TO 8#+66W;=F(J'MMNQ][ciij1jRjpjjjjj#kMkwkkkkk l%lIlclllllm>mUmmmmmmmmmn>nennnnNopv{bÃ\"7ב˚ܞBʟZ&PLRw0p{LPޫѭ|F?VlCE_+R !$%0^5BFMTt[fjIt{ޕi9n>Z\h U,%*-p123<4>4z5|5667788::X;Z;<<==4?6?l@n@AABBJOVXb]esxzm||}~Cp,ۃƅ݈Z_3ъ=;ی3ҏ ƕešdƤDuD5w JI7+ 7~j14u:Q$d!<   nIK#(}.5=B#LAL.OWq]P`GN*TTsUVkVVWEXo\}`cgYl psv<D&zԎi@Rҗ0.8ҡ$.VRڨvVBTh||\dn00޹:N>~*29H>`0>#~0:87MARDF$v:.0 x `~pVjB.d &!!" $$@&&&-''@(Z)*6+\,-./01X235667'9<7@EHFG&IIqJ@LnMN*PPPQ6RRTUDVV&XXvZ\]^^_`bcf]gjkHlmosuJvBwxyz0{.||C}4~4Vn؄FW͇щ:fj=ĕh֚>B$IRPޥDFf$!%&'(*+,-.02345689:;<=>@BDEFGIKLOQSUVWY[\]_abceghiklnoprsuvxyz|~     !"#$%&'()*+-./1234589;<>?@BCDFGIJLMOQRTUWX[]^_adgijmoqsvy{     !"#$&()*,-/012345679:;<=>?@ABCDEFGHIJLMNOPQRSTUVWXYZ[\]^_abcdefghijklmnoprsuwxyz{|~     "#$&')*+,-./0235689:<=?@BCDEGHIKLMOPRSUVWXZ[\]_`abdeghjkmnoqrtvwyz{|~   # #%?Z\@[]~!Idg.ILj69Snq7:^y|.1]x{ '*Idg9TW <W[i&AEn %)r;VZr  &AEUpt &*^y}9=Upt*.?Z^`T1n1q1===EEEń߄5?i<VX[r\\\ab"b՗ٗ&)CM5>9S]Ϻٺ,4&&&&&' '&'0''''z<<<bl|llϋًԍލ",ؚܚĢޢl>XbnǶ˶57}tw+5q ,0jA[fPju000.PIPMP-fHfSfEm`mkmwppp/}I}T}o)CNӓ"<GƮJdoVp{ Kep #=HNhs%?J3>j     !!@@@XXXZZZ[4[?[I[c[n[_"_-_neeegggWoqouox t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%t%tttttttttttttttttttttttTTttttttttttttttttt44tt%tt4tttttttttttttTtttttttttttttttttttTU\^cjn!!!!vG#G%GNNN.0ػڻ߾::::::>`+hr$`nxּfaia>8r$$E2fY_,I!)i>8b$luϽ2fOh~3?8b$Қ&Xo SY82$H>G/AyA\N>8r$ h>"f[gi8r$=mRg9wJui8r$|T>i^82$LE0BӮY 8$82$;î%8b$+!{^$zxH)82$ 6Hv-:Gݹ r82$Йgğ= 5 |8 0e0e     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||S"`3f3@H]& v  !"#$%&'()*+,-./01023456789:;<;=>?@ABCDEFGHIJKLMLNLOPQPRPSPTUVPW(XYZ[\]\^\_\`\abcdefghijklmnopqrsrtuvwxyz{|}~~      ! "#$%&'()*+,-./012134565789:;<=>?@ABCDEFGHIJKLMNOPOQORSTUTVTWXWYWZ[\]^_`abcdefeghijklmnopqrsrtrurvrwrxyz{|}|~~!d       ! "# $%&'()*+*,-./0123456789:;<=>?>@ABCDEFGHIJKLMNOPQRSTUTVWXYZ[Z\]^_`abcbdedfgfhgijikilmndopqprsrtuvwuxyz{z|{}~}      !"#$%&'()*+,+-./0123456789:;<=>?@?ABCDEFGFHGIFJKLMNOPQRSTUVWXYZ[\]^_`abcdedfghijklmnoqrstutvwxyxzy{|}~}      !"#$%&%'()*+,-./0123456789:;<=>=?@ABCDEDFGHIJKLMNOPQRSTUVWXYZ[\[][^[_[`[a[b[c[dedfdgdhdidjdkdlmlnlolplqlrlsltlulvtwxyz{z|z}z~zzzzzzzzzzzzz      !"#$#%#&#'#(#)#*#+#,#-./.0.1.2.345464748494:4;4<=>?@A@B@C@D@EFGHIJKJLJMJNJOJPJQJRJSJTJUJVJWXYXZX[X\Y]Y^Y_Y`Yabcdcecfcgchcicjcklmnopqrstuvwxyz{|{}{~{{{       !"#$%&'()*+,-./0123456789:;<=>?>@A@BCBDEFGHGIGJGKGLGMGNOPQRSTUVWXYZ[\]^_^`abcbdbefghijklkmknopqprstuvwxyz{|}~      !"!#$%&'()*)+,-./0123145678797:9;<;=>?>@ABCDEFGFHIJKLKMNMOMPMQMRSTUTVTWTXTYZ[\]^_`abcdef?( 8>0   }; H}`_};?"$ } b W & 3 3"B N ZD?" ,$, N TPFN ?" W   N TN ?"#&  N TPFN ?"W   N TPFN ?"$  B N ZD?"WW N TN ?"e..  N TPFN ?"$ $   N TN ?"W H  B N ZD?"B N ZD?" N TN ?".  N TN ?"e!& B N ZD?"$$ N TN ?      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]_`abcdefghijklmnopqrstuvwxyz{|}~"K.! B N ZD?"$$ N TN ?"(| B N ZD?"|b li',  3" 'O T'O ?!i'C  )O T)O ?!i'   +O T+O ?!e!i'"  -O T-O ?!"i'$  /O T/O ?!$i'm%  1O T1O ?!m%i'&  5O T5O ?!'i'2)  7O T7O ?!)i'1+ B OB ZD?  + O TO ?\+ ,  O TPFO ?3 D   O TPF O ?3 p B !OB ZD?-! "O TPF"O ?3 p"  #O TPF#O ?3 "n#  $O TPF$O ?3 n#$  %O TPF%O ?3 $&  &O TPF&O ?3 &( B (OB ZD?p-!pB *OB ZD?"-!"B ,OB ZD?n#-!n#B .OB ZD?$-!$B 0OB ZD?&-!& 2O TPF2O ?3 (*  3O TPF3O ?3 *+ B 4OB ZD?(-!(B 6OB ZD?*-!* 8O T8O ?mlA  9O T9O ?-!l$  b @ a % b 3"H2`  h  U# jB2 U   h x U 0UC !_  N" U 3 Gj " U <U| N" U 3 Gq!)N" U 3 G H }2`  h  U# EjB2 V   h x V 0VC !_   V <V    V <VZEr N" V 3 G   V <V/#\P N" V 3 G@ # V <V    V <Vc  2`  h  V# l a/%B2 V   h x V 0VC !_  2`  h  V# ' a %B2 V   h x V 0VC !_  2`  h  V# |a@%B2 V   h x V 0VC !_  2`  h  V# a%B2  V   h x !V 0!VC !_   #V H#V333l a % ~B $VB BD? S\ UV 3 GUV"Uu G\ VV 3 FVV"Vg F\ WV 3 EWV"Wj E\ XV 3 DXV"Xt Db tF H   3"Zr" NW 6G  ?t 3rf t *  OW3 t nxB PW <D?0 * r`2 QWB c $ ?t r : rxB RW <D?K t  t rxB SW <D? 0 r`2 TW c $ ? t : r UW Z UW ? H r  `B VW c $D rf  1  WW3  l2 XW 0? 1 r YW T YW ?Q  r  f  1  ZW3 ! l2 [W 0? 1 r \W T \W ?Q  r  `B ]W c $D  r ^W Z ^W ?2  r   _W Z _W ?4: (r   `W Z `W ?: r  f  1  aW3 4 l2 bW 0? 1 r cW T cW ?Q  r  f  1  dW3 ul2 eW 0? 1 r fW T fW ?Q  r  f  1  gW3  l2 hW 0? 1 r iW T iW ?Q  r  f  1  jW3 l2 kW 0? 1 r lW T lW ?Q  r  f  1  mW3 \ H l2 nW 0? 1 r oW T oW ?Q  r   pW  v    BaCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| a<UX9;a @   *F  r qW  f    BbCBDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||bmxx[B@  u l r rW Z rW ?u M r  h b8)*  3"I R ZR?qb8)*  R B0*Rq{}#%  R ZPFR ?qv (!f) H2 R # q}#% R BRq#?% f 4 l R3 q #+ %B2 RB  4 l B2 R  4 lf 4 l RC3 q#%B2 RB  4 l B2 R  4 l2f %' R3 q. #%ZB R S D%%ZB RB S D'' R BRq #D% B R TpD?q$o$B R TpD?q$$ R ZPFR ?q[ ,! B R TpD?qR $ $B R TpD?q$$ R ZPFR ?q+ %%' N2 Z 3 qR *"o Z BZqu "{ H2 Z # qm!@x"yfB ZB s *Dq9l!m!y,f %x Z3 q^l!$fB Z s *Dq%%zH2 ZB # q%xz`B Z c $Dq@x"@$y$b !'/ s 3"K S T}S?!'/ } S <|0*S# S; | S T{PFS ?;,&"I. {H2 S #  "B S <zS " zf 4 l S3   ;B2 SB  4 l B2 S  4 lf 4 l SC3 Xq@B2 SB  4 l B2 S  4 l ` %' S#  N=TB S C D%%TB SB C D'' S <yS q yB S NpD?q)#+ S TxPFS ?;u xB S NpD?0 $ $B S NpD? " $  S <0*S = B S NpD?S++B S NpD?++ S TPFS ?;h ! H2 S # 2" "c$ S <|S" " $ |B S NpD?E#E#B S NpD?0 E# L#B S NpD? "A#$A#B S NpD?B#B#B S NpD?E#E# S <z0*S?"p$ zH2 S #  =" n$ S <ES " $ Ef 4 l S3 6"e$B2 SB  4 l B2 S  4 lf 4 l SC3 6"e$B2 SB  4 l B2 S  4 lZB S S D6"6"ZB SB S Dg$g$ S <S"$  S <u0*S0"a$ u`  {e  T#  I# ,)fB  T s *D- { N2  T 3 - r lB  T 0ZD-r e B T NpD? N#N#` "$P T# "A#W#5)lB T 0D/$$|N2 T 3 /M#{$MfB TB s *ZD/"PP#PH2 S #  ( E* S <bS ( ) bH2 S # ( "C* S <S( ")  T <V0*TF(vG* VB ,T NpD? 7)F7) 8T <R0*8T<(I* RB 9T NpD?2)<9)B :T NpD?:):)2L |A)O + r|A)O +H2 T # |q*O +fB ?T s *DOA)Oy*`B @T c $D|A)|y*H2 BT # (P* CT <QCT() Q ET TSPFET ?*+ SN2 Z 3 $-' Z BZ\%& zL #&~5) q#&~5)H2 Z # q#&~0'fB ZB s *D%&q%&`B [ c $D~$'~5)L C&#) pA)&9)fB Z s *DC'C#)H2 [B # F&M'xB [ <D?M&&h AR''67 ˑ 3"L LT ZULT?v"AR''67 U NT ZPPFNT ?v"*3&6 P ^T ZMPF^T ?v"%'%) MB T TpD?v"U o,C q, T B?0*Tv"C /~G1 ?  {e  T3 v3" t,F =0`B T c $D { H2 T #  r fB T s *ZDr e  "$P T3 v3"~t,I0fB T s *D$$|H2 T # M#{$M`B TB c $ZD"PP#PB T TpD?v"o,cq, T B>0*Tv"cR+- > T B=0*Tv".;0 = +  T3 v3",fH/fB T s *D8+ + N2 T 3 8+ lB T 0ZD8B T TpD?v",q",B T TpD?v"$q,r&q,H2 T # vf9.p0 T B<Tvf.0 <H2 T # vk"W+$- T B9Tvk"+$4- 9f 4 l T3 vC T+^ -B2 TB  4 l B2 T  4 lf 4 l TC3 vT+-B2 TB  4 l B2 T  4 l`B T c $Dv^ T+T+`B TB c $Dv^ -- T B:TvC +4- :H2 T # vix(* T B@Tvi)U* @B T TpD?v"&/&/ "$P T3 v3"r,: W/fB T s *D$$|H2 T # M#{$M`B TB c $ZD"PP#P T ZJPFT ?v";0&2 J\ ? -!  [3 v3"`)N!w,H2 T # yx -! fB TB s *Dy| x H2 TB # y?  8Z ? -!A [ ? -!fB T s *Dy? ?A`B T c $Dy-! -!A~B [B BD?y H 6b :I('  3"\ Y  0e0e    BO CTDEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| TTO @`#X ?Y  0e0e    BC=DE F"  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(Px:= @ `& @Y  0e0e    BC@DEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@@ @`,'S AY  0e0e    BC8DEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||87T @`ST BY  0e0e    BC8DEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||87T @` T CY TCY ?xp   DY TDY ?Sx  EY TEY ?x$  FY TpFY ?^  GY TpGY ?j^/  HY TpHY ?^   IY TpIY ?!^#  JY TpJY ?g$^,'  KY TKY ?  LY TLY ?   MY TMY ?"& `  +  NY# ^ r" OY 6pG2 ?4 l+  PY NpPY ? +   QY TpQY ? ]   RY TpRY ?^ `  +  SY# ^r" TY 6pG2 ?4 l+  UY NpUY ? +   VY TpVY ?X'  `  +  WY#  XR r" XY 6pG2 ?4 l+  YY NpYY ? +   ZY TpZY ?!'U# `  +  [Y#  !RU#r" \Y 6pG2 ?4 l+  ]Y Np]Y ? +   ^Y Tp^Y ?#'& B uY TD?C CB vY TD?."C"CB wY TD?0j0B xY TD?/00B yY TD? 0!0B zY TD?#0g$0B {Y TD?00B |Y TD?T 0 0B }Y TD?p ESEB ~Y TD?EEB Y TD?++B Y TD?!! _Y Tp_Y ?X   `Y Tp`Y ?!EU# `  +  aY# !NU#r" bY 6pG2 ?4 l+  cY NpcY ? +   lY TplY ?#& t  +  mY# #" #O&r" nY 6pG2 ?4 l+  oY NpoY ? +   pY TppY ?# & t  +  qY# #" !#f$&r" rY 6pG2 ?4 l+  sY NpsY ? +   tY TptY ?$#'& B Y TD?!!B Y TD?$$B Y TD?$$B Y TD? $!$B Y TD?#$$$xB 1[ <D?C C~B b[ BD? C."C^Lb ! 'i( 6 3"j % Bb% Dl b  % Bc % O q c  % Bd %X s d4f  l  %3 ! gxB % <D?r>f Z#4 )% %3  l `2 %B c $ ?Z#$rxB % <D?# #rxB % <D?4 $4 )%r`2 % c $ ? #4 $rT"  % C GE" 'i(rB  % HD?" ' B % HD?$' % Be% X  eN" % 3 r % Bf%- @y fN2 % 3 ;  p{ % Bg%o X{ gN2 % 3  p{ % Bh%|  p{ h % ~BCDEF-q\l@    &{ % ~BCDEF !q<@    X{  % Bi %Z i !% Bj!%M| j "% Bk"% ! k #% Bl#%Z lN" $% 3 " %% Bm%%% 9 mN2 &% 3 ;   '% Bn'%+o n nN2 (% 3   )% Bo)%| +  o *% ~BCDEF-q\l@    ; +% ~BCDEF !q<@    n ,% Bp,%3 p -% Bq-% qN" .% 3 !' /% Br/%$" 7# rN2 0% 3 ; $ % 1% Bs1%$o % sN2 2% 3  $% 3% Bt3%| $ % t 4% ~BCDEF-q\l@   $ $ 5% ~BCDEF !q<@   C% % 6% Bu6%"Z $ u 7% Bv7%'&Zd' v 8% Bw8%HK wN" 9% 3 HK :% Bx:%H-,@ xN2 ;% 3 1p <% By<%cX yN2 =% 3 p >% Bz>%qp z ?% ~BCDEF-q\l@  & @% ~BCDEF !q<@  X A% B{A%LZOo { B% B|B% |N" C% 3 HK" D% B}D%H%,9 }N2 E% 3 1 F% B~F%+cn ~N2 G% 3  H% BH%q+  I% ~BCDEF-q\l@  ; J% ~BCDEF !q<@  n K% BK%O  L% BL%}M N" M% 3 H!K' N% BN%H$",7# N2 O% 3 1 $% P% BP%$c% N2 Q% 3  $% R% BR%q$%  S% ~BCDEF-q\l@  $$ T% ~BCDEF !q<@  C%% U% BU%"$  V% BV%%K'' N" W% 3 ./ X% BX%.-@ N2 Y% 3 d|9Q Z% BZ%9 N2 [% 3 |Q \% B\%4Q  ]% ~BCDEF-q\l@  + ^% ~BCDEF !q<@  49 _% B_%  `% B`%q~T{  a% Ba%,  b% Bb%2 4'Z N" c% 3 2 4' d% Bd%2 -"@ N2 e% 3 !"T f% Bf% L#> N2 g% 3 $&T h% Bh%Y$&T  i% ~BCDEF-q\l@  "$  j% ~BCDEF !q<@  "$> k% Bk%6 ?8'S  l% Bl%'!{F& N" m% 3 -." n% Bn%-"6 N2 o% 3  p% Bp%<G~ N2 q% 3  r% Br%T<  s% ~BCDEF-q\l@  L t% ~BCDEF !q<@  ~ u% Bu%V*  v% Bv%mt  w% B w% N" {% 3 -!.' |% B|%-!"4# N2 }% 3 #% ~% B~%B$G% N2 % 3 #% % B%TB$%  % ~BCDEF-q\l@  #Q$ % ~BCDEF !q<@  $% % B%$"o'$  % B%1%2' N" % 3 6 8'" % B%6 ""6 N2 % 3  |" % B%I 8"{ N2 % 3 D$& % B%#8w&  % ~BCDEF-q\l@  \"m$H % ~BCDEF !q<@  w"`${ % B%~!%  % B%G!$  % B% i'#! 2  + T? D2  + T? DM!2  + T?c2  + T?cM!2 + T?U2 + T?,M!2 + T?"C%4$& + B+: !<'B&  '_ Ba '_dFT a (_ B (_$.&N  c T`_c?d" \bb ! '1 { 3"i X^ BX^&"A Q K a b" Y^ C Gl&"#0 '1lB `^ HD?&"#"'"u a^ Ba^&" k ] N  l  j^3 &3"!F xB k^ <D?l>f Z#4 )% l^3  l `2 m^B c $ ?Z#$lxB n^ <D?# #lxB o^ <D?4 $4 )%l`2 p^ c $ ? #4 $lb" q^ C G&"R " vd  +@, r^3 &3"p!$H2 s^ #  +,v t^ <t^+@,v b" u^ C G&"`y>!jb" v^ C G&"$>!jN2 x^ 3 &bu y^ By^&X-| N2 {^ 3 &Mmv |^ B|^&%n |  }^ # B CDE(F>& =foH* R f @   3"@lvb" ~^ C G2&". : vb" ^ C G&"B: vN2 ^ 3 &\| ^ B^&qV+| N2 ^ 3 &Gk| ^ B^&\#|  ^ # BC\DEF>&A"7 J\@  3"<,vN2 ^ 3 & J ^| ^ B^&_  | N2 ^ 3 & 5*| ^ B^&J |  ^ # BC[DEF>&HOU[6-"@  3"=v ^ B^&"& u  ^ B^&"Y6cw  ^ B^&"*u4w  ^ B^&"$  ^ # BC(DEF>&(M"0nR!@  3"w"Hz ^ # BC0DEF>&kw./90b@  3"s} ^ # BdC9DEF>&9o0'd1@  3"Kw ^ # BqCEDEF>&q oCDE@  3"w ^ # BtC9DEF>&0_(|:-t9@  3"0fw ^ # B}C,DEF>&}$ $,e+* @  3"w ^ # BCQDE(F>& pQqfo1  a_ @   3"!w ^ # B% CJDEF>&Jte% G@  3" ;x ^ B^&"am  ^ B^&"t{  ^ B^&"p-~  ^ B^&"gy  ^ B^&"|9{  ^ B^&"o|  ^ # BCDEF>&+IC rS@  3"{ ^ # B6CDE(F>& 6~ L g -3Su @   3"Y*"{ ^ B^&"U{  ^ B^&"}  ^ B^&"|  ^ B^&"s0|  ^ B^&">|  ^ B^&"?%|  ^ B^&";7!f|  ^ # B2CLDEF>&2  J;KLB@  3"/@| ^ # B:CRDEF>&H(<OA:R@  3"1/J}| ^ B^&"7|  ^ B^&"A?&;|  ^ B^&"E+|  ^ # BCDEF>&LEA@  3"p 2 | ^ # B CDE(F>& -q $ p#-SB\n @   3"FAv| ^ B^&";w B ^ HD?&"J"wB ^ HD?&"!!;!nB ^ HD?&">!nb" ^ C G&"%J"y ^ B^&" 8x  ^ B^&" } N    ^3 &3"] xB ^ <D?x>f Z#4 )% ^3   <`2 ^B c $ ?Z#$xxB ^ <D?# #xxB ^ <D?4 $4 )%x`2 ^ c $ ? #4 $xN   ^3 &3" xxB ^ <D?>f Z#4 )% ^3  "`2 ^B c $ ?Z#$xB ^ <D?# #xB ^ <D?4 $4 )%`2 ^ c $ ? #4 $H R#4 ' ^3 &3"|xB ^ <D?R$Z'x8` Z#4 )% ^# Z#4 )%`2 ^B c $ ?Z#$xxB ^ <D?# #xxB ^ <D?4 $4 )%x`2 ^ c $ ? #4 $xB ^ HD?&"![,'[,b" ^ C G,&" %7'+b" ^ C G,&"'+ ^ B^&"g #; +$ x ^ # "B.CDE|F4>&:_z)4[[hu 759=QEipX@68zZq] w` }f J2.dK@          3"V# ^ B^&"DD#l p , / ^3 &3"'% *N2 ^ 3 , / ^ B^'. / p  ,/ ^3 &3" (m+N2 ^ 3  ,/ ^ B^ './ \2 ^ 3 &"3?' ) ^ B^&"(L ) p $,'/ ^3 &3""(G%m+N2 ^ 3 $,'/ ^ B^$-'K/  ^ # 2BaCDEF8>&"".EX|Z}vaLv 1{ ]D]] yqCw 9a@           3" V##)'H ^ # BCKDEXF(>&;B#Fm< VOK)9'0K@       3"$6#) ^ B^&"<V#$B$  ^ B^&"2$%  ^ B^&"-'` 8(  ^ B^&"' ( b" ^ C G,&">'H+d ,z/ ^3 &3"'p* ^ <^-z/ H2 ^ # ,,/d *,B/ ^3 &3"y(ci+ ^ < ^*-Bm/  H2 ^ # *,/ ^ B^&"28'B( \ ^  0e0e    BtC#DEF< A@  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||&%%DPbl= mU bh .3FYeQ[ X0 F \0br#ft@            3"f%"+ ^ B^&"[%G&  L_ BL_&",_ .! b" M_ C G~&", 0M T_ BT_&",-H p 2"m4 d_3 &3"q. p0N2 V_ 3 A 2!m4R W_ BW_C3"^4S p ? 23 e_3 &3"1.q/N2 Y_ 3  2H3U Z_ BZ_?23U p S1?2 f_3 &3"|-/N2 \_ 3 S12U ]_ B]_1?2U d , / ^_3 &3" -p0H2 __ # , /X `_ <`_'. /X  a_  f0e0e    B C(DEF A@  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||&(:De"7 1 Q ]@  3"-.L b_  v0e0e    B CDE(F A@  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||& EYJ c+P\   @   3"-0T c_ Bc_&"-C1.- Xb e#2  3"u l Zl ?UQ :m x" l <Gz ? f"dxx"  l <G ?^ u  l  x0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||lR7r@  0 \" s  l Z l ?j #z   l Z l ?6 { x"  l <G ?e#2~r2 l 6?W b y l Zl ?\ " S z `  9 l# j e k 2 l N? {?{B l  fD? 9{r2 l 6? U m { l Zl ? + > _ { r2 l 6? <c { l Zl ?" &U { `  9 l#  2 l N? {?{B l  fD? 9{`  9 l#   2 l N? {?{B l  fD? 9{  l Z l ?]"  x" !l <G ?y  "l Z"l ?!f  ` \ t- # \ u r2 $l 6?\ t- %l Z%l ? X `  ^  # > b r2 'l 6? ^  (l Z(l ? B  `  9 )l# s  2 *l N? {?      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~B +l  fD? 9 ,l  f    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||24 @  N   -l Z-l ?Gy G\   .l T.l?     /l T/l?-  |  Ol C ^    BCLDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 2{/#L x'0 @   S"W Pl C ^    BCLDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 2{/#L x'0 @   S"~W Ql C ^    BCLDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 2{/#L x'0 @   S"}W n TZ @@n 333?"Z Z  n TX ___n 333?"A X "*b !n '/ ٢ 3" g Tg ?!n '/  g      BuCDEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||urU @` Pr+ g T`Tg ?Pn Y  g T`Tg ?bk  g Tg ?#)-+t  g Tg ?G$!B   g T`T g ?N$$&}  !g T`T!g ?LU`  #g T#g ?J#)$-+  $g T$g ?MB,$K.  %g      B.C DEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||~ . +~ @`$,&g, &g C     B CDEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||  4 @`$),E., 'g C     BCSDEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||SS @`N9Xd *g Te `T*g ?   e  +g Td +g ?v  d  ,g Tc ,g ?v( c , -g C     BC:DEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||:S @`_ /g Tb `T/g ? b  0g Ta `T0g ?G$$-) a  n TK `Tn ?GP$Ya K  n      B.C DEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||.` ( ` @`&3w n T\ `Tn ? Q \  n TD `Tn ? O D  n T^ `Tn ?& $P ^  n T] `Tn ?_ O ] , n C     BCSDEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||SS @`#Q n Tn ?u-7M  n TJ n ?u` j"M J  n TI n ?u#%M I  n      B4C< DEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||j4< 4?j @`#-T%U rp #     BC'DEF  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||' @``|r+C b  $Y Q 3" r Z r ?  $Y  B r  `D|? /v v r Z r ? : y    r Z r ? s /=   r Z r ? s /K   r Z PFPFr ? } #q   B r  `D|? /f f r T PFPFr?     B rB ZD?   B r TD?  p B r TD?  t  r T PFPFr?     r Z r ? , ' X#   `  L F  r#   r 8B r  fD+*? L  B r  `D+*? F  r S ~ r2 @?  s  fD+*? F N b  b![% ) 3" @s  `m@s ?, b![%  m As  `0As ?,H XF  0 Bs  `/Bs ?,"a$  / Cs  `.Cs ?,o !  . Ds S ~-Ds2 @?,B Rx$  -B Es  fD|?,## B Fs  fD|?,+!+! B Gs  fD|?,K+"<+"  Hs Z,PFPFHs?,!x "  , Is Z+PFPFIs?, !  + Js Z*PFPFJs?,%#$  *B Ks ZD?,  # B Ls ZD?, A!A! B Ms ZD?, ##  Ns  `)Ns ?,p  )f  L F  Os3 ,  B Ps # lD+*? L   B Qs  fD+*? F  * b v ,$5 Ϥ 3"B ns  `D|?@03q!3B ss  `D|?@20c!0B qs TD?@ 02 0B ps ZD?@ M. 3B rs TD?@ 32 3`  L F  zs# @ S.# V3B {s  fD+*? L  B |s  `D+*? F  js Z[ js ?@v ,$5 [  ks Z\ ks ?@0 ,hD. \  ls T] ls?@ 0m1 ]  ms T^ ms?@ 3m4 ^  os T_ PFPFos?@H3!-4 _  ts T` PFPFts?@_0!C1 `  us Ta PFPFus?@})4 5 a  vs Tb PFPFvs?@}=1!2 b  ws S ~c ws2 @?@c!*0""t4 c B xs  `D|?@"+2$+2 ys Td PFPFys?@h"1$2 d  }s Ze }s ?@z ./ e  b h #  3" s Z: s ?Qh # :  s Z; s ?Q>%   ;  s Z< s ?Q T <  s Z= s ?Q T =  s Z> s ?Qa "l  > B s ZD?Qz z B s TD?Q}  B s TD?Q}   s T? PFPFs?Q*/ ?  s T@ PFPFs?Q<C2 @  s ZA s ?Q2h"  A `  y   s# Q KB s  fD+*? y B s  `D+*?   s ZB s ?Q   B ,b  %"  3"B r  `D|?!#` g:s#O r# X!B r ZD|?gLs#OB r ZD|?g:s#: r ZC r ? %" C  r ZD r ?D N D  r TE r? Z7 E  r TF r? VZ  F  r S ~G r2 @?O!"  G  r TH PFPFr?x"$ H  r TI PFPFr?! I  r TJ PFPFr?!t  J B r ZD?  D B r TD? v vB r TD? E E  r ZK r ?s  K `  L F  r#   B r  fD+*? L  B r  `D+*? F  r ZL r ?#- L  r TM PFPFr?k S! M  r TN PFPFr? N  s 3 W?Algorithm AArial Black"@$0b y |%#  3"L  #   # B s  `D|?2q#B sB  fD|?2##B sB  `D|?2 #B s C xD|?2   s Zs s ?2y |%# s B s  `D|?2tm!h"m! s Zt s ?21 Q t  s Zu s ?2i u u  s Zv s ?2i uB" v  s Tx PFPFs?2I T"P x B sB ZD?2  !B s TD?2 %i %B s TD?2 !l ! s Ty PFPFs?2I !"! y  s Zz s ?2 ^"{Y# z  s T{ PFPFs?2!" {  s T| PFPFs?2.) | ``    s# 26  k !B s  fD+*?  B s  `D+*?  B s  fD+*?  b =w"z+  3" s Z s ?b=w"z+   s Z s ?b|   s Z s ?b =+"  B s  `D|?b:G!!J! s T PFPFs?b8 ~!!  B s ZD?b | a"B s TD?b?#a ?# s H?c!] )$ s T s ?cA" #  B s TD?b((B s TD?bX f!X U% s Z PFPFs ?b T i!  B s ZD?bW #X #B s TD?bX f!f! s Z s ?b'Gb)  B s  `D|?bD~( !( s T PFPFs?bB(!(   s Z PFPFs ?b #%v$  B s TD?bX ]%]% s H?d $& s T s ?d $l0&   s Z s ?bY$=%  B s  `D|?b:$!$ s T PFPFs?b8$~!t%   s Z s ?b_/)D*  ``    s# bS&)B s  fD+*?  B s  `D+*?  B s  fD+*?   s Z PFPFs ?bw$$*9%  B s ZD?b\%\%B sB ZD?b&( s Z PFPFs ?b&'   s Z s ?b) *   -t  `(-t ?e" ( .t  `'.t ?e" ' /t  `2 /t ?e" 2  0t  `$ 0t ?e" $ B 1t  fD|?e" 2t Z# PFPF2t?e" # B 3t ZD?e"B 4t ZD?e"B 5t ZD?e"n  0_23 6t# e3"B 7t  `D|?0_0 8t T PFPF8t?{0b1  B 9tB  `D|?C0CS2B :tB  `D|? L2_L2B ;t 3 rD|? Y2 23t    t  fD+*?  B ?t # lD+*?   @t  ` @t ?e"   v NL pC@v ?" L  b 8 $L! Ô 3" w Tw ?h-   B w TD?h qxB w <D?hqq w Tw ?hpQ   w Tw ?h <O xB w <D?h{ - B w TD?h{ {  w Tw ?h8  xB w <D?h I IB w TD?h  I w  |    B=C DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||h = = @Gc"p w Tw ?h$L!  w TQ _@w ?" Q  w TN __w ?" N wn "&2)  S"B 7y  fD8c?c w!B 8y  fD8c?c. 9y Zj9y?c" 0 j :y Zi:y?c A i ;y Zh;y?c&  hB y Zc>y?cg cB ?yB  fD8c?c ] ]pf , &I # @y3 c X B AyB  `D8c?, + B ByB  `D8c?,  B Cy  `D8c?, + _B Dy  `D8c?, + B Ey  `D8c?, f  Fy C xWFy2 @? j  W` , &I # Gy# , &I # Hy ZVHy?, & # V Iy TRIy?g I  R Jy TQJy?g &I % Q Ky TPKy?g I  P Ly ZOLy?c) ! OB MyB  fD8c?c ! ! Ny  `NNy?c  Z# NB OyB  fD8c?c 7k +!B PyB  fD8c?c !B Qy  fD8c?c !k "B Ry  fD8c?c . k +!B Sy  fD8c?c ! ! Ty S ~MTy2 @?c9  # M Uy ZLUy?c JZ 4  L Vy ZKVy?c Z ! K Wy S ~JWy2 @?c>) J Xy ZIXy?cQZ;  I Yy ZHYy?c Z! H Zy ZGZy?cZ&]D' G [y ZF[y?c-\& z' FB \yB  fD8c?c & & ]y S ~E]y2 @?c. f2) Epf , &I # _y3 cUp.B `yB  `D8c?, + B ayB  `D8c?,  B by  `D8c?, + _B cy  `D8c?, + B dy  `D8c?, f  ey C x;ey2 @? j  ;` , &I # fy# , &I # gy Z9gy?, & # 9 hy T8hy?g I  8 iy T7iy?g &I % 7 jy T6jy?g I  6pf , &I # ky3 cU.4B lyB  `D8c?, + B myB  `D8c?,  B ny  `D8c?, + _B oy  `D8c?, + B py  `D8c?, f  qy C x1qy2 @? j  1` , &I # ry# , &I # sy Z0sy?, & # 0 ty T/ty?g I  / uy T.uy?g &I % . vy T-vy?g I  - wy S ~,wy2 @?c:$ , xy Z+xy?cf   + yy Z*yy?cfyc * zy Z)zy?ciC !,! )pf , &I # {y3 c4 n$B |yB  `D8c?, + B }yB  `D8c?,  B ~y  `D8c?, + _B y  `D8c?, + B y  `D8c?, f  y C x(y2 @? j  (` , &I # y# , &I # y Z'y?, & # ' y Ty?g I   y Ty?g &I %  y Ty?g I   y S ~y2 @?cL $  y Zy?cE! pf , &I # y3 c MB yB  `D8c?, + B yB  `D8c?,  B y  `D8c?, + _B y  `D8c?, + B y  `D8c?, f  y C xy2 @? j  ` , &I # y# , &I # y Zy?, & #  y T y?g I    y T y?g &I %   y T y?g I   pf , &I # y3 c B yB  `D8c?, + B yB  `D8c?,  B y  `D8c?, + _B y  `D8c?, + B y  `D8c?, f  y C x y2 @? j   ` , &I # y# , &I # y Z y?, & #   y Ty?g I   y Ty?g &I %  y Ty?g I   y S ~y2 @?c[!"  y Zy?c!h#Q  y Zy?c!#  y Zy?c!H#0 pf , &I # y3 c XB yB  `D8c?, + B yB  `D8c?,  B y  `D8c?, + _B y  `D8c?, + B y  `D8c?, f  y C xy2 @? j  ` , &I # y# , &I # y Zy?, & #  y Ty?g I   y Ty?g &I %  y Ty?g I   y S ~y2 @?ci$%  y Zy?c%T&=  y Zy?c%&  y Z}y?c%& }B y  fD8c?cX 4B y  fD8c?cZ ].]B y  fD8c?cX .B y  fD8c?cZ B y  fD8c?cZ !!B y  fD8c?c]!.!B y  fD8c?c %%B y  fD8c?c &&B y  fD8c?c I(I(B y  fD8c?cqUB y  fD8c?ch 4="B y  fD8c?cUB y  fD8c?c.llB y  fD8c?c.B y  fD8c?c.B y  fD8c?c.B y  fD8c?c.B y  fD8c?c!B y  fD8c?c!B y  fD8c?c!  B y  fD8c?c   B y  fD8c?c ="?"B y  fD8c?c w#w#B y  fD8c?c/gB y  fD8c?c,OB y  fD8c?c/6B y  fD8c?c i$B y  fD8c?c i$B y  fD8c?c gi$gB y  fD8c?c [!B y  fD8c?c D[!DB y  fD8c?c#i$B y  fD8c?c#1i$1B y  fD8c?c#i$B y  fD8c?c o!B y  fD8c?c o!B y  fD8c?c Xo!X y Zy?cvd/M  y Zy?cs8,  pf , &I # y3 c $h 2)B yB  `D8c?, + B yB  `D8c?,  B y  `D8c?, + _B y  `D8c?, + B y  `D8c?, f  y C xy2 @? j  ` , &I # y# , &I # y Zy?, & #  y T4y?g I  4 y T3y?g &I % 3 y T2y?g I  2B y  fD8c?cd&4&B y  fD8c?c]. y Z1y?c 1 y Z+y?c + y Z*y?cs, * y ZW y?c' u W  ^y ZD^y?c ! DFh  '   3"Y V Z V ?"0 R q  N  l  V3 3" cxB V <D?>f Z#4 )% V3  l `2 VB c $ ?Z#$xB V <D?# #xB V <D?4 $4 )%`2 V c $ ? #4 $" V <G ?"='  V Z V ?" u   k   V3 C"$\&l2 V 0?k   V T V ?s w   V  0e0e    BCwDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| +v?^/.A#w @   3"/'" W TG?"| qH l W3 3"| z[ xB W <D?"~8` l W# l`2  WB c $ ?l]"xB  W <D?]ll`2  W c $ ?l"xB  W <D?"  W Z W ?" ~n     N  W3 C"H<2 W H? N  W T W ?      N  W3 3"2 W H? N  W T W ?     W Z W ?"@<W    N  W3 C" k 2 W H? N  W T W ?      N  W3 C"  2 W H? N  W T W ?     W Z W ? ?t V  " W TG_ ?R "<" W TG_ ?p;<" W TG?"kq"aH l W3 3"kzcxB  W <D?"~8` l !W# l`2 "WB c $ ?l]"xB #W <D?]ll`2 $W c $ ?l"xB %W <D?" &W Z &W ?"~]    N  'W3 C" J2 (W H? N  )W T )W ?      N  *W3 3" !2 +W H? N  ,W T& ,W ?   &  -W Z' -W ?"@* W '   N  .W3 3"kt 2 /W H? N  0W T( 0W ?   (   N  1W3 3":2 2W H? N  3W T) 3W ?   )  4W Z* 4W ?"?V * " 5W TG_ ?"<" 6W TG_ ?"eT"< k   7W3 3"*l2 8W 0?k   9W T+ 9W ?s w + " :W TG?"t$`H l ;W3 3" xB WB c $ ?l]"xB ?W <D?]ll`2 @W c $ ?l"xB AW <D?" BW Z, BW ?"Q   , B CW  fD1?"tb" DW TG~?"M#8 EW Z- EW ?"5X& -  GW  v    BC! DE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| m}EC   ! @   3"%k"F HW  v    BCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| @?U9 x(>  @   3"}B IW  fD1?"qaB JW  fD1?"q KW Z0 KW ?"z/& 0  LW Z1 LW ?"  1     |S dF` !`@8`T!`T`'`TZZ!C" L tN2 | 3 k :lB | 0D  :    |S dF` !`@8`T!`T`'`TZZ!C"Z N2 | 3 k 5lB | 0D  5    |S dF` !`@8`T!`T`'`TZZ!C"  N2 | 3 k 2lB | 0D  2    |S dF` !`@8`T!`T`'`TZZ!C"N2 | 3 k 6lB | 0D  6     |S dF` !`@8`T!`T`'`TZZ!C"[N2 !| 3 k *lB "| 0D  *    #|S dF` !`@8`T!`T`'`TZZ!C"PN2 $| 3 k 'lB %| 0D  '    &|S dF` !`@8`T!`T`'`TZZ!C"^N2 '| 3 k *lB (| 0D  *Hh 'k1  3"^ Y BCY?'k1 C Y BY!g# N2 Y 3 !##H2 Y # R W n Y BYR & n H2 Y # nY  n Y BYn ( n  Y B0*YQ  n B Y TpD?p R p nB Y TpD? p p nB Y TpD?p np nB Y TpD?p p n Y ZPFY ?=  i B Y  `D?W W|" Y TG0*? :@q} Y ZY ?  2} B Y  `D?@WzW} Y ZY?#!} " Y TG0*?: q} Y ZY ?ab2} B Y  `D?eWWB Y  `D? WW}B Y  `D? W$W Y ZY?/! .f .+57 Y3 WcB2 Y  ,6 57ZB Y S D 57 57B2 Y   ,6+57`B Y c $D+.+,6ZB Y S D.,6 Y ZPFY ?S:s  Y B0*Yz:eqs  Y B0*Y: qs  Y ZPFY ?-]~  Y ZPFY ?S(*  Y B0*Y`K  B Y HD?`B Y HD?#' `z  ,$ Z3 #"  $H2 Y # Z#,$8`B ZB c $DZ ,#,H2 ZB # Z , 8fB Z s *D[ 8 `B Z c $D[$8$ ZB  BCDEF?@#" ~  >"  Z TG0*? U "  Z Z Z ? D"   Z B0* ZU l" B Z HD?!!B Z HD?! !B EZ HD?n!Ff ( * GZ3  $t &f 4 l HZ3 ( *B2 IZB  4 l B2 JZ  4 lf 4 l KZC3  ( *B2 LZB  4 l B2 MZ  4 lZB NZ S D ( (ZB OZ S D * * PZ BsPZ %u o& sH2 RZ # $& SZ BrSZ %t& r TZ Bq0*TZ${& qH2 VZ # $& WZ BWZ%r&  XZ B0*XZ$&  \Z B0*\Z!$$& Ff ( * ^Z3 $ &f 4 l _Z3 ( *B2 `ZB  4 l B2 aZ  4 lf 4 l bZC3  ( *B2 cZB  4 l B2 dZ  4 lZB eZ S D ( (ZB fZ S D * * gZ BgZ% q& Jz d- %/ xZ3 #" %%'xB pZ <D?$d-$d-H2 rZ # a./`B sZ c $Da/$/H2 tZ # a $.%/8f  uZ3 ai- %.`B vZ c $DZB wZ S DB yZ HD? %!%B zZ HD?%%B {Z HD?t %%B |Z HD?%%B }Z HD?{%%B ~Z HD?%%H2 [ #  , ./ [ BW[ r- . WH2 [ #  ,L",/ [ B[ p-L".  [ BX0*[Y,0/ XB [ TpD? .Y. [ B0*[f,P2/ B [ TpD?.f.B [ TpD?P. .Bz j2 [3 #" ./B2 [  jjZB [ S DB2 [  j`B [ c $D2jZB  [ S Dj2jjH2 "[ # -F9/ #[ B#[}-F.  $[ ZPF$[ ?M/$0 N2 &[ 3 )5 , '[ B'[vQ*+ fB )[ s *Du+u.H2 *[B # x*+H2 +[ # *+fB ,[B s *D5**`B -[ c $D+.~B .[ BD?**B /[ HD? . .B 0[ HD?L".#.H2 +| # +b 8 ,| B,|+|b  H2 .| # s$&  /| B/|s$d& H2 1| # | Ae!  H2 nZ # $$%%B 4|B ZD?% %$H2 8| # $ %H2 P| #  h 8 H2 S|B # 8 !B W|B BD?"!$B X|B BD?"  jB Y| HD?" % %B U| ZD? : :  B Z HD?n![!B 3| ZD?Y! $ H2 2| # $ % H2 E| # [s " F| BF|[ B"  G| B0*G|y " H2 I| # j !" J| BJ| !9" B K| HD?!!B L| HD?!!B M| HD?!!%!N  P # j|3 C"!"#B2 k|    ZB l| S D d"B2 m|  d"#`B n| c $D#P #ZB o| S D P l^h b '2  3"] 6X B<6X?b '2 < :X B;0*:XV  ;H2 >X # :# q% ?X B8?X:#{ q% 8B NX TpD?:#B OX TpD?I  B QX TpD?  B RX TpD? V SX Z. PFSX ?F :  . B TX TpD?0  B UX TpD?q%'H2 WX #   XX BXX {   eX B70*eX I 7 fX B0*fX  f   hX3 I[.B2 iX   ZB jX S D  B2 kX         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~2`  lX# `B mX c $DZB nX S Df   rX3 6!-B2 sX   ZB tX S D  B2 uX   2`  vX# `B wX c $DZB xX S Df   yX3 l ~ B2 zX   ZB {X S D  B2 |X   2`  }X# `B ~X c $DZB X S Df   X3 .B2 X   ZB X S D  B2 X   2`  X# `B X c $DZB X S D X Z6PFX ? 6Ff  U) + X3  :sf 4 l X3  U) +B2 XB  4 l B2 X  4 lf 4 l XC3  U) +B2 XB  4 l B2 X  4 lZB X S D U) U)ZB X S D + + X B5X ! 5Ff  U) + X3 4mf 4 l X3  U) +B2 XB  4 l B2 X  4 lf 4 l XC3  U) +B2 XB  4 l B2 X  4 lZB X S D U) U)ZB X S D + + X B9X 9 X BO0*XAx OB X TpD?0 U UB X TpD?UUB X TpD?UUB X TpD?OU X ZPFX ?/ Ff  U) + X3  nf 4 l X3  U) +B2 XB  4 l B2 X  4 lf 4 l XC3  U) +B2 XB  4 l B2 X  4 lZB X S D U) U)ZB X S D + + X B:X U :Ff  U) + X3 hf 4 l X3  U) +B2 XB  4 l B2 X  4 lf 4 l XC3  U) +B2 XB  4 l B2 X  4 lZB X S D U) U)ZB X S D + + X B2XO 2 X Bz0*Xu zB X TpD?0  B X TpD?B X TpD?B X TpD? X ZyPFX ? c yH2 X # #%#"  X BvX# %!  vB X TpD?% !' ! X BA0*X!#" A X B0*X#"  X B0*X,#"  X B0*X#"  X B0*X  #" B X TpD?0 ! !f   X3  !"F#B2 X   ZB X S D  B2 X   2`  X# `B X c $DZB X S Df   X3  !CF#B2 X   ZB X S D  B2 X   2`  X# `B X c $DZB X S DB X TpD? ! !B X TpD? !, !B X TpD? ! !B X TpD? ! !B X TpD?! !# !f   X3  !F#B2 X   ZB X S D  B2 X   2`  X# `B X c $DZB X S Df   X3 L !lF#B2 X   ZB X S D  B2 X   2`  X# `B X c $DZB Y S D Y ZPFY ?%/& Ff  U) + Y3  +-f 4 l Y3  U) +B2 YB  4 l B2 Y  4 lf 4 l YC3  U) +B2 YB  4 l B2  Y  4 lZB  Y S D U) U)ZB  Y S D + +  Y B Y .,- B  Y TpD? , , Y B0*Y &!) H2 Y # C+z- Y BYC2,z- H2 Y # _+- Y BY_4,-  Y B0*Y+- B Y TpD?= ' 'B Y TpD?,C,B Y TpD?z,,B Y TpD?,_,B Y TpD?,4 ,Ff  U) + Y3  .0f 4 l Y3  U) +B2 YB  4 l B2  Y  4 lf 4 l !YC3  U) +B2 "YB  4 l B2 #Y  4 lZB $Y S D U) U)ZB %Y S D + + &Y B&Y G/0 B 'Y TpD? / /H2 )Y # >.u0 *Y B*Y>K/u0 H2 ,Y # Z.0 -Y B-YZM/0  .Y B0*.Y.0 B /Y TpD?/>/B 0Y TpD?u//B 1Y TpD?/Z/B 2Y NpD?/T/H2 4Y #  . /H2 6Y # T.7 /fB 8Y s *D7 '7 .`B 9Y c $D ' .H2 Z #  [L  Z BZ~  9 f  !Pd$ 3 M r!H2 Z #  !L"fB ZB s *D ! !`B Z c $DP#Pd$f J ! `$ 3  r H2 ZB # J !f "fB Z s *DJ "J `$`B ZB c $Di ! ! W[ Zg PFW[ ?V#9'$ g B s| HD?''H2 w| # & ) x| Bx|~'(  y| B0*y|K&&) H2 {| # +&b) || B||+u'b( B }| HD? (K (B ~| HD?'+(B | HD?b'o$'N  P # |3 C"S()B2 |    ZB | S D d"B2 |  d"#`B | c $D#P #ZB | S D P $;b !'H' ^ 3"g | B |Q    | B PF|v     | B |:   T" | C G' C'% | B | v   B | HD?*!F'!T" | C G O Z | B |K    N2 | 3  &O | B |   Jf Gj |3  &H2 | # j | < |G   | Bo CDE(F ]*0[` ~  mo h @   2_: | B CDE|F4:R^(J1M zzbA-r_5A'M;BVt1"&aM 9  < ]@            | B |]G>   | B |0 -  T" | C G ^$2Jf Gj |3 l!#H2 | # j | < |G  Jf Gj |3 a$&H2 | # j | < |G  : | B CDE|F4n"*n$YYe]In4~N?04'I%a)!+    @            | B |?   J | BC DEF8""] AL s ] y R" 0 yl X 67   "R  c oqW&+   x  @           L2 | B |,!    | B |     | B |y X   | BCDELF$yw&eG)EYmDo.`y @       r | ~BCDEFeW}5@  #  | ~BCSDEF%yw?S@    | B | $    | B |D    | B |+h&_   | B PF| "   | B PF|i,n  Jf Gj |3  "y#H2 | # j | < |G  Jf Gj |3  "#H2 | # j | < |G   | B |! "   | ~B CjDEF  hijQ@   .## | ~B%C@DEF@I60<+%6@  "" | B |s!W"   | B |#$   | BCDELF$<$WxhyThW| zsv-Wa+@      )/G% | B |$   | B |h$G   | B CDELF$ *n>[Vx% J o c yqiR @      &J | BtCDE(F thF_*>`2&p @4 @   H=!2 | B2CSDE(F ?SV#d2&5w2 @   ! | B |V"   | B|D  f   |3 ! `2 |B c $ ?xB | <D?H xB | <D?  `2 | c $ ?H  xB | <D? | BRCDE@F r3h!54oGm^OQgzR]V  @     M | BCDEdF,~cdgc z@ Nf}X6q#s6l*j@          H | Bw|\,  w | B{|8 { | BCDELF$.weG)aM9Dow`w@       {* | B? CDEpF09q `Ob3UrGE6 C z   U? @          r | BxPF|!'  x | BuPF|; B  u | Bt|m W  t | BX|Y>"  X | Bp CP DE4F Wty{ H \ \ p P  rZ -z @     @H' | Bl|%' l | B; PF| ;  | B: PF| :  | BCDE(F YfmUu2Sd1< @      | BCDE(F  5\pL @   #"  % | B5 |\  5  | B3 | !} 3  | BCDE@F /D""D2"76; @      q . | B |2       |C nÓV@ < S ,>O`T`T+OW4W<C" #' FN2 | 3  F# ZB | S D      |C nÓV@ < S ,>O`T`T+OW4W<C"  /N2 | 3  F# ZB | S D      |C nÓV@ < S ,>O`T`T+OW4W<C"7#$N2 | 3  F# ZB | S D      |C nÓV@ < S ,>O`T`T+OW4W<C"x q N2 | 3  F# ZB | S D  b 0 ' /  3"mr2 j 6?!)b+ j Zj ?(0*.+  j  r0e0e    BU CqDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||bR &XZU q@  "*'*` 4  j# 0 '+Z2 jB S  ?4  rB j 6D? vrB j 6D?Z2 j S  ?vrB j 6D?5 5 `" j c $?0 ) /xB j <D1?0 ++r2 j 6?)b+ j Zj ?$1*/+ r2 j 6?$,. j Zj ?+c-a. r2 j 6?!,. j Zj ?(c-a.  j Zj ?V)#S*  j  r0e0e    BL CUDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||UG#=V@L P@  M-*- j Zj ?J,{H-  j Zj ? 7(5)  j Zj ? )9*  j Zj ? $,)"- xB j <D?1 )1 +    B~C ^F` !`@8`T!`T`'`TZZ!C"*K+N2 C~ 3 k lB D~ 0D      E~C ^F` !`@8`T!`T`'`TZZ!C"'.K.N2 F~ 3 k lB G~ 0D  Xb *   3"nr2 j 6?2: j Zj ?9%  j  r0e0e    B CaDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||_OsL% M a@  5` 4 NG! j# * Z2 jB S  ?4 N rB j 6D? NvNrB j 6D?|Z2 j S  ?vNrB j 6D?5 5 G!`" j c $?* xB j <D1?*o or2 j 6?0; j Zj ?7# r2 j 6?7d j Zj ?>* r2 j 6?2d j Zj ?9%  j Z.j ? | . j  r0e0e    B CuDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||XJ^5 ^ u@  #" 5+ j Z-j ? - j Z,j ?   , j Z"j ? T " j Zj ?C  j ZPFj?      J~C ^F` !`@8`T!`T`'`TZZ!C"|XN2 K~ 3 k lB L~ 0D      M~C ^F` !`@8`T!`T`'`TZZ!C"j=N2 N~ 3 k lB O~ 0D  Hb l M!  3"o2 j 6?"fn j Z j ?"UYn   j  r0e0e    BU CqDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||bR &XZU q@  3" Fnz 4  j# 3"lZ2 jB S  ?4  nrB j 6D? vnrB j 6D?nZ2 j S  ?vnrB j 6D?5 5 nn" j c $?"l/ M!nB j <D1?"l n2 j 6?"j%n j Z j ?"rVXZn  2 j 6?"r, n j Z j ?"y` n  2 j 6?"f n j Zj ?" n  j Zj ?"`x)Vn  j  r0e0e    BL CUDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||UG#=V@L P@  3"+n j Zj ?"{)n  j Zj ?"PTn  j Zj ?"n  j Zj ?"UqYn B j <D?"m0mn    Q~C ^F` !`@8`T!`T`'`TZZ!C" N2 R~ 3 k lB S~ 0D      T~C ^F` !`@8`T!`T`'`TZZ!C"s !N2 U~ 3 k lB V~ 0D  fb T%   3"k` 4  oj# T Z2 pjB S  ?4  rB qj 6D? vrB rj 6D?Z2 sj S  ?vrB tj 6D?5 5 `" uj c $?% B vjB ZD?  wj Tf wj ?"   f  xj T xj ?#    2 zj N?> u  {j ZW {j ?   W & |j      BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Q@  #"   2 ~j N? 6 Wm  j ZU j ?K   U 2 j N?^"6 $m  j ZT j ?" X$  T 2 j N? 6 m  j ZS j ?   S  j TR j ?  R  j TQ j ?~( Q  j TP j ?#  P  j TO j ?:U" O  j TG j ?w "  G  j      BmCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| rm@  !" & j      BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||>8:7@  #"    j      BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||p%2^<@  Kr a"Z     X~C ^F` !`@8`T!`T`'`TZZ!C" N2 Y~ 3 k lB Z~ 0D      [~C ^F` !`@8`T!`T`'`TZZ!C"v X N2 \~ 3 k lB ]~ 0D  b  %  3"l j TD j ?Mgy D 2 j N?x4Q | j Z- j ?3~ - & j      BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Q@  #" |2 j N?-y j Z, j ?y , 2 j N?"-X$y j Z/j ?"C$y /2 j N?% -{ j Z.j ?C ~ . j T'j ? + t~ ' j T&j ?Y{ &` 4  j#  P7Z2 jB S  ?4  rB j 6D? vrB j 6D?Z2 j S  ?vrB j 6D?5 5 t`   ' #  %f" j s *G?>  '|B j ZD?=c c j T%j ?  O % j Tj ?T8  j Tj ?$y  j Tj ?MK"gy & j      BmCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| rm@  #" "x& j      BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||>8:7@  #" b>}& j      BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||p%2^<@  #" 5"x j Zj?7 R#     _~C ^F` !`@8`T!`T`'`TZZ!C" Z 9N2 `~ 3 k lB a~ 0D      b~C ^F` !`@8`T!`T`'`TZZ!C"l)>N2 c~ 3 k lB d~ 0D  b  N+   3"qr2 j 6?  k Zk ?  k  r0e0e    BU CqDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||bR &XZU q@  ` 4  k#  NUZ2 kB S  ?4  rB k 6D? vrB k 6D?Z2 k S  ?vrB k 6D?5 5 `" k c $? h+ xB  k <D1? ?+ ?r2  k 6?   k Z k ? r2  k 6?T  k Z k ? r2 k 6?T k Zk ?  k Zk ?m  k  r0e0e    BL CUDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||UG#=V@L P@   k Zk ?,  k Zk ?LG  k Zk ?>  k Zk ?> xB k <D? i U    i~C ^F` !`@8`T!`T`'`TZZ!C".iN2 j~ 3 k lB k~ 0D      l~C ^F` !`@8`T!`T`'`TZZ!C")RN2 m~ 3 k  lB n~ 0D   Db O% 9.  3"pr2 k 6?R'Z) k Zk ?C (.)  k  r0e0e    B CaDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||_OsL% M a@   (Um(` 4 NG! k# O%t)Z2 kB S  ?4 N rB k 6D? NvNrB k 6D?|Z2  k S  ?vNrB !k 6D?5 5 G!`" "k c $?O& 9.xB #k <D1?O* *r2 $k 6?T'[) %k Z%k ?<(( ) r2 &k 6?[+- 'k Z'k ?b^,Md- r2 (k 6?R+- )k Z)k ?Y^,Dd-  *k Z*k ?='C(  +k  r0e0e    B CuDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||XJ^5 ^ u@  E,U, ,k Z,k ?<+(B,  -k Z-k ?&'  .k Z.k ?i'xo(  /k Z/k ?+g,  0k ZPF0k?(;&*     f~C ^F` !`@8`T!`T`'`TZZ!C" ))N2 g~ 3 k lB h~ 0D      q~C ^F` !`@8`T!`T`'`TZZ!C"@--N2 r~ 3 k lB s~ 0D  2b  "  3"r i Ti ? h]fo L  f |   2 i N? f |x i Zi ?4z & i      B> C{DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||cSy.b> {@  #" &=dz" i NGb ?- t" i NGb ? "t i Ti ?  k s L p k2 i N?pz i Zi ?fz & i      B<C1DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||1*"<+@  #" "^L p k2 i N?pz i Zi ?Ufcz L Of 2 i N?Of{ i Zi ?;{  i Ti ?%9)r  i Ti ?k      v~C ^F` !`@8`T!`T`'`TZZ!C"hSN2 w~ 3 k lB x~ 0D      y~C ^F` !`@8`T!`T`'`TZZ!C"zJN2 z~ 3 k lB {~ 0D  b 2"$(  3"s 2k T2k ?~>fi 2 4k N? O! <#h 5k Z5k ?R ! #n  6k      B CDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||4    @  5,z"k" 7k NGb ? 7 y$l" 8k NG?2"$(p 9k T9k ? m 2 ;k N? "o k N?."$o ?k Z?k ?8"$o 2 Ak N?."$o Bk ZBk ?X"$o  Ck TCk ?I S  {!m " Dk NGb ?7 $m Ek TEk ? C!l  Fk TFk ?%#'  Gk TGk ?#7      }~C ^F` !`@8`T!`T`'`TZZ!C"s$8 %N2 ~~ 3 k lB ~ 0D      ~C ^F` !`@8`T!`T`'`TZZ!C"{ "@ c#N2 ~ 3 k lB ~ 0D      ~C ^F` !`@8`T!`T`'`TZZ!C"u#9_$N2 ~ 3 k lB ~ 0D  ^b : 'd  3"t k Tk ?(Tn 2 k N?/ fj k Zk ?c F1t  k      B6CDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||| 6@  /Ie;k" k NGb ? m" k NG?: 'do k Tk ?a{ k 2 k N? ;"r k Zk ? "u 2 k N?6(m k Zk ?> m  k Tk ?; %0p  k Tk ?Vs  k      BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||K@   T t    ~C ^F` !`@8`T!`T`'`TZZ!C" ux .N2 ~ 3 k lB ~ 0D      ~C ^F` !`@8`T!`T`'`TZZ!C"K - N2 ~ 3 k lB ~ 0D  8b b(&(  3"v i Zi ?  u x" i <G ?g Pr%t#px" i <G ?"n i  x0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||wduY ~@  Qb%l i Zi ? u t  i Zi ?-o 4f  l  i3 b xB i <D?|>f Z#4 )% i3  l `2 iB c $ ?Z#$|xB i <D?# #|xB i <D?4 $4 )%|`2 i c $ ? #4 $|x" i <G ?b(&(mB i  fD1?bJ$(&J$t i Zi ? w  i Zi ?$h %u r2 i 6? ,&'x i Zi ? &' r2 i 6?.,&' i Zi ?5&'  j  x0e0e    B CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||m/ q @  U&?&yr2 j 6? @3 j Zj ?  t  9 j# #"  a 2 j N? {?B j  fD? 9r2 j 6?x I"   j Z j ?   r2  j 6?@?  j Z j ?) t  9  j# #"  , 2 j N? {?B j  fD? 9t  9 j# #" - 2 j N? {?B j  fD? 9 j Zj ?~$K&  j Zj ?%>  j Tj?%#&  j Zj ?9> r2 j 6?_!! j Zj ?q  r2 j 6?wP j Zj ?M t  9 j# #"  }Q!2 j N? {?B  j  fD? 9 !j  f    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||!bVT6=@  #" M+ "j Z"j ?A  #j Z#j ?>?g n` .1$ # !x" j <G ?.1$~B $j BD?^.^1$Hz  l  %j3 #" PMxB &j <D?>f Z#4 )% 'j3  l `2 (jB c $ ?Z#$xB )j <D?# #xB *j <D?4 $4 )%`2 +j c $ ? #4 $ ,j Z,j ?D-  -j Z-j ?-r> r2 /j 6?Y?! 0j Z0j ?_ %! r2 2j 6?)  3j Z3j ?kv   4j  f    BWCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||C(#DWP@  #" ; 5j T5j?^b  6j T6j?>-2   7j T7j?_!" t  9 p# #" Y }' (2 q N? {?B r  fD? 9t  9 t# #"  ti!2 u N? {?B v  fD? 9b eH/  3"x 1l Z}1l ?"  x } k   2l3 3" oo !l2 3l 0?k   4l T~4l ?s w ~ k   5l3 3"o"l2 6l 0?k   7l T7l ?s w z  9 8l# 3" *2 9l N? {?B :l  fD? 9 ;l  f    BPCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@xP@  3"B F? l BD?N  l  ?l3 3"e SxB @l <D?>f Z#4 )% Al3  l `2 BlB c $ ?Z#$xB Cl <D?# #xB Dl <D?4 $4 )%`2 El c $ ? #4 $ Fl ZFl ?"   Gl ZGl ?Q  k   Hl3 C"o_"l2 Il 0?k   Jl TJl ?s w  k   Kl3 C"o"l2 Ll 0?k   Ml TMl ?s w  Nl  f    BPCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||;v` P@  C"-D)  9 ~# C"42  N? {?B   fD? 9nb Y l$ ,  3"yt ^ /@1 k# #" &(l2 k 0?^ /@1 k T|k ? 0 1 | k  r0e0e    BCwDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Jq?e`w@  #"  'r'` 4  k# { $'Z2 kB S  ?4  urB k 6D? vurB k 6D?uZ2 k S  ?vurB k 6D?5 5 u`  &(- # { % ,f" k s *G? &(-j k xBP CDEF1?P @#"  )()tt    k# #" =&>(l2 k 0?   k T{k ?  { k Zzk ?%& z k Zyk ?Y $&w y k Zxk ? %'y x k Zwk ? `)Ox*y wxB k <D?{ %| &wr2 k 6?/*+ k Zvk ?*+ v k  r0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||ktZx@  #" e**t D ^ k# #" a*b+l2 k 0?D & k Tuk ?L^ u k Ztk ?XX)R* t k Zsk?&=' s k Zrk?8>*|)+ r k Zqk?l$% q    C ^F` !`@8`T!`T`'`TZZ!C"'S(N2  3 k lB  0D      C ^F` !`@8`T!`T`'`TZZ!C"_++N2  3 k lB  0D  b i  !a H 3"z k  r0e0e    B5CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||cU:m kz5@  #" zt 4  k# #"  8Z2 kB S  ?4  zrB k 6D? vzrB k 6D?zZ2 k S  ?vzrB k 6D?5 5 z`" k c $?k tzxB k <D1?tzr2 k 6?i <z k Zpk ? p k Zok ?C | o k Znk ? + n k Zmk ? \| m k Zlk ?S8| lxB k <D? |r2 k 6?i| k Zkk ?U: k k Zjk? ~ j k Zik ??~ ir2 k 6 ?%<~ k Zhk ?P5 hr2 k 6 ? 7|~ k  r0e0e    Bm CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~|D 3m @  #" %0~ k Zgk?~ g k Zfk ?%6j| ff" k s *? i  !az k Zek ? N Q w e    C ^F` !`@8`T!`T`'`TZZ!C"S{ N2  3 k lB  0D  b N2'  3"{r2 k 6?F[! k Zdk ?vK ! d k  r0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||NDf$@  #" R J !` 4  k# Nx( !Z2 kB S  ?4  rB k 6D? vrB k 6D?Z2 k S  ?vrB k 6D?5 5 f" k s *G?N' k xBP CDEF1?P @a""r2 k 6? " k Zck ?)~ ! c k Zbk ?6  b k Zak ?  a k Z`k ? (  ` k Z_k ?_#h $ _xB k <D?NOr2 k 6?$1$9F& k Z^k ?Q$% ^ k  r0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||dUBAr@  #" w$%r2 k 6?$0/& k Z]k ?I$% ] k Z\k ?#U$ \ k Z[k? 29! [ k ZZk?2$'Y% Z k ZYk?*2hj Y    C ^F` !`@8`T!`T`'`TZZ!C"*h! !"N2  3 k lB  0D      C ^F` !`@8`T!`T`'`TZZ!C"\u%>.&N2  3 k lB  0D  b -1  3"|`" [j c $?-1z \j ZX\j ?!. /o Xr2 aj 6?H/p*1 bj ZVbj ?/E0 Vr2 dj 6?VH/8*1 ej ZUej ?^/ 0 U fj ZTfj ?<7.|/ T gj ZSgj ?U./ S hj  r0e0e    BXC]DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Z_K:JX]@  #" 8 /0 ij  r0e0e    BCfDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||fNU2veOc@  #" t/B0 jj ZRjj?b/0 R kj ZQkj?gb/0 Qr2 ^j 6?] H/? *1 _j ZW_j ?e / 0 W    C ^F` !`@8`T!`T`'`TZZ!C" 0 n1N2  3 k 5lB  0D  5!b . f  3" k   n3 3"\f*l2 n 0?k  L n T n ?s wL   n  x0e0e    B! CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||r8|xD! N@  3"L n Z n ?"  RR  " n TG?" XPH l n3 3"  pxB n <D?"~N8` l n# l`2 nB c $ ?l]"NxB n <D?]llN`2 n c $ ?l"NxB n <D?"N n Z n ?" n O   n c B C DEF1? @3" V`M  N  n3 3" c2 n H? N N n T n ?  N    N  n3 3"$ 2 n H? N N n T n ?  N   n Z n ?"  _N   n  x0e0e    BCRDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||R7E@]9H@  3"M n Z n ?" XO    N  n3 3"c2 n H? N M n Tx n ?  M x   N  n3 3"$ 2 n H? N M n Ty n ?  M y  n  x0e0e    BCRDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||R7E@]9H@  3"mM n Z n ?"XO   n Z n ?"*  M  Ft L   # #" .  N2  3  k lB  0DAL  Ft L   # #"  `q N2  3  k lB  0DAL  Ft L   # #"  kW N2  3  k lB  0DAL  *b   9 3"r2 n 6?N n Zj n ?+vM j  n  0e0e    BC+DE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| +P$&+:^CM @   3";fN n Zr n ?"?E$M r " n TG?" MH l n3 3"  xB n <D?"~L8` l n# l`2 nB c $ ?l]"LxB n <D?]llL`2 n c $ ?l"LxB n <D?"L n Zk n ?"  L k   N  n3 3"6](2 n H? N M n Tu n ?  M u   N  n3 3" ] (2 n H? N M n Tv n ?  M v  n Zt n ?" `U EM t  n  x0e0e    BCRDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||R7E@]9H@  3" :8M n Zw n ?"`M w   N  n3 3"6B 2 n H? N J n Te n ?  J e   N  n3 3" B 2 n H? N J n Tf n ?  J f  n  x0e0e    BCRDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||R7E@]9H@  3" :J n Za n ?""UJ a  n Zg n ?" n J g  n S d0e0e    BC,DE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| ,EiY5  @   3"fM n Zh n ?"?B!J h  n Zi n ?" NFa i  n Zm n ?"gBFM m  n S d0e0e    B>CDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 3X2uz~> @   3"l hMB n  fD3331?" MFt L   # #"  M N2  3  k lB  0DAL  Ft L   # #"   EN2  3  k lB  0DAL  Ft L   # #" +  wN2  3  k lB  0DAL    6?'" ~#b 2 (&a  3"~ ˀ 6pˀ>n 2  ~ ̀ 6p̀>c b  fB ̀ s *pD>  fB ΀ s *pD>  " π npB C DE F>   @) P  Ѐ ~pBCDEF><h@  > ; fB рB s *pD>   ~ Ҁ 6pҀ>^  5 ~ Ӏ 6pӀ>* . ~ Ԁ 6pԀ> fV fB Հ s *pD>fB ր s *pD>% ׀ npB C DE F>   @^ ؀ ~pBCDEF><h@  AfB ـB s *pD>~ ڀ 6pڀ> 7 ~ ۀ 6pۀ> \  ~ ܀ 6p܀><= fB ݀ s *pD> +fB ހ s *pD>7+ ߀ npB C DE F>   @Y)  ~pBCDEF><h@  fB B s *pD>7~  6p>o ~  6p>5 ~  6p>bf fB  s *pD>+fB  s *pD>%  npB C DE F>   @"p  ~pBCDEF><h@  A;fB B s *pD>~  6p>^7 ~  6p>a  ~  6p>u* fB  s *pD>"EfB  s *pD>E"O  npB C DE F>   @V!"}  ~pBCDEF><h@   jL!fB B s *pD>E E~  6p>pa ~  6p>C$(&$ fB  s *pD>=fB  s *pD>"EC$E  pBCPDE(F> 0T`0  8PP @   5!]"k~  6p>!%O ~  6p>1 ~  6p>z ~  6p>J ~  6p>  B ~  6>\  S T2 B C 8c> H ^ f2 B s *ZGHT8c> ^ f  S >5Y  ` &z  # >n 5^ jT2 B C 8c&z N2  3 8c&hz ~  6p>I W  ~  6p> L 2`  %L& # >J\ %&2x  0pi $$L& ~B  BpD?!###x  0p##%$ `B   c $pD !#`B  c $pD:#!:&   npB C DE F   @# ;$   ~pBCDEF<h@  G#$~   6p >|  h L*X 4 3"H" 5 # L* 6 BCzDEFY7KM ibz@  ? 7 BCPDEFPKONE@  7p 8 B7CDDEFD.9v57C@  $& 9 B CDE(F  +jhhSPUU @   :# : B{C;DEFA6L d{;@  j'X'` P j ;# JQyH2 < # P  ZB = S D jJ > N PF> ?'(   ? N PF? ?   @ N PF@ ?$&   A N PFA ?   B N PFB ?!n#   C N PFC ?'*   D N PFD ?u   2 E H ?=>D< F BCaDEFR!FrMa@   ") G N PFG ?#g$   H N PFH ?    I N PFI ?"f%X  2 J H ?h g2 K H ?"h$g2 L H ?&h(g M BCDE(F >+uV}@ @   #q N N PFN ?#L&?  ` P j O# \QH2 P # P  ZB Q S D jJ R N! PFR ? !  S BhC3DEFB8T Th3@  H'E'x T N" PFT ?'H*; "  4h & + U 3"Jf  +@, V3  ' (H2 W #  +, X <# X+@, # Jf  + , Y3 b %'H2 Z # R +, [ <$ [+ , $ B2 \  e&d(~ ] 6% ] $ y% % ~ ^ 6& ^ # L$ & ~ _ 6' _1&' ' ~ ` 6( `$y% ( `   a#  # >&Z2 bB S  ?rB c 6D?H rB d 6D?  Z2 e S  ?H  rB f 6D?`  "' g#  L$)H" h # G "'xB i <D?"'xB j <D?"'~ k 6) k$y% ) Jf  +@, l3 N'(H2 m #  +, n <* n+@, * Jf  + , o3 M%s&H2 p # R +, q <+ q+ , + Jf  +@, r3 N'(H2 s #  +, t <, t+@, , Jf  + , u3 j%&H2 v # R +, w <- w+ , -  x BCDE4F 6PU @E @    !~o' y  0e0e    BKC DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||?i0KA7PCV @   !% z BC8DEF8J0_a)3@  & & { BCXDEFl gRU'X_@  \' ' |  0e0e    BCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| CdS 0 @   &* }  0e0e    BC DE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| &  4t7) @   B](}* ~  0e0e    B9C+DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||/+9%@   'A*  BCDEF.[f;@   & '  B CDEF o%@  R ' '~  6.  N' ( . ~  6/ k &f N' /   BCDEF.[f;@   &\'  B CDEF o%@  M&'  BCDEF.[f;@  )&\'  B CDEF o%@  j&.'~  60 &' 0 ~  61 n6&i& 1 ~  62  '' 2 ~  63 e&' 3 ~  64 2&0 & 4 ~  65 ' r( 5 ~  66 !" 6 ~  67 *+ 7   BCvDE4F ^e8{x62O  Lv @    &(!&~  68  ! 8   BCDE(F 9=<RrW$ @   # l&  BC\DE(F  ZJnvvJ=?\ @   )$ &~  69 5# # 9 ~  6: }f$ '% : &`  & _' #  ( )N2  3 J '( _'`B  c $PD & #'` P j # Qm(4)H2  # P  ZB  S D jJ&`  & _' # (a)N2  3 J '( _'`B  c $PD & #'&`  & _' # (Y)N2  3 J '( _'`B  c $PD & #'*h MV  3"  BV CDEFm\_{6kV @  IB  N; PF ? ;   N< PF ? <   N= PF ?0 = 2  H ?WV2  H ?FWMV$b     3"  BV CDEFm\_{6kV @   u  ND PF ?  D   NB PF ?y ]  B   NC PF ?]  C 2  H ?  2  H ? h F"%  3"Z MV  F"$  BV CDEFm\_{6kV @  IB{  N> PF ?{ >   N? PF ?{ ?   N@ PF ?0{ @ 2  H ?WV{2  H ?FWMV{~  6A 0* $ %{ A b m (f"A-  3" Ɓ BV CDEFm\_{6kV @  3*k* ǁ TJ PFǁ ?Yf*+ J  ȁ TK PFȁ ?f*+ K  Ɂ TL PFɁ ?e( * L 2 ʁ N ?m )S,2 ˁ N ?g)S, ́ <M 0* ́&Y+f"A- M Bb h )"$[-  3" ́ B C|DEF aRa g c |@  J +|5?M6N2  3 k `B  c $D    BICnDEFn3^5I@  uS3 3  BCXDEFeP TX8"@  I4 4  BJCDEF2Ki0 J@  e34  Tg PF ?S2L3 g   Th PF ?R45 h    Ti PF  ?-39l4 i  ! BCDE(F  ($erd%` @   T56 " Tj PF" ?H g67 j ` 0 o ~!  ## x2 3l2 $ 0?0 o ~!  % Tk % ?i L!  k b >n.22   3"f  1  '3 /)/22l2 ( 0? 1  ) Tl ) ?Q   l f  1  *3 />+/ 2l2 + 0? 1  , Tm , ?Q   m  -  0e0e    BCqDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||/jY+WCZq@   x/k0 . Zn . ?/ n.j0 n  b b >   3"~ ` 6 0*`<b >b  ~ a 6 0*a<TXw  ~ b 6 0*b<C^  ~ c 6 0*c<p9  ~ d 6 0*d<%   ` W!A<" e# <iiKB f  fZD?W!<"B g  fZD?AW!A8"` W!A<" h# <4xYB i  fZD?W!<"B j  fZD?AW!A8"` W!A<" k# <\gB l  fZD?W!<"B m  fZD?AW!A8"` W!A<" n# <'~B o  fZD?W!<"B p  fZD?AW!A8" b  { L%  3"~ Ʉ 6 PFɄ?H "<L%  ~ ʄ 6 PFʄ?H" L%  ~ ˄ 6 ˄?H {   ~ ̄ 6 ̄?H)   ̈́ B ̈́?Hh; JF"   ΄ B ΄?H~; F"   τ B τ?H ; @F"   Є B Є?H; F"  ZB фB S ?H "lB ҄B 0?H 7"ZB ӄB S ?H"ZB Ԅ S ?H"lB Մ 0?H@j"ZB ք S ?HMR" ׄ B ׄ?H ; F"   ؄ B ؄?H; F"  f ل C *B NC NEF1?H''M}LxKwIGHFLD@R<7f 2 q- d(#J |z 9I q9 ! "$-I(+/ 2369H=@ CQFQ}IKQNQ@&7sf ڄ C *B NC NEF1?H''MMML0MxKLIcLGHKFQKDaJ@OI<HF7F}2Eq-Cd(ZBX#@> <;:9z87I P69 3 0Z--) &a" ^}y _ Q)QhQQ@&s@ ۄ B ۄ?H#I  b [ "  3"  {      Bw CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||5U]Uw @  [ !" | TPF| ?5@ ! b [ %'  3" ` #  # 6[ &'   ~    Bw CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||U]Uw @  # r  N?%4   TPF ?6? %S' Jb @ x(D#=7  3"0`  \ " # I W*+! 6B  TD>? \ B  TD>?D\ DB  TD>?"\ "  T  ?Ix([*   T  ?I})D#X*   T  ?I@ ) X* B B ZD?I *\*  T  ?I )* B  ZD?I\*+!*  T  ?I[)$+ B B ZD?I .\.  T  ?I ,.. B  ZD?I J,\J,  T  ?I A+|, B B ZD?I\,+!,  T  ?I[+- B  ZD?I\|.+!|.  T  ?IOd-. B  ZD?I /\/  T  ?I .#0 B B ZD?I\o0+!o0  T  ?I[^/0 B B ZD?I 2\2  T  ?I 0#2 B  ZD?I\C2+!C2  T   ?I[1Y2  B  ZD?I U4\U4  T   ?I 3S4  B B ZD?I\4+!4  T   ?I[34    T ?I5"=7 b  %, ̑ 3"MN" W 3 Gw %,N" W 3 G2wR!+N" W 3 Gw)!D#+ W xBC\DEFwA"7 J\@  #" # #Lt  +@, W# w#" (+B2 W   +,~ W 6W+@, Lt  + , W# w#" V'q)B2 W  R +,~ W 6W+ ,  W xBCDEFwfeD#w@  #" R(,I) W xBC[DEFwHOU[6-"@  #" $!u$ W <Wwg)c   W <WwRt!"  W <Ww=!"  W xBCDEFwgh$=@  #" d)q* W <Wwk*5+  W xBHCDEFw?5o9zH@  #" 7! W xBPCDEFw F1KP'1@  #" c! W <Wwn'(  W <Ww$)&  W <Ww";#  W <Ww,eL!  W <Wwe!  W xB2CLDEFw2  J;KLB@  #" N('() W xBACkDEFw\)NUUAk@  #" Jc'7' W <WwC)=p*  W <Wwh&i'   X < Xw 2  Y[ ZPFPFY[?w"#  \[ ZPFPF\[?w"#  `[ T`[?w"#  \ T\?w"!#     ~C ^Fw` !`@8`T!`T`'`TZZ!C"R*u+N2 ~ 3 k lB ~ 0D  8`  +@, # w}'{)B2    +,~  6+@, 8`  + , # w%"'B2   R +,~  6+ ,   xBCDEFwfeD#w@  c&'  xBCDEFwgh$=@  '(  <w(k )   <wy%%'     C ^Fw` !`@8`T!`T`'`TZZ!8)#*N2  3 k lB  0D    T?wI[ z   T?wj6y    @80*?.w@pp`TU`TUp^6 {   ZPFPF?w6 v    @80*?.w@pp`TU`TUpI q \  S A  ?"Pe\  S A  ?"Qd\  S A ?"R],h !""  3"NB  Tp~D?"""TB B Np~D?n !L!"TB B Np~D? !!"T\h h 'J% M 3"<N  3 mh 'J%t  BAm` =!t A  B@m`  t @  B?m`  t ?H2 B # mtH2  # mtH2  # mtH2  # mtZB  S DmtZB  S Dmt  <>mKHy >`B  c $Dm{ tH2 B # m;yH2  # myH2  # m;yH2  # myZB  S Dm99yZB  S Dmy  <=m{y =H2 B # m@yH2  # myH2  # m@yH2  # myZB  S Dm??yZB  S Dmy † <<†my <H2 ĆB # mKyH2 ņ # mKyH2 Ɔ # mKyH2 dž # mKyZB Ȇ S DmyZB Ɇ S Dmy ʆ <;ʆmy ;H2 ̆B # myH2 ͆ # mYyH2 Ά # myH2 φ # mYyZB І S DmyZB ц S DmYZy ҆ <:҆my :H2 ԆB # m  yH2 Ն # m !yH2 ֆ # m  yH2 ׆ # m !yZB ؆ S Dm  yZB ن S Dm!!y چ <9چmc `!y 9H2 ܆B # mk".#yH2 ݆ # m.##yH2 ކ # mk".#yH2 ߆ # m.##yZB  S Dmj"j"yZB  S Dm##y  <8m"#y 8`B  c $Dmo&t` E ! # m 1#fB B s *ZDc E t` 4 I+#e, C# c  !B2 B  Z4 I+P!e,xZB  S DP!e,#e,x|`  ge, # m.#ZB B S ZD  I+tB2 B  Z I+/e,t`B  c $D/e,ge,t`B  c $Dmt`B  c $Dmt`B  c $DmKKt`B  c $Dmt`B  c $Dm  t`B  c $Dm t`B  c $Dm t`B  c $DmK Kt`B  c $Dm t`B  c $Dm t  B7m$$%J%t 7v'b @   3"` M <M x c N" N 3 G@ c O <O  Nc 8` Gj P# z  TB2 Q  je~ R 6RGe ~B S BD?@ e T <T 3 .e  U xB CDEFDjc T  @  F f V <V6e  W <WS  e  X <X ! y  Y xBCeDEFe81UZR-OOX@   ~z|8` Gj [#  z B2 \  jx~ ] 6]Gx  ^ <^" , y  _B <_ v |y  ` <`z  y H2 a # y b <bsN}Xy H2 c # nmy d <d)y  e <e&3 z N" f 3 Gq *:} g <gGAz  h <h .m( `   i# A D VZ2 jB S  ?yrB k 6D?H yrB l 6D?  yZ2 m S  ?H  yrB n 6D?y o xBC_DEF_+6RM)d]j@  *({ p xBCDEFJCU? }@  A K5 z q B CDE(F T  <   O/tM @   I z r <=r#Qy =H2 t # 5by u <u@eJoy H2 w # 3by x < x@bJly  N" y 3 Gv fyH2 { # :by | < |@hJry   } < }Hy   ~ xB C?DEFO.? @  % Bz  xB( CSDEF9}|qS6 ( @   =zH2  # V}y  <N.8y NH2  # )Ny  <H y HN"  3 Gvf  <1,e   <#Qe  ` @  # k k _N2  3 a eZB  S D @ ]e  xBC_DEF_!<kR@  [uMl  xBCPDEFu4@.P@  ;k  <tg   <}k   xBCYDEFY(3uD<@  Cp  xBCUDEFKE5U@  (}q  <p   <e     C ^F` !`@8`T!`T`'`TZZ! N;N2  3 k llB  0D  l    C ^F` !`@8`T!`T`'`TZZ!CN2  3 k rlB  0D  r ` @  #  v iN2  3 a eZB  S D @ ]e    C ^F` !`@8`T!`T`'`TZZ!eN2  3 k tlB  0D  tb %.+  3"b  BO)` k OT"  C G%.+n  BI8 k IN2  3 ( *sN2  3 ) *t  B63) `* 6B  HD?(%(  B5r(% * 5  ~B/CGDEFG#/n8@  )=)+  ~BC)DEF)8p7@  ,)+  B45Rh  4f   3  a`2 B c $ ?xB  <D?H xB  <D?  `2  c $ ?H  xB  <D?  B3;)K* 3  B23)2*} 2  B1L)*z 1  B! 1%}r !  B h z    BP Y |"s P  Bu 6$!%r N2  3 r s  Bs n Es s   BCDE(F H; @     /s  ~BCyDEFyy9 ye@   Qat  BCDE(F "8F @    't  B  t    B h bv    BCVDE(F I@V)Kd-(B @    l!N$u  B  %j(s  N2 ‡ 3 M"Rs Ç B Ç <"~r   ć ~BCDEFw  @   Kq Ň B&C DE(F z/ q v*(& E  @    57!q Ƈ Z PFƇ?7!%^#s      LJC n@V@ < S ,>O`T`T+OW4W<m N2 ȇ 3  F# |ZB ɇ S D  |    ʇC nV@ < S ,>O`T`T+OW4W< '**N2 ˇ 3  F# ZB ̇ S D   ͇   `TPF͇?.@`TU`TU n   ·B B9CDE(F R9r3*d  @   #&%jdh ^   χ 3"rB Ї 6D?  7rB ч 6D?^ ^ 7p'h (x(  3" 3 B< 3"  > < T" 4 C Go" (x(? 5 B9 5"= 1 > 9 T" 6 C Gd"Q 6'? 7 B8 7"7 ? 8  8 B CDEF"C p @  \V? 9 B7 9"J2? 7 T" : C G" f '('@0 ; BCXDEpF0"X  +rR;#wg7#J;]R0E | D u~X@         a "? < B6 <" " ? 6  = B4 =" q ? 4 T" > C G " :&@T" ? C Gs " 0%@Jf : XU  @3 " 3H2 A #  X @ B < B: U @  T" C C G" :&A D B D" n9 A   E B E"  A   F B F"u  A       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ T" G C G "  Y'6'A H B H"<eW@  T" I C Gs "Y%:&@T" J C Gs "y:o&&?T" K C Gs " $%> L B L"yGb>   M B M"5 >   N B N" 3">   O BjCDE(F" h2X8j`n,> @   C> P ~BCsDEF"GE<4j]s@  > Q ~BC*DEF"(;"b!*@  :$d$> R H R"lQp>   S H S">   T H T"j#$>   U B U"D @ ?   V B~ V"no]? ~  W B} W"0].? }  X B| X"$%B |  Y By Y".? y   Z B3C DEdF,"9 ke*   C ` A C b . c R33@         B!? [ Bx ["t ! ? x  \ Bw \"o? w T" ] C Gs " $? ^ Bv ^"  ? v   _ BCDEXF("yvwi[;80'%k&^`itOLW/b]@       q? ` Hu `"R? u  a Br a"RWP@ r  b B`CUDELF$"0U [wa >`bXCP$>V1LCU@      H9@ c Bq c":a)@ q  d Hn d"!@ n  e BCwDELF$"y`6GXH $.<k&Ff.$^[fw@      ^=@ f Hm f"6` @ m  g Bh g"4H7@ h  h BCDELF$"0 seJ/4N+@       ""@ i B#CDELF$"!&#^"I!4^vH@       i!@ j B' j"J"#@ '  k B k"X !C   l Hl"n x$,"@  m Hm"t<"#d#@   n BFCDEXF("!S( FQFmF <G "4?@       '@ o Ho"H %B@  p Bp"LdJ@ Jf : XU  q3 "!zj#H2 r #  X > s <s: U > .b !', T 3" u Zu ?!',]  v Zv ?Z^Bp f % w3 >! x H?%s y Ty ?&s f a] z3 [ { H?a]q | T| ?;!Yq  ~ N? !t  Z ?9#!t   Z ?N ! 5#s   Z ?!a5#s   Z ?!"s f # C7 3 )r2  61?# C7s  T ?C V s f # C7 3 e !R!r2  61?# C7s  T ?C V s f # C7 3 "!#r2  61?# C7s  T ?C V s f % 3 z Q#E%  H?%v  T ?&v   Z ?4e$q G(w   Z ?$Qi(v B   `D?z I$z i(vB   `D?I$i(vB   `D? 8  W#wB  ZD?8 8 vB   `D?8 (wB   `D?'wB B  `D?DWzB  ZD?|zB   `D?z  N?"!w  Z  ?e!#!y    Z  ?!45#w    Z  ?$!K'5#{  f % 3 Q#=E%  H?%v  T  ?&v  B   `D?I$i(vB   `D?=I$=i(vB B  `D?8 W#wB  ZD?"8 $8 vB   `D?$8 ${(wf c 3   2  H?cv  T  ?q+v  B   `D?6y  Z ? 4(&x   Z ?1#v   Z ?;6#3v "  N ?s^KwB   `D?sWs>vf  6: 3 q( +  ZPF0* 333? 6:e "  H ? 6:ef  6: 3 Y l(L+  ZPF0* 333? 6:e "  H ? 6:ef  6: 3 l(+  ZPF0* 333? 6:e "  H ? 6:ef  6: 3 l(+  ZPF0* 333? 6:e "  H ? 6:ef  6: 3  v("+  ZPF0* 333? 6:e "  H ? 6:ef  6: 3 c"l(V'+  ZPF0* 333? 6:e "  H ? 6:e ˆ Zˆ ?ak  È ZÈ ?_$A(i  Ĉ ZĈ ?$!<(e 'b !'. N 3" ƈ Zƈ ?!'.M f W l[9 Lj3  `O Ȉ H?W l[9P Ɉ TɈ ?P  ʈ N? "P ˈ Zˈ ?{!P  ̈ Z̈ ? ! 5#Z  ͈ Z͈ ?!5#Z f    Έ3   r2 ψ 61?  P Ј TЈ ?  P x2 ш <1?MFP ҈ Z҈ ?n*P x2 ӈ <1?mfP Ԉ ZԈ ?JP  Ո N?F #%V ֈ Zֈ ?2 #$V B ׈  `D?F $G (WB ؈  `D? $(WB و  `D? "WB ڈ ZD?  WB ۈ  `D? "WB ܈ ZD? j VB ݈  `D?@`V2 ވ N?]2n ߈ Z߈ ?$\x   Z ? N Y   Z ?CV B B ZD? [ [VB  ZD?[[VB   `D?[V  N?V  Z ?`iRV   Z ?~! +'#V B  ZD?VB   `D?5VB  ZD?{!V  Z ?2 <V   N?n"u/'V  Z ?ZG$|&V   Z ?_&(]   Z ?&(] B   `D?n%n(WB   `D?u%u(WB  ZD?  V  ZE ?vV E  ZC ?V CB B  `D?{!{!(XB   `D?O V   `A0* 333?(#-^ A"  N ?(#-^   `=0* 333? ( -^ ="  N ? ( -^   `<0* 333?(w-^ <"  N ?(i-^   `:0* 333?*(-^ :"  N ?G( -^   `90* 333?(`-^ 9"  N ?(^-^B   `D?VB  ZD? 5V  Z ?j$ x(^   Z ?>%(V 'b : #  3"   0e0e    BCXDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||LK@5a(FX@  wdT"  C G KRhJf u  3 l/H2   # u g   <  H Gg  Jf u   3  +QH2   # u m   <  H Gm  T"  C Gq KRoJf u  3 VH2  # u j  <  H Gj  Jf u  3 [+H2  # u k  <  H Gk  T"  C G: vs  B ^ ] l  Pf # > 3   N2  3 ># >s  < 1 0s    B o    B < == $v    B N6r    B ) )bz  6   0e0e    BvC DEpF0 @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| !~ \Tj`)uj_4' 0d4Jq."v@         ,~n  B ^m     B l   !  f0e0e    BCDEF @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| Jv!B@  _pzf va  "3 Ŝ 6xr2 # 6333? a B $ ND?v9 zf va  %3 ̬syr2 & 6333? a B ' ND?v9 zf va  (3 @ {r2 ) 6333? a B * ND?v9    f0e0e    B0CZDEF @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||D 3B QU0Z@  pYh   f0e0e    BC+DEF @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||+%In @  ,h   f0e0e    BCDEF @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||>fnyut@  Vh  B  #`  )b & K 3""  NG?VhA"  NG?J%iF  T  ? F  "  NG? RF`  N  #  C l  2  H? N J  N  ?  J  `  N  # N >  2  H? N J  N  ?  J    T  ?  J  "  NG?6 RJ`  N  # -C  2  H? N J  N  ?  J  `  N  # > 2  H? N J  N  ?  J    T  ?  J  "  NG?F QJ`  N  # =B  2  H? N J  N  ?  J  `  N  # = 2  H? N J  N  ?  J    T  ?  J  "  NG? S$RJ`  N  # !C # 2  H? N J  N  ?  J  `  N  #  > "2  H? N F  N  ?  F    T  ? G! F     f    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||XqM$@   ; G  T  ?> ; L  "  NG?&I  T  ?H G    T  ?B G  ~  # B    B#CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| %{p`z#@  .  J  T  ?  G      C ^F` !`@8`T!`T`'`TZZ!* R N2  3 k FlB  0D  F    C ^F` !`@8`T!`T`'`TZZ!5=N2  3 k FlB  0D  F    C ^F` !`@8`T!`T`'`TZZ!/aN2  3 k FlB  0D  F    ‰C ^F` !`@8`T!`T`'`TZZ!x @^N2 É 3 k FlB ĉ 0D  F    ʼnC ^F` !`@8`T!`T`'`TZZ!E !fN2 Ɖ 3 k FlB lj 0D  F    ȉC ^F` !`@8`T!`T`'`TZZ! uN2 ɉ 3 k @lB ʉ 0D  @    ˉC ^F` !`@8`T!`T`'`TZZ!V vN2 ̉ 3 k @lB ͉ 0D  @*8b  g%+  3"" ω NG?, ]" Љ NG?,K P \ щ T щ ?, T b  " ҉ NG?,( j`  N  Ӊ# ,02 ԉ H? N s Չ N Չ ?  s  `  N  ։# ,/ }2 ׉ H? N u ؉ N ؉ ?  u   ى T ى ?,  u  " ډ NG?,u`  N  ۉ# ,_2 ܉ H? N w ݉ N ݉ ?  w  `  N  މ# ,  }2 ߉ H? N w  N  ?  w    T  ?,bw  "  NG?,7w`  N  # ,2  H? N x  N  ?  x  `  N  # ,C}2  H? N v  N  ?  v    T  ?,rv  "  NG?,v`  N  # ,4 }2  H? N t  N  ?  t    T  ?,pt     f    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||,3)/B8@  [!"{  T  ?,! =$|  "  NG?, g%+  T  ?,@ |    T  ?, ~  `  N  # ,xe2  H? N x  N  ?  x  `  N  # ,_"a#2  H? N n  N  ?  n  "  NG?,' [!t  T  ?,   m     f    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||,QF@  U!"Il  T  ?,!wS$>p  ` # C7 # , Y o r2  61?# C7i  T  ?C V i     f    BiCaDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||,SF^>Mia@  8}  T  ?, Ge  "       BCDE|F4 @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||,Hm?_O? 4' "8L_T$A;g@          8 f  T  ?,O $s g      C ^{ F,` !`@8`T!`T`'`TZZ! N2  3 k slB  0D  s    C ^s6 F,` !`@8`T!`T`'`TZZ! 4B N2   3 k lB  0D       C ^{ F,` !`@8`T!`T`'`TZZ! : N2   3 k lB  0D      C ^s6 F,` !`@8`T!`T`'`TZZ!(N2  3 k ylB  0D  y    C ^s6 F,` !`@8`T!`T`'`TZZ!7N2  3 k ylB  0D  y    C ^s6 F,` !`@8`T!`T`'`TZZ!;N2  3 k ~lB  0D  ~    C ^s6 F,` !`@8`T!`T`'`TZZ! + JN2  3 k lB  0D      C ^s6 F,` !`@8`T!`T`'`TZZ!r  )N2  3 k lB  0D  6b H% Ο 3""  NG?= $[   T  ?[ a ` X  " ! NG? X qWY`  N  "# 8  2 # H? N Y $ N $ ?  Y  `  N  %#  h 2 & H? N Y ' N ' ?  Y   ( T ( ? F Y  " ) NG?X ,WY`  N  *#   2 + H? N Y , N , ?  Y  `  N  -# N #2 . H? N Y / N / ?  Y   0 T 0 ?z  Y  " 1 NG?W VY`  N  2#   2 3 H? N Y 4 N 4 ?  Y  `  N  5# G 2 6 H? N Y 7 N 7 ?  Y   8 T 8 ?N  Y  " 9 NG?X V$W[`  N  :# " # 2 ; H? N Z < N < ?  Z  `  N  =#  }"2 > H? N Z ? N ? ?  Z   @ T @ ? *! Z   A  f    BCCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||9z0&6C@  2 zY Z B T B ?R  Z  " C NG?H%] D T D ?.W \ Z   E T E ?qn s Z      FC ^QF` !`@8`T!`T`'`TZZ!<N2 G 3 k lB H 0D      IC ^F` !`@8`T!`T`'`TZZ!|N2 J 3 k lB K 0D      LC ^F` !`@8`T!`T`'`TZZ!%N2 M 3 k lB N 0D      OC ^%F` !`@8`T!`T`'`TZZ!2 N2 P 3 k lB Q 0D      RC ^QF` !`@8`T!`T`'`TZZ!"*#N2 S 3 k olB T 0D  o    UC ^F` !`@8`T!`T`'`TZZ!m  N2 V 3 k flB W 0D  f    XC ^F` !`@8`T!`T`'`TZZ!N2 Y 3 k flB Z 0D  f` :@ > {  [# q7~ rB \ 6D?; ;{ ZZ2 ]B S  ?:B  ZrB ^ 6D?B B ZrB _B 6D?: :  ZZ2 ` S  ? @ > Z a T a ?G Z  `  % # yW $("  NG? %\~B b BD? ^ c T c ?gn s Z   d  v    BJ CDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| ?y:Rssn tJ  @     Y e T e ?[ ? X   f  0e0e    BCDELF$ @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||7a.]u wpX, F @      @ ` X g  0e0e    BACmDE@F  @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||%]m1;!B1_A @     h QX h T h ?d8  X  62b G 4%  S 3"  < ? r `   # G  Z2 B S  ?rB  6D?H rB  6D?  Z2  S  ?H  rB  6D?  T ? 1 R ? y 2  N?x'|  T ?! | 2  N?Ed|  T ?| "  NG?G  4% sB   `D1?H 4%z`   #  Z2 B S  ?rB  6D?H rB  6D?  Z2  S  ?H  rB  6D?  T ?_  L  " Q ""  NG}? "nB   `D1?8 8r  T ? K Y  `   # _ K xcZ2 B S  ?rB  6D?H rB  6D?  Z2  S  ?H  rB  6D?`   $# _ B 4"  NG?% xB   `D1?% w"  NG> ? ~`   #  _Z2 B S  ?~rB  6D?H ~rB  6D?  ~Z2  S  ?H  ~rB Š 6D?~ Ê TÊ ? Rq B Ċ  `D1?''q Ŋ TŊ ? u  Ɗ TƊ ?Ru 2 NJ N?vu&$q Ȋ TȊ ?zYq 2 Ɋ N?Bq ʊ Tʊ ?q  ˊ Tˊ ? a oq  ̊ T̊ ? j }  ͊ T_͊ ? 4) _2 Ί N?Ky ϊ T]ϊ ?mDKy ]2 Њ N?4Xy ъ T\ъ ?Qy \2 Ҋ N?B E ӊ T[ӊ ?> # [2 Ԋ N? Պ T!Պ ?2q !`  '& ' ֊# _ MR 2 ׊ H? '& ' ؊ N؊ ? & ' ` #% ي#  l2 ڊ H?#% ۊ N ۊ ?/$%  2`    ܊# 9 N2 ݊ 3 k lB ފ 0D  2`    ߊ# jN2  3 k lB  0D  2`    #   a N2  3 k lB  0D    B CnDE(F n'%cX ( 2J. @   ^j   f    BTCQDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||TQ\@  Z*   v    BvCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| lvZdRRSo|E9 @   P$  T ?=$    T ?r 2`    #  x N2  3 k vlB  0D  v.b 3 '6  3"2   p~A* V?Wide upward diagonal1c   # TPFp A* ?Wide upward diagonal TB  Zp~Do?3 3B  Zp~Do?  B  Zp~D?,B  Zp~Do?mB  Zp~Do?e!me!  # SA* ?Wide upward diagonalC m1! SB  Zp~D?` $F& # 1d#ce%2   p~A* V?Wide upward diagonal$F&   RPFp A* ?Wide upward diagonalw$% R  # PA* ?Wide upward diagonal9mC  P  # OA* ?Wide upward diagonall o O  # NA* ?Wide upward diagonalb|l NB  Zp~Do? !B  Zp~Do?e! !e!B  Zp~D?e!d#  # MA* ?Wide upward diagonalN !R! M  # LA* ?Wide upward diagonalDN  L\`   # B B Tp~D?  TB  C D B  Zp~Do?Xd'd'B  Zp~Do?X))  # KA* ?Wide upward diagonalX() K  # JA* ?Wide upward diagonalX'( J   # IPFp  A* ?Wide upward diagonale e! IB   Zp~D?e%F'B   Zp~Do?F' !F'B   Zp~Do?) !)   # H A* ?Wide upward diagonal( !) H  # GA* ?Wide upward diagonal'( G  # FPFp A* ?Wide upward diagonal'd'=d) F\`   #  B B Tp~D?  TB  C D \`   # p%S'B B Tp~D?  TB  C D \`   #  p%d'B B Tp~D?  TB  C D `B B c $D)-"`  ), D+ #  -m/2   p~A* V? Wide upward diagonal )D+  # VPFp A* ? Wide upward diagonal), D+% V*   0e0e    B C DE@F  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||:\qw = h  L-  \  M n  @     $e!$-#B 4 Zp~D?/1$  A  0e0e    BCDE(F A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||  >&E H[M @   P,!/"p` +#. z# +&".B   Zp~Do?+#+B   Zp~Do?.#.   #  A* ?Wide upward diagonal,#-    #  A* ?Wide upward diagonal+#, B y Zp~Do?1|1B z Zp~Do?6|6 z # ZzA* ?Wide upward diagonal2|5 Z z # YzA* ?Wide upward diagonal1|2 Y z # XPFp zA* ?Wide upward diagonal21 '5 X  # A* ?Wide upward diagonal%.  b  "  3"D` }05R 9 {#    H2 | # }05R 98 } <}5+ \88  ~ ~BCDEF L@  6  7  ~B CDEF y>  @    7D` }05R 9 #    H2  # }05R 97  < 5+ \87  D` }05R 9 #   H2  # }05R 97  <5+ \87   T ? D l @   T ? 5 c 9 `  t* #   \ rB  6D? 0 *8Z2 B S  ? tx :8rB  6D?Q tt8rB  6D?08Z2  S  ?t:8\`  x #   B "r"  6G ?  x5rB  6D? 5  T ? 2 *L : r"  6G ?   !: :  T ?  Y j E \` 2,3#4 #   '  l2  0?23#4BxB  <D?z,33BD` }05R 9 #  MrH2  # }05R 9E  <5+ \8E D` }05R 9 #  MrH2  # }05R 9W  <5+ \8W   T ? `tR r"  6G ?  ! M  T ? $ U \` 2,3#4 #  l2  0?23#4DxB  <D?z,33D  ~BCDEF bSfw@  ^G   `TPF?. ``TU`TUT    `TPF?. ``TU`TUFKM B B ND? !B%b @ | }%,  3"T U <Uv | ! H" U # m #U$3) U <U#s $ N2 U 3 a%'!E' U <U% & N2 U 3 "%#E' U <U\"%w#& H" U #  #3) U <UR#y$ N2 U 3 %n' U <U%4 ' H2 U # %n' U BU%cC'  U <U*)>,  U  0e0e    BC DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||a\oGa @  #% U  0e0e    B CDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| \,'61U t  @   q2%u&H" U # 3 #) U <U # $ N2 U 3  % ' U <U9 &T +' N2 U 3 ]$&#' U BU&'  U <U q);,  U  0e0e    B%CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||+V%@  6 $[ % U  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||$ox*C5@  { >'u' U  0e0e    BCNDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||;NML@  y'4( U  0e0e    BCrDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||STcr^\@  &j ' U <U3 "$K%  U <U '(  U <U+(A-)  U <U2"C#  U <Uj$%  U <U%&CO' r" U 6G?@ !}%,  <j !$ D#\ b $.(o * 3"[ V <V $@  T" sV C G P r& tV <BtV    BT" uV C G   %T" vV C G~  J% zV <zV $ @   {V <{V c   N" |V 3  6 "$v }V <}V  * T" ~V C G E .(o V <V 7 S )   V 3 BCDE(F>  &+\ @   eNT" V C G<   $? V <V [ v T" V C G  '| V ZV333>   V 3 B/CDE(F> /&_v<nt, @   s V TV333> Yv  V ZV333> =T  V TV333>   V TV333> + H   V 3 BCDE(F> ~)!) @    V 3 BCDE(F> ~)!) @     V ZV333>  # T" V C G  ) ' V TV333>   V 3 BQCDE(F> 7(Qyet4## @   ;" V 3 B;CDE(F> 6#;vOp2!" @   v V <~V d  ~ V <|V  " |  Z/ 333>  #N /   ZN333> :TJ N  ZK333> J KLb !''3 t 3"_ Ō B Ō  ` P   ƌ B ƌ ) ' T   nj B nj ! 4 , P  T" Ȍ C G ! '3PJf Gj Ɍ3   03 N2H2 ʌ # jP ˌ < ˌGP  Jf Gj ̌3  j0N2H2 ͌ # jP Ό < ΌGP  B ό HD? !/'/P Ќ B Ќ @ P   ь B ь 1$ w   Ҍ B Ҍ 1 r   ӌ B ӌ / 0r   Ԍ ~B CjDEF   hijQ@   12r Ռ ~B%C@DEF @I60<+%6@   1K1r ֌ B ֌ % a0'B1r   ׌ B ׌  2^'3r   ، B ، (=/v  N" ٌ 3  !(r ڌ B ڌ ! "r  Jf Gj ی3  $ &H2 ܌ # js ݌ < ݌Gs  Jf Gj ތ3  ? $ &H2 ߌ # js  <Gs   ~BCDEF >r X@   3$ %s  ~BCDEF (Koi2@   a&| I's  B a#* $s   B EI'` w(s f   3  # `2 B c $ ?rxB  <D?H rxB  <D?  r`2  c $ ?H  rxB  <D?rf  "'* {3   '`)x"  <G?"'*xf   3  "#xB  <D?`2 B c $ ?  xB  <D?  xB  <      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~D?`2  c $ ?   B K !s B   fD1? !s)sJf Gj 3  %B'H2  # js  <Gs Jf Gj 3  p%'H2  # js  <Gs Jf Gj 3  J&F(H2  # js  <Gs Jf Gj 3  g$3!-&H2  # js  <Gs   B !Z"s   B :! "s   B s)'/s   BCDE(F  h% `, @   l#'B (s  ~BCDEF 0XM<#@  \#%s  B "b#u x"  <G ? !S!(u  ~B7CDEF >*^87?@  %%u  B t$CU%|    B  b((v    ~BqCDEF p3_4/{q@  %#&u   B  $N%u B    fD1? t"!t"`)u   B  @$!&"w x"  <G ? $!&(yJf Gj 3  U$%&'H2  # j  <G   ~B)CDEF h=Xm n)@  S!:#{$#u  H n!B"e$ #w   B  w & q N"  3  u )q  B B  q Jf Gj 3  BkH2  # jq  <Gq Jf Gj 3  ekH2  # jq  <Gq N"  3  " %q  B U !` q Jf Gj 3  1 R"H2   # jq ! <!Gq Jf Gj "3  #R%H2 # # jq $ <$Gq N" % 3  u )q & B& N " q Jf Gj '3  akH2 ( # jq ) <)Gq N2 * 3  Pkq + B+ q;q N" , 3  -pq - B- ~S'q Jf f)H .3  H2 / # fHq 0 <0)q Jf f}H 13  *H2 2 # ;fHq 3 <3}q N" 4 3   q 5 B5 kX@ bq Jf Gj 63  1 H2 7 # jq 8 < 8Gq  Jf Gj 93  T  H2 : # jq ; < ;Gq   < ~BCDEF (G@  3  q =  0e0e    BFC|DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| F/.m(D|@  I q > B > q   ? B ? :q   @  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| */^@   cq A ~BvCDEF x#v@  (&q B  0e0e    BCWDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| W%AT*4R\@   I!Nq C  0e0e    BCxDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| =xlW6G@  &x!q D B D 'q   E  0e0e    BXC/DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| ff7nX/@   Ht F  0e0e    BCEDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||  EbBT>*: Lxz0 @    Ht G BCDE(F  *dFh3o5E3o @   St H BCDE@F  Km@WRAWml` @     gq I  0e0e    B3CDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||  ZC3Y^CIK @   !< #q J  0e0e    BC}DE@F  @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| }En7S(N3>aw2IUc} @     ! # qN" K 3  u )q L BL x T q Jf Gj M3  t ;H2 N # jq O <OGq N2 P 3  e t q Q BQ   q  R BR /dq  S  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| $qIs*q@  [ q T  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| W[Qq\@    q U  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||  xVvG8@  D  q V  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| TyF]e@  c "sN" W 3  Q#{ X BX u'{ Jf Gj Y3  ) H2 Z # j{ [ <[G{ Jf Gj \3   M#H2 ] # j{ ^ <^G{  _ ~BCDEF 3 0w@  \!~ ` ~B1CDEF 19;A'@  zY! a Ba  ' ({  b Bb   {  c Bc  @|  d Bd n {  e Be B p {  f Bf ? ^m{  g Bg >8 e|  h Bh V ! |  i Bi  * *1" % NGb ? x(k-.2 ( N?)!+8 ) Z) ?H*!+8 2 + N? C*#z,8 , Z, ? **T,8  - T- ?, ( )-  . T. ?m(e)-  /      BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||=@  )|*-    0C nV@ < S ,>O`T`T+OW4W< += ,N2 1 3  F# -ZB 2 S D  -    3C nV@ < S ,>O`T`T+OW4W<Q- t.N2 4 3  F# -ZB 5 S D  -& h (@(N1 ޔ 3" ! TDPF! @*-aN1 D " S ~PF"? @?f*-4N1  # S ~CPF#? @?*-:!N1 C $ S ~BPF$? @?"*-@(N1 B % S ~c PF%? @?*-N1 c x & <f2-f.x ' <f2a-.x ( <f24-.x ) <f2:!-".l" * 02:!/"k0l" + 024/k0l" , 02/fk0l" - 02a/k0 . C xb .G*Hjd @ X( n, b  /  >0*/?G6Hid @? (n, > 0  PF0?GFHod @?!(C'n,  2  0*2?d @?(,  3 C x?d @?**- 4B C x?d @?* *-h b ),  3"T 7 C Ab !T 8 C AJ)$&T 9 C A #),Zb : S B`Zb ; S BR >& < B0*<GHd  %  = B0*=GH{[  (  > B0*>GfH_ 0#' n ^u' v# 3"f" w s *?Z < x BPFPFx ?^<  y Ny ?Tq|<  z Nz ?UrI< xB {B <D?z~z< | N| ?#^u'<  } C p~B0CDEF?&':,\X0@  Dt< ~ N~0*PF0*~~?v < ~  C p~BCDE(F? Nwp2 @    bTW<  N} ?^O< }` jt3"4 # PB  TD?jt3"t3<B B TD?p44<` jt3"4 # WPxB  TD?jt3"t3<B B TD?p44<` jt3"4 #  P+B  TD?jt3"t3<B B TD?p44<t` U4*- # z  N| ?U4*-< |f"  s * ?U4*-<  N{ ?{^< {  Nz ?2^"< z` jt3"4 # "P#B  TD?jt3"t3<B B TD?p44<f"  s *?S2 <t` 2b y # t \f"  s *?2b y<  Ny ?o^ < yxB B <D?ff<\  S A  ?"O&b W` .  3"t z S @8z"W` ! B |B BD?"]!]O#B  BD?"H+H, z $45 # 3",.xB  <Do?$4L$4  N ?$45 xB  <Do?5L5z x c $ x"j.&(,  { T{ ?"#$ ` ^%( #  $&*&B } HD+*?"^%^(B ~ HD+*?"%(` H%#- # W`#+L H%#) H%#)xB  <D?H%#%FxB  <D?#%#)JxB  <D?H%H'MxB  <D?&f"&fxB  <D?e"&e")drB  6D?H''=rB  6D?&'=Z H%#)  Hf)#-rB  6D?H%#%SrB  6D?#%#)SrB  6D?H%H'SrB  6D?&f"&SrB  6D?e"&e")SrB  6D?H''SrB  6D?&'Sb &(%  3"l2 ; 0 ?"'% < T< ?~#$ l2 > 0 ? 4 ? T? ?  l2 A 0 ?L -M B TB ?L Mh l2 D 0 ?! E TE ?!  ~B O BD?n  P~B P BD?i-~B Q BD?]!"l2 G 0 ?!&4 H TH ?!&" l2 J 0 ?p-p# K T K ?pp#j3  l2 M 0 ? ! N T N ? !%  ~B R BD?#" ^#P~B S BD?r ~B T BD?~!"~B U BD?  ~B V BD?   ~B W BD?? ?  X T X ?2!   Y T Y ?!   Z T Z ?, !  l2  0 ?#"$(%  T ?#$' ~B  BD?###  T ?!$"  b 6O   3" / T/ ?"  f  S @86+ ~B  BD?'K' L O  HO ~B ď BDo?& ŏ Tŏ ?O ) ~B Ə BDo?O O &l Ǐ c $< ǏIb#  <  ȏ T@ ȏ ?  @ t` ^%( ɏ# ^~B ʏ BD+*?^%^("~B ˏ BD+*?%("` H%#- ̏# 6IZ H%#) ͏ H%#)rB Ώ 6D?H%#% rB Ϗ 6D?#%#) rB Џ 6D?H%H' rB я 6D?&f"& rB ҏ 6D?e"&e") rB ӏ 6D?H'' rB ԏ 6D?&' Z H%#) Տ Hf)#-rB ֏ 6D?H%#% rB ׏ 6D?#%#) rB ؏ 6D?H%H' rB ُ 6D?&f"& rB ڏ 6D?e"&e") rB ۏ 6D?H'' rB ܏ 6D?&' r ݏ s *% @8ݏ6Q % n`  B # Zj~B ޏB BD? !xB  <D?B Bn` I # -~B B BD?I?xB  <D?IF;h w  3" (   B NC NEtF5%??!>A"JbKAK MMM? NJ NKM!LM!M MMKNbK NJ NNM"!M!L>K!J?@`1 wH   B NC NEF5%?%%>b~B?  I"J?KKLBM>MN NJ NAKNKMLBM MLMKMKN"J N I NNM MB M~LKbAKJ@$` ~H   B NC NEF5%?%%d@`\B \D]FH\I_KL``MMd NK NFLML`MMLM_KMINH N]F N\D N NNMBMMLFL@Kd@$`   <?     <?O $   <o ?E (` o    < ?({`    < ?      < ?0p   H    B NC NEF5%?%%D@dBB! \D]F!HBId_KL`MMD NL NMMaM`MMLM_KMIMH N]F N\D N NMMBMMaMM@LD@$`Q     < ?  Q   `  NN # W 7~ N2  3 3?0TB  C ?" NN  < ?Hn     < ?\k      < ? 0     < ?=?,   $  3 BCeDEF5%?--ea]ZVRM D :0 sdU F 9+% [\@  1   3 B3CWDEF5%?,,3. *%" -9DO[` f l rw}   *6 B&WY\@  '   # ZB NC NEF5%?66M}ML 8LK J IAIiH)GF>DH#{B*]@g2 >r7;9o:|<*9?8A 7 D5FL4I3I1K0Km/K(.K,K+K*K)I'I&F$ D[# D!A. ?|<89g2Y]-,% 4 ) Z K < @5 }   # FB NC NEF5%?11LET?730 * $f  D S# 2 w GVe !%#4$C%&()"*g+,-/F0 1 2 3$5j67 8 : <$?*A0-D7F? IEKLM@0  N2  3 3?]TB  C ?t>9H   B NC NEF5%?%%_"aBCb!DAF!Gb_IJBKLMM_ NI NJMKMLLLKaMJM_IMG NAF NMDMaMLCLaKJ"I_@$`d8$  < ?   H   B NC NEF5%?%%BK7_C DAFCHI6K7`L@MBM NBK NKMcL@ML`LBM6KMIMH NAF ND N NMM_BMLcLKKBK@$`d gs  < ?Bl  H   B NC NEF5%?%%fKU_D DAFDHI6KU`L@MfM NK NKMBL@ML`L+/@*eCS&E!=H{cI`J]K[L=M N@3 rn ( # 2B NC NEF5%?,,S S ^S  a  ! \o+e <%).p379eg; =>S #@J mAA B C qDME)FFHoHdI! J&wJg+wJ0J5J:J?JCJ`GKMIKJTKLTKM@+y9l ) <)?< j  * <*?@;#  + <+?D N2 , 3 3?=TB - C ?:(H .  B NC NEF5%?%%FK:dC% xDFCGI3K:_L?MFM N=K NKM`L?ML_L@M3KMIMG NF NxD N NM%Md@ML`LKK=K@$`|  / <x/?  xn 0 # 2B NC NEF5%?,,S S ^S  a  ! \o+e <%).p379eg; =>S #@J mAA B C qDME)FFHoHdI! J&wJg+wJ0J5J:J?JCJ`GKMIKJTKLTKM@+ ( 1 <w1?(A  w 2 <v2?s 5L vn 3 # 2B NC NEF5%?,,I I ^I I aI  ! So+] <%).p37 9]g;=>I #@? mA5 B} C qD ME)FF~HHdI! Jl&wJ:+wJY0Jy5J:J?JCJgGKRIKJTKLTKM@+ h \n 4 # 2B NC NEF5%?,,I I ^I I aI  ! So+] <%).p37 9]g;=>I #@? mA5 B} C qD ME)FF~HHdI! Jl&wJ:+wJY0Jy5J:J?JCJgGKRIKJTKLTKM@+On 5 # 2B NC NEF5%?,, ND MDKDwJDHDG:EEE@E[ =;%#8#)4;/+:3&e!^}V" ;Z_@* ct 9 <s9?(A  s : BCDEFZ/h(@  dv `  NN ;# *N2 < 3 3?0TB = C ?" NN >  0e0e    BCC#DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||C]?; #@  I< ?  0e0e    BJC&DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||,&& t<"J@  G<x" @ <GL ?Ub L (@.  3"= O HpO ?mL (@. f 4 l P3 m > IB2 QB  4 l B2 R  4 lf 4 l SC3 m >IB2 TB  4 l B2 U  4 lZB V S Dm > >ZB WB S Dm K K X <Xm  f 4 l Y3 m  B2 ZB  4 l B2 [  4 lf 4 l \C3 m B2 ]B  4 l B2 ^  4 lZB _ S Dm  ZB `B S Dm   a <am @x f 4 l b3 m $! /#B2 cB  4 l B2 d  4 lf 4 l eC3 m $!/#B2 fB  4 l B2 g  4 lZB h S Dm $! $!ZB iB S Dm 1# 1# j <jm !"  k <0*km#?Q&L  l <0*lm   m <0*mm?:L  n <0*nm|? L H2 o # mV?bL p <pmVb H2 q # m+?7L r <Trm+7 TB s NpD?mCCB t NpD?m:C@CB u NpD?m7C|GB v NpD?mEVE w T6PFw ?m J 6B x NpD?mbAAB y NpD?m C#C z <50*zm#h& 5 { <40*{m: 4 | <30*|m|  3H2 } # mVb ~ <2~mVRb 2H2  # m+7  <1m+R7 1B  NpD?mB  NpD?m:@B  NpD?m7|B  NpD?mVB  NpD?mb  <00*m#$!R&1# 0  </0*m$!:1# /B  NpD?m)")"B  NpD?m:)"#+"B  NpD?mQ&Ca(CB  NpD?mh&'  T.PF ?mW .B  NpD?mE GB  NpD?mc  b`  R  # mc )! 0"TB  C D 42   ZB  S D R B B HpD?mc Gc $!|` +(B)K# # mQ&C'0"ZB  S D+(J#(K#B2   ("B)J#`B  c $DB)B)"  <-0*m -  T,PF ?m!Q ,  <+0*m'  +H2  # m   <*mz  *H2  # m  <)mx )f 4 l 3 m7 = B2 B  4 l B2   4 lf 4 l C3 m\bB2 B  4 l B2   4 l ` %' # m@ RTB  C D%%TB B C D''  <(mC \b (B  NpD?mbB  NpD?m  T'PF ?mQ 'B  NpD?m'B  NpD?m  T&PF ?m W0 &B  NpD?m C B  NpD?m !` $%%6( # m%/"&$B2   $,'%6(`B  c $D%%%,'|` %!%#6( # m!/"$$B2   %!,'1"6(`B  c $D8"3(#3(ZB  S D.!%.!,'f   3 m"& B2    ZB  S D  B2    2`  # `B  c $DZB  S Df   3 m."C&^B2    ZB  S D  B2    2`  Ð# `B Đ c $DZB Ő S D(` V# Ɛ# mC!KB2 ǐ  ZB Ȑ S D"B2 ɐ  "#`B ʐ c $D#V#ZB ː S DVH2 ̐ # m$#%a% ͐ B%͐m>$ $w%D% % ΐ T$PFΐ ?m Y  $ ϐ T#PFϐ ?mx#$ # А T"PFА ?meO "N2 ѐ 3 m|  Ґ B!Ґmn !.` e{ Ӑ# m}C`B Ԑ c $Dee{B2 Ր  `B ֐B c $D/hB2 אB  eZZB ؐ S D{ ِ T PFِ ?mJn    ڐ <0*ڐm>  f   ې3 mX! B2 ܐ   ZB ݐ S D  B2 ސ   2`  ߐ# `B  c $DZB  S DB  NpD?m #N2  3 m{]  Bm{-e .` e! # m}`B  c $Defe!B2   f`B B c $D/B2 B  eZeZB  S Df!  TPF ?m>%}& f 4 l 3 m & (B2 B  4 l B2   4 lf 4 l C3 m &(B2 B  4 l B2   4 lZB  S Dm & &ZB B S Dm ( (  <m 'X( B  NpD?m''B  NpD?m ' '  TPF ?m)* f 4 l 3 m + -B2 B  4 l B2   4 lf 4 l C3 m +-B2 B  4 l B2   4 lZB  S Dm + +ZB B S Dm - -  <m z+, B  NpD?m , ,B  NpD?m , ,f 4 l 3 m +-B2 B  4 l B2   4 lf 4 l C3 m +-B2 B  4 l B2   4 lZB  S Dm + +ZB  B S Dm--   < mz+, B  NpD?m , ,   <0* mE  B  NpD?mB  NpD?m !b z&(  3"Gx" ` <GM?z^(f   a3 z(xB b <D?`2 cB c $ ?  xB d <D?  xB e <D?`2 f c $ ?  g Zg ?: d B h ND1?zB i ND1?z## l Zl ?  ! xL 6 R # 3 O#r2 k 6?6 Q # m Zm ?> !R # xL  ) #  ) #r2 j 6? ) # n Zn ? ! " r" o 6 ?3 or2 p 6?lr q Zq ? r2 r 6?   s Zs ? 1  r2 t 6?T o  u Zu ?c y   v Zv ? T  w Zw ?V < f   x3 % $ &xB y <D?`2 zB c $ ?  xB { <D?  xB | <D?`2 } c $ ? r" ~ 6 ?% %"(  Z ?6 #1 % xL  %* '  %* 'r2  6 ? %" '  Z  ? 8&* '  xL _%}' _%}'r2  6 ?_%z'  Z  ?j9&}'  B  ND1? % (r2  6?   Z  ?   xL Z } # Z }#r2  6?Z v #  Z  ?j!} #  xL # %C' # %C'r2  6 ?# %>'  Z  ?/ !&C'  B B ND1? %(2` L   # r ? mN2  3  k lB  0DAL  2` L   # m ?N2  3  k lB  0DAL  2` L   #  "\ y#N2  3  k lB  0DAL    N @?&( dn D"'% # 3"J  T ?D"'%   TPF ?|r"O5%   TPF ?a#   <0*  H2  # "<$   <"<$j  f 4 l 3  1 H2 B # 4 l H2  # 4 lf 4 l C3  H2 B # 4 l H2  # 4 l2f %' 3 4  ZB  S D%%ZB B S D''  <# h  B  NpD?uB  NpD?X # B  NpD?<$%  <0*  B  NpD?B  NpD? ":f j2 3 0 "H2  # jjZB  S DH2  # j`B  c $D2jZB  S Dj2jjH2  #    <yl  H2  # }6  <~n3 ~H2  # L`B ‘B c $DE&f %x Ñ3 j`B đ c $D%%H2 őB # %xZB Ƒ S DLLZb  J%'  3"S2`  h  ϑ# z"!$B2 Б   h x ё 0ёC !_  N" ґ 3 Gz&b$& ӑ <ӑz8e  N" ԑ 3 Gzy#D&N" Ց 3 G zc "%2`  h  ֑# z, "#B2 ב   h x ؑ 0ؑC !_   ّ <ّz    ڑ <ڑz` B! N" ۑ 3 G z!!!$ ܑ <ܑz,>!Yk" N" ݑ 3 Gz J%' ޑ <ޑz  ߑ <ߑz }) 2`  h  # z |! @#B2    h x  0C !_  2`  h  # z8|!@#B2    h x  0C !_     0e0e    BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||zg.ee@  "t#"   0e0e    BT CQDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||z T   DQri @   #e%"   0e0e    BC DE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||z 8#}6    @   h #" &  <zR$%   <z#h$   <zP"a# >b "#  3"w ’ Z ’ ?D6@   r2 Ē 6?    Œ Z Œ ? k   r2 ǒ 6?B   Ȓ ZȒ ?H   `  9 ɒ# J  2 ʒ N? {? B ˒  fD? 9  ̒  f    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||eQUF ]i@  ~K >   ͒ Z͒ ?@    Β ZΒ ?@ C!h  ZL  "  "L x"  <G ? "~B ϒ BD?d d4f  l  В3 h xB ђ <D?>f Z#4 )% Ғ3  l `2 ӒB c $ ?Z#$xB Ԓ <D?# #xB Ւ <D?4 $4 )%`2 ֒ c $ ? #4 $ ג Zג ?X  ؒ Zؒ ?DZ@  r2 ڒ 6?} !  ے Zے ?   r2 ݒ 6? !R  ޒ Z<ޒ ? s!4  < ߒ      BWCDEdF, @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||.;J,_JhK<\|p:~E\P:GOsF-W@         #  T5?b E % 5  T4?N    4`  9 #  T 2  N? {?B   fD? 9l0b !&- I 3" % T<% ?F ) , < 0 T70 ?"%B)H 7`  -K C/ C#  & '2  N? -K C/   Z ?I - /        B`CRDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s`R@   $ &/2  N?@h$; c&)  Z ?y$ D&)   TI ?"3 #1 I` 4  # ! $Z2 B S  ?4  OrB  6D? vOrB  6D?OZ2  S  ?vOrB  6D?5 5 Of"  s *G?"(OB  ZD? " (5  TH ?! "< H  TG ?$ # $> G`  -C/ B# &'2   N? -C/5   ZE  ?-/5 E        BbCYDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||tbY@   $&D2  N?8h$3c&(  ZD ?r$ D&( D  TC ?#8$D C  TB ?("#D B` ,. A# \%W '2  N?,.>  ZA ?V-.> A       B_CLDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||r_vL@  S$s %N2  N? !$&1  Z@ ?D$%1 @  T? ?".#N ?` 4  # !fo$Z2 B S  ?4  PrB  6D? vPrB  6D?PZ2  S  ?vPrB  6D?5 5 Pf" ! s *G?w"&(6B " ZD? " (6 # T># ?!L"I > $ T=$ ?      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~#$C =` Y#,%. @# U$%O&'2 ' N?Y#,%.A ( Z;( ?#V-Z%.A ; )      B_CPDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s_vP@  "R$l&%C2 + N?!!$"& , Z:, ? T5> ?R*}!+ 5` r %!! 7# p!(&- = T6= ?r %!! 6xB ? <D?.ex=b b%%o0 z 3" K TK ?)(o0 `  -K C/ L#  d+`-2 M H? -K C/ N TN ?I - /  O      B`CRDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s`R@   *Y{+2 P N?) + Q Z3Q ? W* + 3 R TR ?|' ( ` 4  S# b%% (Z2 TB S  ?4  rB U 6D? vrB V 6D?Z2 W S  ?vrB X 6D?5 5 t` <A`: # d&$.f" Y s *G?<A`:B Z ZD?A VA : [ T[ ?% &  \ T\ ? '* `  -C/ ]# d+`-2 ^ H? -C/ _ T_ ?-/  `      BbCYDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||tbY@  *T}+2 a N?)+ b Zb ?W*+  c Tc ?Y(<*  d Td ?';( ` ,. e# )+$-2 f H?,. g Tg ?V-.  h      B_CLDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||r_vL@  )f2+2 i N?){+ j Zj ?*`+  k Tk ?&' ` 4  l# p%3(Z2 mB S  ?4  rB n 6D? vrB o 6D?Z2 p S  ?vrB q 6D?5 5 t` J)n$3 # r&%!.f" r s *G?J)n$3B s ZD?O<O3 t Tt ?%&  u Tu ?() ` Y#,%. v# "#+%-2 w H?Y#,%. x T2x ?#V-Z%. 2 y      B_CPDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s_vP@  !)_%3+2 z N?)!{+ { Z&{ ? *!`+ & | T%| ?"($* % } T$} ?&I!' $~ ~ B?&)    C ^5F` !`@8`T!`T`'`TZZ! M+M ,N2  3 k lB  0D      C ^5F` !`@8`T!`T`'`TZZ!U+;,N2  3 k lB  0D      C ^5F` !`@8`T!`T`'`TZZ!+P+N2  3 k lB  0D      C ^5F` !`@8`T!`T`'`TZZ!!+N"+N2  3 k lB  0D  "       BECDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| Evb06y# @   - ,r -   T" ?\ ,F -  ""       BFCDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| F| b06y# @   &,l-  TF ?z,W- F"       BQCDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| J%e ; m4Q? @   tE,3-  T# ?d*,N*- #"       BQCDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| J%e ; m4Q? @   s"E,2#-  T! ?!V,_"c- !B7b !'" ] 3" Շ Z~ Շ ?!z'"b ~  և T} և ? n }  ׇ T| ׇ ?| r |  ؇ T{ ؇ ?=dt {  ه Tz ه ?7t z ` % ڇ# e  ~ ۇ B ?%t ܇ Ny ܇ ?&t y B ݇ ZD?l  tB އ TD? tB ߇ TD?\$t` h   # aMl   Nx  ?h l t x "  H ?dh  tB B ZD?tB B ZD?tB B ZD?$$t  Tw  ?"7 t w   Tv  ?x$7't v ` e   # ~  B?e  t  Nu  ? Gt u ` x # ~  B?xt  Nt  ?G7t t ` 4 # !&~  B?4t  Ns  ?hGt s   Tr  ?t r   Tq  ?w q B B ZD?wB B ZD?wB B ZD?wB B ZD?wB B ZD?!!wB B ZD? & &w  Tp  ? w p   To  ?w o   Tn  ?"#w n   Tm  ?#%w m   Tl  ?( z l   Tk  ?~w k   Tj  ?r~w j   Ti  ?~w i   Th  ?~w h   Tg  ?*"<#~w g   Tf  ?%&~w f   Ta  ? x a    T`  ?=dx `    T_  ? x _    T^  ?=Odx ^    T]  ?R x ]    T\  ?=j dx \   T[  ?m  x [   TZ  ?(!=#dx Z   TY  ?*!# x Y   TX  ?$='dx X   TW  ?$' x W   TV  ?# " V   TU  ?[ }" U   TT  ?[ " T   TS  ?<[ " S   TR  ?V[ % " R   TQ  ? [ #" Q   TP  ?q$[ ?'" P   TO  ?i)I O   TN  ?.i I N   TM  ? \ " M B B ZD?VV  TL  ?! L ` !@& # 9 ^~   B?!@& ! NK ! ?!G% K B "B ZD?9 9 B #B ZD?YY $ TJ $ ?Y 1 J  % TI % ?#0 I  & TH & ?& 8 | H  ' TG ' ?| G  ( TF ( ? > e| F  ) TE ) ?   | E  * TD * ?>ue| D  + TC + ?x y C  , TB , ?b\ 1"s B  - TA - ?S3` A  . T? . ?$i'I` ?  / T> / ? ` > B 0 ZD?  `lB  0D?,&lB  0D?,&$b  H%#  3" r Z r ?X H%#   r Z r ?X{ Z   r Z r ?X2 i5   r Z r ?X2 T i!   r S ~ r2 @?X !!  B r  `D|?Xi B r  `D|?XiV VB r  `D|?X~!&$ r T PFPFr?XM"$   r T PFPFr?X9    r T PFPFr?X 9 k!  $` U  ! r# X 2 +!B r TD?U U !B r ND?U  B r ND?U ! ! r Z r ?X   `  L F  r# X6 2 B r  fD+*? L  B r  `D+*? F  r Z r ?X$   r T PFPFr?X!b"   r T PFPFr?X   1 3 W?XAlgorithm AArial Black&($(b  J%  3" s Z s ?S J%   s Z s ?S} s     s Z s ?S h q    s Z s ?S q-   s Z s ?SK %   B s  `D|?SkW!W s T PFPFs?SY "  B s ZD?S aB s TD?S ; ; B s TD?S a aB s  `D|?Sn( $( B sB  fD|?S#! #B sB  `D|?S  $B s C xD|?S   s T PFPFs?SZ   s T PFPFs?S Zp   s Z s ?SQ4  ``    s# S  B s  fD+*?  B s  `D+*?  B s  fD+*?   s Z s ?Sn 0   s T PFPFs?SY "   "b !'m&  3" ; Z9 ; ?f!'m& 9  < Z8 < ?f'(& 8  = Z7 = ?fM R  7 B ?  `D|?f\0 0  @ T6 PFPF@?f 6 B E  `D|?f\a a F T5 PFPFF?f 5 B L  `D|?f\! ! M T4 PFPFM?f !! 4 B Q  `D|?fR$=$ R T3 PFPFR?f>$!% 3 B S ZD?fx x$B T TD?fx B U TD?fx B W  `D|?f\  X T2 PFPFX?fk 2 r` % j # f ,B AB  fD|?Ntjt  B BB  `D|?N%  B C C xD|?N: :  r` ,   # f ]$ B GB  fD|?Nyy; B HB  `D|?N, 77 B I C xD|?N@ "@   r` , 9# # f !$#B KB  fD|?Nx x`" B NB  `D|?N, \"\" B O C xD|?N@ G"@ 9# r` % @ # f zB YB  fD|?Nt@tB ZB  `D|?N% B [ C xD|?N: : B \ TD?fx B ] TD?fxD DB ^ TD?fxv vB _ TD?fx! !B ` TD?fx$ $B a TD?fx B b TD?fx  c T1 c?f;  1  d T0 d?f; ! 0  e T/ e?f; S  /  f T. f?f;  .  g T- g?f; 5 -  h T, h?f; d" ,  i T+ i?f; $% +  j T* j?f; Y *  l 3 W?fCLONE HEREArial Black& # B n  `D|?f   o T( PFPFo?fP ]3  ( B pB  fD|?f iB qB  `D|?ft eeB r C xD|?f P B k T) k?f; 7  ) b y %# ڢ 3"` g:s#O r# X!A!B r ZD|?gLs#OB r ZD|?g:s#:B r TD? * B r TD? !* !`  L F  r# . * !B r  fD+*? L  B r  `D+*? F  r ZO r ?y %# O  r ZP r ?' n  P  r TQ r? h Q  r TR r? h"" R B r  `D|? "$ r TT PFPFr?w"e$J  T  r TU PFPFr?.! U  r TV PFPFr? !! V B r ZD?  ! r ZW r ?  W  r ZX r ?v6|$ X  r TY PFPFr?!5" Y  r TZ PFPFr?,5  Z   3 W?Algorithm BArial Black^$ r S ~S r2 @?Z!"! S b  w"  3" "t Z} "t ?a w" }  #t Z~ #t ?aR   ~ B &t ZD?a B 't TD?a?a ?B (t TD?aa B )t  `D|?a *t T PFPF*t?az!f   +t 3 W?aCLONE HEREArial Black) ![ $t T $t?a     %t T %t?a )  sb &  3"B y  fD8c?d>0B y  fD8c?d( D.B y  fD8c?dI D= . x Z@ x?d  @  x Z? x?ds _~  ?  x Z> x?d  > B x # lD?d@$ @l  x Z< x?d$ k  <  x Z; x?d    ;  x Z: x?d + 6 :  x Z9 x?ds ~  9  x S ~8 x2 @?dgD U 8  x Z7 x?d   7  x Z6 x?d   6  x Z5 x?d 5 ( x      BCTDE(F 8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||d OD"!PKT @   , @ x H?d 0 x Z4 x?dLg&  4  x H?d S) (B xB  fD8c?d k f # &@ # x3 df G ) x Z3 x?# &w # 3 B xB  `D8c?# " B xB  `D8c?#  B x  `D8c?# " _B x  `D8c?# " B x  `D8c?# ]  x C x2 x2 @? j  2  x T1 x?^ @  1  x T0 x?^ &@ % 0  x T/ x?^ @  / B xB  fD8c?dG f  % x3 dD  x Z. x? \ . B xB  `D8c?( JB xB  `D8c?8B x  `D8c?8B x  `D8c?6JB x  `D8c?8B1 x C x- x2 @? i -  x T, x?C= %< ,  x T+ x?C% +  x T* x?C(%' *  x  `) x?d(U ) B xB  fD8c?dS#B xB  fD8c?dB x  fD8c?d9#B x  fD8c?d# x S ~( x2 @?d( (  x Z& x?d#d> &  x Z% x?d#z % B xB  fD8c?dG  x  `$ x?d(  $ B xB  fD8c?dG B xB  fD8c?d9  B x  fD8c?d- B x  fD8c?d   x S ~# x2 @?df9  #  x Z" x?dY3  "  x Z! x?do  !  x S ~ x2 @?d-D j    x Z x?d T    x Z x?d" T    x Z x?dT   x Zx?dj   x  `x?dD"ka   B xB  fD8c?dD0X B xB  fD8c?dD% I B x  fD8c?dDI 0 B x  fD8c?dDm 0X B x  fD8c?dDI f  x S ~x2 @?d\&   x Zx?dg%s   x Zwx?dg %  w x Zvx?dg %  v x  `ux?dD k uB xB  fD8c?dD 0 B xB  fD8c?dD B x  fD8c?dD 0 B x  fD8c?dDf  x S ~tx2 @?d  t x Zsx?dg" %   s x Zrx?dgH%!  r x S ~px2 @?d" p x Zox?dJ}   o x Znx?dJ    n x Zjx?dJL& j x  `ix?d%L iB xB  fD8c?d%B xB  fD8c?d%B x  fD8c?d%B x  fD8c?d%B x  fD8c?d%G x S ~hx2 @?d h x Zgx?dH g x Zfx?dH$ f x Zex?dHK$ e x S ~dx2 @?d# d x Zcx?dN ~  c x Zbx?dN  b x Zax?dNM ' a x ZPx?dl$)  P x ZOx?dlK) $ O x S ~Nx2 @?d N x ZMx?da  M x ZKx?da  K x ZJx?da? $ J x S ~Ix2 @?d!#<"( I x ZHx?dr!0#~ $ H x ZGx?dr! 0# $ G x ZFx?dr!M0#'$ F x ZEx?d!$M#$ E x ZDx?d!KM#$$ D x ZCx?d!M#$ C x ZBx?d!@M#$ B x S ~Ax2 @?d !rF"& A x Z@x?d!M#( @ x Z?x?d!M#- ? x S ~=x2 @?dr$#%{3 = x Z<x?d$&~ . < x Z;x?d$ & . ; x Z:x?d$M&'. : y Z9y?d%$&. 9 y Z8y?d%K&$. 8 y Z7y?d%&. 7 y Z6y?d%@&. 6 y Z5y?d$&. 5B  y  fD8c?d8 g8 -B  y  fD8c?d g -B  y  fD8c?dk gk -B  y  fD8c?dg-B  y  fD8c?dg-B y  fD8c?d8 -8 -B y  fD8c?dz -z -B y  fD8c?d--B y  fD8c?d--B y  fD8c?d--B y  fD8c?d%  *B y  fD8c?d%1 1 *B y  fD8c?d%s s ,B y  fD8c?d%  ,B y  fD8c?d%,B y  fD8c?d  .B y  fD8c?dM M .B y  fD8c?d.B y  fD8c?d  ! .B y  fD8c?d ] !] .B y  fD8c?d !.B  y  fD8c?doo.B !y  fD8c?d.B "y  fD8c?d.B #y  fD8c?d !.B $y  fD8c?d !.B %y  fD8c?d a!a.B &y  fD8c?d) !.B 'y  fD8c?d !.B (y  fD8c?dM#r$.B )y  fD8c?dM#r$.B *y  fD8c?dM#r$#B +y  fD8c?dM#r$B ,y  fD8c?d0# r$ B -y  fD8c?d0#] r$] B .y  fD8c?d0#r$B /y  fD8c?dM#fr$fB 0y  fD8c?dM#r$ 2y Z32y?d(9CB 3 ϔ Z2ϔ?dP) 2drb "&4 B 3"B ax  `D8c?$!%B Rx  `D8c?}2)U>+B Tx  `D8c?f[&U( w Tw?:" %  w Tw?X "#  w Thw?&( ) hB w  fD?bJ%b' w Tgw? %& ' g w Tfw?#$ fB wB  `D8c? 7) 7).` , &I # w#  'X \+B wB ZD8c?, + B wB ZD8c?,  B w ZD8c?, + _B w ZD8c?, + B w ZD8c?, f  w C xdw2 @? j  dZ , &I # w , &I # w Tcw?, & # c w Nbw?g I  b w Naw?g &I % a w N`w?g I  ` w T_w?)- / _B wB  `D8c? . . w Z^w? e, / ^B wB  `D8c? ,k .B wB  `D8c? b. .B w  `D8c? -k .B w  `D8c? . ^/ w S ~]w2 @?9 , / ] w T\w? ,Z - \ w T[w? .Z . [ w S ~Zw2 @?&>/ Z w TYw?'Z_( Y w TLw?(Z) L w Tw?-].  w Tw?-q3 4 B wB  `D8c? `2 3 w S ~w2 @?.'f{4  w Tw?'o(  w Tw?() .` , &I # w# U$.n(B wB ZD8c?, + B wB ZD8c?,  B w ZD8c?, + _B w ZD8c?, + B w ZD8c?, f  w C xw2 @? j  Z , &I # w , &I # w T~w?, & # ~ w N}w?g I  } w N|w?g &I % | w N{w?g I  {.` , &I # w# U ).a-B wB ZD8c?, + B wB ZD8c?,  B w ZD8c?, + _B x ZD8c?, + B x ZD8c?, f  x C xzx2 @? j  zZ , &I # x , &I # x Tyx?, & # y x Nxx?g I  x x N%x?g &I % % x N$x?g I  $ x S ~#x2 @?$. #  x T" x?f$% "  x T x?f%&   x T x?i*!+ .` , &I #  x# ./3B  xB ZD8c?, + B xB ZD8c?,  B x ZD8c?, + _B x ZD8c?, + B x ZD8c?, f  x C xx2 @? j  Z , &I # x , &I # x Tx?, & #  x Nx?g I   x Nx?g &I %  x Nx?g I   x S ~x2 @?$3  x Tx?s$,%  x Tx?E"r# .` , &I # x# " &B xB ZD8c?, + B xB ZD8c?,  B x ZD8c?, + _B x ZD8c?, + B  x ZD8c?, f  !x C x!x2 @? j  Z , &I # "x , &I # #x T#x?, & #  $x N$x?g I   %x N%x?g &I %  &x N&x?g I  .` , &I # 'x# r' +B (xB ZD8c?, + B )xB ZD8c?,  B *x ZD8c?, + _B +x ZD8c?, + B ,x ZD8c?, f  -x C x-x2 @? j  Z , &I # .x , &I # /x T/x?, & #  0x N0x?g I   1x N1x?g &I %  2x N2x?g I   3x S ~3x2 @?[!"",  4x T4x?!###  5x T5x?!Q$#.%  6x T6x?!;)#* .` , &I # 7x#  -#?2B 8xB ZD8c?, + B 9xB ZD8c?,  B :x ZD8c?, + _B ;x ZD8c?, + B x , &I # ?x T?x?, & #  @x N@x?g I   Ax NxAx?g &I % x Bx NwBx?g I  w Cx S ~vCx2 @?i$"%2 v Dx TuDx?%#&# u Ex TtEx?%Q$&.% t Fx TsFx?%;)&* sB Gx  `D8c?X ''B Hx  `D8c?Z 7)7)B Ix  `D8c?X **B Jx  `D8c?Z B-B-B Kx  `D8c?Z ..B Lx  `D8c?]...B Mx  `D8c?ZN).N)B Nx  `D8c?]'.'B Ox  `D8c?0*1.*1B Px  `D8c?0M2.M2B Qx  `D8c?03.3B Sx  `D8c?i..1B Ux  `D8c?. % %B Vx  `D8c?.[&[&B Wx  `D8c?.''B Xx  `D8c?.))B Yx  `D8c?.>+>+B Zx  `D8c?.,,B [x  `D8c?! % %B \x  `D8c?![&[&B ]x  `D8c?!]+]+B ^x  `D8c?]0]0B _x  `D8c?11B `x  `D8c?22B bx  `D8c?,^&~) B cx  `D8c? 3+ 0 B dx  `D8c? v#[!v#B ex  `D8c? $[!$B fx  `D8c? %[!%B gx  `D8c? J([!J(B hx  `D8c? )[!)B ix  `D8c? *w!*B jx  `D8c?#v#i$v#B kx  `D8c?#$i$$B lx  `D8c?#)i$)B mx  `D8c?#.i$.B nx  `D8c?#0i$0B ox  `D8c?#L1i$L1 px Trpx?v*/+ r qx Tqqx?s%,& q.` , &I # rx#  %0x4B sxB ZD8c?, + B txB ZD8c?,  B ux ZD8c?, + _B vx ZD8c?, + B wx ZD8c?, f  xx C xpxx2 @? j  pZ , &I # yx , &I # zx Tozx?, & # o {x Nn{x?g I  n |x Nm|x?g &I % m }x Nl}x?g I  l w Tw? ..   є Tqє?/ 2 qb  $!  3"  BB CDEFw@g<V B @  L  TE PF ?\,Vn E `     #  e   NF PF ?9 -  F 2  H ?   ` ^& e(  # $  NG PF ?$' (  G 2  H ?^& e( ` O& V( # T!  NH PF ?' ' H 2 Á H ?O& V( ā TI PFā ?3  I   BB CDEFw@g<V B @  t Sn : '" # 3"*f   3 : `2 B c $ ?xB  <D?H xB  <D?  `2  c $ ?H  xB  <D?  T]  ?D` ` ] "   NG?:6'"B    `D1?;'"   NG_ ?N&f  N   3 H F 2   H? N   T\  ?   \   T  ? mY   f  N  3  m~k2  H? N   T  ?    f  j2 3 m\f  N  3 l j2  H? N   T  ?    f  N  3 422  H? N   T  ?    f   3  Y`2 B c $ ?xB  <D?H xB  <D?  `2  c $ ?H  xB  <D?   T  ?H    B !  `D1?B "  `D1?TTf  j2 #3 3m"f  N  $3 l j2 % H? N  & T & ?    f  N  '3 422 ( H? N  ) T ) ?     * ~BCDEFk'@   X < + < +F     , < , fu U   - ~BCDEF #lNJy@     . ~BCDEFj)@  L< / < /    0 < 0tf9U   1 ~BCDEF'lSE@   2 ~BCDEFk*@  $ G'!< 3 <X 3r #7# X  4 <V 4~fC U V  5 ~BCDEF #lNEy@    6 TU 6 ?? [ U  7 TT 7 ?}?'[ T  8 TS 8 ?f?[ S " 9 NG_ ?Jr& f  N  :3 E 'C %2 ; H? N  < TR < ?   R  = TP = ? V  P f  N  >3 } {2 ? H? N  @ TO @ ?   O f  j2 A3 \%f  N  B3 l j2 C H? N  D TM D ?   M f  N  E3 422 F H? N  G TG ?   f   H3 * `2 IB c $ ?xB J <D?H xB K <D?  `2 L c $ ?H  xB M <D? N TN ?H . J B O  `D1?J B P  `D1?lJl f  j2 Q3 3"%f  N  R3 l j2 S H? N  T TT ?   f  N  U3 422 V H? N  W TW ?    X ~BCDEFk'@     Y <YC {j  Z <Z       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~r   [ ~BCDEF #lNJy@   ] _ \ ~BCDEFj)@   ] <] {j  ^ <^t9  _ ~BCDEF'lSE@  X_ ` ~BCDEFk*@  $ '! a <ar 7#}  b <b~C   c ~BCDEF #lNEy@  ] _ d Td ?   e Te ?}'  f Tf ?f  g  0e0e    BCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| W7IM1tPAob @      h <hL t  i  0e0e    BCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| W7IM1tPAob @   n  j  0e0e    BCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| W7IM1tPAob @   n  k <kt  l <lt  m TPF@8m?  8f    n3  ?l N2 o 3 k lB p 0D  8f    q3 +? N2 r 3 k lB s 0D  8f    t3 JeN2 u 3 k lB v 0D  8f    w3   N2 x 3 k lB y 0D  8f    z3 C%N2 { 3 k lB | 0D  8f    }3 }N2 ~ 3 k lB  0D    TPF@8?!%   TPF@8?   T0PF@8?  0  T-PF@8?!%2 -  T,PF@8?  ,B  HDԔ?l$   T+ ?x 6'" +:rn t'~0 # 3"+B B HDԔ?h%#!B B HDԔ?#(,&M/f   3  `2 B c $ ?xB  <D?H xB  <D?  `2  c $ ?H  xB  <D?  T* ?l  *"  NG?'~0   0e0e    BCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| W7IM1tPAob @    ) [  < t   <Ch B   `D1?&"  NG_ ? E%f  N  3  Aq $2  H? N   T ?     T ?   f  N  3  2  H? N   T ?   f  j2 3 u$f  N  3 l j2  H? N   T ?   f  N  3 422  H? N   T ?   f   3  z `2 B c $ ?xB  <D?H xB  <D?  `2  c $ ?H  xB  <D?  T ? ~.  B   `D1?B   `D1?<<f  j2 3  "$f  N  3 l j2  H? N   T ?   f  N  3 422  H? N   T ?     ~BCDEFk'@  G ;  <q s   <     ~BCDEF #lNJy@    v  ~BCDEFj)@  MG  <ws   <   ~BCDEF'lSE@   }v  ~BCDEFk*@     < "   <@   ~BCDEF #lNEy@  ~] v  T ?M    • T• ?S  Õ TÕ ? f  N  ĕ3  wn Z 2 ŕ H? N  ƕ Tƕ ?    Ǖ TǕ ? H U f  N  ȕ3  H+2 ɕ H? N  ʕ Tʕ ?   f  j2 ˕3 uHZ f  N  ̕3 l j2 ͕ H? N  Ε TΕ ?   f  N  ϕ3 422 Е H? N  ѕ Tѕ ?   f b@r&, ҕ3  E%>!" ӕ NG_ ?b`r&,f   ԕ3 b@< `2 ՕB c $ ?xB ֕ <D?H xB ו <D?  `2 ؕ c $ ?H  xB ٕ <D? ڕ Tڕ ? .  B ە  `D1?;!B ܕ  `D1?<<;!f  j2 ݕ3 H "Z f  N  ޕ3 l j2 ߕ H? N   T ?   f  N  3 422  H? N   T ?     ~BCDEFk'@  D 9  <n     < 3    ~BCDEF #lNJy@      ~BCDEFj)@  M G  <w   < 3    ~BCDEF'lSE@     ~BCDEFk*@     <  "    < @3    ~BCDEF #lNEy@  ~]   T  ?M  )    T  ?S)    T ?)    0e0e    BCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| W7IM1tPAob @    b)   0e0e    BCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| W7IM1tPAob @   s H  <`x 8f    3   ^N2  3 k lB  0D  8f    3 ^N2  3 k lB  0D  8f    3 EiN2  3 k lB  0D  8f    3  N2  3 k lB  0D  8f    3   N2  3 k lB  0D  8f    3 [ 1 N2  3 k lB  0D  B   `D1? #' #"   NG?&G"f    3  `2  B c $ ?xB   <D?H xB   <D?  `2  c $ ?H  xB  <D?   0e0e    BCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| W7IM1tPAob @    Y  <]'   T ?     T ? z$D % f  N  3 "&#'2  H? N   T ?   f  N  3 #'%)2  H? N   T ?   f  N  3 $p!m&2  H? N   T ?   f  N  3 "+#g-2  H? N   T ?   f  N   3 $-%.2 ! H? N  " T" ?   f  N  #3 *\!+2 $ H? N  % T% ?   f #-!& &3  L, .2 ' H?#-!& ( T( ?3$*% 8f    )3  ;. /N2 * 3 k lB + 0D  " , NG?< #&/ - ~BbC= DEFb = > bp @   #$. . ~BCDEF ,Di0@  D 'q, / </&'  0 ~BC DEF_= @   #"Z- 1 ~BCDEFcIlF^ @  #% 2 ~BCDEF'[i@  #!k' 3 ~BCbDEF&Lb@  \##) 4 ~BCDEF v 5S@  #w+ 5 <5d$%  6 <6?0&f ,'  7 <7'*!(  8 <8Z)*  9 <9(+O ,  : <:-!.  ; T; ??U!$b" B <B HDԔ? !B =B HDԔ?!*$-t4h [$ ϖ 3"1 Ж  p~ЖA* ?Wide upward diagonal[$  і  іA* ?Wide upward diagonalR    Җ  ҖA* ?Wide upward diagonal R R   Ӗ  ӖA* ?Wide upward diagonalR R  ` R. Ԗ#  0 B Ֆ Np~D?R.B ֖B Np~D?R` ~'f) ז#  _)B ؖB Np~D?~')B ٖ Np~D?|~'f) ږ  ږA* ?Wide upward diagonal {O{  ۖ  ۖA* ?Wide upward diagonal{N{  ܖ  ܖA* ?Wide upward diagonala{{  ݖ  ݖA* ?Wide upward diagonal({{  ޖ 3 rp~ޖ @g ? \  ߖ  ߖA* ?Wide upward diagonal <    {A* ?Wide upward diagonal? {  3 rhp~ @g ? e S  h   gA* ?Wide upward diagonal 231 g   WA* ?Wide upward diagonal2y1 W  3 QA* ?Wide upward diagonalG$R  Q  3 0A* ?Wide upward diagonal 2$5 0   /A* ?Wide upward diagonal /  3 )A* ?Wide upward diagonal$$ )   ^    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||v @Y 0    ^    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||v @Y4   ^    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||v @P   (A* ?Wide upward diagonal < (   'A* ?Wide upward diagonal { '   &A* ?Wide upward diagonal_ &   %A* ?Wide upward diagonal? %  3 r$p~ @g ?! [C $   #A* ?Wide upward diagonal`   #   A* ?Wide upward diagonal     A* ?Wide upward diagonal:     A* ?Wide upward diagonalv ` ~'f) # )B B Np~D?~')B  Np~D?|~'f)   A* ?Wide upward diagonal    A* ?Wide upward diagonal    A* ?Wide upward diagonal8     A* ?Wide upward diagonal_  p ` C " # ` ` /1 # !"B B Np~D?/*1B  Np~D?/1B  Np~D?C C B  Np~D?` N<9n$m; # "B B Np~D?N<9m;B  Np~D?<9n$m;` N<9n$m; # "B B Np~D?N<9m;B  Np~D?<9n$m;` N<9n$m; # "B B Np~D?N<9m;B   Np~D?<9n$m;` N<9n$m;  # "B  B Np~D?N<9m;B   Np~D?<9n$m;(Ah @ $%1 0 3"0" 1 HG7?@ $%1 2 T 2 ? N%e &  \` 2,3#4 3#  ( )l2 4 0?23#4xB 5 <D?z,33 6 T6 ? E%`& 2 7 H? ' ) 8 T8 ?A 0( $) 2 9 H?t%!' : T: ?W& ' 2 ; H?#q+/%- < T< ?s# ,$,  = N= ?(D ) ~ > 6> &$( 2 ? H?@.!T0 @ T@ ?\. / ~ A 6A7 /$1  B      BVC6DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||VH9V;J6@   $ ' C NC ?F'O(  D ND ?h/r0 " E      B CDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| e_Kc - @   :'G)" F      B8CDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| <Tl 2 8 @   )N#+ G      B CDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||/(_q @  i*/" H      BJCDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| T  1jJ @   O*+#-" I      B CvDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| Kq  fX v @   *+#-, J NJ ?*D +  K NK ?G,D P- 2 L H?z&( M TM ?'N( 2 N H?e*y, O TO ?F+):,  P  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||-H$@   ['!( Q  0e0e    BC@DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||>$xt8@@   )* R NR ?o&(x'  S NS ?(() 2 T H?%' U TU ?&&' 2 V H?(* W TW ?E)9* 2 X H?+- Y TY ?A,4-  Z NZ ?%&  [  0e0e    B~CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||;:b~@  &"' \  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||dHSye@  ') ]  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||%X"n &by@  +0, ^  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||DVu?5n@  F)+ _ N_ ?'(  ` N` ?!)+*  a Na ?+, r2 b 6 Ԕ?W ' F*r2 c 6 Ԕ?%,r2 d 6 Ԕ?9m'/~h f &$2 e 3"%" f HG?h '$2 g N g ? R( )  `   h# f &l7+Z2 iB S  ?rB j 6D?H rB k 6D?  Z2 l S  ?H  rB m 6D? n N n ?> &$ '  B o ZD1?r ,$,\` 2,3#4 p# <[*t+l2 q 0?23#4xB r <D?z,33 s      BCUDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||OBhDU@  )r) t N t ?b(i)  2 u H?(c+ v T v ?_})g*  2 w H?u(" q+ x T x ?)*   y N y ? 3. w/  \` 2,3#4 z# B>0W1l2 { 0?23#4xB | <D?z,33 }      BCsDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||m[b[s@  >//2 ~ H? .D1  T  ?e_/m0  2  H?{.( T1  T  ?s/0    N  ?-HN/         BCBDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| BB+B@  w*r*  N  ? *B,    N  ?0A2         BCBDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| BB+B@  >0l0.h >l!F  3"'  N  ?0   `   # >l, *Z2 B S  ?rB  6D?H rB  6D?  Z2  S  ?H  rB  6D?  N  ?tb     N  ?    "  HG?>!EB  ZD1?P=!?B  ZD1?HY!\\` 2,3#4 #  4 Il2  0?23#4xB  <D?z,33       BCUDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||OBhDU@  ^c  N  ?dPz  \` 2,3#4 #   2l2  0?23#4xB  <D?z,33       B CuDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||ucJ 4 ?@  <o  N  ? c         B CDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(d ] 6@   h\  N  ?"t    N  ?   \` 2,3#4 #   l2  0?23#4xB  <D?z,33       BCsDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||m[b[s@  d f2  H? g6  T  ? M  2  H?E  T  ??`L  2  H? V@  T  ?  q  2  H?d  T  ?Yh  2  H?R  T  ?  2  H? Cl  T  ?  \  2  H?P  T  ?E Ro    N  ?T         BCBDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| BB+B@  dO  N  ?XoK    N  ?w          BCBDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| BB+B@  ^,   0e0e    B@CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@5u*00<@  ^  F  N  ?n K   (Ah @ $%1  3""  HG7?@ $%1  T  ? N%e &  \` 2,3#4 #  ( )l2  0?23#4xB  <D?z,33  T  ? E%`&  2  H? ' )  T  ?A 0( $)  2  H?t%!'  T  ?W& '  2  H?#q+/%-  T  ?s# ,$,    N  ?(D )  ~  6  &$(  2  H?@.!T0  T  ?\. /  ~  6 7 /$1         BVC6DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||VH9V;J6@   $ '  N  ?F'O(    N  ?h/r0  "       B CDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| e_Kc - @   :'G)"       B8CDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| <Tl 2 8 @   )N#+       B CDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||/(_q @  i*/"       BJCDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| T  1jJ @   O*+#-"       B CvDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| Kq  fX v @   *+#-,  N  ?*D +    N  ?G,D P-  2  H?z&(  T  ?'N(  2  H?e*y,  T  ?F+):,     0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||-H$@   ['!(   0e0e    BC@DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||>$xt8@@   )* ™ N ™ ?o&(x'   Ù N Ù ?(()  2 ę H?%' ř T ř ?&&'  2 ƙ H?(* Ǚ T Ǚ ?E)9*  2 ș H?+- ə T ə ?A,4-   ʙ N ʙ ?%&   ˙  0e0e    B~CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||;:b~@  &"' ̙  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||dHSye@  ') ͙  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||%X"n &by@  +0, Ι  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||DVu?5n@  F)+ ϙ N ϙ ?'(   Й N Й ?!)+*   љ N љ ?+,  r2 ҙ 6 Ԕ?W ' F*r2 ә 6 Ԕ?%,r2 ԙ 6 Ԕ?9m'/ؠh  f"' ՙ 3" ֙  0e0e    B>CDEdF,Z @  8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||>4 XPg3UU E!]yq6yA "wA@          י # l יZ t1?pO   ؙ # l ؙZ t1?$ '   ٙ  0e0e    BCDEXF(Z @  8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||DXl^wy}@I}uw95(w4@       f":xe`  {N 3 ڙ# j ۙ .BCDEhFr  ""<4[I|[kwwgTu@T-5   68@`  (| ܙ  @BC}DEFA88]h y!9Q?(0G^u 9jB}=x7p0h)^!SI?6 %.:ESV\4bHdTaD^8\,[%Z!YY]rt@`Zig zagc  B ݙ BCDETF^|fN7!  #7Nf|,0@` { * ޙ BCZDEHFRNT<#  #:R XRXZ YTN&(@` ~  ߙ BCWDE4F> )>M WA)   @` ~ j  .BCDEhFr r[D-  -D[r68@` {   BoCjDE0F: j io f]\]bhj ij@`    BC!DE0F: ! !@`}  j  .B<CRDEhFr  '2!='E-M3R<G9C3;,3%)    68@`h    BC)DE0F:  )"   @`` n j  .B\CDEhFr\ VG<0'   '0<GTN TY\ [V\ 68@`b  *  BCLDEHFRGE8$ &:EDEJLJEG&(@`    BC1DE4F>  1. @`    BCDE4F>     @`    BC6DEF,,|B|qcT$E(8-*034 5652.'u ,E `  ;Shw #/9@|BZ\@`J  1j  .BC0DEhFr( B'\*v.0.- v \D-   68@`{  4  BxCDE0F: xx@`I ~ &  BC DE0F:      @`G P #  BCDEF%%whS;  ` E ,  ,E`;ShwLP@`J  2  B&CPDELFVP NE"8&*&!*4< @CP(,@`  H  # + T /  BC\DE0F:  \\   @`P W /  BeCDE0F:  ee   @`( T   BC[DE0F: KSS[SX[XSK@`( / 2  BeCDE0F: U]]e]c ec]U@`+ +W 2  c DA Narrow vertical 0 3  BCrDE0F: rr@`- 5 3  BCDE0F:  @` 0   BCrDE0F: bjjrjprpjb@`  7  BCDE0F: @` 05 7   BCDEFAaa&<Sj)7H[r @Rfz  !4GYixd>r}bcQL>6+"suRc3QGB?; 71+$$-5;BCELT _m|vdR)@>0U!m @`Zig zag) J /  BFC!DEF%%FF |eTC6+k!T>(* @Xo(7I\s F!F!FLP@`(  3  B?CDEF**11"!8ObsxbM:&&:Odzm YB0(? ? ? ?;611VX@` C 3  BCDEF%%  0-D=WNj`|v?ce?muW`BM19!'  LP@` 2N j  .BWCDEhFr ~ }k(X4F?6G'NSWIE@9 1/(?Rbtstz} } ~68@`  +  BCADEF%%AA "/=M^rp^N?1% &4yCfUSiB}1!  AAALP@`' %   VBCDEF??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`  1  BCDEF" @`    BC DEF"  @`    B C DEF"  @`  *  B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`  j  .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`  j  .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`  *  B%CADEHFRA @2%!$ )2127<@ @A&(@`  4  BTCDE0F: TT @` , 4*  BCDEHFR        &(@` + 3*   BC@DEHFR 0@5, &(@`  2   B!CDE0F: !! @`  *   B CKDEHFR$:K?3 $  &(@`  *   BCDEHFR       &(@`  j   .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`    BCLDE4F>  "9LA4 " @`  2  BpCDELFVpmcUD2  2DUcmpp(,@`    BCDEF"@`    B CDEF"   @`    B.CDEF"....@`    BCDEF" @`  j  .B8CFDEhFr A E>6!-'$-25 8 -)$ !$- 59=9>DF E A68@`    BCDE4F>      @`    VBCDEF[G??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`  1  B C DEF"  @`  *  B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`  j  .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`  j  .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`  *  B%CADEHFRA @2%!$ )2127<@ @A&(@`  4*  BCDEHFR        &(@` + 3*  BC@DEHFR 0@5, &(@`  2  B!CDE0F: !! @`  *  B CKDEHFR$:K?3 $  &(@`  *   BCDEHFR       &(@`  j ! .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`   " BCLDE4F>  "9LA4 " @`        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ # BCDEF"@`   $ BCDEF"@`   % BCDEF"@`   & B CDEF"   @`   ' BCDEF"@`   ( BCDEF"@`   ) BCDEF"@`  2 * BpCDELFVpmcUD2  2DUcmpp(,@`   + BCDEF"@`   , BCDEF"@`   - BWCDEF"WWWW@`  e` [9  .# *j / .BCDEhFr  ""<4[I|[kwwgTu@T-5   68@` 0  LBC}DEFA88]h y!9Q?(0G^u 9jB}=x7p0h)^!SI?6 %.:ESV\4bHdTaD^8\,[%Z!YY]rt@`Solid diamondN_ B 1 BCDETF^|fN7!  #7Nf|,0@`t[g* 2 BCZDEHFRNT<#  #:R XRXZ YTN&(@`^ 3 BCWDE4F> )>M WA)   @`^j 4 .BCDEhFr r[D-  -D[r68@`[ f 5 BoCjDE0F: j io f]\]bhj ij@`a  6 BC!DE0F: ! !@`hj 7 .B<CRDEhFr  '2!='E-M3R<G9C3;,3%)    68@`Ssm 8 BC)DE0F:  )"   @`KfYwj 9 .B\CDEhFr\ VG<0'   '0<GTN TY\ [V\ 68@`Maul* : BCLDEHFRGE8$ &:EDEJLJEG&(@`oe} ; BC1DE4F>  1. @`rn} < BCDE4F>     @`rcyn = BC6DEF,,|B|qcT$E(8-*034 5652.'u ,E `  ;Shw #/9@|BZ\@`5j > .BC0DEhFr( B'\*v.0.- v \D-   68@`f ? BxCDE0F: xx@`4i @ BC DE0F:      @`2; A BCDEF%%whS;  ` E ,  ,E`;ShwLP@`52 B B&CPDELFVP NE"8&*&!*4< @CP(,@`H C # z? D BC\DE0F:  \\   @`;vB E BeCDE0F:  ee   @`v?} F BC[DE0F: KSS[SX[XSK@`z G BeCDE0F: U]]e]c ec]U@` B H c DA Narrow verticalt I BCrDE0F: rr@`p  J BCDE0F:  @`pw K BCrDE0F: bjjrjprpjb@`t L BCDE0F: @`  M  BCDEFAaa&<Sj)7H[r @Rfz  !4GYixd>r}bcQL>6+"suRc3QGB?; 71+$$-5;BCELT _m|vdR)@>0U!m @`Solid diamond5  N BFC!DEF%%FF |eTC6+k!T>(* @Xo(7I\s F!F!FLP@` O B?CDEF**11"!8ObsxbM:&&:Odzm YB0(? ? ? ?;611VX@`.  P BCDEF%%  0-D=WNj`|v?ce?muW`BM19!'  LP@`9 j Q .BWCDEhFr ~ }k(X4F?6G'NSWIE@9 1/(?Rbtstz} } ~68@`k  R BCADEF%%AA "/=M^rp^N?1% &4yCfUSiB}1!  AAALP@`q S VBCDEF??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@` T BCDEF" @` U BC DEF"  @` V B C DEF"  @`* W B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j X .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j Y .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`* Z B%CADEHFRA @2%!$ )2127<@ @A&(@` [ BTCDE0F: TT @` * \ BCDEHFR        &(@` * ] BC@DEHFR 0@5, &(@` ^ B!CDE0F: !! @`* _ B CKDEHFR$:K?3 $  &(@`* ` BCDEHFR       &(@`j a .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@` b BCLDE4F>  "9LA4 " @`2 c BpCDELFVpmcUD2  2DUcmpp(,@` d BCDEF"@` e B CDEF"   @`tx f B.CDEF"....@`x g BCDEF" @`j h .B8CFDEhFr A E>6!-'$-25 8 -)$ !$- 59=9>DF E A68@` i BCDE4F>      @` j VBCDEF[G??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@` k B C DEF"  @`* l B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j m .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j n .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`* o B%CADEHFRA @2%!$ )2127<@ @A&(@`* p BCDEHFR        &(@` * q BC@DEHFR 0@5, &(@` r B!CDE0F: !! @`* s B CKDEHFR$:K?3 $  &(@`* t BCDEHFR       &(@`j u .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@` v BCLDE4F>  "9LA4 " @` w BCDEF"@` x BCDEF"@` y BCDEF"@` z B CDEF"   @` { BCDEF"@` | BCDEF"@` } BCDEF"@`2 ~ BpCDELFVpmcUD2  2DUcmpp(,@`  BCDEF"@`  BCDEF"@`  BWCDEF"WWWW@`e` [9  # |Sqj  .BCDEhFr  ""<4[I|[kwwgTu@T-5   68@`   LBC}DEFA88]h y!9Q?(0G^u 9jB}=x7p0h)^!SI?6 %.:ESV\4bHdTaD^8\,[%Z!YY]rt@`Solid diamondN_ B  BCDETF^|fN7!  #7Nf|,0@`t[g*  BCZDEHFRNT<#  #:R XRXZ YTN&(@`^  BCWDE4F> )>M WA)   @`^j  .BCDEhFr r[D-  -D[r68@`[ f  BoCjDE0F: j io f]\]bhj ij@`a   BC!DE0F: ! !@`hj  .B<CRDEhFr  '2!='E-M3R<G9C3;,3%)    68@`Ssm  BC)DE0F:  )"   @`KfYwj  .B\CDEhFr\ VG<0'   '0<GTN TY\ [V\ 68@`Maul*  BCLDEHFRGE8$ &:EDEJLJEG&(@`oe}  BC1DE4F>  1. @`rn}  BCDE4F>     @`rcyn  BC6DEF,,|B|qcT$E(8-*034 5652.'u ,E `  ;Shw #/9@|BZ\@`5j  .BC0DEhFr( B'\*v.0.- v \D-   68@`f  BxCDE0F: xx@`4i  BC DE0F:      @`2;  BCDEF%%whS;  ` E ,  ,E`;ShwLP@`52  B&CPDELFVP NE"8&*&!*4< @CP(,@`H  # z?  BC\DE0F:  \\   @`;vB  BeCDE0F:  ee   @`v?}  BC[DE0F: KSS[SX[XSK@`z  BeCDE0F: U]]e]c ec]U@` B  c DA Narrow verticalt  BCrDE0F: rr@`p   BCDE0F:  @`pw  BCrDE0F: bjjrjprpjb@`t  BCDE0F: @`    BCDEFAaa&<Sj)7H[r @Rfz  !4GYixd>r}bcQL>6+"suRc3QGB?; 71+$$-5;BCELT _m|vdR)@>0U!m @`Solid diamond5   BFC!DEF%%FF |eTC6+k!T>(* @Xo(7I\s F!F!FLP@`  B?CDEF**11"!8ObsxbM:&&:Odzm YB0(? ? ? ?;611VX@`.   BCDEF%%  0-D=WNj`|v?ce?muW`BM19!'  LP@`9 j  .BWCDEhFr ~ }k(X4F?6G'NSWIE@9 1/(?Rbtstz} } ~68@`k   BCADEF%%AA "/=M^rp^N?1% &4yCfUSiB}1!  AAALP@`q  VBCDEF??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`  BCDEF" @`  BC DEF"  @`  B C DEF"  @`*  B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j  .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j  .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`*  B%CADEHFRA @2%!$ )2127<@ @A&(@`  BTCDE0F: TT @` *  BCDEHFR        &(@` *  BC@DEHFR 0@5, &(@`  B!CDE0F: !! @`*  B CKDEHFR$:K?3 $  &(@`*  BCDEHFR       &(@`j  .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`  BCLDE4F>  "9LA4 " @`2  BpCDELFVpmcUD2  2DUcmpp(,@`  BCDEF"@`  B CDEF"   @`tx  B.CDEF"....@`x  BCDEF" @`j  .B8CFDEhFr A E>6!-'$-25 8 -)$ !$- 59=9>DF E A68@`  BCDE4F>      @`  VBCDEF[G??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`  B C DEF"  @`*  B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j  .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j š .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`* Ú B%CADEHFRA @2%!$ )2127<@ @A&(@`* Ě BCDEHFR        &(@` * Ś BC@DEHFR 0@5, &(@` ƚ B!CDE0F: !! @`* ǚ B CKDEHFR$:K?3 $  &(@`* Ț BCDEHFR       &(@`j ɚ .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@` ʚ BCLDE4F>  "9LA4 " @` ˚ BCDEF"@` ̚ BCDEF"@` ͚ BCDEF"@` Κ B CDEF"   @` Ϛ BCDEF"@` К BCDEF"@` њ BCDEF"@`2 Қ BpCDELFVpmcUD2  2DUcmpp(,@` Ӛ BCDEF"@` Ԛ BCDEF"@` ՚ BWCDEF"WWWW@`e` X ֚# gj ך .BCDEhFr  ""<4[I|[kwwgTu@T-5   68@`c ؚ  FBC}DEFA88]h y!9Q?(0G^u 9jB}=x7p0h)^!SI?6 %.:ESV\4bHdTaD^8\,[%Z!YY]rt@`Small grid\B ٚ BCDETF^|fN7!  #7Nf|,0@`8X~d* ښ BCZDEHFRNT<#  #:R XRXZ YTN&(@`}[ ۚ BCWDE4F> )>M WA)   @`~[j ܚ .BCDEhFr r[D-  -D[r68@`Xc ݚ BoCjDE0F: j io f]\]bhj ij@`^ ޚ BC!DE0F: ! !@`,j ߚ .B<CRDEhFr  '2!='E-M3R<G9C3;,3%)    68@`p1  BC)DE0F:  )"   @`ctj  .B\CDEhFr\ VG<0'   '0<GTN TY\ [V\ 68@`^9i*  BCLDEHFRGE8$ &:EDEJLJEG&(@`3bA  BC1DE4F>  1. @`6kA  BCDE4F>     @`6`=k  BC6DEF,,|B|qcT$E(8-*034 5652.'u ,E `  ;Shw #/9@|BZ\@`j  .BC0DEhFr( B'\*v.0.- v \D-   68@`*u  BxCDE0F: xx@`-  BC DE0F:      @`  BCDEF%%whS;  ` E ,  ,E`;ShwLP@`2  B&CPDELFVP NE"8&*&!*4< @CP(,@`H  # w   BC\DE0F:  \\   @`s   BeCDE0F:  ee   @`sz  BC[DE0F: KSS[SX[XSK@`w  BeCDE0F: U]]e]c ec]U@`  c DA Narrow verticalq  BCrDE0F: rr@`m  BCDE0F:  @`mt  BCrDE0F: bjjrjprpjb@`q  BCDE0F: @`    BCDEFAaa&<Sj)7H[r @Rfz  !4GYixd>r}bcQL>6+"suRc3QGB?; 71+$$-5;BCELT _m|vdR)@>0U!m @`Small grid   BFC!DEF%%FF |eTC6+k!T>(* @Xo(7I\s F!F!FLP@`e  B?CDEF**11"!8ObsxbM:&&:Odzm YB0(? ? ? ?;611VX@`e  BCDEF%%  0-D=WNj`|v?ce?muW`BM19!'  LP@`j  .BWCDEhFr ~ }k(X4F?6G'NSWIE@9 1/(?Rbtstz} } ~68@`/V  BCADEF%%AA "/=M^rp^N?1% &4yCfUSiB}1!  AAALP@`5  VBCDEF??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@``  BCDEF" @`  BC DEF"  @`  B C DEF"  @`*  B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j  .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j  .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`*  B%CADEHFRA @2%!$ )2127<@ @A&(@`  BTCDE0F: TT @`v *  BCDEHFR        &(@`r{*  BC@DEHFR 0@5, &(@`mz  B!CDE0F: !! @`iw*  B CKDEHFR$:K?3 $  &(@`ao*  BCDEHFR       &(@`anj   .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`\p   BCLDE4F>  "9LA4 " @`dq2   BpCDELFVpmcUD2  2DUcmpp(,@`q   BCDEF"@`   B CDEF"   @`8<  B.CDEF"....@`<P  BCDEF" @`PSj  .B8CFDEhFr A E>6!-'$-25 8 -)$ !$- 59=9>DF E A68@`Pi  BCDE4F>      @`OW  VBCDEF[G??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@``  B C DEF"  @`*  B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j  .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j  .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`*  B%CADEHFRA @2%!$ )2127<@ @A&(@`*  BCDEHFR        &(@`r{*  BC@DEHFR 0@5, &(@`mz  B!CDE0F: !! @`iw*  B CKDEHFR$:K?3 $  &(@`ao*  BCDEHFR       &(@`anj  .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`\p  BCLDE4F>  "9LA4 " @`dq  BCDEF"@`   BCDEF"@`ko ! BCDEF"@` " B CDEF"   @`jn # BCDEF"@` $ BCDEF"@`vy % BCDEF"@`2 & BpCDELFVpmcUD2  2DUcmpp(,@`q ' BCDEF"@`o ( BCDEF"@`n ) BWCDEF"WWWW@`y *  ` 0**+*?A  ؠh  f"' + 3" ,  0e0e    B>CDEdF,Z @  8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||>4 XPg3UU E!]yq6yA "wA@          - # le -Z t1?pO e  . # ld .Z t1?$ ' d  /  0e0e    BCDEXF(Z @  8c 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||DXl^wy}@I}uw95(w4@       f":xe`  {N 3 0# j 1 .BCDEhFr  ""<4[I|[kwwgTu@T-5   68@`  (| 2  @BC}DEFA88]h y!9Q?(0G^u 9jB}=x7p0h)^!SI?6 %.:ESV\4bHdTaD^8\,[%Z!YY]rt@`Zig zagc  B 3 BCDETF^|fN7!  #7Nf|,0@` { * 4 BCZDEHFRNT<#  #:R XRXZ YTN&(@` ~  5 BCWDE4F> )>M WA)   @` ~ j 6 .BCDEhFr r[D-  -D[r68@` {  7 BoCjDE0F: j io f]\]bhj ij@`   8 BC!DE0F: ! !@`}  j 9 .B<CRDEhFr  '2!='E-M3R<G9C3;,3%)    68@`h   : BC)DE0F:  )"   @`` n j ; .B\CDEhFr\ VG<0'   '0<GTN TY\ [V\ 68@`b  * < BCLDEHFRGE8$ &:EDEJLJEG&(@`   = BC1DE4F>  1. @`   > BCDE4F>     @`   ? BC6DEF,,|B|qcT$E(8-*034 5652.'u ,E `  ;Shw #/9@|BZ\@`J  1j @ .BC0DEhFr( B'\*v.0.- v \D-   68@`{  4 A BxCDE0F: xx@`I ~ & B BC DE0F:      @`G P # C BCDEF%%whS;  ` E ,  ,E`;ShwLP@`J  2 D B&CPDELFVP NE"8&*&!*4< @CP(,@`  H E # + T / F BC\DE0F:  \\   @`P W / G BeCDE0F:  ee   @`( T  H BC[DE0F: KSS[SX[XSK@`( / 2 I BeCDE0F: U]]e]c ec]U@`+ +W 2 J c DA Narrow vertical 0 3 K BCrDE0F: rr@`- 5 3 L BCDE0F:  @` 0  M BCrDE0F: bjjrjprpjb@`  7 N BCDE0F: @` 05 7 O  BCDEFAaa&<Sj)7H[r @Rfz  !4GYixd>r}bcQL>6+"suRc3QGB?; 71+$$-5;BCELT _m|vdR)@>0U!m @`Zig zag) J / P BFC!DEF%%FF |eTC6+k!T>(* @Xo(7I\s F!F!FLP@`(  3 Q B?CDEF**11"!8ObsxbM:&&:Odzm YB0(? ? ? ?;611VX@` C 3 R BCDEF%%  0-D=WNj`|v?ce?muW`BM19!'  LP@` 2N j S .BWCDEhFr ~ }k(X4F?6G'NSWIE@9 1/(?Rbtstz} } ~68@`  + T BCADEF%%AA "/=M^rp^N?1% &4yCfUSiB}1!  AAALP@`' %  U VBCDEF??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`  1 V BCDEF" @`   W BC DEF"  @`   X B C DEF"  @`  * Y B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`  j Z .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`  j [ .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`  * \ B%CADEHFRA @2%!$ )2127<@ @A&(@`  4 ] BTCDE0F: TT @` , 4* ^ BCDEHFR        &(@` + 3* _ BC@DEHFR 0@5, &(@`  2 ` B!CDE0F: !! @`  * a B CKDEHFR$:K?3 $  &(@`  * b BCDEHFR       &(@`  j c .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`   d BCLDE4F>  "9LA4 " @`  2 e BpCDELFVpmcUD2  2DUcmpp(,@`   f BCDEF"@`   g B CDEF"   @`   h B.CDEF"....@`   i BCDEF" @`  j j .B8CFDEhFr A E>6!-'$-25 8 -)$ !$- 59=9>DF E A68@`   k BCDE4F>      @`   l VBCDEF[G??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`  1 m B C DEF"  @`  * n B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`  j o .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`  j p .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`  * q B%CADEHFRA @2%!$ )2127<@ @A&(@`  4* r BCDEHFR        &(@` + 3* s BC@DEHFR 0@5, &(@`  2 t B!CDE0F: !! @`  * u B CKDEHFR$:K?3 $  &(@`  * v BCDEHFR       &(@`  j w .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`   x BCLDE4F>  "9LA4 " @`   y BCDEF"@`   z BCDEF"@`   { BCDEF"@`   | B CDEF"   @`   } BCDEF"@`   ~ BCDEF"@`    BCDEF"@`  2  BpCDELFVpmcUD2  2DUcmpp(,@`    BCDEF"@`    BCDEF"@`    BWCDEF"WWWW@`  e` [9  # *j  .BCDEhFr  ""<4[I|[kwwgTu@T-5   68@`   LBC}DEFA88]h y!9Q?(0G^u 9jB}=x7p0h)^!SI?6 %.:ESV\4bHdTaD^8\,[%Z!YY]rt@`Solid diamondN_ B  BCDETF^|fN7!  #7Nf|,0@`t[g*  BCZDEHFRNT<#  #:R XRXZ YTN&(@`^  BCWDE4F> )>M WA)   @`^j  .BCDEhFr r[D-  -D[r68@`[ f  BoCjDE0F: j io f]\]bhj ij@`a   BC!DE0F: ! !@`hj  .B<CRDEhFr  '2!='E-M3R<G9C3;,3%)    68@`Ssm  BC)DE0F:  )"   @`KfYwj  .B\CDEhFr\ VG<0'   '0<GTN TY\ [V\ 68@`Maul*  BCLDEHFRGE8$ &:EDEJLJEG&(@`oe}  BC1DE4F>  1. @`rn}  BCDE4F>     @`rcyn  BC6DEF,,|B|qcT$E(8-*034 5652.'u ,E `  ;Shw #/9@|BZ\@`5j  .BC0DEhFr( B'\*v.0.- v \D-   68@`f  BxCDE0F: xx@`4i  BC DE0F:      @`2;  BCDEF%%whS;  ` E ,  ,E`;ShwLP@`52  B&CPDELFVP NE"8&*&!*4< @CP(,@`H  # z?  BC\DE0F:  \\   @`;vB  BeCDE0F:  ee   @`v?}  BC[DE0F: KSS[SX[XSK@`z  BeCDE0F: U]]e]c ec]U@` B  c DA Narrow verticalt  BCrDE0F: rr@`p   BCDE0F:  @`pw  BCrDE0F: bjjrjprpjb@`t  BCDE0F: @`    BCDEFAaa&<Sj)7H[r @Rfz  !4GYixd>r}bcQL>6+"suRc3QGB?; 71+$$-5;BCELT _m|vdR)@>0U!m @`Solid diamond5   BFC!DEF%%FF |eTC6+k!T>(* @Xo(7I\s F!F!FLP@`  B?CDEF**11"!8ObsxbM:&&:Odzm YB0(? ? ? ?;611VX@`.   BCDEF%%  0-D=WNj`|v?ce?muW`BM19!'  LP@`9 j  .BWCDEhFr ~ }k(X4F?6G'NSWIE@9 1/(?Rbtstz} } ~68@`k   BCADEF%%AA "/=M^rp^N?1% &4yCfUSiB}1!  AAALP@`q  VBCDEF??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`  BCDEF" @`  BC DEF"  @`  B C DEF"  @`*  B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j  .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j  .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`*  B%CADEHFRA @2%!$ )2127<@ @A&(@`  BTCDE0F: TT @` *  BCDEHFR        &(@` *  BC@DEHFR 0@5, &(@`  B!CDE0F: !! @`*  B CKDEHFR$:K?3 $  &(@`*  BCDEHFR       &(@`j  .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`  BCLDE4F>  "9LA4 " @`2  BpCDELFVpmcUD2  2DUcmpp(,@`  BCDEF"@`  B CDEF"   @`tx  B.CDEF"....@`x  BCDEF" @`j  .B8CFDEhFr A E>6!-'$-25 8 -)$ !$- 59=9>DF E A68@`  BCDE4F>      @`  VBCDEF[G??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`  B C DEF"  @`* › B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j Û .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j ě .B.CLDEhFr      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ALG!A)7-,."+'   "*05:>J>AFKL A68@`* ś B%CADEHFRA @2%!$ )2127<@ @A&(@`* ƛ BCDEHFR        &(@` * Ǜ BC@DEHFR 0@5, &(@` ț B!CDE0F: !! @`* ɛ B CKDEHFR$:K?3 $  &(@`* ʛ BCDEHFR       &(@`j ˛ .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@` ̛ BCLDE4F>  "9LA4 " @` ͛ BCDEF"@` Λ BCDEF"@` ϛ BCDEF"@` Л B CDEF"   @` ћ BCDEF"@` қ BCDEF"@` ӛ BCDEF"@`2 ԛ BpCDELFVpmcUD2  2DUcmpp(,@` ՛ BCDEF"@` ֛ BCDEF"@` כ BWCDEF"WWWW@`e` [9  ؛# |Sqj ٛ .BCDEhFr  ""<4[I|[kwwgTu@T-5   68@` ڛ  LBC}DEFA88]h y!9Q?(0G^u 9jB}=x7p0h)^!SI?6 %.:ESV\4bHdTaD^8\,[%Z!YY]rt@`Solid diamondN_ B ۛ BCDETF^|fN7!  #7Nf|,0@`t[g* ܛ BCZDEHFRNT<#  #:R XRXZ YTN&(@`^ ݛ BCWDE4F> )>M WA)   @`^j ޛ .BCDEhFr r[D-  -D[r68@`[ f ߛ BoCjDE0F: j io f]\]bhj ij@`a   BC!DE0F: ! !@`hj  .B<CRDEhFr  '2!='E-M3R<G9C3;,3%)    68@`Ssm  BC)DE0F:  )"   @`KfYwj  .B\CDEhFr\ VG<0'   '0<GTN TY\ [V\ 68@`Maul*  BCLDEHFRGE8$ &:EDEJLJEG&(@`oe}  BC1DE4F>  1. @`rn}  BCDE4F>     @`rcyn  BC6DEF,,|B|qcT$E(8-*034 5652.'u ,E `  ;Shw #/9@|BZ\@`5j  .BC0DEhFr( B'\*v.0.- v \D-   68@`f  BxCDE0F: xx@`4i  BC DE0F:      @`2;  BCDEF%%whS;  ` E ,  ,E`;ShwLP@`52  B&CPDELFVP NE"8&*&!*4< @CP(,@`H  # z?  BC\DE0F:  \\   @`;vB  BeCDE0F:  ee   @`v?}  BC[DE0F: KSS[SX[XSK@`z  BeCDE0F: U]]e]c ec]U@` B  c DA Narrow verticalt  BCrDE0F: rr@`p   BCDE0F:  @`pw  BCrDE0F: bjjrjprpjb@`t  BCDE0F: @`    BCDEFAaa&<Sj)7H[r @Rfz  !4GYixd>r}bcQL>6+"suRc3QGB?; 71+$$-5;BCELT _m|vdR)@>0U!m @`Solid diamond5   BFC!DEF%%FF |eTC6+k!T>(* @Xo(7I\s F!F!FLP@`  B?CDEF**11"!8ObsxbM:&&:Odzm YB0(? ? ? ?;611VX@`.   BCDEF%%  0-D=WNj`|v?ce?muW`BM19!'  LP@`9 j  .BWCDEhFr ~ }k(X4F?6G'NSWIE@9 1/(?Rbtstz} } ~68@`k   BCADEF%%AA "/=M^rp^N?1% &4yCfUSiB}1!  AAALP@`q  VBCDEF??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`  BCDEF" @`  BC DEF"  @`  B C DEF"  @`*  B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j  .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j  .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`*  B%CADEHFRA @2%!$ )2127<@ @A&(@`  BTCDE0F: TT @` *  BCDEHFR        &(@` *  BC@DEHFR 0@5, &(@`  B!CDE0F: !! @`*   B CKDEHFR$:K?3 $  &(@`*   BCDEHFR       &(@`j   .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`   BCLDE4F>  "9LA4 " @`2   BpCDELFVpmcUD2  2DUcmpp(,@`  BCDEF"@`  B CDEF"   @`tx  B.CDEF"....@`x  BCDEF" @`j  .B8CFDEhFr A E>6!-'$-25 8 -)$ !$- 59=9>DF E A68@`  BCDE4F>      @`  VBCDEF[G??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`  B C DEF"  @`*  B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j  .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j  .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`*  B%CADEHFRA @2%!$ )2127<@ @A&(@`*  BCDEHFR        &(@` *  BC@DEHFR 0@5, &(@`  B!CDE0F: !! @`*  B CKDEHFR$:K?3 $  &(@`*  BCDEHFR       &(@`j  .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`   BCLDE4F>  "9LA4 " @` ! BCDEF"@` " BCDEF"@` # BCDEF"@` $ B CDEF"   @` % BCDEF"@` & BCDEF"@` ' BCDEF"@`2 ( BpCDELFVpmcUD2  2DUcmpp(,@` ) BCDEF"@` * BCDEF"@` + BWCDEF"WWWW@`e` X ,# gj - .BCDEhFr  ""<4[I|[kwwgTu@T-5   68@`c .  FBC}DEFA88]h y!9Q?(0G^u 9jB}=x7p0h)^!SI?6 %.:ESV\4bHdTaD^8\,[%Z!YY]rt@`Small grid\B / BCDETF^|fN7!  #7Nf|,0@`8X~d* 0 BCZDEHFRNT<#  #:R XRXZ YTN&(@`}[ 1 BCWDE4F> )>M WA)   @`~[j 2 .BCDEhFr r[D-  -D[r68@`Xc 3 BoCjDE0F: j io f]\]bhj ij@`^ 4 BC!DE0F: ! !@`,j 5 .B<CRDEhFr  '2!='E-M3R<G9C3;,3%)    68@`p1 6 BC)DE0F:  )"   @`ctj 7 .B\CDEhFr\ VG<0'   '0<GTN TY\ [V\ 68@`^9i* 8 BCLDEHFRGE8$ &:EDEJLJEG&(@`3bA 9 BC1DE4F>  1. @`6kA : BCDE4F>     @`6`=k ; BC6DEF,,|B|qcT$E(8-*034 5652.'u ,E `  ;Shw #/9@|BZ\@`j < .BC0DEhFr( B'\*v.0.- v \D-   68@`*u = BxCDE0F: xx@`- > BC DE0F:      @` ? BCDEF%%whS;  ` E ,  ,E`;ShwLP@`2 @ B&CPDELFVP NE"8&*&!*4< @CP(,@`H A # w  B BC\DE0F:  \\   @`s  C BeCDE0F:  ee   @`sz D BC[DE0F: KSS[SX[XSK@`w E BeCDE0F: U]]e]c ec]U@` F c DA Narrow verticalq G BCrDE0F: rr@`m H BCDE0F:  @`mt I BCrDE0F: bjjrjprpjb@`q J BCDE0F: @`  K  BCDEFAaa&<Sj)7H[r @Rfz  !4GYixd>r}bcQL>6+"suRc3QGB?; 71+$$-5;BCELT _m|vdR)@>0U!m @`Small grid  L BFC!DEF%%FF |eTC6+k!T>(* @Xo(7I\s F!F!FLP@`e M B?CDEF**11"!8ObsxbM:&&:Odzm YB0(? ? ? ?;611VX@`e N BCDEF%%  0-D=WNj`|v?ce?muW`BM19!'  LP@`j O .BWCDEhFr ~ }k(X4F?6G'NSWIE@9 1/(?Rbtstz} } ~68@`/V P BCADEF%%AA "/=M^rp^N?1% &4yCfUSiB}1!  AAALP@`5 Q VBCDEF??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`` R BCDEF" @` S BC DEF"  @` T B C DEF"  @`* U B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j V .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j W .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`* X B%CADEHFRA @2%!$ )2127<@ @A&(@` Y BTCDE0F: TT @`v * Z BCDEHFR        &(@`r{* [ BC@DEHFR 0@5, &(@`mz \ B!CDE0F: !! @`iw* ] B CKDEHFR$:K?3 $  &(@`ao* ^ BCDEHFR       &(@`anj _ .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`\p ` BCLDE4F>  "9LA4 " @`dq2 a BpCDELFVpmcUD2  2DUcmpp(,@`q b BCDEF"@` c B CDEF"   @`8< d B.CDEF"....@`<P e BCDEF" @`PSj f .B8CFDEhFr A E>6!-'$-25 8 -)$ !$- 59=9>DF E A68@`Pi g BCDE4F>      @`OW h VBCDEF[G??.>DKT\eox;9531'%*5  wkbYR KEA0 '5GYk|@`` i B C DEF"  @`* j B!CKDEHFR>I!5!# %3 @J @ EIKI>&(@`j k .B$CODEhFrC OE!:$-$#   %-3:ALAEKO OC68@`j l .B.CLDEhFr ALG!A)7-,."+'   "*05:>J>AFKL A68@`* m B%CADEHFRA @2%!$ )2127<@ @A&(@`* n BCDEHFR        &(@`r{* o BC@DEHFR 0@5, &(@`mz p B!CDE0F: !! @`iw* q B CKDEHFR$:K?3 $  &(@`ao* r BCDEHFR       &(@`anj s .B-CJDEhFr" $ (2? JF:0( ) +) - -*$" 68@`\p t BCLDE4F>  "9LA4 " @`dq u BCDEF"@` v BCDEF"@`ko w BCDEF"@` x B CDEF"   @`jn y BCDEF"@` z BCDEF"@`vy { BCDEF"@`2 | BpCDELFVpmcUD2  2DUcmpp(,@`q } BCDEF"@`o ~ BCDEF"@`n  BWCDEF"WWWW@`y   ` 0*+*?A  h  &  3" f  { 3 " %2  H? {  T  ? ;  f  3  M#2  H?  T  ?W  f  3 l$&2  H?  T  ?W     0e0e    BC DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| .X, @  )"4#   0e0e    BC8DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||,'{(8@  T$%  N  ?(!P7"    N  ?( $P'%  r2  6 Ԕ?J!%h *:, 0  3"!"  HG ?*:,b0f  { 3 RX-/2  H? {  T  ? ;  f  3 9-r/2  H?  T  ?W     0e0e    BC}DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||}`i @L_@  -2Y.  N  ?,-    N  ?jS,o-  f  3 Q- 02  H?  T  ?W     0e0e    B<CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Dz"S<g@  j0.Z.  N  ?, -    N PFPFPFPF?a-.    N PFPFPFPF?/-.  2h  >!_  3"""  HG ? _2  H?&a  T  ?  2  H?H@  T  ?r     0e0e    BC}DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||}`i @L_@  h'  N  ?^0L    N  ?$<@  2  H?y>!  T  ?Z,      0e0e    B<CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Dz"S<g@     N  ?pz    N PFPFPFPF?)E    N PFPFPFPF?T   b  v# * 5 3"#"  NG ? v#*2  N?%@1(  Z  ?nh&Q'  2  N?>$&  Z  ?+$%     0e0e    BC<DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||<M\.#*)@   /%b&  T  ?.#B$    T  ? #,$  2  N?]$ &  Z  ?1%- &     0e0e    BC:DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||:b ULL&CLV@  7%Vh&  T  ?#$    T PFPFPFPF?$M%    T PFPFPFPF?|$%  2  N?')  Z  ?+`(J)   œ  0e0e    BChDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||P32hAE@  &'( Ü T Ü ?.B'BV(   Ĝ T PFPFPFPFĜ??(MS)  2 Ŝ N?c' $* Ɯ  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||^><84t,jh@  '\W) ǜ T ǜ ?.'A(   Ȝ T PFPFPFPFȜ?j(})   ɜ Z ɜ ?z(: d)  'b  #   3"$ ˜ Z ˜ ?S    " ̜ NG? # ͜ Z ͜ ? `!    Μ Z Μ ?`!  " Ϝ      BNCDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| NP0nHNT @   :!]#G" М NG ? 2 ќ N?  9 Ҝ Z Ҝ ? `   2 Ӝ N? Ԝ Z{ Ԝ ?i($ {  ՜  0e0e    BC<DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||<M\.#*)@   h ֜ Zz ֜ ?  z  ל Zs ל ?  s 2 ؜ N?Vx ٜ Zq ٜ ?jf q  ڜ Zp ڜ ?!#L p  ۜ Zo PFPFPFPFۜ?\' o 2 ܜ N? ݜ Zn ݜ ?ifb n  ޜ  0e0e    BChDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||P32hAE@    ߜ Zd ߜ ?Z d   Zc PFPFPFPF?\Gp c 2  N?[~` z # oVM   0e0e    BC:DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||:b ULL&CLV@  z   0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||^><84t,jh@     Zb  ?'Fp b   Z` PFPFPFPF?zo `   Z_  ?~z _ "       BNCDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| NP0nHNT @   8! # x2  <Ԕ?&hx2  <Ԕ?[x2  <Ԕ?:" "w  Z^ PFPFPFPF?t J ^ Kh P '2! r 3"("   TG?P '2!  Z  ? .   f t *  3 ,hxB  <D?0 * `2 B c $ ?t r : xB  <D?K t  t xB  <D? 0 `2  c $ ? t :   Z  ?   Pf B 3 ?r"  6G  ?B`B  c $D  Z  ?n     Z  ? w  f  1  3 ,4l2  0? 1   T  ?Q    f  1  3 bl2  0? 1    T  ?Q    f  1  !3  , l2 " 0? 1  # T # ?Q    f  1  $3 (b l2 % 0? 1  & T & ?Q     ' B pb' 4    ( B pb(&4[   ) B pb)    * B pb*&[   + B pb+6 k   ,  0e0e    BeCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| >c8g e6<Z @     v -  0e0e    BPCBDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| ~B=P~ nrd* @     . Z` . ?t, H `  / Z_ / ?@X t  _  0  0e0e    BICDE4F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 1 |5O 'cN,I @ @     "P 1  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| x,ES@  @(" 2  0e0e    B CLDE4F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| ~  ' C:La@ @     ; 3  0e0e    BtCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||xxTm~wAt@  ~ 4 ZC 4 ? 0  C  5 Z5 ?>`|  6  0e0e    B-CDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| '  @o- @   % '  7 Z7 ? v'   8 B$pb8h C% $ 9 Bpb9C%     :S tV@ < S ,>O`T`T+OW4W<N2 ; 3  F# `B < c $D      =S d$F` !`@8`T!`T`'`TZZ!~N2 > 3 k lB ? 0D      @S d$F` !`@8`T!`T`'`TZZ!N2 A 3 k lB B 0D  B C HD?4B@"B D ZD ?Pj}  B EB HD?4@" F ZF ?P f t *  G3 ^xB H <D?0 * `2 IB c $ ?t r : xB J <D?K t  t xB K <D? 0 `2 L c $ ? t :  M ZM ?P) Pf B N3 `Z'r" O 6G  ?B`B P c $D Q ZQ ?TP  R ZR ?@! f  1  S3 @!G#l2 T 0? 1  U TU ?Q   f  1  V3  }z"l2 W 0? 1  X TX ?Q   f  1  Y3 Gvl2 Z 0? 1  [ T[ ?Q   f  1  \3 }l2 ] 0? 1  ^ T^ ?Q    _ Bpb_#OX1  ` Bpb`!O%1  a BpbaZ  b Bpbb!%  c Bpbc  d Bpbd^@  e BpbeX"^&@     fS d$F` !`@8`T!`T`'`TZZ!  N2 g 3 k lB h 0D      iS d$F` !`@8`T!`T`'`TZZ!xN2 j 3 k lB k 0D  >b R  3"&L z<g R2  H?z<g  T ?f Z z<g  ,!2  H?z<g  T ?f Z z<g  ,2  H?z<g  T ?f L t t|       BC DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| [W@  t       BzC.DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||zHSf' .@  ZZ t  v>        BC DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| [W@  t       BzC.DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||zHSf' .@  Z  N ?B   N ?B   N ?   N ? f2  s *Ԕ?arh _   3">  N ?_  \` 2,3#4 #   l2  0?23#4xB  <D?z,33l'h X)h3  3"@&` P j # X13H2  # P  fB  s *D jJ  N-PF ?-y/ -  N,PF ?K$/0 ,  N+PF ?~12 +  N*PF ?-h/ *   p    BdCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||dUDVU@  <,/   p    BcCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||<cah_@  ,G/   p    BC9DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||9oK9W^m@  ,k/   p    B[C#DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||=YZp[#@  ,F/   p    BC~DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||XIf e~@  D*0K+  N)PF ?+F- )   p    BC DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| ]Iz@  J,U0  N(PF ?A.w/ (  N'PF ?Y-. '  N&PF ?e-/ &   p    B?CDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||rf?@  5F0t0 Ý  p    BCpDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Vp}pp@  =61V1 ĝ N%PFĝ ?z*, %2 ŝ H ?[)<, Ɲ N$PFƝ ?&*r, $2 ǝ H ?"), ȝ N#PFȝ ?v02 #2 ɝ H ?W/82 ʝ N"PFʝ ?pw0v2 "2 ˝ H ?[/<2 h @ S&#' ̝ 3"A8` Ni ͝# @ T&[ o'B2 Ν  Ni~ ϝ 6!ϝfI !8` Ni Н# .S&In'B2 ѝ  Ni~ ҝ 6 ҝfI  8` Ni ӝ# T&*o'B2 ԝ  Ni~ ՝ 6՝fI  ֝ NPFPF֝ ? l&a'  ם NPFPFם ?.k&m'  ؝ NPFPF؝ ?2k&#m' ~h  "8' ٝ 3"?H" ڝ # "8' ۝ xBCDEFG4 v@  L #&$ ܝ xBCDEFG4 v@  L $J% ݝ xBCDEFtHa#S1o@  f$>~$ ޝ xBWCjDEFbBRTWj@  p#W$ ߝ xBC[DEFDw[ZIYd@  l$>%  xBACLDEFA >JK(L[@  |$$&` P j # au%qe&H2  # P  fB  s *D jJ  NPF ?y#A%   NPF ?#F%   NPF ?#L%   NPF ?| # %   NPF ?l"+$   N3PF ? "# 3  N2PF ? %& 2  N1PF ?"+$ 1  N0PF ?\%& 0  N/PF ?J%& /  N.PF ?9"# .2  H ? K#Z %2  H ?"}#m%2  H ?3}#~%2  H ?}#Z%&` P j # &'H2  # P  fB  s *D jJh &5';  3"Bt` $&i # $'f2  s *?$&i  N ?T$&   N ?7S 8` 'j  #  j B2   j L~  6I'   I   0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||N-_4I.@  "W$   0e0e    BCDEF @  5% 8c8c         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Vp :bPb@  "A$  NH ?"5% H  N ?"?%( f"  s * ?0z`  #~% # }{l2  0? #~%  N ? $)%   N ?i: 8` Ni # B2   Ni~   6 fI z`  #~%  # )l2   0? #~%   N  ? $)% ` )L  # Hr2  6?)L   0e0e    B2C4DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||42@b   r0e0e    B#C/DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||/'WX#@  !YD   0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||cm @  ih  N ?H    0e0e    BCTDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||TH b @  l   0e0e    BCEDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||G &EE.E@      0e0e    BCkDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||XIZkfi@  d   0e0e    BC4DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||4+nL!@  f  N ?1d|   N ?yf   N ?B    N ?w   N ?r l"  0Gd ?R6"jf"  s * ?"!az`  #~% # Hl2  0? #~%   N  ? $)%  ! N! ? 8` Ni "# 8SB2 #  Ni~ $ 6$fI z`  #~% %#   l2 & 0? #~% ' N' ? $)% ` )L (# 6%r2 ) 6?)L *  0e0e    B2C4DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||42@b +  r0e0e    B#C/DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||/'WX#@   ,  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||cm @   - N- ?I  .  0e0e    BWCYDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||WY9Kl"@  y /  0e0e    BwCCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| OGCAo?!w@  YF 0  0e0e    BlCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||tQg}E}l@  ZB 1  0e0e    B_C>DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||_1)@ Z2>@  q 2 N2 ?  3 N3 ?kJX  4 N4 ?/p  5 N5 ?Y  6 N6 ? r%` ]]" 7#  xif" 8 s * ?]]"z`  #~% 9# > P<"l2 : 0? #~% ; N; ? $)%  < N< ?]y 8` Ni =#  y$B2 >  Ni~ ? 6?fI z`  #~% @# Pl2 A 0? #~% B NB ? $)% z`  #~% C#   @"l2 D 0? #~% E NE ? $)% ` )L F# r r2 G 6?)L H  0e0e    B2C4DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||42@b I  r0e0e    B#C/DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||/'WX#@  I  J  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||cm @  Pj  K NK ?MPa   L  0e0e    BFCDDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||FD6+u/$@  S=  M  0e0e    BCEDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||G &EE.E@  *!C! N  0e0e    BYCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| a2Y@   Nfg  O  0e0e    BC4DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||4+nL!@  B'!/[! P NP ?  Q NQ ? ! "  R NR ?r   S NS ?'?   T NT ?" FH! ` ` U# G , Al2 V 0?h W  0e0e    BClDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||l@&` X  r0e0e    BCvDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||v2e ,@  wA Y NY ?n  Z  r0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||fx@   w n [  r0e0e    B CODEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||p4;S O@  2 \  r0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(8>@  R ' m ]  r0e0e    B`C_DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||` <CQ_YQQ@  # ^  r0e0e    BCXDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||XnF.C@yW@  w _ N_ ?_  ` N` ? Kd ,  a Na ?&  b Nb ?T 6  c Nc ?4rS t` $&i d#  f2 e s *?$&i f Nf ?T$& ` e$,( g# z` *o, h# %U^'l2 i 0?*o, j Nj ?*, f" k s * ?~$,(z`  *Bg, l# |%V'l2 m 0?C* g, n Nn ? *B, ` . ,, o# &'r2 p 6?.V,, q  0e0e    BClDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||l@` ,q, r  0e0e    B,C]DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||,]Ns"?N@  u%% s  0e0e    BCPDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| aFKP'@   ']' t Nt ?$^%  u Nu ?h'( F` 7E* v# e$&8` )9* w# 7RB2 x  :)*~ y 6y)9*  z Nz ?xE*( ` e$,( {# I z` *o, |# %U^'l2 } 0?*o, ~ N|~ ?*, |f"  s * ?~$,(z`  *Bg, # |%V'l2  0?C* g,  N{ ? *B, {` . ,, # &'r2  6?.V,,   0e0e    BClDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||l@` ,q,   0e0e    B,C]DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||,]Ns"?N@  u%%   0e0e    BCPDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| aFKP'@   ']'  Nf ?$^% f  Ne ?h'( eF` 7E* # e$&8` )9* # 7RB2   :)*~  6d)9* d  Na ?xE*( a|    3 hV@ < S ,>O`T`T+OW4W<&;N2  3  F# ZB  S D  *h  "^  3"D4"  K "^  xBCDEFq>_u p@  Uw    xBCdDEFad#cb=@  um  t`   #  o TB  C D . TB  C DP TB B C D.x  0\S  \42  .42 B  P .  xBCvDEFv@dK^@      xBCeDEF}ebcaJ@   j  `B  c $D1K ^  xBCDEF|>hwg@      xBCDEFn*YH@  d    N[PF ?  [  NYPF ?*   Y  NVPF ?   V2  H ?" X!j   NUPF ?h w  U2  H ?" j   NTPF ?   T2  H ?(" zj   NSPF ?v   S2  H ? " j   NRPF ?+ : R  NQPF ?+i :  Q  NPPF ?   P  NOPF ?  O  NNPF ?   N  NMPF ?   M  NLPF ?   L2  H ? " ^j N2  3  k  ZB  S D N2  3 7h  ZB  S Dv b Hh  z   3"E`  " % # "'u  NKPF ? t#u $ K2  H ? " %`  " % # "{u  NJPF ? t#u $ J2  H ? " %`  " % #  y   NIPF ? t#u $ I2  H ? " %`  " % ž# y  Þ NHPFÞ ? t#u $ H2 Ğ H ? " %`  " % Ş# {g ƞ NGPFƞ ? t#u $ G2 Ǟ H ? " %`  " % Ȟ# 'g ɞ NEPFɞ ? t#u $ E2 ʞ H ? " % ˞  p    BC0DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||W"<0@     ̞ NDPF̞ ?  D ͞  p    BCgDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||gsWmOc@  "! Ξ NCPFΞ ?z C Ϟ  p    BC:DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||:NQ|[O@   >J О NBPFО ? B ў NPFў ?   Ҟ  p    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||3=1hb@   { Ӟ  p    B\CqDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||V-tv'\q@  h* Ԟ  p    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||n'2d|x@  &r ՞  p    BCUDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||erU@  b; ֞ NPF֞ ?t~#  מ NPFמ ?' B  ؞ NPF؞ ?$  ٞ  p    BCJDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Jc\UsS@  :c ڞ  p    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||mA,C^>@   -2_ ۞  p    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||&d8X(X@  [ ܞ NPFܞ ?  ݞ NPFݞ ?psz  ޞ NPFޞ ?  ߞ  p    BpCIDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||pI*.PS@  *  NPF ?B]    p    BpCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||p/I}?W1f@  pB  NPF ?NX/    p    BpCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||9`T'>p@  ?o  NPF ?    p    BC[DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||8k00b I[@  &5  NPF ? ,l    C 1@NN2  3  F# ZB  S D  *h  #s#-  3"F   p    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||$)8=J"Q@  $ '   p    B} CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||} 05AJYL@  $ 'B"    K&s#*  xBCDEFq>_u p@  ^''  xBCdDEFad#cb=@  >((t`   #  :%7P'TB  C D . TB  C DP TB B C D.x  0S  42  .42 B  P .  xBCvDEFv@dK^@  v''  xBCeDEF}ebcaJ@  ;((`B  c $D1M&*  xBCDEF|>hwg@  l''  xBCDEFn*YH@  5((  NPF ? & '   NPF ?&'   NPF ?_ 'o!( 2  H ?'"%)  NPF ?L'\( 2  H ?'%)  NPF ?J'Z( 2  H ?'%)  NPF ?',( 2  H ?'%)  NPF ?()   NPF ?A&e'   NPF ?b&'    NPF  ?()    NPF  ?t()    NPF  ?Z&~'    NPF  ?/'?( 2   H ?'%)  NPF ? + , 2  H ?V +s-   p    BrC)DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||N!r:)L@  w%)3,   p    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||P\ k @  ),  NPF ?#(;$   NPF ?`*+   NPF ?#%$ 2  H ?6#J%    C nV@ < S ,>O`T`T+OW4W< ()N2  3  F# ZB  S D      C nV@ < S ,>O`T`T+OW4W<$%N2  3  F# ZB  S D      C nV@ < S ,>O`T`T+OW4W<()N2  3  F# ZB  S D  .,b [&') j 3"C   Z`  ?^B  `" ! NGV?]B!)2 " N?&   # Z_# ?_   _2 $ N?v % Z^% ?2( ^`   &# [ \Z2 'B S  ?rB ( 6D?H rB ) 6D?  Z2 * S  ?H  rB + 6D? , Z], ?&$y F ]B -  `D1?c2"2B .  `D1?c" / Z\/ ?U  \ 0 T[0 ?P O`  [2 1 N?"  ~ 2 ZY2 ?X   Y2 3 N?F !# $ 4 ZX4 ?@ p# $ X2 5 N?`#$ 6 ZU6 ?ag#$ U2 7 N?` " 8 ZT8 ?a0!S" T`   9#   "Z2 :B S  ?rB ; 6D?H rB < 6D?  Z2 = S  ?H  rB > 6D?" ? NG ? %B @B  `D1?""2 A N?B " B ZSB ?F "! D" SB C  `D1?]l%l%2 D N?4p&(( E ZpE ?5&' p" F NG?)&`(2 G N? e&Q ( H ZnH ? &E ' n I ZjI ?%& j J ZiJ ?* &} ' i K ThK ?&'' h L TgL ?2&'Q g M TfM ? &'$ f N TeN ?&&'( eB O  `D1?c>">2 P N?7 Q ZdQ ?*2L d" R NG?2 S N? k  T ZcT ? _ > c U ZbU ?b  b V TaV ?&' a W Z`W ?e ! ` X Z_X ?e# %$ _ Y      BC,DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||, @  T   Z      BCeDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||e"EV@  CN2 [ 3  ! ) \ B^\!   ^ ] T]] ?&'v ]B ^  `D1?z%9%%B _  `D1?z9%B `  `D1?z9%B a  `D1?zl%9%l%b H#4!+ 4 3" `  %C) d# R$X'~2 e B? %C) f NPFf ? &( ` .%C) g# $4!X'~2 h B?.%C) i NPFi ?&HT( ` A`*- j# u(G+~2 k B?A`*- l NPFl ?|:+(,  m  f    BC*DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||IoB# *@  F('R* n      BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||?s:ev{2@  ^&2) o TlPFo ?c#m % l p TkPFp ?O) * k q TePFq ?%F' e r      BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||L^l@   ') s TWPFs ?J)=+ W t  f    B CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Z V  @  $% u TVu? $ % V v TUv?P(O) U w TTw?(''( T x TSx?(A) S    cC nV@ < S ,>O`T`T+OW4W<H&'N2 d 3  F# ZB e S D      hC nV@ < S ,>O`T`T+OW4W<3" N2 i 3  F# ZB j S D  b  ] o 3", ? T? ?? GQ  " @ NG? ] A      B CDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||wxx<:J N@  R  B TB ?& 7  2 C N?( 8 D TD ?    E      BC]DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||^14&c]CJ@  N2 F N?Tm c} G TG ?T   H TH ? 2 I N? J TJ ?s     KC nV@ < S ,>O`T`T+OW4W<N2 L 3  F# ZB M S D  f2 n s *Ԕ? tz b  ! q 3"- O TO ?  6 " P NG? ! Q      B C,DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||,km, '@  )X R TR ?6!y 2 S N?Fn T T}T ?ZX } U      B CDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||<SEE* @  Q2 V N?r W T|W ?  | X T{X ?6W {    YC nV@ < S ,>O`T`T+OW4W<N2 Z 3  F# ZB [ S D  f2 p s *Ԕ?Z^b  '!S, t 3". ] Zz] ? ' ( z" ^ TG? '!S, ` Zy` ?q(j) y2 a N?B(k+ b Zxb ?U)k* xL D(#* sD(E* _      B C,DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||,km, '@  G(#) c      B CDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||<SEE* @  D8**2 d N?'(P+ e Zwe ?')* w f Zvf ?q*M, v    gS tV@ < S ,>O`T`T+OW4W<z*jv+N2 h 3  F# `B i c $D  f2 r s *Ԕ?((F+8nh '#  3"4f  l  3  xB  <D? >f Z#4 )% 3  l `2 B c $ ?Z#$ xB  <D?# # xB  <D?4 $4 )% `2  c $ ? #4 $ Z  (#   '#x"  <G  ? (#B   fD1?(  Z# ?@%   # “ Z"“ ?   "f k   Ó3 $;&9l2 ē 0?k   œ T!œ ?s w !f k   Ɠ3 $u &s"l2 Ǔ 0?k   ȓ T ȓ ?s w   ɓ Zɓ ?^$z  ˓  x0e0e    B CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||8V># %@   $ ̓  x0e0e    B CtDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||GXfIt"Y V@  !$! ͓ Z͓ ?F $?!  ٓ Zٓ ?L M   ړ  x0e0e    BuC)DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)L6F#^LuW@  8} a" ܓ TG? ^# ݓ Zݓ ?   f  N  ޓ3 ZX2 ߓ H? N   T ?   f  N  3  !2  H? N   T ?      x0e0e    BCzDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||ziEzv= @  S  Z ?0 %   Z ?0- S!    x0e0e    BC;DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||h-p;  @  { !  T?b ("    T?b C!("H"    T?6   T?6"!'"  8f L   3 N  p!N2  3  k lB  0DAL  f  N  3 | z"2  H? N   T ?     Z  ?    x"  <G ?   Z  ?X U]q  f k   3 c  $l2  0?k    T  ?s w  f k   3 V  l2  0?k    T  ?s w     x0e0e    B'CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| {'@  *    0e0e    B;C DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||#&;` @  C (f k   3 #N'Ql2  0?k  F  T  ?s wF  x"  <G ?X x"  <G0 ?C  pR  Z  ?} t     Z  ? t      Zk  ? [ 6 w k  ϓ Zϓ ? % *    0e0e    BLCSDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| SA-uLt @   *"%}*   x0e0e    B CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||&+ G V}@  s$   x0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||"!* 8&@  nc|$-   x0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||kxy @@  c %R   x0e0e    BCDEF       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||N[XU $J@   $~ Γ  0e0e    B CDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| X P;H>$ l @   K%    x0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||rd[ pm@  $g   x0e0e    BC|DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|||x z"eLP1@  #n Г  x0e0e    B?CdDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||ID d -??.@  7$! ѓ Zѓ ?3    ғ Zғ ? ?@  ӓ Zӓ ?,  ԓ Zԓ ?k2  Փ ZՓ ?Gy,  ֓ Z֓ ?3  ד Zד ?(87  ؓ Zؓ ?n8  ۓ Zۓ ?[ 7k    T? \ ![ /   T? ! +   T? !&   T? !"   T? !   T? 1!0   T? !   T? h!g   T? ! 8f L   3   ON2  3  k lB  0DAL  8f L   3 pN2  3  k lB  0DAL  r2 ~ 6Ԕ? 5r2  6Ԕ?br2  6Ԕ?i\Mr2  6Ԕ?H  r2 ȟ 6Ԕ?R!r2 ɟ 6Ԕ?0\"b ! 'T3 E 3" n  `n?C *R B n  fD8c?//+ n      BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||p @k ,- A/+B nB  fD8c?#= n Zen?O0O eB n  fD8c?> n  `&n?,~M &B nB  fD8c?` n Z:n?/* < :B n  fD8c?zU  n  `H n?F. H B nB  fD8c?$! n ZG n?x! G B n  fD8c?! n  `F n?/n , F B nB  fD8c?&" n ZE n?C2c"6 E B n  fD8c?z# n  `= n?!n}'; = B nB  fD8c? "#4$. n Zn?!uJ"= B n  fD8c?4$#4$/B n  fD8c? 4$%/B nB  fD8c?]f n ZYn?A/ ;0: Y n  fn? 1T3^  n H?4 6'4*8 n S ~n2 @?"-#T3.  n H?9 a.t _1P o Zo?a@/^?0E  o Z o?O(O)8  B o  fD8c?LHB o  fD8c?L1B o  fD8c?s;B oB  fD8c?cll2B oB  fD8c?c>B oB  fD8c?h^h=B o  fD8c?"^"GB  oB  fD8c?%$^%$KB  oB  fD8c?&^&TB  oB  fD8c?{$dB  o  fD8c?~$RB oB  fD8c?~$JB oB  fD8c?~$MB oB  fD8c?$SB oB  fD8c?~%$$%$]B oB  fD8c?e$eRB oB  fD8c?n! "mB oB  fD8c?n! "FB oB  fD8c?t! "6B oB  fD8c?t! "<B oB  fD8c?t!` "`?B oB  fD8c?m!' "'6B oB  fD8c?m!]) "])6B oB  fD8c?m!* "*6f g#2$7 o3 K$e.%2B oB  `D8c?q#7$76B oB  `D8c?g#2$26B oB  `D8c?q#G4$G46B oB  `D8c?h#5$56  o S ~  o2 @?MCfiR   !o S ~ !o2 @?ay&=   "o S ~ "o2 @?"C#+Q   #o S ~ #o2 @?#U< &R   $o S ~$o2 @?#&< +8  %o Z%o?%-/ .G  &o S ~&o2 @?42\]  'o S ~'o2 @?78U  (o S ~(o2 @?UST?  )o S ~)o2 @?!&J  *o S ~*o2 @?o C  .o  `.o? CS B /o  fD8c?!B 0o Z0o?DB  B 1o  fD8c?((YB 3oB  fD8c? kt G 4o Z4o?6 UF {a  5o      BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||p @ % r([ 6o      BCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||p @_ HB 7o  fD8c? t q H 8o Z8o? [ d  9o  f9o?t )+o  :o Z:o? J  ;o Z;o?x(b q)] B >oB  fD8c? WFJ ?o Z?o? ] J B @oB  fD8c? dFJ Ao ZAo?]J B Bo  fD8c? FmJB Co # lD? Do ZDo?Q X B EoB  fD8c?L  JB FoB  fD8c?WYB GoB  fD8c?mzKB Ho  fD8c?kK Io ZIo?JVHK  Jo ZJo?b K  Ko  `Ko?A m#` B LoB  fD8c?A tD!L Mo ZMo? V L B No  fD8c?A D!t"LB Oo  fD8c?/M"4$cB PoB  fD8c?/V ^B Qo  fD8c?> Q D!N Ro ZRo?4 N M N  So ZSo?CN  To ZTo?pd!"N  Uo ZUo?!__N  Vo ZVo?o&'a  Wo S ~Wo2 @?\0]  Xo S ~Xo2 @?|#e B Yo  fD8c? PB Zo  fD8c?` UPB [o  fD8c?A D!d!PB \o  fD8c?4aB ]o  fD8c?z7zPB ^o  fD8c?PPB _o  fD8c?PB `o  fD8c?O4$$WB ao  fD8c? #4$WB bo  fD8c?Qn co Zco? Y  do Zdo?`  eo Zeo?S'!L(P  fo Zfo?(!)P  go Zgo?T*!M+P  ho Zho?"-p$.P  io Zio?"0p$1P  jo Zjo?" 2p$3P  ko Zko?"+/p$$0P  lo Zlo?"(|$)P  mo Zmo?A:p  no Zno?c  qo Zqo?FY  ro Zro?FS  so Zso?FS  to Zto?NG  uo Zuo?Nt!G  vo Zvo?"Nl$G  wo Zwo?_  xo Zxo?t!_  yo Zyo?"|$_  zo Zzo?V  {o Z{o?!V  |o Z|o?"|$V  }o Z}o?~X  ~o Z~o?}~!vX  o Zo?"$~X  o Zo?tK j  o Zwo?t!K"h w o Zjo?' _ j o Zio?!^ i o Zho?#"#o h o Zgo?##$g g o Zfo?%&s f o Zdo?#$k d o Zco?^ c o Zbo?!^ b o Zao?"|$^ a o Z`o? _ ` o S ~_o2 @?%C&T3d _ o Z^o?%(')Y ^ o Z]o?%0p'1Y ] o Z\o?%+/p'$0Y \ o Z[o?%Np'G [ o ZZo?%'d Z o ZYo?%'[ Y o ZXo?%'~] X o ZRo?%'a RB o  fD8c?_$%B o  fD8c?p$%dB o  fD8c?p$%YB o  fD8c?v$%]B o  fD8c?p$`%`aB o  fD8c?p$])%])YB o  fD8c?U (t (lB o  fD8c?t /_ /i o S ~Qo2 @?LCen Q o Zo? d  o Zo?\ B o  fD8c?MB o  fD8c?M`B o  fD8c?MWB o  fD8c?M[B o  fD8c?MZ o  fDo?< R D  Tu > ?, u " ?      BCDE(F 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| \OL[0 @   mT   @ Tt @ ?1 J  t  A <r AY r  B <q B tGw q  C <p C p \` 2,3#4 D# kl2 E 0?23#4xB F <D?z,33\` 2,3#4 G# )l2 H 0?23#4xB I <D?z,33f2  s *Ԕ?00}b :''  3"4f  l  m3 ); 3 xB n <D?w>f Z#4 )% o3  l `2 pB c $ ?Z#$wxB q <D?# #wxB r <D?4 $4 )%w`2 s c $ ? #4 $wx" t <G  ?*= ''B u  fD1?*=' w Zw ?) 0  f k   x3 )$&' l2 y 0?k   z Tz ?s w f k   {3 )$W!&'#l2 | 0?k   } T} ?s w  ~  x0e0e    BjCRDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)R!R)SQj[@  Z$8   Z ?)?/%[    x0e0e    BdCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)`Rd9@  `"$N#  Z ?)n!>%"  ǎ Tǎ?)"w#|  Ȏ TȎ?)""##  v Zv ?)!    Z ?)@8 p     x0e0e    BACyDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)y'fL"A&@  @ r"  TG?) b'.f l 3 )  xB  <D?"~8` l # l`2 B c $ ?l]"xB  <D?]ll`2  c $ ?l"xB  <D?"  Z ?) .  f  N  3 )c? 2  H? N   T ?   f  N  3 )c#?%2  H? N   T ?     Z ?) f  N  3 )o 2  H? N   T ?   f  N  3 )$o%2  H? N   T ?     Z ?)? f  N  3 )  2  H? N   T ?   f  N  3 ) # %2  H? N   T ?     Z ?)7   "  TG_ ?)& p3|&"  TG_ ?)Pp|&"  TG_ ?)p|&   0e0e    BCPDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||) P0_ 6 $HU1 @    i p$  Z ?) !"_$ B   fD1?)'B   fD1?)'  Z ?),H"-$    0e0e    BCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||) <#wy'I* @   M $ Ɏ TɎ?)f ! "  ʎ Tʎ?)*!0" 8f L   Ύ3 )* % ,&N2 ώ 3  k lB Ў 0DAL  8f L   ю3 )%5&N2 Ҏ 3  k lB ӎ 0DAL  8f L   Ԏ3 )~%&N2 Վ 3  k lB ֎ 0DAL  r2 ˟ 6Ԕ?)&#  Z  ?)# >   x"  <G ?)D @0  Z  ?)   f k   3 ) Xl2  0?k    T  ?s w  f k   3 )  ;l2  0?k    T  ?s w     x0e0e    B'CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||) {'@  :8^    0e0e    B;C DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)#&;` @  ?Qx [f k   3 )($)'l2  0?k    T  ?s w  x"  <G ?) ,x"  <G0 ?)y ;   Z  ?) %     Zj  ?)* F  j   Zi  ?) k  i   Z ?) Q$     0e0e    BLCSDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||) SA-uLt @    ]K%   x0e0e    B CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)&+ G V}@  %$   x0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)"!* 8&@  $a   x0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)kxy @@   %   x0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)N[XU $J@  " $   0e0e    B CDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||) X P;H>$ l @   ~&    x0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)rd[ pm@  ,$   x0e0e    BC|DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)|x z"eLP1@  ,&#$   x0e0e    B?CdDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||)ID d -??.@  *a$  Z ?)i G    Z ?)C t   Z ?)G   Z ?)    Z  ?)z    Z  ?)    Z  ?)CTi    Z  ?)    Z  ?) j    T?)A "    T?)A "    T?)A "   T?)A /"-   T?)A "   T?)A d"c   T?)A "   T?)A "   T?)A " 8f L   3 )  N2  3  k lB  0DAL  8f L   3 )N2  3  k lB  0DAL  r2  6Ԕ?)SgIr2  6Ԕ?)3Qr2  6Ԕ?) r2   6Ԕ?)yL / (b !c'  . 3"hT" ~ C G ~ B~  : N2 ~ 3 7q8 ~ B~O N2 ~ 3 1K ~ B~I  N2 ~ 3 8  ~ B~[S T" ~ C G A & ~  f    B" CJDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||"  '&  J@  #" )r ~  f    B* CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||* ' :@  #"   ~  f    B CFDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||  E F@  #" +q "~ B"~   #~  `#~ ?+  $~  `$~ ?@@  %~  `%~ ?5X T" '~ C G!c' ^z : XU  (~3 #"   ]H2 )~ #  X  *~ <~*~: U  ~ +~ B}+~ }    ,~S dF` !`@8`T!`T`'`TZZ!C"  N2 -~ 3 k lB .~ 0D  T" /~ C G[ +{ 0~ Bz0~ l  zJf E  U 1~3 *  WH2 2~ # E  U 3~ <y3~{   y 4~  `b4~ ?0 {y b    5~S dF` !`@8`T!`T`'`TZZ!C"v X N2 6~ 3 k lB 7~ 0D  ^z  A> 8~3 #" v \$ H2 9~ #  A> :~ <m:~  m ;~  `k;~ ?s D k <~  f    BCDEF @  +* 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||UG\ Tbu@  #" * SC =~  f    BCDEF @  +* 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Y@NoA.b@  #"  8 >~  f    B#CDEF @  +* 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||#'#3 @o@  #" a; ,  `U, ?8$ Uyh ''-5 ۢ 3"(` $8 Y' ܢ#  "s'&4B ݢ TD333?$8 Y'? {B ޢ TD333?$w Y'w {B ߢ TD333?$Y'{B  TD333?$Y'{B  TD333?$Y'{B  TD333?$Y'{B  TD333?$HY'L{B  TD333?$Y'{(` 8  # t'4B  TD333?8 ; {B  TD333?s w {B  TD333?{B  TD333?{B  TD333?{B  TD333?{B  TD333?HL{B  TD333?{(` ?  # y'4B  TD333?? ? {B  TD333?w w {B  TD333?{B  TD333?{B  TD333?{B  TD333?{B  TD333?HL{B  TD333?{B  TD333? .H .{  T 333?-}.{    T 333? ),q*{  B  TD333?J(+{B  TD333?J(J({  T 333?',({  B  TD333?++{  T 333?N+,',{  B  TD333?v'+){B  TD333? v' +){B  TD333? P( "P({  T 333?d '!({  B  TD333?*,{  T~ 333?t*N+{ ~   T} 333?',-{ } B  TD333? * ,{B  TD333? + "+{  T| 333?d N+!',{ | B   TD333? "y' ".){   TN 333?a" ' $'{ N    TM 333?a"( $){ M B   TD333?&v'&+){B   TD333? "* ",{  TL 333?a"t* $N+{ L   TK 333?a"', $-{ K B  TD333?&*&,{B  TD333?&M('M({B  TD333?'M('+{B  TD333?&+'+{  TJ 333?) n*{ J B  TD333? F( +{B  TD333? F( F({  TI 333?u ' ({ I B  TD333? + +{  TH 333?u J+ $,{ H B  TD333? s' (){B  TD333? q's'{B  TD333? ().){  TF 333?~ '%'{ F   TE 333?~ (%){ E B  TD333?v'+){B   TD333?P(P({ ! TC !333?'?({ C B " TD333? * ,{B # TD333? **{B $ TD333? ,,{ % TB %333?~ q*%J+{ B  & TA &333?~ $,%,{ A B ' TD333?*,{B ( TD333?++{ ) T@ )333?N+?',{ @ B * TD333?y'.){B + TD333?v'+){B , TD333?*,{B - TD333?*,{B . TD333?M(M({B / TD333?M(+{B 0 TD333?++{B 1 TD333? * *{B 2 TD333?,)){B 3 TD333? *  *{ 4 T? 4333? ''{ ?  5 T> 5333?(){ >  6 T= 6333? 1,2{ = B 7 TD333?t03{B 8 TD333?t0t0{ 9 T; 9333? 0,0{ ; B : TD333?33{ ; T: ;333?x3,R4{ : B < TD333?/V1{B = TD333? / V1{B > TD333? {0 "{0{ ? T7 ?333?d 0!0{ 7 B @ TD333? 34{ A T6 A333?2x3{ 6  B T5 B333?R4+5{ 5 B C TD333? 3 4{B D TD333? 3 "3{ E T4 E333?d x3!R4{ 4 B F TD333? "/ "Y1{ G T3 G333?a"7/ $0{ 3  H T2 H333?a"0 $1{ 2 B I TD333?&/&V1{B J TD333? " 3 "4{ K T1 K333?a"2 $x3{ 1  L T0 L333?a"R4 $+5{ 0 B M TD333?& 3&4{B N TD333?&x0'x0{B O TD333?'x0'3{B P TD333?&3'3{ Q T/ Q333?1 2{ / B R TD333? q0 3{B S TD333? q0 q0{ T T+ T333?u 0 0{ + B U TD333? 3 3{ V T* V333?u u3 O4{ * B W TD333? / R1{B X TD333? //{B Y TD333? R1Y1{ Z T) Z333?~ 1/% 0{ )  [ T( [333?~ 0%1{ ( B \ TD333?/V1{B ] TD333?{0{0{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ^ T' ^333? 0?0{ ' B _ TD333? 3 4{B ` TD333? 3 3{B a TD333? 44{ b T& b333?~ 2%u3{ &  c T% c333?~ O4%(5{ % B d TD333? 34{B e TD333?33{ f T$ f333?x3?R4{ $ B g TD333?/Y1{B h TD333?/V1{B i TD333? 34{B j TD333? 34{B k TD333?x0x0{B l TD333?x03{B m TD333?33{B n TD333? 52 52{B o TD333?,'2'2{B p TD333?72 82{ q T# q333?4/ 0{ #  r T" r333?01{ " B s TD333?H *H$2{B t TD333?H * *{B u TD333?H$2$2{B v TD333?' *v' *{B w TD333?''2v''2{B x TD333?v' *v''2{B y TD333?v'.'.{ z T! z333?'-'{ !  { T {333?(-){   | T |333?n*-G+{   } T }333?$,-,{   ~ T ~333?1/- 0{    T 333?0-1{    T 333?2-u3{    T 333?O4-(5{    T 333?''{    T 333?(){    T 333?u*O+{    T 333?),-{    T 333?8/0{    T 333?01{    T 333?2z3{    T 333?S4-5{    T 333?2x3{    T 333?R4+5{    T 333?(){    T 333? ''{    T 333?t*N+{    T 333?',-{    T 333?7/0{    T 333?01{    T333?q*J+{   T333?$,,{   T333?''{   T333?(){   T333?2u3{   T333?O4(5{   T333?1/ 0{   T333?01{   T333?m$'&'{   T333?m$(&){   T333?m$j*&D+{   T333?m$,&,{   T333?m$-/&0{   T333?m$0&1{   T333?m$2&n3{   T333?m$H4&!5{ h !$c'.  3"  T  333?$%{    T  333?=}*P +{    T  333?'!({    T  333?" '5({    T  333?5*H+{    T  333? *+{    T  333? *&+{    T  333?!~- .{    T  333?B~-.{    T  333?~-}.{    T  333? ~-#.{  B  ND?7%7&{B  ND?&w&{B  ND?w&w'{B  ND?&'{B B ND?w(w){B  ND?(){B  ND?)P#){B  ND? )){B  ND?P#)P#*{B  ND?#+#,{B  ND?)*{B  ND?)*{B  ND? ) *{B  ND? + ,{B  ND?+,{B B ND?+,{  T  333? ~-~.{    T  333?~-.{    T  333?~-E.{    T  333?#~-c'.{  B £ ND? , ,{B ã ND? , v-{B ģ ND? , ~-{B ţ ND?,,{B ƣ ND?,v-{B ǣ ND?,v-{B ȣ ND?,,{B ɣ ND?,v-{B ʣ ND?,~-{B ˣ ND?!,%,{B ̣ ND?!,!~-{B ͣ ND?%,%~-{Pb !'r  N 3" ϣ Z ϣ ? $ }  4f  l  У3  $u xB ѣ <D?}>f Z#4 )% ң3  l `2 ӣB c $ ?Z#$}xB ԣ <D?# #}xB գ <D?4 $4 )%}`2 ֣ c $ ? #4 $}x" ף <G  ? $'r }B أ  fD1? $ ' } ٣ Z ٣ ? f Y  }   ڣ Z ڣ ? " }  f k   ۣ3  $ 2'3l2 ܣ 0?k  } ݣ T ݣ ?s w}  f k   ޣ3  $_2'l2 ߣ 0?k  }  T  ?s w}     x0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| ~g"(.@  $Z}  Z  ?  %K}     x0e0e    BCwDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| wd[ Rg@   $}  Z  ? %B}    Z  ? M 8}     x0e0e    BICDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| (I4I>@  !Mj }.f l 3  q 6 xB  <D?"~}8` l # l`2 B c $ ?l]"}xB  <D?]ll}`2  c $ ?l"}xB  <D?"}  Z  ?  9 H }  f  N  3  ^X2  H? N }  T  ?  }    Z  ?  2 !}  "  TG_ ? b l}`  ^! #  r H "  NGx? ^!}B   `D1?w^w!}.f l 3  b  ]xB  <D?"~}8` l # l`2 B c $ ?l]"}xB  <D?]ll}`2  c $ ?l"}xB  <D?"}B   fD1? b }"  TG_ ?  }f  N  3  } u 2  H? N }  T  ?  }    Z  ? O  :}  f  N  3  ^2X)2  H? N }  T  ?  }  "  TG_ ?  h}f  N  3  } 2u )2   H? N }   T  ?  }     Z  ? R >}  f  N   3  602   H? N }  T  ?  }    Z  ? p "}  "  TG_ ? 8l}.f l 3  8^xB  <D?"~}8` l # l`2 B c $ ?l]"}xB  <D?]ll}`2  c $ ?l"}xB  <D?"}B   fD1? 8}"  TG_ ? }f  N  3  UL2  H? N }  T  ?  }    Z  ? 2:}  f  N  3  630*2  H? N }   T  ?  }  " ! TG_ ? i}f  N  "3  U3L*2 # H? N } $ T $ ?  }   % Z % ? 3}  " &  fG  333>? L} ' Z ' ? gw}   ( Z ( ? '+ }  " ) T 333? .f l *3   b |xB + <D?"~}8` l ,# l`2 -B c $ ?l]"}xB . <D?]ll}`2 / c $ ?l"}xB 0 <D?"}.f l 13   b xB 2 <D?"~}8` l 3# l`2 4B c $ ?l]"}xB 5 <D?]ll}`2 6 c $ ?l"}xB 7 <D?"}.f l 83  :xB 9 <D?"~}8` l :# l`2 ;B c $ ?l]"}xB < <D?]ll}`2 = c $ ?l"}xB > <D?"}.f l ?3  :|xB @ <D?"~}8` l A# l`2 BB c $ ?l]"}xB C <D?]ll}`2 D c $ ?l"}xB E <D?"}B F  fD1? }B G  fD1? }B H  fD1?  l }B I  fD1? l} J  x0e0e    B CsDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| s`ek6N b@  b } K Z K ? C "d }   L Z L ?   }  l2 M 0Ԕ? IgQ}&b  ,#*3 [ 3" kt Z kt?  ,#*3   lt T lt?  <.2   nt T nt? R*.W"2   S S ~ S2 @?- 2  B U  fD|?11B V  fD|?..B W  fD|?// X Z[ PFPFX?en/\0 [  Y ZZ PFPFY?XV.D/ Z  Z ZY PFPFZ?X01 Y -b  j%(  3"  B F>j%(i   Z  0e0e    BCCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||G C@CC2@    !gT" [ C GG !(gJf u  \3 GI"#H2 ] # u g ^ < ^ H Gg  Jf u  _3 G $* b&H2 ` # u g a < a H Gg  T" b C Gq G#!&lJf u  c3 G!lq#H2 d # u l e < e H Gl  Jf u  f3 G~$ g&H2 g # u u h < h H Gu  T" i C GgG  (v j B jGQ ? `  k3 G d 9 a!N2 l 3 ># >t m < m1 0t   n B nGj#%t   o B oGh !w "r   p B pGP!\"r   q B qGd#P%y   u B uGOt   v B vG ;  9!z   w  f0e0e    B#C4DEF @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||G#!hZK4@   "%w x B xG #U%   y  0e0e    BCDELF$ @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||G Z"*pm7#q! @       !w z  0e0e    BCNDEXF( @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||GN 1p/\'<AP_<x\( B d@       R!w { B {G A 4?!   | B |Gvt  B }  0e0e    B9CBDEF< @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||G%%E':^BRM~J{r.i9X8F740Oh0 @c8xD(B@            X"t ~ B ~G4&(  Jf u  3 G&<'H2  # u x  <  H Gx    B GS %#6't  zf va  3 0 G & o&r2  6333? a |B  ND?v9 |zf va  3 g G&{&r2  6333? a tB  ND?v9 tzf va  3 ̬sGw'R(r2  6333? a B  ND?v9  _  0e0e    BCDE4F @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||G jkt@:!ve78U) @    v $w ` B)`G6 "< $y )2-b +5 d 3" +  0e0e    BBCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| BnBB<@  ,Q._T" , C G.l%5_Jf u  -3 >/{0H2 . # u _ / < / H G_  Jf u  03 1 x3H2 1 # u _ 2 < 2 H G_  T" 3 C Gq B.3eJf u  43 .r0H2 5 # u e 6 < 6 H Ge  Jf u  73 1T3H2 8 # u p 9 < 9 H Gp  T" : C Gg,5q ; B ;1%-@*.p  Pf # > <3 J-P.N2 = 3 ># >p > < >1 0p   ? B ?2j0 2p   @ B @H.W/n   A B Ao.{/n   B B BF0]2q   F B F/+S,n   G B G3t-Vz.n   I B I/8$1v   J  0e0e    BCDELF$ @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||7a.]u wpX, F @      ,.n6 K  0e0e    BCpDEpF0 @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||hpq*=^SIf?FUcqKflS: g@         ++.n L B L t-/z.n   M B MW+t,n  B N  0e0e    B9CBDEF< @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||%%E':^BRM~J{r.i9X8F740Oh0 @c8xD(B@            a+8/n O B Oh3'5{  Jf u  P3 '324H2 Q # u t R < R H Gt   S B SU2%S4q  zf va  T3 g @33r2 U 6333? a qB V ND?v9 qzf va  W3 g 3j3r2 X 6333? a nB Y ND?v9 nzf va   3 ̬s?4Z5r2   6333? a B  ND?v9  a <(ah01x ( b  f0e0e    B#C4DEF @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||#!hZK4@  /2r c  0e0e    BCDE4F @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| jkt@:!ve78U) @    L-1r<b . ". i 3"/  Tu ?  d u"  NG?. ".       BC[DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@6 JI[@  h  Tt ?0l t` *H| # 3 _72  H?*H|  Ns ?FH s       BCRDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||!RN J@  h2  N?( !T  Tr ?  r  T ?  "  NG?F Ppz` "   #  t~  6"   2 – H?  ` *H| Ö# B;2 Ė H?*H| Ŗ NŖ ?FH  Ɩ T;Ɩ ?  ;    ǖC nV@ < S ,>O`T`T+OW4W<UcN2 Ȗ 3  F# ZB ɖ S D      ʖC nV@ < S ,>O`T`T+OW4W<f r N2 ˖ 3  F# ZB ̖ S D   ͖      BlCvDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Y(6l3DvK2-@  jH Ζ TΖ ?  ; l2 u 0Ԕ?V g      BaCDEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||.ya@  _dy h N h ?zXk  +b !"'z6 z 3"dT"   C Gt%!#'5   B %#C $  T"   C G%$4N2   3 % s).  B % ) *  N2  3 %h%(  B %&(    B % %5 r&    ~B4CDEF%#t0U#4@  f ')  ~B@CDEF%@!.,eR@   T(>*  B %_+)qL*    B % <(p5)    Bl `T% /. 0 l   B%')   B% 35" T"  C G%F$&.N2  3 %'j*  B%6(+* N2  3 %%"(  B%s &F"(   B%q%{&   ~BCDEF%FVm:,2@  N,'(   ~BCEDEF%# c.E@  l((a p) ! B!%f( %*  " B"%&:'  # B#%O9* 1,  $ B$%%!'p&)  % B%%-\%/   & ~B*CeDEF%e@V 9*G@   +:,' ' ~B CDEF%1 (O o @  '& &  ( ~B*CbDEF%*!1b^#ZY@  |,F,& ) ~BCVDEF%VwJa1 @  &LQ'& * B*%a%&*  + B+%O"#5$7  , B,%a,-&  - B-%a['S(&     .S t V%@ < S ,>O`T`T+OW4W<]*+N2 / 3  F# )`B 0 c $D  )    1S t V%@ < S ,>O`T`T+OW4W<% .t /N2 2 3  F# )`B 3 c $D  ) 4 BCDE@F %*p:~XB 6ljt @     0"$-2f #M% N3 %0b2 5 BLCDE(F %S"E"Lvm @   #M%$4 6 B,CDE@F ,\4,,j9 @     $0%4 7 B7% 4(&z6W  8 B8%/0G  9B BLCDE(F% %S"E"Lvm @   8//. :B B,CDE@F %,\4,,j9 @     ?0 03 ; B;%kJ)*,G  <B BLCDE(F% %S"E"Lvm @   3%0':1 = B=%Z03%1     >S t V%@ < S ,>O`T`T+OW4W<4 5N2 ? 3  F# 5`B @ c $D  5 AB BLCDE(F% %S"E"Lvm @   k +D}+ B r5BLCDE(F% %S"E"Lvm @   r,K, C B,CDE@F %,\4,,j9 @     D2-- D BD%y + +  EB hF B,CDE@F %,\4,,j9 @      +x., F BF%N00v1#  G BG%b0v1   H BH%b2v2  I BI%G +} ,  J BJ%Va,9-  K B8K%A-T. 8 L BL% o, - * u B5CvDEpF0%%&*j}r M&%Iu 5  Pcv3ij@         2P84v v B v%b3p4  (b  L %  3"N" k 3 G0 *Tj\ l <ll0AT;CW lN" m 3 G0 L  ^N" n 3 G0zB^ o <$o0zt_ $>` E  U p# 0w4H2 q # E  Uf~ r 6#r{  f #    sC ^PF0` !`@8`T!`T`'`TZZ!F9N2 t 3 k }lB u 0D  }>`  A> v# 0BVH2 w #  A>j~ x 6"x j "N" y 3 G0E&a z <!z0] !    {C ^PF0` !`@8`T!`T`'`TZZ!8N2 | 3 k nlB } 0D  n    ~C ^I2F0` !`@8`T!`T`'`TZZ!YN2  3 k {lB  0D  {    C ^PF0` !`@8`T!`T`'`TZZ!DN2  3 k zlB  0D  z>`  A> # 00H2  #  A>g~  6  g  >`  A> # 00,H2  #  A>i~  6 i >`  A> # 00ZH2  #  A>l~  6 l &   0e0e    BC^DEdF, @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||0 p ,7&liyF#oa T6( % Fgdu uPuu*ss^@        xa   0e0e    BzCHDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||0 <zxhvH@  ,_  <0?9_   <0x g_   <m0  m   v0e0e    BC<DE(F @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||0 !i 0  _/.< @   h~   v0e0e    BCDE(F @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||0 MB !-JV @   0O$q   f0e0e    BCDEF @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||0xt\-@  4|x  <0 % h    v0e0e    BdCDE(F @  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||0 dGBB!cC~(M @   56e,b !;'' Ԥ 3" Bt T Bt?A!;''   Ct N 0*Ct?A'  M    Dt N 0*Dt?A'     Et Z 0*Et?AnQ   Ft N 0*Ft?A'    Gt Z 0*Gt?Ac   Ht N 0*Ht?Ac$   It N 0*It?A 1` i   Jt N 0*Jt?A`y!%   Kt Z 0*Kt?Ad   Lt N 0*Lt?A~P&   Mt N 0*Mt?Av3&   Nt N 0*Nt?A.!7#   Ot Z 0*Ot?A    Pt      BC8DEF 5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||A48@ = /g Qt  z    B CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||A, @   s Rt  t    BC}DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||A=&.}@  `} St T St?A &    Tt  t    BBCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||A6WB@ ??r Ut T Ut?A w   Vt  t    B/C DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||A/R @ - 6Q` R ;# A^B WtB ZD?RB Xt ZD?:R Yt T Yt?AQxSw  B Zt  `D?A. / B [t  `D?A.L /g \t T \t?A~   ]t N 0*]t?A.%:&   ^t      BCDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||A  z@N"a>@ @   XK'' _t T _t?AXy#=#$  ` 3U  <# A;!UB `tB ZD?3B at ZD?3U  bt T bt?A\^  B ct ZD?Aaa6B dt ZD?A;!+;!F et C BCDEF?A@ k y!B ftB ZD?AU8!x!B gt ZD?A3y#3$ ht T ht?A &    Ф C B` CXDE F?X\` @ `HBh $'~2  3"N"  3 G&8 '~29f t *  3 $ xB  <D?0 * 9`2 B c $ ?t r : 9xB  <D?K t  t 9xB  <D? 0 9`2  c $ ? t : 9  T ?% } 9 ~B  BD?&6&'6&9  T  ? _  9  rf Z (& 3  'h%f t *  3 Z K xB  <D?0 * 9`2 B c $ ?t r : 9xB   <D?K t  t 9xB ! <D? 0 9`2 " c $ ? t : 9N" # 3 G (&9rB $ 6D?u u&9rB % 6D?3 3&9rB & 6D? &9rB ' 6D?! !&9 (      BCDE(F 5% 8c8c     ?A)BCD|E|| TGX/G] @   h %9 )      BC]DE(F 5% 8c8c     ?A)BCD|E|| ]M%; QW @   #_&9 *      B$CADE(F 5% 8c8c     ?A)BCD|E|| $AM/G_S @   YcV%9 +      BCJDE(F 5% 8c8c     ?A)BCD|E|| JM$: PT @   b&9 ,      BCyDE(F 5% 8c8c     ?A)BCD|E|| yM! 6K[ @    ["6&9H2 - # \! $9 . < .s&" #9  H2 / # ! $9 0 < 0&"#9  H2 1 # !\ $9 2 < 2&"B#9  H2 3 # ! $9 4 < 45&"#9  H2 5 # _!!# $9 6 < 6v!&"##9   7 T 7 ?b $ $9   8 T[ 8 ?$;$9 [  9 TY 9 ?$|$9 Y  : TV : ?#$$9 V  ; T; ?d"$%$9 Jf B R  <3  ) H+H2 = # B R 9 > <>Z * N9  ? T? ?' (9 Jf G|7 9 @3 . 1H2 A # G|7 99 B <B]7 99 8f    C3 / \( )N2 D 3 k 9lB E 0D  9 F Zw F ?*e/9 w  G ZkG ? * e/9 kJf  72 9 H3 ] . #1H2 I #  72 99 J <1J 7 99 1 K ZA K ?j *D e/9 A  L ZL ?L *& e/9 H2 M # ^ 9 N <kNy 9 k O TO ?`Z q 9 H2 P # ^S 9 Q <Q @9 Jf 5 . R3 \ H2 S # 5 .9 T <TL 9 Jf @ ~  U3 \ H2 V # @ ~ 9 W < WV D h9  8f    X3 = d  N2 Y 3 k 9lB Z 0D  9 [      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@   w 9 \ T. \ ? ' 9 .  ] T9 ] ?T U9 9 Jf 5 . ^3 \?  H2 _ # 5 .9 ` <8 `L 9 8  a T a ?d  "9   b T b ?N  9   c T c ?6  v9   d      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@   & Y9 e      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@   & 9 f      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@    <9 g      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@   x  !9H2 h #  %09 i < i 9   j Tj ?l  9 H2 k # e%9 l <lR9 Jf 5 . m3 $H2 n # 5 .9 o <oL 9 Jf @ ~  p3 $H2 q # @ ~ 9 r <rV D h9 8f    s3 v T! N2 t 3 k 9lB u 0D  9 v      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  V9 w Tw ?9J)9  x Tx ?fI 9 Jf 5 . y3 P$ H2 z # 5 .9 { <{L 9  | T| ? "9  } T} ?9  ~ T~ ?F9        B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  6!ok9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  6o9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  PM9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@   P!9H2  #  m!9  <  W9   T ?] t 9 H2  # Vm9  <_C9 Jf 5 . 3 lH2  # 5 .9  <L 9 Jf @ ~  3 lH2  # @ ~ 9  <NV D h9 N8f    3 g  N2  3 k 9lB  0D  9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  ez9  TM ? *9 M  TL ?X9 LJf 5 . 3 Bl H2  # 5 .9  <KL 9 K  TJ ? Z"9 J  TH ?g9 H  TG ?y9 G       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  ~\9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  ~9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  _?9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  `{ !9H2  # & .9  <FA 9 F  TB ?(j J 9 BH2  # &c9  <@IP9 @Jf 5 . 3 $H2  # 5 .9  <?L 9 ?Jf @ ~  3 $      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~H2  # @ ~ 9  <8V D h9 88f    3 t  N2  3 k 9lB  0D  9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  9  T  ?W7'9    T ?e 9 Jf 5 . 3 $O H2  # 5 .9  <L 9   T ?- "9   TZ ? 9 Z  TZ ? 9 Z       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  i9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  L9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@   !9H2  # r! #/9  <F! #9 F  T ?t!k # 9 H2  # r!d#9  <!#Q9 Jf 5 . 3 p!#H2  # 5 .9  <L 9 Jf @ ~  3 p!#H2 ¥ # @ ~ 9 å < åV D h9  8f    ĥ3 Q#u $ N2 ť 3 k 9lB ƥ 0D  9 ǥ      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  "!#9 ȥ Tȥ ?#8&(9  ɥ Tɥ ?h#f' 9 Jf 5 . ʥ3 p!P# H2 ˥ # 5 .9 ̥ < ̥L 9   ͥ TB ͥ ?x# &"9 B  Υ T>Υ ?b#&9 > ϥ T4ϥ ?J#'9 4 Х      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  # :#j9 ѥ      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  #:#9 ҥ      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  "#M9 ӥ      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  " #!9Jf B R  ԥ3 )>H+H2 ե # B R 9 ֥ <֥Z * N9  ץ T= ץ ?:' (9 = Jf G|7 9 إ3 #.g1H2 ٥ # G|7 99 ڥ < ڥ]7 99  8f    ۥ3 \(^)N2 ܥ 3 k 9lB ݥ 0D  9 ޥ Zl ޥ ?*e/9 l  ߥ Z4ߥ ?6*e/9 4Jf  72 9 3 .#1H2  #  72 99  <3 7 99 3  Z2 ?*e/9 2  Z1 ?*e/9 1Jf B R  3 F)H+H2  # B R 9  <0Z * N9 0  T/ ?'W(9 /Jf G|7 9 3 o.1H2  # G|7 99  <.]7 99 .8f    3 \()N2  3 k 9lB  0D  9  Z- ?i*Ce/9 -  Z, ?*[e/9 ,Jf  72 9 3 .J#1H2  #  72 99  <+ 7 99 +  Z* ?*e/9 *  Z) ?*e/9 )Jf B R  3 r)H+H2  # B R 9  <(Z * N9 (  T' ?'(9 'Jf G|7 9 3 .1H2  # G|7 99  <&]7 99 &8f    3 \()N2  3 k 9lB  0D  9  Z% ?*pe/9 %  Z$ ?* e/9 $Jf  72 9 3 3.v #1H2  #  72 99  <X 7 99 X  ZW ?@*e/9 W  Z# ?!*e/9 #Jf B R  3 ") %H+H2  # B R 9   <" Z * N9 "   T!  ?!'#(9 !Jf G|7 9  3  .4#1H2   # G|7 99   <  ]7 99  8f    3 Z$\(,%)N2  3 k 9lB  0D  9  Z ? *!e/9   Z ?&*&e/9 Jf  72 9 3 $.&#1H2  #  72 99  < 7 99   Z ?$*o%e/9   Z  ?w"*Q#e/9  Lf 1-'6 3 )&.   0e0e    BCpDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(O p@  u 3- 69   0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||{~\_vW@  j - 69 B  0e0e    BCpDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(O p@  1-69   0e0e    BCsDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||2s-E](~C@  \- 69   0e0e    BCpDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(O p@  P3-h69   0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||{~\_vW@  E-69 B  0e0e    BCpDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(O p@  1-69    0e0e    BCsDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||2s-E](~C@  7-69 !  0e0e    BCpDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(O p@  3-/69 "  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||{~\_vW@   -69 #B  0e0e    BCpDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(O p@  1-69 $  0e0e    BCsDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||2s-E](~C@  -69 %  0e0e    BCpDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(O p@  3- 69 &  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||{~\_vW@  -P 69 'B  0e0e    BCpDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(O p@  &1->69 (  0e0e    BCsDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||2s-E](~C@  -N69 )  0e0e    BCpDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(O p@  &3-'69 *  0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||{~\_vW@  &-"'69 +B  0e0e    BCpDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(O p@  "1-$69 ,  0e0e    BCsDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||2s-E](~C@  v#- $69N" - 3 G'&19 . T. ?*& '9 f t *  /3 &@ o)xB 0 <D?0 * 9`2 1B c $ ?t r : 9xB 2 <D?K t  t 9xB 3 <D? 0 9`2 4 c $ ? t : 9rB 5 6D? ' 19rB 6 6D? ' 19rB 7 6D?'''19rB 8 6D?j'j19 b  # Ī 3"r : 6 ?J #O C ZC ?JF t%U LL  nuZ VJf #-  ;3 Jw nH2 < # #- V = <= NV  >      B=CcDEF 5% 8c8c     ?A)BCD|E||J=X:7 8c@  ,V ? Z? ?JuNV Jf #-  @3 Jp ZH2 A # #- V B <B NV  D      B=CcDEF 5% 8c8c     ?A)BCD|E||J=X:7 8c@  UV E ZE ?J p NV  F ZF ?J>!!K h M'84 G 3"N" H 3 GO('849f t *  I3 M B xB J <D?0 * 9`2 KB c $ ?t r : 9xB L <D?K t  t 9xB M <D? 0 9`2 N c $ ? t : 9 O T O ? l9  ~B P BD?O4'49 Q T Q ? * 9  f t *  R3 u xB S <D?0 * 9`2 TB c $ ?t r : 9xB U <D?K t  t 9xB V <D? 0 9`2 W c $ ? t : 9f  H)f" X3 2'N" Y 3 G H)f"9rB Z 6D?  f"9rB [ 6D? f"9rB \ 6D?L Lf"9rB ] 6D?" "f"9 ^ T ^ ? 9  Jf @ ~  _3 wC H2 ` # @ ~ 9 a < aV D h9  8f    b3 r 8 _ N2 c 3 k 9lB d 0D  9 e      BJC>DEF 5% 8c8c     ?A)BCD|E||!'&JE@@>@  , q 9 f T f ? R 9   g Trg ? 9 r h Tqh ?< 9 q i Tpi ?`{ w9 pJf B R  j3 VT H2 k # B R 9 l <olZ * N9 o8f    m3 mʟx! N2 n 3 k 9lB o 0D  9Jf G|7 9 p3  F4H2 q # G|7 99 r <nr]7 99 n s Tms ?  9 m t Tlt ?| "7 9 lJf B R  u3 *_ mH2 v # B R 9 w <kwZ * N9 k8f    x3 mʟ|%N2 y 3 k 9lB z 0D  9Jf G|7 9 {3  ?\H2 | # G|7 99 } <j}]7 99 j ~ Ti~ ?  9 i  Th ? B 9 hJf B R  3 #T %H2  # B R 9  <gZ * N9 g8f    3 mʟ%X&N2  3 k 9lB  0D  9Jf G|7 9 3  q#4%H2  # G|7 99  <f]7 99 f       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  L  @9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  X  9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  S  !9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  ` f 9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  L -$ p$9       B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  X $ $9  Te ? % &9 e  Td ?| N#7 $9 d  Tc ?1 9 c  Tb ?! "9 b  Ta ?19 a       B C*DEF 5% 8c8c     ?A)BCD|E||&  N " *@  Mp9Jf B R  3 W5H2  # B R 9  <`Z * N9 `8f    3 WcLN2  3 k 9lB  0D  9       B C'DEF 5% 8c8c     ?A)BCD|E|| '''i @  b*yO9  T_ ?z? 9 _  T^ ?S 9 ^f t *  3 i ,xB  <D?0 * 9`2 B c $ ?t r : 9xB  <D?K t  t 9xB  <D? 0 9`2  c $ ? t : 9N"  3 G'39rB B 6D?xx39rB  6D?'9rB  6D?)!')!9Jf @ ~  3  H2  # @ ~ 9  <]V D h9 ]  T\ ? 9 \  T[ ?I Y" ,9 [       BC"DEF 5% 8c8c     ?A)BCD|E||}. "@  1 & &9Jf @ ~  3 wH2  # @ ~ 9  <ZV D h9 Z8f    3 r 8  N2  3 k 9lB  0D  9       BJC>DEF 5% 8c8c     ?A)BCD|E||!'&JE@@>@    9Jf @ ~  3 : wH2  # @ ~ 9  <YV D h9 Y  TX ?Y,9 XJf @ ~  3 w/H2  # @ ~ 9  <WV D h9 W8f    3 r}8 K N2  3 k 9lB  0D  9       BJC>DEF 5% 8c8c     ?A)BCD|E||!'&JE@@>@   ] 9Jf @ ~  3  H2  # @ ~ 9 ¦ <V¦V D h9 V æ TUæ ?C9 UJf G|7 9 Ħ3 q H2 Ŧ # G|7 99 Ʀ <TƦ]7 99 T( Ǧ      BCDE@F  5% 8c8c     ?A)BCD|E||y4B~t:SL5#x7f @     +9 Ȧ TSȦ ?9 S ɦ TRɦ ?9~9 R ʦ      BcCzDE(F 5% 8c8c     ?A)BCD|E|| >)F#+c0Fi){AFz @   S9 ˦      B{CDE(F 5% 8c8c     ?A)BCD|E|| u'>V+&{2csKoZ @   ]!9 ̦ TQ̦ ?\89 Q ͦ TPͦ ? o&S9 P Φ TOΦ ??><9 O Ϧ      B C!DEF 5% 8c8c     ?A)BCD|E||Jx  !@  Mp9Jf B R  Ц3 =W H2 Ѧ # B R 9 Ҧ <NҦZ * N9 N8f    Ӧ3 WciN2 Ԧ 3 k 9lB զ 0D  9 ֦      B C4DEF 5% 8c8c     ?A)BCD|E||  ^ 444 4 @  cvr9 צ TMצ ?lS1 9 MJf G|7 9 ئ3 q! d H2 ٦ # G|7 99 ڦ <Lڦ]7 99 L ۦ TKۦ ?(9 K ܦ TJܦ ?99 J ݦ      B{CDE(F 5% 8c8c     ?A)BCD|E|| u'>V+&{2csKoZ @   ]!e9 ަ TIަ ?%!9 I ߦ THߦ ? &9 H  TG ?^!?["9 G       B C4DEF 5% 8c8c     ?A)BCD|E||*#Ht * 4@  I$f0%9Jf B R  3  P$M&H2  # B R 9  <FZ * N9 F8f    3 Wc#}$N2  3 k 9lB  0D  9       B C(DEF 5% 8c8c     ?A)BCD|E|| ((u(a @  X%k%9  TE ?af!' #9 EJf G|7 9 3 g4$ x&H2  # G|7 99  <D]7 99 D  TC ?<$%9 C  TB ?. #w#9 B       B{CDE(F 5% 8c8c     ?A)BCD|E|| u'>V+&{2csKoZ @   "R!y$9  TA ?%.G'9 A  T@ ? !&$9 @H2  #  9  <?  9 ?H2  # - j 9  <>B e 9 >H2  #   9  <=  9 =rB  6D?V''V'9       BC)DEF 5% 8c8c     ?A)BCD|E||)- ZXm@    s9  T< ? 9 <Jf @ ~  3 v>H2  # @ ~ 9  <;V D h9 ;8f    3 r7 Z N2  3 k 9lB  0D  9       BJC>DEF 5% 8c8c     ?A)BCD|E||!'&JE@@>@  ' k 9Jf @ ~  3  H2  # @ ~ 9  <:V D h9 :  T9 ?DY +9 9H2  #   9  <8  9 8  T7 ?!# 9 7Jf @ ~   3 C!v#H2   # @ ~ 9   <6 V D h9 68f     3 r$7 % N2   3 k 9lB  0D  9       BJC>DEF 5% 8c8c     ?A)BCD|E||!'&JE@@>@  j$ $ 9Jf @ ~  3 " ;%H2  # @ ~ 9  <5V D h9 5  T4 ?$Y`&+9 4H2  # " ,% 9  <# '% 9        BcCzDE(F 5% 8c8c     ?A)BCD|E|| >)F#+c0Fi){AFz @   19       BcCzDE(F 5% 8c8c     ?A)BCD|E|| >)F#+c0Fi){AFz @   N#$9rB  6D?-'-9(       BCDE@F  5% 8c8c     ?A)BCD|E||y4B~t:SL5#x7f @     m69(       BCDE@F  5% 8c8c     ?A)BCD|E||y4B~t:SL5#x7f @     !YL$9Jf B R  3 <)R +H2  # B R 9  <Z * N9 8f    3 mʟi+,N2  3 k 9lB  0D  9Jf G|7 9 !3  +)2o+H2 " # G|7 99 # <#]7 99  $      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  J ) +*9 %      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  V p* *9 & T& ? * +9  ' T' ?{ )5 )9  ( T( ?' (9 Jf B R  )3 /R 1H2 * # B R 9 + <A+Z * N9 A8f    ,3 mʟ1W2N2 - 3 k 9lB . 0D  9Jf G|7 9 /3  p/21H2 0 # G|7 99 1 <@1]7 99 @ 2      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  J ,0 o09 3      B=CcDEF 5% 8c8c     ?A)BCD|E||=X:7 8c@  V 0 09 4 T?4 ? 1 29 ? 5 T>5 ?{ M/5 09 > 6 T6 ?- .9  7 Tq7 ?'-(9 q 8      B C4DEF 5% 8c8c     ?A)BCD|E||*#Ht * 4@  7,+T\+9Jf B R  93 |*;,H2 : # B R 9 ; <p;Z * N9 p8f    <3 Wc)*N2 = 3 k 9lB > 0D  9 ?      B C(DEF 5% 8c8c     ?A)BCD|E|| ((u(a @  F+Y+9 @ To@ ?P' 8)9 oJf G|7 9 A3 Ua* ,H2 B # G|7 99 C <nC]7 99 n D TmD ?h*;+9 m E TlE ?7)f *9 l F      B{CDE(F 5% 8c8c     ?A)BCD|E|| u'>V+&{2csKoZ @   )A!*9 G TkG ?+t-9 k H TjH ? '&*9 j I      BcCzDE(F 5% 8c8c     ?A)BCD|E|| >)F#+c0Fi){AFz @   z)*9( J      BCDE@F  5% 8c8c     ?A)BCD|E||y4B~t:SL5#x7f @     '(Gy*9 K TiK ?--.9 i L      B C4DEF 5% 8c8c     ?A)BCD|E||*#Ht * 4@  7Y1T19Jf B R  M3 0;2H2 N # B R 9 O <OZ * N9 8f    P3 Wc00N2 Q 3 k 9lB R 0D  9 S      B C(DEF 5% 8c8c     ?A)BCD|E|| ((u(a @  F1Y 29 T TT ?P- e/9 Jf G|7 9 U3 U0 2H2 V # G|7 99 W <W]7 99  X TX ?0h19  Y TY ?c/f609  Z      B{CDE(F 5% 8c8c     ?A)BCD|E|| u'>V+&{2csKoZ @   @/A!09 [ T[ ?239  \ T\ ? &.& 19  ]      BcCzDE(F 5% 8c8c     ?A)BCD|E|| >)F#+c0Fi){AFz @   /19( ^      BCDE@F  5% 8c8c     ?A)BCD|E||y4B~t:SL5#x7f @     T.G09 _ vy0* _.@`TU`TU  9 y ` vx0* `.@`TU`TU)9 x a vw0* a.@`TU`TUUH9 w b vv0* b.@`TU`TUt 9 v c vt0* c.@`TU`TU"&9 t d      BC)DEF 5% 8c8c     ?A)BCD|E||)- ZXm@   s9 e      BC)DEF 5% 8c8c     ?A)BCD|E||)- ZXm@   s9 f      BC)DEF 5% 8c8c     ?A)BCD|E||)- ZXm@   #v9 g      BC)DEF 5% 8c8c     ?A)BCD|E||)- ZXm@  S" ]#s9 h      BC"DEF 5% 8c8c     ?A)BCD|E||}. "@  +9 i      BC"DEF 5% 8c8c     ?A)BCD|E||}. "@   (9 j      BC"DEF 5% 8c8c     ?A)BCD|E||}. "@  + )9 k      BC"DEF 5% 8c8c     ?A)BCD|E||}. "@  p#e$)9 l Ng ?!,&9 m Tsm ?!&G9 s n Ng ?!$!&i9 o Tqo ?!z& 9 q p Ng ?!#O&E#9 q Tpq ?!V$'&9 p r Ng ?o!8)%})9 s Tos ?z!*&,9 o t Ng ?L!c/%/9 u Tnu ?W!0&29 n v Tmv ?c + 9 m w Tlw ?@  9 l x Tjx ?X  9 j y Tiy ?& M; 9 i z T z ?Q 9   { T { ?& r; 9   | T | ?$c & 9   } T } ?!& "; 9   b  %  3"Jf }05R 9 3 KX  H2  # }05R 9A  <5+ \8A   ~BCDEFKL@  M F B  ~B CDEFKy>  @  h  B  ~BY CDEFKm2 dY ~@  o,BJf }05R 9 3 K H H2  # }05R 9B  <5+ \8B Jf }05R 9 3 K K# H2  # }05R 9B  <5+ \8B Jf }05R 9 3 KlFH2  # }05R 9B  <5+ \8B Jf }05R 9 3 K6FH2  # }05R 9B  <5+ \8B   Z ?K  B   Zo ?Kx  C o  Z ?KW<C f  t* 3 L  xB  <D? 0 *B`2 B c $ ? tx :BxB  <D?Q ttBxB  <D?0B`2  c $ ?t:Bx"  <G ?L %BxB  <D?L %B  Z  ?L  - J  x"  <G ?K C #,Bx"  <G ?K &#B  Z  ?K x C    Z  ?K & {C  b !' ƪ 3"  B  ?T!'T  N2  3 U # U  B U #L U    Z  ?TH.R> [  N2  3 V!Y  B V!IY     0e0e    B*CDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||T *'\./.4 @   g [   0e0e    BCDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||T.*c, 0@   YN2  3 Wu  r T  B W k W         B&C|DEF 5% 8c8c     ?A)BCD|E||T 3&%1$7|@   -W  Z  ?T W  N2  3 Xn kU  B X R^md    Z  ?T ; W    Z  ?T .) > \     BCDEF?T@bYHb % 06 ê 3"` § c $?RG'1CZ ܧ S ?RO306C` ݧ c $?R-1C` ާ c $>?R"&%(C` ߧB c $>?R%(C` B c $?R/-1C  H?Ri'(C   H?R. N0C   H?R3U$5C   H?RB/x0C   H?Rj&2(C `  (&p # 6S/1lB  0D>?H HXlB  0D>?p pXlB  0D>?   XlB  0D>?   pXlB  0D>? H(&HX`  (&p ç# SW(N*lB ħ 0D>?H HXlB ŧ 0D>?p pXlB Ƨ 0D>?   XlB ǧ 0D>?   pXlB ȧ 0D>? H(&HX`  (&p ɧ# hS+Z,lB ʧ 0D>?H HXlB ˧ 0D>?p pXlB ̧ 0D>?   XlB ͧ 0D>?   pXlB Χ 0D>? H(&HX`  (&p ϧC# 6S/h1lB Ч 0D>?H HXlB ѧ 0D>?p pXlB ҧ 0D>?   XlB ӧ 0D>?   pXlB ԧ 0D>? H(&HX`  (&p էC# hSM+C,lB ֧ 0D>?H HXlB ק 0D>?p pXlB ا 0D>?   XlB ٧ 0D>?   pXlB ڧ 0D>? H(&HX ۧ H    ۧ?S!*L/X   H?SPI/0a `2  c $?S '2X  H?S042h   H?S,-b   H?S()Z   H?S/*O,X b  7$a&  3"N2  3 NG Z H  B N` H    ~B CDEFMy>  @   I  ~BY CDEFMm2 dY ~@  ^.##IN2  3 O Z=# J  B O !#I  N2  3 P;"Z$I  B P"A$I  N2  3 Q&;"$I  B Q?"$H    Z  ?MbI    Z  ?M!,#J  f @ *&36 3 M 7$a&`  t* # @ *n ,xB  <D? 0 *I`2 B c $ ? tx :IxB  <D?Q ttIxB  <D?0I`2  c $ ?t:Ir"  6G ?@ +&36IrB  6D?@ 0&0I  T  ? *$ ,I  x"  <G ?M # Ix"  <G ?M !#%I   Z  ?M X !J     Z  ?M ! #J  d.b !' Ǫ 3"2"   TG?Y!'6f t *   3 Y )xB  <D?0 * 6`2 B c $ ?t r : 6xB  <D?K t  t 6xB  <D? 0 6`2  c $ ? t : 6  Z  ?YM Y 6    Z  ?Y  6    Z  ?Y 1 6  f  1  3 YTX l2  0? 1 6  T  ?Q  6  f  1  3 Y ul2  0? 1 6  T  ?Q  6  f  1  3 YX l2  0? 1 6  T  ?Q  6  f  1  3 YIl2   0? 1 6 ! T ! ?Q  6   " B pb"YYHq6   # B pb#YTY!q6   $ B pb$YGA Z 6   % Z % ?YQj 6  x" & <G  ?Y #6fB ' s *DY 6 ( B pb(Ye.~6   ) B pb)Y]"u6   *  0e0e    B4CDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Yq'Ng 1 *4@   E6 +  0e0e    BC`DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Y$H@h`@  f E 6 , Z , ?Y a 6   - Z - ?Y8k  6   .  0e0e    B1C_DE4F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Y _`m>9~I 5J! 1:6R @    B A#'6 /  0e0e    BCVDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Yl3tjAV@  x' 6 0 Z 0 ?Y  6   1  0e0e    B-CDE(F @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||Y '  @o- @   a$ ' 6 2      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Z 2 ?Y" '} :   3 B pb3Y#.#<6   4 B pb4Y#W<6      5S tVY@ < S ,>O`T`T+OW4W<)  N2 6 3  F# 6`B 7 c $D  6    8S d$FY` !`@8`T!`T`'`TZZ!L-N2 9 3 k 6lB : 0D  6    ;S d$FY` !`@8`T!`T`'`TZZ!N2 < 3 k 6lB = 0D  6f  1  >3 Y` # l2 ? 0? 1 6 @ T @ ?Q  6   A Z PFA?YD z 7  h  % B 3"5 C T PFPFC >? ] %4   D T PFPFD >? n%4   E < E "?"44   F < F "?"64  & h wM'. G 3"7 H H H?wM'.4   I N I ? "A .%4  B J ND? .% '4rB K 6D? ''4 L N L ?&E"I)4   M N M ?` J!4  rB N 6D?C # #4B O ND?C J!C #4 P N P ? Pc4  rB Q 6D? Q 4B R ND? f 4 S  |    B=C DEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| = = @T$'4 T N T ?)&!,4   U N U ?+-4  ~B V BD>?v<(*4<0h $#'/ W 3"3" X NG?$#'/4 Y T Y ?Q$Q%4   Z T Z ?#U /%4   [  0e0e    BrCwDEF @  5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||wfQzdw.r @  * A%)4 \ T \ ? m%* &4      ]S tV@ < S ,>O`T`T+OW4W<$s+,N2 ^ 3  F# 4`B _ c $D  4f t *  `3 <$T(xB a <D?0 * 4`2 bB c $ ?t r : 4xB c <D?K t  t 4xB d <D? 0 4`2 e c $ ? t : 4 f T f ?T&m'4   g T g ?6&0(4  r" h 6G  ?{%&.4`B i c $DZ{%[.4f  1  j3 q) D+l2 k 0? 1 4 l T l ?Q  4  ~f (& m3 &&-r" n 6G  ?(&4f t *  o3  xB p <D?0 * 4`2 qB c $ ?t r : 4xB r <D?K t  t 4xB s <D? 0 4`2 t c $ ? t : 4`B u c $D4`B v c $Dd"e"4f K? w3  &-r" x 6G  ??4f t *  y3 KxB z <D?0 * 4`2 {B c $ ?t r : 4xB | <D?K t  t 4xB } <D? 0 4`2 ~ c $ ? t : 4`B  c $D4  T  ?E'F(4    T  ?+W,4    T  ?*/+4    T  ?* +4    T  ?,/?-4    T  ?'(4    T  ?{'|(4    T  ?'!(4    T  ?"'%(4  ` 0)++ # 0)++l2  0?0)++4  T  ?M)y+4    T  ?&*W*4  ` :,A- # :,A-l2  0?:,A-4  T  ?],)s-4  ` *A+ # t)*l2  0?*A+4  T  ?*'+4  ` 0)++ # )*l2  0?0)++4  T  ?M)y+4  ` :,A- # j ,g-l2  0?:,A-4  T  ?],)s-4  ` 0)++ # )+l2  0?0)++4  T  ?M)y+4  ` :,A- # +L-l2  0?:,A-4  T  ?],)s-4  ` 0)++ # l)J *l2  0?0)++4  T  ?M)y+4  ` :,A- #  *!$,l2  0?:,A-4  T  ?],)s-4  ` 0)++ # ") $*l2  0?0)++4  T  ?M)y+4  ` :,A- # e$ ,%g-l2  0?:,A-4  T  ?],)s-4  ` *A+ # +J -l2  0?*A+4  T  ?*'+4  b !'+ Ȫ 3"9T"  C GZ!'+5  B Z<$ >5    ~BCDEFZ @   .5Jf  d  3 Z/ H2  #  d 5  < X6 5    B Z ^5    Z PF?Za N5  Jf  ]!p 3 ZT"/&  <  )!_5  H2  #  ]!p5  BbCDE(FZ jKIbG<!wvG @   =X%5  B ZaM(*5      S tVZ@ < S ,>O`T`T+OW4W<#> EN2  3  F# 5`B  c $D  5Jf  Z 3 Z-/H2  #  Z5  < 2`*5   ¨ ~BCDEFZ @  ,V"5 è B èZe/!5   Ĩ BCDE(FZ 3K"b(%WR @   - 6 Ũ B ŨZ[@#!5   ƨ BC DE(FZ [   6 <X @   )5 Ǩ B ǨZ$&5  2 Ȩ HѶ |?Z8m ("5 ɨ BɨZ \!"5  ʨ BʨZb$=''5  ˨ B˨Z(='/+5  h $'Q* G 3":N" H 3 G$'Q*2 I <I?L f 2  J ~BCDEF @  C #$2Jf  d  K3  #A &H2 L #  d 2 M <MX6 2  N <N r$2 Jf  ]!p O3 "#&& P <P )!_2 H2 Q #  ]!p2    RS tV@ < S ,>O`T`T+OW4W<c& $'N2 S 3  F# 2`B T c $D  2Jf  Z U3 #&H2 V #  Z2 W <W2`*2  X ~BCDEF @   $"$2 Y <Y"!#2  Z BCwDE(F ?IVOwCm @   %z4(2 [ <[r'&)2  h $('( \ 3";N" ] 3 G$('(2 ^ <^?b |2  _ ~BCDEF @  C 2Jf  d  `3  $A !H2 a #  d 2 b <~bX6 2 ~ c <rc 2 rJf  ]!p d3 "$&! e <ke )!_2 kH2 f #  ]!p2    gS tV@ < S ,>O`T`T+OW4W<c! :"N2 h 3  F# 2`B i c $D  2Jf  Z j3 $!H2 k #  Z2 l <fl2`*2 f m ~BCDEF @  !"2 n <en!2 e o BCwDE(F ?IVOwCm @    D#2 p <dp"&i'2 dV h 'x( q 3"8~ r 6 r ?'x(3   s N s ? >!3   t N t ?2>!` #3  h`  ^P' u#  NP'xB v <D?  P'3xB w <D? ! ^! 3xB x <D?^! ^Q%3xB yB <D? 3%^3%3xB zB <D? !^!3xB {B <D? R#^R#3 | N | ?8H` 3   } N } ? H!3   ~ N ~ ?N"Hv#3    N  ?0$HX%3    N  ?&%'3    N  ?3   b A9 N  3"~  6PF?IA:N/ ~  6PF?IN/ ~  6?IA/ ~  6?IPUl/   B?Isrh/   B?I s)h/ lB B 0?I6I/ZB B S ?I/lB  0?I/ZB  S ?Ix/  B?I7sh/   B?I:s9 h/   B?Ih7/ f  C *B NC NEFjJ?I''M}LxKwIGHFLD@R<7f 2 q- d(#J |z 9I q9 ! "$-I(+/ 2369H=@ CQFQ}IKQNQ@&I/f  C *B NC NEFjJ?I''MMML0MxKLIcLGHKFQKDaJ@OI<HF7F}2Eq-Cd(ZBX#@> <;:9z87I P69 3 0Z--) &a" ^}y _ Q)QhQQ@&U/,2b !'4 ʪ 3"  Bl [TL2%R4 l   Tk  ?[b :" . k   < [ E I    T  ?[Nj*  ` !L N  # [!L xB  <D?9""N  `2 B c $ ?:! xB  <D?:  xB  <D?:L L `2  c $ ?: L N"  3 G[!'4B  ZD?[! ' -B  ZD?[!n1'n1C` 0^ # [jxB  <D?<^`2 B c $ ?<0xB  <D?<00xB  <D?<#`2  c $ ?<0N"  3 G[]&0B  ZD?[|&|x2  0 PFPF[    x2  0 PFPF[ &   x2 ¤ 0 PFPF¤[K&n  x2 ä 0 PFPFä[Kn      ĤC ^F[` !`@8`T!`T`'`TZZ!"  N2 Ť 3 k lB Ƥ 0D  f" Ǥ s *G?[\ #' Ȥ BMCDE(F[ "v eM H C *p0 @    ~  ɤ BCDE(F[ 6lT2x <x[n @   rZ z  ʤ ~BCDEF[D^f2$Z>@  8 l ˤ B CDE(F[ s | p 8 ,] @   c ̤ B8CZDE(F[ HZ$<jZ8 @   (J `  ͤ T ͤ ?[$ 2p    Τ T Τ ?[     դ BPCwDE(F[ ) PBI TB fwla%O @    m  ֤ Tf ֤ ?[Br  f  פ T פ ?[\*'B   ؤ T ؤ ?[   ٤ T ٤ ?[(   ڤ T ڤ ?[v0   ۤ BCDE(F[ W<+ g 8g+K @   z r2 ܤ 6Ԕ?[) ! ݤ B.CDE(F[ . m+ @    "  ޤ T ޤ ?[   ߤ BHCpDE(F[ psMC WLTH @       T  ?[B  x2  0 PFPF[   f"  s *G?[Z(&/  T  ?[     BCDE(F[ jx{Sd J @   H  T  ?["r&d    T  ?[",r&Tn    BCDE(F[ jx{Sd J @   F>:x2  0 PFPF[$"&h  x2  0 PFPF[L $d&l  x2  0 PFPF[z:,].[    BCeDE4F[ JpX@^eHr2}6vve @    `$p  T  ?["&#    T  ?[*"&#    BCDE4F[ JpX@^eHr2m6U @    `Zv %  T ?[r&D#'_      C ^jF[` !`@8`T!`T`'`TZZ!-g.N2  3 k glB  0D  g  ~BCDEF[,%hH(tY@  &@'_  ~B;CDEF[;bOL3In0@  d&V,\r2  6Ԕ?[]>&f'_  T ?[F (&P'`    BCDELF$[!!@"#F;f~^ h1;BtM@      9&~*z  T  ?[' )a    ~BCDEF[.Z}@  z&,^r2  6Ԕ?[D'(t   T  ?[4* \+e     T  ?[p&| (f     T  ?[ )/n  b   NZ ?[D <"s     T  ?[%N"u    T  ?[ (D#,K  b  NZ ?[ "4   ɪ Nɪ ? ') b z % Ӫ 3"`   $ ̪# t "B ͪ ZD|?R $IB ΪB  `D|?##IB ϪB ZD|? $IB Ъ 3 rD|?  IB s  `D|?]. s 3 W?]Algorithm BArial Black"F ]$  r Z r ?]z %   r Z r ?]4 }     s T s?]     s T s?] y    s T PFPF s?]|-   B  s ZD?]p p B  s TD?]q B  s TD?]q    s Z s ?]c + '   `  L F  s# ] XB s  fD+*? L  B s  `D+*? F  s Z s ?]q #$P     s T PFPFs?]k   s T PFPFs?]0k   Ѫ NPFPFѪ? {H $b | t %  3" ժ Z ժ ?`| t %$   ֪ Z ֪ ?`6 1 j %   ת Z ת ?` $ $   ت Zت ?` +$$  ٪ S ~٪2 @?`~ >!y$ B ڪ  `D|?`$ $B ۪  `D|?`$- -$B ܪ  `D|?`9!c#c$ ݪ TPFPFݪ?`"M$$  ު TPFPFު?`$  ߪ TPFPFߪ?`bB$ $` U  ! # `s B  TD?U U !$B  ND?U  $B  ND?U ! !$  Z ?`e  $ `  L F  # ` B   fD+*? L  $B   `D+*? F $  Z ?`b s$ $   TPFPF?`:Y9$   TPFPF?`:$   3 W?`Algorithm AArial Black `$ $b y %"  3" Ss Zg Ss ?_y %" g `   $ # _L "B   `D|?4R $yB B  fD|?4##iB B  `D|?4 $iB  C xD|?4  iB Ys  `D|?_T ` B _s ZD?_ = B `s TD?_ f B as TD?_ f `  L F  cs# _j >f E B ds  fD+*? L  B es  `D+*? F  Ts Zh Ts ?_3 = h  Us Ti Us?_ LV i  Vs Tj Vs?_ Vb! j  ]s Tm PFPF]s?_{!` m  ^s Tn PFPF^s?_ !  n  bs Zo bs ?_ i d o  fs Zp fs ?_L$ p  gs Tq PFPFgs?_ q! q  hs Tr PFPFhs?_aqE r   # W?Algorithm BArial Black&$"'tB  6D?" B S  ?O@0EPJSBg0#AbUY[|_P`dab  s<Jtv U t >t s Tt dt3Rnt ;V#tEt 9/=t5#At wt wt4't hut4t UFtE]1t [VtC3t` twt\7tӁh tC/t R t <j4t Rvwt+VhtrtXtՙVhtc t~ vty tt5t 7 ; tevpK t c} tb~d tr t$t* ut-4 z"t8o}W:tq ttseHti)t 0eu tϖiOtǪ tWU c tE9tBtF9tG\ otq t Ȫg Rt G. m t\` tMt U t)z/$tٝp#t  t ̝;'tIt Ot7jV! 1tWt tJl-l t \tb[~ t  V t w t s5 3tˑ Mt ̑t$3t2"&4H"*+45/44b@ t SZ tUVU .tVV TWV TXV 6t tQ%Pt * _tq t '4% )(4%t +tPddt}E tH.tQ 4zv \t"ˍM )!T׍{ sVt^5 t). t{x %&t56 BtEjt t \t 2~3t t l{t 1Wt 5tZ t ^ t+a t XxtTpt I,t $ t HdW t m t *tQl[tPl]tOl}htr\t Ig tz t` t957 t χ&L tJ Mt,iTqt 9ud t5 t2n !tnE < tKE tAbz tvft e tdY tΟzd t] t< t& t TU tN ZtSB/t[ tP fo t ) fz t @t tCCE^[7_KgUtUt zˉ۳?Ӹݼ8 .!(g.E4E4???V\bn,u)U~ߣ;6"c>>)))*3:`,btIvy~~HL??b(((((--]yB g g g g g (***2*2*2*C=Udijijijijlmq^w^wS\?;ڬ/bb0XZ#u#v#v#=@7BFF-N-N-NP)XRXY[_-fD=W/(((((} XD^ˆ`>bc  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIKJLMNOPQRSTUVWXYZ[\]^_`agdefhjiklmnopqrstuvwxyz{|}~e "("("("("("<"&k.1c>CE[H_H_xgvtvt)zS 2*b3 U!:(.K4K4?@@V"]bnOuN\Q0PPVV))*A*4:2aBbtKv6y~~ƆƆ_~-ggR_>>>>JJq]      )1*1*1*1*t*t*.BCQU ejjlmqowowXRʣBqqqq[bu####>@LBFFDNDNDNPQXX!Z[__fԗNVvUUD}D_ۆzX n̶8}tw6q 1jAgPv00.PNP-fTfEmlmwpp/}U}o)Oӓ "HƮJpV| Kq!#INt%K?j   !@@XXZZ[@[I[o[_._neeggWovox"}EEFFNY   !#$/145=>>??_ajk{}%&&'',--..2334467788>??@@EFHIIJJQRXYYZZ_`bccddijlmmnnstvwwxx!+,016789<=BCCDD_`efjktuwx|} !%&()-.57788=>>@@EFHIIJJLMMNNOPPQQVWXYYZZdffgglmnoopp      !&''((,-2334456677<==>>BCCDDIJOPPQQRRSSTUUVV[\\]]abbccdhjjkkpqqrrs}~  #$$%%34455BCHIOPPQQ_``aahinopqstyz{||}}  #$$%%&)*/1?BHJOQ\_efikkllnoopprssttvwwyy{||   !&',--..349:?@@AAEFPQST]_bcefklmntuz{{||%&+,,--9::;;?@JKMNWY\]_`efghnotuuvv !"##$$%&&''4689>?GHJKSTWX[     !"56677DFFGGMNNOOTUUWW[\`aabbcghlmmnnoppqqrssttuvvwwxyyzz{||}}~     $%&'())**++,,-//0013344577889;;<<>??@@BCCDDFGGHHIIJJNOOPPTUUVV[\nprt     $%'):;;<<>?FGGHHIJJKKLMMNNPQQRRUVVWWZ[[\\_``aadeeffkllmmpqqrrsttuuz{{||~ !!""#$$%%())**-..//56677899::;<<==>??@@ABBCCDEEFFGHHIIJKKLLMNNOOPQQRRSTTUUVWWXX]^^__effggmnnoouvvww}~~ #$)**++23;<<==BCCDDMNNOOQRRSSUWWXX\]]^^hikllmmnooppqrrssuvvwwxyyzz{||}} %&*7<=ALQRV_dehnuv     "##$$'(()),--..566778CDDEEFRSSTTXYYZZ^__``cddeehiijjmnnooz{{| &''((23344>??@@ABBCCDEEFFLMQRRSS]^^__ikoppqqvw      )**++./:;DEEFFNOZ[deeffjkvw         !())**-..//;<GIVW\]ijjkknooppvwwxxyz~      &'2345<=HILMYZZ[[abdefgjkvwz{   !'()*,-0178<==>>@AABBCDDEEOPUVVWWghhiijkklloppqq{|  #$$%%&''((-..//0112234455677889::;;@AKLLMMQRRSSUUVV`ajkkllqrwxxyy())**/0:;;<<>??@@IJJKKRS]^^__`aabbcddeeoprssttwxxyyz{{||       %&&''677889::;;>??@@BCCDDEGGHHIKKLLNOOPPRSSTTUV`bbccdeoqqrrsttuuvwwxx         *,,--34455>??@@HIIJJLLMMRSXYYZZ[deeffglmmnnz{    !!)**++./67:FFGGNOUVX^^__`aabbjkuv       "#%&&'',--..344556677<==>>CDDEEJKKLLOOPPQQRRWXXYY^__``effgghhiinooppuvvww|}}~~        !#$$%%'(()).//00;<<==>??@@ABBCCDEEFFGHHIIJKKLLNOOPPSSTTUUVVZ[[\\`aabbfgghhiijjnoopptuuvvz{{||       !""##./45@BBCCDDEEFGGHHIJJKKMNNOOQRRSSTUUVVWZ[[\\fglmmnnpqqrrsttuuwxxyy{||}}    !""##$'((,,1223366778899>??@@ABBCCEFFGGIJJKKOPPQQUVVWW\]]^^cddeeffgghjkkllqrrssxyyzz  !"*-/067>??AABCCDDEFLMMNNSTTUUXYYZZ_``aadeeffopuvvwwxyyzz{}~~    '(())+,,--2334456677<==>>?@@AAKLLMMNOOPPWX`aabbcddeejkkllxy       !""##$%%&&'(())*++,,-..//01122344559::;;?@FGGHHLMTUUVVZ[abbccijoptuuvvz{      !!""&''((,--..23344;<ABCDDEEIJJKKOPPQQXY^_`aabbefklmnnoorsxyz{{||       !!"")*./78:;@AABBCCDDMNNOOUVVWW]^^__effgghhiipquvxy    $%),/37:?@BCFGGHHIJJKKLNRS[\`cfjnqvwyz}   "##$$&''((23<=EGOPPQQTUUVV^__``lmxz )**++122339::;;<==>>?@BC       !""##())**/001145566;<<==BCCDDIJJKKPQQRRWXXYY\]]^^_aabbccddmnnoouvvww}~~       !!#$$%%())**./45ABBCCMNWXcddeefgghhjkkllmnnooz{     "##$$())**/001167788=>>??DEEFFKLLMMRSSTTYZZ[[`aabbghhiinooppuvvww|}}~~   #$*++,,12233899::?@@AAFGGHHIIJJKKLLMNNOOPQQRRTUUVVXYYZZ]^^__bcjppqqrrssvwwxx{||}}     &'()45566;<=>>??DEFGGHHMNOPPQQVWZ[[\\abcddeeopyz  "##$$+,-.6789=>ABCDJKPQWXXYYZZ[[bcdemnoptuxyz{!")**++89=>HIIJJNOOPPYZZ\\]^^__``aabbccddeeffgghhiirssuu#$+-455KKOPPUUdu                                     # $ . / / 0 0 > ? ? @ @ B B C C H I N O O P P Q R R S S T T U U            ! " 6 9 ; < B C G ^ ^ _ _                           HMagijrs{  "#.//0067;==>>DEJKKLLZ]^_ijlmstxy !!""##$$''((*++,,/0011455669::;;>>??@@AAKLOPPQQSTTUUWXXYY[\\]]cddeejk} 3468IJJKKMNUVVWWmnpq   !!"")*/001145:;;<<CDIJJKKPQRSSTTUV]^^__fgmnnoosttuuz{{||}~~  "$'(34455899::?ADEEFFMNNOOgghhmmnn|}  !""##')+,459:GIIJJNPRSWXbcprrsswx +,,--;<GHHIIUVVWWYZZ[[accddfgghhkllmmpqqrrsttuu{}}~~      !!""$%%&&())**,--..13344799;;>??@@JKMNNOOUVVWW]^^__hirssttuvvwwxyyzz       "##$$&''((899::JKKLLNOOPPRSSTTYZZ[[_``aabfhhiinooppy{{||}          !!"#,-4556678:;BCLMMNNOPPQQRSSTTUVVWWXYYZZ[\\]]^__``abbccdeeffghhiijkkllmnnoopqqrrsttuuvwwxxyzz{{ !24455KLNO`afglnrsxz~   !&',.238:>?DEEFFKLLMMSTTUUZ[moqs     #$&(9::;;=>EFFGG]^`arsxy~  "#())**459;?@DFJKPRVW\]]^^uvxz    $%*,0168<=BCCDDIJJKKQRRSSXYYZZ_``aafgghhlmmnnosuuvv{||}}    %''(()-/68899=>DEEFFGKLPQZ^^__fgnotuuvvw}~     ,--..2378:7 > ? ^ _ d e e f f s t ~                                 ! ! ! ! ! ! ! ! ! !!!!!!!!!!!!)!*!,!-!1!2!;!!?!G!H!J!K!V!W!Y!Z!^!_!h!i!i!j!j!r!s!{!|!|!}!}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""-"."."/"/"6"7"@"A"A"B"B"I"J"S"T"T"U"U"X"Y"Y"Z"Z"^"_"_"`"`"a"a"b"b"g"h"m"n"n"o"o"s"t"y"z"z"{"{""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""###### ############ #!#+#,#,#-#-#2#3#3#4#4#:#;#E#F#F#G#G#K#L#L#M#M#R#S#V#W#a#b#b#c#c#m#n#p#q#y#z#z#{#{###################################################################### $ $ $ $ $ $$$$$$$$$$$$$$$$$$$$$$$$$$ $ $!$!$"$#$#$$$$$%$&$&$)$)$*$+$+$,$,$2$3$7$8$8$9$9$@$B$F$G$G$H$H$O$P$P$Q$Q$[$\$a$b$b$c$c$h$i$i$j$j$v$w$w$x$x$y$z$z${${$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%% % %%%%%%%%%%% %!%!%"%"%)%*%*%+%+%0%1%1%2%2%7%8%8%9%9%?%@%@%A%A%F%G%G%H%H%O%P%P%Q%Q%W%X%X%Y%Y%_%`%`%a%a%i%j%j%k%k%m%n%n%o%o%q%r%r%s%s%t%u%u%v%v%~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%& & &&&&&#&$&2&3&3&4&4&<&=&G&H&R&S&]&^&c&d&r&s&s&t&t&|&}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''' ' ' ' ' ' ' ''''''''''''''''''!'"'"'#'#'.'/'/'0'0'4'5'<'='='>'>'J'K'K'L'L'X'Y'Y'Z'Z'^'_'f'g'g'h'h'm'n'n'o'o't'u'u'v'v''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(( ( ( ( ( (((((((((((&('('(((((3(4(4(5(5(9(:(A(B(B(C(C(O(P(P(Q(Q(S(T(T(U(U(_(h(r(s(y(z(z({({((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()))))))))))) ) ) ) ) ) ) ) )))))))))))))))))) ) )%)&)()))))*)*)+),).)/)9):)=)>)>)?)?)@)A)A)B)B)D)E)E)F)F)G)H)H)I)I)K)L)L)M)M)R)S)U)V)V)W)W)Y)Z)Z)[)[)])^)^)_)_)c)d)d)e)e)i)j)j)k)k)l)m)m)n)n)o)p)p)q)q)r)s)s)t)t)v)w)w)x)x)|)})})~)~))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))*************** * *********************!*"*"*#*#*&*'*'*(*(*.*/*1*2*2*3*3*4*6*6*7*7*9*:*:*;*;*<*=*=*>*>*@*A*A*B*B*C*E*E*F*F*G*H*H*I*I*J*L*L*M*M*O*P*P*Q*Q*R*S*S*T*T*U*V*V*W*W*]*^*^*_*_*b*c*f*g*g*h*h*j*k*k*l*l*s*t*t*u*u************************++++++,,,,,,,,,,,,,,,,,!,",",#,#,&,',',(,(,+,,,,,-,-,0,1,1,2,2,3,4,4,5,5,=,>,>,?,?,E,F,F,G,G,I,J,J,K,K,R,S,Y,Z,\,],_,`,b,c,c,d,d,y,{,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,------!-"-&-(-3-6-:-;-M-O-S-T-_-f-j-k---------------------....................$.%.%.&.&.+.,.,.-.-.2.3.3.4.4.9.:.:.;.;.@.B.B.C.C.D.E.E.F.F.G.H.H.I.I.J.K.K.Q.Q.R.S.S.T.T.Z.[.[.\.\.e.f.f.g.g.o.p.p.q.q.w.x.x.y.y.z.{.{.|.|.................................................................................................................// / //////////////////// / /!/"/"/#/#/)/+/-/././////0/1/1/2/2/4/5/5/6/6/6?6?6@6@6B6C6C6D6D6F6G6G6H6H6I6J6J6K6K6M6N6N6O6O6Q6R6R6S6S6T6U6U6V6V6d6e6e6f6f6h6i6i6j6j6l6m6m6n6n6p6q6q6r6r6s6t6t6u6u6v6w6w6x6x6y6z6z6{6{6|6}6}6~6~66666666666666666666666666666666666666666666666666666666666666667777 777777 7!7%7&7*7+727373747475767677777879797:7:7<7=7=7>7>7@7A7A7B7B7D7E7E7F7F7G7H7H7I7I7K7L7L7M7M7W7X7X7Y7Y7e7g7g7h7h7j7k7k7l7l7o7p7p7q7q7s7t7t7u7u7w7x7x7y7y7z7{7{7|7|7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888 8 8 8 8 8 8888888888888888888888888 8 8!8!8+8,8/8080818187888;8<8<8=8=8I8J8M8N8N8O8O8Z8[8^8_8_8`8`8r8s8s8t8t88888888888888888888888888888888888899999999999999999999999999'9(909191929293949495959697979898999:9:9;9;9@9B9B9C9C9H9J9J9K9K9M9N9N9O9O9X9Y9\9]9`9a9l9m9t9u9u9v9v999999999999999999999999999999999999999999999999999999999999999999999 : :::: :,:-:-:.:.:3:4:4:5:5:::;:;:<:<:A:B:B:C:C:H:I:I:J:J:O:P:P:Q:Q:V:W:W:X:X:]:^:^:_:_:d:e:e:f:f:g:g:h:h:s:t:y:z::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;; ; ; ;;;;;;;;;;;;;;;;;#;$;$;%;%;*;+;+;,;,;-;-;.;.;1;1;2;2;7;8;8;9;9;A;B;B;C;C;D;E;E;F;F;G;H;H;I;I;N;O;O;P;P;U;V;V;W;W;X;X;Y;Y;];^;b;c;h;i;j;k;q;r;s;t;w;x;y;z;};~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<"<#<#<$<$<&<&<'<'<(<)<)<*<*<.</<9<:<:<;<;<@<A<A<B<B<D<D<E<E<K<L<V<W<W<X<X<j<k<k<l<l<z<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<===== = = = = ============#=%=%=&=&=4=7=8=9=C=D=F=G=M=N=R=S=]=^=^=_=_=c=d=o=p=p=q=q=r=r=s=s=t=u=u=v=v=w=x=x=y=y=z={={=|=|=}=~=~====================================================================================================>>>>>>>>> >>>>>>>>>>>>>$>%>%>&>&>'>(>(>)>)>3>4>6>7>7>8>8>9>C>D>D>E>E>I>J>O>P>P>Q>Q>R>S>S>T>T>U>V>V>W>W>d>e>e>f>f>g>h>h>i>i>j>k>k>l>l>~>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ? ? ? ? ?????*?+?+?,?,?7?8?=?>?I?K?K?L?L?Q?R?R?S?S?Z?[?c?d?d?e?e?j?k?k?l?l?x?y??????????????????????????????????????????????????????????????????@@ @ @ @@@@@@ @ @!@!@)@*@2@4@4@5@5@=@>@F@G@G@H@H@P@Q@Y@[@[@\@\@d@e@m@n@n@o@o@w@x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAA A A AAAAAAAAAAAAAAAA!A!A#A$A$A%A%A7A8A8A9A9A=A?A?A@A@AMANANAPAPA]A_AqAsAsAtAtAuAvAvAwAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBB B BBB&B*B*B+B+B-B.B.B/B/B5B6B6B7B7B=B>B>B?B?B@BABABBBBBFBGBQBRBTBUBXBYB]B^BhBiBkBlBrBtBtBuBuB|B}BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCtCuCuCvCvCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDD D DDDDDDDDDDDD D D!D!D%D&D&D'D'D(D(D)D)D+D,D,D-D-D/D0D0D1D1D3D4D4D5D5D7D8D8D9D9D:D:D;D;D=D>D>D?D?DDDFDHDIDKDLDNDODODPDPDWDXD^D_DaDbDdDeDgDhDhDiDiDtDuDuDvDvDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEE E EEEEEEEPEQEI IIIOITIsItIxI{I{I|I|I}I~I~IIIIIIIIIIIIIII#K$K)K*KLLLLLLLLLLLLLLLLLLMMMMMM M MMMMMMM!M#MTMUMWMXMPQ(Q-QLQMQSQTQTQUQUQVQWQWQXQXQZQ[Q[Q\Q\Q^Q_Q_Q`Q`QbQcQcQdQdQiQjQjQkQkQoQpQtQuQzQ{Q|Q}QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRR R R R R RRRRRRR!R"R"R#R#R'R(R-R.R3R4R9R:R:R;R;RERFRFRGRGRHRIRIRJRJRLRMRORPRURVRXRYR_R`ReRgRlRmRsRtR{R|RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSS S SSS(S+S+S,S,S-S.S.S/S/S2S3S3S4S4SLSMS[S\S\S]S]S`SaSaSdSdSgShShSiSiSlSmSmSnSnSqSrSrSsSsSvSwSwSxSxSSSSSSS      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTT T TTTTTTTTTTTT T T!T!T*T+T+T,T,T2T3T3T4T4T:T;T;TU@U@UAUAUBUCUCUDUDUEUFUFUGUGUHUIUIUJUJUKULULUMUMUNUOUOUPUPUQURURUSUSUTUTUUUUU_U`U`UaUaUfUgUhUiUyUzUzU{U{UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVV V V V V VVVVVVVV"V#V'V(V(V)V)V3V4V@VAVAVBVBVJVKVWVXVXVYVYVaVbVnVoVoVpVpVwVxV|V}V}V~V~VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWW WWWWWWW!W"W'W(W)W*W-W.W3W4W4W5W5WPWQWVWWW[W\WeWfWhWiWmWnWuWvWvWwWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW X XXXXXXXXX&X(X(X)X)X*X*X+X+X,X,X-X-X.X/X/X0X0X2X5X6X6X7X7X8X8X9X9X;XY>Y?Y?Y@YAYAYBYBYCYDYDYEYEYFYGYGYHYHYMYNYSYTYYYZYZY[Y[Y`YaYfYgYlYmYmYnYnYpYqYqYrYrYwYxY}Y~YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZ ZZZZZZ&Z)Z5Z7Z?ZBZOZPZYZZZaZcZjZmZmZnZnZsZtZtZuZuZzZ{Z{Z|Z|ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ[[[[[ [ [ [ [ [[[[[[[[[[[[ [ [![![&['['[([([-[.[.[/[/[3[4[4[5[5[:[;[;[<[<[A[B[B[C[C[G[I[I[J[J[O[P[P[Q[Q[V[W[W[X[X[\[^[^[_[_[c[d[d[e[e[g[h[h[i[i[k[l[l[m[m[s[t[t[u[u[x[y[y[z[z[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\ \ \ \ \ \\\\\\\\\\"\#\#\$\$\)\*\*\+\+\0\1\1\2\2\6\7\7\8\8\=\>\>\?\?\D\E\E\F\F\J\L\L\M\M\S\T\W\X\X\Y\Y\^\_\_\`\`\e\f\f\g\g\m\n\q\r\r\s\s\w\y\y\z\z\~\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]] ] ]]] ]!])]*]6]7]7]8]8]@]B]B]C]C]E]F]U]V]]]^]j]l]]]]]]]]]D^E^G^H^Z^[^h^k^r^s^'_(_*_+_;_<_@_A_C_D_K_N_X_Y______________________________________________________________________________________`` ``````` ` `!`!`#`$`$`%`%`'`(`(`)`)`5`6`6`7`7`9`:`:`;`;`=`>`>`?`?`A`C`C`D`D`J`L`L`M`M`O`P`P`Q`Q`U`V`V`W`W`X`Z`Z`[`[`^`_`_`````d`e`e`f`f`j`k`k`l`l`n`o`o`p`p`t`u`u`v`v`z`{`{`|`|````````````````````````````````````````````````````````````````````````````````````````aaaaaaa a a aaaaaaaaaaaa#a$a$a%a%a)a*a.a/a/a0a0a4a5a9a:a:a;a;a?a@aCaDaDaEaEaIaJaMaNaNaOaOaSaTaXaYaYaZaZa^a_aaababacacajakaqarauavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbb b b bbbbbbbbbb7b8b8b9b9b:b;b;bs@sAsFsGsGsHsHsLsMsQsRsWsXs^s_s_s`s`sdsesisjslsmsospsusvsvswsws{s|sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssstttttttttt t t(t)t)t*t*t6t7t7t8t8tCtDtDtEtEtFtFtGtGtHtItItJtJtKtLtLtMtMtOtPtPtQtQtRtStStTtTtVtWtWtXtXtYtZtZt[t[t\t]t]t^t^t_t`t`tatatctdtdtetetgththtititjtktktltltntototptptrtststttttutvtvtwtwtytztzt{t{t}t~t~ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttuuvvvvv!v"v'v(v(v)v)v+v,v,v-v-v7v8v?v@v@vAvAvFvGvGvHvHvJvKvKvLvLvQvSvSvTvTvVvWvWvXvXvZv[v[v\v\vdvevjvkvkvlvlvmvnvnvovovpvqvqvrvrv|v}vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwww w w w w w w w w wwwwwwwwwwwwwwwwwwwwww w w!w!w#w$w%w&w&w'w'w/w0w5w6w6w7w7w8w9w9w:w:w;w|>|?|?|B|C|H|I|I|J|J|K|K|L|L|S|T|^|_|a|b|h|i|i|j|j|q|r|x|y|||||||||||||||||||||||||||||||||||||||||||}}}} }}}}}}}}!}"}"}#}#}$}$}%}%}+},},}-}-}3}4}4}5}5};}<}<}=}=}F}G}G}H}H}Q}R}R}S}S}V}W}\}]}]}^}^}c}d}d}e}e}j}k}p}q}u}v}{}|}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~ ~!~#~$~*~+~+~,~,~3~4~>~?~E~F~N~O~Q~R~X~Y~Y~Z~Z~a~b~f~g~k~l~r~s~|~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !#$,-23344:;;<<BCCDDJKKLLRSSTTZ[[\\cdnoqrwxxyy~$%.045ĀŀЀрԀՀ݀ހ  )*,-4568BCGHQRUV_`ijpqz{Áˁ́ԁՁ݁ށ $%%&&-.45;<@ACDIJJKKRSYZ`aefnoqryzʂ˂˂̂̂ւׂ   !#$*++,,34>?HIKLRSXYYZZablmvwyzƒÃÃăă̓΃΃σσ҃Ӄ؃ككڃڃۃۃ܃܃  '(*+12233:;ABLMVWYZ`aghhiijjkkqrrssyzz{{„DŽȄȄɄɄʄʄ˄˄҄ӄ݄ބ  &'-.89BCEFLMRSSTTZ[[\\bccddmnnoorsxyyzz{{||ȅɅӅԅ܅݅߅     &'/023:;ABBCCVWWXXdelnvwyz†ÆÆĆĆʆˆˆ̆̆҆ӆӆԆԆ݆ކކ߆߆ $%-.0168899@AGHRSUV[\\]]deklvwÇććŇŇ͇·ׇ؇هڇ݇އ     )*,-3478>??@@HINOOPPQQRRYZ`acdijjkkrsxy{|LjȈΈψψЈЈوڈވ!"'(*+45;<<==>>??DEGHNOOPPUVXY^__``denoqrwxxyy}~ɉʉ͉̉Ӊԉ؉ىىډډމ߉ !""##'(0134:;?@@AAEFNOQRXY]^^__cdfgmnnoostvw|}NJɊ̊͊ҊӊӊԊԊ؊ي܊݊ !""##%&&''-.57<=ABDEFGJKMNXY`ajllmmrttuuwxxyy{}}~~‹ċċŋŋNjȋȋɋɋʋˋˋ̋̋΋ЋЋыыӋՋՋ֋֋׋ًًڋڋ܋݋݋ދދߋ     #$$%%'(())+,,--.//0023344677889:BCDNNOOPQYZ[eeffuvvww{|~njȌȌɌɌʌˌˌ̌̌ΌόόЌЌ܌݌݌ތތ!"&''((./34455:;;<<ABBCCHIIJJNOQRRSS]^^__fgghhrsstt~ōƍύЍՍ֍ۍ܍܍ݍݍ  #$)**++23899::=>CDDEEHINOOPPWX]^^__bchiijjnouvvww|}ÎĎ֎؎ݎߎ  '))**12899::>?FGGHHMNNOOTUUVVXXYY_``aaghhiilmmnnrsstt~ďŏŏƏƏˏ̏̏͏͏яҏҏӏӏُڏڏۏۏݏޏޏߏߏ        !!""#$$%%&''(()**++,--../00112334456677899::ABBCCHIIJJ[\\]]tuuvv|}}~~ʐːː̐̐͐ΐΐϐϐ"#$&+,,--2345:;<==>>BCFGPQSTYZefghhiijkkllmnnoopqqrrsttuuvwwxx‘‘ÑÑđǑǑȑȑɑʑʑˑˑ̑͑͑ΑΑБёёґґӑ֑֑בבܑܑؑݑݑޑ    !""##%&&'')**++-..//677889::;;<==>>?@@AABCCDDMNNOOXYYZZcddeenooppyzz{{’’ĒŒŒƒƒȒɒɒʒʒ̒͒͒ΒΒϒВВђђҒӒӒԒԒ֒גגْؒؒڒڒےےݒޒޒߒߒ         !!""#$$%%'(())+,,--/00113445578899;<<==?@@AABCCDDPQQRR^__``accddeffgghiijjkllmmnooppqrxyyzz{|Óēēœ    &'/00119:BCCDDFGGHHJKKLLNOOPPRSSTTUVVWWXYYZZ[\\]]^__``accddegghhikkllmoopprssttvwwxxz{{||}Ȕɔɔʔʔ˔̔ؔڔڔ۔۔ݔޔޔߔߔ    $%()-..//ABGHLMMNNSTTUU]^bcijmo|~~ŕƕɕΕΕϕϕ֕וߕ!!""/0:<GHNOPQSTpqqrrwx{|ÖĖȖʖҖӖӖԖԖٖؖܖݖthomason<E:\KWinPro2PhD\Ph40-Thesis\A12-MainThesis\StCrMainThesis.docthomason<E:\KWinPro2PhD\Ph40-Thesis\A12-MainThesis\StCrMainThesis.docGraham Thomason<G:\KWinPro2PhD\Ph40-Thesis\A12-MainThesis\StCrMainThesis.docthomason<E:\KWinPro2PhD\Ph40-Thesis\A12-MainThesis\StCrMainThesis.docthomason<E:\KWinPro2PhD\Ph40-Thesis\A12-MainThesis\StCrMainThesis.docthomason<E:\KWinPro2PhD\Ph40-Thesis\A12-MainThesis\StCrMainThesis.docthomason<E:\KWinPro2PhD\Ph40-Thesis\A12-MainThesis\StCrMainThesis.docthomason<E:\KWinPro2PhD\Ph40-Thesis\A12-MainThesis\StCrMainThesis.docthomason<E:\KWinPro2PhD\Ph40-Thesis\A12-MainThesis\StCrMainThesis.docthomason<E:\KWinPro2PhD\Ph40-Thesis\A12-MainThesis\StCrMainThesis.doc^b'R2 HO\}H#gnR  CT t Z 5R uG #;mE{xgO\v@s  |p"b G N oV dX[ m3 nR;zx<:xR,1  Iz3D FVv @ O\k* 'G0* >s2 O#o z}% #"{ jzdh B(#; dl d! CH y;\0*gM(wLFӆ8#.- ^F "Q~ `v hDHbZ   V Jwzvz=z4 .)z0*J#Y ] >l    w%=  Qo  2 O\W #A z]  r  g  I #G3  B R  I    UO  ~Z  UN $goU K;X(a  > #( iy 9DL  b ^ 3   -3 .##[ O\(e ze    >>:  G  <9c  5p  ?  O  [   z@  ^_D }?8 <* !oQO\7 ,0*2 `B dPz%lU [X_Moz~X옧,(|rk^  MJ z'z]t P'#j2[ ] h |O\fFK 9 $?##b J 81; fO\'  r2c<\ [L# w 8]| qI ' % Y]R# Eb Z#izX} 8c O " vD ,O\fFR.,iLp sW5 "_4La U xz  ~ `>qW:eO\Lh@QE 2 ? 6CVv>`y 3JVvq 6bzUi h<΃ *O\>  9  7)>h+ G#][ 5 V ro } A#r 4X6^28^";0*YFF FM @N Kq8H(?q} #Zz~  A Vvs-2ޡ1Us  t o}z}  #3]; zH #8X ? ?%X(qSD8 l,O\aq p6' :Y85b@t#poIz3CU^^^-*!zi= Bz0*Hc Up|a U=Hiz(r Vv~$(p>6rkWO\}g*E+. {=N$x Wzv) "^fB#"GO\yn z[  b   kU] z@ l  R  *P  S02! )R!4pN! .! G!Vv6J!gƐ!  q" q" ti" yF"z,"ȉm`J"(m -# O.# L]# 8k#JX# L6### h#it\8# x# J# N#4B$49NWD$ CI$HU,V0+L$ q&$it\S$ D$ h$z I% ,oc% % Y%R.( k%# ~&ƢH-F& ߮VW %&KJ#0&& 6& TK&z7&#&6X K&R(.' h84'z#'#'&M`G (*Vf(>YyL%(#4x:( iA]( Hlv( B(^@C?( (zi)(&")O\() '6) Q_:)O\A?)O\7)zLY'*R9@*#mn*O\fy*0*R*rkRC+O\uX+zs+ + J+ a,//l,  s,O\, =,#m g- C}-  -#D}- - D- P. .rk;A#. LOO. kEc. T. wu. .Q\ / D/ F5/v(_glQ/z rr/ L/ 7/ ?O/ 8/ a960=m70 e ?0 V0*9d0 =k0>7:n0 q0O\X0 v0#I0zk0 0 H%0 1 E~1 g.1 t.1 g;1ڙ*,*N1 1 D218aZ]1 h1 ]1 )Y1 Q1  < 2*V|Q2 "24d2#2.SR'2E\v;2 2 Be 33ZV4`3 B!3B$FZ33 4g3 hv3 23<L3zd3O\,3 53 P3n3 /4a4Vv!|4VvU4 a4 \f4 w4 *5 5 t5Vv=v?5 r5 "5 WW5 5 W5Sv)6#346t2V6z@G]3w6*V,'6 86 B6 6 I6# 6 A 7 P"7z>7 #C@7 O7 ?W7 2a7O\:2q7#B|7O\c7 ul7O\:7#*7#j7 8 Yw8 ez8 38Vvc\8^M8 =8 B9.cOSB9@ }9 +9 "9 pt9 9#+o[: wh: }Ft: &:#o?: : 5: vm:VvK: ^:!.Pm;#Ut; H; I;$gK;#J; \<#Uqq< lt< X<Sg=2 r+?]X!= W&=rkA= XfC= 1|= C=(=  >#j> pG>朆'5L>"VKk> Zn>zGJ;> !j? ? _b?ud? a?Vvg?+a? 0? 4x@*V2@it\`*&@z?X\@Vvwsg@#n~@ D@ Yr@ %c@:GMt@ ^T$A E[+A *&pAO\AO\/0A#LuA#tA q}A#oA /B a $B=3$Bz:/Bz8>/B^UB u]B JB #B BƞpP'B ?B 5Bz@ rB^C zVC kyC Cz)RC =HD#}D DD 0bD z1(J 62J "XQJ J pJ K P#K k@XK xqK pK WKO\iKO\"NL qL iAL JL mL q M jM 0^M;fzM 1M*Ve N 7NVvS&N^v*N  gNzc;N CLN# O AD'O +&-O n,KO BfO0*`qO o{O AWPVv5P_P h\hP =PVv Q rQ ._0Q Vb=Q N`Q#(xQ#DQ#CiQ \Q#GQ FQ %R R 8 R^nS _S oS#|/S zaS *fS #kS6RxS >S#[S }S ZS S#sTo:!TzV^TO\!zT %T 2CU ~4Uz!9U q U oU $.Uit\JVO\0V 1UV vWV#VwV %^FD}^ ^it\dK_Vv_ \;_ `a_#se_ BBj_lZ_ 8w_ ^_ʊ` V0`  `  ` 8` 9a#K^a N_a#_!yaz2}ark>Ia Na @a#ka a [a \a Szbz@ `V!b w3b U>Rb ~b ~wb ]c c w=c#(Eca>Yoc "c sc #c kc(B:c Ac WcgƐ czWVc0*l7d `Rd Z?[d#gY_d Ild !xdzIdRKzed JdT[Zd#E,e8d-8eVvyf;eO\he ce j"f 5zGf^,iflP+wf %fO\Qf0*vf ^f#NfO\ 'g]?>g )Ig ?gzu0gz`g hz$h#?VhO\4[h kyjhY/%7oh 'gth Ch# Kh#Vh`Zk9i iROi Xgi*V'i0*i 1i$g 3i0* j Rj Jkj _~jzpXj%qOMj#%zjzsHkO\Vk F5Wk uzk qkVv$k YWkVv~k $k _'l [O7l ];l(%Cl LBDlm8$klzYlz^l#!l'`!l~~l UE4mit\ Nm:Nm OWVm#@jm#*vm Nr|m¿wmO\m  tmzRm e,nzR)gn lon  @qn<\DWnzZ{n^+[n 1o h^o8L,eo f%o koz1yp Xp Nq^q0*q {{:r h$r##Mr^ r#}rz r r+rVvVs#zszH0,s  }5s<~VsXb \s#Ys&r bs#=Isf=^t#bNVt ,At qt CAu @du !v  $v }*v^R=v )Cv ^E|vzv @4vb}L:7v#'{w sJwzw#!w rcwd ~w R:w,Hwz @x 5M1x P@xVvfOYx gx D.x Rx^xz@ x#Fny  y <#z 'Mz Hz(1z'z>^z Hzz6z  zz@ G{zgY{Vva{4zCA{|lZu{Vv5g{ K{ #|^z{%|#:| -H| As^| Pck|zva|O\Q|zU|PZL0#| `R}\} W%}Vv 4} zJ} $2~O\]-M~ +`~ mt~ p~ z~64~ &]~^u~0*)^r5+V]1U#= $  hh^h`OJQJo(@.@.@..@...@ ....@ .....@ ......@ .......@ ........*hh^h`o(-^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJ QJ o( hh^h`OJQJo(- hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(h pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(- hh^h`OJQJo(hh^h`o(- 9h^9`OJQJo( hh^h`OJQJo(^`o(- h^`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo(hh^h`o(- hh^h`OJ QJ o( hh^h`OJ QJ o(^`o(-hh^h`. hh^h`OJQJo( hh^h`OJQJo(hh^h`o(()hh^h`. hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( h^`OJQJo( h^`OJQJo( hh^h`OJQJo( h^`OJQJo(hh^h`o(-^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(-^`o(- h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o(h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJ QJ o(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJ QJ o(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(hh^h`.^`o(- hh^h`OJ QJ o( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`.88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L. hh^h`OJQJo(- h^`OJQJo(hh^h`. 9h^9`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`.hh^h`o(() hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(- hh^h`OJQJo(hh^h`o(-hh^h`.hh^h`. h^`OJQJo( hh^h`OJQJo(h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJ QJ o(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJ QJ o(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJ QJ o( h^`OJQJo( hh^h`OJ QJ o( hh^h`OJ QJ o(hh^h`. hh^h`OJQJo(hh^h`.@.@.@..@...@ ....@ .....@ ......@ .......@ ........ h^`OJQJo( h^`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(-h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJ QJ o(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJ QJ o(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJ QJ o( hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(-hh^h`.hh^h`.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( hh^h`OJ QJ o(^`o(-hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(-hh^h`.^`o(- h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. hh^h`OJQJo(-]^`]o( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo(hh^h`) hh^h`OJQJo( 9h^9`OJQJo(hh^h`o(() hh^h`OJQJo(-^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`o(- hh^h`OJQJo(hh^h`o(- hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo(p^` Figure .hh^h`o(. hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( 9h^9`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(-hh^h`. hh^h`OJQJo( hh^h`OJQJo(hh^h`o(-hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo(^`o(- h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`o(-^` Figure . hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`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( hh^h`OJQJo( hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o(^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo(hh^h`.hh^h`o(- hh^h`OJQJo(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( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJ QJ o(hh^h`o(- hh^h`OJ QJ o(hh^h`. hh^h`OJQJo(- hh^h`OJ QJ o( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`o(() hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo(hh^h`o(-h^`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( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo(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( hh^h`OJ QJ o(hh^h`.hh^h`o(. hh^h`OJQJo(@.@.@..@...@ ....@ .....@ ......@ .......@ ........ hh^h`OJQJo(^`o(- hh^h`OJQJo(hh^h`.P^`P..^`...xp^`x....  ^` .....  X ^ `X ......  ^ `....... 8^`8......      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~.. `^``......... hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(h^`.^`.^`..^`... ^` .... ^` ..... ^` ...... ^`....... ^`........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo(hh^h`.P^`P..^`...xp^`x....  ^` .....  X ^ `X ......  ^ `....... 8^`8........ `^``......... hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o(^`o(-h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJ QJ o(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJ QJ o(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJ QJ o( hh^h`OJ QJ o( h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo(^`o(- hh^h`OJ QJ o(08^`056Q :hh^h`. h^`OJQJo(^`o(- hh^h`OJ QJ o(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.^`o(- ^`OJQJo(o pp^p`OJ QJ o( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( ^`OJQJo(o PP^P`OJ QJ o(^`o(- hh^h`OJQJo(hh^h`. hh^h`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. hh^h`OJQJo( h^`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo(- hh^h`OJQJo(hh^h`. hh^h`OJQJo(- hh^h`OJQJo(- h^`OJQJo(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(^`o(- hh^h`OJQJo(-hh^h`o(-hh^h`. hh^h`OJQJo(- h^`OJQJo(hh^h`.hh^h`. hh^h`OJQJo(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( hh^h`OJQJo( hh^h`OJQJo(- hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJQJo(@xhh^h`[] hh^h`OJQJo( hh^h`OJQJo(^`. h^`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(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( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( 9h^9`OJQJo( hh^h`OJQJo( hh^h`OJQJo(- hh^h`OJQJo(^`o(- h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`.hh^h`. hh^h`OJQJo( hh^h`OJQJo(h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJ QJ o(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJ QJ o(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo(^`o(.^`.L^`L.m m ^m `.==^=`. L ^ `L.^`.^`.}L}^}`L.hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`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`OJ QJ o(^`o(-hh^h`56[].p^` Figure . hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hhh^h`o(.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. hh^h`OJQJo( hh^h`OJQJo(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( hh^h`OJ QJ o( h^`OJQJo( hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo(^`o(- ^`OJQJo(o pp^p`OJ QJ o( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( ^`OJQJo(o PP^P`OJ QJ o( hh^h`OJQJo(hh^h`o(-hh^h`o(- hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(8^` Figure .^`o(- hh^h`OJQJo( hh^h`OJ QJ o(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(-^`o(- hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo(-^`o(-^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o(@ hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo(hh^h`. hh^h`OJQJo(^`o(-hh^h`. hh^h`OJQJo(hhh^h`o(-h^`.hULU^U`L.h% % ^% `.h  ^ `.hL^`L.h^`.hee^e`.h5L5^5`L.hh^h`o(- hh^h`OJQJo(h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJ QJ o(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJ QJ o(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o(^`o(- hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo(hh^h`o(-hh^h`.^`o(-08^`0o(Table . hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo(hh^h`.@xh^` Figure . hh^h`OJQJo(^`o(- hh^h`OJQJo(^`o(- ^`OJQJo(o   ^ `OJ QJ o(   ^ `OJQJo( xx^x`OJQJo(o HH^H`OJ QJ o( ^`OJQJo( ^`OJQJo(o ^`OJ QJ o(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo(hh^h`o(-@.@.@..@...@ ....@ .....@ ......@ .......@ ........ hh^h`OJQJo( hh^h`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hh^h`.P^`P..^`...xp^`x....  ^` .....  X ^ `X ......  ^ `....... 8^`8........ `^``......... h^`OJQJo(hh^h`o(-^`o(- hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(- hh^h`OJQJo(-^`o(-^`o(-hh^h`.^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(Table . hh^h`OJQJo( hh^h`OJQJo(hh^h`o(() hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( h^`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo(hh^h`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(- hh^h`OJQJo(hh^h`o(-hh^h`. hh^h`OJQJo(-^`o(-^`o(- hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( 9h^9`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(- hh^h`OJQJo(- hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( 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(- hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo(hh^h`o(- hh^h`OJQJo( hh^h`OJQJo(hh^h`o(- hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo(hh^h`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(-^`o(-^`o(-hh^h`o(.^`o(- hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(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( hh^h`OJQJo(^`o(- hh^h`OJQJo(hh^h`. hh^h`OJQJo(^`o(-88^8`o(- pp^p`OJQJo(o @ @ ^@ `OJ QJ o(   ^ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( PP^P`OJQJo(o   ^ `OJ QJ o( h^`OJQJo( hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`.P^`P..^`...xp^`x....  ^` .....  X ^ `X ......  ^ `....... 8^`8........ `^``.........hh^h`o(- hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh QQ^Q`OJ QJ o(h ! ! ^! `OJQJo(h   ^ `OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h aa^a`OJQJo(oh 11^1`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(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( hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(@.@.@..@...@ ....@ .....@ ......@ .......@ ........ hh^h`OJQJo(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( hh^h`OJQJo(^`o(- h^`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(@ hh^h`OJQJo( hh^h`OJQJo( ^`OJQJo( pp^p`OJQJo(o @ @ ^@ `OJ QJ o(   ^ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( PP^P`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(^`o(-hh^h`o(- hh^h`OJQJo(- h^`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hP^`Po(h@@^@`o(.h0^`0o(..h``^``o(... h^`o( .... h^`o( ..... h^`o( ...... h`^``o(....... h00^0`o(........ hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJQJo(hh^h`.hh^h`. hh^h`OJQJo( hh^h`OJQJo(h^h`o( P^`Po(..^`o(...x^`xo(....  ^`o( .....  X@ ^ `Xo( ......  ^ `o(....... 8x^`8o(........ `H^``o(.........^`o(-hh^h`.P^`P..^`...xp^`x....  ^` .....  X ^ `X ......  ^ `....... 8^`8........ `^``......... hh^h`OJ QJ o( hh^h`OJQJo(hh^h`.P^`P..^`...xp^`x....  ^` .....  X ^ `X ......  ^ `....... 8^`8........ `^``.........hh^h`o(- hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo(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( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJQJo(^`o(-hh^h`.^`o(- h^`OJQJo(hh^h`.hh^h`. hh^h`OJQJo(^`o(-hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`o(() hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(-88^8`o(.hh^h`. hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo(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^`OJQJo(hh^h`o(-hh^h`. hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJ QJ o(hh^h`. hh^h`OJQJo(^`o(-hh^h`o(.88^8`.L^`L.  ^ `.  ^ `.xLx^x`L.HH^H`.^`.L^`L.hh^h`o(- hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(p^` Figure . hh^h`OJQJo( hh^h`OJQJo(-hh^h`o(- hh^h`OJQJo(^`o(- hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( h^`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( h^`OJQJo(^`o(- hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(-^`o(- hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo(hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hh^h`o(- hh^h`OJQJo( hh^h`OJ QJ o(hh^h`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJ QJ o(^`o(- h^`OJQJo( hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`o(- hh^h`OJQJo(hh^h`o(-hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJ QJ o( h^`OJQJo( h^`OJQJo(^`o(- hh^h`OJ QJ o(hh^h`3.2 hh^h`OJQJo(hh^h`.P^`P..^`...xp^`x....  ^` .....  X ^ `X ......  ^ `....... 8^`8........ `^``......... hh^h`OJ QJ o(h^`.h^`.hL^`L.hv v ^v `.hFF^F`.hL^`L.h^`.h^`.hL^`L.^`o(-^`o(- hh^h`OJQJo(hh^h`o(- ^`OJQJo(o UU^U`OJ QJ o( % % ^% `OJQJo(   ^ `OJQJo(o ^`OJ QJ o( ^`OJQJo( ee^e`OJQJo(o 55^5`OJ QJ o( hh^h`OJQJo(- hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo(hh^h`.hh^h`. hh^h`OJQJo(hh^h`o(- hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo(^`o(- h^`OJQJo( hh^h`OJQJo(hh^h`o(-^`o(- h^`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o(^`o(-^`o(-p^` Figure .^`o(-h8^h` Figure .^`o(-hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo(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(^`o(- hh^h`OJQJo( h^`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo(hh^h`o(() h^`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`o(- hh^h`OJQJo( hh^h`OJQJo(hh^h`. hh^h`OJQJo(hh^h`o(()^`o(- hh^h`OJQJo(hh^h`. hh^h`OJQJo(-hh^h`. hh^h`OJQJo(- h^`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo(-hh^h`. hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJ QJ o(h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJ QJ o(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJ QJ o(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJ QJ o( 9h^9`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo(hh^h`o(() h^`OJQJo(hh^h`o(-@.@.@..@...@ ....@ .....@ ......@ .......@ ........ hh^h`OJ QJ o(hh^h`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(^`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( h^`OJQJo( hh^h`OJQJo(- h^`OJQJo( hh^h`OJ QJ o( hh^h`OJQJo(h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJ QJ o(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJ QJ o(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJ QJ o( hh^h`OJQJo(hh^h`o(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(- hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(hh^h`.08^`0o(Table .hh^h`. hh^h`OJQJo(hh^h`o(- hh^h`OJQJo(h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJ QJ o(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJ QJ o(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJ QJ o(^`o(- hh^h`OJQJo( hh^h`OJQJo(Gm][1ypUs rsHkRC+l=H$AcHlv(MQH$2~ Z*v)iLp(Ec'24`3]lt< $v5g{ }9*Y 3 5=ZgY_dFM8iROiV#B?pKI A 7[Vr gChL6# Ok0S^fn^+[nNfl,0sc|*5As^|Jd 'g#cCiQD[/0A=,I r2H:7?wkZxZ=XI6D/wm3<9c 5M1x@*fB^t7xfF -Vs,oc%`a_OAD'O#'6j>> m -#Z]1qWR:w zxd?~bQ_:)`S$,At< bs>S1I&:E[+A'6)L]#P'$h]1U >N`Q:2q7J(xQK;v)69a)IgyL%(\s\Qaq8/q M\aHHHmn*oS:7veX0eHWUO .) c joA[S;A#.|Q26bvuX+ $FZ?[dv0}"/EFnyUt;!j?UN kyjhN#Ys,ifs-2P'B1UVW5!lZ33Rmti"%f:| 9\}GQKHc"_{=Zn>)R!_b?U|A{:YCI$GXE+D@1i;mE3dBBj_V0}g& @qnVh}?"2>^ NmKq0^Mh2V6!lLBDl'23~ezIB9PvFbp\"{zY%h^oIdrcwpXjwL5P }5s];ly %<wmg 0bDH%0x<ry( F&<I;6&K&8w_k9iceV0`]1pt9|/S-H|S~G%}%O.#T.~Vs}SLOO.|a*P ?f%o `WW5?!;[!oG##0&&7:n0 G >h^lIakU] 5BYFFSzbvJ]cD$]-M~+9_0+L$UBo{OYw8=Isg?ly!BFoVQflonB R .-VwV q"!t5G@[L uzkB:cu]BF5Wk#z0?q"[O7l>`yWVc,zJ} 64[h,'6n~@m70"5/4a4X<dK_81; @x~aeW\y;\C}-A=qkBI&GQLWVNmfr5P3f(Nr|mO "5:@4v -3 WcLY'* ~&[XoU G ( < 21MXgi4x@]3w66J!wpG>sT"[wB(hv3,hYB!3B!38pB!3<|B!3@B!3DB!3B!3HB!3LB!3p\+wfB66zxS=8oUez8 }*vj"fa{C=B.l SB97[g;14B$8k# CT 4}~ BS[c7k@XKgnRj75R^z tNX2CU tk*_D9d0 W&=l^R*2}ap>6's+l7d wiA](~k `Mt@bNVt`B!v^$.Ui^UE4mh#2@1|=a4o?:kalHwh:K^ai=2>Yocdlp~2e q&$edEh<5MWy.E~10U8^iz.'|gx7oh!9UXfC=%lU>l g]%Clh\hP+&-Os2$xc@XDDe N+o[:v@sU4?O/Q!XsIh+^T$AU[fy*BfO 3i'CLNu~q,3^:a,i/^r+r{a?{{:rq^_D21i^b 8 RUqq<P#K\<LuA5kyCUYh }Xv'{w\"NLpJiKf_y^FW AO H;*vm/B[L*7uG^JkjO7k%9Hz=HD~$kcR ,?%XP"74~Qo X}'ig.15AZdh];v*N~w`V!b}^*fS[aK:NX(a qtq U!w~Z }Hmt~()?X\@A G!=P8#8X\f4`R}5L>E,e1z#kS,"c[+^a960 !Z"cR)gnn%WT\;$kvf?W7d!"XQJ]]v;2#|_S)RC9 jM`qOU>RbCAu>7J#uGm g-?B+a?'gth @VKk>!b^D.xQ1}Ft:K{[ =p\YJ+#|fERj!zTVk}Deose_ZSh11&{(^ rr/`fOYx1Na?$k8>/B'G~l86F3Jm:6C!|48`'QZ8]|mLzVCU8eSH? 38YWk8Yr@+`~L/z6Y%]t`gAWPbc;NsW5D80V'F])X# zFS&NNqq}@du5zGf"#Mr>: 4La'^kWxM8qI?(NEzT\Y Q,1.!";c\8CUJBD}- OUz28RH0,s"Q~%G5p 7/4g3a $Bz=#biM\U=Be 3346%c@po-8cg=Z{nsJwZ_nS_'l _P&]~Rx4X6] Bz7CHMJrBp6'535#\Vb=Q.)Cvqw3bwu."945E7NGG{Ildx#7]?gMJ yF"_!yaPck|o:!THw tm`*&@%zjTK&(e jiL3o}@FnR;WDWnh$}r-*!=3$Bu0gI0P@xgY{W%}r ~hHglQ/zse ?0"{z~~4UA t<*_{`> @CJ@OJQJo("    bcnopqrstu !TUVWXYdr  3 4 6 7 8 9 I J K L M N O P a n L!M!N!O!P!Q!b!p!!!!!!!!!!!!!!!!!""45AHUVckstȂʂ͂΂Ђۂ~ggggggggggggggggggggggggghh=>GZabjmđőΑё 9:גؒ"RSaeǘ     "%&'*.28CDEJOPQRST  !*7?HIJW_gstuxy-4.484?4E4P4^4g4h4y4z4{4|4}4~4444444444444444444444444445 5 55555%5,5-595;5C5F5L5S5T5c5f5n5q5v5~55555555555555555555555 6666666"6$6+6.63696:6C6E6L6O6T6Z6[6b6d6k6n6s6y6z6666666666666666666666666666666667 7 7!7$7+7.73797:7D7F7M7P7U7[7\7i7k7r7u7z777777777777777777777777777777778 8 8888#8'8.80858;8<8M8P8W8Y8^8d8e8p8q8r8s8t8u8v8}88888888888888888888888889 9 999!9#9)9/909@9C9J9L9R9X9Y9NN NNN%N3NVYbc{ %(12TYtxw~^evw:=FGd     8 9 C q r     L M N O   tuvw'''*(+(,(-(.(/(j(k(r()))***F*G*H*I*J*K*v*w*{****@,A,E,3-4-8-m-n-q-///:0;0D0w0x0z0;1<1>1111222@3A3D3333333A4B4C4444455555&5'5+595:5=5E5F5I5R5S5V5b5c5f5p5q5r5s5t5u5555666y6z6}677#7u7v7}7777777888Y8Z8]88888888888888888881929;;;;;;;;;<< <3<4<=<g<h<q<<<<<<<<<< = ==+=,=?=@=A=J=b=c=l=========PQW]ciouv "*1:CDJQY`hqrx #,-  %,klouz]ABEJO./27>]^_hpyĊʊˊ̊Ҋ؊ $-.QR^i̩ͩΩϩЩѩҩөީ     &bcdefgrªЪ&0WXYZ[\gu̫*+,-./@Jά !"#$5BvwF@3^3^u3^2^TTTTTTTTTTT[[T$T%T&T*T+T,T-T.T2T3T4567=>VWyyxfxgxkxlxxxx֖֛֚֕֗֘֙֝֞TT&&ss     JJ))))) )$)%)&>'>(459:;>?EFHIJKLSTUVWXYV[V\V]^_`abcdefgiklmnYpYqYrYsYtYuYvYxY|Y}GGޣޤަާިDDDD???%?&?0?1?2?????WW=======\\  !"#$%&'()*+,./023456789:s=s>s?s@G G Thomasond C G  G Technical Note.dott thomason No1208sonMicrosoft Word 9.0t@& @6Kj@Y@SOjZ՜.+,0T hp  6Philips Research Laboratoriest3 r2 DocumentSummaryInformation8LCompObjSj RThe Design and Construction of a State Machine System that Handles Nondeterminism Title  FMicrosoft Word Document MSWordDocWord.Document.89qsAsBCDPQRS$U$V$X$Y$Z$[M\M]M_M`MaMbQcQdefghnopqrGtGuGvGwGxmmmm`@```$@``````<@```@```@``````@`` @``4@``` `D@`4`6`p@`:`x@`F`H`@`N`P`R`T`@`Z`\`@```b`@`j`@`` @``@`(`*`,`.``@`R`@``<@``H@``@``@```@```````@``@``@``@``@``@`` @``(@` `"`$`L@`,`\@`2`h@`6`p@`<`>`@`D`@`H`@`P`@`X`@`j`l`@`p`@`x`z`@``@```@``@``8@```H@``T@``d@`````x@```````@```@```````````@````@````````@` `@``(@```8@`$`&`(`T@`2`4`6`8`:`<`>`@`@`D`@`H`J`@`T`@`b`@``H @`` @``` @`4`l @``` @``` @`````4 @``D @``L @```X @`````````` @```` @``` @`` @`` @````` @````` @`` @```````` ` `@```(@`````` `"`$`L@`*`,`.`0`2`h@`6`p@`D`F`H`@`L`@`P`R`T`@`X`@`\`^```@`d`@`h`j`l`@`t`v`x`z`@`~```` @````@@`````````@UnknownGz Times New Roman5Symbol3& z Arial?5 z Courier NewG5  hMS Mincho-3 fgCGGTSymbol-phd5rZ FontCFComic Sans MS9 Webdings3Ajile5& z!TahomaC .PMingLiUe0}fԚ;" Helvetica;WingdingsA Gill Sans MT# ehh#azzAZr3 C!0d8p2+L:\General\Word\Template\Technical Note.dotQThe Design and Construction of a State Machine System that Handles Nondeterminism G G Thomasonthomason