Diff of /branches/OscarBallast/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/BalastTankPuzzleStateMachine/svnobj [000000] .. [r9]  Maximize  Restore

Switch to side-by-side view

--- a
+++ b/branches/OscarBallast/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/BalastTankPuzzleStateMachine/svnobj
@@ -0,0 +1,10 @@
+Gx_låb!0…jüo@S¤? "CÐÀSystem.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
+TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText$IF NOT xInit THEN	N	UM				(		sName := 'Normal Operation', ì							dwSupportedStates := PACK_ML.State.All - PACK_ML.State.Suspending - PACK_ML.State.Suspended - PACK_ML.State.UnSuspending - PACK_ML.Holding - PACK_ML.Held - PACK_ML.UnHolding, Ô							dwAllowsLeavingFromStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, Ö							dwAllowsEnteringIntoStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, \							eInitialState := PACK_ML.State.Aborted,2							xActive := TRUE); 	xInit := TRUE;	END_IF4IF Client.bReadyToPLC THEN:	CASE Client.iCommandToPLC OF"	0 : 	//Handshake	1 : 	//Lock		IF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[0]) =  0 THEN		 0			//First Lock Function!			;"–		ELSIF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[1]) =  0 THEN		#2			//Second Lock Function$
+			;	%		END_IF&	2 : 	//Key'	3 : 	//IO(	4 : 	//Media)	5 : 	//Hint*	6 : 	//State	+p		IF SysStrCmp(Client.sCommandFromPLC, 'SC') =  0 THEN		,&			StateComplete();-x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Start') =  0 THEN		.			Start();/v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Stop') =  0 THEN		0			Stop();1x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Reset') =  0 THEN		2			Reset();3x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Abort') =  0 THEN		4			Abort();5x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Clear') =  0 THEN		6			Clear();7v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Hold') =  0 THEN		8			Hold();9z		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnHold') =  0 THEN		:			Unhold();	;|		ELSIF SysStrCmp(Client.sCommandToPLC, 'Suspend') =  0 THEN		<			Suspend();=€		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnSuspend') =  0 THEN		>			UnSuspend();?		@	END_CASEA6	Client.iCommandToPLC := 0;B8	Client.sCommandToPLC := '';C:	Client.bReadyToPLC := FALSE;D.CASE UM.CurrentState OFE,PACK_ML.State.Stopped:F	;G,PACK_ML.State.Aborted:H&PACK_ML.State.Idle:I2PACK_ML.State.Complete :	J.PACK_ML.State.Execute :KŽ	IF CMMT_ST_Linear1.AxisError (*OR CMMT_ST_Rotery_Boot.AxisError*) THENL		Abort();M		RETURN;N	END_IFO˜    // NOTE: Remember that most math has the Y axis as positive above the X.P”    // However, for screens we have Y as positive below. For this reason, Qz    // the Y values are inverted to get the expected results.RT    //final double deltaY = (p1.y - p2.y);ST    //final double deltaX = (p2.x - p1.x);T    //final double result = Math.toDegrees(Math.atan2(deltaY, deltaX)); Uj    //return (result < 0) ? (360d + result) : result;Vx	//actualPositionBoat := CMMT_ST_Rotery_Boot.ActualPosition;Wr	actualPositionLinear1 := CMMT_ST_Linear1.ActualPosition;XJ	deltaY := actualPositionLinear1 - 0;YN	deltaX := actualPositionLinear2 - 500;ZV	angle := OSCAT_BASIC.ATAN2(deltaY,deltaX);[\	targetPositionBoat := angle * 180 / 3.1415;		\@	IF targetPositionBoat <= 0 THEN]4		targetPositionBoat := 0;^J	ELSIF targetPositionBoat >= 360 THEN_8		targetPositionBoat := 360;`†	//CMMT_ST_Rotery_Boot_MoveAbsolute.Position:= targetPositionBoat ;ad	//CMMT_ST_Rotery_Boot_MoveAbsolute.Execute:=TRUE;bˆ	(*CMMT_ST_Rotery_Boot.MoveAbsolute(Position:= targetPositionBoat , c,				Velocity:= 10000, d6				Acceleration:= 100000, e6				Deceleration:= 100000, f*				Jerk:= 10000000, gX				BufferMode:= MC_BUFFER_MODE.mcAborting, h 				ErrorID=> , i(				ErrorString=> );j*)k8	CASE Client.ActualStep OF		l
+		0:	m,			CASE Client.Mode OFn				Mode.Mode1:o2					CASE Client.Level OFp,						Level.Beginner:	q4							speed := 100;						r2						Level.Placeholder1:s(							speed := 200;t2						Level.Intermediate:u(							speed := 300;v2						Level.Placeholder2:w(							speed := 400;x*						Level.Advanced:y(							speed := 500;z					END_CASE{<					Client.ActualStep := 100;|2					executeBoat := TRUE;}(				Mode.Mode2:					~<					Client.ActualStep := 200;(				Mode.Mode3:					€H					Client.ActualStep := 300;				 							‚			END_CASE		ƒ		100:„r			bMove := CMMT_ST_Linear1.MoveAbsolute(Position:= 50 , …,				Velocity:= speed, †0				Acceleration:= 500, ‡0				Deceleration:= 500, ˆ"				Jerk:= 1000, ‰X				BufferMode:= MC_BUFFER_MODE.mcBuffered, Š 			IF bMove THEN‹^				Client.ActualStep := Client.ActualStep + 1;Œ			END_IF		101:ŽP			IF CMMT_ST_Linear1.TargetReached THEN			END_IF					102:‘t			bMove := CMMT_ST_Linear1.MoveAbsolute(Position:= 550 , ’		103:“:				Client.ActualStep := 100;”			END_IF		•		200:–		300:—(			StateComplete();	˜	END_CASE	™2PACK_ML.State.Resetting :šd	CMMT_ST_Rotery_Boot_MoveAbsolute.Execute:=FALSE;	›,	executeBoat := FALSE;œ:	CMMT_ST_Linear1.ResetHalt();F	//CMMT_ST_Rotery_Boot.ResetHalt();ž&	StateComplete();		Ÿ0PACK_ML.State.Starting : L			IF NOT CMMT_ST_Linear1.Enabled THEN¡^			//ELSIF NOT CMMT_ST_Rotery_Boot.Enabled THEN¢>				//Client.ActualStep := 200;£			ELSE¤@				Client.ActualStep := 10;				¥		10:	¦T			IF NOT CMMT_ST_Linear1.HomingValid THEN§:				Client.ActualStep := 110;¨f			//ELSIF NOT CMMT_ST_Rotery_Boot.HomingValid THEN©>				//Client.ActualStep := 210;ªB				Client.ActualStep := 300;				«			END_IF	¬V			enable := CMMT_ST_Linear1.EnableDrive();­"			IF enable THEN®6				Client.ActualStep := 0;¯				Abort();°		110:±‚			home := CMMT_ST_Linear1.Home(Position := 0,HomingMethod := 0);²&			IF home THEN				³b				Client.ActualStep := Client.ActualStep + 10;	´		120:µT			IF CMMT_ST_Linear1.HomingValid THEN				¶:				Client.ActualStep := 10;	·b			//enable := CMMT_ST_Rotery_Boot.EnableDrive();¸			ELSE				¹		210:ºŽ			//home := CMMT_ST_Rotery_Boot.Home(Position := 0,HomingMethod := 0);»		220:¼`			//IF CMMT_ST_Rotery_Boot.HomingValid THEN				½
+					¾4PACK_ML.State.Completing :¿$	StateComplete();	À0PACK_ML.State.Aborting :Á@	CMMT_ST_Linear1.DisableDrive();ÂL	//CMMT_ST_Rotery_Boot.DisableDrive();Ã"	StateComplete();Ä.PACK_ML.State.Stopping:Å4	CASE Client.ActualStep OFÆ		0:Ç8			StopBoat.Execute := TRUE;È<			StopLinear.Execute := TRUE;É6			Client.ActualStep := 10;Ê
+		10:Ër			IF BoatStatus.Stopping AND LinearStatus.Stopping THEN;Ì@				StopLinear.Execute := FALSE;Í<				StopBoat.Execute := FALSE;Î:				Client.ActualStep := 20;	Ï
+		20:Ð.PACK_ML.State.Clearing:ÑH			IF CMMT_ST_Linear1.AxisError THENÒZ			//ELSIF CMMT_ST_Rotery_Boot.AxisError THENÓ6			CMMT_ST_Linear1.Reset();Ô6			Client.ActualStep := 0;	ÕB			//CMMT_ST_Rotery_Boot.Reset();ÖEND_CASE×LClient.ActualState := UM.CurrentState;Øf(*IF NOT (x_EmergencyGF AND NOT x_EmergencyFF) THENÙ(	 //Emergency Abort.Ú	Abort();	ÛEND_IF*)ÜäpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);ÝPClient.Progress := puzzleTimer.iProcess;ÞHIF puzzleTimer.iProcess >= 100 THEN	ß	Stop();àJ// couple axis to functionblocks hereáv//BoatStatus (Axis := CMMT_ST_Rotery_Boot, Enable := TRUE);ânLinearStatus (Axis := CMMT_ST_Linear1, Enable := TRUE);ãT//StopBoat ( Axis := CMMT_ST_Rotery_Boot);äJStopLinear (Axis := CMMT_ST_Linear1);å~(*CMMT_ST_Rotery_Boot_MoveAbsolute(Axis:=CMMT_ST_Rotery_Boot , æ6				ContinuousUpdate:=TRUE,ç*				Velocity:= 1000, è4				Acceleration:= 10000, é4				Deceleration:= 10000, ê(				Jerk:= 1000000, ë^				BufferMode:= MC_BUFFER_MODE.mcAborting );*)ìInterfaceíL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}îVFUNCTION_BLOCK BalastTankPuzzleStateMachineïVAR_IN_OUTð.	Client : PuzzleClient;ñEND_VARòVARó0	UM	: PACK_ML.UnitMode; ôj	xInit				: BOOL := FALSE; // Flag for initializationõ8	puzzleTimer 	: PuzzleTimer;ö ÷P 	moveAbsolute 	: MC_MoveAbsolute_Festo;ø6	StopBoat		: MC_Stop_Festo;ù<	StopLinear 		: MC_Stop_Festo;úF	BoatStatus		: MC_ReadStatus_Festo;ûH	LinearStatus	: MC_ReadStatus_Festo;ü$	enable 			: BOOL;ý 	home 			: BOOL;þ"	bMove 			: BOOL;ÿ	speed 			:INT;€<	actualPositionLinear1 : REAL;J	actualPositionLinear2 : REAL := 300;‚6	actualPositionBoat : REAL;ƒ	deltaY : REAL;„	deltaX : REAL;…	angle : REAL;†(	executeBoat : BOOL;‡6	targetPositionBoat : REAL;ˆ	bl : BLINK;‰	ii: INT;Šr	CMMT_ST_Rotery_Boot_MoveAbsolute :MC_MoveAbsolute_Festo;‹"UniqueIdGeneratorŒ1707POULevelŽL{8e575c5b-1d37-49c6-941b-5c0ec7874787}Standard ChildObjectGuids‘8System.Collections.ArrayList’,AddAttributeSubsequent“boolÐÐ-ÐÐ	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ÚÐ-/ÐÐ
­cÚÐ-0ÐÐ
­dÚÐ-1ÐÐ
­eÚÐ-2ÐÐ
­fÚÐ-3ÐÐ
­gÚÐ-4ÐÐ
­hÚÐ-5ÐÐ
­iÚÐ-6ÐÐ
­jÚÐ-7ÐÐ
­kÚÐ-8ÐÐ
­lÚÐ-9ÐÐ
­mÚÐ-:ÐÐ
­nÚÐ-;ÐÐ
­oÚÐ-<ÐÐ
­pÚÐ-=ÐÐ
­qÚÐ->ÐÐ
­rÚÐ-%ÐÐ
­sÚÐ-?ÐÐ
­tÚÐ-@ÐÐ
­uÚÐ-ÐÐ
­vÚÐ-AÐÐ
­wÚÐ-BÐÐ
­xÚÐ-CÐÐ
­yÚÐ-ÐÐ
­zÚÐ-ÐÐ
­{ÚÐ-ÐÐ
­|ÚÐ-ÐÐ
­}ÚÐ-ÐÐ
­~ÚÐ-ÐÐ
­ÚÐ-DÐÐ
­€ÚÐ-EÐÐ
­ÚÐ-FÐÐ
­‚ÚÐ-GÐÐ
­ƒÚÐ-FÐÐ
­„ÚÐ-HÐÐ
­…ÚÐ-FÐÐ
­†ÚÐ-IÐÐ
­‡ÚÐ-FÐÐ
­ˆÚÐ-JÐÐ
­‰ÚÐ-KÐÐ
­ŠÚÐ-LÐÐ
­‹ÚÐ-MÐÐ
­ŒÚÐ-NÐÐ
­ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­‘ÚÐ-OÐÐ
­’ÚÐ-PÐÐ
­“ÚÐ-QÐÐ
­”ÚÐ-RÐÐ
­•ÚÐ-SÐÐ
­–ÚÐ-TÐÐ
­—ÚÐ-UÐÐ
­˜ÚÐ-ÐÐ
­™ÚÐ-VÐÐ
­šÚÐ-WÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-XÐÐ
­ÚÐ-YÐÐ
­žÚÐ-ÐÐ
­ŸÚÐ-ZÐÐ
­ ÚÐ-ÐÐ
­¡ÚÐ-[ÐÐ
­¢ÚÐ-ÐÐ
­£ÚÐ-\ÐÐ
­¤ÚÐ-]ÐÐ
­¥ÚÐ-^ÐÐ
­¦ÚÐ-_ÐÐ
­§ÚÐ-NÐÐ
­¨ÚÐ-ÐÐ
­©ÚÐ-ÐÐ
­ªÚÐ-`ÐÐ
­«ÚÐ-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ÐÐ
­ÇÚÐ-{ÐÐ
­ÈÚÐ-|ÐÐ
­ÉÚÐ-}ÐÐ
­ÊÚÐ-~ÐÐ
­ËÚÐ-ÐÐ
­ÌÚÐ-€ÐÐ
­ÍÚÐ-ÐÐ
­ÎÚÐ-‚ÐÐ
­ÏÚÐ-?ÐÐ
­ÐÚÐ-ƒÐÐ
­ÑÚÐ-„ÐÐ
­ÒÚÐ-…ÐÐ
­ÓÚÐ-†ÐÐ
­ÔÚÐ-‡ÐÐ
­ÕÚÐ-ˆÐÐ
­ÖÚÐ-‰ÐÐ
­×ÚÐ-hÐÐ
­ØÚÐ-iÐÐ
­ÙÚÐ-ŠÐÐ
­ÚÚÐ-‹ÐÐ
­ÛÚÐ-ŒÐÐ
­ÜÚÐ-ÐÐ
­ÝÚÐ-ŽÐÐ
­ÞÚÐ-‹ÐÐ
­ßÚÐ-ÐÐ
­àÚÐ-ÐÐ
­áÚÐ-‘ÐÐ
­âÚÐ-…ÐÐ
­ãÚÐ-†ÐÐ
­äÚÐ-‡ÐÐ
­åÚÐ-ˆÐÐ
­æÚÐ-‰ÐÐ
­çÚÐ-hÐÐ
­èÚÐ-iÐÐ
­éÚÐ-ŠÐÐ
­êÚÐ-‹ÐÐ
­ëÚÐ-ŒÐÐ
­ìÚÐ-’ÐÐ
­íÚÐ-ŽÐÐ
­îÚÐ-“ÐÐ
­ïÚÐ-”ÐÐ
­ðÚÐ-•ÐÐ
­ñÚÐ-!ÐÐ
­òÚÐ-–ÐÐ
­óÚÐ-—ÐÐ
­ôÚÐ-˜ÐÐ
­õÚÐ-ÐÐ
­öÚÐ-™ÐÐ
­÷ÚÐ-šÐÐ
­øÚÐ-›ÐÐ
­ùÚÐ-œÐÐ
­úÚÐ-ÐÐ
­ûÚÐ-žÐÐ
­üÚÐ-ŸÐÐ
­ýÚÐ-kÐÐ
­þÚÐ-lÐÐ
­ÿÚÐ- ÐÐ
­ÚÐ-“ÐÐ
­ÚÐ-¡ÐÐ
­ÚÐ-¢ÐÐ
­ÚÐ-£ÐÐ
­ÚÐ-¤ÐÐ
­ÚÐ-ŒÐÐ
­ÚÐ-¥ÐÐ
­ÚÐ-¦ÐÐ
­ÚÐ-§ÐÐ
­	ÚÐ-¨ÐÐ
­
+ÚÐ-©ÐÐ
­ÚÐ-£ÐÐ
­ÚÐ-ªÐÐ
­
ÚÐ-«ÐÐ
­ÚÐ-?ÐÐ
­ÚÐ-ƒÐÐ
­ÚÐ-¬ÐÐ
­ÚÐ-­ÐÐ
­ÚÐ-®ÐÐ
­ÚÐ-£ÐÐ
­ÚÐ-¯ÐÐ
­ÚÐ-ŒÐÐ
­ÚÐ-°ÐÐ
­ÚÐ-±ÐÐ
­ÚÐ-²ÐÐ
­ÚÐ-³ÐÐ
­ÚÐ-ŒÐÐ
­ÚÐ-´ÐÐ
­ÚÐ-µÐÐ
­ÚÐ-¶ÐÐ
­ÚÐ-ŒÐÐ
­ÚÐ-•ÐÐ
­ ÚÐ-·ÐÐ
­!ÚÐ-­ÐÐ
­"ÚÐ-®ÐÐ
­#ÚÐ-¸ÐÐ
­$ÚÐ-¯ÐÐ
­%ÚÐ-”ÐÐ
­&ÚÐ-¹ÐÐ
­'ÚÐ-ºÐÐ
­(ÚÐ-²ÐÐ
­)ÚÐ-³ÐÐ
­*ÚÐ-ŒÐÐ
­+ÚÐ-»ÐÐ
­,ÚÐ-¼ÐÐ
­-ÚÐ-¶ÐÐ
­.ÚÐ-«ÐÐ
­/ÚÐ-½ÐÐ
­0ÚÐ-–ÐÐ
­1ÚÐ-—ÐÐ
­2ÚÐ-@ÐÐ
­3ÚÐ-¾ÐÐ
­4ÚÐ-ÐÐ
­5ÚÐ-¿ÐÐ
­6ÚÐ-ÐÐ
­7ÚÐ-ÀÐÐ
­8ÚÐ-ÐÐ
­9ÚÐ-ÁÐÐ
­:ÚÐ-ÂÐÐ
­;ÚÐ-ÃÐÐ
­<ÚÐ-ÐÐ
­=ÚÐ-ÄÐÐ
­>ÚÐ-ÐÐ
­?ÚÐ-ÅÐÐ
­@ÚÐ-ÆÐÐ
­AÚÐ-ÇÐÐ
­BÚÐ-ÈÐÐ
­CÚÐ-ÉÐÐ
­DÚÐ-ÊÐÐ
­EÚÐ-ËÐÐ
­FÚÐ-ÌÐÐ
­GÚÐ-ÍÐÐ
­HÚÐ-ÎÐÐ
­IÚÐ-ÐÐ
­JÚÐ-ÏÐÐ
­KÚÐ-,ÐÐ
­LÚÐ-@ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-ÐÐÐ
­OÚÐ-ÐÐ
­PÚÐ-kÐÐ
­QÚÐ-lÐÐ
­RÚÐ-ÑÐÐ
­SÚÐ-“ÐÐ
­TÚÐ-ÒÐÐ
­UÚÐ-¢ÐÐ
­VÚÐ-£ÐÐ
­WÚÐ-ªÐÐ
­XÚÐ-ÐÐ
­YÚÐ-?ÐÐ
­ZÚÐ-ƒÐÐ
­[ÚÐ-ÓÐÐ
­\ÚÐ-ÔÐÐ
­]ÚÐ-•ÐÐ
­^ÚÐ-ÕÐÐ
­_ÚÐ-ÔÐÐ
­`ÚÐ-–ÐÐ
­aÚÐ-—ÐÐ
­bÚÐ-@ÐÐ
­cÚÐ-ÖÐÐ
­dÚÐ-ÐÐ
­eÚÐ-×ÐÐ
­fÚÐ-ÐÐ
­gÚÐ-ØÐÐ
­hÚÐ-ÙÐÐ
­iÚÐ-ÚÐÐ
­jÚÐ-ÛÐÐ
­kÚÐ-ÐÐ
­lÚÐ-ÜÐÐ
­mÚÐ-ÐÐ
­nÚÐ-ÝÐÐ
­oÚÐ-ÐÐ
­pÚÐ-ÞÐÐ
­qÚÐ-ßÐÐ
­rÚÐ-ÐÐ
­sÚÐ-àÐÐ
­tÚÐ-áÐÐ
­uÚÐ-âÐÐ
­vÚÐ-ãÐÐ
­wÚÐ-äÐÐ
­xÚÐ-ÐÐ
­yÚÐ-åÐÐ
­zÚÐ-æÐÐ
­{ÚÐ-çÐÐ
­|ÚÐ-èÐÐ
­}ÚÐ-éÐÐ
­~ÚÐ-êÐÐ
­ÚÐ-ëÐÐ
­%ÚÐ-ÐìíÐ	E
+'ÐÐ
­†ÚÐ-îÐÐ
­‡ÚÐ-ïÐÐ
­ˆÚÐ-ðÐÐ
­‰ÚÐ-ñÐÐ
­ŠÚÐ-òÐÐ
­‹ÚÐ-óÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-ôÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-õÐÐ
­‘ÚÐ-öÐÐ
­’ÚÐ-÷ÐÐ
­“ÚÐ-øÐÐ
­”ÚÐ-ùÐÐ
­•ÚÐ-úÐÐ
­–ÚÐ-ûÐÐ
­—ÚÐ-ÐÐ
­˜ÚÐ-üÐÐ
­™ÚÐ-ýÐÐ
­šÚÐ-þÐÐ
­›ÚÐ-ÐÐ
­œÚÐ-ÿÐÐ
­ÚÐ-ÐÐ
­žÚÐ-€ÐÐ
­ŸÚÐ-ÐÐ
­ ÚÐ-‚ÐÐ
­¡ÚÐ-ÐÐ
­¢ÚÐ-ƒÐÐ
­£ÚÐ-„ÐÐ
­¤ÚÐ-…ÐÐ
­¥ÚÐ-†ÐÐ
­¦ÚÐ-‡ÐÐ
­§ÚÐ-ÐÐ
­¨ÚÐ-ˆÐÐ
­©ÚÐ-‰ÐÐ
­ªÚÐ-ŠÐÐ
­«ÚÐ-ñÐÐ
­ÚÐ-Ћ-ŒЍŽ-‘В“­
\ No newline at end of file