/[H9]/trunk/docs/Samlet/Samlet 1.doc
ViewVC logotype

Contents of /trunk/docs/Samlet/Samlet 1.doc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 260 - (show annotations) (download) (as text)
Wed Dec 12 15:00:52 2007 UTC (16 years, 5 months ago) by torben
File MIME type: application/octet-stream
File size: 397312 byte(s)
take 1
1 ࡱ> Y{3 0 bjbj .bb+SlrrrrIII8FI2J$ bK fT(TTTU\^ikkkkkk$
2 *_U"U__rrTT%_*r8TTi_ix/TVK 0vf<8CIQ0yH0$6rrrrIndhold  TOC \o "1-3" \h \z  HYPERLINK \l "_Toc185235925" Indhold  PAGEREF _Toc185235925 \h 1  HYPERLINK \l "_Toc185235926" 1 Indledning  PAGEREF _Toc185235926 \h 3  HYPERLINK \l "_Toc185235927" 2 Analyse  PAGEREF _Toc185235927 \h 4  HYPERLINK \l "_Toc185235928" 2.1 Valg  PAGEREF _Toc185235928 \h 5  HYPERLINK \l "_Toc185235929" 3 Systemdesign  PAGEREF _Toc185235929 \h 6  HYPERLINK \l "_Toc185235930" 4 Hardware dokumentation  PAGEREF _Toc185235930 \h 7  HYPERLINK \l "_Toc185235931" 5 Database dokumentation  PAGEREF _Toc185235931 \h 8  HYPERLINK \l "_Toc185235932" Valg af databaseplatform.  PAGEREF _Toc185235932 \h 8  HYPERLINK \l "_Toc185235933" Generelle noter omkring databasedesign  PAGEREF _Toc185235933 \h 8  HYPERLINK \l "_Toc185235934" Tabel beskrivelse  PAGEREF _Toc185235934 \h 8  HYPERLINK \l "_Toc185235935" 6 SMS Protokol beskrivelse  PAGEREF _Toc185235935 \h 11  HYPERLINK \l "_Toc185235936" 7 Software dokumentation for embedded software  PAGEREF _Toc185235936 \h 12  HYPERLINK \l "_Toc185235937" Generel beskrivelse, Embedded  PAGEREF _Toc185235937 \h 12  HYPERLINK \l "_Toc185235938" IMEI  PAGEREF _Toc185235938 \h 12  HYPERLINK \l "_Toc185235939" Mulige forbedringer  PAGEREF _Toc185235939 \h 12  HYPERLINK \l "_Toc185235940" Funktioner  PAGEREF _Toc185235940 \h 12  HYPERLINK \l "_Toc185235941" Definitioner  PAGEREF _Toc185235941 \h 14  HYPERLINK \l "_Toc185235942" Variabler  PAGEREF _Toc185235942 \h 15  HYPERLINK \l "_Toc185235943" Brugervejledning  PAGEREF _Toc185235943 \h 16  HYPERLINK \l "_Toc185235944" 8 Software dokumentation for Server software  PAGEREF _Toc185235944 \h 17  HYPERLINK \l "_Toc185235945" Userguide  PAGEREF _Toc185235945 \h 17  HYPERLINK \l "_Toc185235946" Beskrivelse  PAGEREF _Toc185235946 \h 17  HYPERLINK \l "_Toc185235947" Funktioner  PAGEREF _Toc185235947 \h 17  HYPERLINK \l "_Toc185235948" OnInitDialog:  PAGEREF _Toc185235948 \h 17  HYPERLINK \l "_Toc185235949" AppendText :  PAGEREF _Toc185235949 \h 17  HYPERLINK \l "_Toc185235950" CheckAcknowledges :  PAGEREF _Toc185235950 \h 17  HYPERLINK \l "_Toc185235951" DBConnect:  PAGEREF _Toc185235951 \h 18  HYPERLINK \l "_Toc185235952" DBReadCommands:  PAGEREF _Toc185235952 \h 18  HYPERLINK \l "_Toc185235953" DBReadPhone :  PAGEREF _Toc185235953 \h 18  HYPERLINK \l "_Toc185235954" DeleteSms :  PAGEREF _Toc185235954 \h 18  HYPERLINK \l "_Toc185235955" HandleAcknowledge:  PAGEREF _Toc185235955 \h 18  HYPERLINK \l "_Toc185235956" keepaliveandread :  PAGEREF _Toc185235956 \h 18  HYPERLINK \l "_Toc185235957" OnBnClickedClose :  PAGEREF _Toc185235957 \h 18  HYPERLINK \l "_Toc185235958" OnBnClickedStart :  PAGEREF _Toc185235958 \h 18  HYPERLINK \l "_Toc185235959" readFrame :  PAGEREF _Toc185235959 \h 19  HYPERLINK \l "_Toc185235960" runthread :  PAGEREF _Toc185235960 \h 19  HYPERLINK \l "_Toc185235961" MyMainThread :  PAGEREF _Toc185235961 \h 19  HYPERLINK \l "_Toc185235962" ReadSms:  PAGEREF _Toc185235962 \h 19  HYPERLINK \l "_Toc185235963" SendConfig :  PAGEREF _Toc185235963 \h 19  HYPERLINK \l "_Toc185235964" SendSmsData:  PAGEREF _Toc185235964 \h 20  HYPERLINK \l "_Toc185235965" SendSmsHead:  PAGEREF _Toc185235965 \h 20  HYPERLINK \l "_Toc185235966" SetPin :  PAGEREF _Toc185235966 \h 20  HYPERLINK \l "_Toc185235967" SmsSplit:  PAGEREF _Toc185235967 \h 20  HYPERLINK \l "_Toc185235968" Splitter :  PAGEREF _Toc185235968 \h 20  HYPERLINK \l "_Toc185235969" StartSerial:  PAGEREF _Toc185235969 \h 20  HYPERLINK \l "_Toc185235970" tversum :  PAGEREF _Toc185235970 \h 21  HYPERLINK \l "_Toc185235971" writeFrame:  PAGEREF _Toc185235971 \h 21  HYPERLINK \l "_Toc185235972" 9 Software dokumentation for web-software  PAGEREF _Toc185235972 \h 22  HYPERLINK \l "_Toc185235973" TNTnet  PAGEREF _Toc185235973 \h 22  HYPERLINK \l "_Toc185235974" Design  PAGEREF _Toc185235974 \h 24  HYPERLINK \l "_Toc185235975" Layout.  PAGEREF _Toc185235975 \h 24  HYPERLINK \l "_Toc185235976" Software dokumentation  PAGEREF _Toc185235976 \h 25  HYPERLINK \l "_Toc185235977" Ecpp moduler  PAGEREF _Toc185235977 \h 25  HYPERLINK \l "_Toc185235978" vrige filer  PAGEREF _Toc185235978 \h 28  HYPERLINK \l "_Toc185235979" Web klient bruger grnseflade  PAGEREF _Toc185235979 \h 29  HYPERLINK \l "_Toc185235980" 10 Idriftssttelse af systemet  PAGEREF _Toc185235980 \h 30  HYPERLINK \l "_Toc185235981" 11 Accepttest Specifikation  PAGEREF _Toc185235981 \h 31  HYPERLINK \l "_Toc185235982" 1) Overordnet  PAGEREF _Toc185235982 \h 31  HYPERLINK \l "_Toc185235983" 2) Overvgnings enhed  PAGEREF _Toc185235983 \h 31  HYPERLINK \l "_Toc185235984" 3) SMS Server-software  PAGEREF _Toc185235984 \h 31  HYPERLINK \l "_Toc185235985" 4) Web-interface  PAGEREF _Toc185235985 \h 32  HYPERLINK \l "_Toc185235986" 12 Konklusion  PAGEREF _Toc185235986 \h 34  1 Indledning 2 Analyse Producenterne af flisfyr og denne branche som helhed er endnu ikke net s langt mht. til interfacing og datakommunikation som andre automationsbrancher ssom pumpe-branchen hvor at kunderne konstant eftersprger flere muligheder for overvgning og styring. Hvis at man kigger rundt p nettet og undersger de forskellige producenter af stokerfyr og lignende fyrtyper, s vil man opdage at de fleste af denne slags fyr har ganske vist en styringsenhed med en rkke sensorer og aktuatorer tilknyttet, som giver mulighed for at overvge og styre fyrets drift p en rkke forskellige parametre. Hvis at man gr ind og kigger p billederne af de forskellige fyr kan man se at disse styringer ligner hinanden til forveksling. At mange af disse fyr bliver produceret af regulre smede-virksomheder hvor at man ikke kan forvente den at finde kompetencer inden for elektronik og programmering, kombineret giver dette anledning til disse to teorier: At et eller firma har udviklet standard general-purpose styringer til denne slags fyr og at producenten af fyret s kber sdan en styring og monterer p fyret. At en fyr styring er opbygget af en standard PLC (Programmable Logic Controller) og et standart displaymodul til en sdan plc. Derved kan man relativt let f tilkoblet de forskellige inputs og outputs og f det programmeret ved at konsultere en elektriker eller anden person med erfaring inden for automation. Kigger man p specifikationerne og databladende er der ikke meget der indikerer at man kan trkke data ud fra styringen der kan bruges i en overvgningsenhed som vores. Dog er der nogle enkelte der tilbyder data via et rs232 interface og et tilhrende windows program. Ud fra opgave oplgget lyder det ikke til at Serren AB er en decideret producent af anlg, men lyder mere som en virksomhed der tilbyder reparation og anden servicering af disse anlg og gerne vil udvide denne service med et fjernovervgningssystem. Hvis at et sdan system skal tilknyttes eksisterende fyr anlg vil dette betyde at Serren AB selv skal pmontere ekstra sensorer uden om den eksisterende styring og selv srge for videre behandling af disse data. Hvis at datatudvekslingen skal optimeres skal man have fat i producenten af anlggene og mede om at f lavet mere et udvidet data-interface. Dette datainterface kunne laves p flere forskellige mder: En tt integreret lsning hvor at kommunikations enheden indgr direkte i styringen, enten p selv samme print, eller som en addon til printet hvor at man p simpel vis kan f fat i de relevante data. Dette vil krve et meget tt samarbejde med producenten og vil ikke vre s fleksibel mht. til frit at vlge mellem leverandrer. En anden mde kunne vre at dataene blev leveret via en kommunikations-snitflade i form a f.eks. et RS-232 og hvor man med simple kommandoer kunne aflse styringens parametre dog uden at komplicere selve styringens opbygning og modularitet. Den tredje mulighed var at man bad producenten om at levere dataene via en industriel fieldbus og implementerede overvgningsenheden som en form for gateway imellem GSM modemet og fieldbussen. Denne lsning vil ydermere have den fordel at vi kan indsamle data fra andre enheder ssom varme cirkulationspumper, aircondition anlg osv. Serren AB kunne ogs gre det at i stedet for at selv str for overvgningen kunne ogs gre det at de slger overvgningssystemet til de strre kunder, sledes at en stor virksomhed eller en offentlig organisation selv kunne overvge sine anlg . 2.1 Valg Opgaveoplgget har ikke given megen mulighed for at vlge hvordan at dataene kom ind til vores system, s vi aflser dataene som 4 digitale samt en analog indgang. Med hensyn til valg omkring microcontroller har vi valgt en chip fra Microchips PIC 18 serie da det var dn vi var fortrolige med og vi viste at den havde de moduler vi skulle bruge ssom seriel UART og A/D converter. Valget af kommunikationskanal imellem PIC og Serren ABs systemer var enkel, da opgaven foreskriver at dataene skal transmiteres pr SMS via GSM modems. I projektet skulle vi ligeledes bruge en database til at opbevare de indkomne data. Blandt de mange forskellige kommercielle og frie lsninger der er p markedet, har vi valgt et open source produkt med navnet PostgreSQL. Som bindeled imellem databasen har vi valgt at lave et serverprogram implementeret i C++/MFC, igen p grund af at det var elementer vi havde forudgende kendskab til. For at forenkle Serren ABs idriftsttelse af systemet valgte vi at implementere den del af systemet der skal buges til dataudtrk og administration, som et webinterface. Derved er selve udrulningsfasen nrmest lig nul, da der ikke skal distribueres software, komponenter til de enkelte ansattes PCer. Som platform til web-interfacet har vi eksperimenteret lidt og valgt en TNTnet applikationsserver, denne platform har to klare fordele set fra vores synspunkt: t, at vi kunne genbruge vores viden inden for C og C++ programmeringssprogene og to at da modulerne bliver kompileret til maskinsprog er det en meget mere effektiv platform og kan dermed klare flere sidevisninger p samme hardware end nogle af de andre muligheder. 3 Systemdesign Systemet bestr af en microcontroller baseret overvgnings-enhed, to sms modemer, en server, PostgreSQL database samt et web administrations modul baseret p tntnet. Overvgnings-enheden bestr af en PIC microcontroller der skal aflse analoge og digitale vrdier fra fyret. De data der skal mles er kedeltemperaturen(analog), power failure, fremfrings fejl, om tanken er ved at vre tom samt om hvorvidt at der er flammer i fyrets brndselskammer. P de digitale indgange er der placeret lysdioder s at slut-brugeren kan aflse status direkte. De aflste vrdier skal afsendes til serveren via SMS. De afsendte smser gives et unikt fortlbende nummer s at serveren kan identificere rkkeflgen. Konfiguration af enheden modtages pr sms. Serveren modtager data-rapporter fra enhederne via sms og gemmer disse i en PostgreSQL database. Serveren skal, nr den bliver trigget fra administrations-interfacet, kunne afsende konfigurations-sms'er til en eller flere enheder. Fra web interfacet kan kunden aflse de indkomne data, oprette og slette kunde-profiler samt trigge serveren til at afsende konfigurations-sms'er.  EMBED Visio.Drawing.11  4 Hardware dokumentation Vi har valgt at lave et addon modul til picdem2 boardet i stedet for at lave et design fra bunden, idet ingen af os har srlig meget styr p hardware, vi har dog lavet et diagram, se bilag XX, over hvilke komponenter p pic boardet vi bruger, sledes at det vil vre relativ nemt at lave et selvstndigt board. Addon boardet kan deles op i to sektioner, en som beskytter pic'en mod overspnding og en som simulerer io fra fyret. Diagrammer over disse to sektioner kan findes i bilag XX og XX. Grunden til at vi har sat en optokobler foran indgangene p pic'en er for at sikre at beskytte pic'en P den analoge indgang er vi hoppet over hvor gret er lavest, idet vi ikke kan forsvare det hardware der skal til for at f lavet en galvanisk adskillelse mellem input fra fyret og indgangen p pic'en. Skulle det laves korrekt, skulle den variable spnding konverteres til en variabel strm, som derefter kres i gennem en liner optokobler. P den beskyttede side af optokobleren skulle den variable strm dernst konverteres tilbage til en variabel spnding, der kunne aflses med PIC'ens A/D converter. I den frdig udgave vil det dog vre mere sandsynligt at den analoge vrdi kom ind til pic styringen i form af en variabel strm i omrdet 4-20 mA. 5 Database dokumentation Valg af databaseplatform. Vi har i dette projekt valgt at bruge PostgreSQL, som er en open source relational database mangagement system (RDBMS) som er fuld ACID compliant. ACID er en forkortelse for Atomicity, Consistency, Isolation og Durability og bruges til at beskrive hvor vidt at databasesystemet er til at hndtere database operationerne i isolerede blokke. Postgresql implementationen ligger sig tt op af SQL92/99 standarderne. Generelle noter omkring databasedesign Da Serren AB tilbyder sine services til bl.a. institutioner og andre strre organisationer, er det vigtigt at en given kunde kan have mere end t fyr med n overvgnings enhed. Derfor er disse to entiter splittet ud i hver sin tabel forbundet med en n til mange relation. Dette medvirker at kunden kan have lige s mange installationer som det er krvet og da hver installation har sit eget adresse-felt kan disse installationer vre fysisk placeret hvor som helst. For at sikre at alle dataene i databasen er konsistente og for at undg redundante data, er alle tabellerne normaliseret til 3. normalform. Normalisering er en flertrins proces som netop har til opgave at sikre et fornuftigt database design. For at gre designet simplere og effektivisere opslagene har vi valgt at udskifte de naturlige primre ngler med automatisk optllende tal-ngler. Tabel beskrivelse Her beskrives tabellerne i databasen. For en grafisk reprsentation af tabellerne, se venligst bilag XX. Tabel: Customer Indeholder stamdata for Serren ABs kunder. 1 db row = 1 kunde. IDFortlbende heltal, primr ngleNameBeskriver kundens navn. Tekststreng af variabel lngde med maksimal lngde p 100 - herefter kaldet en varchar (max)AddressKundens postadresse. Varchar(255)PhonenrKundens telefonnummer. Varchar(30)ContactpersonNavnet p Serren ABs kontaktperson ved den pgldende kunde. Varchar(100) Tabel: Installation Beskriver installationen af en overvgningsenhed. En installation skal vre tilknyttet en kunde. 1 row = 1 installation IDFortlbende heltal, primr ngleDescriptionEt tekst felt hvor Serren AB, kan give den pgldende installation en kort beskrivelse eller et kaldenavn. Varchar(100)AddressAdressen p den bygning hvor installationen er monteret. Varchar(100)CustomerIDIDet p den kunde som denne installation er tilknytet. Heltal, fremmedngle i mod customer tabellen.BoilertypeEn valgfri beskrivelse af typen p det fyr der skal overvges. Varchar(100)InstallationPhoneNrTelefonnummeret p installationen. Bruges bde til at identificere indkomne log-data, men ogs nr at der skal udsendes konfigurations smser til en installation. Varchar(30)IMEIIMEI nummeret p installationens GSM modem. Tekststreng med fast lngde p 15 tegn - herefter kaldet char(lngde)UpdaterateAngiver hvor ofte at installationen br afsende periodiske data-rapporter, angivet i minutter. Heltal.CommErrorIndikerer hvorvidt at installationen svarede tilbage p den seneste konfigurations sms. Boolean. Tabel: Logtable Indeholder de indkomne datarapporter fra installationerne. 1 row = 1 datarapport IDFortlbende heltal, primr ngleLogtimeTidspunktet hvor at datarapporten blev modtaget af serveren. Tidsstempel. TemperatureKedeltemperaturen mlt i grader Celcius. Heltal.FlamedetectorIndikerer hvorvidt at der var flammer I fyrets afbrndingskammer. Boolean.SolidFuelEmptyIndikerer om der var mere flis i flistanken. Boolean.ConveyorErrorAngiver om der var problemer med mekanismen til fremfring af brndsel. Boolean.PowerFailureAngiver om der var strmfejl p fyret. BooleanMessageNrHver bliver stemplet med et fortlbende nummer, dette nummer gemmes her. Heltal.InstallationIDIDen p den installation som denne logbesked er tilknyttet. Heltal, fremmedngle imod Installation tabellen. Tabel: Command Da web-klienten og serveren ikke kommunikerer direkte sammen, bruges denne tabel til at brugerne af web-klienten kan sende kommandoer til serveren. Desuden virker tabellen som en historik over allerede udfrte kommandoer. 1 row = 1 kommando IDFortlbende heltal, primr ngleCreatedAngiver hvornr at kommandoen blev oprettet. TidsstempelExecutedAngiver hvornr at kommandoen blev udfrt af serveren. Hvis at dette felt ikke indeholder en vrdi, betyder det at den endnu ikke er udfrt. TidsstempelCommandIDAngiver hvad der skal udfres. Er vrdien 1, skal der udsendes konfigurations smser til samtlige installationer. Hvis vrdien er 2 skal der udsendes en konfigurations sms til installationen angivet i nste felt.InstallationIDHvis CommandID er 2 bruges dette felt til at angive hvilken installation konfigurationen skal sendes til. Heltal, fremmedngle imod Installation tabellen. Tabel: Users Gemmer brugerkontiene til den administrative del af web-interfacet. 1 row = 1 bruger IDFortlbende heltal, primr ngleRealNameGemmer brugerens rigtige navn for at gre det enklere for brugeradministratoren at identificere den enkelte bruger konto. Varchar(100)UserNameIndeholder brugernavnet. Varchar(30)PasswordIndeholder brugerens kodeord, krypteret med en MD5 hash. Varchar(32)EnabledAngiver hvorvidt at kontoen er aktiv. Kan bruges til at gre en konto ubruelig uden at fjerne den helt. Boolean.UserAdminAngiver om denne konto har rettighed til at administrere andre brugere. Boolean. Tabel: Config Indeholder de server konfigurationsparametre der skal kunne ndres via web-interfacet. 1 row = 1 konfigurations parameter. NameNavnet p parameteren. Varchar(50), primr ngle.ValueParameterens vrdi. Tekstfelt uden vre grnse. (datatype=text) 6 SMS Protokol beskrivelse Kommunikationen med vores sms modems foregr via RS232 og AT kommandoer. F.eks. AT+COPS? som bruges til aflsning af operatr. AT kommandoer er en standart til kommunikation med modemmer, udviklet af Hayes Communications. Vi har valgt at lave vores egen protokol som overbygning til sms, som ser sledes ud. Data update fra fyr: <sms counter>:<temperatur vrdi 0-100>:<flammedetektor 0/1>:<flismagasin tom 0/1>:<fremfringsfejl 0/1>:<power failure 0/1> eksempel: 4532:80:1:0:0:1 Konfigurations sms til fyr: <tvrsum af modtagers IMEI>:<server tlf nummer>:<update rate i minutter> Eksempel: 543:87654321:75 Conf ok pakke: <Okay besked> Eksempel: conf ok 7 Software dokumentation for embedded software Generel beskrivelse, Embedded Hardwaren bestr af et picdem2 board med en pic18F452 mikroprocessor, hvor vi har lavet et addon modul til at simulere det input som et flisfyr skulle have leveret. Denne simulering bestr af fire on/off kontakter, et potmeter samt et sikkerheds kredslb, se bilag XX for diagram, til at beskytte pic'en mod overbelastning. For at kommunikere med serveren, har vi sat et Fargo Maestro 100 modem i den db9 stikket p pic boardet, som vi kommunikerer med via rs232 med AT kommandoer. IMEI Et IMEI nummer er et unikt nummer som alle GSM og UMTS telefoner har, ligesom en MAC adresse er unik for alle NIC. Mulige forbedringer Pin koden er hardcoded i pic'en, det er en af de ting der eventuelt kan ndres p, sledes at man kan ndre pin koden fra serveren. En af de andre oplagte forbedringer vil vre at kunne lave et timestamp p sms'erne, f.eks. ved at pic boardet foresprger efter en opdateret tid/dato, nr pic boardet er frdig med init. Funktioner void reset_recieve_buffer() Denne funktion bruges til at reset to message buffere med tilhrende countere, disse buffere bruges til at gemme de sidste to linjer data der er sendt fra modemet. void pic18_io_init() Her bliver portene som vi skal bruge p pic'en initialiseret, det drejer sig om RA0 til A/D input, RA5 til COM Error LED samt RB1-4 til digital input. void ad_init() Srger for at initialisere A/D registreret til at bruge RA0 indgangen, lave resultatet right justified, clear ADRES[H-L] for at vre sikker p at der ikke kommer en critical tilstand lige efter opstart fordi den tror at der er 90-100 grader i kedelen. void interrupt_init() Aktiverer alle de interrupts som vi skal bruge, hvilket er, timer1 og serial recieved interruptene. void timer_init() Bruger ekstern clock, prescale er sat til 1/8 og den udlser hvert sekund. Prescale betyder at vi slipper x/y af frekvensen igennem. Den eksterne clock er for vores vedkommende p 32KHz, hvilket vil sige at med en prescale p 1/8 s udlses TMR1 registrene 4096 gange i sekundet. Timer1 er en 16 bit counter, som bestr af to 8 bit registre, TMR1H og TMR1L. Vi har sat dem til EFFFh, som er 4096 mindre end overrun, hvilket vil sige at timer1 interruptet bliver udlst en gang i sekundet. void rs232_init() aktiverer den serielle forbindelse, samt stter baud raten til 1200 void modem_init() Henter IMEI nummeret fra modemet, sender en pin kode, hvis den mangler og sletter eventuelle sms beskeder, hvorefter pic'en venter p at f en OK tilbage fra modemet. void on_initial_recieve() Venter p at +WIND 11 findes i serial_recieve_buffer. Nr det findes i bufferen, s er modemet initialiseret, og global_modem_init bliver sat til 1 samt message bufferne bliver resat. interrupt interrupt_handler() Er vores hoved interrupt handler, som finder ud af hvilken interrupt der er udlst, hvorefter den tilhrende funktion bliver kaldt, derefter bliver interrupt flaget sat til 0 igen, og programmet fortstter hvor det slap. void serial_recieved() Bliver kaldt nr RCIF interruptet bliver udlst. det der sker i funktionen er at den hlder det in kommende byte i global_serial_recieve_buffer. Der er dog nogle undtagelser, hvis det der bliver modtaget, er \n, s hopper vi bare ud igen, idet vi ikke kan bruge det til noget, det samme sker ved \r hvis det er den frste karakter der bliver modtaget. Modtager vi derudover en \r, s regner vi med at det var den sidste byte i denne omgang, og vi hlder indeholdet af global_message_buffer1 ned i global_message buffer2 og til sidst hlder vi indeholdet af global_serial_recieve_buffer ned i global_message_buffer1, derved har vi gjort klar til at der kan modtages mere data, mens vi arbejder med det andet. void timer1_interrupt() Bliver kaldt hvert sekund, og tller global_time_counter samt global_emergency_counter 1 op. void update_lcd() Opdaterer lcd displayet 1 gang i sekundet. void send_update() Indsamler data fra flis fyret, lgger det ned i update variablen og sender det videre til send_sms() som hndtere selve afsendelsen til modemet. void send_sms(const unsigned char* payload) Beder modemet om at sende en sms med indeholdet i payload. Nr sms'en er sendt s bliver den slettet, fra modemet, og eeprom_writer() bliver kaldt for at gemme sms_counteren. void convert_temp() Omregner vrdien fra potmeteret til grader, og gemmer det i global_temp void eeprom_writer() Skriver telefon nummeret til serveren, sms counteren samt tidsintervallet mellem status sms'erne til eeprommen. void eeprom_reader() henter dataene ud fra eeprom'en som eeprom_writer() har lagt derned. void on_recieve() bliver kaldt i bunden af main loopet, for at tjkke om vi er frdige med at modtage noget data, er vi det, og det er en sms, s henter den sms nummeret ud fra det modtagende data, hvorefter den kalder void sms_recieved() og til sidst clearer message bufferne. void sms_recieved() starter med at bne den modtagende sms. Nr den har modtaget et OK fra modemet, s er hele sms'en hentet, og vi kan begyndt at dekode den. void Delay(int time) laver et delay p time tid i sekunder, time kan dog variere fra time til time-1, idet funktionen kigger p timer1 variablen, som udlser 1 gang i sekundet, s hvis time er 1, og Delay(int time) bliver kaldt 1ms fr timer1 udlser, s varer delayet reelt kun 1ms. void main() Er vores main loop, som krer det hele. de ting som krer i while(1) lkken er et tjek p om der er nogle kritiske tilstande, hvis der er, og global_emergency_timer er over 600 sekunder, s bliver der sendt en sms, til serveren. Den srger ogs for at der bliver sendt en status sms for hver X sekund, samt at reset global_emergency_counter. while(1) tjekker ogs om der er lavet ndringer i status intervallet ol. og fr skrevet det til eeprommen A/D konverteringen sker ogs i while(1) loopet. Sidst men ikke mindst s bliver on_recieve() kaldt fra while(1) som frnvnt. Definitioner #defineforklaring.BUFFERbruges til at bestemme lngden p vores 3 buffere til at modtage/lagre modtaget data.PWRFAILpowerfail porten.FIREDETflammedetektor porten.FEEDINGfremfrings fejl porten.EMPTYTANKtom tank porten. Variabler Dette er s en liste af vores variabler, samt en forklaring af hvad de bruges til. Variabel navn.Forklaring.unsigned char global_Pot_Hiindeholder ADRESH.unsigned char global_Pot_Loindeholder ADRESL.unsigned char global_serial_send[BUFFER]indeholder det data der skal sendes.unsigned char global_serial_recieve_buffer[BUFFER]indeholder in kommende data.unsigned char global_tempindeholder temperaturen i forbrndingskammeret i celsius.unsigned char global_message_buffer1[BUFFER]indeholder den nyeste frdigmodtagende linje fra modemet.unsigned char global_message_buffer2[BUFFER]indeholder den nst nyeste frdigmodtagende linje fra modemet.unsigned char global_message_buffer_length1indeholder lngden af message_buffer1 arrayet.unsigned char global_message_buffer_length2indeholder lngden af message_buffer2 arrayet.unsigned char global_lcd_buf[16]indeholder det data der skal skrives ud p displayet p pic'enunsigned char global_cell_nr[15]indeholder serveren telefon nummer.unsigned char global_sms_recieve_number[3]on_recieve() gemmer sms nummeret her, det er det nummer som skal bruges for at bne sms'erne i modemet.unsigned int global_serial_byte_countercounter til at holde styr p hvor meget data der er i global_serial_recieve_bufferunsigned int global_sms_counterholder styr p hvor mange sms'er der er sendt til serverenunsigned int global_time_counterbliver talt 1 op hver gang timer1 bliver udlstunsigned int global_emergency_counterbliver talt 1 op hver gang timer1 udlses, og sat til 0 hver gang der bliver sendt en kritisk sms.unsigned int global_time_intervalindeholder tidsintervallet mellem status sms'erneunsigned int global_imei_tversumindeholder den simple tversum af imei nummeretunsigned int global_temp_update_displaybliver sat = global_time_counter efter displayet er opdateret. displayet bliver kun opdateret hvis temp_update_display != time_counterbit recieve_donebliver sat hver gang en modtagelse er frdig.bit modem_initbliver sat nr modemet melder at det er klar.bit has_imeibliver sat nr imei tvrsummen er regnet ud. Brugervejledning Under opstart af pic og modem lyser com error led'en... nr den slukker, s er systemet oppe at kre. Efter opstart, lyser com error lampen hvis der kommer en error fra modemet. Temperaturen i kedelen vises p displayet, og opdateres 1 gang i sekundet. 8 Software dokumentation for Server software Userguide Nr Serren AB starter deres serversoftware har de 3 valgmuligheder, fordelt p 2 knapper: Start: Denne knap starter med at tjecke om det er ndvendigt at sende en pinkode til modemet, hvis det er det bliver den sendt og vi venter p modemet er klar, hvorefter vi fortstter start fasen. Hvis ikke det er ndvendigt med en pinkode hopper vi direkte til start fasen. I startfasen starter vi med at lse i databasen hvad serverens eget telefon nummer er, skriver det p skrmen og starter main trden som ser efter data p den serielle port, lser i databasen om der skal sendes config smser osv. Close: Bruges til at lukke programmet pnt ned. Ved at lukke seriel og database connection og stopper main lkken. Server-Settings.ini Server-Settings.ini er en fil der skal ligge i rod mappen til server softwaren, hvor man kan ndre host, database, user, password for databasen, og vlge hvilken COM-port programmet skal bruge. Beskrivelse Serveren i dette projekt skulle ikke vre et vrktj som vi plejer, men nrmere et bindeled mellem databasen og flisfyret, som s for en god ordens skyld kan skrive noget data i et logvindue s man kan se hvad der sker. Serveren er rimelig simpel opbygget, der er en seriel wrapper til at tage sig af det alt til det serielle (genbrugt fra tidligere projekt), en Server-Settings fil til at holde det data brugeren skal kunne ndre. En container fil til at holde de klasser og variabler jeg skulle bruge rundt omkring i projektet, og en trd der str og kalder alle de ndvendige funktionen, hvis der er brug for dem, trden ligger i CFlisfyrDlg som er min hovedeklasse. Funktioner  OnInitDialog: I denne standart oprettede funktion vlger jeg at kalde StartSerial() og DBConnect, samt stte min sms counter til 0. AppendText : Da jeg ofte havde brug for at tage den tekst der var i log vinduet og tilfje en ny line og noget nyt tekst valgte jeg at lave en funktion jeg kunne kalde med den streng der skulle tilfjes i den nye linje under teksten. Da jeg alligevel har fat i alt tekst der skrives her bliver der ogs sat et tidsstempel p s det er til at se hvornr der sidst kom noget ind. Her hndterer jeg ogs autoscroll, da det normalt reagere p enter, som vi ikke bruger i dette projekt. CheckAcknowledges : Denne funktion bruges til at tjekke op p om der er get over 5 minutter siden vi sendte konfigurations smsen ud og der ikke er kommet svar. Frst ser vi om der er get 300 sekunder eller derover, hvis der er det tjekkes der for om der er sendt 1 retry sms ud. I tilfldet at der er sendt 1 retry sms ud vil commerror p installationen blive sat til true, hvilket resultere i installationen vil st under critical p web siden. Hvis der ikke er blevet sendt en retry sms, vil der blive sendt en og counteren tlles op, samt der vil i log vinduet blive skrevet Retry send config to TLFNR. DBConnect: I denne funktion indlser jeg data fra Server-Settings filen og opretter forbindelse til databasen. DBReadCommands: Denne funktion gr ind i databasen og ser i command, hvis den stder p en linje hvor der ikke er sat nogen executed tid p returnere den id, commandid og installationid til en data container til senere brug. DBReadPhone : Denne funktion bliver kaldt med et installationsid for at kunne hente det rigtige telefon nummer, imei nr, update rate og id p installationen, og returnere det til en data container klasse. Hvis der bliver sendt et 0 med som installations id vlger den at hente hele listen frem, da de s er tegn p vi skal sende en config sms til alle installationer. DeleteSms : Denne funktion kaldes nr vi lukker serveren, og nr vi har modtaget et fastlagt antal smser, den sender en at+cmgd=1,3 kommando ud til modemmet for at slette alle lste, sendte og usendte smser. HandleAcknowledge: Hvis vi modtager en conf ok besked kalder vi denne funktion med afsenderens telefonnummer, derefter leder vi vores liste igennem efter frste forekomst af dette nummer, som vi s sletter fra listen. keepaliveandread : Vi havde skrevet i kravspecifikationen at serveren skulle hente sit eget telefon nummer i databasen, og at den ville lse i databasen hver 15. Minut for at holde sig i live. Det blev denne funktion oprettet til. Frst prver jeg at kre sql strengen select name, value from config;, hvis det lykkedes smider jeg det hentede data i en container til senere brug. Hvis der af en eller anden rsag ikke kan fs forbindelse med databasen, lukker jeg forbindelsen og bner den igen. OnBnClickedClose : Frst sttes continueThread til 0, for at stoppe main trden i at kre videre, s bliver DeleteSms() kaldt for at rydde op. Efter en pause ser vi om der er bent for en seriel forbindelse, som vi s lukke hvis der er. Og det samme sker med database forbindelsen. Og til slut lukker serveren ned. OnBnClickedStart : Frst Skrives der i logvinduet at vi tjekker og indstter pinkode hvis ndvendigt, hvorefter vi kalder SetPin(), s flusher jeg data p den serielle port inden jeg fortstter. continueThread sttes til 1, keepaliveandread() kaldes, der skrives til logvinduet (Server phonenr read from db: + phonenr) og main trden bliver kaldt. readFrame : Er en lille worker funktion til at lse dataen p den serielle forbindelse, og putte det i en vector som derefter returneres. runthread : Her ser vi efter om continueThread er forskellig fra 0, hvis den er det kre vi MyMainThread(). MyMainThread : Dette er selve hoveddelen af programmet. Vi starter med at se om der er data i k p den serielle forbindelse. Hvis der er data i k, lser vi det ind og ser om det er et + i teksten, da det vil indikere at vi har fet en modem kommando ind. I tilfldet der er et plus splittes teksten op, i command og tekst, samt stter en bool til true for at markere vi har en plus kommando til senere. Efter vi har splittet dataen, ser vi om teksten er ok eller error, da det er beskeder der kun skal sendes til logvinduet. Hvis plus boolen er true, ser vi om command indeholder cmti eller wind. Ved cmti: starter vi med at lede efter et , som kommer lige fr tallet der indikere hvilken sms det er der er kommet, nr vi har fundet et , stter vi smscount til alt til hjre for det og fjerner : fra enden. S generere vi at kommandoen og sender den af sted, og efter en lille pause kalder vi ReadSms(). Ved wind: denne del er sdan set mest lavet som en lille fail safe, hvis vi skulle vre s uheldige at f en ekstra besked ind fra modem startup. S hvis vi fr sdan en skriver vi til logvinduet Wind modtaget og teksten som vi modtog. Ellers skriver vi den tekst vi har modtaget til logvinduet. Vi tjekker ogs op p om ResetSms er net til 20, i hvilket tilflde vi kalder DeleteSms() og skriver til logvinduet Smser slettet da vi nede grnsen. Der tjekkes igen om p om continueThread er positiv, hvis dette er tilfldet kalder vi DBReadCommands og splitter dataen op, samt omregner commandid til en int som vi kan tjekke op p, i tilfldet at inten er over 1 er det et tegn p vi skal bruge det installationsid der er i containeren, ellers skal der nemlig sendes en config sms ud til alle. Derefter kalder vi sendconfig(). Efter config er blevet sendt holder vi en pause, og kalder CheckAcknowledges(), efterfulgt af endnu en pause. Til sidst i main trden ser vi om der er get 900 sekunder eller derover, hvis dette er tilfldet kaldes keepaliveandread(). ReadSms: Nr vi nr ind i readsms funktionen er at kommandoen til at gre det allerede blevet sendt, s vi starter ned at holde en rimelig lang pause, for at sikre os hele smsens indhold er i den serielle k. Derefter lser vi den og skriver den p skrmen samt sender den videre til SmsSplit(). SendConfig : Frst ses der efter om commandid er 1 eller noget andet, hvis den er 1 kaldes inst = DBReadPhone(0); ellers kaldes inst = DBReadPhone(InstallationsID); som beskriver om det er en eller alle der skal have tilsendt en config sms. Derefter fyldes telefonnummer, imeinummer og updaterate i strenge. S udregner vi tvrsummen af imei nummeret, som vi bruger s modtagerne kan se det er en config sms til den. Derp kaldes SendSmsHead() med telefonnummeret. Som det nste opbygges smsdataene, med det udregnede imei, servertelefonnummer og updaterate, som bruges nr vi kalder SendSmsData. Til sidst tjekkes op p om IDnr er forskellig fra 0, da vi s skal tilfje installationsid og telefonnummer til listen over hvem der har fet tilsendt en config sms. SendSmsData: Efter SendSmsHead har taget sig af delen med at taste at kommandoen og indstte nummeret bliver der herfra sendt den data af sted der er blevet vedlagt i en vector, nr alt dataen er sendt ud til modemmet med de sm pauser sendes kommandoen 0x1A svarende til CTRL+Z, hvilket indikere for modemmet at vi er frdige med at skrive smsen og den skal sendes af sted. Modemmets svar skrives derefter til logvinduet. SendSmsHead: Her starter jeg p at sende smserne, frst bliver der skrevet en del af ATkommandoen til modemmet (at+cmgs=), derefter sender jeg det telefonnummer som blev sendt med da funktionen blev kaldt, og det hele afsluttes s med at stte et og et carriage return p, og holde en lille pause. SetPin : Her starter vi med at sende at+cpin? kommandoen ud, og afventer svar. I tilfldet at modemmet nsten lige er blevet startet op vlger vi at sge efter +cpin: i dataen fra den serielle port, da der sendes noget data vi ikke skal bruge lige som modemmet starter. Hvis modemmet returnere +cpin: sim pin lses der i Server-Settings filen og at kommandoen genereres (at+cpin=2595). Dataen sendes af sted og vi starter en lykke der venter p at f wind: 11 tilbage, hvilket indikere at modemmet er oppe og kre. Hvis modemmet returnere +cpin: ready skriver vi No pincode needed og hopper hurtigt videre. Der er selvflgelig ogs muligheden at vi fr noget uventet data tilbage, hvilket vil resultere i der i logvinduet vil st Error in set pin part of the code. SmsSplit: Her modtages smsen som den sendes fra modemmet, s jeg starter med at hente afsenderens nummer ud, og fjerner derefter alt fr den egentlige besked. Frst tjekkes beskeden for om den er conf ok, hvis dette er tilfldet gr vi videre til HandleAcknowledge med afsenderens nummer. Ellers sikre vi os at dataen er inden for de rammer vi har specificeret i vores interne sms protokol. Nr smsen er sluppet igennem dette tjek bliver den delt op ved flere gange at blive sendt igennem Splitter(). S bliver installationsid p afsender telefonnummeret fundet, og det medtagede data puttes i logtabellen. Og der skrives i logvinduet Sms added to Log. Splitter : Splitteren har en reference til de data den skal arbejde med, og laver ikke det helt store, den sger efter : i teksten og returnere teksten til venstre for det, og stter den data referencen peger p til alt til hjre for :. StartSerial: Jeg starter med at lse i Server-Settings filen hvilken COM-port der skal bruges, og bner derefter den serielle forbindelse med en fastlagt baud rate p 1200. De 1200 blev valgt for at holde det ens p server og pic. tversum : Denne funktion bruges nr vi skal sende en config sms til installationerne, da vi har valg at de ikke skal reagere p smser hvis ikke den starter med tvrsummen af deres imei nr. s vi sender imei nummeret vi har fra databasen ned og ligger dem sammen tegne for tegn. Og returnerer resultatet. writeFrame: Writeframe er lavet til at tage en vector med noget data, og skrive det til den serielle forbindelse, men nogle sm pauser s modemmet ikke bliver forpustet, hvorefter det hele sluttes af med at sende en carriage return og endnu en lille pause. 9 Software dokumentation for web-software TNTnet Da vi har valgt en ret ukendt platform til at basere vores webinterface p, vil vi bruge lidt plads p at beskrive hvad det er og hvordan det virker. TNTnet er en http applikationsserver hvor at man programmerer sine sider og moduler i C++. C++ er er ikke just et sprog man normalt forbinder med udvikling af web-sider da man inden for dette felt har haft en prference for fortolkede sprog s som perl, php eller visual basic eksekveret under ASP containeren og senest har pyton og ruby meldt sig p banen. Dermed ikke sagt at (semi-) kompilerede sprog ikke har vrt brugt fleks er Java ret udbredt i form af JSP & servlets. TNTnet bestr af flere forskellige komponenter. Frst og fremmest bestr det af en selvstndig http server som har til opgave at modtage foresprgsler fra brugeres klient (browser) og udlevere det nskede dokument, hvad enten det er i form at noget statisk indhold ssom et billede / html dokument, eller om det er en dynamisk side der skal eksekveres for at genere outputtet til brugeren. En dynamisk side kaldes i tntnet termer for et modul, og disse moduler ligger som kompileret c++ i dynamiske biblioteker (dynamic shared libraries). Disse libraries indlses i hukommelsen og fjernes igen alt efter behovet, dog er levetiden af en ikke lngere brugt klasse konfigurrbar. De indkomne foresprgsler bliver dispatched sledes at de hver isr bliver varetaget i en separat trd, dette er selvflgelig den mest effektive model, men medvirker samtidig at hvis man i sit modul skal vre sikker p at det kode man nu laver er trdsikkert. TNTnet serveren kan afvikles p en bred vifte af unix-ligende operativsystemer. Dernst er TNTnet ogs en samling software biblioteker og klasser som varetager mange af de funktioner man har brug for i forbindelse med udvikling til web, ssom parsning af input, generering af output, hndtering af HTTP headere, cookies og sessions. Dette bibliotek indeholder ogs de klasser og interfaces der er ndvendige for at lave et side-modul som http-serveren kan indlse og eksekvere. Desuden er der et database bibliotek som implementerer et database abstraktionslag, sledes at man ikke selv skal hndtere de enkelte database-APIer ssom libmysqlclient(MySQL) eller libpq (PostgreSQL). Dette bibliotek implementerer ogs en ensartet tilgang til database metodikker ssom transactions og prepared statements. For at programmere til tntnet skal man implementere hver modul som en klasse der nedarver fra tntnet::Component. Men for at undg at man skal kende alle detaljerne omkring denne klasse og metoden til at registrere sine klasser med hoved applikationen , men ogs fordi at mange web-udviklere kan lide at blande deres HTML kode med deres eksekverbare kode. For at hndtere dette har tntnet udviklerne lavet et srligt format kaldet ecpp. En ecpp fil er basalt set en almindelig html fil, hvor at man opbygger sit modul med almindelige html koder, disse formaterings koder kaldes ogs for tags. Denne html-tilstand kan brydes med nogle specielle tags som ecpp formatet specificere hvormed at man kan skifte mellem html og c++ kode tilstand, p samme mde som php og asp har deres egne specielle tags til disse tilstandskift. Dette illustreres bedst med et lille eksempel: Dette format kan selvsagt ikke fortolkes direkte af en c++ compiler da det ikke lngere er et standard c++ format. Derfor skal ecpp filen frst igennem en ecpp compiler. Denne compiler tager ecpp filen og ud fra indholdet genererer den en klasse der nedarver fra tntnet::EcppComponent, der igen er nedarvede fra tntnet::Component og dermed passer ind i tntnet serverens eksekveringsmnster. Outputtet fra ecpp compileren er standard C++ og kan dermed kompileres til objekt filer der kan linkes sammen til et shared library, der kan indlses af tntnet serveren. Relationen mellem .ecpp og .cpp filerne er den samme som relationen mellem .jsp og en servlet komponent for dem der er bekendte med denne type java-udvikling.  EMBED Visio.Drawing.11  Design Opbygningen af web-delen er splittet ud p mange separate moduler for at gre kodningen af det enkelte modul simplere. Datatilgngeligheden er lavet sledes at alle medarbejdere hos Serren AB kan g p sitet og aflse de indsamlede data og kontakt informationer omkring de enkelte kunder. Hvis at det er ndvendigt at ndre informationer vedrrende en kunde eller kundens installationer skal man logge p systemet. Dette system har sit eget modul til brugergodkendelse og kan derfor ikke godkende brugere op imod andre systemer. Godkendelse op imod f.eks. en LDAP server kunne komme p tale p lngere sigt. De brugere der kan logge p systemet kan opdeles i 2 kategorier Almindelige administrations brugere. Brugere med denne profil kan oprette,ndre og slette brugere og deres tilhrende installationer. Udsende konfigurationer til n eller alle installationer. ndre serverkonfigurations parametre. Superbrugere, der ud over at kunne det samme som den almindelige bruger ogs kan administrere bruger accounts. Af sikkerhedshensyn br passwords aldrig sendes i klartekst og det gr de selvflgelig heller ikke her, da de alle kodes til en MD5 hash i browseren og da md5 er en envejs algoritme har hverken web-server eller databasen nogen id om hvordan at passwordet ser ud i klartekst-form. Hvis at man har brug for mere sikkerhed vil det vre et oplagt valg at kre web-applikationen via Secure Sockets Layer (SSL). Webapplikationer er forskellige fra traditionelle programmer, idet at dataene i princippet kun lever i de millisekunder at eksekveringen finder sted, kan der ikke gemmes tilstanddata internt i programmet. Derfor er den slags data ndt til at blive leveret fra request til request via browseren, som s sender dataene tilbage i form af request variable eller cookies. Login data br iflge vores mening ikke sendes frem og tilbage i denne form s derfor bruges der en metode kaldet session data, hvor at web-serveren genererer en unik id som sendes til browseren som en cookie og derved returneres ved hver efterflgende request. Nu kan session afhngige data gemmes i server softwaren i et dertil indrettet omrde som laver en mapning imellem session-iden og de gemte data. Levetiden af disse sessionsdata kan konfigureres i tntnet serveren, og er fra vores side sat til 10 minutter. Dette medvirker at en bruger automatisk logges af administrationsdelen efter 10 minutters inaktivitet. Layout. Layoutet er lavet i et simpelt, nrmest klassisk design, med en navigationsmenu i venstre side og selve indholdet i hjre side. Da vi ikke har kendskab til Serren AB og ikke har haft adgang til brevpapir eller lignende materiale fra firmaet har vi ikke kunnet afkode firmaets grafiske profil og har vret ndsaget til selv at fastlgge farvevalg mm. For at ge lsbarheden er der til selve indholdet valgt sort tekst p hvid baggrund, imens menuen er hvid p rd baggrund som ligeledes str i skarp kontrast til hinanden. Vi har valgt at bruge en almindelig serif font til indholdet, p nr teksten i temperatur grafen hvor at vi bruger billed-generatorens standard font. Al html koden er lavet sledes at det opfylder html 4.01 transitional standarden, og kan succesfuldt valideres med www konsortiets html valideringsmaskine ( HYPERLINK "http://validator.w3.org/" http://validator.w3.org/). For at vre sikker p resultatet er det desuden blevet afprvet i en rkke forskellige browsere: Mozilla Firefox 2.0, Internet Explorer 6 & Opera 9.20 Software dokumentation Ecpp moduler Se ogs bilag XX for en grafisk reprsentation. header.ecpp & footer.ecpp Disse to filer har til opgave at generere alt indledende og afsluttende html der skal bruges i alle de vrige moduler. Header opbygger hele menuen og ud fra om den aktuelle bruger er logget p genereres de relevante menupunkter til administrationen. Header srger ogs for at stte to http headers som tvinger browseren og eventuelle proxy-servere til altid at hente en ny udgave af et givent dokument fra webserveren, sledes at vi ikke risikerer at brugeren ser gamle data. Det er op til det enkelte modul at srge for at disse to bliver kaldt p det rigtige tidspunkt. index.ecpp Et modul som ikke har andre opgaver ud over at vise en velkomstside samt at prsentere menuen for brugerne. critical.ecpp Viser alle installationer som enten har en kommunikations-fejl eller hvor at en eller flere parametre i den seneste indkomne sms er inden for det kritiske omrde. Dette gres ved frst at finde alle installationer og itererer over denne liste hvor efter at seneste sms udtrkkes for den enkelte installation. Hvis at dataene er kritiske skrives de kritiske vrdier og der linkes til installationdetails.ecpp. customerlist.ecpp Laver en liste over alle kunder registreret i systemet. For hver kunde udskrives kontakt informationer og en liste over de tilhrende installationer. Hver installation linker til installationdetails.ecpp. installationdetails.ecpp Modtager et installations id som argument, og ud fra dette id vises frst alle de essentielle data vedrrende den pgldende installation, de fleste data vises direkte i deres tekstform men indikationen af hvorvidt at der er kommunikationsfejl vises vha. bullet grafik komponenten. Dernst vises en temperatur kurve via et billed-link til temperaturegraph komponenten. Nederst p siden udskrives alle de indsamlede logdata i omvendt kronologisk orden, med grafisk fremhvning af parametrene sfremt nogle af disse er i kritisk tilstand. temperaturegraph.ecpp Dette modul fr ligeledes et installations id med som argument og bruger dette id til at finde de seneste 20 temperaturmlinger fra den pgldende installation og plottes i en kurve. For at f dataene til at st i en hensigtsmssig rkkeflge nr at de skal behandles udtrkkes de frst i en indre subquery hvorefter at min ydre query bare har til opgave at vende rkkeflgen. Dataene plottes i et billede via et 3 parts. bibliotek kaldet libgd som er et general purpose grafik bibliotek. Med dette bibliotek kan man oprette et billede fra bunden af eller indlse et eksisterende billede i hukommelsen. Nr man har et billede i hukommelsen, kan man s bruge funktionskald til biblioteket for at f tegnet forskellige grafik elementer ssom prikker, streger, cirkler, skrive tekster osv. Nr billedet er frdigt beder man biblioteket om at generere et billede til et specifikt output format (gdlib kan generere til bl.a. jpeg, png og gif) og angive hvorvidt dataene skal skrives direkte til en fil eller til et omrde i hukommelsen. Temperaturegraph har 3 forskellige faser / stadier. I frste fase oprettes billedet som et blankt billede. Der skrives overskrift og der tegnes markerings linier for hver 10. temperaturgrad. I anden fase trkkes dataene ud fra databasen og hvert punkt plottes i form af en firkant p 3x3 pixels. Hvis det nuvrende punkt ikke er den frste, tegnes der en linie fra det forrige punkt til det nuvrende. Sidste fase er at generere et billede i png-format ud fra libgds interne bitmap-buffer. Png billedet laves med en kompressionsgrad p 1, hvilket giver det bedste forhold imellem tiden det tager at lave billedet og billedets strrelse mlt i bytes. Billedet, der genereres til en ram-buffer, udskrives direkte til TNTnets output stream. login.ecpp Dette modul virker p sin vis p samme mde som mange af de vrige komponenter i administrationsdelen i det at modulet har til opgave bde at generere en formular til indtastning af data men den skal ogs tage imod de indtastede data nr at disse indsendes og behandle dataene. Formularen bestr af felter til hhv. brugernavn og password. Nr brugeren trykker p submit knappen krypteres passwordet med en md5 hash algoritme og dataene sendes tilbage til login komponenten. Nr login-dataene modtages verificeres disse i databasen og hvis at de var valide sttes session data der beskriver brugeren og browseren omdirigeres til index.ecpp. logout.ecpp Dette script ryder alle sessionsdata omkring brugeren s brugeren fremstr som vrende ikke-godkendt og bliver omdirigeret til index komponenten. adm_customer_list.ecpp Dette er den frste komponent i administrationsdelen. I denne komponent, ligesom alle de vrige administrationskomponenter, undersges frst de tilhrende sessionsdata for at undersge om browseren der foresprger siden har en gyldig login-session. Hvis ikke omdirigeres til index. Dernst trkkes en liste af kunder fra databasen og udskriver disse til brugeren. For hver kunde laves der link til hhv. formularen til ndring af kunde data og en liste over kundens installationer. adm_customer_edit.ecpp Denne side bruges bde til at oprette nye kunder og til at ndre i eksisterende kunders stam-data. Om der skal laves det ene eller andet afgres ud fra det kundeid der overfres sammen med det frste kald til siden. Hvis idet er 1 s er det en ny kunde, ellers er det en eksisterende. Der opbygges en formular til indtastning af felterne navn, adresse, telefonnummer og kontakt person. Inden dataene indsendes valideres de med et JavaScript der undersger om kundenavn er p 3 karakterer eller mere. Grunden til at der ikke krves flere data end dette ene felt er at vi gr ud fra at disse stamdata ndvendigvis ogs m optrde andre steder i Serren ABs systemer, f.eks. i deres bogholderi-system. Hvis at det er en eksisterende kunde vises en knap til at slette kunden via adm_customer_delete, men brugeren sprges frst for at undg fejl-sletninger. Nr dataene bliver indsendt kigges frst p om det er en ny eller eksisterende kunde og fra dette enten oprettes en ny kunde profil i databasen eller den eksisterende kunden tilrettes med de indsendte data. Sfremt det var en nyoprettelse omdirigeres der til kunde-oversigten. adm_customer_delete.ecpp Denne komponent fr et kunde id og sletter den tilhrende kunde-profil i databasen og der omdirigeres til kunde oversigten. adm_installation_list.ecpp Denne komponent fr overfrt et kunde id via request URLen. Ud fra denne kunde id findes alle kundens installationer og disse vises i en liste hvorfra der linkes over til adm_installation_edit.ecpp. adm_installation_edit.ecpp Dette er en kombineret oprettelses-/ndringsformular og databehandler p samme mde som adm_customer_edit komponenten. De relevante data trkkes ud fra databasen og vises i formularen (medmindre at det er en nyoprettelse). Nr at dataene skal sendes tilbage til serveren via formularen verificeres de i et JavaScript ud fra flgende kriterier: Den generelle beskrivelse af installationen skal vre p 3 karakterer eller mere. Telefonnummeret skal vre et tal og hvis det ikke er 8 cifre langt sprges brugeren om det er det korrekte nummer. IMEI nummeret skal vre et tal og skal vre p 15 cifre. Opdateringsintervallet skal vre et tal og skal vre mellem 5 og 250. Ogs ved dette modul er der mulighed for at slette en installation via en knap (udfres i adm_installation_delete) Hvis det var en nyoprettelse omdirigeres til adm_installation_list kompnenten. adm_installation_delete.ecpp Sletter den angivne installation fra databasen og omdirigerer til adm_installation_list.ecpp. adm_user_list.ecpp Frst kigges p om sessionsdataene beskriver en bruger der er logget ind med privilegier der omfatter brugeradministration. Dette tjek udfres ligeledes i adm_user_edit.ecpp og adm_user_delete.ecpp. Derefter vises en liste med alle brugere oprettet i systemet, og for hver bruger linkes til adm_user_edit.ecpp. adm_user_edit.ecpp Dette er en multi-funktions komponent p samme mde som adm_customer_edit.ecpp og adm_installation_edit.ecpp. Hvis der skal vises data for en eksisterende bruger hentes disse fra databasen dog ikke passwordet og vises i formularen. Inden formular-dataene sendes valideres de ud fra flgende kriterier Brugernavn m ikke vre blankt Hvis det er en ny bruger, m frste password felt ikke vre tomt. Hvis frste password felt indeholder en tekst-streng skal andet felt indeholde den samme streng dette er for at undg et fejltastet password. Hvis dataene gr igennem valideringen og der er data i frste password felt, s krypteres disse med MD5 og andet password felt ryddes. adm_user_delete.ecpp Sletter den angivne bruger og omdirigerer til adm_user_list komponenten. adm_send_config.ecpp Denne side har to formularer der giver mulighed for at udsende konfigurationssmser til henholdsvis alle tilkoblede installationer eller en enkelt installation som brugeren vlger i en drop-down boks den sidstnvne drop-down boks genereres i funktionen createInstallationSelector() i starten af filen. I bunden af siden vises hele kommando-historikken fra command tabellen sledes at brugeren kan se hvornr der sidst er udsendt smser og hvilke der er i k til afsendelse. Begge formularer indsender dataene til adm_send_config.ecpp og i begge tilflde vil dataene blive indsat som en ny rkke i command tabellen. adm_server_config.ecpp I dette modul har brugeren mulighed for at ndre de server parameter der er almindeligt tilgngelige hvilket p nuvrende tidspunkt kun er serverens telefonnummer. bullet.ecpp Dette er en billed generator der genererer den farvede kommunikations indikator lampe der bruges i installationdetails komponenten. Komponenten modtager den nskede farve og strrelse og genererer et billede vha. libgd og returneres som et PNG billede. template.ecpp og adm_template.ecpp Disse to filer er skabeloner der kan bruges sfremt det skulle blive ndvendige at oprette enten en almindelig/offentlig komponent eller en administrations komponent. vrige filer dynamic/common.h Denne fil er hjemsted for nogle generelle udvidelser til C++ std::string da denne klasse fra naturens side ikke er udstyret med funktioner til at borttrimme mellemrum og andre fyld-tegn. bool iswhitespace(unsigned char ch) angiver hvorvidt en given char er et blanktegn (whitespace) string ltrim(string input) fjerner alle blanktegn fra starten af strengen. string rtrim(string input) fjerner alle blanktegn fra slutningen af strengen. string trim(string input) fjerner blanktegn fra starten og slutningen af strengen. string nl2br(string input) erstatter alle linieskift i en tekst streng med html taget for et tvunget linieskift (<br>). Dette gr at tekststrenge der i databasen ligger som en streng fordelt p flere linier bliver vist som flere linier i browser vinduet. static/trim.js Indeholder en JavaScript implementation af trim() som fjerner blanktegn fra starten og slutningen af filen. static/md5.js Indeholder en JavaScript implementation af MD5 algoritmen. Denne implementation er kodet af Paul Johnston og er hjemmehrende p http://pajhome.org.uk/crypt/md5 static/stylesheet.css Layoutet p siden er defineret i dette Cascading StyleSheet (CSS) dokument. dynamic/gd-cpp/* Her ligger en C++ wrapper som indkapsler grafikbiblioteket libgd, som er lavet i rent C, i nogle relevante C++ klasser. Disse filer er lavet af Kevin Shepherd med en del input fra Torben H. Nielsen. Web klient bruger grnseflade Nr websiden bnes ser man ude til venstre en menu med punkterne: Index, Critical systems, Customers & installations og Login. Index: Denne knap bringer dig til forsiden med det knne billede. Critical systems: P denne side kan du se de systemer hvor den sidste opdatering indeholdte en kritisk tilstand. Hvis der er en installation med en kritisk tilstand kan du klikke p navnet og derved ryge ind p den installations log side. Customers & installations: Denne side viser alle kunder, og under info om dem kan man se hvilke installationer de har, og komme til deres log sider ved at klikke p deres navn. Login: Bruges som en hver anden login side, denne giver adgang til vore administrations del af web klienten. Nr administrations delen startes har vi stadig de 4 muligheder fra fr, dog med logout i stedet for login. Vi fr 4 nye valgmuligheder: Customer admin, Send configurations, Server configuration og User admin. User admin er dog kun aktiv hvis man er logget ind med en bruger der er bruger administrator. Customer admin: P denne side er der et link til Create new customer og ud for hver kunde er der link til edit customer og manage installations. Alle 3 links sender en side hvor man kan gre hvad linket siger, create, edit og manage. Send configurations: Her kan man i en dropdown boks vlge den installation man vil sende en config sms til, ved at klikke p knappen under dropdown boksen. Hvis det ikke er hvad man nsker er der en knap til at sende configurations til alle. Server configuration: Her kan indtastes et nyt telefon nummer og trykkes p knappen send foresprgsel for at skifte serverens telefon nummer i databasen. User Admin: Som tidligere sagt kun mulig hvis man er logget ind som bruger administrator. Her har man muligheden for at trykke p Create new user og lave en ny bruger, eller trykke p et brugernavn og komme til en edit user side. Logout: Gr prcis hvad den siger, logger brugeren ud uden advarsel. 10 Idriftssttelse af systemet Her er nogle noter omkring hvilke skridt som Serren AB skal foretage i forbindelse med systemet, men er ogs for at give Serren ABs systemadministrator et overblik over de installerede systemer. Serverprogrammet er skrevet til i C++/MFC og skal derfor afvikles p en pc/server med en windows variant installeret (2000 eller XP). Denne skal desuden have en seriel port til rdighed for at kunne kommunikere med GSM-modemet. Da systemet netop bruger et GSM modem til afsendelse og modtagelse af data skal serveren naturligvis stilles sledes at der er god dkning fra GSM netvrket. Denne windows server skal ligeledes tilkobles det samme local area network (LAN) som at den anden serverkomponent, linux-serveren, befinder sig p. For at kunne tilg databasen skal der installeret en PostgreSQL ODBC driver. Server softwaren er udviklet p basis af version 08.02.05. For enkelthedens skyld leverer vi en pr-konfigureret linux server med al den ndvendige software installeret, men denne kan selvflgelig integreres med anden linux-installation hvis behovet opstr. Denne server skal tilkobles det samme LAN som windows serveren. Blandt de mange forskellige linux-distributioner der er p markedet har vi valgt en Debian v4.0, da denne stter sikkerhed og stabilitet i hjsdet og derfor er fremragende til serverbrug. P serveren er der installeret en PostgreSQL server v8.1.10 der kun tillader ssl-forbindelser fra netvrket. Database-superbrugeren kan kun logge p via lokale unix-sockets. For at drive web-interfacet er der installeret en tntserver samt de ndvendige libraries og databasemoduler (libgd + tntdb-pgsql). 11 Accepttest Specifikation Vi vil herunder have en accepttest specifikation, som henviser til kravspecifikationen og forklare hvordan de forskellige punkter skal testes. Henvisningerne er underpunkterne til kravspecifikationen 3.2 : Overordnet Testes ved at se om der er et picboard med addon-kort og gpsmodem til. Testes ved at starte server softwaren p computeren og se om det starter. Testes ved at g ind p websiden og logge ind og se om der kommer admin kontroll sider frem. Testes ved at se om der er en database installeret p linux serveren. Overvgnings enhed Testes ved at aktivere de 4 switches og se om de tilkoblede leds skifter status. Testes ved at dreje potmetret i bund og derefter dreje det mod top, og aflse temperatur p LCD displayet. Testes ved at se p sammenkoblingen og konstatere det er et RS-232 interface. Udfr test 2.d.i, 2.d.ii, 2.d.iii og 2.d.iv Testes ved at afvente det antal minutter sidste config sms fra serveren satte, og se om der bliver sendt en sms. Testes ved at skifte tilstand p en af de kritiske kontakter (Power failure, Flammedetector, Fremfringsfejl) Testes ved at pille simkort ud af modemet. Og afvente hvad der sker. Testes ved at se i installations loggen i databasen om de nye smser kommer i rkkeflge. Testes ved at sende en config sms med og se om serveren fr conf ok tilbage, og om der efter det valgte tidsrum kommer en update sms. Testes sammen med e) og ses ved at se p logvinduet p serveren. SMS Server-software Testes ved at se p sammenkoblingen og konstatere det er et RS-232 interface. Testes ved at aktivere en kritisk tilstand p fyret, og se om serveren lser smsen der bliver sendt til modemet og skriver det i logvinduet. Testes ved at se i installationsloggen fra den afsendende installation om smsen er blevet dekodet og tilfjet. Testes sammen med test 2.b Testes ved at stte web interfacet til at sende en config sms til 1 og alle personer, og se om de bliver sendt til udstyret. Testes ved der ikke skrives conf ok p en af config smserne og venter i 5 min for at se den blive sendt igen. Testes ved at vente yderligere 5 minutter, og derefter tjecke critical listen p web interfacet, hvor udstyret skal st med comm error. Testes ved at ndre serverens telefonnummer via web interfacet og vente p serveren igen kre keepaliveandread() og lse det nye telefonnummer i logvinduet. Testes ved at vente 15min fra 2.e og se om den skriver telefonnummeret igen. Web-interface Udfr test 4.a.i, 4.a.ii og 4.a.iii Testes ved at bne Critical systems siden og vente 2 min og se om den opdattere. Testes ved at trykke p Customers & installations og se om der er de samme kunder som i databasen. Testes ved at trykke p en installation under en kunde og aflse dataen p skrmen. Testes ved at trykke p login og logge ind med admin admin Testes ved at trykke p Customer admin og derefter Create new customer, og oprette en test kunde, og se i databasen om den nye kunde er der. Testes ved ndre f.eks. adressen p test kunden, og se i databasen om det er blevet ndret. Testes ved slet test kunden og se om den bliver fjernet i databasen. Udfr test 4.4.a og 4.4.b Testes ved at trykke p Send configurations og sende en config sms til en af installationerne Testes ved at trykke p Send configurations og sende en config sms til alle installationerne. Testes ved at trykke p Server configuration og ndre server phone nr: og derefter tjecke op p om det blev ndret i databasen. Testes under User admin p samme mde som 4.a.iii med en test bruger i stedet. 12 Konklusion Forlbet i dette projekt er stort set get smertefrit. Til at starte med, kom vi vores forrige projekt i hu, og srgede for at begrnse vores opgave til et niveau vi var sikre p at vi nogenlunde ville kunne overskue. Under udformningen af kravspecifikationen havde vi nogle problemer med at f identificeret hvordan at dataene til pic skulle aflses, og mtte ogs ty til hjlp hos flere forskellige personer da dette indebar en hardware viden som vi desvrre ikke selv har. Apropos hardware s m vi indrmme at omrdet omkring design og fremstilling af elektroniske kredslb p ingen mde er blandt vores strke sider. Dette har taget tid og har voldt mange frustrationer. Implementationen af softwaren er get godt, og har haft en rimelig blanding af bde kendte og nye, uudforskede komponenter. Dette har medvirket at vi alle har hstet nye erfaringer mht. til design og udvikling af software p de forskellige platforme. Tilfjelsen af en ekstra komponent i form af et GSM modem har vret ganske interessant og det har vret spndende at finde ud af hvordan det skulle bruges, og har ogs givet anledning til fremstilling af diverse kabler og debug vrktjer. Gruppearbejdet er get godt, men da dette nu er det 5. projekt hvor vi arbejder sammen i denne gruppestruktur kender vi selvflgelig hinandens styrker og svagheder. Dette medfrer at vi har vret gode til at supplere hinanden og ved hvornr at vi skal lade hinanden vre i fred. Svendeprve rapport - Flisfyrovervgning Side  PAGE 18 af  NUMPAGES 35 Ecpp eksempel: <html> // starter i html tilstand <body> <{ //Nu er vi i C++ tilstand //her kan laves C++ kode }> //afslut c++ tilstand og g tilbage til html </body> </html>  
3  !=>?@GHIcdefghijkujwUmHnHu&j>*B*UmHnHphumHnHsH uj}UmHnHujUmHnHumHnHu0JaJmHnHu&j>*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHu jU( iOVo?? *
4 ~
5
6 ; ) y  8#
7  8#
8  8#
9 + ~ / "#$%-./IJKLMNOPQmnop~ͳ߫ߣߣ{߫ߣg&j>*B*UmHnHphujkUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH ujqUmHnHujUmHnHumHnHu0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu&456PQRSTUVWXtuѝޏ{ѝmjYUmHnHu&j>*B*UmHnHphuj_UmHnHu0JaJmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujeUmHnHu*uvw9:;<MNOiϵ߭קדυ߭קq&j>*B*UmHnHphujMUmHnHu&j>*B*UmHnHphu mHnHumHnHsH ujSUmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&j>*B*UmHnHphu&ijklmnopq89:<=>?@A]^ѝޏ{ѝmj; UmHnHu&j
10 >*B*UmHnHphujA
11 UmHnHu0JaJmHnHu&j >*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujG UmHnHu*^_`}~      8 ɽɯɽߧߟɽwɽߧߟcɽ&j >*B*UmHnHphuj/ UmHnHu&j >*B*UmHnHphu mHnHu0JmHnHumHnHsH uj5 UmHnHujUmHnHumHnHu0JPJ_HmHnHtHuj0JUmHnHu&j >*B*UmHnHphu&8 9 : < = > ? @ A ] ^ _ ` j k l љދwљijUmHnHu&j>*B*UmHnHphuj#UmHnHu0JPJ_HmHnHtHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHuj)UmHnHu) 
12 
13
14 #
15 $
16 %
17 '
18 (
19 )
20 *
21 +
22 ,
23 H
24 I
25 J
26 K
27 [
28 \
29 ]
30 w
31 x
32 y
33 {
34 |
35 }
36 ~
37 
38
39
40
41
42
43 ֞v֞b&j>*B*UmHnHphujUmHnHu&j>*B*UmHnHphu mHnHumHnHsH ujUmHnHujUmHnHumHnHu0JPJ_HmHnHtHuj0JUmHnHu&j>*B*UmHnHphu0JmHnHu#
44
45
46
47
48
49
50
51
52
53
54
55
56
57      4 5 6 8 9 : ; < = Y Z [ \ g h i Ѷ~Ѷj&j>*B*UmHnHphujUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHuj UmHnHujUmHnHumHnHu0JaJmHnHu0JPJ^J_HaJmHnHu%    " # $ & ' ( ) * + G H ޙwjUmHnHu&jv>*B*UmHnHphujUmHnHu&j|>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujUmHnHu*H I J V W X r s t v w x y z {  ϵ߭קדυ߭קq&jd>*B*UmHnHphujUmHnHu&jj>*B*UmHnHphu mHnHumHnHsH ujUmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&jp>*B*UmHnHphu&y  q giYE.|hi 8#
58  8#
59  8#
60         < = > ? N O P j k l n o p q r s ޙwjUmHnHu&jX>*B*UmHnHphujUmHnHu&j^>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujUmHnHu*
61   /012DEF`abdefghiϵ߭קדυ߭קq&jF>*B*UmHnHphujUmHnHu&jL>*B*UmHnHphu mHnHumHnHsH ujUmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&jR>*B*UmHnHphu&  1234FGHbcdfghijkޙwj UmHnHu&j: >*B*UmHnHphujUmHnHu&j@>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujUmHnHu* %&'(678Rϵ߭קדυ߭קq&j(#>*B*UmHnHphuj"UmHnHu&j.">*B*UmHnHphu mHnHumHnHsH uj!UmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&j4!>*B*UmHnHphu&RSTVWXYZ[wxyzޙwj%UmHnHu&j%>*B*UmHnHphuj$UmHnHu&j"$>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHuj#UmHnHu*"#$>?@BCDEFGcdefrstϵ߭קדυ߭קq&j
62 (>*B*UmHnHphuj'UmHnHu&j'>*B*UmHnHphu mHnHumHnHsH uj&UmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&j&>*B*UmHnHphu&   '()+,-./0LMNOYZ[uvwyz{|}~ޙwj{*UmHnHu&j)>*B*UmHnHphuj)UmHnHu&j)>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHuj(UmHnHu*789:EFGaϵ߭קדυ߭קq&j,>*B*UmHnHphujo,UmHnHu&j+>*B*UmHnHphu mHnHumHnHsH uju+UmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&j*>*B*UmHnHphu&abcefghij !=>ћލykj]/UmHnHu&j.>*B*UmHnHphujc.UmHnHu0JaJmHnHsHu&j->*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHuji-UmHnHu*>?@FGHbcdfghijkϵ߭קדυ߭קq&j1>*B*UmHnHphujQ1UmHnHu&j0>*B*UmHnHphu mHnHumHnHsH ujW0UmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&j/>*B*UmHnHphu&    ,-./;<=WXY[\]^_`|}~ޙwj?4UmHnHu&j3>*B*UmHnHphujE3UmHnHu&j2>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujK2UmHnHu*^q!z(y{|EF,- 
63 & F
64  8#
65  8#
66  8#
67  8#
68  
69   -./0NOPjklnopqrsϵ߭קד߉{߭קg߉&j6>*B*UmHnHphuj36UmHnHu0JaJmHnHu&j5>*B*UmHnHphu mHnHumHnHsH uj95UmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&j4>*B*UmHnHphu& !"#?@ABDEWXYstuwxyz{|ޙwj!9UmHnHu&j8>*B*UmHnHphuj'8UmHnHu&j7>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHuj-7UmHnHu.!"#%&'()*FGHIVWǻǭǻקדǻDžǻקqg0JaJmHnHu&j;>*B*UmHnHphuj;UmHnHu&j:>*B*UmHnHphu mHnHuj:UmHnHujUmHnHumHnHumHnHsH u0JmHnHuj0JUmHnHu&j9>*B*UmHnHphu(WXrstvwxyz,C1D1E1^1_1`1a1\FrFKLjL|L^O|O^QcQjQkQQQ*S5SS
70 TWW0YJYZ ZZxmPJ^J_HmHsHCJPJ^J_HaJPJ^J_HmH sH CJPJ^J_H PJ^J_HPJ_HnHtHmHsHmH sH  j<UjVy
71 K
72 UV^J_H jUmHnHsH uj0JUmHnHuj<UmHnHumHnHujUmHnHu* !!!#$Q%R%S%K&L&U&V&''m(n(L)M))),,,-/0C1"
73 & F C1D1b1c1}12j33_6`6z660818X8+:,:;;;.</<?<<<<$If"<<<= =(=K=L=T=w=x======_>h$Ifk$$Ifl0@ # `064
74 la_>b>>>> ?
75 ??X?Y?d????"@#@7@<`k$$Ifl0@ # `064
76 la$If7@@@@^A_AjAAAA=B>B?BOBBBBk$$Ifl0@ # `064
77 la$IfBBBCC%CVCWCeCCCCCCDVDWDPh$Ifk$$Ifl0@ # `064
78 laWDdDDDDDDDmEnEoE~EoFrFFFFpk$$Ifl0@ # `064
79 la$IfFFFFxGyGGYHZHiHIIIIhIkIIk$$Ifl0@ # `064
80 la$IfIIIJJ'JLJMJVJJJJKK KqKrKD<p$Ifk$$Ifl0@ # `064
81 larKsKKKL3L4L:LzL{L|LLzM{MMMMk$$Ifl0@ # `064
82 la$IfMcNmN}N~NNNNNN OO%O-O.O^O|OP^QcQQQnR*S5SQS "
83 & F ^`"QSS
84 TTTUU&V8VV!X3XwXX0YJYZ ZZ[[t\]]M^"8^8 " p8^8 "
85 & F ^` "
86 & F 8^8`Z[M^_^^^._Z_e`z```DaVaZbnbbc`fafmfnfffffffgg=g>gYg[geggggghh3h4h]hhhhhhh(i)iiiii*jYjZjjjjjkk8k\kʿڿʿOJQJ^J_HmH sH OJQJ^J_HPJ^J_HnHtH5CJOJQJ\^J_HaJPJ_HnHtHPJ_HaJnHtH PJ^J_HPJ^J_HmH sH BM^_^^^._Z__ ``e`z```DaVaZbnbbcd!deweef_f"8^8 "
87 & F 8^8` "
88 & F ^`_f`fnfvfffffffffgxmlm@$$If0%47a7@$$If0%47a7#$G$If" 8 ggg$g=g>gHgYgZg[geggggp@$$If0%47a7#$G$If ggghh h3h4h]hhhhhhuu<uDuT@$$If0%47a7#$G$If@$$If0%47a7 hh(i)iViiiiii*jYjZjjjjjkk8k\k]kppP@$$If0%47a7#$G$If\k]kkkklllmlllllmmAmmmmmmJnKnnn o:o;oxoyooooopOwPwopBC\]^_!"HIJbcTn+%mH sH 0JjqU jUjK
89 UV jUjCJUmHnHsH umHsH jWU PJ^J_HPJ_HnHtHOJQJ^J_HOJQJ^J_HmH sH PJ^J_HnHtH:]kkkklllmlllllmmAmmmmmmnJnKnpH(TD@$$If0%47a7#$G$IfKnsnnn o:o;oJoxoyoooooo,pxppppUq"@$$If0%47a7#$G$IfUq\qrirOsVssstttuCwDwOwQw_wwwyy|&|||m}{}~~҃+$$p؊s^ۍ۔I}n{V`QR01ۤ++,;<klmnoAB`aiʰ˰ Nͱb
90 & F
91 & F$a$bcطٷb@#STnM&'5:r7
92 tu+E %E~~)*E )F8NObN
93 & F
94 & F%*EObk@Qf0D
95 h] ^ d e g h l m w x z { ~  , 0  OJQJ^J6]0J!mHnHu0J! j0J!U^JmH sH mH sH " !jk\|}~Z Y
96 & F
97 & F,-;?@Q7H8*
98 & Fxy@op[fTm " 8^"
99 & F hh^hh^h
100 "
101 & F h
102 & FmnZ gh0D
103 "
104 & F 8 " h^
105 "
106 & F h
107 & F " 8^"
108 & F 80^`0"
109 & F hh^h " hh^h)
110  >Jv
111 "
112 & F 8
113 "
114 & F 8
115 & F "
116 & F 
117 "
118 & F h " h^
119 "
120 & F h " 88^85hijkz{Z" 
121 
122 & ' ( ) * + V W | } ~  
123 "
124 & F 8
125 "
126 & F ~       % - . / 0  ,1h. A!"#$% }DyK _Toc185235925}DyK _Toc185235925}DyK _Toc185235926}DyK _Toc185235926}DyK _Toc185235927}DyK _Toc185235927}DyK _Toc185235928}DyK _Toc185235928}DyK _Toc185235929}DyK _Toc185235929}DyK _Toc185235930}DyK _Toc185235930}DyK _Toc185235931}DyK _Toc185235931}DyK _Toc185235932}DyK _Toc185235932}DyK _Toc185235933}DyK _Toc185235933}DyK _Toc185235934}DyK _Toc185235934}DyK _Toc185235935}DyK _Toc185235935}DyK _Toc185235936}DyK _Toc185235936}DyK _Toc185235937}DyK _Toc185235937}DyK _Toc185235938}DyK _Toc185235938}DyK _Toc185235939}DyK _Toc185235939}DyK _Toc185235940}DyK _Toc185235940}DyK _Toc185235941}DyK _Toc185235941}DyK _Toc185235942}DyK _Toc185235942}DyK _Toc185235943}DyK _Toc185235943}DyK _Toc185235944}DyK _Toc185235944}DyK _Toc185235945}DyK _Toc185235945}DyK _Toc185235946}DyK _Toc185235946}DyK _Toc185235947}DyK _Toc185235947}DyK _Toc185235948}DyK _Toc185235948}DyK _Toc185235949}DyK _Toc185235949}DyK _Toc185235950}DyK _Toc185235950}DyK _Toc185235951}DyK _Toc185235951}DyK _Toc185235952}DyK _Toc185235952}DyK _Toc185235953}DyK _Toc185235953}DyK _Toc185235954}DyK _Toc185235954}DyK _Toc185235955}DyK _Toc185235955}DyK _Toc185235956}DyK _Toc185235956}DyK _Toc185235957}DyK _Toc185235957}DyK _Toc185235958}DyK _Toc185235958}DyK _Toc185235959}DyK _Toc185235959}DyK _Toc185235960}DyK _Toc185235960}DyK _Toc185235961}DyK _Toc185235961}DyK _Toc185235962}DyK _Toc185235962}DyK _Toc185235963}DyK _Toc185235963}DyK _Toc185235964}DyK _Toc185235964}DyK _Toc185235965}DyK _Toc185235965}DyK _Toc185235966}DyK _Toc185235966}DyK _Toc185235967}DyK _Toc185235967}DyK _Toc185235968}DyK _Toc185235968}DyK _Toc185235969}DyK _Toc185235969}DyK _Toc185235970}DyK _Toc185235970}DyK _Toc185235971}DyK _Toc185235971}DyK _Toc185235972}DyK _Toc185235972}DyK _Toc185235973}DyK _Toc185235973}DyK _Toc185235974}DyK _Toc185235974}DyK _Toc185235975}DyK _Toc185235975}DyK _Toc185235976}DyK _Toc185235976}DyK _Toc185235977}DyK _Toc185235977}DyK _Toc185235978}DyK _Toc185235978}DyK _Toc185235979}DyK _Toc185235979}DyK _Toc185235980}DyK _Toc185235980}DyK _Toc185235981}DyK _Toc185235981}DyK _Toc185235982}DyK _Toc185235982}DyK _Toc185235983}DyK _Toc185235983}DyK _Toc185235984}DyK _Toc185235984}DyK _Toc185235985}DyK _Toc185235985}DyK _Toc185235986}DyK _Toc185235986Dd+,^ 0
127 
128 # A2ux822z(7!Q<}`!Ix822z(7!8"R
129 m (!x{ՕoSEonQV[(Q/EQ!0>(BĘeYA KDc4q`hE|(D~eϬݪ]{jԾTWgT嫨ut
130  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ZXRoot Entry FC~< Data
131 JWordDocument.ObjectPool/<C~<_1258977622 F/</<Ole
132 CompObjsObjInfo
133  !"#%
134 FMicrosoft Visio DrawingVisio 11.0 ShapesVisio.Drawing.119q՜.+,D՜.+,P `ht  VisioDocument
135 ~vVisioInformation"SummaryInformation( .SDocumentSummaryInformation8 
136     !"#$%&'()*+,-/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Visio (TM) Drawing
137 ~vtjugR7 !fffMMM333Fwͩ}|kݝHxUJ:DT5I[1hXT@.
138 /UbW##_b0zGz? L\&B1r&b%U& !oM $d ) P?;H$,Q,
139 & #&J , 5& ?D#//?M?\.? CA 
140 ~,,,'q/%P6$Y6 (}k?l)?"U   U%A3# o >S@#B:_a_ReUUeUeUeUeUeUePONODN`_ReUUeUeUeUeUUeUeUU/b SR%;5OM%>Qiq;RRRRgg Rqh>Qj /A^F' %p3:|bFpT#| |
141 | vi?=Os<34x,,,/RQmeY q]U@QvovL__q____OO_OOTYA`,X@L&/d2?ɖQ3YҨsUΡ̦xΟ@$"Jʼ& ͥ*@d2A??ϟJ[D! f:45ŧ5ŷ5@ 0 0D$#  
142  Q#b ;
143 Chߠ
144 Y ,00JDNrq(NN㊮NN(NN&&uc7D)KXXFNvvK&KD#KD#-D#NHGDB$KzzDKq%iz4
145 }1T\,Eu9fdhT,W'0΢Uܮ5E0 fI$[OmOC%ߑE##HZߪ  E,3Y&4JY&5&6<s9FaBaj+h8 8?&!3"DE=T;ܯ?w?@??8&t,'5UR^LY  Y7akKt//BJhuizpsĝa.1DTcAcpvOpM KKuhdX(G:iX IT[EEh.D#E,ah-50zG#zpvb
146 aHGmc/QP K{\Hp_ hd? pA?%?7?I?[;<t5j!
147 OO*FQ///F/K]SEn%cO@OOlE$g\Ey[EO_!_3_E_W_i_{_____VB506,HM.`e^MIa,>PbQaƒ2q? a%oXIoQfdoooSEX_O-OF6EDpE66Oҟm2Hg;pbӏ_
148 ,X7R[,<WbӤ69sc Rb"a2T^<C="ACoor<G5C+=Oaﲶ2T<R`'67;]ї@<ұwr1r / Ma&3@MZ)gQ#zҨVB;Z`Яܯu[/lsxP0aq&&8JzUxzm 8~{FwƿKxbub{ߴXE%U 5 GPH] !O$]-OOOO>Tful3~O贁Nk?JTf/6S?]?0'^5x@E@E@@t$
149 'n/jRFfuOOo{o_0&G9O_KZk=_O_((]|Tq?Q);/q/ q58?Wf9|s???:etb< djb wOo"oOOO_/aoso;
150 o-W,'HhWWCo/?I=)<EҵNW?/M:RI<W`lm EO_%Oku!`E>1DˠI 2DVOO_&Xoo+oooo9}-P|)CeɍU=O2b@b~qbYk}_ſ׿ˏ);M_qσϕϧ%7v [mur+b{r 0BTfx 0BTfxv9r7 }5GYk}Uc &8J\n/"/y!?"I/[/m/{.bLbݠ////// ??0?B?T?f?y???????? OO-O?OQOcOuOO<OF#ͩOO(Ou1sr_)_;_M___q________oo&o8oJo\onooooooooo4)$?%7Ix[$p?by~Ebێ 0BTk}ŏ׏ 1CUgy8%&'џbd\ sb);M_q ˯ޯ&8J\nȿڿ=q(+&(8J0|ϕϧϹ%7[Ugyߝ߯ -?Qcu4))|*~ kb=gjb| 0BTfx -?Qcu"y+?,<,[qby{Cub_q//%/8/J/\/n/////////?"?4?F?X?"y-$ϐ??=tb>x??OO,O>OPObOtOO_bksOOOOO_ _2_D_V_h_z__a=8\0ٶ_a=b;bbh_U./_oor-b@b3bDbMo _oqooojmizoooobݏ١&8J\nT2-?ȀIbQY1AByq1<֏ 0BTfxjPşן 1CUgyT W3!)9ت]2\nȿڿ]ߧCUgyϋϯ -?QߵuU45 ߤ߶ߊJ@J 1CUgy'9K]oTGFw?3{bq#]#.@)h('}o@o HZl~/ /2/D/T$1a/r8/)6Hx///&n|/??$?6?H?~???2$DPT<?qd@1m[Y/E1 <GO"JErOAQOO5I3OONkO:2Iv____+E_'_2qp_oovlrvjP4R[H{`7,1_:V03@+Svz
151 [HkPWDBT[H`7@m4Voho Do'O9OKO]Ooo#5Gx3XjQeCt?C?\.?`+PAPՏk   |'}l8'9ZloSϥɏ믵 5Gd -UFDfP h>$/T 6D
152 UUF~@x<?F
153 BP(?43P? J+1:{
154 bj/b::I!H? ?  0$`pProcesS ,funO tuiM nW taS UkW Bm"iO ,UlM wO hm ra X!#,dm l!,pK,jM i] e*K ,m"sM"i"d%Ab[ z!!T#-Sc uxW 6$gm"uI0OW 90#2$|e^ d55kUo9?K?B)!)!2)%$` /| <`!kbs{kbs>F4Fzk%>F >A2
155 OBu D(2OVhz~ Drag thuesapWonodwipe+.cs*Wfuci: oObl-=l)cka!dh-1
156 H D  # =ih#4>T#3 A5AUF~? ?F\.?P6 Tuv` ??uJ
157 bkrr r.AšJYMJU5 !LK@#I;!@$5 `?CopyrigTt (c])r 20~ 3r uMj ch osb Ifp"a!rd !ap ib n r AUl h(s"e eh v d/`Vj s_SFBcTm!#5N~"06!5' #%0 5K)M6G# G'? *lW btrr&/Lh=L@l>61Uhh7PY!"  *#"JT3FFFr\F
158 BM)(aOAO#"A5N_IQEEFR_Ov[R52O;EBrA
159 RS#")(le
160 @j 7heGoj@8=ook8too q(b5@MCW?0v0v H"SFAr@K\/SqMRB_<NhCFi{z,%)t@@r uGj5q5{#5"C#"mZon+EBTM,"KK2JK\3;%Vq>#  @!2`a!sp s.2`A#"2,%q1BXVqajGDu*5AଚbA"` R"o͒c"4ڑAEDɏ,%A!MJa?)E[4C/G## %(p&"p"!0~Rb  %BevmHY bg|4G5n","X)(S&@Vq2b~߿\.??a߿,h??4D_ Q);M_>m w =_H'+fs k}bk_J?3UFkew#S`M?
161
162 V]{a @(D4Wk,e>VB@B|TRץp8$*5 7UFDfP h,TYYCUF\.?x<F
163 BP(?E P)?2o @L^^{J_@L&d2?sUB"! &B/eBH0$?w/&? )~  0 ;Q`#CBm0,link\netwBr2p 0r0pP11a0,d 0v0c 0O1^ ;
164 Yp!3u &?  ;;" ;;;gr330;G;#7Drag onut heqp
165 ad likb tw e cmGuiCaisd vOe]sBKcnTe)*`i]^o
166 9il^)n5k].b\.BP(?? M7Pfo??H D  ?h ^T,]]9 
167 AU@\.? ?@BϡP(?P6 u`u (bu]`u --+&1B=^@u` ?zu"2dTw_b .A! '8
168 P-#&,J`Uy"z!?&s?Ab?bAw#n#0O贁Nk?Fw@LU7 ;/
169 b"n#&$72?5B"7='?Z$Q=KW!Lw7W""2RW"M" 6v%n#AD5 ]`! 5@4@18`?CopyrigTt (c)@20@3@M@c@os@fBAr@Qa@i@n.@ Al)P Hs-Re*Pe@v?Pd!P ItP@qZ}PrU?|TrV"r##SOC@`сANyRu(yQ`i'`Qps-8R/d@9m @&W"$"SKbRGW"O2@AMBYq%O G&JM4{w`:AbbfM"$"\CICUMql>!Uhde A(<B#0P"J^X=r;2Kb$B"
170 B"
171 zB3-(JX4~0Kau3<BsA5dX4
172 ?@ '`0k{ 3ӎ3
173 3 MGO5/X4 qsU92PCE9X4von?&Rsr)#CE>X4h4F?@ p8̭ 3#RC[U\ArT93V]mt@hem]5rTC%MA&"$a$a2(ɤO2)֤B*\"+[RllbNN @//01@W!BAV2M]!AAAD" "` ]MPnuPa@ t>QrA]@S7a[m^$b`PBd. Nm`6[Ͽ PPr ϸO5AkGYA D?RAi@UϷEZ~APBQ߹E_;M SCRiP,Qy߀߽[U$1 L@cX߷Pe$6HBi)Pd@n@g﷼3MhR@!oVﹺYP
174 pzmB?Pn@7faLSTa@e PlPo#` AnPeiGPi@y<j& T@ [.`
175 "c򛱀ѻISeSƒbx`u AmV L "qd? r _5cTA e%r%r5rO5rErEr[UrkxerXkq<Po
176 @mtCRőeqqcu%vA\q(qqrxIoyEM3F%PA }i?R`NEWORK@WSH'PP^0 ;0Rd0s1RI^0Sla$@@X`31qBH >':)DNYqq/ue\A\Ar"(D' 4A3\Daabxα 6W6K\WaqqG` rPtrRyASTd&@xOsyA K@bVmK&\=uK$&\%5ƛ_t'SׄrsF3s͵NSYFuEeKpVp//(?/(xA\p~6?@Ig`{]otGOD@`h5rBAcb١/`Rop4a ex$JKFq*Bet ڀBڀc(CFvlAe;wbwrBtA_ oo-o(O@Yk@! ;C`<ob鉘gqHu+ 5)d5ukDWnmF|ky#DKT?
177 IS:a@oUBo=?\k PUFDf h-TYYU?~@x<?F
178 ?BP(?h P?k " <ou]ofu2/u w` C&}nect&r`D
179 e-?{
180 H
181  ^   -}|5 p`I`V?}`xa833ސ]3σ3u 33?, ?Gxpx^& This coUnetrWaumtUcl#yrebtwe h *hp3is.HDD @# =hZ#<T$#3 2 U@bX?\.uP6
182 u
183 `u bA@Wu  ):/*P mu` W?ht~SuZaJU }@-?Dt7'2"sA-tBk'2"u( 2rq?@[I ?$%ۿ?
184 @h[r6Z  "#8*AL2- br>#@L'} V6lX-1u. Bj2u2Z2j2#u9r#ULH/MB#AD5 60`Vis_SE.cTm!#20AD%`;Copy<0igTt ?D1f@M)@c<0o+@ofdBUArX@Aad@iV@n3@ f@Al@ \HsBe*+@e<0v@d3@J@=#x#
185 A G{?9#n"E&0444 M70#AHB
186 53_lj#PSV6U8l>(UhnE qJ$&9"(Fn_g5Fe#pheo'T !! Jcxo)vR2'"U75a%O3W_74b5-6R `F2 5au\@|Q:0b)`R@As)@E T@xd@Di ei=G]U6Tg'2"qV!DHAn 6SWaHw+* O`EW
187 )F_k=#\R!+7F
188 cX,Ge?foDkPUFDfP h(TPYYBUF~@x<?F
189 BP(?| P?
190 b//b@L&_d2?ct\.҆dsU:ȉH?/&k?J="ѤBS  0Kc`,dat b se, on e tiܨ"-or fUl w(cPa Iti!e^ %/UYo/?t!t!2\t%K` F/ `\i!/b7?/b7F(6>/F A2
191 ?&_ QJ /?|wxpf6lbx{s؅pwp  wwDrag onut heQp
192 idUct afl cm oUs dfr
193 >r!s(<Ia2e7`aQ GlPo e9ts.UH TD  # Uh <JT$iiY#RM>U}MUF~? ?FL&d2u?QoNuQ{` ?cu[
194 NbMV VAMA J~s$A
195 sQ   @QM Bt"MnK"NR@P'tr"
196 )Nrb#$u2&?&?r N]#K"L@R]#ҙ14e;-N`Vis_SE.c`m!#5W0106L"`?Copy ig`tW (0)020W030M0c o0of21rT0(Aa0i0n0] 0AlC@ 8UsGBe0e vY@d0M>7D00iERK_9T#3 7?i:P bJNVVV#]#0O贁7Nk?!&QMS&=]#/13FPF)"T$&_?-W)lJYAUttYYI 1Th1@-b3e3`Q(w]$m&?`0 P@#V"0'hAA
197 #'M 7& >2PS8WYmMpo*xcP&cK"8]*`ec/&@kAw$?# ? ygPV0-
198 %s"
199 Ba3U}io|4s2HqEc^o?rF`Y}v20 xrrgQxT5I oJ+f5oGnSz B zΉcgM&HqV50\.Qaԏ$a%?F r"*w hdM!q(i9]&,f$@d9/KPb
200 'c#0b"~1}BF(}0#yA&8x
201 & f 8f䳶과!rHPq
202 RU);M_qHmaxP Ā#bdz%Dї ܜEU}S*JR!ᣏċ p/8&,Aƫ sBQYasυϗϩϻHmd1 Ā"+͛ CvV5qAXz @%ߒZ @)&XqA(nU9 Yq!gfU}&&2Q<c5 cK" T%O);M |f V5V]/ r /6c~b5&8Jqq!nTQTT7q!gTQ)!$K"Q(k #?p'48/h; S` % &Bp]B4AZA_b ~5mD1+ #a#a#aqr-j2MhD #LS!5  \(}B`1s0 @B`RW1@A+?A3J5S3Du/Jo8LuѠ?7!K0S3 RYBo2c%iPEZgXW;G'2qB@F!QQZ%0_BZ!x-AF'Gga/= /
203 *5&@y{pb~߿P&d2??L(a߿i??4D_H'׿# +"x4Z~Dw+Fk,o12a2?
204 S߮3aܥO@74Dk;kP-\B3;@BU !"t4NT*"@|+.@ DV<}C-L@7"AUN!"$U%&'(U)*+,U-./0U1234t4NT*"@|+.@ C<AC-̣@,= :56t4NT*"@|+.@ dBw=
205 AJ-$37U !"7t4NT*"@|+.C@ V=C-DdBU7
206 An@m<IR@m.=IR@lm=DR@ܥm=ORH<(H<(H<(H<(nE\m> REĤm> RE4m> RE|m> R(kGSDl+B! k?)/"4k0S|k;/?Gm?>vPD$m4( U`, LSFDTyB uh$T UFNT*"@F|+.@Fx<?8F
207 BP(?J_P ?a/<e @?\s nu ` """u ) ( @L&d2?r-(\.,(s.sU!&/ o!! &f O1O1 ` Fl wcartm0p2
208 v?285\H?Z?l9C n0e0tB r?2?4eT>A>A uk 4
209
210 A
211 A#HA\DK D KDKDuK}AH}AKAHAKAHAK5D1KAHAKAHAK
212 AH
213 AKDAKAHAKED>AGPAuu=a #a1u5aF}A>aA!!A7
214 q1AA$qA#B1q
215 AFCKqAyyA/vAie}uc\uE uZe}A(a qRUuEE19~?@a?@~?@"5ⅅߎ?aC\Sc%*<1q}Abdq Ve`u7Bt005-ʉ\&
216  p~2 i &Xʇ'2q.!(H\ jUkOXKmDi+T\ !!!!n4ǯٯdq \AUAINp b0s0r0t@Ovvg @i @g-@e @h
217 0d@gD*<NB`"# &e8\}qu&
218 mIdnFŇ|B"Ӊ: HPo߿ސlDAHU@뽁AsUiOPWQQ+RU~ d 6HZlL
219 @}ijfIʏF?gf׈עb'9K]oɟ۟#5~$/k/Z/޿/ // gym)5GȀMYM
220 0d0mտ/?!?/oN`~ϴqw<N߅OOE)_G_`__=Oasg'9K]co!]E"-O#5A Rdv CV}!q}! 1CUg? /?̟?/u/?////B?;?M?_?q???=]E?OjucQ"A_oo'o9nERovo2ƑooOo-oo8SAQ&O8O\OnOO__e=\OewߠqE U_g_y_ߝ___l5|?RqA`l7wʳտ7y(U@$.{xH&d2?@BP(ԣRÝ&O x`Aw)p?(@z3,!p=LmYl~p/uC.XLXߺӓͧɊٹغ%I@a?D$6HI]Q%%$&2$?'?$=
221
222 )r*f$\\,$ɁɁ/$r1$QGS/ίঃ!A(`/
223 7Ɂ 5TC m-Pi@?/غ9P_]24f=Ҫ%)Ҁ%r%8B~"4DD-`ap????ި ت!`Otr]OoOOOިGHr
224 a<MR?Tsв0Vs~"
225 Lf4Fwvn?@ `0cf{i͈x<mŧjZ?@ p8h6edovj0101?01c{()0!"A ٹ"!o _4@W@Lclչgu `u^`A9mu7CB ZpLQHYbEXj05/6?6e/!@`s01#詒:Wi?a^ tN?zs LQzPx2!r`ۤѽ.Xt#0ONk?Fw'vV?2UA =__$_6[6LQOTɯ01o ` =դTu_?TAsQ&a$W`Fgo:o ;A Woɀ oUd1 3uU& á"x01Q\wa &e{<S+d@@ $O$UUSLRBA0#"9Q s#As;"ԟ搷!5UFUSomTiGdLQ\]WɔXW'2C=HQh!UVUUbjhXĂ1uA/B?xv!$=P&a4LRAbQQ !*A4_FX>7nSM
226 e@v
227 2!fx 5bQST3uW&݊1K!bPtګYi"dv_IIb#" /BUU܄ /JJ4#/LRe]Sd%x././\Q11T AXoyBJcQQo!kQ?kHo5=I}?v6ad6aO(:dQD
228 =@@n{Su ȏ@^ߗZ*}s;l8fno.oS8of[onogğq :&'9/ASew1Ѭ^ۯ#5Gk^Џ޿e<a<N`rτ?ϺϷ{\ q|AA q.|A) aIa,o\1}՝U@O+ ߂US?5KKH;
229 Eg]YIEo5@sթ/ ]s K[m'9KD0uQ u`?< qMUD-Q(:a!3EWi~>8??S//(R,R-^+/N(g%'?^!Q2MT$@RAc?u????`0 iHޝH@=EOHo0o+U7\n5GVR4/5 .|T b/y//////A?x/?5S*JRX/j(R?d?v????ȑ(5?>(5&OC0(F0<F@0x6A4k:Ia6IJd rq,é~ZAިHڃɠUEڅ@ɩibu6@`up`AvVcA(2\ި.gާbcTwgj"qbwoo bpWũaDfoonRr16v/B.Dj:AW `ڱ׿Ƿb tN,`zsf r6`'ϥ^2rJ?@IVJKTZDo#0O贁Nk?Fw)=4qpߐZEߘ6}H/@G@P^0q"<hʃu:I? -_'O9OKO]O|O4s?}U@`[-Q'ј\r'8Q8SڛYY,ʇ!ș0(Y+ @@MsE0NA[br5p¹Ē9qEWp$^r~反tR q0-{sc(gy(:L^pjɏ)k-`mTߩ$+(ԍA4r[[ndtߔߦuq*WeUbcA^manastrazwio
230 ga "4r^U+ș 5AQQđ,^?WOWy $FS=O $ >@$qd A,>2/]'cOKƛ5 (N.A%=ǚQ{OT{_>/?_Q_c_u____LHXCC$ɿ\b%lbu`u{e4o y+.?%==png a4qe2o??@c!a6??r1C5ȿYk}}w!/&4L^p܏$M^=oOa%yi{џ.H[60F]$ZalhǿEo% cRoZ$|h5`0 ?@pv@AIZlcYOڷbKh ܏$BZxHv,>Ao*yK}BůK]T} q1CUgy<m0h>BϡZ#GK 2!qJ~xJ1Cʆ U@ a a?oI1rZ edv5ŒaѣCaBnDA-鬣CO3בLjő!(\Xo'2`RqFH6A[6ղ7Om=ǟٟk!3EWi{]ïկ\\#/X| Ŀֿ"uϿq%I[Dm1-0ߞd/d??¼2϶9P?;/NeIO[Lu11 >%Fyrw {cs{17a{uq4'Xihyahqx!޵61r?@T@1r?OdpUP>e!up`ux `[A!VSQ!V%ج}LbS5;qHT)"pqrTUgް@z3QObUogoRpafo1on11sbch1…xQ!P".2b2:uWP'C/,R tN,P!zsV r!sQ!u$$^2r~?@I4)2~N$(#0ONk?FwSF!p ~/,'E/&6愾! /# {qs%2<g"?c _4wsDG?[(UsV ьwu]suE5!Eu脋/6ĐV5 @@2^]v@@8
231 B`U? ~y![u `Eo?<usPFcsbn{NLe4!<Nrϟ虏AY/y"<BQXb5
232 FDOkϷ
233 -5XE-5Ϟ^ϮD'E#FLKnuxse@v
234 K]oUU !"U#$%&U'()*U+,-.U/012U3456U7<=>U?@ABCDt4%NT*"@|+.C@ TZ|C-cB_b[
235 A@|ml[QRH<(EDm[ R\<j9@bZ@?j[.PDj[.PU1( UO"D&aUAUNj )h"T}
236 +U- \ |ɉ&Q-
237 -H*=(XiwPE!Q//,/fGArial UncodeMSj (  R$fSymbol$67fWingds*7
238 fEArial"z@D/ R$fGSwimunj (  R$fGPMingLUj (  R$fGMS PGothiqcj (  R$fGDotum"j (  R$fGSylaeqnj (  R$fGEstrangelWo dsaj (  R$fGVrindqaj (  R$fGShrutqij (  R$fGM_anglj (  R$fGTunga"j (  R$fGSendyqaj (  R$fGRavi"j (  R$fGDhenu"j (  R$fGLath#j (  R$fGawutmij (  R$fGCordia Neqwj (  R$fGMS Farsiwj ( _ R$fGulim"j (  R$fETimes NwRoanz@D$̊C>]LBDC].BC]%B4C]5BC^9BTCK^=B܉C^CBdC^9BC_;BtC?_MBC_:BC_:B C`9BC9`9BCr`;BC`8B,C`9BCa8B<CVa:BăCaCBLCa>B\Cb8BԂCIbGBGuideTheDocPage-1"Gestur Fom aProcesViso 90Flow NrmaVi}so 0Co}nectrViso 01Viso 02Viso 03Viso 10Vi}so 1Viso 12Viso 13Viso 20Viso 21Vi}so 2Viso 23Viso 50Viso 51Viso 52Viso 53Viso 70Viso 80Flow MarkeFlow GrayCostDurationResour cRow_1visVerionProces.3Com-linkManufctre ProductNmb ePartNumbe*ProductDes_ripinuAsetNumbrSerialNumbLocatinBuildngRoomDepart5mnShapeC5lsShapeT ySubhapeTyHasTextSolSH"visLegndSh7ap(Dynamic onetrTextPoWsiinDautbseProces.12Proces.2Proces.6,Dynamic onetr.7,Dynamic onetr.9Proces.10.Dynamic onUetr1Proces.13.Dynamic onetr14EE3DbddE3,btdG3bdG3ifd%G3bdG3@dE3 kdG3 kdG3 keG3 k0eG3 kJeG3$ kceG3D k|eG3d keG3 keG3 keG3 keG3 keG3kfG3$k+fG3DkDfG3dk]fG3kvfG3kfG3kfG3kfG3kfG3$kf!G3DkgG34@0gE3b4gE3kBgG3k\gG3bvgE3kgG3kgG3kgG34jfg G3\jfg$G3$khG3.e;h-G3DkhhG3jfh!G3dkhG3khG3bhE3khG3kiG3k!iG3jf;iG3bZiG3briE3jfi&G3.ei)G3jfi G3kiG3,@jE3$@ jE3@jE3@jE3ljG3Dl5jG3$lPjG3mkj.G3mj.G3dljG3mj/G3lkG34m0k/G
239  !"#$%&'()*+,-./0123456789:;<=>?@ABCDUbU
240 U UUUt4NT*"@|+.C@ KqqNC-eBU7
241 A%t4 cB_r
242 A-<@"7AJ@mqOR@m$r6RH<(H<(JE\ms REԵms RUPT/tbt C{N
243 } w"4FX,h(;WP@@(&`ծjf@SBjT P x/Aj<TbU
244 FCo^_oD$jg?R$\+!
245 @)̏. '\h1j՚ҮjbP2 _kT,jZ/r*'"DC ksH%j`.jt6Oh+'0lS `ht Grundfos A/SGrundfos A/SMicrosoft Visio@hC<GlR-N  EMFdRlx@VISIODrawingLQ-. ??d(8Q(.8Q0//蚔`__蚔`__]ZW蚔`__><:]ZW蚔`__><:]ZW蚔`__><:]ZW蚔`__><:]ZW蚔`__><:]ZW蚔`__><:]ZW蚔`__><:]ZW蚔`__><:]ZW蚔`__><:FCB蚔`__蚔><:><:><:><:><:><:><:aBkP>><:><:><:><:><:><:><:蚔`__Ԥ蚔`__Ԥ蚔`__0//Ԥ蚔`__ >=<Ԥ蚔`__ >=<Ԥ蚔`__ >=<Ԥ蚔`__ >=<Ԥ蚔`__ >=<Ԥ蚔`__ >=<蹲{wt{wt{wtwXwb{wt{wt{wt蚔`__ >=<]ZW><:MKI{wt{wt{wtwp}wr{wt{wt{wt><:.-,~{蚔`__ >=<???pppPOO]ZW~{URP蚔`__ >=<>=< `__{wt`__{wt??>]ZX><:]ZW蚔`__ >=<>=< `__{wtٯ`__{wt??>]ZX><:]ZW蚔`__ >=<>=< `__{wtܻ{L{Lўzî`__{wt??>]ZX><:]ZW蚔`__ F@<ѿF@<>/&udY}wr~zӢQ"wFwFwFLj]ٯ~fW{wt}qWI?c[V0ZI<]ZW蚔`__ oS?eϙuϙuϙuϙueoS?ǒ_;ϙuϙuϙuϙuϙuqMvgxJ{Lϙu۳ٯc ̹ݷqMwkyUϙuϙuϙuϙuϙuϙuϙuϙuhDeQ]ϙuϙuϙuϙuϙuϙuϙuϙuY5͕o͕ohD]ZW蚔`__ >=<>=< `__{wtݷˑiwFwF]Mˑi`__{wt??>]ZX><:{wt{wt{wt{wt{wt{wt]ZW蚔`__ >=<>=< `__{wt̹զRwF`__{wt??>]ZX><:WTR'%$=;9蚔`__ >=<>=< `__{wt`__{wt??>]ZX#"!}xv蚔`__ >=</.- `__tpm]ZW`__tpm]ZW??>FDBMKI{wtĹ{wt643xsq蚔`__ >=<OOO??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>GGGjfd310蹲{wt('&蚔`__ >=<ea_.-,><:><:><:><:><:><:><:{wt蚔`__ >=<ٹ蚔`__ >=<蚔`__ >=<蚔`__ >=<蚔`__ >=<蚔`__ /.-蚔`__xww??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>GGG蚔`__蚔`__tpm`__poo??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>Grundfos A/S Page-1nProcess Comm-linkosDynamic connector Databaseonn PagesMasters(`ht_PID_LINKBASE_VPID_ALTERNATENAMESA
246 FMicrosoft Visio DrawingVisitj_Ғ@Z*u>ujqߔZk
247 ۶mk}ַ鷓u^wi!{Ljٗ~t:.I6?õejnO[j{PyWU| ڷU>mMRj&ҦC9kMSod5U-КQ~Kځ'T.pJ+K(dc^ԻTZ [S\1NኒV4_MVZٍao^:aKiޖ]]_߾27z}禪%m5Lᒪ-HW3ÍYtkGRgFR[GRrnMU>fdeKЎq6١nP$Yٖ_~>PEsmۚN^q;ڷ]ߒ@,n~jQݭ3کixCշN۽N$B}D"x z5"(k!Z?A
248 h5č"( kFv^C|;BE5u"(%F6X!!ЎkG6L!ADZ
249 h'5W#DP@;U!A4J
250 hcE#DP@;S!Ab
251 h5e"(] AbƉ5E6^!.Ar\
252 hE"(Mk!U"x qa
253 h׈5ħ#DP@&Az8?B5_E}x
254 h75"DP@E!>!m"x q^
255 hE~$AN@
256 h3Ek!ڽ"x "(k#DP@kkE6G!ΊAAxw
257 hsE]"(="!c"x Оk3"DP@/oAi8=BgDE^C5Bk7G;xS
258 hKE"DP@[&oA%(!ڟDw"DP@{U!NA/"x ^kS#DP@[#Am^C!["x qR
259 ho5ĉ"('A>k#DP@X!^!V!ڧ"x Ъ:C"(%"x ЪEy"(Ո5s#DP@C!!Z^C<3B."x _#DP@*zqL^C<-֋ch5Q^@+5đ^@-OZ8"֋chDX/  zqLm^C<!֋ch5b8&v^C<6֋chDX/ %c8&6X!1!"x qPЎkc8&6L!1E!^@;Y!~5֋ch5ăb8&v^C< ֋chcEbX/ )9"x OkzqLXzqLbX8zqLm^C1EbX/ Mkb8&6Y!1DbX/ ]#b8&6M!v"x qX/ }O!vEbX/ $c8&v^CLc8&v^C^@.b8&v޺6So#(-kP@Wo6[o7
260 h"xkP@#ڃ"x#([As[? A @o="x(-[A9᠀DoVEP@[.^s
261 ^[]Amz}
262 hD{ZoO
263 hoR@M~(]o'
264 hEfzo6Amz6qAmz>[Z޳4/@"xk:=$P@,@NoŁ^"xkк=MP@)]A-[{àV[נc"x<P@/UEUu(*K"xP@;Bo
265 h"x$P@;Fo'
266 hljs@m: Іs@$u([hu#([h"x<RP@;[o
267
268 h_["xaP@Ho
269 h "xkP@Lo
270 h[簃u=(M[ڕ"xzP@*i"xP@޺6n[πڍ"xP@޺ n[Jm"xz.P@.9@Nu(["xHP@Wo]
271 hEֵ(w9"x\P@{Po]7
272 hsEֵ͠޺[׈"x:vP@/"xk(-[3 @mޚ
273 hωXoͧ%"xk(=/|r5Vy)ޚ
274 h+EP@[%fj5[3@M5 .f5z5O
275 [3@mޚ
276 hD0P@,曁5 >[s@T[@͋y{No"x X/ uؒ y{IT_UvȚm!li1DZe wNlJwܣ ͮoR-owvwtZry)C{_ڞTJ[q_ZWjp]\wHH|g~n쩣G%]!钂IdH&C%!钂dH;.).KK
277 ~!钂VdH'*.)OK
278 !钂gOdH.)xJK
279 )!钂gdH.)xUDK
280 ^!钂WdH0.)xNK
281 I C%v!钂wdȐtIFdH-2$]R.)x IIK
282 i%C%!钂wɐtIdH2$]R;AK
283 vPȐtI..)؉"C%edH`G I:!钂Q2$]R{KK
284 vɐtI.8.)ة'C%g!钂3ȐtIYdH2$]Rpv .)8 I%DK
285 d"C%g[!钂3ȐtIYkdH:2$]Rp.)8C IEIK
286 $C%g!钂3fɐtIYdHc2$]Rpv4.)8 IeNK
287 ΄'C%g!钂+
288 ȐtIUdH 2$]Rp.)… I\CK
289 "C%W3!钂+ȐtIUadH52$]Rpu.) I\HK
290 $C%W{!钂+RɐtIUdH^2$]Rp1.)B I\MK
291 4'C%WÓ!钂+ɐtIT2$]R0 ILg C%$ȐtI 2$]R0 IL !C%MȐtI2$]R0 IL!C%vȐtI 2$]R0 ILS"C%ȐtIT*2$]R09 IL"C%ȐtI42$]R0ɍ IL#C%ȐtI>2$]R0Y IL?$C%ɐtII2$]R0 Im']jOk}ҥv<.fIK{>ROԾ.3Kg>RyOԞS.=K>R{OԞ.K>R{=O^s.ׅK>R{}O']jS.RI=K=)}ҥ>R{oOtO#']j.IK={}ҥO>I>RC']j\Km/Nt.=M}ҥOI>Rc']j.sIK}ҥv^>R;wFtߣOA']jI.sIfK8}ҥvޞ>R;PtO']j.s]IKa}ҥv^>R;ZtOa']j.kI
292 K
293 }ҥv݇>R6Et]?OԮ']j!.kI\K3}ҥv]>RvOt]_OԮ']ji.kIIK\}ҥvݰ>RYt]OԮ']jױ.kI<}ҥ6@tU']jI|
294 }ҥ6CCt']jHIڼ}ҥ6Et͝']jqI}ҥ6cHtA']jI<)}ҥ6Jt']jI|3}ҥ6Mt͉']jIڼ=}ҥ6PtIK2$]NIMxfm۶9Vhj<6ua-JK{UIZ$'n;$Iݲc}+7Ю9MK]{u뒤'?õe T<݁3w=|K%s@UWHJ5YcFa;%V(q44LaR}iR4m5k 3PJ3;l{WY/IcdNF`&M%gٻɢlc8 y1ۜʶ&mɇO:פ=th%=#^Hy6t~;}!7]I}Ӻirtrtfl֓rrrKeߴ_w:RIOJJJtVKp6]X#}RVNW|Qe[[bsҳ )w~Ɂb]rx6TI*HM-_ -V&ÊWX˒77ݝXLgaMnhw|q; .wGvTwpq;~DW..w=obKGʹʙXr{2ͪn训 s*'+C1_hץR>)֖p˃ܓqͬIXC:&?ҽ׻Ѯ1?Mχi |;#? Or#]4%Lav[Veqnq (=MtIl{4ͦܜۮ1ݟnt{O[]m<&owMc{⎣0ss?/,<ܙuf_~~Fގ9=v=7_v ޏ'y~{)r
295 \\U\\7nk~k븞빮pzu}>qy|6zۻ|㸁z>㼆|W_`%y\R/q?8Z<_xGxqx\~?q;ݬ<n{]>5]Zu]u]u}뺂2O\?s]_㺮溾uMZ[\ \[۸SX;3NO˻yWߘw_g~Kr/WYOb̚z[?_['w*=JwzW⯭[+JGp_XI _lnnn⺾uu}뺖&o\׹q]ue
296 \e\ץ\%\Xϊ}&f\p]?庖}go̪?usNѬ?g{n~Q/z_e$p]r]s]ẞuuuu=z
297 u$uuu4u4u4u4u4uuT)\ד#ùø'p]p]s]uW?b__[}Ϣ/=~E7߯X.jE'?*j[E+>k1k3s}FL-?r7F{3/~?3zf#
298 =o/\re =߰ӹP^<ǖw'r ?q.u: 竁z}g*~w JO~nǻ{ r8=UN^v\inTg]PtYZgp5rwc\of)7JwriijWSr`AӞ8ih:,oDd: L0
299 
300 # Abn5˟`GonW}ngn5˟`GPNG
301 
302 IHDR&qsRGBIDATx^ٓfqw6Hj㉰_8V4H"-oUOU]UDt5 Hd"?_ҿ/wyK%oo_u0y.SPPPPPG?w̿+_N9"̗CCCC@MƳoogK{$c4j ?O_"M _'2SSԼ9/7[[gٯ@ׇ/H7Sw9¿/ܬ_SwC/u(p(p(p(Q;N%i1oۿs\2o_u*FCCCC?RwI;?Jvs(p(p(p(p(l
303 7Rtzӿz@Ry6O)ɰ[:%wSW7g{MY*ĕo&qY+L?[K_R?L/w Ao-+<CQzWB%^]z(+X;D
304 gζ^֋*S؞P)LKlߝӡGM&}
305 nqoopc|qLr7#لlZ&{KKĂqUxOFd<=&v6N5Zfr!DQ?C24ZVs@*SOh5=7Sb@jSE=r""_n ֽ]5LC>LӲG,o@0ccvKƛm2v%oT&\~G}jDz=PY7z\:T~ɛ ]bL|.n&}9ut:n+$4A0MP{ݫ@1q3AtPa
306 P^6I(l?#&M)Lԗ
307 $%w Q4o9ά=x3
308 -H}zG^<CS~L<w[W Z:3td
309 KaTN_}Uk_UP8!׮|CiT
310 pH0 ~ JVb Ǒ'T%~aRϿ˿w[V+'BzGJEC@^oz?0VLC}-爜'-2ߊ`:75ˏCcÖ`i Av|Xjƺ| - O~}"5]
311 |NTI <zONE^Œ"KJRV2mLm'M'KĂvJ n")]\ML{gwhV ݩIPs(8"5z`>ۤb7I֧x I<113 V唟 mcɶ}{W~rhv'I~BVdGaI+iزJT2n _-E,Sj?OeW4B_9%<mpApˉ+<aOC9GS(K_=LjqJ2a()J8<*2:~Uėgl2BQ~V
312 /Dξbw'SGLUL<P4T8~9!i(?C ۋkAI@"N&Kz؊Ej.P:J\ҫ Rt?nSb]h%{{'xz-cmTd$QN t+oKlOaU-U TL~2u'#!+FZY[D`+Ajr.Va҅H `*`fg'QlVf88B|R}s<־l:#AcQɃ4jGr']KU7gܶq88}(P6-]a"@Sb}%4M^#.mCD@72G@)ucțC_bhit /!E0y1OEȠ=\|A#r^F0.ˎ/0>Ďw*qۅey3=S[\=ֿosd0gtJuz4dw1+QwTDVZn"\ h`SRǶzR7
313 IZJ!Ot7FA4:m{(xAZ>Z
314 4R8bvܝCgLcbsS3+<2v{,ZymӓأyUImʞM`{lC<X:-i?cW?@qdjB*,~q<ӗk:@]>;Uys(oX;"ʼn|>F2,gkg*d*?;@'3]V288 H L~eh! @38Z!e!:RuH5T&1RɎD$*cJ+:t$+@_DOtp0JJt%V9>{(8"ey=N/F}HLd1ʉ~ƶW H+N*laj 2qZ߾ QqH쬔i_Z\d@1m4k!Co1?4C܎.UNRDpHQv#NU>ɓTxo
315 ޤ:_xUMX jl|_Ř2 ĵ'mv渹'0nhhUli0N,@I.bVV"]z]CEU2ǁPލ()hsS&2]%ڀ_/z9UtҪݩiOOT$~bQfR^J`'%^N`we>Y yX'b" x$Jl翿^QJOVz:5Z|zC+J{ !XZ)8I:_9_؀~~! ۥU`^q ʼ#[{]We՗U%'xBb ~NIL̾+h8
316 jOheκRJ7wR9s1I ofQ8ܯaI*ը~3`9Pi6M[E~:8
317 
318 ܥ3y"-D3c
319 iW~M@_PPU)@קo߼ԣTrZe2lUNNG8̀TeVR5[DT?7>:4ϺO&αͥ3PP=)W<CY!
320 l^&\uzee7)nW~
321 
322 |:v\!5]Sz5kpt0?|1;r b|:r(Rwm[ߵf#ۢ}9]~K
323 o@BoiPPe)&*]:3KO e[?ȡө׿ /f=B+|ݡgGy\]==?!,6ln#I/|թjTvﳠɯ^~r`r̥Xs|b݋xRym8_[_gGw6([ߗ#";z) !ze} CC'$0C}Ξ@j#TxvSi9 '5TMBu|~7ST_>!-'.;ϹZvl>vϊ+L:yy}<;N>}0]/ӷ lw+Wo y@88( kWZH~#w_ޝ x|m\y(p(zaX^,W˕|WZP5LH ӴK?]@.guW]vZuF6v[Sq*S5kkNA+!Ctyo뢳;<?>A
324 g73T
325 ߝ_7WWS!b8rjJL9QL$vSo].Ů {KqqpOomjUook„+e.’̸ӰRZ[/] Կw{/vGoM1"2 ~CC5 nw+:Ct)M%EIޅo.pB>nz/]ZnH'vYom޹G+WfvObUt\LZY*dco$fVSa;KpU0=aI2̝rzMWŏ 3M__TW?qL?<P%r~`ѯ]KuGm7;ps @}Xݠ$fx~(p(p( R ˖d HIf0Ĝn0p?/~ H #)eP@(W =)J$cF?t-Bp_T\zVΉh@
326 }{5]q ζҡWN",%r=% Hy5mU&8; x4XNomov,;c&(IĀQʼkzӰFh
327 YfÄnIh'S{-3UL?bt!:_}( R Q5[l:rR2sǎy0'HXIjP1yS61uzƚGޔ3/b \[~Ʈ:x$v^  fRDKe¶ۤ#OOðp̑7vP:8A*ƚ+]YwmxRnKIӝlA
328 ?+vpFCPkzeEOZT顡G7n^]Fۆd?w@ e+3"|`=ϡ'E$Ax~b>UD`řxq?_{!HՊ꧱Fxs|^OCCCO$իUޤ40X5xJ=a[egU}B0$oJpM~Y9?
329 
330 
331 |8^L˹cOogr獽Cjfa{1W
332 fqat888x=
333 C]F'=1: r5C&L> Jj"Ep MPPP)bZNxoOBgG=6zfS"r9+8d
334 :L#57ěc{(p(P<E?㳝'ĠL̰QPhnI0M6G=GY@qtPP)b.?1X-Kq6XoOhq:"-Z%DS=ϡF3(;ɀfK|y jW,Ef{gSߏ,J]yK"cq`
335 
336 |aX{o`-L mp'otL3uDNwv'F`_
337 OgV{Έj|+y<wR VpUp&E1(0@|!ÄOy$MS-TJ| w^eCCCEI)ZWJḺ2I:_qkbqiUI#
338 'm<FC 1 SU⼕LC=l4 @صPyyST1`n ]g"+UDLP-KM,!r9##&Lrǡ]w o &=::
339 
340 <H8=q: '_ <qT:.
341 `"wv=ZiK>' 9}YzDZBAfqT9ZJC#*I)KoXriX#݈Њ9L8Pjn膈^ tCCCBo ~eaÄyW~6فP~bԔ0%RbT˼.-Exzi2*Qb͌N8{`CloNp@~’I ^=CUX@"dl*\&q'P't-i'ѧ5A!Ц!)3b%5ΰdMCCCצk18GB F (ǁ1nDBE1`,lUg
342 ր[Ǡ]'Ñ 2s2~ğxkh3_@60U2DZ!n֝_Ud9)+`"h[},*hu0Li9!VswbrARN d9ϡGx HYbd7˱=q8ltT06B)*&M\bQԽM +aIz͹AN@N䵌jL&h*L25QŮ*'G߁IeA =%""ݝosJ
343 
344 |/r/o6B0h#<EwwY8#NMh/PY`lnAuX=<OZ
345 s[5QOaRQsY=3 V0( sW9 kb Uw*cJU
346 87´7OТ+\khvW8O>E
347 l}9]Ǐ3T@좃s m!H *= tv\ʴvc+_ݩIʈ͘a{M~g3;4B`hg8QouK]| B]}ɋZbesɈ vh
348 ^$<88x
349 ^t ={Zy&bD3%&_ֳ<e9Jď}݈E!^MoD&g )/ :8f*u6BI_M0c,~ *[2NP&Q$o*t=aT /-E^ ls{ҸָG޼ _^]$ n%{BȞdl\< !T$١U(ʟɟ "$MI,evI'M@E"F{l<ŀ| 1RyD;88@wkV k#M8#n*r#pl U"⡏1^t]:ZgD,>3=U{7F+zu<"<uu@
350 
351 |_W%ƚ1w$S7bl%e$eSmZ(%8ROC9Mr"Aq 1^Ҝya:p
352 3]CB?s$ES;}`kv):ٔėhCa_QrI2$tPPIZN)]ˢIx?RNPjbéՇM%ӟHW Y9=3C/?!yc_yMW-ؚZL< LQshI2ĜF
353 >9>@¡WEWrj?11wVðu<d+wM9=>QahEƲ)
354 R[N`ܝs%?2t'9TnHdT|NCC7DY8۱O,x>12iv|ҘnX\oPpQ_JWW_eGTl
355 /֡^u z˶;'iBJ u1a
356 Щ]Tר)QhKE{[:=/¹yjdjSBT.t6n][xtkD
357 
358 |t
359 <,Ղ7җ '%3{ G)7[0UXuw >Y
360 N<W$ Oh:tb4zҊ]{EYLٳwoD,y\s.p` B .2Bwmˏ>^W IB- H\XjwH:*I-%\ On\"TBeV.;_Uk'B^z}8DT
361 Z@!>M&c
362 =V?cx}9EUȉ7 B{q|l`Cq21E!3k!ry  bZ7楹;wހV/0[[^%bS2?`')uY+VkHO㿂.QNުApj]?nu $S$Ca YYaoC#jO^ѐ aqѺ'J4~.98)p{pŧޗC疽әlb1S68aq`dTOZ'-0G #^5<J@/N~A̞P吴S7C/;<**L 3R!.L 0&tEptj^VX6m)RdKF.T\&hxi`JʟyCCώ7DN 峏/:A1~aR4iQYSWހY1, *ϢR͠1>[y{DVLo TcWeq;$&ҍ2㰤]@}8ZwC?G~֤M(Xrk%I^'._k]NƼ *c7"༭ѰC(Uk|?-s$]R2{y>A
363 9xA [l~2ՌՋJDVߕ1#3zcphDz8HNgx9"
364 ~O9WT?#rfbg[雽 o6;dmnQ %,e"I~J_KIARoBU  ѭxBs_88(p[q-Ί`X] ׾u#  cKYkKJUIY4L kӠ8_,'jabzA^2mzz jh[o]yݞ@ Dus*iDC!~rh 䍃\eu%M:n̄Xzߜ 'PP cwϊr0e`ǷnD,BW ;e9V Ǐ+:S8>'y- q1nq*3>;
365 3ו '3v(\5jOٝjMZg wlKfCf,tpԮii+=Z_8ڤ`,f- rL߸Sir{sVI
366 
367 |^/rqEB/zgY`HĬm] Bk(O,uVQ"\qpC30ɛkDbi9Rӓ>SPP V@yH} JpOϖGS;',K`8K
368 VRџdO)$$oR_<w(ɉa/R^ԭE#͔w^]0 UX$sfv Md8:ϡ
369 |rJN8BR ׈qDe^v&en[J/=YT98(۲ ΄5wif-^)NGtCe6/<~'Jj(&!Ӈ_ ^̀q>5ǶlU)vEܙ<Ep|rQ?C!p^Pd݉* /EPP-)ɉWK8~l Pzy^,{"cjZÌ> IjDŽdmI/4gt73vCCCD4K*ͫ_zUy%^
370 ("4u-9$]E}A6 70| oLw[⚌k/zwpJ!h<aGX
371 [@Ȓ@]8]"ic.vYә \XBK4bb'^p1[w~S5 Ɗ rX[3S<+Z!die|G`V#Է
372 nPoq'PPg9ft~>3#'U~cg<cyr FzU,! Z PU`*鯆E>tLܟja<U/~L5,VB`.pT8CN%2AV PmX{*=*jβT]5QIՄ@vUqBG&W) `aV\ה!ᠭAPPೡrDL^"{K,6~==hL1xn[㕎w<~L0Kb2BN-2pUhof后9@ҩG3P*طeOOD8O/)pm(0>|F@,dN&Y'`5#9EK988xAxhiakˉ-^܅T1Nc1.ddF>+1+VlK2-c@gI+X„s2ɉث&fԈk<1BrTA]^Lu.呡ܙp۵j 50,[GF32^t?yu(p(p(p /{*δ kfHl}+7flCű:eAZ@au{?IP
373 qtCVE"yDJuoKQ,A8ϷU4D5 .>_Uw(CZmq)@Ԝ}\~zwաEwqD1*=g6M7jSxbR&~!C$08]BF%OfV63`e +jg¼W I֧>U\E:d0V J^-*`gyb[Q4_BJdKR0k P*IILҍKM^=jC:_nޗZf"~d]i9 oAmkd q_i *&T? IxPJ8Uz vefYu3Lxy5%;$qI PGa>АsUdֵiߐ6fCy+[䃧W!ŶJS*оs(p(p($
374 r]-Ѹ) dKƸn|ˏmgDъJs fk,2<b ˬdtNp a[s~UjGXjcs]U~Z.\jLtP:oo^,| `2ias3+V S;KŦVOatRj&ZK+4)]n{f'PPP& y'UCʇ("2,u\(p_|r>JHޤ%o8PM>oO#rITǺ'SaF<fg;
375 ANi]Mv;G<7)pr91&<g:D
376 Uky>;Y^βPPPP!
377 3;sop3=>
378  BK8"|SPPP ڎ畃lK<,cz_",0-=@Ke*;׻ga>9N%jgl!Z"kC)Zq(s,<sᓼqTq?:DP'q(p(p(%QrK\21,Dlt [wJLj;ҙ|8&4rRBtqEl3MVXU<5-p^gHMܠ,sxhj$q
379 >Rl sW"ߗ4N_ޝ#a/+qVqآ0_%0b)(GYJP9!T
380 6P<a %LVGB#܊z{ȳTfI2yӚrVw QT땬h;
381 +x
382 Z
383 p*n\B=T#7iCCCϔ7^RYqRX'\Lٟug<]^—w$i!paD_5@ɒEܩbWVfwapma]8~aQ?ϒs5(*SjK4\,Nĝ#HϢ:H2GıIN29C\.т0N
384 9 "&fk3(I!/-1 m{$ XL ,dw0k6d حac0whtu$>'z29]Z:{]e8ۄ\n{+?I<=֨YZwQt
385 vkK7
386 
387 |1!rpv)8t?Gai-wOcΔ+_+pHt-nN]pö́A„Tuӱ2M~=h?4<dg;FS~
388 4*53=v$wSgZ3NG6
389 9geJ!i[({?3saZ7%<MڢYcInKbk_]qʘj!z(T!H(gNkJȕZ"kn7< X!T7؈5D%rB9qmU]tNa(&M񷯃beم⿴F9<׎:&nn_ĪvK^\7(Cut ӓL-RDŽ
390 Wn(ЋKzfԙz?Pd&l}3PP {Ǡu3_$ꗛax7KUk$(ɵ#8y'Aiuö‡wxML? `\s
391 
392 |h9cر~'>vfRy1~GP43#ʜd
393 Kx1;CV GK$hd_ ϛ܋4q
394 
395 |:9>L.%_$QfI3._]c%iPɤYPAщyLħlv.EƋ'(`E _$ߏ(t=𥲘5f0N#D#nѫ!Í!8Ѵt8A<޸:փ~2ȡgA GlDWǦgէ"9'u3:,c=Q)˓"1  | ;$M\Z/;9}xEv
396 |I(wH~7êl =|lbXvLW1޳p s"pIDsP">@ը}j9v* x%AǟگA98,(`ف1o\wf0gէ"Qwp<md*ŎpF>pIZ4 ;/u3joTj,)R?wvLE _DQ:Oļ7LoqxpL9bf̀
397 9Gk>k̞''$ɪE{DeN<~ U_/e[XX9yĝI==l
398 8+cnGL0_"cҮGVgv۩vߑl/2Y~
399 ˯aA^]; SK7%2]Iꚁ%HpQ܌{)A {cP=P
400 a0k. UN1*yéa$D ar-p͐ۉhƢ?\B60^J q=x'Pˠնl;9AŶpxP ˞9oJ9171xb HHjY\&XV{c<+;st~9 J817BuTխkS+.?U/jTݞKT>*]Jm`,Q0/IIz~d7[[e5+[n$ˬ EVV~&z &rB GhK
401 ;L YH]Nt`i2PPk@<ªT`,p(KW!+ƶ 1,o(VEoK
402 ( fR4㊹  +`좎TkXmuPIΥ]kᓤHJ`q+F8G͛tc'
403 ZL, ̀hz0$c-B1=HRNUk+6Zy<
404 U&;aSc%XU=Ģbى 21kaI~Tey ʕjc͓UqOIIxt?!iQ_"vVBG H
405 U7=aτM>ZwDԔIkrt_gNM(&z{泤TY2tm%QP*z݃49=Tzu#Is&}>Lk98(pC[cG|p5v7z"Ԉrzk@~^W1蚋 _\k4Wy)?vrʙ&QԺf%O`Rg(-I%lG.T"#f%ўW^ uƚC'8(P]m&*m>ktok?8)pCzYHo %XB0U3P -QZ>Eu1F TtL0I$D\S|*A"R>"@*0V<74APΉ;jm-diBd`Ź TSP |w +kBjJ&VSHաHZ׾XF]bz]?SW(m݊\!k+cWWɱ*ϑ^~R]K)V~oՅ+ ,4ɑL*IcWo `@pT,s׾*:[჌q+A;)zEnvZI3w$=M(F
406 ;er+X&I
407 
408 |1-rgx^k]ػ`c(J9صiE?r2cOwUW+Ш!ecp豻p ]S`5A|նfsRb*3,Eϸ5Qb:lgO}*gt&Z)ޜȢ .s{u-Ԇ85.OljCCϗE;5\IVףz^# ~TC<[FE朖FU3Q,]iE$3~RcXO
409 _C88z'UqU7'oޖ2x
410 |E݇gս:EKIJ{KL'Ojb"Zf&ac.r+3=ʜ'4̟&/{Mz6"?\Tׅf )|(/r7ӏK:b/}|8};qLM7lz9T46<4_bAUWGJU[32}rk#3*Vg9U`
411 |cXS%f/Eua/E q~͵w;1D$1.BJ씹"p"mk~6ߢ'~3|ğOצ(7h
412 "y6,yG&69JPnjNܰO퉕LwZ33&bU%ӚW}Č+Nt9Y<M<[kG(6sn3jZ>UTWdª<Q|>w|c
413 cn/K.}<وLJ-w<Qx#&q)ĞSk1pxA+S1yFyu+H; hϨ2{$8xݔzSP -Ǣ-;S?OZ-XY+eafK$%ړ( iGl{[h]}Q ҴBo&"YtK]Oژxm?}3V*r6Eo\9[ؼIsIJろ-xg[|>MM*7{M:bY8srNs[,{_v
414 ֋L]p4knT~)a*h9g(sHw}mr(XQbR}0\pw#s:.JV?KXrS]xL;T:BKPL'1w Bb"=T7R27 6lH#`m;LVFmڳ `*a}چv˪惆 Ey
415 oP4'LUpgoi?ZIo@mF] Z#i`p c#9V]GmOVUܮ]n@;DpJw̍`mM ۗ'P@y TJS9gry=7ۗc.e ]k=/||Y:\k5#Q)Zk*]Oůw=qFLe 센W)46TkL,zt?2 q,#)<9| "y*'^@b:> prUF`Ӻn.~r(׋*5<5P 5Dܬ[$6FpJu/Tz#)…W4רQz>:,aCcrh/ؒMzڪ5]lJX9+;W/}9QU#lyʏsg(][)0/[=iN|6etAaX˷hQ8E0|Ffꦠ8[Vc+5+bB&kC#;O3
416 e
417 y0i0%e}[pFI#tI_Z6QP8
418 ظ Q 779mpm Pp]hwUm:T)|_]?<etmJ*E52|w~
419 |R!rl?r_fifeҫf|`z+rhTʗ]̛dl^]o-An3N}IM*cxٵdP;2g@Wץ iZbg'$NN'Oע[JՒV&Ї8@ՔQ ^]eF}{d1z&חxzo+a˰6[%xUH2BbȖ<t\W+V+-/h:xLqdSSJnݨLII2&E5þ޿/oqf]N)Jud}JW~[SW*!G -"c.# t.DɏYB
420 +?5kv8&$e@`+Ov&c ǕvjhK LD3j뭽:b>dhhNfzWiPH6}@X`*7>BILYQ~5
421 d"EEqB6
422 (CƗV,gqkCB"rJ}I;߮W*̄=Nd_ez ;-s@4Mh_U+1;@*Nnu\#ƙR#SkruEk_&uTB_Ƕ=+1t/џI [(Sb˱iEvM!ux4UpgAp%Y3WUdJuAz|U՞%`Cl9r5Ջ|)Ļ0i:COFóLu1v go"E1;m$/xGU|u[/Ef82~u>X@򏍢YC ӡibe6Ω&)*7göR/g6;&몜\17Za%FZq7x j\] Dtߺd$ZϛZJpA"!!`+:G5lo&ftԑ~FFŶheSuM;Ȅ9#u~t
423 9}ƾۘ&7hlڤ8&i值a7v7ITલ\ MüD_颤Ln*ϱy͊5=f
424 oɉ3ހStBu"7D[ڈ/=lw#tԦfpLrGi˜3&XOL=
425 fe6@*@0l~4
426 MqQP>*i#7?a>rxC|xiXl$WJ%MkәCqrXmMI}PRyrXq}Qܩ, ܱ=2:e23j1|b6 ˏC[]ɇw3 pvOu38zԧv*lpa7,\lu^,|*fu|*JSy0m1D_KnαGi湍>ǭ $שr,Z#/Po|>r"e m53my|ظ^=?ӸѼaPE^g}*X, f^f
427 Shh2Z>Wߝاm!?zwa؝{E/ \ D^`ơJs(,i[cƭ~~O8?J"#8c+AsP>bmo֔ӑQ;ɭrDxqä́g$_4~KT_|} ~TbK
428
429 l_bd]ې詽8oh9Iҥqbx'o|*c}\p>VyNޘHA߸C6rmm̵2O4iymED6 q*bd/E)u-:M81S]nVTX&4b ?RelRt l oF-_3os[J䈱\_Ք'˪jԞ$8p&=-0UHdM :1ڂq[ u)|Se[c%sY"|&I~h?D|U$ .<#ǽ~c6 7ۂ?˧RྖlQZ>K N4g325Sr-i'i x#|U΄M&&U#5x,E6H/xfpdaAG~Ϯ[ƚMJm-2f~gw竭xðF3a}9}Lj??|g 7b--7Z>Wg)H1 "~kG?bjXي_a>~p13Y%6ȬR
430 -.ǵƋ+E\ ??^zq_Ah'k:fNO\?։< /0FD3\C+ W=8Ʋ T8} GFEB| k7cQ dY(p0bտ1%?bs7iDi6'xKW4b3W#6KU0ԎHϹPK2+wCPpnY؂5+`E T{t&}@!^*덏d6kWJ^i5 uoGv~Іm%oILJ %\@^Or(45G0Lʬl$o!F_̈́F}l~+2Ww$f*Ao{@^77Ffo.p
431 nBT=^=wx-.L3":*|kf?ͽu-䯳UMlQ=+ ~FHky}9~BPK8yU{V>Q&
432 SbL;ž}l2S>~+%<C7uTķ7& *D]&@V̦\ ]`{~.Nx^;:^x|zfE]st
433 \_1ni eP4q 4K=wqNbh{}[/>sϾFdH*?8^ t0k:`&Fg"'"6:hh^]n0=[!5 ӓ0I#hyW>k^-q,8f&Ɛ_
434 b-F0C@Y]}9WZMVZOZk%Nc[7߼i`e֭*&t)- K,ݫmRaԐv,Lp ,yxsh2|53^CnVUP]oGz(6ScjFLjH=b z]Һ]+mr]@ش + R }hh.Ѩ obZzۇkRa:I[@(D5Jiv0rTvˑJL-{l4Q# &!ㅀ@0T%& \7o9N\괵p!o**YA!r,fߋոodڨڙk|MDDqƆIŒv4]Dپ|9 0tĭ|GV^}]:7>z?0Ms{i>QL,/jk[ hﴽ,3KXpg`7
435 LIb1УkfK`%'1]_Z#pB8Y<J2dIlд,&X{˩nR>.!G:Fm5ɹi[#RbZM6-R`Hw$q]t^ñ#75ynib&L"<]~iMa6+Yyc69i9}'rLƵQI h1;Tҽ\BgMM8tU֞Wbj! Vkkj >󐰆Ch]Dإ幮]i (^lY(&W}=ip8ŰBVLp4V}jZI| 1v\&U4ruK{7b\A5jIum;\[YI1ЦAn͍sA@&,7%b,7PbkkK+Z,lcaӒB ?=n3th`ܻ!P-&BHE|~uB,@ʴD Ry辜WΣ:bI41#l]np"6Vܷ7QO>&YuxۗC'oVҷZO
436 UNB{>YTW4)]5OnXز W?PE螝*%J7յV~+qj3 !ѵ2X' v2Ęj?*ո*窾|SBg{FpI]IMh/sltcw63+PMoK7iKF+Wi<=wlӅ2ۑM_{1m&|N8oҫfW|:VNscBH[Q=nk9`8ڦEzw؜ye"=cfV:qqd\JE&h/aa@Ȫ̠[¿Z)>L,iZc`;NvbϠq f"blTq1>{^PUlc|9ePLTZ"\Y
437 B\5BX ]mn&EMfo]֢Bu3ͩn=B6ʧО\$SGlܫ;)|*:8+'fnjhAzԸY|]L:RtE[_~=y2ieN䏘'Pij^mS㞾;6Ps<-.w|YB!ykCtL++`V3U Cd'`u\ ԊsKܞlW43>zOQԀ|-F8h)1fQhMԫ{[qm4
438 e 4dre"k-9sYgH(6ڮzqo~rd*=#"l̉`51*65TwB"u^vۢ*$o#Z-(
439 m;Qkkb7U0A}LK8𸢳gTqnL8r{A련>hrOE[ܗcak h_}%1ܰ/gy
440 I}o}D|̪z9j#eyG3x?V5hDܺ PdRoq_ΓNM>ynZNqplwȷLޣH:K?:Vy[[?>
441 퐕ay~UOl;G|Usm:+n-VAV,!$hc}]Sߙ|֮^># 0V8X0f f[e 7vKn ~f!x_f[cPm(a- ?qLb$3s6Z_}sM]74X9dxxnN1cmۯn5gOOFp3C~uyք<v)p߰<T+_xO >wT%;W~܍P/Gg3C{VS
442 x|R纒J薛\>FivG&WB" ↹ {m?iGj\rTd*{PdfXd3~)$o@¾5|Uk/7
443 >Whcv@kܗ'wINAh'DN> ݣ> ,'m%읏{=+ޣBħSEygA@bad}$?#
444 }9ϣN=G<XCoG~]8ۦ}ҥ(;a{V^__(2'iZζ4R^k=g_7|辜^9y?:(neD(w,{j2JbG~8axUשnywکixh*TkBaG녵$0*sl=ճ_Fb:
445 8/
446 ,(M28e7h#ɥo_C
447 x,|r2ʽzc㳂YZ1pX{6†a¼Ȇ8^"Vzb; ]>ׯ&~ápU_dsEu!\c%ҪPPP-)a-:X 8qXdŰZ IlƝ+\|+Pk:&K Ԋ8WGBU pU9H%^dAB?w|4P̌r'j"63'rY) Q
448 !5'~F%v0 |u'Yrr> k6R -U%bx؅"~WM0"UkW*O xpY8FQ76NkO%?h-z qT4~X2,'b; v@
449 pv&wYn, H^9Uqy`j \P}Cf{(p(!r`Ћx}2~j&n)+?h9dmDa8JJqU> ZNz =ju^򗿬bL< m2<tzuL'f: p{#tn3#J 튕CML7<R$d`oґ,'txҜG"'6H{KxUvl?i-a-c&!U~L@Ǭʷ hTL|D]+NPdz⒮-;Ʊ~f˪_uIܡiG踩ML$Nh;K0К΄bIЈP;g+s:yS:8x{
450 9'%iby1Dˊw!V|}eZ'ok!H5QԔrRbψ7;Ώ+v
451 'j>)(j$ !JmD]/QfΉz] s:1ϓ"vt5J W!M5(j+ax%yox(p(xg؉^cLI-즩;/.Ƀ`y Zjvm{fXޏ'K ew)Izux!h\JLv*;ۑJ<t+3o;Lan~m$)՚Í"׿N`vL/89CCC Ús b}&2c/=deKfCH]b.
452 A$v_;_Xlr*stV>
453 6Ye_;Op;zl%7DNMk}&Pr`(-jT.1^ȳSHYLdtڝoȶm[Ĺ7vW72!9j*oCX-˗UëC;u?7rl6澜Z$x}`ճY6yAr-˱W}}yMX4F|ǭ^:c_ 3~{7Ή:$GIN[9Agrj=ϧFv_۝MUṋ$^#jEkSX>6er"?;AsIe}TC3D"M< mF!6 ,IR rhyf5`e Ƌ,kA1N׀բ
454 +y7L$WQǍ⥞OWd k^qEe?y \|T&cz*6JeTIhG޼xoh(lI&gkBbhϠ{VZjn֯DC JSNn 5m sWSy
455 _5!S.54d77ڣ/ -Dz 4[0V ZZ/p릝PtuFvWTƾI>x_NBlKru˲TQ>5I7* DRw#NS-_tY&ū=~D*}MrxKYxY[lAosE`T<>Y܌K*ε-G۬?%l sWNk6*@pCz?2Ϫʤ{ڪ(/xCr"G#geg磩NJ)aOK609aQT?+Eʶˀ.rE\#LT#g[u!@|#{EPy(3OO@plkCUQFFmE^imգrvV;4\;wZ㸎!›^W
456 *-6#DAokۍCPT@bO HËh
457 0*kb }DT~2-;5tݬ +|`HAtmO8W&a9ɛr|Y##<bMe!+g릞k >Q2pf{|oLCyk
458 45ƆS 9L -"Ӝo\tl"JT,OLVgs=K7ۊ## UDK?i'?:WOBC}$oLVo1+qPO~lDuPBoȞ^}JGƱF׮(P:ZC{Z !P-?#2cHպ &QLFЗ0K7Zeɀ+ Q=mSOl M]۹Ɨ*I{ssWս4߇g#6z3 #uӡv?o&
459 \~D]F \;LDU)`oD 7TwXm,?  tK Z4uin,a-n+h9I3/Γ]KK+IbN9?1$:@ 6ZT["c#}:e>oC0l7"[1xa%7q P с+Pm+F/*;8'Bm:;̆k˷:>)x=Ŝ2:E1+AjC2(meu%Z\41tЮ-B9HL3>߇ga8T#5 ^e~/m;x%TdJL9j~">rAŢyߊ؞N"av!۠b~0fyc4fCdO-^q䮥Is}3hq@e6//5#8sAJVb4N7hof(CUeFܭse6}0W($Aks5A2eG㸊 .3B!l7ZKq|
460 ,NګY] rX A#EU`~E[b<S(޵c4 1%QV1nk_XOjG3|s> Ӭ#SHEuf6
461 <D")&
462 ( 1s5iۗ5Țf
463 MM?2v1#WJǴoDM)p&Ao[򴾋ɘ搅 =
464 OŚt3`u5Цy,UUnx(v :ﶇU!l2V}{N
465 nK͹ lۮe.ju #"&;v5UJ̈9~Jc3Qh]urXd܆ CbƬCfVtpLrۦ>U}%gXZW-L椯=U
466 sy_ߟHا(dϐhDOP=4 V{y A4
467 AzbTl*A1r
468  2;9D"g vzgg,aC̐5gTi͉>0{]66SDd&"cre+OqB3> +e^(vttޑ@oK03fT/|ҶzKUm^A~ǘB V (h,$`%cx$VgEN ]C+5ƴ` [::5bvsjUO&wD`+5F}*yf6KJs TϤr?ٲrX݈[#ORa-T]z368V~jx}1ɏ-wOfWs_dnk9DX6Ɔk9ߜdE,& 4UgZwva)Qf%'P&o"jRe5446 Ik :9)>ȥ̺H{>E(DrfXêpog J8^P"ލ B)!
469 .~ f! a31v<6u[{b"QM\5Ä㯴oa4_N+qv_ 5sC6\ B S ub{nrl;1oǩPiRpM:Vc+m7k2 N[~Gޘ-rn*a6>%mZneVdۡ)MDbʬl7#k _s/Lorܧ"n.7,QO{@] :rJ}]$:#Htz_ !mL㨢TT /"zgL9cڶD.ü7nPUd0~FrkDŨkWG81:ptӵ~gfilnȨY@Zu]߇gu} uA`<:P3_Z4еkT7hs04&z
470 9߄}IlR"M301UGpHfۧŰ|a
471 S\pڄnJ
472 "i>u|'0)? .!N/ْNԚiC?y#/KGYX:`qD M^d߄cu)H$hy<, %Pvbiz~ɦg-%jp UOz^BtƟ>$#uCyFז7FyT40}Mf$oq=Fj~??w>|/7ֆ&:ݶܗTxFIb-q¶o!q։YE7ξєc!ג4–)񼝤*y^.eDc? {sl„d[/Y>;Q]K+Il4S>ȱk{*'zr8ͭY[Q*㺼c}6|u:ĵS_u1iQt&h>G + gC.;f+#JQi9{B$bm1 "*ϣmy_ZC2jVdOxV_`J#cu7uY̢=wYqE
473 W oOB~
474 ġ>?Sym|xnb^cLpom҅G;-xƽ\ߊ)p_}9=M%dCK>ΔCq[J;s Z.<?dT|no^9A|' cX?߁flnL^Q^
475 rb_p=ᶾr^{$o'QO7[zq#iβl;3ru3B*ÛP??ǶÝ&oym͓y\PT/';p;R7G, zx{4^g}HJer^dRhZ7.;`6Rq`?/􃝃aͷJ f(FjNV\
476 ߆C$ltϷid֡m2jνG$D[Hhx{t_sZNU!~ph5g2Jr;FJ;d
477 YD2@Crh|)^)mA݄X OJӅo?C +/z bc2*Gu_yB>Ko8TtP?;g0TFZ#2tG}[6"vmktavo q0<HJxI'$8.A佬ێJWfS}fs0jw3qq j=n&KIgQG6ΞW(ߗ<&+|l q1T;J4/?+7H/RNn˿>2B9Q/r?Ǡ>khdgɈ&r} 7_<%\ukeK)!CXy8 $.bB,
478 K?5w*:i\uj.k+YbhLDVp"c-ꔟ!kN, 2nr`"N B KCO_].ѯFAH C뫺jT9JC5ŝ{Ůr|%
479 X]b~ /ݩMp}6;f[7zaR}$bNrrssj%bSQBx )7l S/S>&UE)g.IC'UzܔZ pc7?&Ifd IqծU?H'J;j} d >uШ)6V0s?!(rwDžDmqob#NeM[z7%“2{[6is\4^Uq3ĤW)ib3mA}D׵T(LAG&C% f6t=
480 +Z\cu~8n_}9TukҾ {TƋ{\ E\2}fz`6}þ;ʔYo+r4qL(3VN2Ut_ڂFô8͸D#,D 2^x#B5oZWRx!HVǖ4 ʋ#SqS/S
481 X}PJ5 s1|,~]]d7[ @  ؘW
482 P]sTn1t'^T@RJXFhJ6I&,o{DVzkנcZ׋6늆eS/.tb|6\7`qQ&x1v IG7TVX]ʔ@'$U445;;}-r}] k2%z;ލ0nT1JU&vDHD|Y%ZRg?u!,(˔S`tVLvhw/t
483 gq?#BԨLZ*rh1S:CKuM
484 w[v 슓ÇGtԶb%HOrg^^qM`.E #r]8נ ޗ\$lFnG(O}1F.Ac6|˱s̚K"!2-!i!Wˇ m艀Y('q L}^k@0h$hmrK)[&p&I L$=Rޫ nwKQ`H:ch:4F! Cs +7 "6 n`ILZ3a fnTuX6 G(3{i
485 < AJ>anYȸ~oG6m-s!V; ~_NgRaAjj+)TZni/1q+L7oM & >թwfB~Pa}ҚzWDêʱQlJ1(DF^e:uGvR#~aW2_jf@ȒAX0U d^ʬлʶvjqFE0S!򚞮v垆iˣ*3|dPbOŮjm4~F*U@<UIT2L[IԑU@~#ZU,y
486 9 o
487 nӱ9vYܗ66`ǃ^4F^;t} ׍iϕy3;BW1glz&gOZ;c㴏d]%NUkIJ"u=-:XC>o_z5Ez6&0tvgLVV-a*ցbaqЮc &Z)S$_ b+1Vih[ j]FɪTrl[ogw2pXt3g ־@m \7-n
488 osH1 {
489 GKK&3p\t;o&&GF {庉|q
490 93zwa }Z+6h+Z@?}0,/0vs'N-82ƫFnizI՜wZ6 E
491 .,K>}98qs/HHfC9V/%oB#uܕ-<c.Kjk!|gP6
492 *:~4gL Xt
493 <Bv_2* o2z|ղ9?sy.O`X
494 ,ǖLt2慄#1^
495 /­BGDJkV3woK%Wүv_gD;f8x;֭7{Cm/xΦxaw=JF);Wˢ5@Fxj 0OmG/穨q ɒTĀbUŧ X`EC9h{ԝppLN kz!˯ϣǼ/yZ}Wɏ;}JlhZ ~}U|A6P lO_ߦS;[C+Z~mUέʥν GWG$p<_ t?}tdbGypԊN Wk710:g&S;c2imM'~,d)rzˎnڄ9V[f:KCt{Y_[+b Yq}1U"8>_ՔhL/3)Ooy]zXflam&>9KgP
496 VرE0;󘜖V[ΗpEsdSrqk1~ߪS%Vzxn;>!Q*Y&o8 EIg/w\KWo4X`bJub%OI@;jOem77wqI:r̴Ɋ,Q7³s?6׊;"Y;LdhZX",NbjGdg-흻ly9X镾#Ҟڶx>!'r,
497 ZhkUVtu'x 6sv:EziїЫ^dӨLv%zTo7[CCC뉆ߴXNK2c[BX +D
498 _^Xqd@8YcD;I(&oNvEXk\/o!DRɒrɿGzZqAw@H5((Ip> etbPz,H&:{ xPPP)p?ͻ˱Ckc,ñ~
499 ->vX,
500 " W%>TN\7>b"\-|\Et-Kku.w2.\1=K$eg<
501 T+0%*z>2Ϧ}B󲚦pYj9_L)DG'ymCB8&+-|!LU⨷lqEP'Xt;RCg`Ƕ-K\e8AW ne*[ЕĝHksWf[N-ͲHc@p?+[It6@խ1
502 
503 ,cDm?Sl;\bB'ypxU튓U`dAJ3`Y4𭻽<..E\֤}b*&V .) ik2UuW Q5DhQ$ TF\8{,yS1' kKDSg!og,&o 6g}`xwV㎑m;$4GI0NձS 0\t"'I6ײj'?XqzFV!fUSZIIux9ATͦ|0/OTzi8Eg$<4 |㩸VT/5
504 6Ddfv@Dv5_&[X ty
505 
506 
507 %-ً}k$vo24qVٲ`%f%ĸcԂqc:4ˤR\mA;%p '5XbJU6-bW YUj5!\zs+A՗պ9j:eUDVrFQz"㨳 36TgCC k}9} 6śyo˞˳Q$fܦȔ"H`PyB`']ҷvBrsePU{^olq7wc/J</,޲#ӑalX{YyCq r %0i d UeUYzRM! MRҕFvff'!
508 fnRk@oݒMUe
509 l_>zv<!ZGM){6??=`ܘm6Z`#l¶aݪ/_`>5[_\`8wSPPxаF!f~_^*=M~Ujì '9P7_~a&aajՃC:rk@>n>rt~Se^yQoUVCDL yCqxvvѫV~/ߦ!oZRXsE6юId^{gTyA
510 <4/u(T
511 |6'=}ER}1۝C.yy1ͩ)7Wvwm"/Sp%;p|xM 2Tf0.p<>rx.Rr0<xޚլm=DW4L3MT~GOQo#P::WzÓ:{
512 ?/BoÈ.lI<?4GC;=Kdk4+"Lr=?^:|vVF']j;b 88C瓞zR 3:
513 M}v;z|Ҩ}h9o?_s7r"P8N|ea)Vtmx1iӭ]ӫ9d{9_M; ]|H{ro^|9(5{BR104!{%^ClPAh-
514 "B9uNAڨ iz@9~D dΥsKHē=Z*'+L1ث'LL{m)+k&=I׈U34ʴ,1omts76<2;4}C@;n"xY`3)X@oqZ6M_V JWO4AbQ +!we2ㆋ{ͥMW48%v'^ B/u]e:!Tb~qIw=p>!Xm0Q s=ZAꎀ! QK71&C#7qV+2I׵kG@pzI>ѹS|D"ϦfG&yT%~BY\͹J]e_Mgs6aI 4#㸒N+8G<ϣqoVW/[1 uR5'X5OJg_Q4šÔ'1Ӿi,<}{ͲQ%td15S-4R&>)PN_Lª-j0@ڽB8
515 Penr;-E]pPO€(qiTwi('*aܻhLK{DԟucW#ExFsx6dI]$Y]kOW^g5a\˩S<2+,2ѹ~Ń
516 !PM}h{UBF:Ӛ!V!&̑7gy*nޗ}qX_>>,]pp|>~}PćWZ>2q`B'Zܑd2lfШ/=v|]kcKo@gC;f0-x"&J)Rp
517 W|<JövJ[Gl ڝWNbZl% \+z]UJ~GA8>:BW4-WqẼ8:|!s?mfRZ)Iz3KlMϠGAaj}rM"18|ON fÇ
518 r-65ڀLd1#ǰV~tݚ}+Ps>DnB, o`)0!i!u$[VXe L ܓ P`֖=5J1OLIЪLIX>CЄ1/0!VݛWŌf *Szev0W^,aܙ\:Vд١27pG3OLL{e4w]fk2Vmyx*㮍[m+= j4_c"Ыr$2ygN62VxPVw73%#Zm !F TsQ>bWiyj_씀 lcsUc1JlJ.vDX˨d}slc$ݢW-WP^jz5T5i؝*Bf"4xHa`;qCj;}kNsR/z;(:o0ڥ|
519 *%WowF2l + iЧJA@H֞ ltXG9 eyMZN<˾rM-6uU5Aо6W-!N|9[k|u4} b1ӫ@[ 9;Mc 1k$u]_Mdu~c/9P}ȶ`XIu˧\ut4^^Lo:W~,2S:r0ӨaUps[Aq7aUx\`jVC)pSH
520 1dy?C=6:e?828(*oV*=.Sltk$4$Frk7E;nb˹fJ1mcqTfsO"w $>0s*7;(;1|*ڂ7+CХp
521 nYn^`>vɪ.7P+;3Ub$UL{櫫ݰ4R]pWL(Hhw)*neL2>B
522 mnƏF[.u6dn!@ =$ZDєO7 QxtmJh4 -@4+e+i:%]e濎~Ns}d]LٿMFyGF:xEG/'T!9ڪrƳߦq; h6zQ,YP+7ţUPK3-| 
523 
524 |.v|-ˡ6@S8ƿm_T[%k6x7$)᫁T UFNN\}`Pifm$^988xO
525 |r04K3tZ1nZ@L)٤$PK<zcw[?>;
526 rڬcam6t_F2 R6|
527 ]'vzϪ/T\؝gW!?ijX2L6- M~L!&yޓ k徜[!!Ǽg?ˢ%&|x]fj8YyDsLhrMqt4^"yS H(p(ePcޗsEǫ+jFoCM$6@4$am\ƦLjz G$iPPӤ Ú8[ޗ1Zok?;U]i2,,>(>^e/i-h#;CPd#a'iP೦G/b99PBt65m§u9_cWc=L+ww2iѺ*?u ~(p(SSt_r,OGݝWO[X<P<Nl8Ӎfp8ƾm@Uޅ,{$T'{@*^?2\EV,<pg(tg&|`za_#vr&,\q4&?cJffl>ڝƩ3^ &d=ۚYc̴Ԗ=oPcV;) h4f%:=nmnU*8av(U k"*uLIB'jc/Ğ00.WI߷X>CCנ7l"^o%u‱nz^gaHN
528 ua*!Ê).oo_h1ju=g-V "+^ñw &r"AHWqgQUr)T#ҢڔC;$e ժ^
529 T
530 }'U!QX/2YXrXk̏PPPaX)'`+ب93Wbl);Y=%Z+g2 _2|̝#Sl?<iQQO~Bq??nm̫͍'z9A+&е#vcq20T~֝G<nuʕ/o!B#xZU*&#[逄ϬeF.BޠPPP!h/=6 n]kq} YlL`|7ĒۥpA [0w*a#A06 )^~t2%e|,zD `zݫm2L`d׻mc|'eVX2H
531 mRВ]?w*S@dT;
532 
533 |muƹZ;cqc B,rOf#E˴/g$K6˒ o\%W
534 #^.4@'ٖ`cn١ TjG
535 cYRbjtթ0IyNQMzJgE>$oz5V=;_MPqj*+M?i)]fy}ç5i9t+Ze3u.rUD%i8Iôр_R+\\J3΂WͶ*z&/ dRt$Jl #Uf1aų-sP]鯎/ӽ/_'ZQ`EQGzv>k
536 rޱEƦ1r341=Xcܼ(vSV2.ή,4$3|6dL0Ͳ5Zʻ<fu)OlePq"x?+O\ ?8@ MVSb; ̃I#j]̓lɿ988x%
537 9 { M#aJ?XY2阻w2VT9M!!t1nqJn?O&۪bw}DR</Jy#ެQ=M
538 |/r>}9 hbɛAc0Oibml%y z6N+3^8-Å G2$o(lO/;#z=/Z5o@Cy_wLbCN$ZM*3 cC=ka qJM$kٷX>Iagh>G׼1tR_P -)ѓݗT:tn]&Bbj8<~g^Ĩh-1J4R?`y4nN|FS.y/"TŭCC]3M: q|"W@ncwuRBM!-n>@7en@[yc߾t=!y.Nm~uD?ٗG!iP(pc-2Eh+LFDkW6طCH
539 88@9Ǫ&ffyD=q^ň z^UsH7Y牮Lr;{@
540 |
541 aXc)&o[V JO#_!R0qL,{
542 VOb$`( 6*7%}M.i#mx#Bc]; FnZ4L~~}͊"iP (yj/
543 G˙JRaԕCM\ŽnMd"yj_>0br)Lz.G~'&~D⟦B
544 rBe11cYGh砨;h9 eRJ=)̹#JqڴiSqmpckE%1q%E aF( 6u9D~z&$SfKWE ee ,Y(ùvb Uu}zMWVk2 g% qP,4ԕ37S߇9_%9
545 
546 lhh+Bo`>܅GLO\ 4B'kb!/1)r%&R`i"L03(Sps{h0`^:Ax
547 %0\C{Ol,PDrDБЗۆAMlrTt`썈 pč0 abCZ@!◈a;"WuZ#/~ϝbZnODզAra}PP}(`q}#Je]07&~PW->>Dlz_@}䂸`mGgoKKx9Z"wm"0a>Nh%lcg5
548 VZhnh`c,L\%'H&20ǧv2*3kܵQARH]XuN -P[n6@JN]zhtFp\9F+ `<U%{MD{'CfG=P:-YTY9V?ԯ`|n<y{(p(7DNko
549 aj·1*T7˹KPͽO ũAgg 7dRZE9W[SJƈD)mŭ$WV,-lu$GC8NAmGmSvq$v{ xzML퐃kƃN5IPU= ~7|jq&؈3.NbbIl_% z*C
550 z.ZV'PP}(ӉqX͕1},Qc@%J7OyaCҬXWnJZ L_m"0XnORtPP1J?*yp*xΤ6 &g0ΫrG68Ťy\[PJWC@'> 6֣g`st0$Pխ""oV,ZպīVi7JʂbtT}y(p(<
551 9Lj\gmN(LJzeCI5jלBlW™)ndG$4H^װ{ GU< ϕl{NjMĶpgf}/3 a-J֔ugZLEEv TY{VJN ^1+\G%kw"v nZ@@ش$Vo2%>NDd
552 
553 'nk9"|e^9#vC}ق Gc\JKb֖6YFBӫ)^a
554 Wj4^^?KUpbmU)g|@X$ˏZ̘AU8hք*0t@vtYc6vc> a2:r3h[gܱk\z87%{X{T\ Pkf-B5PLm8P)p[iv$U,Fo/}i*3 go~0!3W:׃<Rz.TՔ?g͚_\6+Ny(3~0;z4d1E @Za ŀJʄH?@O04JGW/aDQɹ =7[Wk5PҫգFIQ:oއEλZAqMk{8;NXaZOQV3pOtO¡n.|Vs_̑Cq#Sn4/ d2dQݞ4(u>F[y؞GCK@,˩ 7V<4OpZ|ޓAu}j J19Uvv;CѸ['=VAGu3<7(/.*euշGohWGZ&o}8׆`YV?x
555 }9PvCZ3'Ѧħ&PU֞=!t7u*l:}~eGK}{I0=w`x =U[J$mj&O\WĦֿ=OE -Vˡ9߉M$Wbʅ-W5vz5w >I_a 2ؓ&Vu'BG+?gO9MlC\7%o Ei2ϥkC(SzP~Y,S&# &7꒸$}ÐԱ&3"K:~ޠ_ĖJi-1<s$3J>OZzgpkD
556 ;0?G
557 rtþk1Ţ_V_G.-@lSQR|~U38d[=/s̍z\(?Nڐ,bR(yS-#L!`icK꛷Mo\V'ڊT/K@}~
558 |xj}9Av'ڍa??oc&d[6V°WM_lb2w?^q@U>'AG38:Û0xA261jn2ﳠ'w} zgѩR-ˉ5ކl̷t<zd$ӿ3¹Q akg;W?IГpuDI@>´F6""Bє/ߐJ~xGX>i-ӱ
559 YkCx=Oρ(mX{}9^;cc|s|H@(8D{hQ26]@0;vuȄZ( r+Lz=Cv\OYA슶qn2zB`A1Ţtz;{롟Q]m_)؉ѴtXDZ@MaMkF2!{ʈ׾{qG'kNbQXPW#'4d\f
560 )+vg im$>
561 <O/gAq?-#8.qMZ'*hm8r0~g?S%5I >!NF/vLOhS* Y$$X<w-ͮ|9ReYbo=kU-1oUfA: veCPV]@f~_BJ*Ve~C<b 5R f~U\h
562 ȼfQ%Ă\L[C y! ܀Ҁkф/S}JO67ub|á [{z
563 
564 ,O>-.}WqpS7 0h|`9T|9#2 HomF˨;4jtv{6jV&pd򝤁KZں?G, G]C/]wo2Pˮ}G&_bHb:o `k ?ӑI0W+&|p$Ekբ® hҫc9'd$qE~T P:h8z4
565 |9}_%+HZί~+xKM-ai%6R-L_&OdF[pqw5Y:"hB"ir|-5 1.2q5n+GĚKz\#ݫ,e`hc8E,Wn 4} 5(glJ.n5$}5lAS̟RlƄ$|IefQq╓VtS+{ Z=r[]k̔BUģO84')ͥūڷs]Q0h<WRXGMc }x[GP5SH1>*iP=*MOH7!djB%&s(xLˉ%}9}*q+'6M':-/[{ )샱5?>Wt1ҲqvHA&EBr+CRst-Qg P+zx y|E/!ss$ Dn($'9;Xg䟦W̙ho^_Jz<7޹Vg38 UFgUCUg̺u fYvsu6`*`e!U:<gnPJ~FfBCI-fgOkPy}9W 0>U mb߆Ot57ACM/WA뛌aֻs_ɀ`׏.m_otJƬOgZʃ
566 c:4'kJH `u3X\!O;(<YdX`n5PbN Dq.lj"Cφ nRtP@>:UCq (QuƲ雉 ;PrE3p4}R{{E04"h>+ӴL>޻Pm(p[ˉX6/v֥[jb`NJgv´ p7)z4ֆ_İ&Dc"ӷn]J*+pfTN OĄR\>d[뎾o/Tc Og<HDpݕ&7B
567 [eKo(\B))Juw:m`$}u"Jh
568 V3_?
569 =@2bsD0BLr(QcQ̜ZMzsSic o@df_fy׭Fxb v3˴g+ɵ( )NiR}>ë+FcO uZknn_PIf=>XF<T'ѪZ @W ҍspZƆ³хIyY 1t'^!3hG8Uu1FLE4t@eFI!f;'ZkӴM] )~(sLỎ/LʼsHևPC2gtd{q~>bJ"9崰IZϬƣ7r=r_SxB2cԩy@Lȕ{VlL F뚩Ƣt68%N>{_RArVT,y#~\HOWH+Rs+m(\Z9 {nDP|R!ꑅ| Jb2V}պYy2XW}Z|8M~ø?u:^iؚ*jکb!kRMENO@&ho_xNϝϹ/_'uhw8`[]Vo#7ҧFг[+
570 =)NI_xO,ogzx w|,$l˹`g@ђXk-Mt7Uy=BjJ@>xO
571 r1%/~%pf``W|@uG 0R/6;`(sǖŒf_'.)
572 6‘&lkkLO_:gFLdCM?!ms[06_{h^CzY3bL"'r}=7ٮ/$
573 _h[t6rtÍ)Zb*N6Lyc܆A'dqTCM.2cM0!>łmxl&NݱF蛕YL9qǓ+SmN6{;iGͲi qY>;!3,87V_ nߗüބ&GkIb6x7ɛ>) ,|J/$
574 ozĭ\8]U@`_=+Ƌ3\gtsyk[V:^y暈+)Ϥܟ)u3ZG'ߗcv七ue|bf?>V3mģ[hۧ/FUO'_kB K{Vq>QT$I Hh3etNLv6=v87@Vy? OC]xwZ/>ϼ/g.3qhT"Hi]>'ܰf&ih}:X˅vz
575 "΍u;% ɁN \xЪuf̞¹9tIhS/)I9?M
576 6PPc[+*_vLmb& 4>]l/-eN4h!YP׃٪K$Bǝ'oA:B!ob3
577 =2!k<C<d-JZ¿;%jTpl'HIC9Gs"+b6+<Y{R{g馧_S'592/H?¯ڪk7K=ÊKX[ExTlR [t*5ڵ>:_XguAGPkm]h" zC ɘ^eh
578 [fۓ h< G&nrpluDojKW**LwFA B3:8r(coļx1S<12%e?f*f;倃&b֤֧/J0 ɤiI+orc %F2 ku d <YY8rIBtQp;`0 V'{Cuaffn6.VP>-yEѿy(p(p(@Xu6H,,{J,\/Ԃ b]P\uثBhaܹ/''fUIU1I#K /@t%=$[Dȫ -1#U\[R#k5#{QؖLwzVաS} б*ix\(V˾d8zͤS7n,3q|ބD}خal\Uٹ?|b]:esvM=%j(u?!C8A 4g9JDQ9)gQpm_K#,,{0 {`g{[
579 nh] Py^V1"F~Xu0q4"'_*7AR2W>Wuy
580 瀞2΋ώ|߲K@J'$<A(3!4'&ٹWhsus*u*XcIwAG2Mΐ*՗2B?>SqbrRk{24v}K89}CCCף}!8ȼCϰm#!]2%-Kِp(i J_8& T^ZOp
581 ~넆{U>hr%(1t
582 D U$ Ik ?PW+OAyhPG_׊*\vt I
583 "0$SߞSntx}c#xǿb@1)/G'HNlALx_iV8VܺIci=8jRU bW8{WhȏX4r?яBrNa-NDD)XX?̆zMqIZ7G[G?424%:I U9Ziq$=
584 F7Va
585 
586 
587 *n,{buz<ol6kιcX^}vaO[nMObpw<qP03֟Qc Tߧ
588 ۲Ɋ>{]CSP[UyxY&bˉ
589 DW|^>Z֧x}v9GmdݚS }s_ya 73}vJg_49 *7)p_M^uxjP!oBY%ʴCJGi0f`bbyf[ QFyp$ }~etؕ5w6ݗggmDm&q8/>iGae^]+ߩzD/j*6ZߦSH[Fѷ}*IQN9[3* - g!onzڊ'owvLhsxXrE$M4u0hQ޿J7I;mj-(oy Z߸2NLrhK WlՂt}Yٝ>Xf菿o_jvadks{ƞ#zh{0B7!ۚ;{+q
590 |PS Ց7߰]"nIXɞۿߗj7C[FZ4L3#|n'Pz휏K͟ع}
591 
592 8CHeA
593 cI'n @g;1,rO Wz Q@x~v _o?!:$`&c8 Z/>JYBdi~ (
594 ޳oʺ8l:#;Xkmȧ+;?_]so/`T
595 T!!#S`pxIZI蕏)tQ@H 8k TeNs|2rpXJ&liV"ۑm$=Cp:kmQGF5Bxν246ZG\~I]i1ҫrB~!G+󲁃 +cLZ^9jEGP:>-
596 p0jgOlQ,uiʸk8dG)T,X,ǫ5z岀]5]52Et!/;fh G7KAJCnP-Y8r8Vnh,"DuDype.wc8Oe{'l|GuSFkȨؚ|l[92 !<ȻWrzm}zh‹wnʠf@~~/'ؚ*wϚ#&+`DV%la`l'5HG|(q)χ%q'1\~6>}u--JyTqlZr~-Aӷvg_cXe*Dd > J&Զ pe+L*R`GףfO7kRԅ ؃ͽDK{ϤhY94[UzJ5*;L1+L0i֐"zh%)
597 &^ɏ`ʏ⹽";Ni'g
598 .%ǩKi 57"j]g~]_Wwu#V ˹[,,A(XP 4cFPs!R1S{>}Eկ#þޗ)LGuW4ѺV2- W&tR>PήJR4.w<2?A_Ʌ<ó&Q9-)QG*?J^QtxN2luvU+~NVD껝b0U%:;,6yVN?k"jZu4$dˣ\w1Wsg\8~]+I7O֨wC*N(E".!tʔIu\Q~PRඖֿ34a[ƚ߽n%bCMp<Z_v2q4C0_רo)12ܫL>ՊЫdN~$$V\ Z߭dTP
599 f~dUHW|u?;[mHaEhF+'2LRpFCV#:J8l0w4L-Z(4OsT:W!r?6)75$$™MҶLq^Syא I?vKcR{hNF"g$'}93O W }['TUgP&(:w,Wc xLRRJ{
600 W=e 2-{BϞ
601 ]`*SN6KΚ aѰ Bu˟LE$: RS]W)~F}
602 4ϼ&Xr&UjlPmԋM3҆YRm߷kn=mZR^nGzޖGB
603 |
604 \exukn=Xs^]+!,f|@Z oTTf F?}0g~Cz Ϧo&7Ug6vUmׅ eύ%B!˔GӲmX?FX&oԄ(3 ?X' êg Ӯw-FMl1rMh]I ?}7mJO&ߍ%6'cmPE3[X64w!WYx].<yu((pCع !`1ۥ~/,mt|ǎ բ|$PuEﭟPUǫSa 2XmMM8ȵW Yԭ*N+%#b;~V O `|#ň@*wGI'8v\G
605 p$(giAJ WГ0CK(3V1H>fFjSͩ)e'§1} >}q,>>'PS}_lX4>fSty
606 ??n1/6rbq"K%rǰؕVD jev½ZAn+hpSK#'|bx%&>?j߯p_'qCC8KY,L§0Sr=NM~؅rtdJKcE ^z&BL~ɞdLmWHIОS[bl#]z-zr=|KSy }Cɰ|CC"'N$xW_`LP@j^g &c!p?|6)RNAel5E1;IW3|4Ԡ(VNbD?9"W.:pB}<&{V96I"0IU'Ϯ?0o@賣APE(a-lӧis`* S8T㔛<)~hEqLM&GuA%d^lrQE&ÉF[/;?_ycQ5VaޏiP k1\Qsħi`y{\_0-xu<j$oε$ox|9WN̔(O"m";[FD77u3jI׋d-%#Pu7_@}"xL˱11}")m*u0Ć] 8b!=2eE/ g%eNmUqG3nNˡki.>}NϦ;-bU~*XH{1ve&b<(%9iFle6%]mT}Wp+&C& g?*(84zuz#q!7=̧[]o;ϡSA-qcha}}ByLoGrx9Ύ8O<:W cFȋtʝ"z^GާV#]8"ek9>'9(pC)˾7aFV;r)5V:6|e(˜[9qim;V$~/Ƚ֋uJ숫v~y`v"|G2gy0v_AQL;Rr6.Qzbi/R/DPX-~_B;;/EG V ӌ8yNё8鯋){bX>oWVͪrJV"<!S[?KoCZmS,ΊU)'&jYw)q[>T8<2a@w[,…1e/i2dp;{΁jv<i$~`.UDcn R_,r;Zţ04!|N)`njaRV*"ʀêxtxV1Dξ[[?S^a:(X'Q[_(zУ-֏\/Dp|$^]#TF0ͩ=PI,Pκ(#*`bO }xFϓ888V
607 ܈Wji/!dړ(J4L3aYI6pI~α`Wk֖2x"-"'6]} gGm(P:U^>2*7GtEa2]:K
608 $iKO#Hnbr2k<AŻ_s|*xIV6Z?=(
609 -<Len/Q\[*IYhW1J,QKÇ.6["M5B:b %*E|VA"WRM#EeX˱?Ps@`il2)8Uo.he$lVΫCCC;oc,3 ;XĔ
610 c,WKx-W_&x+Q"2e1KnU889^vW_ =I
611 @b#V4 CuV3q yi3!XQDWvX>4178V}
612 0elǘ\JB'!ae}/ð*O{U6\j"KvC281׽;"5D2ԩwx+T4L_ ]Go!4z&7F
613 1Eɇ }_:88xnZ;
614 hlVٱ F$rdBk1eWn-Km)GI x6u9U =2bA&J0ŚUk k BG:6F<5Vy`╷Gx t
615 2ǖX+UYotLe؆1:BuLS *Fk2Fȇ~
616 
617 
618 <Nޝa1}B gQ^ĘuX nqvZ]#u.4\%9Xb6H0zyId\s'p<^I‡Qȩh,l~ZG7\ww ElEjTߑɸ0) 6+(ȔJgu\aN+
619 ddO*_d\-'u}zuה;ѽ^AnƩPrx(#GM$;a[D< |%ʴ9T1&ʧ>걱T!yӫ':C#Fԧ6z
620 
621 
622 |81 I\b"ׇp&K"#{ vD$ܠYۦ'S;&6@<|AI*eē=JZN 4c 'ƞM77bK?m?(Pq|lp
623 p%Tc1\bUŧeO~@žUNH!j= ÉբT%^Ϡթr(p(p(<
624 KHd 2'Mp?v.<'պ'͓?#ƬKXQ!NsC6w'!<[8jo8>_GZɛxY{M򓟤^֦7H<Us'y]J8<ҮH$HNm|w51e"-B A C0#E* LOY4AWh94CC)hg%2imM'x2Ȥn& [>Gk^s
625 m͒:Y*C!*DG=%؆n!"DgUGT"=r
626 
627 
628 Y);ma@18Yq m oڡBĒWz 7GU&W3,Px$p"Uz czS B9`vz[Nks4&i0c>z>-JAQbSWJU>88xm
629 <x_^8ʌ#'tfzV8s4g ]__{ї[SbBt׿2/J0i'0PJ0qhmXBI\G̘)?Q <] ,z%znG;#YRĞ8ZkNo`D ⎿`zUXhʈ8ТTUM\aE ^ p]2c򔆅;)3
630 |$X' V+O60L
631 =zD=mpDgI5o%oOPPP) S2nޗqsLsf1|pKh<xb1Ler`ed?XW APYW-uj|LlIX/)Lb %HPȗ&֜=_Eˮu!"lHYW%*
632 !Efb988xm
633 9\YIJŐ1N Q2:ebbPb?jҶOtK~ZʎQ ]7]#@ܿw7-PX@׶|MȤo c1DsWf[EXêKq0 
634 \G%_?YDmGgV\'q(p(p(XNƆam?*~W:5e&VH~i[/U|vidLPʩ 21Jabĩm'%&6 Jm^av,u޿%˱C@# 4O!6ahǮKBGWteWvhlbӋIU!uf!$C^vbhCwg5l<Ę.Sa+đ$$(Qf4FXW&o
635 XUOsWm{X V%<8/MPV+);i' BUBIu~Qrd@H00SHв  )k_Jŵ :U q@H֣&A~no{q
636 
637 
638 ,zVٽ:X")pT[xe`v
639 ,Q2 {i%-ٸ1¥cݲ gkEP8qVD ݟkz,aH-sPZ7( 7~h0gJDWL#j~E1lfCj*ΤPPP>r1e,{82& |=aحI`lJ_$fupV&ty#</[~\k?$
640 ˱3*!LX^ƻ'4f{Cw3枼q@_'L&V\hLر1J,tܑ7o!"pX í>>ԯgT98j)Ό0sUe&0XUux=يG\b4NK?Ú4X\~Ag
641 mlzUhkhGTci`[x>§CCO>rf\''lzٟ*-Knc7$U}ܩM8_LvQCbzwSPPSa퓺/ǎHφ7p`X8O}Zo`ߐ7)gSpH2ŗ,ggM7xOzEv Lf^PPkx_NƽڭΎ>C4x[ސv_zvNrv-m?\<@Di(^T}ŧib3tG~8AZN>rވۼIEя~? {xry&ŋK_qKi!s; Chș]>K2
642 Z fGFm>#8[d;P}_ HorصE}أK+?.4'iɧ>vVx9/
643 SZf8Ok:_`: r+JӀ y/U%Lh~^PP -YH`ܓN&2cq^>Ks}ѓqOClE0w€AL`LT5mȃXedvpԄwJՐ@`bvx3QDuoo!#Z}u.sDcұ8s5s_$ޗm7^iŸ9bڙwuoBCce7C\r`SVfj#_)+7m rj)2IA}L?ˬJm؆!.Y$Pci8,}@2 Vp'Im)G m5wC(U rN8D8o;MV[g)p(p(p(p8 e 
644    |z !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy}~Z0RXm|e\lwVB)6Ob->fDhlvSr}Hz$eup E)3T|ކ| oJ*Mu='ТHa'HE؞=#@ȠĔcqZJn~=y{(p(R n=bl}3Om JS"{VuLpgNBâE\S[8ɞ~IuVAWx_.ge˯<4FU\HPДH?=p]51X 2/Fg7X:ᦰC<88!r&|bIj$>lvJliˮOE0A~_@8Qx5)+%.P+-%+L#A4e(Ģd X t=BDݡ۠*=>1yU" D(JkV鯝
645 \Gbk\r|IC~=?88!rVF<pe+%ЁCd>
646 x4~G)1gwS?\N'mi'4]F7{.p9xI#2W8(0ɩnѯO?]zhְa!au2߆̧G-UMNWN"r6=e2Ꮒu%S wU HMaB衈>BUr;sP@LYx+d2L\vpDWł<)$ 3"GsnUG*`q\eP:E#QFZ#W< OistÚGgYթ-r?zh[GuPPP!
647 <x_NΖ&}r.q8ל)'eڭ)QPTx-;qt~Uɮ|?LlY HO@@CFGIքn]94x@: i0d:b%˿tZumLXq cv%CcXXy㮭b׎W=" nR`|ȰK {;C_|8 S/dwn?A@KE ч
648 Z!D1qbA_ɭtZ442I;gLK곦A/r/'F1CBi }6O'N<S[&o.nĽJބ#ycKlB>>1bi|\  ?g +̡W/>9߬feD /rgM Ri5ǡCn&[->)ӂ<`zs xԮyD;|Y:|8֠O3G>gZaFc&A>~<{A
649 <hXG`5}1\VL|@;<^Yjў 4ok@vt:'6m C̚xk0Ǡڄz|b.ѓ1Hϫ/uKQ tNi}tViNV}uvwX$@h%Y^q. pqf-WWѕ\N
650 bV] YfRdOQ§yNk= >wկ~G{AԗJE a 7kF(+CO[7;iKWS#,.Ƶޗpb?لGg<B!_V  0qzK=|bpV2z!8?A
651 pcƘ!尧%8V5kn(ԖDs3ܠc~?L C3I/)[{ō-HބvD?dgt!!?/u'ҝGkݗcȞ}gT"!M
652 e/g–OVubֿ]^=n{jg_Ն*ÿdh pZ~ۏiS -'/3N|[LO}T6 *runc;YU%R> ՄV`Sp<"vS :iSbb崦j+~,V陼^Q͛`%$o@a,wһ.h YuE(0Fk]H^"šz#c! 4N5aZhO{!)^Ca-e~'6 d@"ht |_,BqomeQʼn11F;u|oQ^xeXXFr+I^_vRXb &ka2kNC?eR tьlC0*EEe[5 3>~TX0o "QSdFhWW\N+o5X 5H1h'E<[P-Xu8Ȭ(`^WU?`.+z[x*^"@GTa0(bZJޢ'ce77!(l(PK0G+Z_m/Qb*%f*,,=;FnUzC_:CbnzK&E,]DYT d @ mokeQL+p)p9Z}9&MUfϾ RY G]dSڢ@]niޛǾʯQ t@/z[I8ɫx(_s}P6`&ze^eH[TdWX8kiC/XNU"^DZ|Koխ ÇzQo2hZ6mtft.Qw61“0k ]HRV}N+akZAs\05С͢"?5'ɦ+3YZCdBE(IJ+WEPjsêY9<7D B0y0->F"q7-M2È+锾}`MℇTy-$
653 ED-MKpgsp(J8m>;jbv )G0+ku P /Xa^%Dzؒ&!6ݢF|fO ǶW!8[!jޫ_ E"#y<1ZuTkteze\jMe(gI}=ƅVa8$jM>*Q= f.?~օϹL[]R cZNc߇a5#$DN'ry^|TؕbvWqUv>a$ef\Uȉ@ᾙyO$TkkjpB*_䨫 mWLɧXRʀƪ J h_:iP6dFeC2+xmt,ʯi"cˬ81}A~PeN,5"fHJC0Kh2lC 6|l\JllQf˒^VZgԒܷG>}JUR2~d 2"fsÿ/KU#m߯"i<76~KçW'7.崖}7 \L&LS8h$Ywڲ&Uo)44ku6,Q2g@}8ٗ9#rշ zpckfnańvby:Ja<a9trf5!%H2ż!'_̛ $I|"B6aX53j!,BEbUV]rG&_&+U nňJ]6M-݌x,!' RE * CC 7C+Xc|T5
654 &j)SJ*'2O9!HLY"8:R% gKhVBr*4,w2yjMÚߝZ'fؓ7? ,gܳ3"f_1(o ܵ?r }I $%W?Ɋ(Uw.Ϲf^U3
655 oE0<̎oߎSG؞ngE`+*0ó61Nڋcs(wci&,^G-C!f)PޡN[eί#uM("`_޻FӌYff" kL9c.mOrѮ4W=BUf& uZdX呗.?sM/QӕkK瘺ďpxFTf48KC5M,(D궵 BcXyPr -^ 'ӎ]wz\ = 2o/_n]anueN=+Qi#(~w~ˠqpȃR6%hɬG9a-$W2ܢp
656 cow gq\x \o\&Xf ?15qj(Ql9\OMb ;ӿUf egˈjju7{3ݽ`l*,n؄_:[$Uzh{C~bWZ_t)BlSŞGt.wԭi$)ȘЖ_BGr ?DBn`7RnB°a _gY ~<̃;rݽ3M0i:j"0Ҷ7I[j _ܜUdܬ:])_ ~+;(߸K) ߪ=0m<Uk}~^vkqZw² EXBRu`f=s-=[@Y cc1w
657 =4iأ-)hH\DD27APv.0C͌~Rrq;5zuOh~ȇգ%_x,lBGLbʉ-QYgC0:=߆޸Z>=/X EYoCυLrJqe.-Kϑ`!U+$ՄFBUe^ n!-2޷rHƔoJr᩟Jk=hnĜDs\ojBa,m-QFVEw_tsH|O.5#w"@GˆI d#m -PF2^0#avL]&;A֯Z_&֖c}8אW-$~99]Ucfnwa.'fwD`69s\0MlMyGJYِKv`pa,4U|1Us/#`o pRMKMn[^Tx=eu3spZXy|dL^'X ºK8B>~!!uiI4[M]|*S]&N'm0@$E7hJ}b`1zfPR^I2~)7k/ofnر1Yw+wqav:`yѻOa--Xw 8wi~˗UMBDP Jp>HG\6)mGgɷ/ ppCR͛09N)T /%Ln +#u#I~>Fߋa[,Tv.61!R_QKKcr; 7kgПȖ\fr5e\gj`2xj2pS=ݕy<ѭ{r̈́mDt-_ '*^3AhZyƎȻ直|M]>*!PέMGC"1L|J0қw-QY"{F8e +~uz!l~i\~T#nȵNt>:5MO]o\.3ZF­'gHK2ˢܴ,^fJm9#k[nP«ΖKzZk9ktP#HѰ[ BZZywdmHkmG%kpWrmG3[ѓW@h{Oư Dei@wĹ;t 7WE55R΂F]{Zb؜/62cgnI-_sfFSww?^+>^ _., O91^khwRN&6幖hbYFL@6άLx{p]Uү`yi[&!Y&[;6XlndɥmVn ;߰3H`8lHs~ kk 'Q9 H$zVM+׋픁!:fE0?s.n:IDAT$t@9 &F&QXb(Ҟ@+GYrbu4)0nfljn}q9ƭW篹8zlUZuMvʢo6¬@lDBHkTH|[LxHA)e#@H+ PJ3c{Qٻj*o|g+=/䵕:]q gq䥮$6iĈ&apkv/fWkXG
658 2!G߆ 9$^oQIOz1m+?̳ -=G$&&X&}+1/2:
659 W##km)jЭa9nY*#S9vߎ:zC߆5&$th$/{~O qvBiw&[Mx^g>Wa5̲ ȶw;(c<꽩Az=D}tIE[+kQW R("W"(aͻ٠`g;B=[\[5)ƨo[;Kj[~7 |5%nCB\QkinN,5_mHur~0u|U|̎dY*+ @B=`7 5oq7fUxHs~u w<l~ ºϲy3%mCv2cv,"$*mtUf/%
660 پPϜdcD$)SY@9.Z텘0<NVY͢ ?&b~bn0|d?W4n|I {EHORԗEUtER?m!oP!iA+"66ϭ^_o<mQb_ ӼZnv",Q*԰# |(L[v aAsK;;W/ϸ:/ L|u۲ ayH~#lT4O\ƌʣr[$[xk_c윅&'J7wB05 -"QUNk=qǖbjh)_BHIym|iH QЛS/fx[#1>`\^FH8bm\-2$Y!~F63!skkc+Cҁ$E[t>
661 ;xɞV uoYvGx|}H/w<mQo}$Am+jKUU?iz"% B}5$9
662 fw_Q-Ir^4]e5مkwi,A)qin Yy i\ VpeDe?ÀSO^D>I"|"
663 2m?K9a_͞|}E[x eHQ^&zu]TkIZU;7S 8")UMl/-*OUs'^;%q9z̈́6b){7 um[B1,z D]+wz[̠؃[h< 01»5ek{989[zFț 9=6~Kh:xW~bvz}0;%%6'D/W>ϙJGMSGU>[W>OoO.S[Zj%Ts vD27g>Rlڴ 7%jˆA=ʕ58c]m[ $A
664 '5yq,#]D&BG  j3[j{2b@HBH:BF9]O!ѾdS!QVlZ#dgGgb|:qd+C2ac5ц},)QZR|j~Y?ʰvi:<
665 uLco&Q+Uz[ 5W.3%k."ph{/\qH6ְ˔^l@㿮[-֋GX*MNjUkfOli.%L$w+P'ˠDPy"<]!%u( v7N }Â%Ãn'
666 &`G] >?)wDZep$s<[he~TSNctC6\
667 WY]dLXT sO7Up~4N{EHYVVa3M[  tm2n,)GyGȏq"MXs'范scOnUY-4wM̺;I@᡽Т=\s=ZV3ò'VRyNy܍Kd~ϰtU/pQqxC.g0~n;2ї˲+:mWJ]4Z]nw!c1$yl׃GsO,N'+7IK[eqݨ "+xZ|`N*h{%4mYk5b}~I eD3xdqa`KLȓ93a6fj0s$ kpԫ,?-&CT}`P0s微C1MBXGw I{UCh*"x}x8䲻#ujwxn`sapW(v4̡;dy?CL,Y-qA$۵`ՋᨼhXKP.TYR;{}2a&c2QOu׵a%\uQ3!|3, n_ܰFh8s:X(, p s]L*|]}UӱFynEH ާs8I&=r:q$8[ 3TF1iZ<#[al^'1Fp}Ltdnam!Ҽ[>\EEpՋîQ $> Lu}8HaD>jUx̻ #i4 l¨r뗞wu17<j&˂ȣ5i>1U yg*w&jᨕ? G|1M7.g5eTZUg7nxdW׬<OY"1M_S g+yN>j6iw4iWL )cT=+ -+*0 _q͟w7) TMz]su$ClY$Xk}RiT+0P+*c'9FMG۔aA`uGm"u8w<iL4侨ڒd&K?/Lh[or}Z뽺Xwu#w f1kywtQvzNJFxjS"BK_G.Ssb|tMus'ؼ&N#vå#HzK
668 燮`6Q"@\J[,cQą!b2Ip?yz؜Z%Bϵ8_ϫfYy 6C|2+7emECM #ln')@uj ȿ[K\s`=n@/6m *js!Έ)y-Q^Hv;L
669 ôgC2R5 pG[y|lyTFr3HLج+HDI@&IWª!i.Z_QP yȸ`
670 Dp~[yލH}-h.˜\G#d'AI7}~$$2o YqqWHnxil¾q9MXݸ608N>F
671 N= *"{9B)#_z߹^5Ś/M7 &O0b?)dnvJ7&%LK[ Ƹo<b4قښ%* g+7.Z]<Dd40\8Փwe.twb0WjQb,%[~i DUA)>#2ainwñ,-Gsmp gXrZ(T[9ffͿW_KH0]3l'ѫY\1°q ZދM̻!G̢'5^֭;A+c
672 kfjkra G'<&[UeY_r}X[Lݕn\[|:r-)߳aP I\k+0*gM2BbT}H)2F.3T$kF%)ndBmg1~讗Bp0ڸ4 >9WG>90;ed=[ Pt."ʑ7%7q41~V cߎ}U B$1[Y%M*YUnv]/=)v2 ɌQZ of^GmՎ9[͠S5Yjl>o/ JƦiIntk@ h_޷i֗2θǻ*S<1k65]m@'d;,Lij| 4¦!<;RSo)# UhO%1AuW,h o\ciX3:eAxoFaFxq?PB'TDsPmr5Lp=sUF|e IʺNð;QrC<genxE^Pk}`.z47VyT-$
673 F4
674 *)A eߏ¬LFւX!|j!ge*VQO8Lf=Tyf"-vY/Rv;9otlשV *~va+5o͏QP^)V(vS|ǵA5lv)qd
675 "MbBEJQ+o̻z?aN)_aEA0]`-U!;S<sD:}m8+JJޅG5Yxor4Cq5#+rȝRvk+=t9"0LjBKR3T/a *kaPΒBIT.SCUu*o_ٗ\4ْWӌi<CK&vM&
676 o2\!](_؍M
677 f7Ap+6 d~T.caqknDËSTS]s_V HB}.633Ga0.>fS1JGH9>Bk KnѕJ4h|M#wPBM`¼zx5AmۯE9GY`hUfq9)D KXgqb+li6vV/Fb kLQCfoA!񑱭]
678 l}My!^CB\$,Kӆ civas;xͺnn4aުQ߰Ib!)< \>o7C]j񺒬FPR\sUp]Gi6"o)zX4фS͆.1p6 ܪo?=B820vgF"M@8?B!ռ! 5pV=2<ӱv FzYm#l~a+̻}j^BhY2
679 (YKSwfeH{-@l8!F?Nz3{qP5)!V=>  o׊1K 2#U9mSe<<=9B8}-kTݴ/ho ΧetJ{G.w[=>0sH4q2 *9lZ6 ӭƪY{_2?kEnъ?<INۑ_d!UA6-~m$F\6Mo 0vWO _I۔*ElƦcjѳ]x/^-S_E*n>N2wCu M !``pS엘w~uj7j?C\;io5Cm8
680 {u'Z;ФkWF[l̛K![Ts-Ū A5]j{A'aتvOcAso];tP_wn)vme켴rM#7V[c \턮k.V
681 ~6<שUdCspKuW~94Pu{n`R
682 g Tبx`u/
683 3J}5Ka5ӕ>$'~M
684 !ڲ4^,nilM#.?_օe>T]%+|2IE WtF;PY>ob8N5 qk`im;lXzC^\LiⱻXU6[3qm;N ϐWXB?⿮S
685 (9\qit;lGAI(\Wvë%1#1aǡޑțcsi=jnr.P2xbRcDy1ѩߛ3Ez^
686 .6 ,qd<7hnBr4oRGfw
687 Tyrԣ$i\9,?qje#d,_q}Q܀mmtO/f^KIi qsbݱF8%5 fa_뻺.Q+l.[ӷ;x9ZW<߉NShC索ʛ4^%x;7nwX!b57He"{ot,@Fw\W"1xFp}ፔe]ϤѰͽ%+76*$f(B[v;D­p֞V~ S^z~r͝ Ғ7_xU3R/! whv^x&rb-1FK$12RC͉ȱ|G{ԉGa9
688 V8jIHK M{o'HÆX[ Q6o=7v[~5|{ə5~Ri!J5w^ۺi:dTfn?ތŪe/="1#{3m+V|7w\g<t ib*o}W՜ޑy%5JA/&{HbpnM+74qozfIQnﮌsE݈V`G۷3\7^,\ɦb{@=FtnXI>(#A~廪FʈmbRK$6g2k~W'ʆ`=-ڄD⡁Rf3d=/}8J(<VwG$ͷ:`8n ʿN/wny[EP4$i ]#fYH#^}'k37DB8:_-~,LBk<&{[nc͝/LejH}Co<*60Tn= {AFЖۘ߸*x4S $ `kBn3E5ެI|^w_ e;, z %3+83A]ӭvnf,t-jRZdѹ750u'ݞ#0:uxO1#WC4[J=^;0$x5RW>Ak ^$8*ji7FM^|h wx wA`k*?oC2|s$ڛ2wL*12d!"C5_CF䗞wHw&/&k .^{ؤ6w1&%,8{( Lcii1|nÆU}aQmS7t1T!ݵXץ^]v
689 v h/$ټa L3~WĄ ApHl%_\l/c_/Q搌Z/m6N%-Ě87Au1W8op;qM:Wjj#;B~o0Iã`\_yWH#%٫|4\)V-9|RZ:>SLEeJ= 쮿U`qq<o*~& cN"u$ґUv7`xj64ؕ nEF5Q[mm]NJ,To))M7ƕmMh)o%p 2i'7 ~.PH ^II?@K _;^r$OqgYĿ,yΒg@ `k棟;㨐ru!VFmԹ%NeGC)}PrBeϦWH~kVC(<7x7| $sޟƃȦ|ȌJ$Is<8;VOuAIJidtn=!wD6i[ڜ
690 Vb~as.3.ZV{*-_B{#+~? |$x]4Y:5[S8 &yA<=p\nzC+h"j/u8pe0uAcg$WMv/y |ⲴuErЏM Gn)eƻ^qU)٘K4{|ⶹ^"XT-g}7mN~>HJu/Ͼ)tW}ݵP}M2FCVH^LI3ap/{f j[Y2Fg\gQRs9" ~G籽|y^_,DSmC5
691 oo+r2tWM`$[ ە58'-d+L+"8^M? |$${9tz4dSٲ{P${ŽH׵5]QJyzw^y~M({K0x[5WŌ™c]';[_8;`C{FL0:7yU-UGoOHV٣a/׷G?E_rfA`g#nz eB{6uր) b=ikf8>/B/4Tp }%Sk|Q`,V2B|UV|^G1[L6bSVDj~Ǣz$kgk=cgb=jlnGM/obDzqA7֭
692 y.L4Nz!_ȏ>Qxr8f{ [[Id`#T]Ct37el?;c[pmyfwrWNG&5ľs0ۓBm0@oMͅUl؏T#Hm(Hr bī7dNXee&q.[GB04RNfrVF;:˿4_
693 Q|$wJpJφfg;wgeZS{f92q:k o9U婝!+gN" ~@[ıىʲdNBf"1'P&(wǑ n/o$oCIώ#Z9f8H)tVBʱ3ojp9%{:A*Az'|E~>Hg4=^xf2Xd<t&&+ !VXE՜M>et<&dU!F* B<Q MZ?=x0<MTIⅡBR=/2
694 (Izv ͆X?1hFݯnň^Nq՜qOb b2Vg{J^]kQW,"x<?M\TӫXyp~5LPa07yZrCsmy~~$/745}Bl Rk3=r)dʈd}ڞ|fjSSe L?#YA+/aw;$NO'QC{^[IFOPY4^;<Bdw=Ͷ<cR5 !ɭʲ!=B&d~tԾ.n~FG  &־^N0_c?c+%GYXR0FUfW[#bXTك ^0 A3x1e&K5;vp$by!ƫw,;]ǣ?3{(2"l||g"=(O&a²u̥OPDs[=mSvK ݅.,~^G>xr^]ރE *21gk2UQC2${9prxaTURìg">[9jX &2m=Ydn{]FWjDqrcZGimϞi(M,uWg"FLK?/prH;#J%W!-OG t q9΂qZ"IC_w,W&v ܺh:ٺFݧa~%KYD]__}>=.8fm15#t߀*1K"=63jNTxp4;RU3\wm{V~װ;?'G?J_&.SSm̔gP+Xnm=3[lL$lc͚t ,^"0q߫#dm f
695 c "d;0<c1s0^CY xho#չ"<nJ4\^mIH#.WC^v_.X߹n>g;)KUVoS%:k?cN/[%wcEHol֡EcK'F.{t敭oI]kʎfy:'1E {Qf`u`HO
696 r\֯W&8D؞QEݚ6X\4K5r4 זrJSpy6 |$??
697 4}P$dYv]zm0G 3'].qӣx'tMدKOoV~՜w+2^>W $( aMQbEtr3šZy7:@&OwD|EU.Q Ncϫ`PPGɶZ'I|ײCc=a+Ș~V|@}EoxF')X!Uޱ@FnG {9bfx*DgVV~VOkV }6^LH8}@!
698 FN'jqfSB!b<(1hR6C0u({@InrʈٓC!Kt%~}f4<`}5u<U /|Gz)Nkg^:FLXaHK(G!>N)<<M8ӐW~9Gg D yJ7}hSw_z b]8j~Os)#);hA;-Qu=j+v5LD ѩvA=~nc0{JSRG?t h]Tw'#^dF-8đ'G;lB>9 a o3I[:? |$=x{9 O5Ccf*v l2:=y*F73l4!9Ƿ89o|?&0,$"> 쎍:"K*Lh&yeq=9 #^s:ѵ dy<cwBT0x/=]wAؼv.cu],) <hk}?Hc6]wJ*/4{gB\J $~?ff|F%}NdOU/)'5O{RSXEtkwi}`| ̩40NxuoBZE'|Mg,u罒4IkaeG9:% `ͶH09t➝eAG D Te݊(f/gXNS97s[;#dN4YZ8 0dYrAf5xB=֑-ж}'l,W˒;vO9pUÝ.BbvNqLvxM{GeܡO4D[όFF;}_?skLkoLWoIVyD,s:[m|ք㨆Fr0
699 1 ߲ Hot:v-4d| |$sI sHڟ1 -cVvs;t'[YZ]K3Yٲ\z+["q;W0[ٍS~t@ Y:_< OTb]HzGX3UZ*4>W<F"kи]{QCε lqB%e&~|(G \xXq482PY(kCY
700 )ꬃ4E;glm-A^I%˛y0"ٚ^T5'AcxLM 6e2!029c4#&׍jrE74;Rv;^z<?+D~ډ9FV T]KsJH`^*/QG?I.[) UKThX>iWsirq8D<ġ2Y{pN_-0TuR΀Y[!o zpb/N Wv b$eԤz3cxue˗eucHaqB 9!6t9>F(B>WG2!\/`K`$ߌ2.$kG;E>ai{ 7&4S-0*H6ϭ>E$ 4ĖW/c#븺f}{ac%]w3]YYû@[wBr)HB2@qݽז_Ym?`X`mZE
701 x^X&1z
702 vB@$'dW#6ZqMsщv#, oM;R[ExkkAyYLoJ]9lͿG +$"rIc?o7/0eZa 1Usgr?0xƥNI-34_f^fw*2OChέp?„ТA/V/<@-W\sZKUgΆvyr]#^e8h`mԕ,B cOH |Rwpj6}y*Q;eN^j~aŹmЫYv2qԨ=WT}?HH˱זzwbl2QWcaJtrꥹ{ۺ\wn6 Eز}V|t1`}^iLmƮa-YL%ʻG~U\iDVwVp Y|yCdn&gUۄ r_,2Qga*(,Ȑ"Y&{6F XWizCS&ҧG |޸#߻z(l_ΞaSY.V3m%YG׍+<oaxdF,t},AliL!ԣ7q19Un yl7+f}qC^=ӲiCɪ+!j =UxY|"+)}c $=$޲kN5ጌ74۱T~$sI}b}B͚gCGʌ{oϊ.]̬v@^VbOkf2َ-Tɾ&%刴w/6foBrqzO滻EtVLydւDߚFDImU GXs㌅5ͨz=wF*m7Bd |$sIĚioKZ|3Tl 3Tc@rg&3R<}I57XAX663#xx8#"ck^1AWao30%43e֟'/ M*hkw>a{Vyחѓ4GKVoǒk9 Vu 2R y+\AG $r^NS|Ff~[~2Mn~LF
703 D=? wGC |,. >؁ (pZ q49Rl%̴t8GF
704 h YV@3iT^=3R 0yD0:5 ;q#NҔarpkլiimo/Ng
705 S L:pWQ!oG?QM06fF +V
706 f܉ey ƫ\ƲمICSIO1ive5c!aD†PiY7OSa ڳdΜrI[ql^T$3¬fHQM=ֶAe&2lΡPA"#R+<יELXdFd3 s0\Lz4:$0uh)a.z
707 83"p,,^짶ݳGl‰YI*q5jG4w![sm'IVʗBzP
708 gFF"Tx.
709 J̧#Li^KEi'ią̒Dr>&XuK%Gj>m?6Q2TGv377kWY_PB?͗R);@P!uhc< Zʷ6:˧8Sp7 n t ?Qn9noe\M|&l}WDǡ&֞Ǻ/;p7kw3uW& 72qB!ytW}GbuoHU3 S?^h6n{-Cc~LSu_ZtL9)AFaSԌڼ5q6֋4^vc,e;t}_{-m_;_خAC;4v+ȘӀ7F W47
710 o++!f"ulؔ%[jn<""S򴥰lX<&h&1[@mCdMh }t1rKߞ{#$-VnlmdusXf> _ZA鯹]*C,83#U6|~ѳ} FsMzlqGWTPmmmhU~} 5mP_5YAaWtw)Bcg2Qv`KX9WW/$[F?,xu5 paNx
711 ]yg/W&MR'CKI^<]lUs ψ~Jç#sSt]B)^a( 7
712 {95"a!s^xӵnM\:[%`d9LBt.`dG˚iݠAu1x7>_LP[,f ;0ͨE\..] Q[&\cTƂvE^=W+u6C YB(.W|%) a7j~6d+*Ru0OJ4xJZJɧ#FhSG1M77#%MבBla~dn {3_XLw?g7|!q%~@g̓Utu}WW@ ^G xSȌ*pF  \GY*-`s<
713 >[]+%k1sEޟg⽟b-_A&l2_UGMY(ĩ%/|ӥ Mx!<ISHJ}b͑0f )g:6[l*VuLLò_}/'} up"ǷB`-Q*xGi+XN+_xzW<{Դ~P;q2aLJйnI59FΉi2Ta!\vݝg}|rn|@ AB40[H3_{4+wܹPw`rO8ԩ&%$; wZlS+I4R#ɮԦQޭG`2 x_Co~'V띢~5SHa5f+M;mJ{z\0 Q mP2y۶-X0|_kO->|$ڛI`m!$$Ne\RɝA xlR\ʹ=m;a?}AA9vL1U w-|hqzT6 Ms<{KE:l OA4 U/
714 5܉ʖboBXRgk~(9nkƝP rRsLM(FI[ |[o\u*7-Mŗ^Hճb%N)LL750J q~iþʄdY`mT`v/QՒu<29( x,=v`< j"71UX:$kNѭӓ|?!WxMj8V'Y#Bb Am<GI4
715 
716 8 w;wʑj9|Lk"jW?c+sxG.${axI ϯ |$ CUnHo?̂yNZ_T57!]I K5 U)E6O!L6K!,_>_mَh VHKBK\\&lq5wW#lUdfLY~Q2k <LV&)k780D0 W5mO⫹|w-_<d'46 $|jw5]2s_駾ގShHGqYBdٞER{c,|.)B}_pYTLue_ mhjUG3%oX]=Ϋ-uO5ϣvƷoX[?GY(CY\-i!f>U:+#'MBl(g||(H欻c$ ͖<
717 GCFqlFd4$veb@O+6R_W|mxF6L
718 CqR#΂ԯv4 8|>xp9MfB4{gVw4`v2 I?$V?퇤g#UzQ&mMEә+VLQf*Jc"U¼Tͯabeϑa>knѥ) g!ʵo3w}94DW| ||#~qbuQPs{tc wb*C$[Ίlt_%WE¯|M *@8O !'p+έn+ϗ߯i=׺zV_W|>0 |%r_7m{fEp麀7][37K"qw;pXֲvۦfs(ܢY̑ͫ^bJFܲ~q6/|aBp$Ee9I`aThMbǾR/"&d#2im (:SMM5錚KD|VN\pWUP_'Ro UMK'nWx_PHU?LƬ9cvwrR %3'9Yėڨ^^/f2cͳ;tTmꂔx܆ 36m{=*ύg!aC Pn5.;du- /к`^#^u:yo_xS=Fvگ
719 []}DS{3~[4(})#2n4Ј{jtHiGW.'Lu&fw[0Ν buRZEé]HkI#Q5qg}&-0Ь4ߣV{^#H;[$^Po8%oT#xhn#ͱ>`$z|.7q1[TMwY<9Qxfnxnԕ]~p1-o{<% ɷ8~c>E> |%rMݷi<sfM0lPS5v_Q#7<;b.o179TTngy)@Q#pyTn2.pB!q~3^n-SWF8Wx=%l$s#l?TMq<Y|5^<RCI=kniuwd/tDկĶtx;#1"!W\IǗ?3.vܦ3fڙWN}_{+T@ }0?|eS@7c֗avSh7;.]%!p*+ikr TUSO9?\)`"prPYnG z-gUۣf}|.H i;u n怃x`Yio&owm 0dSG r^d)grb[1YI#
720 3έ܉B,V5G.lPe&ԓPU?٢]fE0ݬ#Z9V9$@BK0K
721 y`mQm qfBǸ(]]S)sƺ:q뱱vk'׾ZwI$Hm<Dn8IJьjy~GrqW!j@/ uo7W)֏y;ʏ}I`]> DLm;岭!,j9rYM IBQu>gl'PV:e,8+n_ˢ <xֻ|T'ePu7FX^6
722 :JP>r8m(fGAAH'
723 & oXmB'_o7 !'O#$XxxUbY?OPY(s 3pgXk21o!ƙ%34P#tV#gL^`ueہ f
724 3vUbweu79f`Fgk&#caOnwPacF&šo$vOsnu\I~UFC'(`p׫%Q{|$/*W1KL^|/
725 HVY&y]m#(:+(%mr,3XN*8_]ڂJ
726 YX)01Ua=$\lVԜ]H7SH=S@ْA'iY/|{d %$Q8"s-ud0׋=)dǮc|:-PˠX##횜j| $T샌Ϗ>7?lڳmo3jbʎ`-(T~vV*
727 ofoK.&^Mf[j2Dz𬪏b\6B6҇'#öVEZܺ,ðaٸ[78O&{iBBM8;89 Mr=W'4<VNOM CIFS) ,Ga[IVl}o죄|*7:k{`,beR=*)m|^#k %W`gX$OG {QWKgV0RdW=]䘩A{*߽
728 i0 r bʵb^{,ݝ=zvV @v ~|'$<bT祗{|WfKJ.'ۈ!dyHZޢ3A`jzT1fcLjzLJ[Huqq ТI¶8i;ڒa"27mU{;ʏ %f/nr8);z̮m}Å]~>L c4֙J dVI0๐rՇY];~nKheBȍoDp~T>Bc8 `2 <_1 wK
729 m);w'FxE/^D/ wx&Ҟ/Vy-|*?H,WtePB`V6/ΐ q/Il@[v&=CkǢ`xj]$tQVD]s][ib U2l<X؊Zc[yѯ`C*kYs
730 91'dcҶG˕!5ێJcJ_ڦJ#%e`e)3Jv>;xtwLqF庠 +dEΑ E2Jƌ2P$^ʹe^OG ;< (/˟lg&ldLdv 6AzJT^otVsqruQ!{Va~;QOdx:1}9YjϬbI.UeC?ĺ)sXS5LN#)jAZ n1WMԻk9і ]{wt+# [uڭ³-s'bK5Wch` [j$vwM0QbP"! T.ru#Vuf(vbзz%SGm _^>Z^xO@xYBf2.'&턮Mݪ XTP+/mrTVZ6RLq ;X0Q&>Y܎Pg|{ٳ#vXC5&jN][ \^x}v)2q՝ 7W}),5 ѼF<$[9=(H#
731 a栫7d;v |]Rk} t7X٬]~ie0b[K^#L Ifq>{Kz2\/atW)YI[[&US,imjK~vE6ڣ
732 έmx^̕~_ yRoh=8lk/9[TB.5l,":|ϭ>K]`90S(XҬy1*ku`2" 70؊iR Ks~K'H˗r[GJ zPՌ|AxU*Y<[Y[~euou`',,ie߻$V LY>&{4d8O)cCeQ*N <9in(64N,S!科*J5OFwo_F}Eҧ#nK13=b(gKS=#b7^&Ģ`vѷAV̙ f>ºw;홮z &l"&C$a1r ЀC+Qf[r3>We'uvޡ. [᷿c+ȐJAqGDm<ce`6j>_/;P dZ+D@\DAnm4^hXQ6rF؅_imŠDMҰ텖|WHߑJY^ܬ'rcm;y\z >{GCY,s߄~vP{~?mR߾3AC>ǹ[!jYIH Q'Mβo~5*#W\zr ?ejy!l/*犍*6%h%U!Q2OG %kM}vˇ,p<I)b[eƗeZʎq/
733 u%n
734 l)eDIF8:uZz78qod/5NY .d"I/c5RjE.!N[a?RIC ;x62tKZ1e4;P)pYw}HH?eb-;+(N?31=2v3`FgYpHukb#A::C%;_גNur>SR2nfZɊLۅ{T[EH X4$`Wm˕v֗<O0i>d2uctRߐ]+U0J ;Oh΃Dm0 zZh Z/n@UhgG =әjܳM~fفrE1Zrk~4!mPvB rNkj֑D$i pz|R $3l;#%[kC8AT4 XUO?XJJ{nn** r2{! f2Q
735 *W.m(t^/ixh| Kj׬T4_xȤఆq[#rI+Ii0r\ck=P\58k;қ"{{E:~ql^=^ fajJ߄^wvYY;Ou7au,U LO:M(W
736 Zx+v3 w&;"IN+oo@)B Ul ^JMͮt|3:_y*3RM=oڻX}k.>iOQ4@ȃ`])c2dfݵ 8|Mrf_^6Ĩ9ZcZI88oXa>TK{M#|G۟k lcȇ$xta,=7ni@ vÿ@jr::ٔ3GsJ7%1|w&Nƾ.7.ghqF}AOR;iP2gra;2l՟=A$Cdu}#qw57fvfc' `Kk\6F0Vuq ٍeC{(]Oq$\#RF5ڪ0kXoqǩDž,F8`*`%twNe3@4wp|,n)5"Ce}UA2d`.-}@F4ݣg5nLF_3 _Hn&,{2yK o4cTޚϾ΢tt&<; Hm]K~M
737 MB3hmƫyXdca>M\:K6K^yDNW-O4vVB tuQuw{h;u<VU~q\/iݣ H"WJ@ds֖X: SuÉH؍]Hp%Vȩ"vھ,,«\/7Q\) eCF'#ϭ_޸$^&OWbA}3.&5M`1T}l 4#XNG7)0?7\ڂ&<|H57c.uФJbcy\n`wr.9o y` Ѝsߎ㺎z, ? L|dz2IUcv\MʹP^S`8]|мݗ`<=6p|-n4^N—L6( &w aSw\= UwN}#$62~ oI_rbuOi`Ӧ tlJ'
738 -X*8EWEcc4E}+Ku])uK ͜2-ݘ]%W!# `LNgMd'Im,+plΤA^8?G$wb;fjgk;uY]YVŜV7&0 X kdK #G('(
739 %IWsH9Y)TS숦}(hBuH(ϭ߀޸=,"x1I<BWX
740 &9b^5uԱ d0l\ۙc >o9P2wum4gv% /RsNbXN2v
741 =U=7#v!y[,{U=k9yʊֻ0sof̴\3/"/E vG֝(?8NIQЍL?ୄXa*1x{irw5ALĪʤ 5w8S~UmV// cl8+dK;LbEĎYv?v |kĔ`/h/
742 u3`DJ(s~=/ᛩ)mdJmT3!΍z*cGa֝.Y`5戩=2%Y,,xn<HxжI{-Wwg7uݥi^9UX]C5'?k 6l،6g<P ^G߾nf8]}֗hCwD-krze# G SZDƽv_I!M _Jh<s!ӻ$ d!u0ݬҔmBt%ܺ ZQT ~%dRl7Ѵͦ`TC;M-=ϓ7+Gv7Oa8M_1258720542Fp7L<pN<Ole
743 CompObj sObjInfoo 11.0 ShapesVisio.Drawing.119q՜.+,D՜.+,@ `ht  Grundfos A/S Page-1n DocumentfosProcessDynamic VisioDocumentAcVisioInformation"SummaryInformation(PSDocumentSummaryInformation8Visio (TM) Drawing
744 AcHiahR8 !fffMMM333IyFwͩ|oݡHxUJ:DT5I[1hXT@.
745 /UbW##_b0zGz? L\&B1r&b%U& !oM $d ) P?;H$,Q,
746 & #&J , 5& ?D#//?M?\.? CA 
747 ~,,,'q/%P6$Y6 (}k?l)?"U   U%A3# o >S@#B:_a_ReUUeUeUeUeUeUePONODN`_ReUUeUeUeUeUUeUeUU/b SR%;5OM%>Qiq;RRRRgg Rqh>Qj /A^F' %p3:|bFpT#| |
748 | vi?=Os<34x,,,/RQmeY q]U@QvovL__q____OO_OOTYA`,X@L&/d2?ɖQ3YҨsUΡ̦xΟ@$"Jʼ& ͥ*@d2A??ϟJ[D! f:45ŧ5ŷ5@ 0 0D$#  
749  Q#b ;
750 Chߠ
751 Y ,00JDNrq(NN㊮NN(NN&&uc7D)KXXFNvvK&KD#KD#-D#NHGDB$KzzDKq%iz4
752 }1T\,Eu9fdhT,W'0΢Uܮ5E0 fI$[OmOC%ߑE##HZߪ  E,3Y&4JY&5&6<s9FaBaj+h8 8?&!3"DE=T;ܯ?w?@??8&t,'5UR^LY  Y7akKt//BJhuizpsĝa.1DTcAcpvOpM KKuhdX(G:iX IT[EEh.D#E,ah-50zG#zpvb
753 aHGmc/QP K{\Hp_ hd? pA?%?7?I?[;<t5j!
754 OO*FQ///F/K]SEn%cO@OOlE$g\Ey[EO_!_3_E_W_i_{_____VB506,HM.`e^MIa,>PbQaƒ2q? a%oXIoQfdoooSEX_O-OF6EDpE66Oҟm2Hg;pbӏ_
755 ,X7R[,<WbӤ69sc Rb"a2T^<C="ACoor<G5C+=Oaﲶ2TIR`zI6;]ї@<ұwr1r / Ma&3@MZ)gQ#zƎҨVB;Z`Яܯ@u[/lsx0aq&Iy$6ḢUxzb?btb}m8~{FwƿK $ub{+ߴPXEU 5GPH]!\$j-OOOO>asuYq3~Q?WTf<6S$F_x<?5z$P !1w7dR D6c 6^5O0'^8ExEE@($'n/jR-VfuOOdo{o_0 }G9kO5oZk__((]Tq?Q$6H/~ ? qBHE?d+|=P<#qjb(Ogoyo_:_L_^_'/ӸooS;ao-W,'H=xWWCN/r?=*C8Qҵ2%N7MH:R<Wb`lmXO#o|O2u!` EܕsD"Iw_#_k_}X:Loo$6HZԁ-CC U)2b@bGqb\n¿Կڏ.@"ҡnπϒϤ϶"4FXj|v !;rWbGV -?QcuW -?Qcuv2 *<N!sGC
756 .@c Yk} //1/C/U/g/y/y"#Р///G.bLb/ ??-???Q?c?u????????OO*O<ONO`OrOOOOOOOO$ͩ_)_;_M1rn_________o"o4oGoYoko}oooooooo 1CUg)%&{p?b=~Eb -?QcuKԏ
757 .@RdvଟП⟏%'((bdk\wsb\nȯگ"5GYk}ſ׿ 1CUJqZ)砂}Ϗϡj0Aq"4@FXj|ߎ߲*<N`r)*|+MkbjbQcu*<N`r&8yy,-_qqb<{ub/"/4/F/X/j/|//////// ??1?C?U?g?y????yy.{??>@N;OMO_OqOOOOOOOos __/_A_S_e_w_______q=8\1 oqN=b;bh1oU/0Mo_oqo:-b@bG3bDbפooooojm yt 2DV rb ;0} 1CxUgd3<Ib娏8i2Џȡ1 L-?Qcuϟ
758 .@RdvЯ⯀dXw7:g4="\nT9/2 ſ׿ 1CUgϴsϬ*<N`r߄ߖߨ U56 H@RdvA$6HZl~<dFw+&C{Orq_##Yh(v'
759 Rdv_H ////A/S/e/w///d
760 o:1/(7CHx/?!?}n|E?W?i?{???/A? ???`T/L?Od'Am[YE
761 +A GkOyJUO@AQOOEY3qO贁Nk*_(Bv__ooE1o'2q7Mo_oqor6Uj(DbH{7_V03WX@SO>a@HkDvH74jooږ YDo~OOOODVhzxC(>aRM7?S?\.?pPA,6{٣*٢bbbl~ 86HZl~ÿƏ؏ B Vdvπqџ YD$6HZl~ P Э!#5GYj2225Gҿ,>Pq ϘϳϏX!"0BXj>aSzUFDfP h>$/T 6D
762 UUF~@x<?F
763 BP(?43P? J+1:{
764 bj/b::I!H? ?^  0$1!`Document,daW aY rS a[ ,pS oo lS ,sO cPn!ri*U"ek"oO to !W,b] s cY ]fw ow"ae X!!fK rQ ^!iK n(#L!e} sN",jK !ee !!sK"i(!bO !1!-,S xY 6E4g",IG0OY 90Hi2|e^ {5kU o??)!)!2)%$`S F.| <`!.kbs{kWbsFzFzkF ABB
765 HOZB K?$6߈kdz:<
766 Drag thuesapWonodwipeK.a0r)Utd upU:N:b~߿\.??a߿,h??4DH D
767   =hj8>T ]]9 AUF~? ?F\.?QR6 
768 ijYA >HTIA zz
769 Illu}`l?LJTTlvu
770 Vb3%<& <!J
771 |>bX#S?P6 "rl*5"7b%HX"rbk"%TX"*31=&S"rU5 W@S"և3145 `?Copy0igTtk(c)k20@3kM0c0oKs0f21r0#Aa0i0n.k Al>@ 8sBBe@e0vT@d6@3 /`V0s_SFB6@cTm_!#5B0`S"7- iC0r5K9M3 7?:6" b4$J<&P%&?Lh7]L@ls4>Uh 3 @)W120D,@S"JSqSF?< %3"M{8Q o.o3=`oe5ekaoqcEA3o(oc@lHzs%„'&/@l/B95#<& QOuhSqouq?@brA
772 L`@dV#%tdTAQeE9 G]pv@OS?l lA]
773 ]hhC"Q6 @b#e7b 3lqX(b\U‰Y`!S"g?**2VQ<! -S"MR6HScu~5⢯Ms'2cy51+` 0@@heҿ+RT Mll~2!!IJ2Jl15P>  PB`1s03 B`QS"1~5AAWPP`iGDu*JȲ5ABaQ2` RTBocTBQ$H6!e
774 |ȿH~5A"
775 MJk?GZG#iC %:&BpXB/A/@bb 5BeYFuc-gZc5ߜֈ{8O&@PGR_ Q);M_>m w =_H'+Zu׾ _@tBeQBZ&Fi?w/#<][n?
776 $\]ZaĬ@OD?q`SB}F<@lPD[ op?+$J% UFDfP h>$/T 6D
777 UUF~@x<?F
778 BP(?43P? J+1:{
779 bj/b::I!H? ?  0$`pProcesS ,funO tuiM nW taS UkW Bm"iO ,UlM wO hm ra X!#,dm l!,pK,jM i] e*K ,m"sM"i"d%Ab[ z!!T#-Sc uxW 6$gm"uI0OW 90#2$|e^ d55kUo9?K?B)!)!2)%$` /| <`!kbs{kbs>F4Fzk%>F >A2
780 OBu D(2OVhz~ Drag thuesapWonodwipe+.cs*Wfuci: oObl-=l)cka!dh-1
781 H D  # =ih#4>T#3 A5AUF~? ?F\.?P6 Tuv` ??uJ
782 bkrr r.AšJYMJU5 !LK@#I;!@$5 `?CopyrigTt (c])r 20~ 3r uMj ch osb Ifp"a!rd !ap ib n r AUl h(s"e eh v d/`Vj s_SFBcTm!#5N~"06!5' #%0 5K)M6G# G'? *lW btrr&/Lh=L@l>61Uhh7PY!"  *#"JT3FFFr\F
783 BM)(aOAO#"A5N_IQEEFR_Ov[R52O;EBrA
784 RS#")(le
785 @j 7heGoj@8=ook8too q(b5@MCW?0v0v H"SFAr@K\/SqMRB_<NhCFi{z,%)t@@r uGj5q5{#5"C#"mZon+EBT MKK,"!"2JK\3;%Vq>#  @!2`a!sp s.2`A#"2,%q1BXVqajGDu*5AଚbA"` R"o͒c"4ڑAEDɏ,%A"MJa?)E[4C/G## %(p&"p"!0~Rb  %BevmHY bg|4G5nX)(S&@Vq2b~߿\.??a߿,h??4D_ Q);M_>m w =_Hu+fs k}bk_J?3U}FClQ#RL!M?
786 .X]{~a<@"D,Dlfr`~&@BT[ĥpUFDf h-TYYU?~@x<?F
787 ?BP(?h P?k " <ou]ofu2/u w` C&}nect&r`D
788 e-?{
789 H
790  ^   -}|5 p`I`V?}`xa833ސ]3σ3u 33?, ?Gxpx^& This coUnetrWaumtUcl#yrebtwe h *hp3is.HDD @# =hZ#<T$#3 2 U@bX?\.uP6
791 u
792 `u bA@Wu  ):/*P mu` W?ht~SuZaJU }@-?Dt7'2"sA-tBk'2"u( 2rq?@[I ?$%ۿ?
793 @h[r&Z  "#8*AL2- br>#@L'} V6lX-1u. Bj2u2Z2j2#u9r#ULH/MB#AD5 60`Vis_SE.cTm!#20AD%`;Copy<0igTt ?D1f@M)@c<0o+@ofdBUArX@Aad@iV@n3@ f@Al@ \HsBe*+@e<0v@d3@J@=#x#
794 A G{?9#n"E!0144 M70#AHB
795 53_lj#PSV6U8l>(UhnE qJ$&9"(Fn_g5Fe#pheo'T !! Jcxo)vR2'"U75a%O3W_74b5-6R `F2 5au\@|Q:0b)`R@As)@E T@xd@Di ei=G]U6Tg'2"qV!DHAn 6SWaHw+* O`EW
796 )FtGl'#[(7F
797 \)e?fYDHlPU !"#t4b (6@Tn@ Z.}C-L@7"AU !"#$t4b (6@Tn@ Z+/}C-D@B7"A%&t4b (6@Tn@ \_/
798 A-%$37X@$X.IR@XD/IR@X/CRH<(H<(H<(XE\XL0 REXY0 RE|Xf0 R(~i"S4gf8B!Bl?4'/"Gl=./?<X/dP5Dtos0t4( U`, LSFDTyB uh$T UFb (6@FTn@Fx<?8F
799 BP(?J_P ?a/<e @?\s nu ` """u ) ( @L&d2?r-(\.,(s.sU!&/ o!! &f O1O1 ` Fl wcartm0p2
800 v?285\H?Z?l9C n0e0tB r?2?4eT>A>A uk 4
801
802 A
803 A#HA\D K DKDuKD}AK}AHAKAHAKAH1K5DAKAH
804 AKAHAK
805 AHKDAKAHAKED>AGCP>Auu -au%a}Ac.aA/aA0
806 q113qA1$qƑA21q
807 A4>q5KqAc6XqA7eq>A/Aie}uc\Ap1}cKEZeAc}AU 5yIExH?@^@@~?@֘"?ߒ?QbIaC Kqf"*<"b}Acbz*b7Bt0 
808 qQ"OXaц\M
809  V~2pXq|>כbXܛ ?smhퟨe+T "\!! 3!<n~Dߟqq"\AU%Sid01t`1pѠ
810 g4Tfx## (0X\CiX䯣qDu3a q mI
811 qTFŋ'9 WˣqσIdϙ!B &8@OS?!&!&l8DA>qU` AEmOqWA1
812 WQo勎pib!RU
813 璅×!$b!0sU_?mr7A d $6HZlDjF4@ɏۍAcb(:L^pʟݯ$6H
814 ơ2˯3//W/i/%7N`R=/?οL^ OOϦSOeOϛO4_N`r߄ߖ&8J?no"F?oj|!t!1;?:YUUCs0?R:k}HFSFB< l1Ɇl1 5 5%7If35t?v2dj8e2dkQ/// //-"/&/z/6(E&cop
815 g0l r$l1{/
816 <{SFP50?B?R5H1:Q??_??OO%O7O mOO_gɏ40SOO϶"SD)"UET?_o%o7o)Tol߇ooogoykeZqÿN`BTfxBÃ56);M͟˟Q,7I[mI[mǯٯEWiM]/ϿϞp;MW?i?ϟ?MUO?M\r߄ߨߺߜ?:_8J\n%_7_NNMSNчN!&m75Ae5%C"ObA!`!5 @@L&d2?@@ пdeQ!fAPmQ!u`u%S`sQy82 @8p
817 /@)Q"pTArw%@z3DqlrrrpSsv~15A]&A2D1LQQR.C]-T:%WApMSsxr tNL p5Azsqr Qhpfd2rqǿ?@IQϕ?GOTpJTMQP/JMUw/&ɔ5Ay8/@Ned5Ns.D")5<H2 ?FeA!#B!IuM_B_4BI_4d.A_LTAoP>oPobotoooouoooo"4wPvxb~EqϰϿsrqB0BTfxFGOяMQ!*<N`r̟ޟ&I>P%Anȯگ>@ !-#dՒ!{@ !QAA,QIdEE׹ZGvV<h3@_MM?UHMUS5BB`H!! % &!"`р5l1ZU- h|3 SNEZ6|>5PbX5b#̖m#F|5+*$5B,!,!MR !$BnD///B"O45Bn3?5SiE@e1*cpΰg ??0?#4MRKQ0 5UWEni̸?YOhdKLDjzUMQ8Z@_ %5A E\OOAd@-.'_9XR_ZӺAOT_Al_~_S ozQzk4HAI(988@tV@OS?,$#o8yn4k1 n I HHN!$"QMYxOlu%ZwBSze_P#>{',$q^eI~t?F5-Ugv:*s.`@RdvwE yѸՖyѻ//'/9/K/]/o///֯?////ίG?n{OOoOOO_O _A__e_NUUϽ_r_T՟e*8c?HZl??TOO ݃Rk?}228<AhfT>oPobotooooooo(:L^p$6HZO1<1!ԏ:)69-?` (6?@8|`R`rksA'`0f0f*ϜD ţ%&е-\?Q"\T#o2q ?/L&k?KAu;BY$F0a(,5)O!XT#0e.M#'$&դ)W ;  9xk1kw4 ??=?g5w4`?OO?Bj¨|ؕر&
818 _!3&R 76Z!IuJ<6L>!k"OO0%8cdk_#5`soo߂C+`+]cop&l*r*]&]l&nPa
819 [foxoo߬=pջ~5*ӿo>- ctZb%/<ďVɌ Ϭ.T"# -9?Q:
820 }:C5I[m 2 9u
821 w?aEB!r;%%bac@xH@@L&d2?@wnk˿W q0@ qu` `MuB `O!mꜽ٭@("G@) rp9%VB @z3PVhp%ũƕϱϺνquC%%S/e 1i%գ!4)#l lrq!ՍWVD갖!8/' tN9zs %Ӣ ќoǶѴ2r"?@IV5?+3快pt 23Ev&?a/Dsѓru<oㇵ3#$}qW07??Q?U7#%r-辵B!~B!4"4FXj|DjF4@Ͽ4FbaB!&'&8J\_q⃘&5"Ә&ߥܑba 2DVh?
822 "4u_qRdvOt ~A*`_N`sd1|QI]w rN9?@$4<@B?@H?@`^ݿde(u@`up7(:q 2` (6?@fLHFń?NؑŹboonqevoA/Q!v "r\xXvxw@/R/d/v/\w>l////د(?:9#f@-dW?i?{?1szVu??????0 O2MMROdOJA~OOOOOOOrfq9_ TqV_z_______wpZW hPcg٧2oDoVohozlonqeDCU<%I|q\yƁtג}>syy#5GY$7k}=6ŏ׏ ]CUgy&2M>՟矆> 1CUgyYP̬ S-}p`'),)|v>5*m??@~?@u%.?Q N15\"r$1C0Gե-jycߞ >59|>%bX7:F#[mvH+$"!!!$3Bn {///"34S) #5S&ared lOibc0b1ymAgP/??#4M 0p'0pCSi?GOqoM:D 8
823 B 5AyeE'OOAd$-0_'XyREK?Z_%^BQ@xu>:DIힴ88V@OS?$#\o8>)3> I JN$QMx&u'wQ z?e_4#._'$՛q?e~Xt?F5̡ȯm p:D=M|rZzaA ?@L?@Vjտń½
824 <b#(=Tn@:Ż@ȟS ς Z!߷EWiݙV~W_߰߀S '18J`/;O?z0>PWfxK@ou( zHUZU !"#U$%&,U-./0U1234567t4b (6@TnC@ TaJKC-TmBU7
825 A@XJORH<(EX7K R\_i1_PJ@?`iK.PDDaiDK.PU1( UO"D&aUAUNj )h"T}
826 +U- \ |ɉ&Q-
827 -H*=(XiwPE!Q//,/fGArial UncodeMSj (  R$fSymbol$67fWingds*7
828 fEArial"z@D/ R$fGSwimunj (  R$fGPMingLUj (  R$fGMS PGothiqcj (  R$fGDotum"j (  R$fGSylaeqnj (  R$fGEstrangelWo dsaj (  R$fGVrindqaj (  R$fGShrutqij (  R$fGM_anglj (  R$fGTunga"j (  R$fGSendyqaj (  R$fGRavi"j (  R$fGDhenu"j (  R$fGLath#j (  R$fGawutmij (  R$fGCordia Neqwj (  R$fGMS Farsiwj ( _ R$fGulim"j (  R$fETimes NwRoanz@D$CLLBCL.BCM%B$C%M5BCZM9B4CM=BCMCBDCN9B̨CLN;BTCNMBܧCN:BCO:BCHO9B<CO9BԂCO;B4CO8BăC-P9BCfP8BCP:BdCPCBDCQ>B$CYQ8BCQGBGuideTheDocPage-1"Gestur Fom aDocumentViso 90Flow NrmaVi}so 0Co}nectrViso 01Viso 02Viso 03Viso 10Vi}so 1Viso 12Viso 13Viso 20Viso 21Vi}so 2Viso 23Viso 50Viso 51Viso 52Viso 53Viso 70Viso 80Flow MarkeFlow GrayBasicCostDurationResour cRow_1visVerionProces(Dynamic onetrTextPoWsiinDocument.2Proces.4,Dynamic onetr.6Document.7Document.8.Dynamic onetr10.Dynamic onUetr1Proces.9.Dynamic onetr12.Dynamic onetr13Document.14.Dynamic onetr15883|_SE3d_SG3L_SG3DKS%G3$k TG3T@%TE3dk)TG3kBTG3kaTG3kzTG3kTG3kTG3$kTG3DkTG3dkTG3kUG3k*UG3kCUG3k\UG3kuUG3$kUG3DkUG3dkUG3kUG3kUG3k VG3k$VG3 k=V!G3$ k^VG3ļ_zVE3ܼ_VE3\@VE3d kVG3 kVG3_VE3 kVG3 _VG3DLW)G3<K>W G3@^WE3,@bWE3<@fWE34@jWE3,@nWE3ĴlrWG3dlWG3TbfW.G3DlWG3$lWG3jlX/G3klDX/G3lsXG3klX/G3klX/G3mX!G3lll Y/G
829  !"#$%&'()*+,-./01234567UfU
830 U UUUt4b (6@TnC@ O0^RC-tpB*7
831 A%t4 dpB_^
832 A-@7AJ@X^NR@dX^6RH<(H<(JE XJ` REXW` RUPT/_a C{N
833 } w"4FX,h(j5@@(;6#\y
834 K_,eBdYiUX P Q|/A<k/w
835 FC_D\9oy^i0uR$_iP1S+!Lp) 'vKhaitciQwP2ͬ <YT?g _*'"Ddidu`H%ei`.g a6Oh+'0tS `ht Grundfos A/SGrundfos A/SMicrosoft Visio@Cr:GtRAg2 EMFlRlx@VISIODrawingLQAgBh ??d(@Q(Bh@Q׏=>>EFFMNN#%%[dbfqnfqnV][^^^mnn7;:݀UVVfgg=>>݆033=>>￿oooHOM=>>ݚfqn7;:*,,7;:OWUs|ϳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳNOO .//î۳ɌbzKתת߻߻߻߻߻߻߻߻{b{b=>>MUSfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnlqkqrifqnfqnfqnfqnfqnfqnfqnfqnfqnfqnZca=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳ=>>ݳEFF),+7;:7;:7;:7;:7;:7;:7;:7;:7;:D@<YJ=UH<HC<7;:7;:7;:7;:7;:7;:7;:7;:7;:033&'&翿rwFxwFaٯ͔nɎeΗrϙtўzdzLj]dzɌcݷ͕oٯῨLj]ת͕oӢўzîɌc̹Ɍcݷˑi۳ῨɌcпզϙuզϙuῨɌcпɌc۳UVV=>>=>>=>>Ɍcݷwxx=>>=>>=>>iTxOӸEFF*,,fqnfqnOWUӢўz~~~V][mxunqkU7rL),+ݳ\ebd>r&''hroݎ{a<TPMMNN~~~fqnݺbkiooofgg\ebݍ033=>>566033MUS^^^fqns|fqn=BA7;:=BAfqnyݚfqnV][7;:7;:V][fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^$  ~~~ńWӢҟ|wFܿwFɎeLj]ϙuLj]ϙu~xxMyU}q397fqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnqrifqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnqrifqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqn@GE^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:@>:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:;=:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:7;:"%$fgga׿{ڱwFzKҟ|ńXˑjį׿Lj]ϙuMNN#%%7;:7;:7;:Lj]7;:7;:7;:^^^ϙu=>>033ݳOWU1)#zO\eb݀qM˹Zcaݺuj[~~~~~~ݎ{//-EFFEFF^^^fqnhro566=>>566hroݓ7;:=>>=>>=BA^^^fqnݠݺȚ݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^fqn݀^^^397fqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqnfqn@GE^^^connector PagesMasters(`ht_PID_LINKBASE_VPID_ALTERNATENAMESAOh+'0 (4
836 P \ h tIndholdTorben HrupCW$Qmp<N>Xhw 18
837 3{*t,Wn\pi$??Hl h>g2DEe:ck|G,yr1͗GL]@7vQVjU-/m-FmcAc#[V(&bݮcyψ\iC?ir//@|ÍxyH IG}#5o#(8Q%o YIߌ)$~3#iR5,WJ<EiS/T͓YNYDL)#i9m!<ڨZ-ÆhV?yfu 9؊c#5 rłrK(񩔩#/U apIf * G@`DQ͢`v^3w32!_[_^70UlkBHQ7}~5LHV3Brr
838 s ?$[Cd>3}3 P`qуF6lY=e{`f\<nHLFǐlXǗ)@l,°rUjr&өi'6oOo\e,i< .%t# _ʴ<Oؤfaj^e?Nohތ]+$x tT/3i]rU9S>fG=}@^Z95еwtNP}uw;dSJ_j5qpf2FѶ^HRݍH/J>!\^s]~^
839 ~T->ɶAmU8b
840 ොBqQJ8GM BB&қMVwT쌆<RlCz57.ל]y<ZzjAܸa[pM{}=WKˑ#cPM
841 7u=6Ef< MW5Tz} Y]]K/M1b=lTЪzo
842 b<n)Ty3N `q@,D}#* _W;`ȗ"ݱ}\c]Քbľc@l[qmߎG(zּ|k<ZGpݭ/9ۮƗW J7ot1~R#bTa
843 LJJw;Ŕqq?!lfmٯcI}bzӘ{95FٴM?r>x+,Ev%a ~Az@~m37Oko>gB0j;#+=b{d] kep]lt2
844 7T aL&<\z !A.6I*sJo(_\b+9uo|r6|;aрZuuX
845 97:ˆ 8Z>SD4el%Ws1;u{nv1CVIQԤ1 d2 z^/:??cxrvd\YWtz&nJ&uN\?}f kk~64=[ C0e|'`9ff#.ojir)¾IW*4(57&VO8[wdU?>1Zd[l#'_M}.j &i.zqW=1#T!ox|S9cS>r=5޿ѿ}QS$Cm.U{IG浢WmHa'zܙIhisOCNQJU1W ֪wh!-0ei;aU zd5KxqfwoJl^`fX0u]r%ynhd*$ȷMD.+$|Y<cՋT5p8QȑO@1VSe`})Q5rJ }g
846 Pe
847 u ' dk44#78>H#>Mr1mu~8(WBucX>H#^%б=sw$18⽳}$G |$HvIxK{G |$4 ܇=*eFIENDB`Dd 0
848 
849 # A2Q~HDZja[F-}`!%~HDZja[F wk1xYqLTG曷 oH΅"aI޶z[[=Қz1ibN{Wrjbr g-A9KkR XKδ/ڽyo+²J{ͼߛ||YD1?Cd.8VVkk*#~E?ρh/LM 2otMf; l=.^o!C_
850 Y<fЇgF; <Qg6<
851 ["`0Kfa`Cn$ ><id1}wBEN3<~\ 1Pɰob=rg~<–;d q;+2/l|e`K<Ù, ZF5cQGDs60.qF{wtw` (>SJ:;85sS4*y+8鱋Kח;E~9NNܧD]y(3+dNrwwqFۂ0=} n7qX͛ Yeh<s2"0fuVڡ
852 " r0j$< ʳ!M4|U}l
853 y6VX-/
854 ee;<";@.n/)!"l$<I>4|2-;)Qi!"R, ?frLC'V-v OV,{REE,Q\ 20SaaH¨wOPF4,F<TudU4γ~A |9=bMgA>;੶멦qzu1[]{yz<
855 N2.u'jd~Ҳ`oȞUg.Ǭ8vZ qj-G+ƢՏanBgxnNpQnWGM*ۋC:آh3u"[Fsdf
856 {9 ]H|=LjoR F J[yy# TOP?N)<G])]j:5S%-XO%@lqu̟(Eϋ{I!LCs@#1$A irM)ȑ!W|9e˗74>c9+Y<²;,Sv&X|MO3[1:ʙZiCUGVuB1I ~W'wd~MmZψ1#:;!&m]]V^.V+jEVX4:AIq!?OQjP㰮W]*q(OjYOO*-JJ^"!k%ݤz$1YK$#[ENJ(M)]L #(W||'-@)1_֊\y@="[VLE&"U.aLA2U_ Zc:xl2nGXǎ=o1oQ3y~1?c#o1C4L }o:vyм,/{R8p:+ּy(S؉j6\Bjٳ^ŘuW{cɺt:L˘V{\Orn0J7&X]K;x{#`uuc4}QwNifrrēO
857 
858 RL^|g*_D\tڅ⺝->vb`^1'%{yf~n*]vev?3M"Ju>uŘZ,`S3U5S{%x\m1URgRc7W3OuS]WZjϫc|ǟUJMq+D䏩%Qs>Oe,§>5䡪#[F)s 6/nVVZRu#,}N폓.]:' .?1:Fscɳ <{DyK http://validator.w3.org/yK 2http://validator.w3.org/1TableSummaryInformation(DocumentSummaryInformation8PCompObj$j Nielsen Normal.dotTorben Hrup Nielsen6Microsoft Word 9.0@m@#@l)6<@<&
859  FMicrosoft Word Document
860 MSWordDocWord.Document.89q   Grundfoso|
861 " >b_Toc185235941>\_Toc185235940>V_Toc185235939>P_Toc185235938>J_Toc185235937>D_Toc185235936>>_Toc185235935>8_Toc185235934>2_Toc185235933>,_Toc185235932>&_Toc185235931> _Toc185235930>_Toc185235929>_Toc185235928>_Toc185235927>_Toc185235926>_Toc185235925>_Toc185235972>_Toc185235971>$
862 i8`8 NormalCJ_HaJmHsHtH L@L Heading 1$dh<@&5CJKH \aJ H@H Heading 2$dh<@& 5\]aJB@B Heading 3$<@& 5>*\aJ<A@< Default Paragraph Font2O2 Nummerliste 
863 & FDOD Nummerliste2
864 & F/6^/`6*O՜.+,D՜.+,< hp   Grundfoso|
865 " Indhold Title 8@ _PID_HLINKSAzW}http://validator.w3.org/>p_Toc185235986>j_Toc185235985>d_Toc185235984>^_Toc185235983>X_Toc185235982>R_Toc185235981>L_Toc185235980>F_Toc185235979>@_Toc185235978>:_Toc185235977>4_Toc185235976>._Toc185235975>(_Toc185235974>"_Toc185235973>_Toc185235972>_Toc185235971>_Toc185235970>
866 _Toc185235969>_Toc185235968>_Toc185235967>_Toc185235966>_Toc185235965>_Toc185235964>_Toc185235963>_Toc185235962>_Toc185235961>_Toc185235960>_Toc185235959>_Toc185235958>_Toc185235957>_Toc185235956>_Toc185235955>_Toc185235954>_Toc185235953>_Toc185235952>_Toc185235951>_Toc185235950>_Toc185235949>_Toc185235948>_Toc185235947>_Toc185235946>z_Toc185235945>t_Toc185235944>n_Toc185235943>h_Toc185235942* Page No.$a$B>@"B Title$<@&a$5CJ0KH\aJ @O2@ Hanging Indent$^`$$OB$ BottomCJ` TOC 1&`& TOC 2
867 ^&`& TOC 3
868 ^&`& TOC 4
869 ^&`& TOC 5
870 ^&`& TOC 6
871 ^&`& TOC 7
872 ^&`& TOC 8
873 ^&`& TOC 9
874 ^.U`. Hyperlink >*B*ph,@, Header  z&, @, Footer z&&)@& Page Number@B`"@ Body Text "x*$1$KHPJ^JtHJo2J Table Contents # $*$1$OJPJQJtH00 iOVo??*~;)y q 
875 g
876
877  i  Y E .|hi^q!z(y{|EF,- Q!R!S!K"L"U"V"##m$n$L%M%%%((()+,C-D-b-c-}-.j//_2`2z220414X4+6,6777.8/8?8888889 9(9K9L9T9w9x999999_:b:::: ;
878 ;;X;Y;d;;;;"<#<7<<<<^=_=j=====>>>?>O>>>>>>??%?V?W?e??????@V@W@d@@@@@@@mAnAoA~AoBrBBBBBBBxCyCCYDZDiDEEEEhEkEEEEFF'FLFMFVFFFFGG GqGrGsGGGH3H4H:HzH{H|HHzI{IIIIcJmJ}J~JJJJJJ KK%K-K.K^K|KL^McMMMnN*O5OQOO
879 PPPQQ&R8RR!T3TwTT0UJUV VVWWtXYYMZ_ZZZ.[Z[[ \\e\z\\\D]V]Z^n^^_`!`awaab_b`bnbvbbbbbbbbbccc$c=c>cHcYcZc[ceccccccdd d3d4d]ddddddd(e)eVeeeeee*fYfZfffffgg8g\g]gggghlhmhhhhhiiAiiiiiijJjKjsjjj k:k;kJkxkykkkkkk,lxllllUm\mninOoVooopppqCsDsOsQs_sssuux&xxxmy{yzz{{||~~+$$p؆s^ۉېI}n{V`QR01۠+,;<klmnoAB`aiʬˬ Nͭbcسٳb@#STnM&'5μϼȽ:r7
880 tu+E %E~)*E )F8NObN !jk\|}~Z Y,-;?@Q7H8*xy@op[fTmnZ gh0D )
881 >Jv5hijkz{Z"  &'()*+VW|~%-100000000000000000000000000000000000000000000000000000000000000000000|00000
882 0
883 000000000 0 0 0000000L"0L"0L"0L"0L"0L"0L"0L"0L"0L"0L"0"0("0("0("0(0(0(0(0"0c-"0c-"0c-0c-0c-00`20z20z20`20140140140140`2070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070700|H0|H0|H0|H0|H0|H0|H0|H0|H0|H0|H0|H0|H0|H0|H0|H0|H0|H0|H00.K"0^K"0^K0.K"0^M0.K"0M"0M0.K "0*O "05O*O "0*O "0O*O "0*O "0P*O "0*O "0Q*O "0*O "0&R*O"0*O "0*O "0!T*O "0*O "0wT*O "0*O "00U*O "0*O "0V*O "0 *O "0V*O"0*O"0*O "0
884 *O "0Y*O "0 *O "0MZ*O "0 *O "0Z*O "0 *O "0.[*O"0*O "0*O "0 \*O "0*O "0e\*O "0*O "0\*O "0*O "0D]*O "0*O "0Z^*O "0*O "0^*O "0*O "0`*O "0`*O "0`*O "0`*O "0`*O"0*O0.K#0`b#0`b0`b#0`b#0`b0`b#0`b#0`b0`b#0`b#0`b0`b#0`b#0`b0`b#0`b#0`b0`b0`b0.K0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c#0[c#0[c0[c0[c0.K"0k"0k"0k00l0l0l0l0l0l0l0l0l0l0l0l0p0p0p0l0Ds(0Ds0Qs(0Ds0s(0Ds0u(0Ds0x(0Ds0x(0Ds0my(0Ds0z(0Ds0{(0Ds0|(0Ds0~(0Ds0(0Ds0(0Ds0(0Ds0000000000(0Ds0ۉ(0Ds0(0Ds0(0Ds0(0Ds0ې0ې0ې0ې(0Ds000(0Ds0}(0Ds0n(0Ds0V(0Ds000000000000000000000000000000a0a0a 0a 0 a 0 a 0 a 0a0a0a0a0a0a00ٳ0ٳ0ٳ0ٳ0ٳ0ٳ0ٳ0(0000000000000000000000000000000000000000000000000000000 0 0 0 0000000000000 0 0 00000000000000000000(00~0~ 0~ 0~ 0~ 0~ 0~0~0~0~0~0~0~0~0~0~0~0~0~0~0000000000000000000000000p0p 0p "0[[ "0[[ "0[[ "0[[0[ 0p "0"0 "0"0 "0"0 "0 "0 "0 "0 "0"0 "0"0 "0 0p "000"00 "000 "00"00 "000"00 "000 "00 "00 "000"00 "00000 0p "0  "0  "0  "0  "0  "0J  "0J  "0J  "0J  "0  "0  "0J  "0J 00000000000000000@0@0@ 0
885 000000000
886 0,,RRRUui^8
887 H  Ra>WZ\k%0 y  C1<_>7@BWDFIrKMQSM^_fggh]kKnUq+b~m~ 0 /  ?Hdfgi$.JLMOo5QSTVv;Njlmo9<=?_~9<=?_k$'(*J\x{|~589;[h#&')IWsvwy    > O k n o q
888 
889 
890 
891 1
892 E
893 a
894 d
895 e
896 g
897
898
899
900
901
902
903
904
905    3 G c f g i     ' 7 S V W Y y  # ? B C E e s  (+,.NZvyz|9Fbefh?Gcfgi  .<X[\^~   /Oknoq!AXtwxz"%&(HWsvwyD-^-`-B\^!Ib0 X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%̕::X29<ALOU!8@z( 
906 B
907 
908   B
909 S  ?o0#pT> _Toc185235925 _Toc185235926 _Toc185235927 _Toc185235928 _Toc185235929 _Toc185235930 _Toc185235931 _Toc185235932 _Toc185235933 _Toc185235934 _Toc185235935 _Toc185235936 _Toc185235937 _Toc185235938 _Toc185235939 _Toc185235940 _Toc185235941 _Toc185235942 _Toc185235943 _Toc185235944 _Toc185235945 _Toc185235946 _Toc185235947 _Toc185235948 _Toc185235949 _Toc185235950 _Toc185235951 _Toc185235952 _Toc185235953 _Toc185235954 _Toc185235955 _Toc185235956 _Toc185235957 _Toc185235958 _Toc185235959 _Toc185235960 _Toc185235961 _Toc185235962 _Toc185235963 _Toc185235964 _Toc185235965 _Toc185235966 _Toc185235967 _Toc185235968 _Toc185235969 _Toc185235970 _Toc185235971 _Toc185235972 _Toc185235973 _Toc185235974 _Toc185235975 _Toc185235976 _Toc185235977 _Toc185235978 _Toc185235979 _Toc185235980 _Toc185235981 _Toc185235982 _Toc185235983 _Toc185235984 _Toc185235985 _Toc185235986}L"(d-a2z2147}H/K^K^MM*Oab[ckllpDsQssuxxmyz{|~ۉې}nVbٳ~q[0 l1
910  !"#$%&'()*+,-./0123456789:;<=T"(|-y22W47H]K{KbMM4OmbdckllpNs^ssu%xxzyz{|~)#z_h"6eCy1t~n}%&+,6ad!Z`zDI Y a S!Y!#%#?#I#b#e###$$ $ $I$U$!%%%&%,%@%J%& & &&&&'"'l'r'()$)')<)F)))0*7***I+O+++++,,H,O,~,, --,-A-----Y.\.].d.........////////001%1A1M11111"2%2[2]222222222223%3B3K3M3X3g3q33334[4a45#57768>8W8]8^8b8m8o8p8s88899 9'9>9E9L9S9k9r9x99999999J:M::::::;
911 ;;K;R;Y;c;d;i;;;;;;;<<#<6<<<<<<<Q=U=_=i===/>2>4>;>F>N>>>>>
912 ???$?E?L?W?d??????????@M@T@W@c@@@@@@@@A#A,AvA}AfBnBBBBBBBlCwCyCCCC,D/DZDhDnDwD EEYE\EEEFFF&F@FGFFFFFFF GGGGhGoGzGGGGHH4H9HkHxHHHdIiIjIxIIIIIIIIJVJ]JJJJJJJJJJK%K)KLKTKsK{KKKKKL LALCLDLGLVL^LLLLLMM M'MMNN NNNNNNN
913 O OOO$O(O5O9O:ONOnOsOwO~OOO2P8PyP~PPPPPQ Q QQUQ]QQQQQQQRRRRR$R&R*R+R5RGRLRNRVRRRRRSSdSkSSSSSSS!T%TwT{T|TTTTTU5UGUiU~UUUUUV V VV/V8V[VdVVVWW*W5WWWXXYY3Y=YAY]YYYZ(Z.ZFZRZ\ZiZlZZZZZZZ3[;[w[z[[[[[[[[[[\ \ \\\2\<\Y\d\j\w\\\\\\\\\\\\\]]#]0]I]S]o]s]]]]]]]^#^$^0^H^O^_^k^^^^^^^_________`````*`.`]`b`````8a;aWa\a]auawa|aaabb1b;bHbMbobubbbccd d ddddBdTddddd)e1e2e6eeeeeffgg%g3gkggggggggggghh hOhkhvhyhzhhhhhhhh$i'i(i@iiiiiiiiiiiijjjjj1j8j<j@jKjSjTjWjXjrjjjjjjjj k?kIk}kkkkkkkkkkkkAlDlElJleljllllmvm|mnn<oBoCoIoOoToooooIpMpxppqqZqcqqqrrs)s5sAsQs]sssssssssss uufupuuuuu3v9vvvvvvvvvw wawiwwwwwwwwx xxx$xMx\xxxxxyy*y3y7yEymyxyyyyyyyyyzzzzzzB{H{{{{{{{||}}}}}}}}}}~~~~~~~~9?FMʀԀހ'7=SYɁׁ!HOimƃ".4HO\`imuyЄӄ 7>gq̆ֆ'0BLNTʇ؇;Ap+<jnlj׉ۉ)2`dgr!%/Y]+5P[x|"ĎY_֏ޏ%ې #2fl &'-œʓۓݓޓ$*fix~@K^hjmnsnyPSV]֘ܘ !%_ghnRXPSZ`af&.1729:@AJS\ȟ՟Π٠۠ 7=ϡס  @OVdejrwyۣ_p !)04x
914 mst{1? &49N[X`߯ KRbikp5;hoӲڲ~ʶϷַT_bmʹ'4>A̼ϼǽǾ;+ho#+BGty_ehru*">C$0C*Dryz (6ez{:LOa O\k9BNXYb/5*Z^_kltuyz| Y_ek#%-3Tb|#$.@Ncjz _esxHPQVz &(,06=K^f1>IOTXBH3:bi%/*nu`j';DY^al9>?G #UXKQ"3FjozEIV\]d}RZ7=bgzSaouvy%)*/"2+BT}~#1}DF+-  P!S!J"L"T"V"##l$n$K%M%%%(((())++,,B-d-|-}-..i/j///^2a2y2z222/414W4X4*6,67777-8/8>8?8~888888889 9'9(9J9L9S9T9v9x9999999^:_:a:b:::::;
915 ;;;W;Y;c;d;;;;;!<#<6<7<<<<<]=_=i=j=====<>?>N>O>>>>>>>>>??$?%?U?W?d?e???????@@U@W@c@d@@@@@@@@@lAoA}A~A\BrBBBBBBBBBwCyCCCXDZDhDiDEEEEgEhEjEkEEEEEFF&F'FKFMFUFVFFFFFGGG GpGsGGGGH2H4H9H:HjHtHxH}HHHyI{IIIIIbJcJlJmJ|J~JJJJJJJJJ K KKK$K%K,K/K]K^K{K|KLL]M^MbMcMMMMMmNnN)O*O4O5OPOQOOOO
916 PPPPPQQQQ%R&R7R8RRR T!T2T3TvTwTTT/U0U4UJUVV V VVVWWWWsXtXYYYYLZMZQZ_ZZZZZ-[.[2[Z[[[\ \\\d\e\i\z\\\\\C]D]H]V]Y^Z^^^n^^^^_`` `!`aavawaaabb^babmbnbubvbbbbbbbbbbbcccc#c$c<c>cGcHcXc[cdcecccccccccddd d2d4d<d]ddddddddd'e)eUeVeeeeeeef*fXfZfbffffffggg8g[g]geggggghkhmhuhhhhhhii#iAiiiiiiijjIjKjrjsjjjj k9k;kIkJkwkyk|kkkkkk+l,lwlxlllllllTmUm[m\mnnhninNoOoUoVoooooppppqqBsDsNsQs^s_sssssuuuuxx%x&xxxxxlymyzy{yzzzz{{{{||||~~~~*+#$#$op׆؆rs]^ډۉڐېHI |}mnz{UV_`PR/1ڠ۠*,:<jp@bhiɬˬ
917 MṊͭac׳ٳab?@"#RT_nLM%'45ͼϼǽȽ9:qr67
918 su+DE %DE}~(E ()EF~78MORbMN
919 !ikn[\{~YZ XY+-:;>@GQ67 GH78)*wy?@nqZ[efSTlnYZ fh/0CD () =>IJuv45gly{YZ!"  %+,UX]hl}~$%,13333333333333333333333333333333333}L"V"d-}-`2z2|HHmJ|J%K^K \\`bnb>cecllQs_sai~pk{+,UX]hl}~,1Torben Hrup NielsenbC:\Documents and Settings\20495\Application Data\Microsoft\Word\AutoRecovery save of Document1.asdTorben Hrup Nielsen!G:\trunk\docs\Samlet\Samlet 1.docTorben Hrup Nielsen!G:\trunk\docs\Samlet\Samlet 1.docTorben Hrup Nielsen!G:\trunk\docs\Samlet\Samlet 1.docTorben Hrup Nielsen!G:\trunk\docs\Samlet\Samlet 1.docTorben Hrup Nielsen!G:\trunk\docs\Samlet\Samlet 1.docTorben Hrup NielsenaC:\Documents and Settings\20495\Application Data\Microsoft\Word\AutoRecovery save of Samlet 1.asdTorben Hrup Nielsen!G:\trunk\docs\Samlet\Samlet 1.docC Pޞ_H}uP dWwZ 6R;G IĐ ,h"v,,.4U)7p.!`I4#ELIĐm*/]p`R@ a`eO7a b3pjW6rs.8OJ QJ CJ^J
920 aJl..p. .@ . ..)))()()()...h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o( Vh^`VOJQJo( ^`OJQJo(o pp^p`OJ QJ o( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( ^`OJQJo(o PP^P`OJ QJ o( Vh^`VOJQJo( ^`OJQJo(o pp^p`OJ QJ o( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( ^`OJQJo(o PP^P`OJ QJ o(h^h`o()^`o()8^8`o()^`o(()^`o(()p^p`o(() ^ `o(.@ ^@ `o(. ^ `o(.hh^h`. ^`OJQJo(o pp^p`OJ QJ o( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( ^`OJQJo(o PP^P`OJ QJ o( Th^T`OJQJo( ^`OJQJo(o pp^p`OJ QJ o( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( ^`OJQJo(o PP^P`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(eh^e`o(.e5^e`o(.0^`0o(..^`o(... ((^(`o( .... ^`o( ..... H H ^H `o( ......  ` ^ ``o(....... h
921 h
922 ^h
923 `o(........h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L. Th^T`OJQJo( ^`OJQJo(o pp^p`OJ QJ o( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( ^`OJQJo(o PP^P`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o( Vh^`VOJQJo( ^`OJQJo(o pp^p`OJ QJ o( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( ^`OJQJo(o PP^P`OJ QJ o(h^`.h^`.hpLp^p`L.h@ @ ^@ `.h^`.hL^`L.h^`.h^`.hPLP^P`L.^`.^`.pL^p`L.@ ^@ `.^`.L^`L.^`.^`.PL^P`L. Vh^`VOJQJo( ^`OJQJo(o pp^p`OJ QJ o( @ @ ^@ `OJQJo( ^`OJQJo(o ^`OJ QJ o( ^`OJQJo( ^`OJQJo(o PP^P`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJ QJ o(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJ QJ o(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJ QJ o(U)7U)73puP _p`EL;G ,h" a,.!`IC m*/]6rseO7awZ WW8Num2WW8Num4         1R;        1R;                 q                          q                 1R;                 1R;                 888889 9(9K9L9T9w9x9999_:b:::: ;
924 ;;X;Y;d;;;;"<#<7<<<<^=_=j=====>>>>>>>>??%?V?W?e??????@V@W@d@@@@@@@mAnAoBrBBBBBBBxCyCCYDZDiDEEhEkEEEEFF'FLFMFVFFFFGG GqGrGGH3H4H:HzH{H.Knbvbbbbbbbbbccc$c=c>cHcYcZccccccdd d3d4d]ddddddd(e)eVeeeeee*fYfZfffffgg8g\g]gggghlhmhhhhhiiAiiiiiijJjKjsjjj k:k;kJkxkykkkkj1@PsPs,1PsPs0@Unknown G: Times New Roman5Symbol3& : Arial?DejaVu Sans] LucidasansTimes New Roman?5 z Courier NewO& k9?Lucida Sans Unicode5& z!TahomaiLiberation SerifTimes New Roman;Wingdings_ StarSymbolArial Unicode MS"qhcfcfff.&o!x20d|
925 h 2QIndholdTorben Hrup NielsenTorben Hrup Nielsen

Properties

Name Value
svn:mime-type application/octet-stream

  ViewVC Help
Powered by ViewVC 1.1.20