DIRECTORY Buttons, Labels, Rope, ViewerTools, SVEditToolMenus, SVEditUser, SVEditUserB, SVInterfaceTypes, VFonts; SVEditToolMenusImplC: CEDAR PROGRAM IMPORTS Buttons, Labels, SVEditUser, SVEditUserB, VFonts, ViewerTools EXPORTS SVEditToolMenus = BEGIN EditToolData: TYPE = SVInterfaceTypes.EditToolData; entryHeight: CARDINAL = SVEditToolMenus.entryHeight; entryVSpace: CARDINAL = SVEditToolMenus.entryVSpace; entryHSpace: CARDINAL = SVEditToolMenus.entryHSpace; column0: CARDINAL = SVEditToolMenus.column0; column1: CARDINAL = SVEditToolMenus.column1; column2: CARDINAL = SVEditToolMenus.column2; column2Quarter: CARDINAL = 190; column2Half: CARDINAL = 225; column3: CARDINAL = SVEditToolMenus.column3; nameSize: CARDINAL = 140; numberSize: CARDINAL = 80; numberSize3: CARDINAL = 160; boldFont: VFonts.Font _ VFonts.EstablishFont[family: "Helvetica", size: 10, bold: TRUE, italic: FALSE, defaultOnFailure: TRUE]; BuildCurrentSceneSection: PUBLIC PROC [editToolData: EditToolData] = { scenePrompt, newViewer, newOutput: Buttons.Button; helpButton, colorMapButton, bwMapButton, restartButton, closeAll: Buttons.Button; editToolData.height _ editToolData.height + entryVSpace; -- space down from the top of the viewer scenePrompt _ Buttons.Create[ info: [name: "Scene:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ScenePrompt, clientData: editToolData ]; editToolData.sceneSection.sceneName _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: scenePrompt.wx + scenePrompt.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "DefaultScene", scrollable: FALSE, border: FALSE]]; newViewer _ Buttons.Create[ info: [name: "New Viewer", wx: editToolData.sceneSection.sceneName.wx + editToolData.sceneSection.sceneName.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUser.NewViewer, clientData: editToolData ]; newOutput _ Buttons.Create[ info: [name: "New Typescript", wx: newViewer.wx + newViewer.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUser.NewOutput, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; helpButton _ Buttons.Create[ info: [name: "Help!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Help, clientData: editToolData ]; colorMapButton _ Buttons.Create[ info: [name: "ColorMap!", wx: helpButton.wx + helpButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.SetColorMap, clientData: editToolData ]; bwMapButton _ Buttons.Create[ info: [name: "BWMap!", wx: colorMapButton.wx + colorMapButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.BWMap, clientData: editToolData ]; restartButton _ Buttons.Create[ info: [name: "Restart!", wx: bwMapButton.wx + bwMapButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Restart, clientData: editToolData ]; closeAll _ Buttons.Create[ info: [ name: "DestroyAll", wx: restartButton.wx + restartButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE], proc: SVEditUser.DestroyAllSolidviewsWindows, clientData: editToolData, guarded: TRUE, documentation: "Will Close Down Solidviews" ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildTextInputSection: PUBLIC PROC [editToolData: EditToolData] = { currentAssemblyPrompt: Buttons.Button; text1Prompt: Buttons.Button; selectedTextLabel, selectedTextPlane, selectedTextSource, selectedTextTarget, selectedTextParent: Buttons.Button; currentAssemblyPrompt _ Buttons.Create[ info: [name: "Skitter:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.CurrentAssemblyPrompt, clientData: editToolData ]; editToolData.sceneSection.current _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: currentAssemblyPrompt.wx + currentAssemblyPrompt.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "", scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; text1Prompt _ Buttons.Create[ info: [name: "Text1:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Text1PromptButton, clientData: editToolData ]; editToolData.sceneSection.text1 _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: text1Prompt.wx + text1Prompt.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "sceneAssembly", scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; selectedTextLabel _ Labels.Create[ info: [name: "Selected Text:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE]]; selectedTextPlane _ Buttons.Create[ info: [ name: "Plane!", wx: selectedTextLabel.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE ], proc: SVEditUser.SelectedTextPlaneButton, clientData: editToolData ]; selectedTextSource _ Buttons.Create[ info: [ name: "Source!", wx: selectedTextLabel.wx + column2Half, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE ], proc: SVEditUser.SelectedTextSourceButton, clientData: editToolData ]; selectedTextTarget _ Buttons.Create[ info: [ name: "Target!", wx: selectedTextSource.wx + selectedTextSource.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE ], proc: SVEditUser.SelectedTextTargetButton, clientData: editToolData ]; selectedTextParent _ Buttons.Create[ info: [ name: "Parent!", wx: selectedTextTarget.wx + selectedTextTarget.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: TRUE ], proc: SVEditUser.SelectedTextParentButton, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildDerivedTextSection: PUBLIC PROC [editToolData: EditToolData] = { newPrompt, parentPrompt: Buttons.Button; sourceLabel, targetLabel, planeLabel: Buttons.Button; newPrompt _ Buttons.Create[ info: [name: "New:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.NewPrompt, clientData: editToolData ]; editToolData.sceneSection.new _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: newPrompt.wx + newPrompt.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "Charlie", scrollable: FALSE, border: FALSE]]; parentPrompt _ Buttons.Create[ info: [name: "Parent:", wx: newPrompt.wx + column2Quarter, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ParentPrompt, clientData: editToolData ]; editToolData.sceneSection.parent _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: parentPrompt.wx + parentPrompt.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "sceneAssembly", scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; sourceLabel _ Labels.Create[ info: [name: "Source:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE]]; editToolData.sceneSection.source _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: sourceLabel.wx + sourceLabel.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "", scrollable: FALSE, border: TRUE]]; ViewerTools.InhibitUserEdits[editToolData.sceneSection.source]; targetLabel _ Labels.Create[ info: [name: "Target:", wx: sourceLabel.wx + column2Quarter, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE]]; editToolData.sceneSection.target _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: targetLabel.wx + targetLabel.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "", scrollable: FALSE, border: TRUE]]; ViewerTools.InhibitUserEdits[editToolData.sceneSection.target]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; planeLabel _ Labels.Create[ info: [name: "Plane:", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE]]; editToolData.sceneSection.plane _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: planeLabel.wx + planeLabel.ww + entryHSpace, wy: editToolData.height, ww: nameSize, wh: entryHeight, data: "", scrollable: FALSE, border: TRUE]]; ViewerTools.InhibitUserEdits[editToolData.sceneSection.plane]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; BuildAssemblyOpsSection: PUBLIC PROC [editToolData: EditToolData] = { firstButton, drawCSButton, deleteButton, editButton: Buttons.Button; setOpButton, selectOpButton: Buttons.Button; firstButton _ Buttons.Create[ info: [name: "First!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.First, clientData: editToolData ]; drawCSButton _ Buttons.Create[ info: [name: "DrawCS!", wx: firstButton.wx + firstButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.DrawCS, clientData: editToolData ]; deleteButton _ Buttons.Create[ info: [name: "Delete!", wx: firstButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.DeleteButton, clientData: editToolData ]; editButton _ Buttons.Create[ info: [name: "Edit!", wx: firstButton.wx + column3, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Edit, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; setOpButton_ Buttons.Create[ info: [name: "Set Pointset Op!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.SetOp, clientData: editToolData ]; selectOpButton _ Buttons.Create[ info: [name: "Op:", wx: setOpButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.SelectOp, clientData: editToolData ]; editToolData.sceneSection.opLabel _ Labels.Create[ info: [name: "union", wx: selectOpButton.wx + selectOpButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, ww: VFonts.StringWidth["intersection>>>"], parent: editToolData.outer, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildAssemblyOpsSection BuildTransformSection: PUBLIC PROC [editToolData: EditToolData] = { scaleButton, scaleXYZPrompt: Buttons.Button; evenScaleButton, evenScaleXYZPrompt: Buttons.Button; translateButton, transXYZPrompt: Buttons.Button; rotxButton, rotyButton, rotzButton, degreesPrompt: Buttons.Button; normRot, norm, align, abut, abutX, abutY, abutZ: Buttons.Button; scaleButton _ Buttons.Create[ info: [name: "ScalePrimitive!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ScalePrimitive, clientData: editToolData, font: boldFont ]; scaleXYZPrompt _ Buttons.Create[ info: [name: "X, Y, Z:", wx: scaleButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.ScaleXYZPrompt, clientData: editToolData ]; editToolData.transformSection.scaleXYZ _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: scaleXYZPrompt.wx + scaleXYZPrompt.ww + entryHSpace, wy: editToolData.height, ww: numberSize3, wh: entryHeight, data: "2, 2, 2", scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; evenScaleButton _ Buttons.Create[ info: [ name: "EvenScale!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE ], proc: SVEditUser.EvenScale, clientData: editToolData, font: boldFont ]; evenScaleXYZPrompt _ Buttons.Create[ info: [name: "scalar:", wx: scaleButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.EvenScaleXYZPrompt, clientData: editToolData ]; editToolData.transformSection.scalar _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: evenScaleXYZPrompt.wx + evenScaleXYZPrompt.ww + entryHSpace, wy: editToolData.height, ww: numberSize, wh: entryHeight, data: "2", scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; translateButton _ Buttons.Create[ info: [name: "Translate!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.Trans, clientData: editToolData, font: boldFont ]; transXYZPrompt _ Buttons.Create[ info: [name: "X, Y, Z:", wx: translateButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.TranslateXYZPrompt, clientData: editToolData ]; editToolData.transformSection.transXYZ _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: transXYZPrompt.wx + transXYZPrompt.ww + entryHSpace, wy: editToolData.height, ww: numberSize3, wh: entryHeight, data: "0, 200, 0", scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; rotxButton _ Buttons.Create[ info: [name: "RotX!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.RotX, clientData: editToolData, font: boldFont ]; rotyButton _ Buttons.Create[ info: [name: "RotY!", wx: rotxButton.wx + rotxButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.RotY, clientData: editToolData, font: boldFont ]; rotzButton _ Buttons.Create[ info: [name: "RotZ!", wx: rotyButton.wx + rotyButton.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.RotZ, clientData: editToolData, font: boldFont ]; degreesPrompt _ Buttons.Create[ info: [name: "degrees:", wx: rotxButton.wx + column2, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUser.DegreesPrompt, clientData: editToolData ]; editToolData.transformSection.degrees _ ViewerTools.MakeNewTextViewer[[ parent: editToolData.outer, wx: degreesPrompt.wx + degreesPrompt.ww + entryHSpace, wy: editToolData.height, ww: numberSize, wh: entryHeight, data: "90", scrollable: FALSE, border: FALSE]]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; normRot _ Buttons.Create[ info: [name: "NormalizeRot!", wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.NormalizeRot, clientData: editToolData ]; norm _ Buttons.Create[ info: [name: "Normalize!", wx: normRot.wx + normRot.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.Normalize, clientData: editToolData ]; align _ Buttons.Create[ info: [name: "Align!", wx: norm.wx + norm.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.Align, clientData: editToolData ]; abut _ Buttons.Create[ info: [name: "Abut!", wx: align.wx + align.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.Abut, clientData: editToolData ]; abutX _ Buttons.Create[ info: [name: "AbutX!", wx: abut.wx + abut.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.AbutX, clientData: editToolData ]; abutY _ Buttons.Create[ info: [name: "AbutY!", wx: abutX.wx + abutX.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.AbutY, clientData: editToolData ]; abutZ _ Buttons.Create[ info: [name: "AbutZ!", wx: abutY.wx + abutY.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE], proc: SVEditUserB.AbutZ, clientData: editToolData ]; editToolData.height _ editToolData.height + entryVSpace + entryHeight; }; -- end of BuildTransfromSection END. ‚File: SVEditToolMenusImplC.mesa Last edited by Bier on May 23, 1985 2:17:40 pm PDT Copyright c 1984 by Xerox Corporation. All rights reserved. Created August 9, 1984 10:47:05 pm PDT Contents: Procedures which build sections of the EditTool Declare the standard distances between menu lines. This section implements a set of buttons, text windows, and options listers in this format: Scene: NEW VIEWER NEW OUTPUT Help! ColorMap! BWMap! ReStart! DestroyAll! Scene: New Viewer New Output ColorMap! BWMap! Restart! DestroyAll! SkitterAssembly: Text1: Selected Text Plane! Source! Target! Parent! New: Parent: TopSource: TopTarget: SkitterAssembly: Source! Target! Parent! skitterSource _ Buttons.Create[ info: [ name: "Source!", wx: currentAssemblyPrompt.wx + column2Half, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE ], proc: SVEditUser.SkitterSourceButton, clientData: editToolData ]; skitterTarget _ Buttons.Create[ info: [ name: "Target!", wx: skitterSource.wx + skitterSource.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE ], proc: SVEditUser.SkitterTargetButton, clientData: editToolData ]; skitterParent _ Buttons.Create[ info: [ name: "Parent!", wx: skitterTarget.wx + skitterTarget.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE ], proc: SVEditUser.SkitterParentButton, clientData: editToolData ]; Text1: Source! Target! Parent! text1Source _ Buttons.Create[ info: [ name: "Source!", wx: text1Prompt.wx + column2Half, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE ], proc: SVEditUser.Text1SourceButton, clientData: editToolData ]; text1Target _ Buttons.Create[ info: [ name: "Target!", wx: text1Source.wx + text1Source.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE ], proc: SVEditUser.Text1TargetButton, clientData: editToolData ]; text1Parent _ Buttons.Create[ info: [ name: "Parent!", wx: text1Target.wx + text1Target.ww + entryHSpace, wy: editToolData.height, wh: entryHeight, parent: editToolData.outer, border: FALSE ], proc: SVEditUser.Text1ParentButton, clientData: editToolData ]; Selected Text Plane! Source! Target! Parent! New: Parent: Source: Target: Plane: FIRST! DrawCS! DELETE! EDIT! SET PointSetOp SET PointSetOp Op: This section implements a set of buttons, text windows, and options listers in this format: SCALE PRIMITIVE X,Y,Z: EVENSCALEs scalar: TRANSLATE X,Y,Z,: ROTX ROTY ROTZ DEGREES: NormalizeRot! Normalize! Align! Abut! AbutX! AbutY! AbutZ! SCALEX,Y,Z: EVENSCALE X,Y,Z: TRANSLATE X,Y,Z,: ROTX ROTY ROTZ DEGREES: ส—˜Iheadšœ™Iprocšœ2™2Jšœ ฯmœ1™˜ELšžœ˜—Lšž˜˜šœžœ!˜3Lšœ2™2—Lšœ žœ˜4Lšœ žœ˜4Lšœ žœ˜4Lšœ žœ˜,Lšœ žœ˜,Lšœ žœ˜,Lšœžœ˜Lšœ žœ˜Lšœ žœ˜,Lšœ žœ˜Lšœ žœ˜Lšœ žœ˜—˜LšœRžœ žœžœ˜€L˜—šฯnœžœžœ!˜FLšœ[™[Lšœ*™*Lšœ.™.L˜Lšœ2˜2LšœQ˜QL˜Lšœa˜aL˜Lšœ+™+L˜šœ˜Lšœežœ˜lLšœ˜Lšœ˜Lšœ˜—L˜šœE˜ELšœ˜Lšœ2˜2Lšœ˜Lšœ ˜ Lšœ˜Lšœ˜Lšœ žœ žœ˜#—L˜šœ˜Lšœฬžœ˜าLšœ˜Lšœ˜Lšœ˜—L˜šœ˜Lšœœžœ˜ขLšœ˜Lšœ˜Lšœ˜—L˜LšœF˜FL˜Lšœ&™&L™šœ˜Lšœ˜Lšœ)˜)Lšœ$žœ˜+Lšœ˜Lšœ˜Lšœ˜L˜—šœ ˜ Lšœ˜Lšœ0˜0Lšœ)˜)Lšœ$žœ˜+Lšœ˜Lšœ˜Lšœ˜L˜—šœ˜šœ˜Lšœ8˜8Lšœ)˜)Lšœ$žœ˜+—Lšœ˜Lšœ˜Lšœ˜L˜—šœ˜Lšœšžœ˜กLšœ˜Lšœ˜Lšœ˜L˜—šœ˜šœ˜Lšœ˜Lšœ6˜6Lšœ)˜)Lšœ$žœ˜*—Lšœ-˜-Lšœ˜Lšœ žœ˜Lšœ+˜+Lšœ˜L˜—LšœF˜FL˜L˜L˜—šŸœžœžœ!˜CLšœ&˜&Lšœ˜Lšœq˜qL˜L™L™ Lšœฯb™-L™L™Lšœ'™'L™L™L™/L˜šœ'˜'Lšœgžœ˜nLšœ œ˜'Lšœ˜Lšœ˜L˜—š !œ"˜CLšœ˜LšœF˜FLšœ˜Lšœ ˜ Lšœ˜Lšœ ˜ Lšœ žœ žœ˜#L˜—šœ™šœ™Lšœ™Lšœ+™+Lšœ)™)Lšœ$ž™)Lšœ™—Lšœ œ™%Lšœ™Lšœ™L™—šœ™šœ™Lšœ™Lšœ6™6Lšœ)™)Lšœ$ž™)Lšœ™—Lšœ œ™%Lšœ™Lšœ™L™—šœ™šœ™Lšœ™Lšœ6™6Lšœ)™)Lšœ$ž™)Lšœ™—Lšœ œ™%Lšœ™Lšœ™L™—LšœF˜FL˜Lš %™%L˜šœ˜Lšœežœ˜lLšœ œ˜#Lšœ˜Lšœ˜L˜—šœ œ"˜ALšœ˜Lšœ2˜2Lšœ˜Lšœ ˜ Lšœ˜Lšœ˜Lšœ žœ žœ˜#L˜—šœ™šœ™Lšœ™Lšœ!™!Lšœ)™)Lšœ$ž™)Lšœ™—Lšœ œ™#Lšœ™Lšœ™L™—šœ™šœ™Lšœ™Lšœ2™2Lšœ)™)Lšœ$ž™)Lšœ™—Lšœ œ™#Lšœ™Lšœ™L™—šœ™šœ™Lšœ™Lšœ2™2Lšœ)™)Lšœ$ž™)Lšœ™—Lšœ œ™#Lšœ™Lšœ™L˜—LšœF˜FL™Lš -™-L™š œ˜"šœ˜Lšœ)˜)Lšœ$žœ˜,—L˜—šœ#˜#šœ˜Lšœ˜Lšœ#˜#Lšœ)˜)Lšœ$ž˜(Lšœ˜—Lšœ œ˜)Lšœ˜Lšœ˜—L˜šœ$˜$šœ˜Lšœ˜Lšœ'˜'Lšœ)˜)Lšœ$ž˜(Lšœ˜—Lšœ œ˜*Lšœ˜Lšœ˜L˜—šœ$˜$šœ˜Lšœ˜Lšœ@˜@Lšœ)˜)Lšœ$ž˜(Lšœ˜—Lšœ œ˜*Lšœ˜Lšœ˜L˜—šœ$˜$šœ˜Lšœ˜Lšœ@˜@Lšœ)˜)Lšœ$ž˜(Lšœ˜—Lšœ œ˜*Lšœ˜Lšœ˜—L˜LšœF˜FL™L˜L˜—šŸœžœžœ!˜ELšœ(˜(Lšœ5˜5L˜L™Lšœ'™'L™L™šœ˜šœ˜LšœNžœ˜U—Lšœ  œ˜Lšœ˜Lšœ˜L˜—š œ"˜?Lšœ˜Lšœ.˜.Lšœ˜Lšœ ˜ Lšœ˜Lšœ˜Lšœ žœ žœ˜#L˜—šœ˜šœ˜Lšœ"˜"Lšœ)˜)Lšœ$žœ˜+—Lšœ  œ˜Lšœ˜Lšœ˜L˜—š  œ"˜BLšœ˜Lšœ4˜4Lšœ˜Lšœ ˜ Lšœ˜Lšœ˜Lšœ žœ žœ˜#L˜—LšœF˜FL˜šœ˜Lšœfžœ˜nL˜—š  œ"˜BLšœ˜Lšœ2˜2Lšœ˜Lšœ ˜ Lšœ˜Lšœ ˜ Lšœ žœ žœ˜"—Lšœ  œ#˜?L˜šœ˜Lšœ‹žœ˜“—L˜š  œ"˜BLšœ˜Lšœ2˜2Lšœ˜Lšœ ˜ Lšœ˜Lšœ ˜ Lšœ žœ žœ˜"—Lšœ  œ#˜?L˜LšœF˜FL˜šœ˜Lšœ˜Lšœ)˜)Lšœ$žœ˜,L˜—š œ"˜ALšœ˜Lšœ0˜0Lšœ˜Lšœ ˜ Lšœ˜Lšœ ˜ Lšœ žœ žœ˜"—Lšœ  œ"˜>L˜LšœF˜FL˜L˜L˜—šŸœžœžœ!˜EL˜LšœD˜DLšœ,˜,L™Lšœ™Lšœ™L˜šœ˜Lšœ˜LšœNžœ˜ULšœ˜Lšœ˜Lšœ˜—L˜šœ˜Lšœ™žœ˜ Lšœ˜Lšœ˜Lšœ˜—L˜šœ˜Lšœ„žœ˜‹Lšœ˜Lšœ˜Lšœ˜—L˜šœ˜Lšœ‚žœ˜‰Lšœ˜Lšœ˜Lšœ˜—L˜LšœF˜FL˜Lšœ™L˜šœ˜Lšœožœ˜vLšœ˜Lšœ˜Lšœ˜—L˜šœ ˜ Lšœ€žœ˜‡Lšœ˜Lšœ˜Lšœ˜L˜—šœ2˜2Lšœศžœ˜ะ—Lšœ˜L˜LšœF˜FL˜Lšœฯc!˜$L˜—šŸœžœžœ!˜CLšœ[™[Lšœ ™ Lšœ™Lšœ™Lšœ!™!Lšœ@™@L˜Lšœ,˜,Lšœ4˜4Lšœ0˜0LšœB˜BLšœ@˜@L˜Lšœ™L˜šœ˜šœI˜ILšœ$žœ˜+—Lšœ ˜ Lšœ˜Lšœ˜Lšœ˜L˜—šœ ˜ šœ˜Lšœ˜Lšœ)˜)Lšœ$žœ˜+—Lšœ ˜ Lšœ˜Lšœ˜L˜—šœH˜HLšœ˜Lšœ8˜8Lšœ˜Lšœ˜Lšœ˜Lšœ˜Lšœ žœ žœ˜#—L˜LšœF˜FL˜Lšœ™L˜šœ!˜!šœ˜Lšœ˜Lšœ˜Lšœ˜Lšœ˜Lšœž˜ Lšœ˜—Lšœ˜Lšœ˜Lšœ˜Lšœ˜—L˜šœ$˜$šœ˜Lšœ˜Lšœ)˜)Lšœ$žœ˜+—Lšœ$˜$Lšœ˜Lšœ˜—L˜šœF˜FLšœ˜Lšœ@˜@Lšœ˜Lšœ˜Lšœ˜Lšœ ˜ Lšœ žœ žœ˜#—L˜LšœF˜FL˜Lšœ™L˜šœ!˜!šœ˜Lšœ)˜)Lšœ$žœ˜+—Lšœ˜Lšœ˜L˜Lšœ˜—L˜šœ ˜ šœ˜Lšœ!˜!Lšœ)˜)Lšœ$žœ˜+—Lšœ$˜$Lšœ˜Lšœ˜—L˜šœH˜HLšœ˜Lšœ8˜8Lšœ˜Lšœ˜Lšœ˜Lšœ˜Lšœ žœ žœ˜#—L˜LšœF˜FL˜L˜Lšœ"™"L˜šœ˜šœ˜Lšœ)˜)Lšœ$žœ˜+—Lšœ˜Lšœ˜L˜Lšœ˜—L˜šœ˜šœ˜Lšœ0˜0Lšœ)˜)Lšœ$žœ˜+—Lšœ˜Lšœ˜L˜Lšœ˜—L˜šœ˜šœ˜Lšœ0˜0Lšœ)˜)Lšœ$žœ˜+—Lšœ˜Lšœ˜L˜Lšœ˜—L˜šœ˜Lšœ…žœ˜ŒLšœ˜Lšœ˜Lšœ˜L˜—šœG˜GLšœ˜Lšœ6˜6Lšœ˜Lšœ˜Lšœ˜Lšœ ˜ Lšœ žœ žœ˜#—L˜LšœF˜FL˜šœ˜Lšœmžœ"˜”Lšœ˜Lšœ˜—L˜šœ˜Lšœ•žœ˜œLšœ˜Lšœ˜Lšœ˜—L˜šœ˜Lšœ‹žœ˜’Lšœ˜Lšœ˜Lšœ˜—L˜šœ˜LšœŒžœ˜“Lšœ˜Lšœ˜Lšœ˜—L˜šœ˜Lšœ‹žœ˜’Lšœ˜Lšœ˜Lšœ˜L˜—šœ˜Lšœžœ˜”Lšœ˜Lšœ˜Lšœ˜—L˜šœ˜Lšœžœ˜”Lšœ˜Lšœ˜Lšœ˜—L˜L˜LšœF˜FL˜Lšœก˜"—L˜L˜Lšžœ˜L˜J˜—…—A\_u