[r259]: / trunk / Library / POUs / FB_TestSuite / AssertEquals / svnobj  Maximize  Restore  History

Download this file

335 lines (335 with data), 36.9 kB

Gx_l
!0…jüoCpc¡íQŸÈÜNSystem.StringL{f8a58466-d7f6-439f-bbb8-d4600e41d099}ImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocumentL{f3878285-8e4f-490b-bb1b-9acbb7eb04db}TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}	Id
longTagText
HIF GVL_CfUnit.IgnoreCurrentTest THEN    RETURN;END_IFNAnyComparator(AnyValueOne := Expected, 4			AnyValueTwo := Actual);Ì(* First check whether the input data are any of the standard data types that are supported by TcUnit.Ô   In this case call the standard Assert-methods for that data. But before doing that we need to make sureJ   that both the expected and actual:B   - Have both the same data typeB   - Both have the same data size*)¨IF NOT AnyComparator.DataTypesNotEquals AND NOT AnyComparator.DataSizeNotEquals THEN    (* BOOL *)ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_BOOL THEN®		MEMCPY(destAddr := ADR(boolExpected), srcAddr := Expected.pValue, n := SIZEOF(BOOL));²        MEMCPY(destAddr := ADR(boolActual), srcAddr := Actual.pValue, n := SIZEOF(BOOL));¼        AssertEquals_BOOL(Expected := boolExpected, Actual := boolActual, Message := Message);        RETURN;     END_IF!    (* BYTE *)"ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_BYTE THEN#º        MEMCPY(destAddr := ADR(byteExpected), srcAddr := Expected.pValue, n := SIZEOF(BYTE));$²        MEMCPY(destAddr := ADR(byteActual), srcAddr := Actual.pValue, n := SIZEOF(BYTE));%¼        AssertEquals_BYTE(Expected := byteExpected, Actual := byteActual, Message := Message);&    (* DATE *)'ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_DATE THEN(º        MEMCPY(destAddr := ADR(dateExpected), srcAddr := Expected.pValue, n := SIZEOF(DATE));)²        MEMCPY(destAddr := ADR(dateActual), srcAddr := Actual.pValue, n := SIZEOF(DATE));*¼        AssertEquals_DATE(Expected := dateExpected, Actual := dateActual, Message := Message);+.    (* DATE_AND_TIME *),¬    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_DATEANDTIME THEN-Ú        MEMCPY(destAddr := ADR(dateAndTimeExpected), srcAddr := Expected.pValue, n := SIZEOF(DATE_AND_TIME));.Ò        MEMCPY(destAddr := ADR(dateAndTimeActual), srcAddr := Actual.pValue, n := SIZEOF(DATE_AND_TIME));/ê        AssertEquals_DATE_AND_TIME(Expected := dateAndTimeExpected, Actual := dateAndTimeActual, Message := Message);0    (* DINT *)1ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_DINT THEN2º        MEMCPY(destAddr := ADR(dintExpected), srcAddr := Expected.pValue, n := SIZEOF(DINT));3²        MEMCPY(destAddr := ADR(dintActual), srcAddr := Actual.pValue, n := SIZEOF(DINT));4¼        AssertEquals_DINT(Expected := dintExpected, Actual := dintActual, Message := Message);5    (* DWORD *)6     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_DWORD THEN7¾        MEMCPY(destAddr := ADR(dwordExpected), srcAddr := Expected.pValue, n := SIZEOF(DWORD));8¶        MEMCPY(destAddr := ADR(dwordActual), srcAddr := Actual.pValue, n := SIZEOF(DWORD));9        AssertEquals_DWORD(Expected := dwordExpected, Actual := dwordActual, Message := Message);:    (* INT *);œ    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_INT THEN<¶        MEMCPY(destAddr := ADR(intExpected), srcAddr := Expected.pValue, n := SIZEOF(INT));=®        MEMCPY(destAddr := ADR(intActual), srcAddr := Actual.pValue, n := SIZEOF(INT));>¶        AssertEquals_INT(Expected := intExpected, Actual := intActual, Message := Message);?    (* LINT *)@ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_LINT THENAº        MEMCPY(destAddr := ADR(lintExpected), srcAddr := Expected.pValue, n := SIZEOF(LINT));B²        MEMCPY(destAddr := ADR(lintActual), srcAddr := Actual.pValue, n := SIZEOF(LINT));C¼        AssertEquals_LINT(Expected := lintExpected, Actual := lintActual, Message := Message);D    (* LREAL *)E     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_LREAL THENF¾        MEMCPY(destAddr := ADR(lrealExpected), srcAddr := Expected.pValue, n := SIZEOF(LREAL));G¶        MEMCPY(destAddr := ADR(lrealActual), srcAddr := Actual.pValue, n := SIZEOF(LREAL));HÞ        AssertEquals_LREAL(Expected := lrealExpected, Actual := lrealActual, Delta := 0.0, Message := Message);I    (* LTIME *)J     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_LTIME THENK¾        MEMCPY(destAddr := ADR(ltimeExpected), srcAddr := Expected.pValue, n := SIZEOF(LTIME));L¶        MEMCPY(destAddr := ADR(ltimeActual), srcAddr := Actual.pValue, n := SIZEOF(LTIME));M        AssertEquals_LTIME(Expected := ltimeExpected, Actual := ltimeActual, Message := Message);N    (* LWORD *)O     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_LWORD THENP¾        MEMCPY(destAddr := ADR(lwordExpected), srcAddr := Expected.pValue, n := SIZEOF(LWORD));Q¶        MEMCPY(destAddr := ADR(lwordActual), srcAddr := Actual.pValue, n := SIZEOF(LWORD));R        AssertEquals_LWORD(Expected := lwordExpected, Actual := lwordActual, Message := Message);S    (* REAL *)Tž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_REAL THENUº        MEMCPY(destAddr := ADR(realExpected), srcAddr := Expected.pValue, n := SIZEOF(REAL));V²        MEMCPY(destAddr := ADR(realActual), srcAddr := Actual.pValue, n := SIZEOF(REAL));WØ        AssertEquals_REAL(Expected := realExpected, Actual := realActual, Delta := 0.0, Message := Message);X    (* SINT *)Yž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_SINT THENZº        MEMCPY(destAddr := ADR(sintExpected), srcAddr := Expected.pValue, n := SIZEOF(SINT));[²        MEMCPY(destAddr := ADR(sintActual), srcAddr := Actual.pValue, n := SIZEOF(SINT));\¼        AssertEquals_SINT(Expected := sintExpected, Actual := sintActual, Message := Message);]     (* STRING *)^¢    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_STRING THEN_â        MEMCPY(destAddr := ADR(stringExpected), srcAddr := Expected.pValue, n := DINT_TO_UDINT(Expected.diSize));`Ö        MEMCPY(destAddr := ADR(stringActual), srcAddr := Actual.pValue, n := DINT_TO_UDINT(Actual.diSize));aÈ        AssertEquals_STRING(Expected := stringExpected, Actual := stringActual, Message := Message);b    (* TIME *)cž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_TIME THENdº        MEMCPY(destAddr := ADR(timeExpected), srcAddr := Expected.pValue, n := SIZEOF(TIME));e²        MEMCPY(destAddr := ADR(timeActual), srcAddr := Actual.pValue, n := SIZEOF(TIME));f¼        AssertEquals_TIME(Expected := timeExpected, Actual := timeActual, Message := Message);g*    (* TIME_OF_DAY *)h¨    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_TIMEOFDAY THENiÒ        MEMCPY(destAddr := ADR(timeOfDayExpected), srcAddr := Expected.pValue, n := SIZEOF(TIME_OF_DAY));jÊ        MEMCPY(destAddr := ADR(timeOfDayActual), srcAddr := Actual.pValue, n := SIZEOF(TIME_OF_DAY));kÞ        AssertEquals_TIME_OF_DAY(Expected := timeOfDayExpected, Actual := timeOfDayActual, Message := Message);l    (* UDINT *)m     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_UDINT THENn¾        MEMCPY(destAddr := ADR(udintExpected), srcAddr := Expected.pValue, n := SIZEOF(UDINT));o¶        MEMCPY(destAddr := ADR(udintActual), srcAddr := Actual.pValue, n := SIZEOF(UDINT));p        AssertEquals_UDINT(Expected := udintExpected, Actual := udintActual, Message := Message);q    (* UINT *)rž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_UINT THENsº        MEMCPY(destAddr := ADR(uintExpected), srcAddr := Expected.pValue, n := SIZEOF(UINT));t²        MEMCPY(destAddr := ADR(uintActual), srcAddr := Actual.pValue, n := SIZEOF(UINT));u¼        AssertEquals_UINT(Expected := uintExpected, Actual := uintActual, Message := Message);v    (* ULINT *)w     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_ULINT THENx¾        MEMCPY(destAddr := ADR(ulintExpected), srcAddr := Expected.pValue, n := SIZEOF(ULINT));y¶        MEMCPY(destAddr := ADR(ulintActual), srcAddr := Actual.pValue, n := SIZEOF(ULINT));z        AssertEquals_ULINT(Expected := ulintExpected, Actual := ulintActual, Message := Message);{    (* USINT *)|     IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_USINT THEN}¾        MEMCPY(destAddr := ADR(usintExpected), srcAddr := Expected.pValue, n := SIZEOF(USINT));~¶        MEMCPY(destAddr := ADR(usintActual), srcAddr := Actual.pValue, n := SIZEOF(USINT));        AssertEquals_USINT(Expected := usintExpected, Actual := usintActual, Message := Message);€    (* WORD *)ž    IF UDINT_TO_INT(Expected.TypeClass) = IBaseLibrary.TypeClass.TYPE_WORD THEN‚º        MEMCPY(destAddr := ADR(wordExpected), srcAddr := Expected.pValue, n := SIZEOF(WORD));ƒ²        MEMCPY(destAddr := ADR(wordActual), srcAddr := Actual.pValue, n := SIZEOF(WORD));„¼        AssertEquals_WORD(Expected := wordExpected, Actual := wordActual, Message := Message);…è(* If we've come to this row, it means that the data input is not any of the standard primitive data types, and thus†H   we need to do special handling *)‡¾TestInstancePath := AddTestNameToInstancePath(TestInstancePath := FINDTestSuiteInstancePath());ˆPIF AnyComparator.DataTypesNotEquals THEN‰â    ExpectedDataString := CONCAT(STR1 := '(Type class = ', STR2 := F_AnyTypeClassToString((Expected.TypeClass)));Š”    ExpectedDataString := CONCAT(STR1 := ExpectedDataString, STR2 := ')');‹Ö    ActualDataString := CONCAT(STR1 := '(Type class = ', STR2 := F_AnyTypeClassToString(Actual.TypeClass));ŒŒ    ActualDataString := CONCAT(STR1 := ActualDataString, STR2 := ')');TELSIF AnyComparator.DataSizeNotEquals THENŽÄ    ExpectedDataString := CONCAT(STR1 := 'Data size = ', STR2 := DINT_TO_STRING(Expected.diSize));¼    ActualDataString := CONCAT(STR1 := 'Data size = ', STR2 := DINT_TO_STRING(Actual.diSize));ZELSIF AnyComparator.DataContentNotEquals THEN‘ü    FOR Count := 0 TO MIN(Expected.diSize-1, 38) BY 1 DO // One byte will equal two characters (example: 255 = 0xff, 1 = 0x01)’€        ExpectedDataString := CONCAT(STR1 := ExpectedDataString,“Ì                                                  STR2 := BYTE_TO_HEXSTR(in := Expected.pValue[Count],”Î                                                                                       iPrecision := 2,•Ô                                                                                       bLoCase := FALSE));–    END_FOR—–    ExpectedDataString := CONCAT(STR1 := '0x', STR2 := ExpectedDataString);˜ø    FOR Count := 0 TO MIN(Actual.diSize-1, 38) BY 1 DO // One byte will equal two characters (example: 255 = 0xff, 1 = 0x01)™x        ActualDataString := CONCAT(STR1 := ActualDataString,šÄ                                                STR2 := BYTE_TO_HEXSTR(in := Actual.pValue[Count],›Ê                                                                                     iPrecision := 2,œÐ                                                                                     bLoCase := FALSE));Ž    ActualDataString := CONCAT(STR1 := '0x', STR2 := ActualDataString);žæIF (AnyComparator.DataTypesNotEquals OR AnyComparator.DataSizeNotEquals OR AnyComparator.DataContentNotEquals) THENŸh    AssertResults.ReportResult(Expected := Expected, `                               Actual := Actual,¡d                               Message := Message,¢ˆ                               TestInstancePath := TestInstancePath,£†                               AlreadyReported => AlreadyReported);¤–IF NOT AlreadyReported AND (AnyComparator.DataTypesNotEquals OR AnyComparator.DataSizeNotEquals OR AnyComparator.DataContentNotEquals) THEN¥(    SetTestFailed();¦–    AssertMessageFormatter.LogAssertFailure(Expected := ExpectedDataString,§Ž                                            Actual := ActualDataString,¨~                                            Message := Message,©¤                                            TestInstancePath := TestInstancePath);ªInterface«L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}¬Ì// | Asserts that two objects (of any type) are equal. If they are not, an assertion error is created.­Ò// | For REAL and LREAL it s recommended to use the AssertEquals_REAL or AssertEquals_LREAL respectively ®¸// | as these give the possibility to specify a delta between the expected and actual value.¯//°// Parameters:±D//     | Expected   Expected value²<//     | Actual   Actual value³„//     | Message   The identifying message for the assertion error´(// Positive example:µ4// .. code-block:: codesys¶//     VAR·0//         a : INT := 5;¸0//         b : INT := 5;¹//     END_VARº>//     TEST('Test_ANY_Equals');»D//     AssertEquals(Expected := a,¼@//                  Actual := b,½`//                  Message := 'Values differ');¾.//     TEST_FINISHED();¿&// Failing example:À2//         b : UINT := 5;ÁP//     TEST('Test_ANY_Differ_DataType');Â4METHOD PUBLIC AssertEqualsÃVAR_INPUTÄJ    Expected : ANY; // Expected valueÅp    Actual : ANY; // The value to check against expectedÆš    Message : T_MaxString; // The identifying message for the assertion errorÇEND_VARÈVARÉ"    Count : DINT;ÊH    ExpectedDataString : STRING(80);ËD    ActualDataString : STRING(80);ÌF    TestInstancePath : T_MaxString;Í6    AlreadyReported : BOOL;ÎJ    AnyComparator : FB_AnyComparator;Ï0    boolExpected : BOOL;Ð,    boolActual : BOOL;Ñ0    byteExpected : BYTE;Ò,    byteActual : BYTE;Ó0    dateExpected : DATE;Ô,    dateActual : DATE;ÕP    dateAndTimeExpected : DATE_AND_TIME;ÖL    dateAndTimeActual : DATE_AND_TIME;×0    dintExpected : DINT;Ø,    dintActual : DINT;Ù4    dwordExpected : DWORD;Ú0    dwordActual : DWORD;Û,    intExpected : INT;Ü(    intActual : INT;Ý0    lintExpected : LINT;Þ,    lintActual : LINT;ß4    lrealExpected : LREAL;à0    lrealActual : LREAL;á4    ltimeExpected : LTIME;â0    ltimeActual : LTIME;ã4    lwordExpected : LWORD;ä0    lwordActual : LWORD;å0    realExpected : REAL;æ,    realActual : REAL;ç0    sintExpected : SINT;è,    sintActual : SINT;éB    stringExpected : T_MaxString;ê>    stringActual : T_MaxString;ë0    timeExpected : TIME;ì,    timeActual : TIME;íH    timeOfDayExpected : TIME_OF_DAY;îD    timeOfDayActual : TIME_OF_DAY;ï4    udintExpected : UDINT;ð0    udintActual : UDINT;ñ0    uintExpected : UINT;ò,    uintActual : UINT;ó4    ulintExpected : ULINT;ô0    ulintActual : ULINT;õ4    usintExpected : USINT;ö0    usintActual : USINT;÷0    wordExpected : WORD;ø,    wordActual : WORD;ÐÐÐEêÐÐ	
­ÚÐ-
ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­(ÚÐ-ÐÐ	
­	ÚÐ-ÐÐ	
­
ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­
ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­)ÚÐ-ÐÐ	
­*ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ- ÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ-!ÐÐ	
­ÚÐ-"ÐÐ	
­ÚÐ-#ÐÐ	
­ÚÐ-$ÐÐ	
­ÚÐ-%ÐÐ	
­ÚÐ-ÐÐ	
­ ÚÐ- ÐÐ	
­!ÚÐ-ÐÐ	
­"ÚÐ-&ÐÐ	
­#ÚÐ-'ÐÐ	
­$ÚÐ-(ÐÐ	
­%ÚÐ-)ÐÐ	
­&ÚÐ-*ÐÐ	
­'ÚÐ-ÐÐ	
­(ÚÐ- ÐÐ	
­)ÚÐ-ÐÐ	
­*ÚÐ-+ÐÐ	
­+ÚÐ-,ÐÐ	
­,ÚÐ--ÐÐ	
­-ÚÐ-.ÐÐ	
­.ÚÐ-/ÐÐ	
­/ÚÐ-ÐÐ	
­0ÚÐ- ÐÐ	
­1ÚÐ-ÐÐ	
­2ÚÐ-0ÐÐ	
­3ÚÐ-1ÐÐ	
­4ÚÐ-2ÐÐ	
­5ÚÐ-3ÐÐ	
­6ÚÐ-4ÐÐ	
­7ÚÐ-ÐÐ	
­8ÚÐ- ÐÐ	
­9ÚÐ-ÐÐ	
­:ÚÐ-5ÐÐ	
­;ÚÐ-6ÐÐ	
­<ÚÐ-7ÐÐ	
­=ÚÐ-8ÐÐ	
­>ÚÐ-9ÐÐ	
­?ÚÐ-ÐÐ	
­@ÚÐ- ÐÐ	
­AÚÐ-ÐÐ	
­BÚÐ-:ÐÐ	
­CÚÐ-;ÐÐ	
­DÚÐ-<ÐÐ	
­EÚÐ-=ÐÐ	
­FÚÐ->ÐÐ	
­GÚÐ-ÐÐ	
­HÚÐ- ÐÐ	
­IÚÐ-ÐÐ	
­JÚÐ-?ÐÐ	
­KÚÐ-@ÐÐ	
­LÚÐ-AÐÐ	
­MÚÐ-BÐÐ	
­NÚÐ-CÐÐ	
­OÚÐ-ÐÐ	
­PÚÐ- ÐÐ	
­QÚÐ-ÐÐ	
­RÚÐ-DÐÐ	
­SÚÐ-EÐÐ	
­TÚÐ-FÐÐ	
­UÚÐ-GÐÐ	
­VÚÐ-HÐÐ	
­WÚÐ-ÐÐ	
­XÚÐ- ÐÐ	
­YÚÐ-ÐÐ	
­ZÚÐ-IÐÐ	
­[ÚÐ-JÐÐ	
­\ÚÐ-KÐÐ	
­]ÚÐ-LÐÐ	
­^ÚÐ-MÐÐ	
­_ÚÐ-ÐÐ	
­`ÚÐ- ÐÐ	
­aÚÐ-ÐÐ	
­bÚÐ-NÐÐ	
­cÚÐ-OÐÐ	
­dÚÐ-PÐÐ	
­eÚÐ-QÐÐ	
­fÚÐ-RÐÐ	
­gÚÐ-ÐÐ	
­hÚÐ- ÐÐ	
­iÚÐ-ÐÐ	
­jÚÐ-SÐÐ	
­kÚÐ-TÐÐ	
­lÚÐ-UÐÐ	
­mÚÐ-VÐÐ	
­nÚÐ-WÐÐ	
­oÚÐ-ÐÐ	
­pÚÐ- ÐÐ	
­qÚÐ-ÐÐ	
­rÚÐ-XÐÐ	
­sÚÐ-YÐÐ	
­tÚÐ-ZÐÐ	
­uÚÐ-[ÐÐ	
­vÚÐ-\ÐÐ	
­wÚÐ-ÐÐ	
­xÚÐ- ÐÐ	
­yÚÐ-ÐÐ	
­zÚÐ-]ÐÐ	
­{ÚÐ-^ÐÐ	
­|ÚÐ-_ÐÐ	
­}ÚÐ-`ÐÐ	
­~ÚÐ-aÐÐ	
­ÚÐ-ÐÐ	
­€ÚÐ- ÐÐ	
­ÚÐ-ÐÐ	
­‚ÚÐ-bÐÐ	
­ƒÚÐ-cÐÐ	
­„ÚÐ-dÐÐ	
­…ÚÐ-eÐÐ	
­†ÚÐ-fÐÐ	
­‡ÚÐ-ÐÐ	
­ˆÚÐ- ÐÐ	
­‰ÚÐ-ÐÐ	
­ŠÚÐ-gÐÐ	
­‹ÚÐ-hÐÐ	
­ŒÚÐ-iÐÐ	
­ÚÐ-jÐÐ	
­ŽÚÐ-kÐÐ	
­ÚÐ-ÐÐ	
­ÚÐ- ÐÐ	
­‘ÚÐ-ÐÐ	
­’ÚÐ-lÐÐ	
­“ÚÐ-mÐÐ	
­”ÚÐ-nÐÐ	
­•ÚÐ-oÐÐ	
­–ÚÐ-pÐÐ	
­—ÚÐ-ÐÐ	
­˜ÚÐ- ÐÐ	
­™ÚÐ-ÐÐ	
­šÚÐ-qÐÐ	
­›ÚÐ-rÐÐ	
­œÚÐ-sÐÐ	
­ÚÐ-tÐÐ	
­žÚÐ-uÐÐ	
­ŸÚÐ-ÐÐ	
­ ÚÐ- ÐÐ	
­¡ÚÐ-ÐÐ	
­¢ÚÐ-vÐÐ	
­£ÚÐ-wÐÐ	
­¤ÚÐ-xÐÐ	
­¥ÚÐ-yÐÐ	
­¦ÚÐ-zÐÐ	
­§ÚÐ-ÐÐ	
­¨ÚÐ- ÐÐ	
­©ÚÐ-ÐÐ	
­ªÚÐ-{ÐÐ	
­«ÚÐ-|ÐÐ	
­¬ÚÐ-}ÐÐ	
­­ÚÐ-~ÐÐ	
­®ÚÐ-ÐÐ	
­¯ÚÐ-ÐÐ	
­°ÚÐ- ÐÐ	
­±ÚÐ-ÐÐ	
­²ÚÐ-€ÐÐ	
­³ÚÐ-ÐÐ	
­´ÚÐ-‚ÐÐ	
­µÚÐ-ƒÐÐ	
­¶ÚÐ-„ÐÐ	
­·ÚÐ-ÐÐ	
­¸ÚÐ- ÐÐ	
­¹ÚÐ-ÐÐ	
­ºÚÐ-ÐÐ	
­»ÚÐ-ÐÐ	
­¼ÚÐ-…ÐÐ	
­½ÚÐ-†ÐÐ	
­¾ÚÐ-‡ÐÐ	
­¿ÚÐ-ÐÐ	
­ÀÚÐ-ˆÐÐ	
­ÁÚÐ-‰ÐÐ	
­ÂÚÐ-ŠÐÐ	
­ÃÚÐ-‹ÐÐ	
­ÄÚÐ-ŒÐÐ	
­ÅÚÐ-ÐÐ	
­ÆÚÐ-ŽÐÐ	
­ÇÚÐ-ŠÐÐ	
­ÈÚÐ-ÐÐ	
­ÉÚÐ-ŒÐÐ	
­ÊÚÐ-ÐÐ	
­ËÚÐ-‘ÐÐ	
­ÌÚÐ-’ÐÐ	
­ÍÚÐ-“ÐÐ	
­ÎÚÐ-”ÐÐ	
­ÏÚÐ-•ÐÐ	
­ÐÚÐ-–ÐÐ	
­ÑÚÐ-—ÐÐ	
­ÒÚÐ-ÐÐ	
­ÓÚÐ-˜ÐÐ	
­ÔÚÐ-™ÐÐ	
­ÕÚÐ-šÐÐ	
­ÖÚÐ-›ÐÐ	
­×ÚÐ-œÐÐ	
­ØÚÐ-–ÐÐ	
­ÙÚÐ-ÐÐ	
­ÚÚÐ-ÐÐ	
­ÛÚÐ-ÐÐ	
­ÜÚÐ-žÐÐ	
­ÝÚÐ-ŸÐÐ	
­ÞÚÐ- ÐÐ	
­ßÚÐ-¡ÐÐ	
­àÚÐ-¢ÐÐ	
­áÚÐ-£ÐÐ	
­âÚÐ-ÐÐ	
­ãÚÐ-ÐÐ	
­äÚÐ-¤ÐÐ	
­åÚÐ-¥ÐÐ	
­æÚÐ-ÐÐ	
­çÚÐ-¦ÐÐ	
­èÚÐ-§ÐÐ	
­éÚÐ-¨ÐÐ	
­êÚÐ-©ÐÐ	
­ÚÐ-Ъ«ÐE`ÐÐ	
­=ÚÐ-¬ÐÐ	
­>ÚÐ-­ÐÐ	
­?ÚÐ-®ÐÐ	
­@ÚÐ-¯ÐÐ	
­AÚÐ-°ÐÐ	
­BÚÐ-±ÐÐ	
­CÚÐ-²ÐÐ	
­DÚÐ-³ÐÐ	
­EÚÐ-¯ÐÐ	
­FÚÐ-´ÐÐ	
­GÚÐ-¯ÐÐ	
­HÚÐ-µÐÐ	
­IÚÐ-¯ÐÐ	
­JÚÐ-¶ÐÐ	
­KÚÐ-·ÐÐ	
­LÚÐ-¸ÐÐ	
­MÚÐ-¹ÐÐ	
­NÚÐ-¯ÐÐ	
­OÚÐ-ºÐÐ	
­PÚÐ-»ÐÐ	
­QÚÐ-¼ÐÐ	
­RÚÐ-½ÐÐ	
­SÚÐ-¾ÐÐ	
­TÚÐ-¯ÐÐ	
­UÚÐ-¿ÐÐ	
­VÚÐ-¯ÐÐ	
­WÚÐ-µÐÐ	
­XÚÐ-¯ÐÐ	
­YÚÐ-¶ÐÐ	
­ZÚÐ-·ÐÐ	
­[ÚÐ-ÀÐÐ	
­\ÚÐ-¹ÐÐ	
­]ÚÐ-¯ÐÐ	
­^ÚÐ-ÁÐÐ	
­_ÚÐ-»ÐÐ	
­`ÚÐ-¼ÐÐ	
­aÚÐ-½ÐÐ	
­<ÚÐ-¾ÐÐ	
­bÚÐ-ÐÐ	
­ðÚÐ-ÂÐÐ	
­ñÚÐ-ÃÐÐ	
­òÚÐ-ÄÐÐ	
­óÚÐ-ÅÐÐ	
­ôÚÐ-ÆÐÐ	
­õÚÐ-ÇÐÐ	
­öÚÐ-ÈÐÐ	
­÷ÚÐ-ÉÐÐ	
­øÚÐ-ÊÐÐ	
­ùÚÐ-ËÐÐ	
­úÚÐ-ÌÐÐ	
­ûÚÐ-ÍÐÐ	
­üÚÐ-ÎÐÐ	
­ýÚÐ-ÐÐ	
­þÚÐ-ÏÐÐ	
­ÿÚÐ-ÐÐÐ	
­ÚÐ-ÑÐÐ	
­ÚÐ-ÒÐÐ	
­ÚÐ-ÓÐÐ	
­ÚÐ-ÔÐÐ	
­ÚÐ-ÕÐÐ	
­ÚÐ-ÖÐÐ	
­ÚÐ-×ÐÐ	
­ÚÐ-ØÐÐ	
­ÚÐ-ÙÐÐ	
­	ÚÐ-ÚÐÐ	
­
ÚÐ-ÛÐÐ	
­ÚÐ-ÜÐÐ	
­ÚÐ-ÝÐÐ	
­
ÚÐ-ÞÐÐ	
­ÚÐ-ßÐÐ	
­ÚÐ-àÐÐ	
­ÚÐ-áÐÐ	
­ÚÐ-âÐÐ	
­ÚÐ-ãÐÐ	
­ÚÐ-äÐÐ	
­ÚÐ-åÐÐ	
­ÚÐ-æÐÐ	
­ÚÐ-çÐÐ	
­ÚÐ-èÐÐ	
­ÚÐ-éÐÐ	
­ÚÐ-êÐÐ	
­ÚÐ-ëÐÐ	
­ÚÐ-ìÐÐ	
­ÚÐ-íÐÐ	
­ÚÐ-îÐÐ	
­ÚÐ-ïÐÐ	
­ÚÐ-ðÐÐ	
­ ÚÐ-ñÐÐ	
­!ÚÐ-òÐÐ	
­"ÚÐ-óÐÐ	
­#ÚÐ-ôÐÐ	
­$ÚÐ-õÐÐ	
­%ÚÐ-öÐÐ	
­&ÚÐ-÷ÐÐ	
­'ÚÐ-øÐÐ	
­ÚÐ-Ç