<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:UMLLabProfile="http:///schemas/UMLLabProfile/NS/0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http:///schemas/UMLLabProfile/NS/0 pathmap://UMLLAB_PROFILES/UMLLab.profile.uml#UMLLabProfile-Annotation_2-UMLLabProfile">
  <uml:Model xmi:id="_xR78UMR4EeW_3q3XSh-SYw" name="Gizmo_Ball">
    <eAnnotations xmi:id="_xd_bUMR4EeW_3q3XSh-SYw" source="http://ns.yatta.de/umllab">
      <contents xmi:type="ecore:EAnnotation" xmi:id="_xeACYMR4EeW_3q3XSh-SYw" source="codegen">
        <details xmi:id="_xeACYcR4EeW_3q3XSh-SYw" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
        <details xmi:id="_ydCdgMR4EeW_3q3XSh-SYw" key="AssociatedSourceCode" value="/GitHub-Gizmo Ball/src/controller/AMainListener.java;2633361057/1;/GitHub-Gizmo Ball/src/controller/AddGizmoListener.java;2611145066/1;/GitHub-Gizmo Ball/src/controller/BuildModeMainListener.java;3676908478/1;/GitHub-Gizmo Ball/src/controller/ChangeBallConfigListener.java;1353574560/1;/GitHub-Gizmo Ball/src/controller/ConnectGizmoListener.java;125141148/1;/GitHub-Gizmo Ball/src/controller/ConnectKeyListener.java;2183007945/1;/GitHub-Gizmo Ball/src/controller/DeleteGizmoListener.java;4023980371/1;/GitHub-Gizmo Ball/src/controller/LoadFileListener.java;606803937/1;/GitHub-Gizmo Ball/src/controller/MagicKeyListenerWrapper.java;3942618863/1;/GitHub-Gizmo Ball/src/controller/MoveGizmoListener.java;3092957718/1;/GitHub-Gizmo Ball/src/controller/PhysicsConfigListener.java;4854713/1;/GitHub-Gizmo Ball/src/controller/PlayGameListener.java;4106492722/1;/GitHub-Gizmo Ball/src/controller/PlayModeMainListener.java;1097901961/1;/GitHub-Gizmo Ball/src/controller/RotateGizmoListener.java;71144818/1;/GitHub-Gizmo Ball/src/controller/SaveFileListener.java;1183788084/1;/GitHub-Gizmo Ball/src/controller/StartGameListener.java;1053042881/1;/GitHub-Gizmo Ball/src/controller/StopGameListener.java;2898317036/1;/GitHub-Gizmo Ball/src/controller/UndoRedoListener.java;1680999987/1;/GitHub-Gizmo Ball/src/controller/WindowListener.java;2443356617/1;/GitHub-Gizmo Ball/src/model/AGizmoComponent.java;1103387728/1;/GitHub-Gizmo Ball/src/model/AStatueGizmo.java;112924845/1;/GitHub-Gizmo Ball/src/model/Absorber.java;3775101543/1;/GitHub-Gizmo Ball/src/model/Ball.java;2300798740/1;/GitHub-Gizmo Ball/src/model/CircularBumper.java;2599831812/1;/GitHub-Gizmo Ball/src/model/CollisionDetails.java;2681536146/1;/GitHub-Gizmo Ball/src/model/Connections.java;3752613450/1;/GitHub-Gizmo Ball/src/model/Flipper.java;3070593286/1;/GitHub-Gizmo Ball/src/model/ILineSegmentCollider.java;412807130/1;/GitHub-Gizmo Ball/src/model/IMainEngine.java;1555568954/1;/GitHub-Gizmo Ball/src/model/ISaveDataEngine.java;1845838742/1;/GitHub-Gizmo Ball/src/view/PlayBoard.java;3237465244/1;/GitHub-Gizmo Ball/src/model/PhysicsConfig.java;4176139110/1;/GitHub-Gizmo Ball/src/model/SaveDataEngine.java;1354242392/1;/GitHub-Gizmo Ball/src/model/SquareBumper.java;3800285582/1;/GitHub-Gizmo Ball/src/model/TriangularBumper.java;3904516545/1;/GitHub-Gizmo Ball/src/model/Walls.java;2535839128/1;/GitHub-Gizmo Ball/src/view/BuildBoard.java;2967339088/1;/GitHub-Gizmo Ball/src/view/BuildMenu.java;4059663324/1;/GitHub-Gizmo Ball/src/view/GameWindow.java;4066921076/1;/GitHub-Gizmo Ball/src/view/IBoard.java;2379225686/1;/GitHub-Gizmo Ball/src/view/IGameWindow.java;616764295/1;/GitHub-Gizmo Ball/src/view/IMenu.java;4008762887/1;/GitHub-Gizmo Ball/src/model/MainEngine.java;1229481599/1;/GitHub-Gizmo Ball/src/view/PlayMenu.java;662813586/1;/GitHub-Gizmo Ball/src/model/AMovableGizmo.java;1850619283/1;/GitHub-Gizmo Ball/src/model/SpecialCollisionHandler.java;2584468828/1;"/>
      </contents>
      <contents xmi:type="ecore:EAnnotation" xmi:id="_Ee-WsMoQEeWsA83iBWrPKA" source="preferences">
        <contents xmi:type="ecore:EAnnotation" xmi:id="_Ee-WscoQEeWsA83iBWrPKA" source="com.yattasolutions.codegen.reverse">
          <details xmi:id="_Ee-WssoQEeWsA83iBWrPKA" key="com.yattasolutions.codegen.reverse.roundtrip.ReverseEngineerNewFiles" value="true"/>
          <details xmi:id="_Ee-Ws8oQEeWsA83iBWrPKA" key="com.yattasolutions.codegen.reverse.roundtrip.ReverseEngineerChangedFiles" value="true"/>
          <details xmi:id="_Ee-WtMoQEeWsA83iBWrPKA" key="com.yattasolutions.codegen.reverse.roundtrip.RemoveDeletedFiles" value="true"/>
        </contents>
      </contents>
    </eAnnotations>
    <elementImport xmi:id="_xvEkQMR4EeW_3q3XSh-SYw">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
    </elementImport>
    <elementImport xmi:id="_xvFLUMR4EeW_3q3XSh-SYw">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
    </elementImport>
    <elementImport xmi:id="_xvFLUcR4EeW_3q3XSh-SYw">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
    </elementImport>
    <elementImport xmi:id="_xvFLUsR4EeW_3q3XSh-SYw">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
    </elementImport>
    <elementImport xmi:id="_xvFLU8R4EeW_3q3XSh-SYw">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
    </elementImport>
    <elementImport xmi:id="_xvFyYMR4EeW_3q3XSh-SYw">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
    </elementImport>
    <elementImport xmi:id="_xvFyYcR4EeW_3q3XSh-SYw">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
    </elementImport>
    <elementImport xmi:id="_xvFyYsR4EeW_3q3XSh-SYw">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
    </elementImport>
    <elementImport xmi:id="_xvGZcMR4EeW_3q3XSh-SYw">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
    </elementImport>
    <packagedElement xmi:type="uml:Class" xmi:id="_K74RQMonEeWI07Wu9tqfCA" name="ActionListener"/>
    <packagedElement xmi:type="uml:Package" xmi:id="_xvL5AMR4EeW_3q3XSh-SYw" name="java">
      <packagedElement xmi:type="uml:Package" xmi:id="_xvMgEMR4EeW_3q3XSh-SYw" name="awt">
        <packagedElement xmi:type="uml:Class" xmi:id="_xyrR4MR4EeW_3q3XSh-SYw" name="Component"/>
        <packagedElement xmi:type="uml:Package" xmi:id="_xvNHIMR4EeW_3q3XSh-SYw" name="event">
          <packagedElement xmi:type="uml:Class" xmi:id="_xyazMMR4EeW_3q3XSh-SYw" name="ActionEvent"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_xyg50MR4EeW_3q3XSh-SYw" name="KeyEvent"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_xylLQMR4EeW_3q3XSh-SYw" name="MouseEvent"/>
          <packagedElement xmi:type="uml:Interface" xmi:id="_xylyUcR4EeW_3q3XSh-SYw" name="MouseListener"/>
          <packagedElement xmi:type="uml:Interface" xmi:id="_xypcsMR4EeW_3q3XSh-SYw" name="MouseMotionListener"/>
          <packagedElement xmi:type="uml:Interface" xmi:id="_IRJl0MomEeWI07Wu9tqfCA" name="ActionListener"/>
          <packagedElement xmi:type="uml:Interface" xmi:id="_IRKz8MomEeWI07Wu9tqfCA" name="KeyListener"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_xy4tQMR4EeW_3q3XSh-SYw" name="Graphics"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3j10MoQEeWsA83iBWrPKA" name="Color"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3kc4coQEeWsA83iBWrPKA" name="Dimension"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3oHQcoQEeWsA83iBWrPKA" name="Button"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3ouUcoQEeWsA83iBWrPKA" name="EventQueue"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3pVYcoQEeWsA83iBWrPKA" name="FlowLayout"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3p8ccoQEeWsA83iBWrPKA" name="Font"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3qjgcoQEeWsA83iBWrPKA" name="GridBagConstraints"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3rKkMoQEeWsA83iBWrPKA" name="GridBagLayout"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3rxoMoQEeWsA83iBWrPKA" name="GridLayout"/>
        <packagedElement xmi:type="uml:Interface" xmi:id="_hBFaIM-TEeWOGvD12nE26A" name="Shape"/>
        <packagedElement xmi:type="uml:Package" xmi:id="_aP4B8OeCEeWktpDGdewXHA" name="geom">
          <packagedElement xmi:type="uml:Class" xmi:id="_ar0XEOeCEeWktpDGdewXHA" name="Ellipse2D"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_asAkUOeCEeWktpDGdewXHA" name="AffineTransform"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_asBycOeCEeWktpDGdewXHA" name="NoninvertibleTransformException"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_asCZgeeCEeWktpDGdewXHA" name="RoundRectangle2D"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_arwFoOeCEeWktpDGdewXHA" name="Rectangle"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asRDAOeCEeWktpDGdewXHA" name="Polygon"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asTfQOeCEeWktpDGdewXHA" name="AlphaComposite"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asUGUeeCEeWktpDGdewXHA" name="Graphics2D"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asUtYeeCEeWktpDGdewXHA" name="RenderingHints"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_xvv5ssR4EeW_3q3XSh-SYw" name="util">
        <packagedElement xmi:type="uml:Interface" xmi:id="_xytHEcR4EeW_3q3XSh-SYw" name="Set"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_xyuVMcR4EeW_3q3XSh-SYw" name="HashSet"/>
        <packagedElement xmi:type="uml:Interface" xmi:id="_xyu8QcR4EeW_3q3XSh-SYw" name="Iterator"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_xy57YcR4EeW_3q3XSh-SYw" name="Observable"/>
        <packagedElement xmi:type="uml:Interface" xmi:id="_xy7JgcR4EeW_3q3XSh-SYw" name="Observer"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_-f0r4M-aEeWOGvD12nE26A" name="ArrayList"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_sA-V0NptEeWelou951FNPg" name="HashMap"/>
        <packagedElement xmi:type="uml:Interface" xmi:id="_sA-84dptEeWelou951FNPg" name="Map"/>
        <packagedElement xmi:type="uml:Interface" xmi:id="_PIDF4NpxEeWelou951FNPg" name="List"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asDAkeeCEeWktpDGdewXHA" name="Vector"/>
        <packagedElement xmi:type="uml:Interface" xmi:id="_asGq8OeCEeWktpDGdewXHA" name="Collection"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asN_seeCEeWktpDGdewXHA" name="StringTokenizer"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_xznGAMR4EeW_3q3XSh-SYw" name="lang">
        <packagedElement xmi:type="uml:Interface" xmi:id="_xznGAcR4EeW_3q3XSh-SYw" name="Runnable"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_xzuawMR4EeW_3q3XSh-SYw" name="Object"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_f0-pUNqJEeW7l6s7iyoCaQ" name="Class"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_aQVU8OeCEeWktpDGdewXHA" name="io">
        <packagedElement xmi:type="uml:Class" xmi:id="_asK8YOeCEeWktpDGdewXHA" name="BufferedReader"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asMKgOeCEeWktpDGdewXHA" name="File"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asMxkOeCEeWktpDGdewXHA" name="FileReader"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asNYoeeCEeWktpDGdewXHA" name="IOException"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_xvTNwMR4EeW_3q3XSh-SYw" name="controller">
      <packagedElement xmi:type="uml:Class" xmi:id="_xwx0ccR4EeW_3q3XSh-SYw" name="MagicKeyListenerWrapper">
        <eAnnotations xmi:id="_ajxioM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_ajxioc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_ajxios9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedComment xmi:id="_auJ5YOeCEeWktpDGdewXHA">
          <body>**************************************************************************&#xD;
Copyright (C) 2001 by the Massachusetts Institute of Technology,&#xD;
                      Cambridge, Massachusetts.&#xD;
 *&#xD;
                       All Rights Reserved&#xD;
 *&#xD;
Permission to use, copy, modify, and distribute this software and&#xD;
its documentation for any purpose and without fee is hereby&#xD;
granted, provided that the above copyright notice appear in all&#xD;
copies and that both that copyright notice and this permission&#xD;
notice appear in supporting documentation, and that MIT's name not&#xD;
be used in advertising or publicity pertaining to distribution of&#xD;
the software without specific, written prior permission.&#xD;
 *&#xD;
THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY DISCLAIMS ALL WARRANTIES&#xD;
WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF&#xD;
MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL THE MASSACHUSETTS&#xD;
INSTITUTE OF TECHNOLOGY BE LIABLE FOR ANY SPECIAL, INDIRECT OR&#xD;
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS&#xD;
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,&#xD;
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN&#xD;
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.&#xD;
 *&#xD;
 **************************************************************************</body>
        </ownedComment>
        <ownedAttribute xmi:id="_xz1vgMR4EeW_3q3XSh-SYw" name="adaptee" visibility="private" isLeaf="true" type="_IRKz8MomEeWI07Wu9tqfCA" isReadOnly="true" association="_x0SbcMR4EeW_3q3XSh-SYw"/>
        <ownedAttribute xmi:id="_xz2WkcR4EeW_3q3XSh-SYw" name="real" visibility="private" isLeaf="true" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xz29oMR4EeW_3q3XSh-SYw" value="*"/>
          <defaultValue xmi:type="uml:LiteralString" xmi:id="_xz29ocR4EeW_3q3XSh-SYw" value="new HashSet&lt;Integer>()"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_xz3kscR4EeW_3q3XSh-SYw" name="announced" visibility="private" isLeaf="true" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xz4LwMR4EeW_3q3XSh-SYw" value="*"/>
          <defaultValue xmi:type="uml:LiteralString" xmi:id="_xz4LwcR4EeW_3q3XSh-SYw" value="new HashSet&lt;Integer>()"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_xz4y0cR4EeW_3q3XSh-SYw" name="assumeAllReleased" visibility="private" isLeaf="true" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
        </ownedAttribute>
        <interfaceRealization xmi:id="_z8j10MomEeWI07Wu9tqfCA" client="_xwx0ccR4EeW_3q3XSh-SYw" supplier="_IRKz8MomEeWI07Wu9tqfCA" contract="_IRKz8MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0JRgMR4EeW_3q3XSh-SYw" name="MagicKeyListenerWrapper" specification="_xzjboMR4EeW_3q3XSh-SYw">
          <ownedParameter xmi:id="_9hBOoMomEeWI07Wu9tqfCA" name="adaptee" type="_IRKz8MomEeWI07Wu9tqfCA"/>
          <ownedParameter xmi:id="_9hBOocomEeWI07Wu9tqfCA" type="_xwx0ccR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>this(adaptee, false);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0JRhMR4EeW_3q3XSh-SYw" name="marker" specification="_xzkpwMR4EeW_3q3XSh-SYw">
          <ownedParameter xmi:id="_x0JRhcR4EeW_3q3XSh-SYw" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_x0JRhsR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
          </ownedParameter>
          <language>java</language>
          <body>return new Integer(e.getKeyCode());&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0JRh8R4EeW_3q3XSh-SYw" name="eventFromMarker" specification="_xzlQ0MR4EeW_3q3XSh-SYw">
          <ownedParameter xmi:id="_x0JRiMR4EeW_3q3XSh-SYw" name="marker">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
          </ownedParameter>
          <ownedParameter xmi:id="_x0JRicR4EeW_3q3XSh-SYw" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_x0JRisR4EeW_3q3XSh-SYw" type="_xyg50MR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>Component source = e.getComponent();&#xD;
		int id = e.getID();&#xD;
		long when = e.getWhen();&#xD;
		int modifiers = e.getModifiers();&#xD;
		int keyCode = marker.intValue();&#xD;
		char keyChar = e.getKeyChar();&#xD;
&#xD;
		return new KeyEvent(source, id, when, modifiers, keyCode, keyChar);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0J4kMR4EeW_3q3XSh-SYw" name="keyPressed" specification="_xzl34MR4EeW_3q3XSh-SYw">
          <ownedParameter xmi:id="_x0J4kcR4EeW_3q3XSh-SYw" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>real.add(marker(e));&#xD;
		SwingUtilities.invokeLater(new KeyPressedLater(e));&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0J4ksR4EeW_3q3XSh-SYw" name="keyReleased" specification="_xzme8MR4EeW_3q3XSh-SYw">
          <ownedParameter xmi:id="_x0J4k8R4EeW_3q3XSh-SYw" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>real.remove(marker(e));&#xD;
		SwingUtilities.invokeLater(new KeyReleasedLater(e));&#xD;
&#xD;
		if (assumeAllReleased) {&#xD;
			while (!real.isEmpty()) {&#xD;
				Integer marker;&#xD;
				{&#xD;
					Iterator&lt;Integer> chooser = real.iterator();&#xD;
					marker = chooser.next();&#xD;
					chooser.remove();&#xD;
				}&#xD;
				KeyEvent event = eventFromMarker(marker, e);&#xD;
				SwingUtilities.invokeLater(new KeyReleasedLater(event));&#xD;
			}&#xD;
		}&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0J4lMR4EeW_3q3XSh-SYw" name="keyTyped" specification="_xzme8sR4EeW_3q3XSh-SYw">
          <ownedParameter xmi:id="_x0J4lcR4EeW_3q3XSh-SYw" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>SwingUtilities.invokeLater(new KeyTypedLater(e));&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_z8lrAsomEeWI07Wu9tqfCA" name="MagicKeyListenerWrapper" specification="_z8iAoMomEeWI07Wu9tqfCA">
          <ownedParameter xmi:id="_9hAnkMomEeWI07Wu9tqfCA" type="_xwx0ccR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <ownedParameter xmi:id="_9hAnkcomEeWI07Wu9tqfCA" name="adaptee" type="_IRKz8MomEeWI07Wu9tqfCA"/>
          <ownedParameter xmi:id="_9hAnksomEeWI07Wu9tqfCA" name="assumeAllReleased">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>if (adaptee == null)&#xD;
			throw new IllegalArgumentException();&#xD;
		this.adaptee = adaptee;&#xD;
		this.assumeAllReleased = assumeAllReleased;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_xzjboMR4EeW_3q3XSh-SYw" name="MagicKeyListenerWrapper" method="_x0JRgMR4EeW_3q3XSh-SYw">
          <eAnnotations xmi:id="_xzkCsMR4EeW_3q3XSh-SYw" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_xzkCscR4EeW_3q3XSh-SYw" key="create"/>
          </eAnnotations>
          <ownedComment xmi:id="_auJ5YeeCEeWktpDGdewXHA">
            <body>@requires adaptee != null&#xD;
	 * &#xD;
	 * @effects creates a new MagicKeyListener without the generation of&#xD;
	 * additional key release events (the third option given in the&#xD;
	 * class overview is disabled).</body>
          </ownedComment>
          <ownedParameter xmi:id="_xzjbocR4EeW_3q3XSh-SYw" name="adaptee" type="_IRKz8MomEeWI07Wu9tqfCA"/>
          <ownedParameter xmi:id="_xzkCssR4EeW_3q3XSh-SYw" type="_xwx0ccR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_xzkpwMR4EeW_3q3XSh-SYw" name="marker" visibility="private" isStatic="true" method="_x0JRhMR4EeW_3q3XSh-SYw">
          <ownedComment xmi:id="_auJ5Y-eCEeWktpDGdewXHA">
            <body>@returns an immutable object which is representative of the key&#xD;
	 * associated with the given event</body>
          </ownedComment>
          <ownedParameter xmi:id="_xzkpwcR4EeW_3q3XSh-SYw" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_xzkpwsR4EeW_3q3XSh-SYw" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_xzlQ0MR4EeW_3q3XSh-SYw" name="eventFromMarker" visibility="private" isStatic="true" method="_x0JRh8R4EeW_3q3XSh-SYw">
          <ownedComment xmi:id="_auKgcOeCEeWktpDGdewXHA">
            <body>@returns an event which is constructed from the given immutable&#xD;
	 * key (from the marker method) and a template event.</body>
          </ownedComment>
          <ownedParameter xmi:id="_xzlQ0cR4EeW_3q3XSh-SYw" name="marker">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
          </ownedParameter>
          <ownedParameter xmi:id="_xzlQ0sR4EeW_3q3XSh-SYw" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_xzlQ08R4EeW_3q3XSh-SYw" type="_xyg50MR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_xzl34MR4EeW_3q3XSh-SYw" name="keyPressed" method="_x0J4kMR4EeW_3q3XSh-SYw">
          <ownedComment xmi:id="_auKgceeCEeWktpDGdewXHA">
            <body>@effects Acts on the given event as specified in the class overview.</body>
          </ownedComment>
          <ownedParameter xmi:id="_xzl34cR4EeW_3q3XSh-SYw" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_xzme8MR4EeW_3q3XSh-SYw" name="keyReleased" method="_x0J4ksR4EeW_3q3XSh-SYw">
          <ownedComment xmi:id="_auKgcueCEeWktpDGdewXHA">
            <body>@effects Acts on the given event as specified in the class overview.</body>
          </ownedComment>
          <ownedParameter xmi:id="_xzme8cR4EeW_3q3XSh-SYw" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_xzme8sR4EeW_3q3XSh-SYw" name="keyTyped" method="_x0J4lMR4EeW_3q3XSh-SYw">
          <ownedComment xmi:id="_auKgc-eCEeWktpDGdewXHA">
            <body>@effects Acts on the given event as specified in the class overview</body>
          </ownedComment>
          <ownedParameter xmi:id="_xzme88R4EeW_3q3XSh-SYw" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_z8iAoMomEeWI07Wu9tqfCA" name="MagicKeyListenerWrapper" method="_z8lrAsomEeWI07Wu9tqfCA">
          <eAnnotations xmi:id="_z8iApMomEeWI07Wu9tqfCA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_z8insMomEeWI07Wu9tqfCA" key="create"/>
          </eAnnotations>
          <ownedComment xmi:id="_auJ5YueCEeWktpDGdewXHA">
            <body>@requires adaptee != null&#xD;
	 *&#xD;
	 * @param assumeAllReleased enables the third option listed in the&#xD;
	 * class overview, namely that any key release event implies that&#xD;
	 * all keys have been released.&#xD;
	 *&#xD;
	 * @effects creates a new MagicKeyListener.</body>
          </ownedComment>
          <ownedParameter xmi:id="_z8iAo8omEeWI07Wu9tqfCA" type="_xwx0ccR4EeW_3q3XSh-SYw" direction="return"/>
          <ownedParameter xmi:id="_xziNgcR4EeW_3q3XSh-SYw" name="adaptee" type="_IRKz8MomEeWI07Wu9tqfCA"/>
          <ownedParameter xmi:id="_z8lrBMomEeWI07Wu9tqfCA" name="assumeAllReleased">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <nestedClassifier xmi:type="uml:Class" xmi:id="_xw3UAMR4EeW_3q3XSh-SYw" name="KeyTypedLater" visibility="private">
          <ownedComment xmi:id="_auKgdOeCEeWktpDGdewXHA">
            <body>A simple class which forms a closure around a key typed event.&#xD;
	 * When run, it fires the event to the keyTyped method of the&#xD;
	 * adaptee.</body>
          </ownedComment>
          <ownedAttribute xmi:id="_xz5Z4cR4EeW_3q3XSh-SYw" name="event" visibility="private" isLeaf="true" type="_xyg50MR4EeW_3q3XSh-SYw" isReadOnly="true" association="_x0TpkMR4EeW_3q3XSh-SYw"/>
          <interfaceRealization xmi:id="_xzntEcR4EeW_3q3XSh-SYw" client="_xw3UAMR4EeW_3q3XSh-SYw" supplier="_xznGAcR4EeW_3q3XSh-SYw" contract="_xznGAcR4EeW_3q3XSh-SYw"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0J4lsR4EeW_3q3XSh-SYw" name="KeyTypedLater" specification="_xzoUIMR4EeW_3q3XSh-SYw">
            <ownedParameter xmi:id="_x0J4l8R4EeW_3q3XSh-SYw" name="event" type="_xyg50MR4EeW_3q3XSh-SYw"/>
            <ownedParameter xmi:id="_x0J4mMR4EeW_3q3XSh-SYw" type="_xw3UAMR4EeW_3q3XSh-SYw" direction="return">
              <name xsi:nil="true"/>
            </ownedParameter>
            <language>java</language>
            <body>this.event = event;&#xD;
		</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0J4mcR4EeW_3q3XSh-SYw" name="run" specification="_xw6XUMR4EeW_3q3XSh-SYw">
            <language>java</language>
            <body>adaptee.keyTyped(event);&#xD;
		</body>
          </ownedBehavior>
          <ownedOperation xmi:id="_xw6XUMR4EeW_3q3XSh-SYw" name="run" method="_x0J4mcR4EeW_3q3XSh-SYw"/>
          <ownedOperation xmi:id="_xzoUIMR4EeW_3q3XSh-SYw" name="KeyTypedLater" visibility="private" method="_x0J4lsR4EeW_3q3XSh-SYw">
            <eAnnotations xmi:id="_xzoUIsR4EeW_3q3XSh-SYw" source="http://www.eclipse.org/uml2/2.0.0/UML">
              <details xmi:id="_xzoUI8R4EeW_3q3XSh-SYw" key="create"/>
            </eAnnotations>
            <ownedParameter xmi:id="_xzoUIcR4EeW_3q3XSh-SYw" name="event" type="_xyg50MR4EeW_3q3XSh-SYw"/>
            <ownedParameter xmi:id="_xzoUJMR4EeW_3q3XSh-SYw" type="_xw3UAMR4EeW_3q3XSh-SYw" direction="return"/>
          </ownedOperation>
        </nestedClassifier>
        <nestedClassifier xmi:type="uml:Class" xmi:id="_xw9aoMR4EeW_3q3XSh-SYw" name="KeyPressedLater" visibility="private">
          <ownedComment xmi:id="_auKgdeeCEeWktpDGdewXHA">
            <body>A simple class which forms a closure around an key pressed event.&#xD;
	 * When run, it fires the event to the keyPressed method of the&#xD;
	 * adaptee only if the pressed keyset still contains this key and&#xD;
	 * the adaptee has not already been informed.</body>
          </ownedComment>
          <ownedAttribute xmi:id="_xz6A8cR4EeW_3q3XSh-SYw" name="event" visibility="private" isLeaf="true" type="_xyg50MR4EeW_3q3XSh-SYw" isReadOnly="true" association="_x0UQocR4EeW_3q3XSh-SYw"/>
          <interfaceRealization xmi:id="_xzo7MMR4EeW_3q3XSh-SYw" client="_xw9aoMR4EeW_3q3XSh-SYw" supplier="_xznGAcR4EeW_3q3XSh-SYw" contract="_xznGAcR4EeW_3q3XSh-SYw"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0KfoMR4EeW_3q3XSh-SYw" name="KeyPressedLater" specification="_xzo7McR4EeW_3q3XSh-SYw">
            <ownedParameter xmi:id="_x0KfocR4EeW_3q3XSh-SYw" name="event" type="_xyg50MR4EeW_3q3XSh-SYw"/>
            <ownedParameter xmi:id="_x0KfosR4EeW_3q3XSh-SYw" type="_xw9aoMR4EeW_3q3XSh-SYw" direction="return">
              <name xsi:nil="true"/>
            </ownedParameter>
            <language>java</language>
            <body>this.event = event;&#xD;
		</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0Kfo8R4EeW_3q3XSh-SYw" name="run" specification="_xw-owMR4EeW_3q3XSh-SYw">
            <language>java</language>
            <body>Integer key = marker(event);&#xD;
			if (real.contains(key) &amp;&amp; !announced.contains(key)) {&#xD;
				announced.add(key);&#xD;
				adaptee.keyPressed(event);&#xD;
			}&#xD;
		</body>
          </ownedBehavior>
          <ownedOperation xmi:id="_xw-owMR4EeW_3q3XSh-SYw" name="run" method="_x0Kfo8R4EeW_3q3XSh-SYw"/>
          <ownedOperation xmi:id="_xzo7McR4EeW_3q3XSh-SYw" name="KeyPressedLater" visibility="private" method="_x0KfoMR4EeW_3q3XSh-SYw">
            <eAnnotations xmi:id="_xzpiQcR4EeW_3q3XSh-SYw" source="http://www.eclipse.org/uml2/2.0.0/UML">
              <details xmi:id="_xzpiQsR4EeW_3q3XSh-SYw" key="create"/>
            </eAnnotations>
            <ownedParameter xmi:id="_xzpiQMR4EeW_3q3XSh-SYw" name="event" type="_xyg50MR4EeW_3q3XSh-SYw"/>
            <ownedParameter xmi:id="_xzpiQ8R4EeW_3q3XSh-SYw" type="_xw9aoMR4EeW_3q3XSh-SYw" direction="return"/>
          </ownedOperation>
        </nestedClassifier>
        <nestedClassifier xmi:type="uml:Class" xmi:id="_xxAd8MR4EeW_3q3XSh-SYw" name="KeyReleasedLater" visibility="private">
          <ownedComment xmi:id="_auKgdueCEeWktpDGdewXHA">
            <body>A simple class which forms a closure around an key released&#xD;
	 * event.  When run, it fires the event to the keyReleased method of&#xD;
	 * the adaptee only if the pressed keyset does not contains this key&#xD;
	 * and the adaptee has not already been informed of the release.</body>
          </ownedComment>
          <ownedAttribute xmi:id="_xz6oAcR4EeW_3q3XSh-SYw" name="event" visibility="private" isLeaf="true" type="_xyg50MR4EeW_3q3XSh-SYw" isReadOnly="true" association="_x0VewMR4EeW_3q3XSh-SYw"/>
          <interfaceRealization xmi:id="_xzqJUMR4EeW_3q3XSh-SYw" client="_xxAd8MR4EeW_3q3XSh-SYw" supplier="_xznGAcR4EeW_3q3XSh-SYw" contract="_xznGAcR4EeW_3q3XSh-SYw"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0KfpMR4EeW_3q3XSh-SYw" name="KeyReleasedLater" specification="_xzqJUcR4EeW_3q3XSh-SYw">
            <ownedParameter xmi:id="_x0KfpcR4EeW_3q3XSh-SYw" name="event" type="_xyg50MR4EeW_3q3XSh-SYw"/>
            <ownedParameter xmi:id="_x0KfpsR4EeW_3q3XSh-SYw" type="_xxAd8MR4EeW_3q3XSh-SYw" direction="return">
              <name xsi:nil="true"/>
            </ownedParameter>
            <language>java</language>
            <body>this.event = event;&#xD;
		</body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_x0Kfp8R4EeW_3q3XSh-SYw" name="run" specification="_xxBsEMR4EeW_3q3XSh-SYw">
            <language>java</language>
            <body>Integer key = marker(event);&#xD;
			if (!real.contains(key) &amp;&amp; announced.contains(key)) {&#xD;
				announced.remove(key);&#xD;
				adaptee.keyReleased(event);&#xD;
			}&#xD;
		</body>
          </ownedBehavior>
          <ownedOperation xmi:id="_xxBsEMR4EeW_3q3XSh-SYw" name="run" method="_x0Kfp8R4EeW_3q3XSh-SYw"/>
          <ownedOperation xmi:id="_xzqJUcR4EeW_3q3XSh-SYw" name="KeyReleasedLater" visibility="private" method="_x0KfpMR4EeW_3q3XSh-SYw">
            <eAnnotations xmi:id="_xzqwYMR4EeW_3q3XSh-SYw" source="http://www.eclipse.org/uml2/2.0.0/UML">
              <details xmi:id="_xzqwYcR4EeW_3q3XSh-SYw" key="create"/>
            </eAnnotations>
            <ownedParameter xmi:id="_xzqJUsR4EeW_3q3XSh-SYw" name="event" type="_xyg50MR4EeW_3q3XSh-SYw"/>
            <ownedParameter xmi:id="_xzqwYsR4EeW_3q3XSh-SYw" type="_xxAd8MR4EeW_3q3XSh-SYw" direction="return"/>
          </ownedOperation>
        </nestedClassifier>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_x0SbcMR4EeW_3q3XSh-SYw" name="" memberEnd="_x0SbccR4EeW_3q3XSh-SYw _xz1vgMR4EeW_3q3XSh-SYw">
        <ownedEnd xmi:id="_x0SbccR4EeW_3q3XSh-SYw" name="" type="_xwx0ccR4EeW_3q3XSh-SYw" association="_x0SbcMR4EeW_3q3XSh-SYw"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_x0TpkMR4EeW_3q3XSh-SYw" name="" memberEnd="_x0TpkcR4EeW_3q3XSh-SYw _xz5Z4cR4EeW_3q3XSh-SYw">
        <ownedEnd xmi:id="_x0TpkcR4EeW_3q3XSh-SYw" name="" type="_xw3UAMR4EeW_3q3XSh-SYw" association="_x0TpkMR4EeW_3q3XSh-SYw"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_x0UQocR4EeW_3q3XSh-SYw" name="" memberEnd="_x0UQosR4EeW_3q3XSh-SYw _xz6A8cR4EeW_3q3XSh-SYw">
        <ownedEnd xmi:id="_x0UQosR4EeW_3q3XSh-SYw" name="" type="_xw9aoMR4EeW_3q3XSh-SYw" association="_x0UQocR4EeW_3q3XSh-SYw"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_x0VewMR4EeW_3q3XSh-SYw" name="" memberEnd="_x0VewcR4EeW_3q3XSh-SYw _xz6oAcR4EeW_3q3XSh-SYw">
        <ownedEnd xmi:id="_x0VewcR4EeW_3q3XSh-SYw" name="" type="_xxAd8MR4EeW_3q3XSh-SYw" association="_x0VewMR4EeW_3q3XSh-SYw"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_E3mSEMoQEeWsA83iBWrPKA" name="AddGizmoListener">
        <eAnnotations xmi:id="_ajoYsM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_ajoYsc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_ajo_wM9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_PG-QIMoQEeWsA83iBWrPKA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_PHTAQMoQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_G5R-gMonEeWI07Wu9tqfCA" client="_E3mSEMoQEeWsA83iBWrPKA" supplier="_IRLbAMomEeWI07Wu9tqfCA" contract="_IRLbAMomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWD0kN_TEeWK7oluzFDNQQ" name="AddGizmoListener" specification="_dUDCYN_TEeWK7oluzFDNQQ">
          <ownedParameter xmi:id="_dWD0kd_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dWD0kt_TEeWK7oluzFDNQQ" type="_E3mSEMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PF88cMoQEeWsA83iBWrPKA" name="mouseDragged">
          <ownedParameter xmi:id="_PF9jgMoQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PF-xoMoQEeWsA83iBWrPKA" name="mouseMoved">
          <ownedParameter xmi:id="_PF-xocoQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PF_YssoQEeWsA83iBWrPKA" name="mouseClicked">
          <ownedParameter xmi:id="_PF_Ys8oQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PF__w8oQEeWsA83iBWrPKA" name="mouseEntered">
          <ownedParameter xmi:id="_PF__xMoQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGAm08oQEeWsA83iBWrPKA" name="mouseExited">
          <ownedParameter xmi:id="_PGAm1MoQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGBN4soQEeWsA83iBWrPKA" name="mousePressed">
          <ownedParameter xmi:id="_PGB08MoQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGCcAsoQEeWsA83iBWrPKA" name="mouseReleased">
          <ownedParameter xmi:id="_PGCcA8oQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_dUDCYN_TEeWK7oluzFDNQQ" name="AddGizmoListener" method="_dWD0kN_TEeWK7oluzFDNQQ">
          <eAnnotations xmi:id="_dUDpcN_TEeWK7oluzFDNQQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_dUDpcd_TEeWK7oluzFDNQQ" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_dUDCYd_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dUDCYt_TEeWK7oluzFDNQQ" type="_E3mSEMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_E3m5IMoQEeWsA83iBWrPKA" name="ConnectGizmoListener">
        <eAnnotations xmi:id="_ajrcAM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_ajrcAc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_ajrcAs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_PHAsYMoQEeWsA83iBWrPKA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_PHU1ccoQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_Fwtz8MonEeWI07Wu9tqfCA" client="_E3m5IMoQEeWsA83iBWrPKA" supplier="_IRLbAMomEeWI07Wu9tqfCA" contract="_IRLbAMomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWEboN_TEeWK7oluzFDNQQ" name="ConnectGizmoListener" specification="_dUIh8N_TEeWK7oluzFDNQQ">
          <ownedParameter xmi:id="_dWEbod_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dWEbot_TEeWK7oluzFDNQQ" type="_E3m5IMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGH7kcoQEeWsA83iBWrPKA" name="mouseClicked">
          <ownedParameter xmi:id="_PGIioMoQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGJJssoQEeWsA83iBWrPKA" name="mouseEntered">
          <ownedParameter xmi:id="_PGJJs8oQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGKX0MoQEeWsA83iBWrPKA" name="mouseExited">
          <ownedParameter xmi:id="_PGKX0coQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGK-4soQEeWsA83iBWrPKA" name="mousePressed">
          <ownedParameter xmi:id="_PGK-48oQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGLl88oQEeWsA83iBWrPKA" name="mouseReleased">
          <ownedParameter xmi:id="_PGMNAMoQEeWsA83iBWrPKA" name="arg0" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGM0EsoQEeWsA83iBWrPKA" name="mouseDragged">
          <ownedParameter xmi:id="_PGM0E8oQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGNbIsoQEeWsA83iBWrPKA" name="mouseMoved">
          <ownedParameter xmi:id="_PGOCMMoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_dUIh8N_TEeWK7oluzFDNQQ" name="ConnectGizmoListener" method="_dWEboN_TEeWK7oluzFDNQQ">
          <eAnnotations xmi:id="_dUIh89_TEeWK7oluzFDNQQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_dUIh9N_TEeWK7oluzFDNQQ" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_dUIh8d_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dUIh8t_TEeWK7oluzFDNQQ" type="_E3m5IMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_E3ngMcoQEeWsA83iBWrPKA" name="WindowListener">
        <eAnnotations xmi:id="_aj--AM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_aj--Ac9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_aj--As9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_atCfEOeCEeWktpDGdewXHA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_auqPs-eCEeWktpDGdewXHA"/>
        <interfaceRealization xmi:id="_sF0jEMomEeWI07Wu9tqfCA" client="_E3ngMcoQEeWsA83iBWrPKA" supplier="_IRJl0MomEeWI07Wu9tqfCA" contract="_IRJl0MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCzu5d_HEeWOj8fPzW2xTA" name="WindowListener" specification="_rAEj8N_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rCzu5t_HEeWOj8fPzW2xTA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_rCzu59_HEeWOj8fPzW2xTA" type="_E3ngMcoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGz4EMoQEeWsA83iBWrPKA" name="actionPerformed">
          <ownedParameter xmi:id="_PGz4EcoQEeWsA83iBWrPKA" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rAEj8N_HEeWOj8fPzW2xTA" name="WindowListener" method="_rCzu5d_HEeWOj8fPzW2xTA">
          <eAnnotations xmi:id="_rAEj89_HEeWOj8fPzW2xTA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_rAEj9N_HEeWOj8fPzW2xTA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_rAEj8d_HEeWOj8fPzW2xTA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_rAEj8t_HEeWOj8fPzW2xTA" type="_E3ngMcoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PE9d8MoQEeWsA83iBWrPKA" name="BuildModeMainListener">
        <eAnnotations xmi:id="_ajq08M9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_ajq08c9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_ajq08s9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <generalization xmi:id="_IQrrwMomEeWI07Wu9tqfCA" general="_IQgFkMomEeWI07Wu9tqfCA"/>
        <ownedAttribute xmi:id="_atAC0OeCEeWktpDGdewXHA" name="addGizmoAL" visibility="private" type="_E3mSEMoQEeWsA83iBWrPKA" association="_aupooeeCEeWktpDGdewXHA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCx5sN_HEeWOj8fPzW2xTA" name="actionPerformed" specification="_PGFfUMoQEeWsA83iBWrPKA">
          <ownedParameter xmi:id="_rCx5sd_HEeWOj8fPzW2xTA" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>String actionCmd = e.getActionCommand();&#xD;
		if (actionCmd.equals(&quot;addGizmo&quot;)) {&#xD;
			setBoardMouseListener(addGizmoAL);&#xD;
		} else if (actionCmd.equals(&quot;addBall&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;connect&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;disconnect&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;keyConnect&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;keyDisconnect&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;delete&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;rotate&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;undo&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;redo&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;reloadBoard&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;clear&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;playMode&quot;)) {&#xD;
&#xD;
		}&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atjccOeCEeWktpDGdewXHA" name="BuildModeMainListener" specification="_aq_QoOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atjcceeCEeWktpDGdewXHA" name="model" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_atjccueCEeWktpDGdewXHA" name="board" type="_E32wwMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_atjcc-eCEeWktpDGdewXHA" name="menu" type="_E31iosoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_atjcdOeCEeWktpDGdewXHA" type="_PE9d8MoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>super(model, board, menu);&#xD;
&#xD;
		addGizmoAL = new AddGizmoListener(model);&#xD;
		// TODO Auto-generated constructor stub&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGFfUMoQEeWsA83iBWrPKA" name="actionPerformed" method="_rCx5sN_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_PGFfUcoQEeWsA83iBWrPKA" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aq_QoOeCEeWktpDGdewXHA" name="BuildModeMainListener" method="_atjccOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_aq_3s-eCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_aq_3tOeCEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_aq_3sOeCEeWktpDGdewXHA" name="model" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_aq_3seeCEeWktpDGdewXHA" name="board" type="_E32wwMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_aq_3sueCEeWktpDGdewXHA" name="menu" type="_E31iosoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_aq_3teeCEeWktpDGdewXHA" type="_PE9d8MoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PFELoMoQEeWsA83iBWrPKA" name="ConnectKeyListener">
        <eAnnotations xmi:id="_ajt4QM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_ajt4Qc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_ajt4Qs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_PHBTcMoQEeWsA83iBWrPKA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_PHU1dMoQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_E9sbkMonEeWI07Wu9tqfCA" client="_PFELoMoQEeWsA83iBWrPKA" supplier="_IRKz8MomEeWI07Wu9tqfCA" contract="_IRKz8MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWFCsN_TEeWK7oluzFDNQQ" name="ConnectKeyListener" specification="_dUK-MN_TEeWK7oluzFDNQQ">
          <ownedParameter xmi:id="_dWFCsd_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dWFCst_TEeWK7oluzFDNQQ" type="_PFELoMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGP3YMoQEeWsA83iBWrPKA" name="keyPressed">
          <ownedParameter xmi:id="_PGP3YcoQEeWsA83iBWrPKA" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGRFgcoQEeWsA83iBWrPKA" name="keyReleased">
          <ownedParameter xmi:id="_PGRFgsoQEeWsA83iBWrPKA" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGRsk8oQEeWsA83iBWrPKA" name="keyTyped">
          <ownedParameter xmi:id="_PGRslMoQEeWsA83iBWrPKA" name="e" type="_xyg50MR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_dUK-MN_TEeWK7oluzFDNQQ" name="ConnectKeyListener" method="_dWFCsN_TEeWK7oluzFDNQQ">
          <eAnnotations xmi:id="_dULlQd_TEeWK7oluzFDNQQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_dULlQt_TEeWK7oluzFDNQQ" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_dUK-Md_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dULlQN_TEeWK7oluzFDNQQ" type="_PFELoMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PFGA0MoQEeWsA83iBWrPKA" name="DeleteGizmoListener">
        <eAnnotations xmi:id="_ajvGYM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_ajvGYc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_ajvGYs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_PHB6gMoQEeWsA83iBWrPKA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_PHVcgcoQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_ERgrAMonEeWI07Wu9tqfCA" client="_PFGA0MoQEeWsA83iBWrPKA" supplier="_IRLbAMomEeWI07Wu9tqfCA" contract="_IRLbAMomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWFCs9_TEeWK7oluzFDNQQ" name="DeleteGizmoListener" specification="_dUOokN_TEeWK7oluzFDNQQ">
          <ownedParameter xmi:id="_dWFCtN_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dWFCtd_TEeWK7oluzFDNQQ" type="_PFGA0MoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGUI0coQEeWsA83iBWrPKA" name="mouseDragged">
          <ownedParameter xmi:id="_PGUI0soQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGVW8MoQEeWsA83iBWrPKA" name="mouseMoved">
          <ownedParameter xmi:id="_PGVW8coQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGV-AsoQEeWsA83iBWrPKA" name="mouseClicked">
          <ownedParameter xmi:id="_PGWlEMoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGXMIsoQEeWsA83iBWrPKA" name="mouseEntered">
          <ownedParameter xmi:id="_PGXMI8oQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGXzMsoQEeWsA83iBWrPKA" name="mouseExited">
          <ownedParameter xmi:id="_PGXzM8oQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGYaQsoQEeWsA83iBWrPKA" name="mousePressed">
          <ownedParameter xmi:id="_PGYaQ8oQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGZBU8oQEeWsA83iBWrPKA" name="mouseReleased">
          <ownedParameter xmi:id="_PGZBVMoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_dUOokN_TEeWK7oluzFDNQQ" name="DeleteGizmoListener" method="_dWFCs9_TEeWK7oluzFDNQQ">
          <eAnnotations xmi:id="_dUPPot_TEeWK7oluzFDNQQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_dUPPo9_TEeWK7oluzFDNQQ" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_dUPPoN_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dUPPod_TEeWK7oluzFDNQQ" type="_PFGA0MoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PFJrMMoQEeWsA83iBWrPKA" name="LoadFileListener">
        <eAnnotations xmi:id="_ajwUgM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_ajw7kM9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_ajw7kc9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_PYBx4NqNEeW7l6s7iyoCaQ" name="dataEngine" visibility="private" type="_is7jEMoQEeWsA83iBWrPKA" association="_PYCY8NqNEeW7l6s7iyoCaQ"/>
        <ownedAttribute xmi:id="_atBQ8OeCEeWktpDGdewXHA" name="window" visibility="private" type="_E307kMoQEeWsA83iBWrPKA" association="_auqPsOeCEeWktpDGdewXHA"/>
        <interfaceRealization xmi:id="_7VqKUMomEeWI07Wu9tqfCA" client="_PFJrMMoQEeWsA83iBWrPKA" supplier="_IRJl0MomEeWI07Wu9tqfCA" contract="_IRJl0MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCygw9_HEeWOj8fPzW2xTA" name="actionPerformed" specification="_PGa2gsoQEeWsA83iBWrPKA">
          <ownedParameter xmi:id="_rCygxN_HEeWOj8fPzW2xTA" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>String actionCmd = e.getActionCommand();&#xD;
&#xD;
		if (actionCmd.equals(&quot;load&quot;)) {&#xD;
			String path = window.getFile();&#xD;
&#xD;
			if (path != null) {&#xD;
				dataEngine.loadFile(path);&#xD;
			}&#xD;
		}&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atmfwOeCEeWktpDGdewXHA" name="LoadFileListener" specification="_arJosOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atmfweeCEeWktpDGdewXHA" name="w" type="_E307kMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_atmfwueCEeWktpDGdewXHA" name="s" type="_is7jEMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_atmfw-eCEeWktpDGdewXHA" type="_PFJrMMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>window = w;&#xD;
		dataEngine = s;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGa2gsoQEeWsA83iBWrPKA" name="actionPerformed" method="_rCygw9_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_PGa2g8oQEeWsA83iBWrPKA" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_arJosOeCEeWktpDGdewXHA" name="LoadFileListener" method="_atmfwOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_arKPweeCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_arKPwueCEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_arJoseeCEeWktpDGdewXHA" name="w" type="_E307kMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_arKPwOeCEeWktpDGdewXHA" name="s" type="_is7jEMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_arKPw-eCEeWktpDGdewXHA" type="_PFJrMMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PFKSQMoQEeWsA83iBWrPKA" name="MoveGizmoListener">
        <eAnnotations xmi:id="_aj10EM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_aj10Ec9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_aj2bIM9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_PHChkMoQEeWsA83iBWrPKA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_PHWDkMoQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_zS500MomEeWI07Wu9tqfCA" client="_PFKSQMoQEeWsA83iBWrPKA" supplier="_IRLbAMomEeWI07Wu9tqfCA" contract="_IRLbAMomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWGQ0N_TEeWK7oluzFDNQQ" name="MoveGizmoListener" specification="_dUa10N_TEeWK7oluzFDNQQ">
          <ownedParameter xmi:id="_dWGQ0d_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dWGQ0t_TEeWK7oluzFDNQQ" type="_PFKSQMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGcEocoQEeWsA83iBWrPKA" name="mouseDragged">
          <ownedParameter xmi:id="_PGcEosoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGdSwcoQEeWsA83iBWrPKA" name="mouseMoved">
          <ownedParameter xmi:id="_PGdSwsoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGeg4soQEeWsA83iBWrPKA" name="mouseClicked">
          <ownedParameter xmi:id="_PGeg48oQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGfH88oQEeWsA83iBWrPKA" name="mouseEntered">
          <ownedParameter xmi:id="_PGfH9MoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGfvA8oQEeWsA83iBWrPKA" name="mouseExited">
          <ownedParameter xmi:id="_PGgWEMoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGg9IcoQEeWsA83iBWrPKA" name="mousePressed">
          <ownedParameter xmi:id="_PGg9IsoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGhkMsoQEeWsA83iBWrPKA" name="mouseReleased">
          <ownedParameter xmi:id="_PGhkM8oQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_dUa10N_TEeWK7oluzFDNQQ" name="MoveGizmoListener" method="_dWGQ0N_TEeWK7oluzFDNQQ">
          <eAnnotations xmi:id="_dUa109_TEeWK7oluzFDNQQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_dUa11N_TEeWK7oluzFDNQQ" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_dUa10d_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dUa10t_TEeWK7oluzFDNQQ" type="_PFKSQMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PFNVkMoQEeWsA83iBWrPKA" name="PlayGameListener">
        <eAnnotations xmi:id="_aj4QUM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_aj4QUc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_aj4QUs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_PHDIoMoQEeWsA83iBWrPKA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_PHWDk8oQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_yngHYMomEeWI07Wu9tqfCA" client="_PFNVkMoQEeWsA83iBWrPKA" supplier="_IRKz8MomEeWI07Wu9tqfCA" contract="_IRKz8MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWG34N_TEeWK7oluzFDNQQ" name="PlayGameListener" specification="_dUdSEN_TEeWK7oluzFDNQQ">
          <ownedParameter xmi:id="_dWG34d_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dWG34t_TEeWK7oluzFDNQQ" type="_PFNVkMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGiyUcoQEeWsA83iBWrPKA" name="keyPressed">
          <ownedParameter xmi:id="_PGiyUsoQEeWsA83iBWrPKA" name="arg0" type="_xyg50MR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGjZY8oQEeWsA83iBWrPKA" name="keyReleased">
          <ownedParameter xmi:id="_PGjZZMoQEeWsA83iBWrPKA" name="arg0" type="_xyg50MR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGkAc8oQEeWsA83iBWrPKA" name="keyTyped">
          <ownedParameter xmi:id="_PGkAdMoQEeWsA83iBWrPKA" name="arg0" type="_xyg50MR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_dUdSEN_TEeWK7oluzFDNQQ" name="PlayGameListener" method="_dWG34N_TEeWK7oluzFDNQQ">
          <eAnnotations xmi:id="_dUdSE9_TEeWK7oluzFDNQQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_dUdSFN_TEeWK7oluzFDNQQ" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_dUdSEd_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dUdSEt_TEeWK7oluzFDNQQ" type="_PFNVkMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PFPKwMoQEeWsA83iBWrPKA" name="PlayModeMainListener">
        <eAnnotations xmi:id="_aj5ecM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_aj5ecc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_aj5ecs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <generalization xmi:id="_IQ2D0MomEeWI07Wu9tqfCA" general="_IQgFkMomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_bpT4gN_LEeWOj8fPzW2xTA" name="actionPerformed" specification="_PGl1oMoQEeWsA83iBWrPKA">
          <ownedParameter xmi:id="_bpT4gd_LEeWOj8fPzW2xTA" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>String actionCmd = e.getActionCommand();&#xD;
&#xD;
		if (actionCmd.equals(&quot;start&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;tick&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;stop&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;reload&quot;)) {&#xD;
&#xD;
		} else if (actionCmd.equals(&quot;buildMode&quot;)) {&#xD;
&#xD;
		}&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atqKIOeCEeWktpDGdewXHA" name="PlayModeMainListener" specification="_arUAwOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atqKIeeCEeWktpDGdewXHA" name="model" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_atqKIueCEeWktpDGdewXHA" name="board" type="_E32wwMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_atqKI-eCEeWktpDGdewXHA" name="menu" type="_E31iosoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_atqKJOeCEeWktpDGdewXHA" type="_PFPKwMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>super(model, board, menu);&#xD;
		// TODO Auto-generated constructor stub&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGl1oMoQEeWsA83iBWrPKA" name="actionPerformed" method="_bpT4gN_LEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_PGl1ocoQEeWsA83iBWrPKA" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_arUAwOeCEeWktpDGdewXHA" name="PlayModeMainListener" method="_atqKIOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_arUn0ueCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_arUn0-eCEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_arUAweeCEeWktpDGdewXHA" name="model" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_arUn0OeCEeWktpDGdewXHA" name="board" type="_E32wwMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_arUn0eeCEeWktpDGdewXHA" name="menu" type="_E31iosoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_arUn1OeCEeWktpDGdewXHA" type="_PFPKwMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PFQ_8MoQEeWsA83iBWrPKA" name="RotateGizmoListener">
        <eAnnotations xmi:id="_aj6FgM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_aj6Fgc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_aj6Fgs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_PHE90MoQEeWsA83iBWrPKA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_PHX4xMoQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_vzQeIMomEeWI07Wu9tqfCA" client="_PFQ_8MoQEeWsA83iBWrPKA" supplier="_IRLbAMomEeWI07Wu9tqfCA" contract="_IRLbAMomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dWHe8N_TEeWK7oluzFDNQQ" name="RotateGizmoListener" specification="_dUg8cN_TEeWK7oluzFDNQQ">
          <ownedParameter xmi:id="_dWHe8d_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dWHe8t_TEeWK7oluzFDNQQ" type="_PFQ_8MoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGoR4MoQEeWsA83iBWrPKA" name="mouseDragged">
          <ownedParameter xmi:id="_PGoR4coQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGo48soQEeWsA83iBWrPKA" name="mouseMoved">
          <ownedParameter xmi:id="_PGo488oQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGpgAsoQEeWsA83iBWrPKA" name="mouseClicked">
          <ownedParameter xmi:id="_PGpgA8oQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGqHE8oQEeWsA83iBWrPKA" name="mouseEntered">
          <ownedParameter xmi:id="_PGqHFMoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGquI8oQEeWsA83iBWrPKA" name="mouseExited">
          <ownedParameter xmi:id="_PGquJMoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGrVM8oQEeWsA83iBWrPKA" name="mousePressed">
          <ownedParameter xmi:id="_PGrVNMoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_PGsjUMoQEeWsA83iBWrPKA" name="mouseReleased">
          <ownedParameter xmi:id="_PGsjUcoQEeWsA83iBWrPKA" name="e" type="_xylLQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_dUg8cN_TEeWK7oluzFDNQQ" name="RotateGizmoListener" method="_dWHe8N_TEeWK7oluzFDNQQ">
          <eAnnotations xmi:id="_dUg8c9_TEeWK7oluzFDNQQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_dUg8dN_TEeWK7oluzFDNQQ" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_dUg8cd_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_dUg8ct_TEeWK7oluzFDNQQ" type="_PFQ_8MoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PFUDQMoQEeWsA83iBWrPKA" name="SaveFileListener">
        <eAnnotations xmi:id="_aj8hwM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_aj8hwc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_aj8hws9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_NTg8cNqNEeW7l6s7iyoCaQ" name="dataEngine" visibility="private" type="_is7jEMoQEeWsA83iBWrPKA" association="_NThjgNqNEeW7l6s7iyoCaQ"/>
        <ownedAttribute xmi:id="_rCrMAN_HEeWOj8fPzW2xTA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_ivLAkN_OEeWOj8fPzW2xTA"/>
        <interfaceRealization xmi:id="_wVS0MMomEeWI07Wu9tqfCA" client="_PFUDQMoQEeWsA83iBWrPKA" supplier="_IRJl0MomEeWI07Wu9tqfCA" contract="_IRJl0MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCzu4N_HEeWOj8fPzW2xTA" name="SaveFileListener" specification="_rACHsN_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rCzu4d_HEeWOj8fPzW2xTA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_rCzu4t_HEeWOj8fPzW2xTA" type="_PFUDQMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rCzu49_HEeWOj8fPzW2xTA" name="actionPerformed" specification="_PGtxccoQEeWsA83iBWrPKA">
          <ownedParameter xmi:id="_rCzu5N_HEeWOj8fPzW2xTA" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>String actionCmd = e.getActionCommand();&#xD;
		if (actionCmd.equals(&quot;save&quot;)) {&#xD;
			//TODO save file&#xD;
		}&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGtxccoQEeWsA83iBWrPKA" name="actionPerformed" method="_rCzu49_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_PGtxcsoQEeWsA83iBWrPKA" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rACHsN_HEeWOj8fPzW2xTA" name="SaveFileListener" method="_rCzu4N_HEeWOj8fPzW2xTA">
          <eAnnotations xmi:id="_rACHs9_HEeWOj8fPzW2xTA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_rACHtN_HEeWOj8fPzW2xTA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_rACHsd_HEeWOj8fPzW2xTA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_rACHst_HEeWOj8fPzW2xTA" type="_PFUDQMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PFVRYMoQEeWsA83iBWrPKA" name="StartGameListener">
        <eAnnotations xmi:id="_aj9I0M9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_aj9I0c9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_aj9I0s9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedComment xmi:id="_auLukOeCEeWktpDGdewXHA">
          <body>TODO&#xD;
Also handle Tick</body>
        </ownedComment>
        <ownedAttribute xmi:id="_PHGL8MoQEeWsA83iBWrPKA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_PHYf1MoQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_w-KyEMomEeWI07Wu9tqfCA" client="_PFVRYMoQEeWsA83iBWrPKA" supplier="_IRJl0MomEeWI07Wu9tqfCA" contract="_IRJl0MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_i1A38t_QEeWOj8fPzW2xTA" name="StartGameListener" specification="_i1AQ4N_QEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_i1A389_QEeWOj8fPzW2xTA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_i1A39N_QEeWOj8fPzW2xTA" type="_PFVRYMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGu_kcoQEeWsA83iBWrPKA" name="actionPerformed">
          <ownedParameter xmi:id="_PGvmoMoQEeWsA83iBWrPKA" name="arg0" type="_xyazMMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_i1AQ4N_QEeWOj8fPzW2xTA" name="StartGameListener" method="_i1A38t_QEeWOj8fPzW2xTA">
          <eAnnotations xmi:id="_i1A38N_QEeWOj8fPzW2xTA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_i1A38d_QEeWOj8fPzW2xTA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_i1AQ4d_QEeWOj8fPzW2xTA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_i1AQ4t_QEeWOj8fPzW2xTA" type="_PFVRYMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PFXGkMoQEeWsA83iBWrPKA" name="StopGameListener">
        <eAnnotations xmi:id="_aj9v4M9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_aj9v4c9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_aj9v4s9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_PHGL8soQEeWsA83iBWrPKA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_PHZG4coQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_xl3EMMomEeWI07Wu9tqfCA" client="_PFXGkMoQEeWsA83iBWrPKA" supplier="_IRJl0MomEeWI07Wu9tqfCA" contract="_IRJl0MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_kEZcMt_QEeWOj8fPzW2xTA" name="StopGameListener" specification="_kEY1IN_QEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_kEZcM9_QEeWOj8fPzW2xTA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_kEZcNN_QEeWOj8fPzW2xTA" type="_PFXGkMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGw0wMoQEeWsA83iBWrPKA" name="actionPerformed">
          <ownedParameter xmi:id="_PGw0wcoQEeWsA83iBWrPKA" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_kEY1IN_QEeWOj8fPzW2xTA" name="StopGameListener" method="_kEZcMt_QEeWOj8fPzW2xTA">
          <eAnnotations xmi:id="_kEZcMN_QEeWOj8fPzW2xTA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_kEZcMd_QEeWOj8fPzW2xTA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_kEY1Id_QEeWOj8fPzW2xTA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_kEY1It_QEeWOj8fPzW2xTA" type="_PFXGkMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_PFY7wMoQEeWsA83iBWrPKA" name="UndoRedoListener">
        <eAnnotations xmi:id="_aj-W8M9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_aj-W8c9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_aj-W8s9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_PHGzAcoQEeWsA83iBWrPKA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_PHZG5MoQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_s3i68MomEeWI07Wu9tqfCA" client="_PFY7wMoQEeWsA83iBWrPKA" supplier="_IRJl0MomEeWI07Wu9tqfCA" contract="_IRJl0MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_hGJ0Ud_OEeWOj8fPzW2xTA" name="UndoRedoListener" specification="_hGJNQN_OEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_hGJ0Ut_OEeWOj8fPzW2xTA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_hGJ0U9_OEeWOj8fPzW2xTA" type="_PFY7wMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_PGyC4coQEeWsA83iBWrPKA" name="actionPerformed">
          <ownedParameter xmi:id="_PGyC4soQEeWsA83iBWrPKA" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_hGJNQN_OEeWOj8fPzW2xTA" name="UndoRedoListener" method="_hGJ0Ud_OEeWOj8fPzW2xTA">
          <eAnnotations xmi:id="_hGJNQ9_OEeWOj8fPzW2xTA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_hGJ0UN_OEeWOj8fPzW2xTA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_hGJNQd_OEeWOj8fPzW2xTA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_hGJNQt_OEeWOj8fPzW2xTA" type="_PFY7wMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_PHTAQMoQEeWsA83iBWrPKA" name="" memberEnd="_PHTAQcoQEeWsA83iBWrPKA _PG-QIMoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_PHTAQcoQEeWsA83iBWrPKA" name="" type="_E3mSEMoQEeWsA83iBWrPKA" association="_PHTAQMoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_PHU1ccoQEeWsA83iBWrPKA" name="" memberEnd="_PHU1csoQEeWsA83iBWrPKA _PHAsYMoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_PHU1csoQEeWsA83iBWrPKA" name="" type="_E3m5IMoQEeWsA83iBWrPKA" association="_PHU1ccoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_PHU1dMoQEeWsA83iBWrPKA" name="" memberEnd="_PHU1dcoQEeWsA83iBWrPKA _PHBTcMoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_PHU1dcoQEeWsA83iBWrPKA" name="" type="_PFELoMoQEeWsA83iBWrPKA" association="_PHU1dMoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_PHVcgcoQEeWsA83iBWrPKA" name="" memberEnd="_PHVcgsoQEeWsA83iBWrPKA _PHB6gMoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_PHVcgsoQEeWsA83iBWrPKA" name="" type="_PFGA0MoQEeWsA83iBWrPKA" association="_PHVcgcoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_PHWDkMoQEeWsA83iBWrPKA" name="" memberEnd="_PHWDkcoQEeWsA83iBWrPKA _PHChkMoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_PHWDkcoQEeWsA83iBWrPKA" name="" type="_PFKSQMoQEeWsA83iBWrPKA" association="_PHWDkMoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_PHWDk8oQEeWsA83iBWrPKA" name="" memberEnd="_PHWDlMoQEeWsA83iBWrPKA _PHDIoMoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_PHWDlMoQEeWsA83iBWrPKA" name="" type="_PFNVkMoQEeWsA83iBWrPKA" association="_PHWDk8oQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_PHX4xMoQEeWsA83iBWrPKA" name="" memberEnd="_PHX4xcoQEeWsA83iBWrPKA _PHE90MoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_PHX4xcoQEeWsA83iBWrPKA" name="" type="_PFQ_8MoQEeWsA83iBWrPKA" association="_PHX4xMoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_PHYf1MoQEeWsA83iBWrPKA" name="" memberEnd="_PHYf1coQEeWsA83iBWrPKA _PHGL8MoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_PHYf1coQEeWsA83iBWrPKA" name="" type="_PFVRYMoQEeWsA83iBWrPKA" association="_PHYf1MoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_PHZG4coQEeWsA83iBWrPKA" name="" memberEnd="_PHZG4soQEeWsA83iBWrPKA _PHGL8soQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_PHZG4soQEeWsA83iBWrPKA" name="" type="_PFXGkMoQEeWsA83iBWrPKA" association="_PHZG4coQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_PHZG5MoQEeWsA83iBWrPKA" name="" memberEnd="_PHZG5coQEeWsA83iBWrPKA _PHGzAcoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_PHZG5coQEeWsA83iBWrPKA" name="" type="_PFY7wMoQEeWsA83iBWrPKA" association="_PHZG5MoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_IQgFkMomEeWI07Wu9tqfCA" name="AMainListener" isAbstract="true">
        <eAnnotations xmi:id="_ajnKkM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_ajnKkc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_ajnKks9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_wJQHcN_LEeWOj8fPzW2xTA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_wJQugN_LEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_wJQHc9_LEeWOj8fPzW2xTA" name="gameWindow" visibility="private" type="_E307kMoQEeWsA83iBWrPKA" association="_wJRVl9_LEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_as-0sOeCEeWktpDGdewXHA" name="board" visibility="private" type="_E32wwMoQEeWsA83iBWrPKA" association="_aupBkOeCEeWktpDGdewXHA"/>
        <ownedAttribute xmi:id="_as_bwOeCEeWktpDGdewXHA" name="menu" visibility="private" type="_E31iosoQEeWsA83iBWrPKA" association="_aupBk-eCEeWktpDGdewXHA"/>
        <interfaceRealization xmi:id="_IROeUMomEeWI07Wu9tqfCA" client="_IQgFkMomEeWI07Wu9tqfCA" supplier="_IRJl0MomEeWI07Wu9tqfCA" contract="_IRJl0MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_athAMOeCEeWktpDGdewXHA" name="AMainListener" specification="_aq4i8OeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_athAMeeCEeWktpDGdewXHA" name="mod" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_athAMueCEeWktpDGdewXHA" name="b" type="_E32wwMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_athAM-eCEeWktpDGdewXHA" name="men" type="_E31iosoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_athANOeCEeWktpDGdewXHA" type="_IQgFkMomEeWI07Wu9tqfCA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = mod;&#xD;
		board = b;&#xD;
		menu = men;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_athANeeCEeWktpDGdewXHA" name="setBoardKeyListener" specification="_aq5xEOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_athANueCEeWktpDGdewXHA" name="kl" type="_IRKz8MomEeWI07Wu9tqfCA"/>
          <language>java</language>
          <body>JPanel jpanel = board.getBoard();&#xD;
		setKeyListener(jpanel, kl);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_athnQOeCEeWktpDGdewXHA" name="setBoardMouseListener" specification="_aq5xE-eCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_athnQeeCEeWktpDGdewXHA" name="ml" type="_IRLbAMomEeWI07Wu9tqfCA"/>
          <language>java</language>
          <body>JPanel jpanel = board.getBoard();&#xD;
		setMouseListener(jpanel, ml);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_athnQueCEeWktpDGdewXHA" name="setKeyListener" specification="_aq6YIOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_athnQ-eCEeWktpDGdewXHA" name="component" type="_PGERMMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_athnROeCEeWktpDGdewXHA" name="kl" type="_IRKz8MomEeWI07Wu9tqfCA"/>
          <language>java</language>
          <body>KeyListener[] keyListeners = component.getKeyListeners();&#xD;
		for (KeyListener curKL : keyListeners) {&#xD;
			component.removeKeyListener(curKL);&#xD;
		}&#xD;
&#xD;
		component.addKeyListener(kl);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_athnReeCEeWktpDGdewXHA" name="setMouseListener" specification="_aq6YJOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_athnRueCEeWktpDGdewXHA" name="component" type="_PGERMMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_athnR-eCEeWktpDGdewXHA" name="ml" type="_IRLbAMomEeWI07Wu9tqfCA"/>
          <language>java</language>
          <body>MouseListener[] mouseListeners = component.getMouseListeners();&#xD;
		for (MouseListener curML : mouseListeners) {&#xD;
			component.removeMouseListener(curML);&#xD;
		}&#xD;
&#xD;
		component.addMouseListener(ml);&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_aq4i8OeCEeWktpDGdewXHA" name="AMainListener" method="_athAMOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_aq5KA-eCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_aq5KBOeCEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_aq5KAOeCEeWktpDGdewXHA" name="mod" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_aq5KAeeCEeWktpDGdewXHA" name="b" type="_E32wwMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_aq5KAueCEeWktpDGdewXHA" name="men" type="_E31iosoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_aq5KBeeCEeWktpDGdewXHA" type="_IQgFkMomEeWI07Wu9tqfCA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aq5xEOeCEeWktpDGdewXHA" name="setBoardKeyListener" visibility="protected" method="_athANeeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aq5xEeeCEeWktpDGdewXHA" name="kl" type="_IRKz8MomEeWI07Wu9tqfCA"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aq5xE-eCEeWktpDGdewXHA" name="setBoardMouseListener" visibility="protected" method="_athnQOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aq5xFOeCEeWktpDGdewXHA" name="ml" type="_IRLbAMomEeWI07Wu9tqfCA"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aq6YIOeCEeWktpDGdewXHA" name="setKeyListener" visibility="private" method="_athnQueCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aq6YIeeCEeWktpDGdewXHA" name="component" type="_PGERMMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_aq6YIueCEeWktpDGdewXHA" name="kl" type="_IRKz8MomEeWI07Wu9tqfCA"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aq6YJOeCEeWktpDGdewXHA" name="setMouseListener" visibility="private" method="_athnReeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aq6YJeeCEeWktpDGdewXHA" name="component" type="_PGERMMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_aq6YJueCEeWktpDGdewXHA" name="ml" type="_IRLbAMomEeWI07Wu9tqfCA"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_61StoNqMEeW7l6s7iyoCaQ" name="IGameWindow"/>
      <packagedElement xmi:type="uml:Association" xmi:id="_NThjgNqNEeW7l6s7iyoCaQ" name="" memberEnd="_NThjgdqNEeW7l6s7iyoCaQ _NTg8cNqNEeW7l6s7iyoCaQ">
        <ownedEnd xmi:id="_NThjgdqNEeW7l6s7iyoCaQ" name="" type="_PFUDQMoQEeWsA83iBWrPKA" association="_NThjgNqNEeW7l6s7iyoCaQ"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_PYCY8NqNEeW7l6s7iyoCaQ" name="" memberEnd="_PYCY8dqNEeW7l6s7iyoCaQ _PYBx4NqNEeW7l6s7iyoCaQ">
        <ownedEnd xmi:id="_PYCY8dqNEeW7l6s7iyoCaQ" name="" type="_PFJrMMoQEeWsA83iBWrPKA" association="_PYCY8NqNEeW7l6s7iyoCaQ"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_wJQugN_LEeWOj8fPzW2xTA" name="" memberEnd="_wJQugd_LEeWOj8fPzW2xTA _wJQHcN_LEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_wJQugd_LEeWOj8fPzW2xTA" name="" type="_IQgFkMomEeWI07Wu9tqfCA" association="_wJQugN_LEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_wJRVl9_LEeWOj8fPzW2xTA" name="" memberEnd="_wJRVmN_LEeWOj8fPzW2xTA _wJQHc9_LEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_wJRVmN_LEeWOj8fPzW2xTA" name="" type="_IQgFkMomEeWI07Wu9tqfCA" association="_wJRVl9_LEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_DCB5YN_OEeWOj8fPzW2xTA" name="PhysicsConfigListener">
        <eAnnotations xmi:id="_sWmbkN_TEeWK7oluzFDNQQ" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_sWmbkd_TEeWK7oluzFDNQQ" source="codegen">
            <details xmi:id="_sWmbkt_TEeWK7oluzFDNQQ" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_sW0eAN_TEeWK7oluzFDNQQ" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_sW3hUN_TEeWK7oluzFDNQQ"/>
        <interfaceRealization xmi:id="_sWsiMN_TEeWK7oluzFDNQQ" client="_DCB5YN_OEeWOj8fPzW2xTA" supplier="_IRJl0MomEeWI07Wu9tqfCA" contract="_IRJl0MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sW1sIN_TEeWK7oluzFDNQQ" name="PhysicsConfigListener" specification="_sWtJQN_TEeWK7oluzFDNQQ">
          <ownedParameter xmi:id="_sW1sId_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_sW1sIt_TEeWK7oluzFDNQQ" type="_DCB5YN_OEeWOj8fPzW2xTA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_sWtJQN_TEeWK7oluzFDNQQ" name="PhysicsConfigListener" method="_sW1sIN_TEeWK7oluzFDNQQ">
          <eAnnotations xmi:id="_sWu-cN_TEeWK7oluzFDNQQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_sWu-cd_TEeWK7oluzFDNQQ" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_sWtJQd_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_sWu-ct_TEeWK7oluzFDNQQ" type="_DCB5YN_OEeWOj8fPzW2xTA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_sWyBwN_TEeWK7oluzFDNQQ" name="actionPerformed">
          <ownedParameter xmi:id="_sWyo0N_TEeWK7oluzFDNQQ" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_ivLAkN_OEeWOj8fPzW2xTA" name="" memberEnd="_ivLAkd_OEeWOj8fPzW2xTA _rCrMAN_HEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_ivLAkd_OEeWOj8fPzW2xTA" name="" type="_PFUDQMoQEeWsA83iBWrPKA" association="_ivLAkN_OEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_GFh0sN_QEeWOj8fPzW2xTA" name="ChangeBallConfigListener">
        <eAnnotations xmi:id="_6MiQoN_TEeWK7oluzFDNQQ" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_6MiQod_TEeWK7oluzFDNQQ" source="codegen">
            <details xmi:id="_6MiQot_TEeWK7oluzFDNQQ" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_6MtPwN_TEeWK7oluzFDNQQ" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_6Mud4N_TEeWK7oluzFDNQQ"/>
        <interfaceRealization xmi:id="_6MqMcN_TEeWK7oluzFDNQQ" client="_GFh0sN_QEeWOj8fPzW2xTA" supplier="_IRJl0MomEeWI07Wu9tqfCA" contract="_IRJl0MomEeWI07Wu9tqfCA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_6Mt20N_TEeWK7oluzFDNQQ" name="ChangeBallConfigListener" specification="_6MqzgN_TEeWK7oluzFDNQQ">
          <ownedParameter xmi:id="_6Mt20d_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_6Mt20t_TEeWK7oluzFDNQQ" type="_GFh0sN_QEeWOj8fPzW2xTA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_6MqzgN_TEeWK7oluzFDNQQ" name="ChangeBallConfigListener" method="_6Mt20N_TEeWK7oluzFDNQQ">
          <eAnnotations xmi:id="_6Mqzgt_TEeWK7oluzFDNQQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_6Mqzg9_TEeWK7oluzFDNQQ" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_6Mqzgd_TEeWK7oluzFDNQQ" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_6MrakN_TEeWK7oluzFDNQQ" type="_GFh0sN_QEeWOj8fPzW2xTA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_6Mrakd_TEeWK7oluzFDNQQ" name="actionPerformed">
          <ownedParameter xmi:id="_6Mrakt_TEeWK7oluzFDNQQ" name="e" type="_xyazMMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_sW3hUN_TEeWK7oluzFDNQQ" name="" memberEnd="_sW3hUd_TEeWK7oluzFDNQQ _sW0eAN_TEeWK7oluzFDNQQ">
        <ownedEnd xmi:id="_sW3hUd_TEeWK7oluzFDNQQ" name="" type="_DCB5YN_OEeWOj8fPzW2xTA" association="_sW3hUN_TEeWK7oluzFDNQQ"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_6Mud4N_TEeWK7oluzFDNQQ" name="" memberEnd="_6Mud4d_TEeWK7oluzFDNQQ _6MtPwN_TEeWK7oluzFDNQQ">
        <ownedEnd xmi:id="_6Mud4d_TEeWK7oluzFDNQQ" name="" type="_GFh0sN_QEeWOj8fPzW2xTA" association="_6Mud4N_TEeWK7oluzFDNQQ"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_asaM8eeCEeWktpDGdewXHA" name="BuildModeMouseListener"/>
      <packagedElement xmi:type="uml:Association" xmi:id="_aupBkOeCEeWktpDGdewXHA" name="" memberEnd="_aupBkeeCEeWktpDGdewXHA _as-0sOeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_aupBkeeCEeWktpDGdewXHA" name="" type="_IQgFkMomEeWI07Wu9tqfCA" association="_aupBkOeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_aupBk-eCEeWktpDGdewXHA" name="" memberEnd="_aupBlOeCEeWktpDGdewXHA _as_bwOeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_aupBlOeCEeWktpDGdewXHA" name="" type="_IQgFkMomEeWI07Wu9tqfCA" association="_aupBk-eCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_aupooeeCEeWktpDGdewXHA" name="" memberEnd="_aupooueCEeWktpDGdewXHA _atAC0OeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_aupooueCEeWktpDGdewXHA" name="" type="_PE9d8MoQEeWsA83iBWrPKA" association="_aupooeeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_auqPsOeCEeWktpDGdewXHA" name="" memberEnd="_auqPseeCEeWktpDGdewXHA _atBQ8OeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_auqPseeCEeWktpDGdewXHA" name="" type="_PFJrMMoQEeWsA83iBWrPKA" association="_auqPsOeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_auqPs-eCEeWktpDGdewXHA" name="" memberEnd="_auqPtOeCEeWktpDGdewXHA _atCfEOeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_auqPtOeCEeWktpDGdewXHA" name="" type="_E3ngMcoQEeWsA83iBWrPKA" association="_auqPs-eCEeWktpDGdewXHA"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_xvcXsMR4EeW_3q3XSh-SYw" name="model">
      <packagedElement xmi:type="uml:Class" xmi:id="_xwhVwMR4EeW_3q3XSh-SYw" name="Walls">
        <eAnnotations xmi:id="_akMZYM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akMZYc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akMZYs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_-f16Ac-aEeWOGvD12nE26A" name="xpos1" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_-f2hEc-aEeWOGvD12nE26A" name="ypos1" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_-f2hE8-aEeWOGvD12nE26A" name="ypos2" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_-f2hFc-aEeWOGvD12nE26A" name="xpos2" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_-f3IIM-aEeWOGvD12nE26A" name="Walls" specification="_akqTd89KEeWD9JA5XZkC8g">
          <ownedParameter xmi:id="_-f3IIc-aEeWOGvD12nE26A" type="_xwhVwMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <ownedParameter xmi:id="_-f3IIs-aEeWOGvD12nE26A" name="x1">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_-f3II8-aEeWOGvD12nE26A" name="y1">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_-f3IJM-aEeWOGvD12nE26A" name="x2">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_-f3IJc-aEeWOGvD12nE26A" name="y2">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <language>java</language>
          <body>xpos1 = x1;&#xD;
		ypos1 = y1;&#xD;
		xpos2 = x2;&#xD;
		ypos2 = y2;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_-f3IJs-aEeWOGvD12nE26A" name="getLineSegments" specification="_-fyPoM-aEeWOGvD12nE26A">
          <ownedParameter xmi:id="_-f3IJ8-aEeWOGvD12nE26A" type="_-f0r4M-aEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>ArrayList&lt;LineSegment> ls = new ArrayList&lt;LineSegment>();&#xD;
		LineSegment l1 = new LineSegment(xpos1, ypos1, xpos2, ypos1);&#xD;
		LineSegment l2 = new LineSegment(xpos1, ypos1, xpos1, ypos2);&#xD;
		LineSegment l3 = new LineSegment(xpos2, ypos1, xpos2, ypos2);&#xD;
		LineSegment l4 = new LineSegment(xpos1, ypos2, xpos2, ypos2);&#xD;
		ls.add(l1);&#xD;
		ls.add(l2);&#xD;
		ls.add(l3);&#xD;
		ls.add(l4);&#xD;
		return ls;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_akqTd89KEeWD9JA5XZkC8g" name="Walls" method="_-f3IIM-aEeWOGvD12nE26A">
          <eAnnotations xmi:id="_akq6gs9KEeWD9JA5XZkC8g" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_akq6g89KEeWD9JA5XZkC8g" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_hAI-8M-TEeWOGvD12nE26A" type="_xwhVwMR4EeW_3q3XSh-SYw" direction="return"/>
          <ownedParameter xmi:id="_-fy2sM-aEeWOGvD12nE26A" name="x1">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_-fy2sc-aEeWOGvD12nE26A" name="y1">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_-fy2ss-aEeWOGvD12nE26A" name="x2">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_-fy2s8-aEeWOGvD12nE26A" name="y2">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_-fyPoM-aEeWOGvD12nE26A" name="getLineSegments" method="_-f3IJs-aEeWOGvD12nE26A">
          <ownedParameter xmi:id="_-f16AM-aEeWOGvD12nE26A" type="_-f0r4M-aEeWOGvD12nE26A" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xwp4oMR4EeW_3q3XSh-SYw" name="Absorber">
        <eAnnotations xmi:id="_akBaQM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akBaQc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akBaQs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <generalization xmi:id="_E3zGYMoQEeWsA83iBWrPKA" general="_rClFYN_HEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_n73F8No-EeWZSOZzoCHXcg" name="width" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_n74UENo-EeWZSOZzoCHXcg" name="height" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_n74UEdo-EeWZSOZzoCHXcg" name="ls" visibility="private" type="_-f1S8c-aEeWOGvD12nE26A" association="_n8CsINo-EeWZSOZzoCHXcg">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n747INo-EeWZSOZzoCHXcg" value="*"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_n75iMdo-EeWZSOZzoCHXcg" name="capturedBall" type="_xwrGwMR4EeW_3q3XSh-SYw" isReadOnly="true" association="_n8D6Qdo-EeWZSOZzoCHXcg"/>
        <interfaceRealization xmi:id="_n7xmYdo-EeWZSOZzoCHXcg" client="_xwp4oMR4EeW_3q3XSh-SYw" supplier="_n7vxMNo-EeWZSOZzoCHXcg" contract="_n7vxMNo-EeWZSOZzoCHXcg"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ak6LFM9KEeWD9JA5XZkC8g" name="Absorber" specification="_akmpEs9KEeWD9JA5XZkC8g">
          <ownedParameter xmi:id="_rBSl0No-EeWZSOZzoCHXcg" type="_xwp4oMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rBSl0do-EeWZSOZzoCHXcg" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rBSl0to-EeWZSOZzoCHXcg" name="grid_tile_x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rBSl09o-EeWZSOZzoCHXcg" name="grid_tile_y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rBSl1No-EeWZSOZzoCHXcg" name="widthInL">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rBTM4No-EeWZSOZzoCHXcg" name="heightInL">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rBTM4do-EeWZSOZzoCHXcg" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <language>java</language>
          <body>super(name, grid_tile_x * MainEngine.L, grid_tile_y * MainEngine.L, color);&#xD;
&#xD;
		setWidth(widthInL * MainEngine.L);&#xD;
		setHeight(heightInL * MainEngine.L);&#xD;
		capturedBall = null;&#xD;
&#xD;
		ls = new HashSet&lt;LineSegment>();&#xD;
&#xD;
		setupLineSeg();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_n78lgNo-EeWZSOZzoCHXcg" name="triggerAction" specification="_akCBUM9KEeWD9JA5XZkC8g">
          <language>java</language>
          <body>if (capturedBall != null) { // no ball in absorber = nothing happens&#xD;
			capturedBall.start();&#xD;
			// In this physics package, ANGLE.ZERO is RHS of x-axis; degree increasing clock-wise. 50L is the length, thus it is converted to pixels here&#xD;
			capturedBall.setVelo(new Vect(Angle.DEG_270, 50 * MainEngine.L));&#xD;
		}&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_n79zoNo-EeWZSOZzoCHXcg" name="setupCircles" specification="_n7KiYNo-EeWZSOZzoCHXcg">
          <language>java</language>
          <body>int lCorner_X = getX();&#xD;
		int rCorner_X = getX() + getWidth();&#xD;
		int tCorner_Y = getY();&#xD;
		int bCorner_Y = getY() + getHeight();&#xD;
&#xD;
		Circle tlCorner = new Circle(lCorner_X, tCorner_Y, 0.0);&#xD;
		Circle trCorner = new Circle(rCorner_X, tCorner_Y, 0.0);&#xD;
		Circle brCorner = new Circle(rCorner_X, bCorner_Y, 0.0);&#xD;
		Circle blCorner = new Circle(lCorner_X, bCorner_Y, 0.0);&#xD;
&#xD;
		circleSet.add(tlCorner);&#xD;
		circleSet.add(trCorner);&#xD;
		circleSet.add(brCorner);&#xD;
		circleSet.add(blCorner);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_n79zodo-EeWZSOZzoCHXcg" name="setupLineSeg" specification="_n7Lwgdo-EeWZSOZzoCHXcg">
          <language>java</language>
          <body>int lCorner_X = getX();&#xD;
		int rCorner_X = getX() + getWidth();&#xD;
		int tCorner_Y = getY();&#xD;
		int bCorner_Y = getY() + getHeight();&#xD;
&#xD;
		LineSegment tlCorner_trCorner = new LineSegment(lCorner_X, tCorner_Y, rCorner_X, tCorner_Y);&#xD;
		LineSegment trCorner_brCorner = new LineSegment(rCorner_X, tCorner_Y, rCorner_X, bCorner_Y);&#xD;
		LineSegment brCorner_blCorner = new LineSegment(rCorner_X, bCorner_Y, lCorner_X, bCorner_Y);&#xD;
		LineSegment blCorner_tlCorner = new LineSegment(lCorner_X, bCorner_Y, lCorner_X, tCorner_Y);&#xD;
&#xD;
		ls.add(tlCorner_trCorner);&#xD;
		ls.add(trCorner_brCorner);&#xD;
		ls.add(brCorner_blCorner);&#xD;
		ls.add(blCorner_tlCorner);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_n7-asNo-EeWZSOZzoCHXcg" name="getLineSeg" specification="_n7MXkNo-EeWZSOZzoCHXcg">
          <ownedParameter xmi:id="_n7-asdo-EeWZSOZzoCHXcg" type="_-f1S8c-aEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n7-asto-EeWZSOZzoCHXcg" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return ls;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_n7-as9o-EeWZSOZzoCHXcg" name="setWidth" specification="_n7bBENo-EeWZSOZzoCHXcg">
          <ownedParameter xmi:id="_n7-atNo-EeWZSOZzoCHXcg" name="newWidth">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_n7-atdo-EeWZSOZzoCHXcg" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>this.width = newWidth;&#xD;
		return true;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_n7_BwNo-EeWZSOZzoCHXcg" name="setHeight" specification="_n7cPMNo-EeWZSOZzoCHXcg">
          <ownedParameter xmi:id="_n7_Bwdo-EeWZSOZzoCHXcg" name="newHeight">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_n7_Bwto-EeWZSOZzoCHXcg" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>this.height = newHeight;&#xD;
		return true;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_n7_Bw9o-EeWZSOZzoCHXcg" name="setBall" specification="_n7Oz0No-EeWZSOZzoCHXcg">
          <ownedParameter xmi:id="_n7_BxNo-EeWZSOZzoCHXcg" name="b" type="_xwrGwMR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>capturedBall = b;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atubkOeCEeWktpDGdewXHA" name="setupDrawingShape" specification="_g_68gM-TEeWOGvD12nE26A">
          <language>java</language>
          <body>drawingShape = new Rectangle(MainEngine.L * width, MainEngine.L * height);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atvCoOeCEeWktpDGdewXHA" name="updateCollections" specification="_aUhRYOeCEeWktpDGdewXHA">
          <language>java</language>
          <body>setupDrawingShape();&#xD;
		setupLineSeg();&#xD;
		setupCircles();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atvCoeeCEeWktpDGdewXHA" name="rotate" specification="_aUjGkueCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atvCoueCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atvCo-eCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>updateCollections();&#xD;
&#xD;
		// TODO Auto-generated method stub&#xD;
		return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atvCpOeCEeWktpDGdewXHA" name="move" specification="_aUkUsueCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atvCpeeCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atvCpueCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atvCp-eCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>updateCollections();&#xD;
&#xD;
		// TODO Auto-generated method stub&#xD;
		return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_akCBUM9KEeWD9JA5XZkC8g" name="triggerAction" method="_n78lgNo-EeWZSOZzoCHXcg"/>
        <ownedOperation xmi:id="_akmpEs9KEeWD9JA5XZkC8g" name="Absorber" method="_ak6LFM9KEeWD9JA5XZkC8g">
          <eAnnotations xmi:id="_aknQJc9KEeWD9JA5XZkC8g" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_aknQJs9KEeWD9JA5XZkC8g" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_aknQJM9KEeWD9JA5XZkC8g" type="_xwp4oMR4EeW_3q3XSh-SYw" direction="return"/>
          <ownedParameter xmi:id="_hArxgM-TEeWOGvD12nE26A" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_n7Zy8No-EeWZSOZzoCHXcg" name="grid_tile_x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_n7aaANo-EeWZSOZzoCHXcg" name="grid_tile_y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aknQIc9KEeWD9JA5XZkC8g" name="widthInL">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_n7aaAdo-EeWZSOZzoCHXcg" name="heightInL">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aknQIs9KEeWD9JA5XZkC8g" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
        </ownedOperation>
        <ownedOperation xmi:id="_g_68gM-TEeWOGvD12nE26A" name="setupDrawingShape" visibility="protected" method="_atubkOeCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_n7KiYNo-EeWZSOZzoCHXcg" name="setupCircles" visibility="protected" method="_n79zoNo-EeWZSOZzoCHXcg"/>
        <ownedOperation xmi:id="_n7Lwgdo-EeWZSOZzoCHXcg" name="setupLineSeg" visibility="private" method="_n79zodo-EeWZSOZzoCHXcg">
          <ownedComment xmi:id="_auNjwOeCEeWktpDGdewXHA">
            <body>The setup of the Line Segment collection. Gizmo component that rely on Line Segments for collision detection should&#xD;
	 * set up their Line Segment objects here.&#xD;
	 * @modify this&#xD;
	 * @effect Fill the collection which hold all the Line Segments in this class with appropriate objects</body>
          </ownedComment>
        </ownedOperation>
        <ownedOperation xmi:id="_n7MXkNo-EeWZSOZzoCHXcg" name="getLineSeg" method="_n7-asNo-EeWZSOZzoCHXcg">
          <ownedParameter xmi:id="_n7M-oNo-EeWZSOZzoCHXcg" type="_-f1S8c-aEeWOGvD12nE26A" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_n7M-odo-EeWZSOZzoCHXcg" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_n7Oz0No-EeWZSOZzoCHXcg" name="setBall" method="_n7_Bw9o-EeWZSOZzoCHXcg">
          <ownedParameter xmi:id="_n7Oz0do-EeWZSOZzoCHXcg" name="b" type="_xwrGwMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_n7bBENo-EeWZSOZzoCHXcg" name="setWidth" method="_n7-as9o-EeWZSOZzoCHXcg">
          <ownedParameter xmi:id="_n7boINo-EeWZSOZzoCHXcg" name="newWidth">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_n7boIdo-EeWZSOZzoCHXcg" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_n7cPMNo-EeWZSOZzoCHXcg" name="setHeight" method="_n7_BwNo-EeWZSOZzoCHXcg">
          <ownedParameter xmi:id="_n7cPMdo-EeWZSOZzoCHXcg" name="newHeight">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_n7c2QNo-EeWZSOZzoCHXcg" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aUhRYOeCEeWktpDGdewXHA" name="updateCollections" method="_atvCoOeCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_aUjGkueCEeWktpDGdewXHA" name="rotate" method="_atvCoeeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aUjGk-eCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aUjtoOeCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aUkUsueCEeWktpDGdewXHA" name="move" method="_atvCpOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aUkUs-eCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aUkUtOeCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aUk7wOeCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xwrGwMR4EeW_3q3XSh-SYw" name="Ball">
        <eAnnotations xmi:id="_akCoYs9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akDPcM9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akDPcc9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <generalization xmi:id="_asvkIeeCEeWktpDGdewXHA" general="_asu9EOeCEeWktpDGdewXHA"/>
        <ownedAttribute xmi:id="_HY5lYs-bEeWOGvD12nE26A" name="radius" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
        </ownedAttribute>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_HY6zgM-bEeWOGvD12nE26A" name="Ball" specification="_HY0s4M-bEeWOGvD12nE26A">
          <ownedParameter xmi:id="_kvQok9aEEeWiEYVNrmJsoQ" type="_xwrGwMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kvQolNaEEeWiEYVNrmJsoQ" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kvRPoNaEEeWiEYVNrmJsoQ" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_kvRPodaEEeWiEYVNrmJsoQ" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kvRPotaEEeWiEYVNrmJsoQ" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kvRPo9aEEeWiEYVNrmJsoQ" name="theta" type="_nOTqAM-WEeWOGvD12nE26A"/>
          <ownedParameter xmi:id="_kvRPpNaEEeWiEYVNrmJsoQ" name="yv">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>super(name, y, x, color, theta, yv);&#xD;
		start();&#xD;
&#xD;
		radius = 5;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rC1kEN_HEeWOj8fPzW2xTA" name="getDrawingShape" specification="_rALRoN_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rC1kEd_HEeWOj8fPzW2xTA" type="_hBFaIM-TEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>return null;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rC1kEt_HEeWOj8fPzW2xTA" name="getCircles" specification="_rAL4sd_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rC1kE9_HEeWOj8fPzW2xTA" type="_HY3wMM-bEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rC1kFN_HEeWOj8fPzW2xTA" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return null;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atwQwOeCEeWktpDGdewXHA" name="rotate" specification="_aUrCYOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atwQweeCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atwQwueCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atwQw-eCEeWktpDGdewXHA" name="move" specification="_aUrpcueCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atwQxOeCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atwQxeeCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atwQxueCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atw30OeCEeWktpDGdewXHA" name="getCircle" specification="_aUsQhOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atw30eeCEeWktpDGdewXHA" type="_HY3wMM-bEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>return new Circle(getPreciseX(), getPreciseY(), radius);&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_HY0s4M-bEeWOGvD12nE26A" name="Ball" method="_HY6zgM-bEeWOGvD12nE26A">
          <eAnnotations xmi:id="_HY0s5s-bEeWOGvD12nE26A" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_HY1T8M-bEeWOGvD12nE26A" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_HY0s5c-bEeWOGvD12nE26A" type="_xwrGwMR4EeW_3q3XSh-SYw" direction="return"/>
          <ownedParameter xmi:id="_3YPdQNaBEeWiEYVNrmJsoQ" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_3XPXsNaBEeWiEYVNrmJsoQ" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_HY0s4c-bEeWOGvD12nE26A" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_HY0s4s-bEeWOGvD12nE26A" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_HY0s48-bEeWOGvD12nE26A" name="theta" type="_nOTqAM-WEeWOGvD12nE26A"/>
          <ownedParameter xmi:id="_HY0s5M-bEeWOGvD12nE26A" name="yv">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_3XRz8NaBEeWiEYVNrmJsoQ" name="triggerAction"/>
        <ownedOperation xmi:id="_rALRoN_HEeWOj8fPzW2xTA" name="getDrawingShape" method="_rC1kEN_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rALRod_HEeWOj8fPzW2xTA" type="_hBFaIM-TEeWOGvD12nE26A" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rAL4sd_HEeWOj8fPzW2xTA" name="getCircles" method="_rC1kEt_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rAL4st_HEeWOj8fPzW2xTA" type="_HY3wMM-bEeWOGvD12nE26A" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rAL4s9_HEeWOj8fPzW2xTA" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aUrCYOeCEeWktpDGdewXHA" name="rotate" method="_atwQwOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aUrCYeeCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aUrCYueCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aUrpcueCEeWktpDGdewXHA" name="move" method="_atwQw-eCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aUrpc-eCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aUrpdOeCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aUsQgOeCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aUsQhOeCEeWktpDGdewXHA" name="getCircle" method="_atw30OeCEeWktpDGdewXHA">
          <ownedComment xmi:id="_auOK0OeCEeWktpDGdewXHA">
            <body>TODO&#xD;
	 * Shortcut method to retrieve the only Circle class within circleSets&#xD;
	 * @return</body>
          </ownedComment>
          <ownedParameter xmi:id="_arzwAOeCEeWktpDGdewXHA" type="_HY3wMM-bEeWOGvD12nE26A" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xwrt0MR4EeW_3q3XSh-SYw" name="CircularBumper">
        <eAnnotations xmi:id="_akDPcs9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akDPc89KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akDPdM9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <generalization xmi:id="_E3ztcMoQEeWsA83iBWrPKA" general="_rClFYN_HEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_atEUQOeCEeWktpDGdewXHA" name="radius" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ak6yIM9KEeWD9JA5XZkC8g" name="CircularBumper" specification="_aknQJ89KEeWD9JA5XZkC8g">
          <ownedParameter xmi:id="_kETeEM-UEeWOGvD12nE26A" type="_xwrt0MR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kEUFIM-UEeWOGvD12nE26A" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kEUFIc-UEeWOGvD12nE26A" name="grid_tile_x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kEUFIs-UEeWOGvD12nE26A" name="grid_tile_y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kEUFI8-UEeWOGvD12nE26A" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <language>java</language>
          <body>super(name, grid_tile_x * MainEngine.L, grid_tile_y * MainEngine.L, color);&#xD;
		radius = 10;&#xD;
		Circle circle = new Circle(grid_tile_x * MainEngine.L, grid_tile_y * MainEngine.L, radius);&#xD;
		circleSet.add(circle);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atxe4eeCEeWktpDGdewXHA" name="setupDrawingShape" specification="_g_9YwM-TEeWOGvD12nE26A">
          <language>java</language>
          <body>drawingShape = new Ellipse2D.Double(0, 0, MainEngine.L, MainEngine.L);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atxe4ueCEeWktpDGdewXHA" name="setupCircles" specification="_S1vxYNpKEeWelou951FNPg">
          <language>java</language>
          <body>Circle circle = new Circle(getX() + 10, getY() + 10, 10);&#xD;
		circleSet.add(circle);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atxe4-eCEeWktpDGdewXHA" name="updateCollections" specification="_aUuswOeCEeWktpDGdewXHA">
          <language>java</language>
          <body>setupDrawingShape();&#xD;
		setupCircles();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atyF8OeCEeWktpDGdewXHA" name="rotate" specification="_aUv64OeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atyF8eeCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atyF8ueCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>updateCollections();&#xD;
&#xD;
		// TODO Auto-generated method stub&#xD;
		return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atyF8-eCEeWktpDGdewXHA" name="move" specification="_aUyXIOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atyF9OeCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atyF9eeCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atyF9ueCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>updateCollections();&#xD;
&#xD;
		// TODO Auto-generated method stub&#xD;
		return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_akD2gM9KEeWD9JA5XZkC8g" name="triggerAction"/>
        <ownedOperation xmi:id="_aknQJ89KEeWD9JA5XZkC8g" name="CircularBumper" method="_ak6yIM9KEeWD9JA5XZkC8g">
          <eAnnotations xmi:id="_akn3Nc9KEeWD9JA5XZkC8g" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_akn3Ns9KEeWD9JA5XZkC8g" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_akn3NM9KEeWD9JA5XZkC8g" type="_xwrt0MR4EeW_3q3XSh-SYw" direction="return"/>
          <ownedParameter xmi:id="_hAsYkM-TEeWOGvD12nE26A" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_akn3MM9KEeWD9JA5XZkC8g" name="grid_tile_x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_akn3Mc9KEeWD9JA5XZkC8g" name="grid_tile_y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_akn3Ms9KEeWD9JA5XZkC8g" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
        </ownedOperation>
        <ownedOperation xmi:id="_g_9YwM-TEeWOGvD12nE26A" name="setupDrawingShape" visibility="protected" method="_atxe4eeCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_S1vxYNpKEeWelou951FNPg" name="setupCircles" visibility="protected" method="_atxe4ueCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_aUuswOeCEeWktpDGdewXHA" name="updateCollections" method="_atxe4-eCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_aUv64OeCEeWktpDGdewXHA" name="rotate" method="_atyF8OeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aUv64eeCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aUv64ueCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aUyXIOeCEeWktpDGdewXHA" name="move" method="_atyF8-eCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aUyXIeeCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aUyXIueCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aUy-MOeCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xws78MR4EeW_3q3XSh-SYw" name="CollisionDetails">
        <eAnnotations xmi:id="_akD2g89KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akEdkM9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akEdkc9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_4rHiUM-aEeWOGvD12nE26A" name="tuc" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_4rHiUc-aEeWOGvD12nE26A" name="velo" type="_4rFGEM-aEeWOGvD12nE26A" isReadOnly="true" association="_4rIwdM-aEeWOGvD12nE26A"/>
        <ownedAttribute xmi:id="_U0n9QNpoEeWelou951FNPg" name="b" visibility="private" type="_xwrGwMR4EeW_3q3XSh-SYw" association="_U0pLYNpoEeWelou951FNPg"/>
        <ownedAttribute xmi:id="_atGJcOeCEeWktpDGdewXHA" name="clderName" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
        </ownedAttribute>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_U0okV9poEeWelou951FNPg" name="getBall" specification="_U0mvJNpoEeWelou951FNPg">
          <ownedParameter xmi:id="_U0okWNpoEeWelou951FNPg" type="_xwrGwMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>return b;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atytAOeCEeWktpDGdewXHA" name="CollisionDetails" specification="_ar2zUOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atytAeeCEeWktpDGdewXHA" name="t">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atytAueCEeWktpDGdewXHA" name="v" type="_4rFGEM-aEeWOGvD12nE26A"/>
          <ownedParameter xmi:id="_atytA-eCEeWktpDGdewXHA" name="ball" type="_xwrGwMR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_atytBOeCEeWktpDGdewXHA" name="colliderID">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atytBeeCEeWktpDGdewXHA" type="_xws78MR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>tuc = t;&#xD;
		velo = v;&#xD;
		clderName = colliderID;&#xD;
		b = ball;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atytBueCEeWktpDGdewXHA" name="getColliderName" specification="_aU3PoOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atytB-eCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>return clderName;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_U0mvJNpoEeWelou951FNPg" name="getBall" method="_U0okV9poEeWelou951FNPg">
          <ownedParameter xmi:id="_U0mvJdpoEeWelou951FNPg" type="_xwrGwMR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aU3PoOeCEeWktpDGdewXHA" name="getColliderName" method="_atytBueCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aU32sOeCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_ar2zUOeCEeWktpDGdewXHA" name="CollisionDetails" method="_atytAOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_ar2zVeeCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_ar3aYOeCEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_ar2zUeeCEeWktpDGdewXHA" name="t">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_ar2zUueCEeWktpDGdewXHA" name="v" type="_4rFGEM-aEeWOGvD12nE26A"/>
          <ownedParameter xmi:id="_ar2zU-eCEeWktpDGdewXHA" name="ball" type="_xwrGwMR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_ar2zVOeCEeWktpDGdewXHA" name="colliderID">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_ar3aYeeCEeWktpDGdewXHA" type="_xws78MR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xwtjAMR4EeW_3q3XSh-SYw" name="Connections">
        <eAnnotations xmi:id="_akEdks9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akEdk89KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akEdlM9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_sA_j8NptEeWelou951FNPg" name="keyMap" visibility="private" type="_E3x4QMoQEeWsA83iBWrPKA" association="_sBALBNptEeWelou951FNPg">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aU6S8OeCEeWktpDGdewXHA" value="*"/>
          <qualifier xmi:id="_sA_j8tptEeWelou951FNPg">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </qualifier>
        </ownedAttribute>
        <ownedAttribute xmi:id="_sA_j89ptEeWelou951FNPg" name="triggerMap" visibility="private" type="_E3x4QMoQEeWsA83iBWrPKA" association="_sBAyEdptEeWelou951FNPg">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aU8vMOeCEeWktpDGdewXHA" value="*"/>
          <qualifier xmi:id="_sBALAdptEeWelou951FNPg" type="_E3x4QMoQEeWsA83iBWrPKA"/>
        </ownedAttribute>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_sBALAtptEeWelou951FNPg" name="Connections" specification="_sA8goNptEeWelou951FNPg">
          <ownedParameter xmi:id="_3PcSANpwEeWelou951FNPg" type="_xwtjAMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <ownedParameter xmi:id="_3PcSAdpwEeWelou951FNPg" name="kMap" type="_sA-84dptEeWelou951FNPg"/>
          <ownedParameter xmi:id="_3PcSAtpwEeWelou951FNPg" name="gtMap" type="_sA-84dptEeWelou951FNPg"/>
          <language>java</language>
          <body>keyMap = kMap;&#xD;
		triggerMap = gtMap;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_T6lAwNpxEeWelou951FNPg" name="getGizmoTriggerConnections" specification="_T6jyoNpxEeWelou951FNPg">
          <ownedParameter xmi:id="_T6lAwdpxEeWelou951FNPg" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_T6lAwtpxEeWelou951FNPg" type="_E3x4QMoQEeWsA83iBWrPKA" isOrdered="true" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T6lAw9pxEeWelou951FNPg" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return triggerMap.get(gizmo);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atzUEOeCEeWktpDGdewXHA" name="Connections" specification="_aU99UOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atzUEeeCEeWktpDGdewXHA" type="_xwtjAMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>keyMap = new HashMap&lt;Integer, Set&lt;AGizmoComponent>>();&#xD;
		triggerMap = new HashMap&lt;AGizmoComponent, Set&lt;AGizmoComponent>>();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atz7IOeCEeWktpDGdewXHA" name="addKeyConnection" specification="_ar7r0eeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atz7IeeCEeWktpDGdewXHA" name="keyCode">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atz7IueCEeWktpDGdewXHA" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_atz7I-eCEeWktpDGdewXHA" type="_ar7EwOeCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>// parameter validation&#xD;
		if(gizmo == null ||&#xD;
			KeyEvent.getKeyText(keyCode).contains(&quot;Unknown keyCode&quot;)		// check if keyCode refers to a fake key&#xD;
		){&#xD;
			return Connections_Status.AC.INVALID_ARG;&#xD;
		}&#xD;
		&#xD;
		&#xD;
		Set&lt;AGizmoComponent> gizmoSet = keyMap.get(keyCode);&#xD;
		if(gizmoSet == null){		// i.e. check if there is no recorded connection for this key yet&#xD;
			gizmoSet = new HashSet&lt;AGizmoComponent>();&#xD;
		}&#xD;
		&#xD;
&#xD;
		if(!gizmoSet.add(gizmo)){		// i.e. does connection already exist...?&#xD;
			return Connections_Status.AC.CONNECTION_EXIST;&#xD;
		}&#xD;
		&#xD;
		keyMap.put(keyCode, gizmoSet);&#xD;
		&#xD;
		return Connections_Status.AC.OK;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atz7JOeCEeWktpDGdewXHA" name="removeKeyConnection" specification="_ar9hAOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atz7JeeCEeWktpDGdewXHA" name="keyCode">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atz7JueCEeWktpDGdewXHA" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_atz7J-eCEeWktpDGdewXHA" type="_ar8S4ueCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>// parameter validation&#xD;
		if(gizmo == null ||&#xD;
			KeyEvent.getKeyText(keyCode).contains(&quot;Unknown keyCode&quot;)		// check if keyCode refers to a fake key&#xD;
		){&#xD;
			return Connections_Status.RC.INVALID_ARG;&#xD;
		}&#xD;
		&#xD;
		Set&lt;AGizmoComponent> gizmoSet = keyMap.get(keyCode);&#xD;
		&#xD;
		if(gizmoSet == null)&#xD;
			return Connections_Status.RC.CONNECTION_NOT_EXIST;&#xD;
		else{&#xD;
			if(!gizmoSet.remove(gizmo)){		// i.e. check if there is no recorded connection for this key yet&#xD;
				return Connections_Status.RC.CONNECTION_NOT_EXIST;&#xD;
			}&#xD;
			keyMap.put(keyCode, gizmoSet);&#xD;
		}&#xD;
		&#xD;
		return Connections_Status.RC.OK;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_atz7KOeCEeWktpDGdewXHA" name="getKeyConnections" specification="_aU_LcOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_atz7KeeCEeWktpDGdewXHA" name="keyCode">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_atz7KueCEeWktpDGdewXHA" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_atz7K-eCEeWktpDGdewXHA" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return keyMap.get(keyCode);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at0iMOeCEeWktpDGdewXHA" name="clearKeyConnection" specification="_aU_ygOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at0iMeeCEeWktpDGdewXHA" name="keyCode">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <language>java</language>
          <body>Set&lt;AGizmoComponent> gizmoSet = keyMap.get(keyCode);&#xD;
		gizmoSet.clear();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at0iMueCEeWktpDGdewXHA" name="clearALLKeyConnection" specification="_aU_ygueCEeWktpDGdewXHA">
          <language>java</language>
          <body>keyMap.clear();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at0iM-eCEeWktpDGdewXHA" name="addGizmoTriggerConnection" specification="_ar-IEOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at0iNOeCEeWktpDGdewXHA" name="triggeredGizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_at0iNeeCEeWktpDGdewXHA" name="reactionGizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_at0iNueCEeWktpDGdewXHA" type="_ar7EwOeCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>// parameter validation&#xD;
		if(triggeredGizmo == null || reactionGizmo == null){&#xD;
			return Connections_Status.AC.INVALID_ARG;&#xD;
		}&#xD;
		&#xD;
		&#xD;
		Set&lt;AGizmoComponent> gizmoSet = triggerMap.get(triggeredGizmo);&#xD;
		if(gizmoSet == null){		// i.e. check if there is no recorded connection for this key yet&#xD;
			gizmoSet = new HashSet&lt;AGizmoComponent>();&#xD;
		}&#xD;
		&#xD;
&#xD;
		if(!gizmoSet.add(reactionGizmo)){		// i.e. does connection already exist...?&#xD;
			return Connections_Status.AC.CONNECTION_EXIST;&#xD;
		}&#xD;
		&#xD;
		triggerMap.put(triggeredGizmo, gizmoSet);&#xD;
		&#xD;
		return Connections_Status.AC.OK;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at0iN-eCEeWktpDGdewXHA" name="removeGizmoTriggerConnection" specification="_ar-vIOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at0iOOeCEeWktpDGdewXHA" name="triggeredGizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_at0iOeeCEeWktpDGdewXHA" name="reactionGizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_at0iOueCEeWktpDGdewXHA" type="_ar8S4ueCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>// parameter validation&#xD;
		if(triggeredGizmo == null || reactionGizmo == null){&#xD;
			return Connections_Status.RC.INVALID_ARG;&#xD;
		}&#xD;
		&#xD;
		Set&lt;AGizmoComponent> gizmoSet = triggerMap.get(triggeredGizmo);&#xD;
		&#xD;
		if(gizmoSet == null)&#xD;
			return Connections_Status.RC.CONNECTION_NOT_EXIST;&#xD;
		else{&#xD;
			if(!gizmoSet.remove(reactionGizmo)){		// i.e. check if there is no recorded connection for this key yet&#xD;
				return Connections_Status.RC.CONNECTION_NOT_EXIST;&#xD;
			}&#xD;
			triggerMap.put(triggeredGizmo, gizmoSet);&#xD;
		}&#xD;
		&#xD;
		return Connections_Status.RC.OK;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at1JQOeCEeWktpDGdewXHA" name="clearTriggerConnection" specification="_ar_WMOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at1JQeeCEeWktpDGdewXHA" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <language>java</language>
          <body>Set&lt;AGizmoComponent> gizmoSet = keyMap.get(gizmo);&#xD;
		gizmoSet.clear();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at1JQueCEeWktpDGdewXHA" name="clearALLGizmoTriggerConnection" specification="_aVAZkOeCEeWktpDGdewXHA">
          <language>java</language>
          <body>triggerMap.clear();&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_sA8goNptEeWelou951FNPg" name="Connections" method="_sBALAtptEeWelou951FNPg">
          <eAnnotations xmi:id="_sA8gotptEeWelou951FNPg" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_sA8go9ptEeWelou951FNPg" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_sA8godptEeWelou951FNPg" type="_xwtjAMR4EeW_3q3XSh-SYw" direction="return"/>
          <ownedParameter xmi:id="_3PZ1wNpwEeWelou951FNPg" name="kMap" type="_sA-84dptEeWelou951FNPg"/>
          <ownedParameter xmi:id="_3Pac0NpwEeWelou951FNPg" name="gtMap" type="_sA-84dptEeWelou951FNPg"/>
        </ownedOperation>
        <ownedOperation xmi:id="_T6jyoNpxEeWelou951FNPg" name="getGizmoTriggerConnections" method="_T6lAwNpxEeWelou951FNPg">
          <ownedParameter xmi:id="_T6jyodpxEeWelou951FNPg" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_T6jyotpxEeWelou951FNPg" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T6jyo9pxEeWelou951FNPg" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aU99UOeCEeWktpDGdewXHA" name="Connections" method="_atzUEOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_aU99UeeCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_aU99UueCEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_aU-kYOeCEeWktpDGdewXHA" type="_xwtjAMR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aU_LcOeCEeWktpDGdewXHA" name="getKeyConnections" method="_atz7KOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aU_LceeCEeWktpDGdewXHA" name="keyCode">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aU_LcueCEeWktpDGdewXHA" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aU_Lc-eCEeWktpDGdewXHA" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aU_ygOeCEeWktpDGdewXHA" name="clearKeyConnection" method="_at0iMOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aU_ygeeCEeWktpDGdewXHA" name="keyCode">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aU_ygueCEeWktpDGdewXHA" name="clearALLKeyConnection" method="_at0iMueCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_aVAZkOeCEeWktpDGdewXHA" name="clearALLGizmoTriggerConnection" method="_at1JQueCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_ar7r0eeCEeWktpDGdewXHA" name="addKeyConnection" method="_atz7IOeCEeWktpDGdewXHA">
          <ownedComment xmi:id="_auOK0eeCEeWktpDGdewXHA">
            <body>TODO&#xD;
	 * @param keyCode&#xD;
	 * @param gizmo&#xD;
	 * @return</body>
          </ownedComment>
          <ownedParameter xmi:id="_ar7r0ueCEeWktpDGdewXHA" name="keyCode">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_ar8S4OeCEeWktpDGdewXHA" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_ar8S4eeCEeWktpDGdewXHA" type="_ar7EwOeCEeWktpDGdewXHA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_ar9hAOeCEeWktpDGdewXHA" name="removeKeyConnection" method="_atz7JOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_ar9hAeeCEeWktpDGdewXHA" name="keyCode">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_ar9hAueCEeWktpDGdewXHA" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_ar9hA-eCEeWktpDGdewXHA" type="_ar8S4ueCEeWktpDGdewXHA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_ar-IEOeCEeWktpDGdewXHA" name="addGizmoTriggerConnection" method="_at0iM-eCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_ar-IEeeCEeWktpDGdewXHA" name="triggeredGizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_ar-IEueCEeWktpDGdewXHA" name="reactionGizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_ar-IE-eCEeWktpDGdewXHA" type="_ar7EwOeCEeWktpDGdewXHA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_ar-vIOeCEeWktpDGdewXHA" name="removeGizmoTriggerConnection" method="_at0iN-eCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_ar-vIeeCEeWktpDGdewXHA" name="triggeredGizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_ar-vIueCEeWktpDGdewXHA" name="reactionGizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_ar-vI-eCEeWktpDGdewXHA" type="_ar8S4ueCEeWktpDGdewXHA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_ar_WMOeCEeWktpDGdewXHA" name="clearTriggerConnection" method="_at1JQOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_ar_WMeeCEeWktpDGdewXHA" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xwvYMMR4EeW_3q3XSh-SYw" name="MainEngine">
        <eAnnotations xmi:id="_akHg4s9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akHg489KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akIH8M9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <generalization xmi:id="_pvgv0MoiEeWI07Wu9tqfCA" general="_xy57YcR4EeW_3q3XSh-SYw"/>
        <ownedAttribute xmi:id="_QljJMMR5EeW_3q3XSh-SYw" name="ballSet" visibility="private" type="_xwrGwMR4EeW_3q3XSh-SYw" association="_n02hYcR5EeW_3q3XSh-SYw">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QljJMcR5EeW_3q3XSh-SYw" value="*"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_QljwQcR5EeW_3q3XSh-SYw" name="gws" visibility="private" type="_xwhVwMR4EeW_3q3XSh-SYw" association="_QloBsMR5EeW_3q3XSh-SYw"/>
        <ownedAttribute xmi:id="_64WgIMR8EeW_3q3XSh-SYw" name="physicsSettings" visibility="private" type="_xwv_QMR4EeW_3q3XSh-SYw" association="_64YVUMR8EeW_3q3XSh-SYw"/>
        <ownedAttribute xmi:id="_VC_oEMR9EeW_3q3XSh-SYw" name="customConnections" visibility="private" type="_xwtjAMR4EeW_3q3XSh-SYw" association="_VDAPIMR9EeW_3q3XSh-SYw"/>
        <ownedAttribute xmi:id="_63bYENo-EeWZSOZzoCHXcg" name="L" visibility="package" isLeaf="true" isStatic="true" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          <defaultValue xmi:type="uml:LiteralString" xmi:id="_63bYEdo-EeWZSOZzoCHXcg" value="20"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_f1IaUNqJEeW7l6s7iyoCaQ" name="isPlaying" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_atRIkOeCEeWktpDGdewXHA" name="gizmos" visibility="private" type="_E3x4QMoQEeWsA83iBWrPKA" association="_autTAeeCEeWktpDGdewXHA">
          <qualifier xmi:id="_atRvoeeCEeWktpDGdewXHA">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </qualifier>
        </ownedAttribute>
        <ownedAttribute xmi:id="_atRvoueCEeWktpDGdewXHA" name="lineSegmentColliders" visibility="private" type="_n7vxMNo-EeWZSOZzoCHXcg" association="_aut6EeeCEeWktpDGdewXHA">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_atRvo-eCEeWktpDGdewXHA" value="*"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_atSWseeCEeWktpDGdewXHA" name="collisionList" visibility="private" type="_xws78MR4EeW_3q3XSh-SYw" isOrdered="true" association="_auuhIeeCEeWktpDGdewXHA">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_atSWsueCEeWktpDGdewXHA" value="*"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_atS9weeCEeWktpDGdewXHA" name="sCollisionHandler" visibility="private" type="_as1qwOeCEeWktpDGdewXHA" association="_auvIMOeCEeWktpDGdewXHA"/>
        <ownedAttribute xmi:id="_atUL4OeCEeWktpDGdewXHA" name="fileHandler" visibility="private" type="_xwwmUMR4EeW_3q3XSh-SYw" association="_auvvQOeCEeWktpDGdewXHA"/>
        <interfaceRealization xmi:id="_q9N-QMoQEeWsA83iBWrPKA" client="_xwvYMMR4EeW_3q3XSh-SYw" supplier="_PF7uUMoQEeWsA83iBWrPKA" contract="_PF7uUMoQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_asdQQeeCEeWktpDGdewXHA" client="_xwvYMMR4EeW_3q3XSh-SYw" supplier="_is7jEMoQEeWsA83iBWrPKA" contract="_is7jEMoQEeWsA83iBWrPKA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_f1SyYNqJEeW7l6s7iyoCaQ" name="moveBallAtCurrentVelo" specification="_f0nc8NqJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_f1SyYdqJEeW7l6s7iyoCaQ" name="ball" type="_xwrGwMR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_f1SyYtqJEeW7l6s7iyoCaQ" name="time">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_f1SyY9qJEeW7l6s7iyoCaQ" type="_xwrGwMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO Auto-generated method stub&#xD;
		return ball;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_f1SyZNqJEeW7l6s7iyoCaQ" name="timeUntilCollision" specification="_f0C1MNqJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_at_hUOeCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>for(Ball ball : ballSet){&#xD;
			// Find Time Until Collision and also, if there is a collision, the new&#xD;
			// speed vector.&#xD;
			// Create a physics.Circle from Ball&#xD;
			Circle ballCircle = ball.getCircle();&#xD;
			Vect ballVelocity = ball.getVelo();&#xD;
			Vect newVelo = new Vect(0, 0);&#xD;
&#xD;
			// Now find shortest time to hit a vertical line or a wall line&#xD;
			double shortestTime = Double.MAX_VALUE;&#xD;
			double time = 0.0;&#xD;
			&#xD;
			String colliderID = null;		// the Gizmo component that the ball will collide with in a collision prediction&#xD;
&#xD;
			&#xD;
			// Time to collide with 4 walls&#xD;
			ArrayList&lt;LineSegment> lss = gws.getLineSegments();&#xD;
			for (LineSegment line : lss) {&#xD;
				time = Geometry.timeUntilWallCollision(line, ballCircle, ballVelocity);&#xD;
				if (time &lt; shortestTime) {&#xD;
					shortestTime = time;&#xD;
					newVelo = Geometry.reflectWall(line, ballVelocity, 1.0);&#xD;
					colliderID = &quot;Wall&quot;;&#xD;
				}&#xD;
			}&#xD;
			&#xD;
&#xD;
			// Time to collide with the Circles of all Gizmos&#xD;
			Set&lt;Circle> circleSet;&#xD;
			&#xD;
			Collection&lt;AGizmoComponent> allGizmos = getAllGizmos();&#xD;
			&#xD;
			for(AGizmoComponent gizmo: allGizmos){&#xD;
				circleSet = gizmo.getCircles();&#xD;
				&#xD;
				for(Circle circle : circleSet){&#xD;
					time = Geometry.timeUntilCircleCollision(circle, ballCircle, ballVelocity);&#xD;
					if (time &lt; shortestTime) {&#xD;
						shortestTime = time;&#xD;
						newVelo = Geometry.reflectCircle(circle.getCenter(), ballCircle.getCenter(), ballVelocity, 1.0);&#xD;
						colliderID = gizmo.getGizmoID();&#xD;
					}&#xD;
				}&#xD;
			}&#xD;
			&#xD;
			&#xD;
			// Time to collide with the Line Segment of all Gizmos&#xD;
			Set&lt;LineSegment> lsSet;&#xD;
			&#xD;
			for(ILineSegmentCollider gizmo : lineSegmentColliders){&#xD;
				lsSet = gizmo.getLineSeg();&#xD;
				&#xD;
				for(LineSegment line : lss){&#xD;
					time = Geometry.timeUntilWallCollision(line, ballCircle, ballVelocity);&#xD;
					if (time &lt; shortestTime) {&#xD;
						shortestTime = time;&#xD;
						newVelo = Geometry.reflectWall(line, ballVelocity, 1.0);&#xD;
						colliderID = ((AGizmoComponent) gizmo).getGizmoID();&#xD;
					}&#xD;
				}&#xD;
			}&#xD;
				&#xD;
			&#xD;
			CollisionDetails cd = new CollisionDetails(shortestTime, newVelo, ball, colliderID);&#xD;
			collisionList.add(cd);&#xD;
		}&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_f1TZcNqJEeW7l6s7iyoCaQ" name="addGizmo" specification="_f0C1MtqJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_f1TZcdqJEeW7l6s7iyoCaQ" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_f1TZctqJEeW7l6s7iyoCaQ" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>AGizmoComponent g = getGizmoAt(gizmo.getX(), gizmo.getY());&#xD;
&#xD;
		if (g != null) {&#xD;
			removeGizmo(g);&#xD;
		}&#xD;
		gizmos.put(gizmo.getGizmoID(), gizmo);&#xD;
&#xD;
		// Update mapping based on the type of Gizmo, used in Collisions&#xD;
		if(gizmo instanceof ILineSegmentCollider){&#xD;
			lineSegmentColliders.add((ILineSegmentCollider) gizmo);&#xD;
		}&#xD;
		&#xD;
		setChanged();&#xD;
		notifyObservers();&#xD;
		&#xD;
		return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_f1TZc9qJEeW7l6s7iyoCaQ" name="removeGizmo" specification="_f0DcQNqJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_f1TZdNqJEeW7l6s7iyoCaQ" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_f1TZddqJEeW7l6s7iyoCaQ" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>gizmos.remove(gizmo.getGizmoID());&#xD;
&#xD;
		// Update mapping based on the type of Gizmo, used in Collisions	&#xD;
		if(gizmo instanceof ILineSegmentCollider){&#xD;
			lineSegmentColliders.remove(gizmo);&#xD;
		}&#xD;
		&#xD;
		// TODO remove connection&#xD;
		&#xD;
		return !(gizmos.containsValue(gizmo));&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_f1TZdtqJEeW7l6s7iyoCaQ" name="getGizmoSet" specification="_f1BsoNqJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_f1TZd9qJEeW7l6s7iyoCaQ" name="cls" type="_f0-pUNqJEeW7l6s7iyoCaQ"/>
          <ownedParameter xmi:id="_f1TZeNqJEeW7l6s7iyoCaQ" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_f1TZedqJEeW7l6s7iyoCaQ" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return null;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_f1TZetqJEeW7l6s7iyoCaQ" name="isPlaying" specification="_f0EqZNqJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_f1TZe9qJEeW7l6s7iyoCaQ" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at-6QOeCEeWktpDGdewXHA" name="MainEngine" specification="_aV80wOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at-6QeeCEeWktpDGdewXHA" type="_xwvYMMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>gizmos = new HashMap&lt;String, AGizmoComponent>();&#xD;
		lineSegmentColliders = new HashSet&lt;ILineSegmentCollider>();&#xD;
&#xD;
		collisionList = new ArrayList&lt;CollisionDetails>();&#xD;
		&#xD;
		physicsSettings = new PhysicsConfig();&#xD;
		customConnections = new Connections();&#xD;
		fileHandler = new SaveDataEngine();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at_hUeeCEeWktpDGdewXHA" name="getGizmoAt" specification="_aV-C4OeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at_hUueCEeWktpDGdewXHA" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at_hU-eCEeWktpDGdewXHA" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at_hVOeCEeWktpDGdewXHA" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>for (AGizmoComponent g : gizmos.values()) {&#xD;
			if (g.getX() == x &amp;&amp; g.getY() == y) {&#xD;
				return g;&#xD;
			}&#xD;
		}&#xD;
		return null;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_auAIYOeCEeWktpDGdewXHA" name="getAllGizmos" specification="_aV-p8OeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_auAIYeeCEeWktpDGdewXHA" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_auAIYueCEeWktpDGdewXHA" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return gizmos.values();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_auAIY-eCEeWktpDGdewXHA" name="getGizmosMap" specification="_aV_4EeeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_auAIZOeCEeWktpDGdewXHA" type="_sA-84dptEeWelou951FNPg" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>return gizmos;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_auAvcOeCEeWktpDGdewXHA" name="loadFile" specification="_aWBtQOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_auAvceeCEeWktpDGdewXHA" name="filePath">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>gizmos = new HashMap&lt;String, AGizmoComponent>();&#xD;
		fileHandler.loadFile(filePath, this);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_auAvcueCEeWktpDGdewXHA" name="saveFile" specification="_aWCUUueCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_auAvc-eCEeWktpDGdewXHA" name="filePath">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>fileHandler.saveFile(filePath);&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_f0BnENqJEeW7l6s7iyoCaQ" name="moveBall"/>
        <ownedOperation xmi:id="_f0C1MNqJEeW7l6s7iyoCaQ" name="timeUntilCollision" visibility="private" method="_f1SyZNqJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_f0C1MdqJEeW7l6s7iyoCaQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_f0C1MtqJEeW7l6s7iyoCaQ" name="addGizmo" method="_f1TZcNqJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_f0C1M9qJEeW7l6s7iyoCaQ" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_f0oEANqJEeW7l6s7iyoCaQ" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_f0DcQNqJEeW7l6s7iyoCaQ" name="removeGizmo" method="_f1TZc9qJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_f0DcQdqJEeW7l6s7iyoCaQ" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_f0oEAdqJEeW7l6s7iyoCaQ" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_f0DcRNqJEeW7l6s7iyoCaQ" name="setBallSpeed">
          <ownedParameter xmi:id="_f0DcRdqJEeW7l6s7iyoCaQ" name="b" type="_xwrGwMR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_f0EDUNqJEeW7l6s7iyoCaQ" name="velo" type="_4rFGEM-aEeWOGvD12nE26A"/>
        </ownedOperation>
        <ownedOperation xmi:id="_f0EDU9qJEeW7l6s7iyoCaQ" name="start"/>
        <ownedOperation xmi:id="_f0EqYdqJEeW7l6s7iyoCaQ" name="stop"/>
        <ownedOperation xmi:id="_f0EqZNqJEeW7l6s7iyoCaQ" name="isPlaying" method="_f1TZetqJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_f0oEAtqJEeW7l6s7iyoCaQ" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_f0nc8NqJEeW7l6s7iyoCaQ" name="moveBallAtCurrentVelo" visibility="private" method="_f1SyYNqJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_f0nc8dqJEeW7l6s7iyoCaQ" name="ball" type="_xwrGwMR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_f0nc8tqJEeW7l6s7iyoCaQ" name="time">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_f0nc89qJEeW7l6s7iyoCaQ" type="_xwrGwMR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_f1BsoNqJEeW7l6s7iyoCaQ" name="getGizmoSet" method="_f1TZdtqJEeW7l6s7iyoCaQ">
          <ownedParameter xmi:id="_f1CTsNqJEeW7l6s7iyoCaQ" name="cls" type="_f0-pUNqJEeW7l6s7iyoCaQ"/>
          <ownedParameter xmi:id="_f1CTsdqJEeW7l6s7iyoCaQ" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_f1CTstqJEeW7l6s7iyoCaQ" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aV80wOeCEeWktpDGdewXHA" name="MainEngine" method="_at-6QOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_aV80weeCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_aV80wueCEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_aV80w-eCEeWktpDGdewXHA" type="_xwvYMMR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aV-C4OeCEeWktpDGdewXHA" name="getGizmoAt" method="_at_hUeeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aV-C4eeCEeWktpDGdewXHA" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aV-C4ueCEeWktpDGdewXHA" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_asfFcOeCEeWktpDGdewXHA" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aV-p8OeCEeWktpDGdewXHA" name="getAllGizmos" method="_auAIYOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_aV_RAOeCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_aV_RAeeCEeWktpDGdewXHA" key="generic_container"/>
          </eAnnotations>
          <ownedParameter xmi:id="_aV-p8eeCEeWktpDGdewXHA" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aV-p8ueCEeWktpDGdewXHA" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aV_4EeeCEeWktpDGdewXHA" name="getGizmosMap" method="_auAIY-eCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_asfsgOeCEeWktpDGdewXHA" type="_sA-84dptEeWelou951FNPg" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aWBtQOeCEeWktpDGdewXHA" name="loadFile" method="_auAvcOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aWBtQeeCEeWktpDGdewXHA" name="filePath">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aWCUUueCEeWktpDGdewXHA" name="saveFile" method="_auAvcueCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aWCUU-eCEeWktpDGdewXHA" name="filePath">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xwv_QMR4EeW_3q3XSh-SYw" name="PhysicsConfig">
        <eAnnotations xmi:id="_akJ9IM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akJ9Ic9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akJ9Is9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_4rHiUs-aEeWOGvD12nE26A" name="moveTime" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          <defaultValue xmi:type="uml:LiteralString" xmi:id="_4rHiU8-aEeWOGvD12nE26A">
            <value xsi:nil="true"/>
          </defaultValue>
        </ownedAttribute>
        <ownedAttribute xmi:id="_4rHiVM-aEeWOGvD12nE26A" name="mu1" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          <defaultValue xmi:type="uml:LiteralString" xmi:id="_4rHiVc-aEeWOGvD12nE26A">
            <value xsi:nil="true"/>
          </defaultValue>
        </ownedAttribute>
        <ownedAttribute xmi:id="_4rIJYc-aEeWOGvD12nE26A" name="mu2" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          <defaultValue xmi:type="uml:LiteralString" xmi:id="_4rIJYs-aEeWOGvD12nE26A">
            <value xsi:nil="true"/>
          </defaultValue>
        </ownedAttribute>
        <ownedAttribute xmi:id="_4rIJZM-aEeWOGvD12nE26A" name="gravity" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          <defaultValue xmi:type="uml:LiteralString" xmi:id="_4rIJZc-aEeWOGvD12nE26A">
            <value xsi:nil="true"/>
          </defaultValue>
        </ownedAttribute>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4rIwcM-aEeWOGvD12nE26A" name="getFrictionCoef1" specification="_4rBbsc-aEeWOGvD12nE26A">
          <ownedParameter xmi:id="_4rIwcc-aEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>return mu1;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4rIwcs-aEeWOGvD12nE26A" name="getFrictionCoef2" specification="_4rBbss-aEeWOGvD12nE26A">
          <ownedParameter xmi:id="_4rIwc8-aEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>return mu2;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_itk9ANpbEeWelou951FNPg" name="setFrictionCoef1" specification="_itkV8NpbEeWelou951FNPg">
          <ownedParameter xmi:id="_tkLTJtpbEeWelou951FNPg" name="mu">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_tkLTJ9pbEeWelou951FNPg" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO some validation&#xD;
		this.mu1 = mu;&#xD;
		return true;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_itk9AtpbEeWelou951FNPg" name="setFrictionCoef2" specification="_itkV8tpbEeWelou951FNPg">
          <ownedParameter xmi:id="_tkL6MNpbEeWelou951FNPg" name="mu2">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_tkL6MdpbEeWelou951FNPg" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO some validation&#xD;
		this.mu2 = mu2;&#xD;
		return true;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tkLTINpbEeWelou951FNPg" name="setMoveTime" specification="_tkKFANpbEeWelou951FNPg">
          <ownedParameter xmi:id="_tkLTIdpbEeWelou951FNPg" name="newMoveTime">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_tkLTItpbEeWelou951FNPg" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO some validation&#xD;
		moveTime = newMoveTime;&#xD;
		return true;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tkLTI9pbEeWelou951FNPg" name="setGravity" specification="_tkKsENpbEeWelou951FNPg">
          <ownedParameter xmi:id="_4HDmlNpcEeWelou951FNPg" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <ownedParameter xmi:id="_4HDmldpcEeWelou951FNPg" name="newGravity">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO some validation&#xD;
		gravity = newGravity;&#xD;
		return true;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_gQpyINpcEeWelou951FNPg" name="PhysicsConfig" specification="_4rA0oM-aEeWOGvD12nE26A">
          <ownedParameter xmi:id="_gQpyIdpcEeWelou951FNPg" type="_xwv_QMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>moveTime = 1.0 / 60.0; // 60 FPS&#xD;
&#xD;
		// Friction&#xD;
		mu1 = 0.025;&#xD;
		mu2 = 0.025 / MainEngine.L;&#xD;
&#xD;
		// Gravity&#xD;
		gravity = 25.0 * MainEngine.L;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_xq_iENpcEeWelou951FNPg" name="PhysicsConfig" specification="_xq-7ANpcEeWelou951FNPg">
          <ownedParameter xmi:id="_4HDmkNpcEeWelou951FNPg" name="mu">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_4HDmkdpcEeWelou951FNPg" name="mu2">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_4HDmktpcEeWelou951FNPg" type="_xwv_QMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <ownedParameter xmi:id="_4HDmk9pcEeWelou951FNPg" name="g">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO some validation&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_4rA0oM-aEeWOGvD12nE26A" name="PhysicsConfig" method="_gQpyINpcEeWelou951FNPg">
          <eAnnotations xmi:id="_4rA0oc-aEeWOGvD12nE26A" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_4rA0os-aEeWOGvD12nE26A" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_4rBbsM-aEeWOGvD12nE26A" type="_xwv_QMR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_4rBbsc-aEeWOGvD12nE26A" name="getFrictionCoef1" method="_4rIwcM-aEeWOGvD12nE26A">
          <ownedParameter xmi:id="_4rCp0M-aEeWOGvD12nE26A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_4rBbss-aEeWOGvD12nE26A" name="getFrictionCoef2" method="_4rIwcs-aEeWOGvD12nE26A">
          <ownedParameter xmi:id="_4rCp0c-aEeWOGvD12nE26A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_itkV8NpbEeWelou951FNPg" name="setFrictionCoef1" method="_itk9ANpbEeWelou951FNPg">
          <ownedParameter xmi:id="_itkV8dpbEeWelou951FNPg" name="mu">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_tkKsE9pbEeWelou951FNPg" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_itkV8tpbEeWelou951FNPg" name="setFrictionCoef2" method="_itk9AtpbEeWelou951FNPg">
          <ownedParameter xmi:id="_itkV89pbEeWelou951FNPg" name="mu2">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_tkKsFNpbEeWelou951FNPg" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_tkKFANpbEeWelou951FNPg" name="setMoveTime" method="_tkLTINpbEeWelou951FNPg">
          <ownedParameter xmi:id="_tkKFAdpbEeWelou951FNPg" name="newMoveTime">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_tkKFAtpbEeWelou951FNPg" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_xq-7ANpcEeWelou951FNPg" name="PhysicsConfig" method="_xq_iENpcEeWelou951FNPg">
          <eAnnotations xmi:id="_xq-7BdpcEeWelou951FNPg" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_xq-7BtpcEeWelou951FNPg" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_xq-7AdpcEeWelou951FNPg" name="mu">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_xq-7AtpcEeWelou951FNPg" name="mu2">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_xq-7BNpcEeWelou951FNPg" type="_xwv_QMR4EeW_3q3XSh-SYw" direction="return"/>
          <ownedParameter xmi:id="_xq_iE9pcEeWelou951FNPg" name="g">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_tkKsENpbEeWelou951FNPg" name="setGravity" method="_tkLTI9pbEeWelou951FNPg">
          <ownedParameter xmi:id="_2Et7YdpcEeWelou951FNPg" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <ownedParameter xmi:id="_tkLTJNpbEeWelou951FNPg" name="newGravity">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xwwmUMR4EeW_3q3XSh-SYw" name="SaveDataEngine">
        <eAnnotations xmi:id="_akJ9I89KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akJ9JM9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akJ9Jc9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at4zoOeCEeWktpDGdewXHA" name="loadFile" specification="_asOmweeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at4zoeeCEeWktpDGdewXHA" name="filepath">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at4zoueCEeWktpDGdewXHA" name="model" type="_xwvYMMR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>System.out.println(&quot;loading board from \&quot;&quot; + filepath + &quot;\&quot;&quot;);&#xD;
&#xD;
		try {&#xD;
			BufferedReader br = new BufferedReader(new FileReader(new File(filepath)));&#xD;
&#xD;
			while (br.ready()) {&#xD;
				String line = br.readLine();&#xD;
&#xD;
				StringTokenizer st = new StringTokenizer(line);&#xD;
&#xD;
				if (st.hasMoreTokens()) {&#xD;
					String name;&#xD;
					int x;&#xD;
					int y;&#xD;
					AGizmoComponent g;&#xD;
&#xD;
					String s = st.nextToken();&#xD;
&#xD;
					switch (s) {&#xD;
					case &quot;Triangle&quot;:&#xD;
						name = st.nextToken();&#xD;
						x = Integer.parseInt(st.nextToken());&#xD;
						y = Integer.parseInt(st.nextToken());&#xD;
&#xD;
						g = new TriangularBumper(name, x, y, Color.BLUE);&#xD;
						model.addGizmo(g);&#xD;
						break;&#xD;
&#xD;
					case &quot;Square&quot;:&#xD;
						name = st.nextToken();&#xD;
						x = Integer.parseInt(st.nextToken());&#xD;
						y = Integer.parseInt(st.nextToken());&#xD;
&#xD;
						g = new SquareBumper(name, x, y, Color.RED);&#xD;
						model.addGizmo(g);&#xD;
						break;&#xD;
&#xD;
					case &quot;Circle&quot;:&#xD;
						name = st.nextToken();&#xD;
						x = Integer.parseInt(st.nextToken());&#xD;
						y = Integer.parseInt(st.nextToken());&#xD;
&#xD;
						g = new CircularBumper(name, x, y, Color.GREEN);&#xD;
						model.addGizmo(g);&#xD;
						break;&#xD;
&#xD;
					case &quot;LeftFlipper&quot;:&#xD;
						name = st.nextToken();&#xD;
						x = Integer.parseInt(st.nextToken());&#xD;
						y = Integer.parseInt(st.nextToken());&#xD;
						System.out.println(&quot;Adding left flipper named \&quot;&quot; + name + &quot;\&quot; at (&quot; + x + &quot;, &quot; + y + &quot;)&quot;);&#xD;
&#xD;
						g = new Flipper(name, x, y, Color.ORANGE, true);&#xD;
						model.addGizmo(g);&#xD;
						break;&#xD;
&#xD;
					case &quot;RightFlipper&quot;:&#xD;
						name = st.nextToken();&#xD;
						x = Integer.parseInt(st.nextToken());&#xD;
						y = Integer.parseInt(st.nextToken());&#xD;
						System.out.println(&quot;Adding right flipper named \&quot;&quot; + name + &quot;\&quot; at (&quot; + x + &quot;, &quot; + y + &quot;)&quot;);&#xD;
&#xD;
						g = new Flipper(name, x, y, Color.ORANGE, false);&#xD;
						model.addGizmo(g);&#xD;
						break;&#xD;
&#xD;
					case &quot;Absorber&quot;:&#xD;
						// name = st.nextToken();&#xD;
						// x = Integer.parseInt(st.nextToken());&#xD;
						// y = Integer.parseInt(st.nextToken());&#xD;
						// int w = Integer.parseInt(st.nextToken()) - x;&#xD;
						// int h = Integer.parseInt(st.nextToken()) - y;&#xD;
						// System.out.println(&quot;Adding absorber named \&quot;&quot; + name&#xD;
						// + &quot;\&quot; at (&quot; + x + &quot;, &quot; + y + &quot;) with w = &quot; + w + &quot;, h&#xD;
						// = &quot; + h);&#xD;
						//&#xD;
						// g = new Absorber(name, x, y, w, h);&#xD;
						// b.addGizmo(name, g);&#xD;
						// break;&#xD;
&#xD;
					case &quot;Rotate&quot;:&#xD;
						// name = st.nextToken();&#xD;
						// System.out.println(&quot;Rotating \&quot;&quot; + name + &quot;\&quot; by 90&#xD;
						// degrees&quot;);&#xD;
						//&#xD;
						// b.getGizmo(name).rotate(90);&#xD;
						// break;&#xD;
&#xD;
					case &quot;Move&quot;:&#xD;
						// name = st.nextToken();&#xD;
						// x = Integer.parseInt(st.nextToken());&#xD;
						// y = Integer.parseInt(st.nextToken());&#xD;
						// System.out.println(&quot;Moving \&quot;&quot; + name + &quot;\&quot; to (&quot; + x&#xD;
						// + &quot;, &quot; + y + &quot;)&quot;);&#xD;
						//&#xD;
						// g = b.getGizmo(name);&#xD;
						// g.setX(x);&#xD;
						// g.setY(y);&#xD;
						// break;&#xD;
&#xD;
					case &quot;Delete&quot;:&#xD;
						// name = st.nextToken();&#xD;
						// System.out.println(&quot;Deleting \&quot;&quot; + name + &quot;\&quot;&quot;);&#xD;
						//&#xD;
						// b.removeGizmo(name);&#xD;
						// break;&#xD;
&#xD;
					case &quot;Ball&quot;:&#xD;
						// name = st.nextToken();&#xD;
						// double xpos = Double.parseDouble(st.nextToken());&#xD;
						// double ypos = Double.parseDouble(st.nextToken());&#xD;
						// double xvel = Double.parseDouble(st.nextToken());&#xD;
						// double yvel = Double.parseDouble(st.nextToken());&#xD;
						// System.out.println(&quot;Adding ball named \&quot;&quot; + name +&#xD;
						// &quot;\&quot; at (&quot; + xpos + &quot;, &quot; + ypos + &quot;) with xvel = &quot; +&#xD;
						// xvel + &quot;, yvel = &quot; + yvel);&#xD;
						//&#xD;
						// Ball ball = new Ball(xpos, ypos, xvel, yvel);&#xD;
						// b.addBall(name, ball);&#xD;
						// break;&#xD;
&#xD;
					case &quot;Connect&quot;:&#xD;
					case &quot;KeyConnect&quot;:&#xD;
					case &quot;Gravity&quot;:&#xD;
					case &quot;Friction&quot;:&#xD;
						System.err.println(&quot;Functionality for \&quot;&quot; + s + &quot;\&quot; not implemented&quot;);&#xD;
						break;&#xD;
&#xD;
					default:&#xD;
						System.err.println(&quot;Invalid command&quot;);&#xD;
						break;&#xD;
					}&#xD;
				}&#xD;
			}&#xD;
&#xD;
			br.close();&#xD;
		} catch (IOException e) {&#xD;
			e.printStackTrace();&#xD;
		}&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at5asOeCEeWktpDGdewXHA" name="saveFile" specification="_5g03Fdp2EeWelou951FNPg">
          <ownedParameter xmi:id="_at5aseeCEeWktpDGdewXHA" name="filePath">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO Auto-generated method stub&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_5g03Fdp2EeWelou951FNPg" name="saveFile" method="_at5asOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_5g03Ftp2EeWelou951FNPg" name="filePath">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_asOmweeCEeWktpDGdewXHA" name="loadFile" method="_at4zoOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_asOmwueCEeWktpDGdewXHA" name="filepath">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_asOmw-eCEeWktpDGdewXHA" name="model" type="_xwvYMMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xwxNYMR4EeW_3q3XSh-SYw" name="SquareBumper">
        <eAnnotations xmi:id="_p1EfQM9GEeWcl7az0iEBww" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_p1EfQc9GEeWcl7az0iEBww" source="codegen">
            <details xmi:id="_p1EfQs9GEeWcl7az0iEBww" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <generalization xmi:id="_E30UgMoQEeWsA83iBWrPKA" general="_rClFYN_HEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_atKa4OeCEeWktpDGdewXHA" name="ls" visibility="private" type="_-f1S8c-aEeWOGvD12nE26A" association="_auq2weeCEeWktpDGdewXHA">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_atLB8OeCEeWktpDGdewXHA" value="*"/>
        </ownedAttribute>
        <interfaceRealization xmi:id="_12fYUNo_EeWZSOZzoCHXcg" client="_xwxNYMR4EeW_3q3XSh-SYw" supplier="_n7vxMNo-EeWZSOZzoCHXcg" contract="_n7vxMNo-EeWZSOZzoCHXcg"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_p1XaOM9GEeWcl7az0iEBww" name="SquareBumper" specification="_p1XaMM9GEeWcl7az0iEBww">
          <ownedParameter xmi:id="_C62Uds-VEeWOGvD12nE26A" type="_xwxNYMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <ownedParameter xmi:id="_C62Ud8-VEeWOGvD12nE26A" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_C62UeM-VEeWOGvD12nE26A" name="grid_tile_x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_C62Uec-VEeWOGvD12nE26A" name="grid_tile_y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_C62Ues-VEeWOGvD12nE26A" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <language>java</language>
          <body>super(name, grid_tile_x * MainEngine.L, grid_tile_y * MainEngine.L, color);&#xD;
		ls = new HashSet&lt;LineSegment>();&#xD;
		setupLineSeg();&#xD;
		setupCircles();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_hBhfA8-TEeWOGvD12nE26A" name="getLineSeg" specification="_hAF7oM-TEeWOGvD12nE26A">
          <ownedParameter xmi:id="_S3nZoNpKEeWelou951FNPg" type="_-f1S8c-aEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S3nZodpKEeWelou951FNPg" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return ls;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at5asueCEeWktpDGdewXHA" name="setupLineSeg" specification="_aVe6sOeCEeWktpDGdewXHA">
          <language>java</language>
          <body>int lCorner_X = getX();&#xD;
		int rCorner_X = getX() + MainEngine.L;&#xD;
		int tCorner_Y = getY();&#xD;
		int bCorner_Y = getY() + MainEngine.L;&#xD;
&#xD;
		LineSegment top = new LineSegment(lCorner_X, tCorner_Y, rCorner_X, tCorner_Y);&#xD;
		LineSegment right = new LineSegment(rCorner_X, tCorner_Y, rCorner_X, bCorner_Y);&#xD;
		LineSegment bottom = new LineSegment(rCorner_X, bCorner_Y, lCorner_X, bCorner_Y);&#xD;
		LineSegment left = new LineSegment(lCorner_X, bCorner_Y, lCorner_X, tCorner_Y);&#xD;
&#xD;
		ls.add(top);&#xD;
		ls.add(right);&#xD;
		ls.add(bottom);&#xD;
		ls.add(left);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at5as-eCEeWktpDGdewXHA" name="setupDrawingShape" specification="_S2FvoNpKEeWelou951FNPg">
          <language>java</language>
          <body>drawingShape = new Rectangle(MainEngine.L, MainEngine.L);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at6BwOeCEeWktpDGdewXHA" name="setupCircles" specification="_S2GWstpKEeWelou951FNPg">
          <language>java</language>
          <body>int lCorner_X = getX();&#xD;
		int rCorner_X = getX() + MainEngine.L;&#xD;
		int tCorner_Y = getY();&#xD;
		int bCorner_Y = getY() + MainEngine.L;&#xD;
&#xD;
		Circle topleft = new Circle(lCorner_X, tCorner_Y, 0);&#xD;
		Circle topright = new Circle(rCorner_X, tCorner_Y, 0);&#xD;
		Circle bottomright = new Circle(rCorner_X, bCorner_Y, 0);&#xD;
		Circle bottomleft = new Circle(lCorner_X, bCorner_Y, 0);&#xD;
&#xD;
		circleSet.add(topleft);&#xD;
		circleSet.add(topright);&#xD;
		circleSet.add(bottomright);&#xD;
		circleSet.add(bottomleft);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at6BweeCEeWktpDGdewXHA" name="updateCollections" specification="_aVfhwOeCEeWktpDGdewXHA">
          <language>java</language>
          <body>setupDrawingShape();&#xD;
		setupLineSeg();&#xD;
		setupCircles();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at6BwueCEeWktpDGdewXHA" name="rotate" specification="_aVgI0ueCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at6Bw-eCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at6BxOeCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>updateCollections();&#xD;
&#xD;
		// TODO Auto-generated method stub&#xD;
		return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at6o0OeCEeWktpDGdewXHA" name="move" specification="_aVhW8OeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at6o0eeCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at6o0ueCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at6o0-eCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>updateCollections();&#xD;
&#xD;
		// TODO Auto-generated method stub&#xD;
		return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_p1EfQ89GEeWcl7az0iEBww" name="triggerAction"/>
        <ownedOperation xmi:id="_p1XaMM9GEeWcl7az0iEBww" name="SquareBumper" method="_p1XaOM9GEeWcl7az0iEBww">
          <eAnnotations xmi:id="_p1XaNc9GEeWcl7az0iEBww" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_p1XaNs9GEeWcl7az0iEBww" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_p1XaN89GEeWcl7az0iEBww" type="_xwxNYMR4EeW_3q3XSh-SYw" direction="return"/>
          <ownedParameter xmi:id="_hAtmsM-TEeWOGvD12nE26A" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_p1XaMc9GEeWcl7az0iEBww" name="grid_tile_x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_p1XaMs9GEeWcl7az0iEBww" name="grid_tile_y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_p1XaM89GEeWcl7az0iEBww" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
        </ownedOperation>
        <ownedOperation xmi:id="_hAF7oM-TEeWOGvD12nE26A" name="getLineSeg" method="_hBhfA8-TEeWOGvD12nE26A">
          <ownedParameter xmi:id="_S2FIkNpKEeWelou951FNPg" type="_-f1S8c-aEeWOGvD12nE26A" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S2FIkdpKEeWelou951FNPg" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_S2FvoNpKEeWelou951FNPg" name="setupDrawingShape" visibility="protected" method="_at5as-eCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_S2GWstpKEeWelou951FNPg" name="setupCircles" visibility="protected" method="_at6BwOeCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_aVe6sOeCEeWktpDGdewXHA" name="setupLineSeg" visibility="private" method="_at5asueCEeWktpDGdewXHA">
          <ownedComment xmi:id="_auROIOeCEeWktpDGdewXHA">
            <body>The setup of the Line Segment collection. Gizmo component that rely on&#xD;
	 * Line Segments for collision detection should set up their Line Segment&#xD;
	 * objects here.&#xD;
	 * &#xD;
	 * @modify this&#xD;
	 * @effect Fill the collection which hold all the Line Segments in this&#xD;
	 *         class with appropriate objects</body>
          </ownedComment>
        </ownedOperation>
        <ownedOperation xmi:id="_aVfhwOeCEeWktpDGdewXHA" name="updateCollections" method="_at6BweeCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_aVgI0ueCEeWktpDGdewXHA" name="rotate" method="_at6BwueCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aVgI0-eCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aVgv4OeCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aVhW8OeCEeWktpDGdewXHA" name="move" method="_at6o0OeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aVhW8eeCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aVhW8ueCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aVhW8-eCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xwx0cMR4EeW_3q3XSh-SYw" name="TriangularBumper">
        <eAnnotations xmi:id="_akLLQM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akLLQc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akLLQs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <generalization xmi:id="_E30UgcoQEeWsA83iBWrPKA" general="_rClFYN_HEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_atMQEOeCEeWktpDGdewXHA" name="ls" visibility="private" type="_-f1S8c-aEeWOGvD12nE26A" association="_aurd0eeCEeWktpDGdewXHA">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_atMQEeeCEeWktpDGdewXHA" value="*"/>
        </ownedAttribute>
        <interfaceRealization xmi:id="_2x87ANo_EeWZSOZzoCHXcg" client="_xwx0cMR4EeW_3q3XSh-SYw" supplier="_n7vxMNo-EeWZSOZzoCHXcg" contract="_n7vxMNo-EeWZSOZzoCHXcg"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ak7ZNM9KEeWD9JA5XZkC8g" name="TriangularBumper" specification="_akpsYc9KEeWD9JA5XZkC8g">
          <ownedParameter xmi:id="_kWahwM-UEeWOGvD12nE26A" type="_xwx0cMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kWahwc-UEeWOGvD12nE26A" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kWahws-UEeWOGvD12nE26A" name="grid_tile_x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kWahw8-UEeWOGvD12nE26A" name="grid_tile_y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kWahxM-UEeWOGvD12nE26A" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <language>java</language>
          <body>super(name, grid_tile_x * MainEngine.L, grid_tile_y * MainEngine.L, color);&#xD;
&#xD;
		ls = new HashSet&lt;LineSegment>();&#xD;
		setupLineSeg();&#xD;
		setupCircles();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_hBhfC8-TEeWOGvD12nE26A" name="getLineSeg" specification="_hAHw0M-TEeWOGvD12nE26A">
          <ownedParameter xmi:id="_S3oAsNpKEeWelou951FNPg" type="_-f1S8c-aEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S3oAsdpKEeWelou951FNPg" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return ls;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at7P4OeCEeWktpDGdewXHA" name="setupLineSeg" specification="_aVkaQOeCEeWktpDGdewXHA">
          <language>java</language>
          <body>int lCorner_X = getX();&#xD;
		int rCorner_X = getX() + MainEngine.L;&#xD;
		int tCorner_Y = getY();&#xD;
		int bCorner_Y = getY() + MainEngine.L;&#xD;
&#xD;
		LineSegment top = new LineSegment(lCorner_X, tCorner_Y, rCorner_X, tCorner_Y);&#xD;
		LineSegment middle = new LineSegment(rCorner_X, tCorner_Y, lCorner_X, bCorner_Y);&#xD;
		LineSegment left = new LineSegment(lCorner_X, bCorner_Y, lCorner_X, tCorner_Y);&#xD;
&#xD;
		ls.add(top);&#xD;
		ls.add(middle);&#xD;
		ls.add(left);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at7P4eeCEeWktpDGdewXHA" name="setupDrawingShape" specification="_S2L2QNpKEeWelou951FNPg">
          <language>java</language>
          <body>int[] xpoints = { 0, MainEngine.L, 0 };&#xD;
		int[] ypoints = { 0, 0, MainEngine.L };&#xD;
&#xD;
		drawingShape = new Polygon(xpoints, ypoints, xpoints.length);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at7P4ueCEeWktpDGdewXHA" name="setupCircles" specification="_S2MdUdpKEeWelou951FNPg">
          <language>java</language>
          <body>int lCorner_X = getX();&#xD;
		int rCorner_X = getX() + MainEngine.L;&#xD;
		int tCorner_Y = getY();&#xD;
		int bCorner_Y = getY() + MainEngine.L;&#xD;
&#xD;
		Circle topleft = new Circle(lCorner_X, tCorner_Y, 0);&#xD;
		Circle topright = new Circle(rCorner_X, tCorner_Y, 0);&#xD;
		Circle bottomleft = new Circle(lCorner_X, bCorner_Y, 0);&#xD;
&#xD;
		circleSet.add(topleft);&#xD;
		circleSet.add(topright);&#xD;
		circleSet.add(bottomleft);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at7P4-eCEeWktpDGdewXHA" name="updateCollections" specification="_aVlBUOeCEeWktpDGdewXHA">
          <language>java</language>
          <body>setupDrawingShape();&#xD;
		setupLineSeg();&#xD;
		setupCircles();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at728OeCEeWktpDGdewXHA" name="rotate" specification="_aVloYueCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at728eeCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at728ueCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>updateCollections();&#xD;
&#xD;
		// TODO Auto-generated method stub&#xD;
		return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at728-eCEeWktpDGdewXHA" name="move" specification="_aVmPc-eCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at729OeCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at729eeCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at729ueCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>updateCollections();&#xD;
&#xD;
		// TODO Auto-generated method stub&#xD;
		return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_akLyUM9KEeWD9JA5XZkC8g" name="triggerAction"/>
        <ownedOperation xmi:id="_akpsYc9KEeWD9JA5XZkC8g" name="TriangularBumper" method="_ak7ZNM9KEeWD9JA5XZkC8g">
          <eAnnotations xmi:id="_akqTdc9KEeWD9JA5XZkC8g" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_akqTds9KEeWD9JA5XZkC8g" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_akqTdM9KEeWD9JA5XZkC8g" type="_xwx0cMR4EeW_3q3XSh-SYw" direction="return"/>
          <ownedParameter xmi:id="_hAuNwM-TEeWOGvD12nE26A" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_akqTcM9KEeWD9JA5XZkC8g" name="grid_tile_x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_akqTcc9KEeWD9JA5XZkC8g" name="grid_tile_y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_akqTcs9KEeWD9JA5XZkC8g" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
        </ownedOperation>
        <ownedOperation xmi:id="_hAHw0M-TEeWOGvD12nE26A" name="getLineSeg" method="_hBhfC8-TEeWOGvD12nE26A">
          <ownedParameter xmi:id="_S2KoINpKEeWelou951FNPg" type="_-f1S8c-aEeWOGvD12nE26A" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S2LPMNpKEeWelou951FNPg" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_S2L2QNpKEeWelou951FNPg" name="setupDrawingShape" visibility="protected" method="_at7P4eeCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_S2MdUdpKEeWelou951FNPg" name="setupCircles" visibility="protected" method="_at7P4ueCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_aVkaQOeCEeWktpDGdewXHA" name="setupLineSeg" visibility="private" method="_at7P4OeCEeWktpDGdewXHA">
          <ownedComment xmi:id="_auROIeeCEeWktpDGdewXHA">
            <body>The setup of the Line Segment collection. Gizmo component that rely on Line Segments for collision detection should&#xD;
	 * set up their Line Segment objects here.&#xD;
	 * @modify this&#xD;
	 * @effect Fill the collection which hold all the Line Segments in this class with appropriate objects</body>
          </ownedComment>
        </ownedOperation>
        <ownedOperation xmi:id="_aVlBUOeCEeWktpDGdewXHA" name="updateCollections" method="_at7P4-eCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_aVloYueCEeWktpDGdewXHA" name="rotate" method="_at728OeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aVloY-eCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aVloZOeCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aVmPc-eCEeWktpDGdewXHA" name="move" method="_at728-eCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aVmPdOeCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aVm2gOeCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aVm2geeCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_QloBsMR5EeW_3q3XSh-SYw" name="" memberEnd="_QloBscR5EeW_3q3XSh-SYw _QljwQcR5EeW_3q3XSh-SYw">
        <ownedEnd xmi:id="_QloBscR5EeW_3q3XSh-SYw" name="" type="_xwvYMMR4EeW_3q3XSh-SYw" association="_QloBsMR5EeW_3q3XSh-SYw"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_n02hYcR5EeW_3q3XSh-SYw" name="" memberEnd="_n02hYsR5EeW_3q3XSh-SYw _QljJMMR5EeW_3q3XSh-SYw">
        <ownedEnd xmi:id="_n02hYsR5EeW_3q3XSh-SYw" name="" type="_xwvYMMR4EeW_3q3XSh-SYw" association="_n02hYcR5EeW_3q3XSh-SYw"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_64YVUMR8EeW_3q3XSh-SYw" name="" memberEnd="_64YVUcR8EeW_3q3XSh-SYw _64WgIMR8EeW_3q3XSh-SYw">
        <ownedEnd xmi:id="_64YVUcR8EeW_3q3XSh-SYw" name="" type="_xwvYMMR4EeW_3q3XSh-SYw" association="_64YVUMR8EeW_3q3XSh-SYw"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_VDAPIMR9EeW_3q3XSh-SYw" name="" memberEnd="_VDAPIcR9EeW_3q3XSh-SYw _VC_oEMR9EeW_3q3XSh-SYw">
        <ownedEnd xmi:id="_VDAPIcR9EeW_3q3XSh-SYw" name="" type="_xwvYMMR4EeW_3q3XSh-SYw" association="_VDAPIMR9EeW_3q3XSh-SYw"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_E3x4QMoQEeWsA83iBWrPKA" name="AGizmoComponent" isAbstract="true">
        <eAnnotations xmi:id="_aj_lEM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_aj_lEc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_aj_lEs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedComment xmi:id="_auMVoOeCEeWktpDGdewXHA">
          <body>TODO Parent class of ALL Gizmo Component. Contain key attribute that all&#xD;
Gizmo should process.</body>
        </ownedComment>
        <ownedAttribute xmi:id="_akzdYM9KEeWD9JA5XZkC8g" name="xpos" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_akzdYc9KEeWD9JA5XZkC8g" name="ypos" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_akzdYs9KEeWD9JA5XZkC8g" name="colour" type="_E3j10MoQEeWsA83iBWrPKA" isReadOnly="true" association="_alEjIM9KEeWD9JA5XZkC8g"/>
        <ownedAttribute xmi:id="_hBWf4M-TEeWOGvD12nE26A" name="gizmoID" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_hBXG8c-TEeWOGvD12nE26A" name="rotationAngle" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_dckckNo-EeWZSOZzoCHXcg" name="visibility">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
        </ownedAttribute>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ak5kAM9KEeWD9JA5XZkC8g" name="AGizmoComponent" specification="_akla8M9KEeWD9JA5XZkC8g">
          <ownedParameter xmi:id="_nOU4Ic-WEeWOGvD12nE26A" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <ownedParameter xmi:id="_nOVfMM-WEeWOGvD12nE26A" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_nOVfMc-WEeWOGvD12nE26A" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_nOVfMs-WEeWOGvD12nE26A" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_nOVfM8-WEeWOGvD12nE26A" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <language>java</language>
          <body>gizmoID = name;&#xD;
		xpos = x;&#xD;
		ypos = y;&#xD;
		this.colour = color;&#xD;
&#xD;
		// Default settings&#xD;
		visibility = true;&#xD;
		rotationAngle = 0;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ak6LEM9KEeWD9JA5XZkC8g" name="getX" specification="_akAzMM9KEeWD9JA5XZkC8g">
          <ownedParameter xmi:id="_ak6LEc9KEeWD9JA5XZkC8g" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <language>java</language>
          <body>return xpos;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ak6LEs9KEeWD9JA5XZkC8g" name="getY" specification="_akAzMc9KEeWD9JA5XZkC8g">
          <ownedParameter xmi:id="_ak6LE89KEeWD9JA5XZkC8g" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <language>java</language>
          <body>return ypos;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_hBfCws-TEeWOGvD12nE26A" name="getRotation" specification="_akNAcM9KEeWD9JA5XZkC8g">
          <ownedParameter xmi:id="_3Y0FANaBEeWiEYVNrmJsoQ" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <language>java</language>
          <body>return rotationAngle;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_a1VPQM-jEeWc1NBveAXAvg" name="setX" specification="_a1FXoM-jEeWc1NBveAXAvg">
          <ownedParameter xmi:id="_a1VPQc-jEeWc1NBveAXAvg" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_a1VPQs-jEeWc1NBveAXAvg" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO some validation&#xD;
		xpos = x;&#xD;
		return true;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_a1VPQ8-jEeWc1NBveAXAvg" name="setY" specification="_a1F-sc-jEeWc1NBveAXAvg">
          <ownedParameter xmi:id="_a1VPRM-jEeWc1NBveAXAvg" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_a1VPRc-jEeWc1NBveAXAvg" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO some validation&#xD;
		ypos = y;&#xD;
		return true;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_a1VPRs-jEeWc1NBveAXAvg" name="setColour" specification="_a0WX0M-jEeWc1NBveAXAvg">
          <ownedParameter xmi:id="_a1VPR8-jEeWc1NBveAXAvg" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_a1VPSM-jEeWc1NBveAXAvg" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO some validation&#xD;
		this.colour = color;&#xD;
		return true;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_a1V2Us-jEeWc1NBveAXAvg" name="rotate" specification="_g_35MM-TEeWOGvD12nE26A">
          <ownedParameter xmi:id="_kvQokdaEEeWiEYVNrmJsoQ" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <ownedParameter xmi:id="_kvQoktaEEeWiEYVNrmJsoQ" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <language>java</language>
          <body>// no need for this in the prototype!&#xD;
		return true;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dcp8INo-EeWZSOZzoCHXcg" name="getDrawingShape" specification="_g_35Mc-TEeWOGvD12nE26A">
          <ownedParameter xmi:id="_dcp8Ido-EeWZSOZzoCHXcg" type="_hBFaIM-TEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>return drawingShape;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_dcp8Ito-EeWZSOZzoCHXcg" name="getCircles" specification="_dcWaINo-EeWZSOZzoCHXcg">
          <ownedParameter xmi:id="_dcp8I9o-EeWZSOZzoCHXcg" type="_HY3wMM-bEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dcp8JNo-EeWZSOZzoCHXcg" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return circleSet;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_akAzMM9KEeWD9JA5XZkC8g" name="getX" method="_ak6LEM9KEeWD9JA5XZkC8g">
          <ownedParameter xmi:id="_akmpEM9KEeWD9JA5XZkC8g" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_akAzMc9KEeWD9JA5XZkC8g" name="getY" method="_ak6LEs9KEeWD9JA5XZkC8g">
          <ownedParameter xmi:id="_akmpEc9KEeWD9JA5XZkC8g" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_akAzMs9KEeWD9JA5XZkC8g" name="triggerAction" isAbstract="true">
          <ownedComment xmi:id="_hBmXgc-TEeWOGvD12nE26A">
            <body>Action that is executed when a Ball has a collision with this component, or from a connection of triggers. &#xD;
	 * Keep in mind there are no graphical procedures here.&#xD;
	 * @modify this&#xD;
	 * @effect varies with each Gizmo component; see individual class</body>
          </ownedComment>
        </ownedOperation>
        <ownedOperation xmi:id="_akla8M9KEeWD9JA5XZkC8g" name="AGizmoComponent" method="_ak5kAM9KEeWD9JA5XZkC8g">
          <eAnnotations xmi:id="_akmCBc9KEeWD9JA5XZkC8g" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_akmCBs9KEeWD9JA5XZkC8g" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_akmCBM9KEeWD9JA5XZkC8g" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return"/>
          <ownedParameter xmi:id="_ak5kBM9KEeWD9JA5XZkC8g" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_akmCAM9KEeWD9JA5XZkC8g" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_akmCAc9KEeWD9JA5XZkC8g" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_akmCAs9KEeWD9JA5XZkC8g" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
        </ownedOperation>
        <ownedOperation xmi:id="_akNAcM9KEeWD9JA5XZkC8g" name="getRotation" method="_hBfCws-TEeWOGvD12nE26A">
          <ownedParameter xmi:id="_hBGoQM-TEeWOGvD12nE26A" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_g_35MM-TEeWOGvD12nE26A" name="rotate" isAbstract="true" method="_a1V2Us-jEeWc1NBveAXAvg">
          <ownedComment xmi:id="_hBmXgM-TEeWOGvD12nE26A">
            <body>Method called when the user decides to rotate a Gizmo component.&#xD;
	 * @param degree - the angle of rotation to add&#xD;
	 * @modify this&#xD;
	 * @effect varies with each Gizmo component; see individual class</body>
          </ownedComment>
          <ownedParameter xmi:id="_a1Glw8-jEeWc1NBveAXAvg" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <ownedParameter xmi:id="_a1V2U8-jEeWc1NBveAXAvg" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_g_35Mc-TEeWOGvD12nE26A" name="getDrawingShape" isAbstract="true" method="_dcp8INo-EeWZSOZzoCHXcg">
          <ownedParameter xmi:id="_hBOkEM-TEeWOGvD12nE26A" type="_hBFaIM-TEeWOGvD12nE26A" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_a0WX0M-jEeWc1NBveAXAvg" name="setColour" method="_a1VPRs-jEeWc1NBveAXAvg">
          <ownedParameter xmi:id="_a0WX0c-jEeWc1NBveAXAvg" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_a1Glwc-jEeWc1NBveAXAvg" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_a1FXoM-jEeWc1NBveAXAvg" name="setX" method="_a1VPQM-jEeWc1NBveAXAvg">
          <ownedParameter xmi:id="_a1FXoc-jEeWc1NBveAXAvg" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_a1FXos-jEeWc1NBveAXAvg" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_a1F-sc-jEeWc1NBveAXAvg" name="setY" method="_a1VPQ8-jEeWc1NBveAXAvg">
          <ownedParameter xmi:id="_a1F-ss-jEeWc1NBveAXAvg" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_a1F-s8-jEeWc1NBveAXAvg" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_dcWaINo-EeWZSOZzoCHXcg" name="getCircles" isAbstract="true" method="_dcp8Ito-EeWZSOZzoCHXcg">
          <ownedParameter xmi:id="_dcWaIdo-EeWZSOZzoCHXcg" type="_HY3wMM-bEeWOGvD12nE26A" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dcXBMNo-EeWZSOZzoCHXcg" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aUWSQOeCEeWktpDGdewXHA" name="move" isAbstract="true">
          <ownedParameter xmi:id="_aUWSQeeCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aUWSQueCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aUW5UOeCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_PF7uUMoQEeWsA83iBWrPKA" name="IMainEngine">
        <eAnnotations xmi:id="_akFrsM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akFrsc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akFrss9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_f0VJENqJEeW7l6s7iyoCaQ" name="playing" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_aVRfUOeCEeWktpDGdewXHA" name="allGizmos" type="_E3x4QMoQEeWsA83iBWrPKA" association="_auQnEOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_aVSGYOeCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_aVSGYeeCEeWktpDGdewXHA" key="generic_container"/>
          </eAnnotations>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aVSGYueCEeWktpDGdewXHA" value="*"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_aVSGY-eCEeWktpDGdewXHA" name="gizmosMap" type="_E3x4QMoQEeWsA83iBWrPKA" association="_auQnEueCEeWktpDGdewXHA">
          <qualifier xmi:id="_aVSGZOeCEeWktpDGdewXHA">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </qualifier>
        </ownedAttribute>
        <ownedOperation xmi:id="_fzteANqJEeW7l6s7iyoCaQ" name="moveBall"/>
        <ownedOperation xmi:id="_fzteAdqJEeW7l6s7iyoCaQ" name="addGizmo">
          <ownedParameter xmi:id="_fzteAtqJEeW7l6s7iyoCaQ" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_f0lnwNqJEeW7l6s7iyoCaQ" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_fzuFENqJEeW7l6s7iyoCaQ" name="removeGizmo">
          <ownedParameter xmi:id="_fzuFEdqJEeW7l6s7iyoCaQ" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_f0lnwdqJEeW7l6s7iyoCaQ" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_fzuFEtqJEeW7l6s7iyoCaQ" name="setBallSpeed">
          <ownedParameter xmi:id="_fzuFE9qJEeW7l6s7iyoCaQ" name="b" type="_xwrGwMR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_fzuFFNqJEeW7l6s7iyoCaQ" name="velo" type="_4rFGEM-aEeWOGvD12nE26A"/>
        </ownedOperation>
        <ownedOperation xmi:id="_fzusINqJEeW7l6s7iyoCaQ" name="start"/>
        <ownedOperation xmi:id="_fzusIdqJEeW7l6s7iyoCaQ" name="stop"/>
        <ownedOperation xmi:id="_f0_QYdqJEeW7l6s7iyoCaQ" name="getGizmoSet">
          <ownedParameter xmi:id="_f0_QYtqJEeW7l6s7iyoCaQ" name="cls" type="_f0-pUNqJEeW7l6s7iyoCaQ"/>
          <ownedParameter xmi:id="_f0_QY9qJEeW7l6s7iyoCaQ" type="_E3x4QMoQEeWsA83iBWrPKA" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_f0_QZNqJEeW7l6s7iyoCaQ" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_asIgIOeCEeWktpDGdewXHA" name="addObserver">
          <ownedParameter xmi:id="_asJHMOeCEeWktpDGdewXHA" name="o" type="_xy7JgcR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_is7jEMoQEeWsA83iBWrPKA" name="ISaveDataEngine">
        <eAnnotations xmi:id="_akFrs89KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akFrtM9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akFrtc9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedOperation xmi:id="_4aXlUNp2EeWelou951FNPg" name="loadFile">
          <ownedParameter xmi:id="_4aXlUdp2EeWelou951FNPg" name="filePath">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_4aYMYNp2EeWelou951FNPg" name="saveFile">
          <ownedParameter xmi:id="_4aYMYdp2EeWelou951FNPg" name="filePath">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_alEjIM9KEeWD9JA5XZkC8g" name="" memberEnd="_alEjIc9KEeWD9JA5XZkC8g _akzdYs9KEeWD9JA5XZkC8g">
        <ownedEnd xmi:id="_alEjIc9KEeWD9JA5XZkC8g" name="" type="_E3x4QMoQEeWsA83iBWrPKA" association="_alEjIM9KEeWD9JA5XZkC8g"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_4rIwdM-aEeWOGvD12nE26A" name="" memberEnd="_4rIwdc-aEeWOGvD12nE26A _4rHiUc-aEeWOGvD12nE26A">
        <ownedEnd xmi:id="_4rIwdc-aEeWOGvD12nE26A" name="" type="_xws78MR4EeW_3q3XSh-SYw" association="_4rIwdM-aEeWOGvD12nE26A"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_3YnQsNaBEeWiEYVNrmJsoQ" name="Flipper">
        <eAnnotations xmi:id="_rAPjEN_HEeWOj8fPzW2xTA" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_rAPjEd_HEeWOj8fPzW2xTA" source="codegen">
            <details xmi:id="_rAPjEt_HEeWOj8fPzW2xTA" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <generalization xmi:id="_asyAYOeCEeWktpDGdewXHA" general="_asu9EOeCEeWktpDGdewXHA"/>
        <ownedAttribute xmi:id="_atGwgOeCEeWktpDGdewXHA" name="rotation">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_atHXkOeCEeWktpDGdewXHA" name="flippingForward">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_atHXkueCEeWktpDGdewXHA" name="leftFlipper">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_atH-oeeCEeWktpDGdewXHA" name="flipSpeed" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_atH-o-eCEeWktpDGdewXHA" name="flipTime" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_atIlseeCEeWktpDGdewXHA" name="startedFlipping" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
        </ownedAttribute>
        <interfaceRealization xmi:id="_yo4M0No_EeWZSOZzoCHXcg" client="_3YnQsNaBEeWiEYVNrmJsoQ" supplier="_n7vxMNo-EeWZSOZzoCHXcg" contract="_n7vxMNo-EeWZSOZzoCHXcg"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0KCWQNcNEeWNZKF-rpbInQ" name="getLineSeg" specification="_0JarMNcNEeWNZKF-rpbInQ">
          <ownedParameter xmi:id="_S3mykNpKEeWelou951FNPg" type="_-f1S8c-aEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S3mykdpKEeWelou951FNPg" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return null;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rC2yMN_HEeWOj8fPzW2xTA" name="getDrawingShape" specification="_rAQxMN_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rC2yMd_HEeWOj8fPzW2xTA" type="_hBFaIM-TEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>RoundRectangle2D.Double r = new RoundRectangle2D.Double(0, 0, 0.5 * MainEngine.L, 2 * MainEngine.L,&#xD;
				0.5 * MainEngine.L, 0.5 * MainEngine.L);&#xD;
		AffineTransform transform = new AffineTransform();&#xD;
&#xD;
		transform.rotate(Math.toRadians(rotation), r.getX() + 5, r.getY() + 5);&#xD;
		if (leftFlipper) {&#xD;
			try {&#xD;
				//	System.out.println(&quot;inverting&quot;);&#xD;
				transform.invert();&#xD;
			} catch (NoninvertibleTransformException e) {&#xD;
				// TODO Auto-generated catch block&#xD;
				e.printStackTrace();&#xD;
			}&#xD;
		}&#xD;
&#xD;
		Shape transformedR = transform.createTransformedShape(r);&#xD;
		return transformedR;&#xD;
		// return new Rectangle(20, 20);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rC2yMt_HEeWOj8fPzW2xTA" name="getCircles" specification="_rARYQN_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rC2yM9_HEeWOj8fPzW2xTA" type="_HY3wMM-bEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rC2yNN_HEeWOj8fPzW2xTA" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return null;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at1wUOeCEeWktpDGdewXHA" name="Flipper" specification="_asE1wOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at1wUeeCEeWktpDGdewXHA" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at1wUueCEeWktpDGdewXHA" name="grid_tile_x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at1wU-eCEeWktpDGdewXHA" name="grid_tile_y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at1wVOeCEeWktpDGdewXHA" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_at1wVeeCEeWktpDGdewXHA" name="leftFlipper">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at1wVueCEeWktpDGdewXHA" type="_3YnQsNaBEeWiEYVNrmJsoQ" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>super(name, grid_tile_x * MainEngine.L, grid_tile_y * MainEngine.L, color, new Angle(0.0), 0);&#xD;
		//System.out.println(leftFlipper);&#xD;
&#xD;
		this.rotation = 0;&#xD;
		this.flippingForward = false;&#xD;
		this.leftFlipper = leftFlipper;&#xD;
		if (!leftFlipper) {&#xD;
			this.setX((this.getX() + 10));&#xD;
		}&#xD;
&#xD;
		//circles = new HashSet&lt;Circle>();&#xD;
		Circle c = new physics.Circle(this.getX() + 10, this.getY() + 10, MainEngine.L * 0.5);&#xD;
		//	circles.add(c);&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at2XYOeCEeWktpDGdewXHA" name="triggerAction" specification="_0JQ6MNcNEeWNZKF-rpbInQ">
          <language>java</language>
          <body>flippingForward = true;&#xD;
		startedFlipping = System.nanoTime();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at2XYeeCEeWktpDGdewXHA" name="rotate" specification="_aVI8cOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at2XYueCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at2XY-eCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at2-cOeCEeWktpDGdewXHA" name="move" specification="_aVJjgueCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at2-ceeCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at2-cueCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_at2-c-eCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at2-dOeCEeWktpDGdewXHA" name="update" specification="_aVKKlOeCEeWktpDGdewXHA">
          <language>java</language>
          <body>if (flippingForward) {&#xD;
			rotation += flipSpeed;&#xD;
		} else {&#xD;
			rotation -= flipSpeed;&#xD;
		}&#xD;
&#xD;
		if (rotation > 90) {&#xD;
			rotation = 90;&#xD;
		} else if (rotation &lt; 0) {&#xD;
			rotation = 0;&#xD;
		}&#xD;
&#xD;
		if (System.nanoTime() - startedFlipping > flipTime) {&#xD;
			flippingForward = false;&#xD;
		}&#xD;
		// Circle circle = new physics.Circle(new physics.Vect(this.getX(),&#xD;
		// this.getY()), 10);&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_0JQ6MNcNEeWNZKF-rpbInQ" name="triggerAction" method="_at2XYOeCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_0JarMNcNEeWNZKF-rpbInQ" name="getLineSeg" method="_0KCWQNcNEeWNZKF-rpbInQ">
          <ownedParameter xmi:id="_S12fENpKEeWelou951FNPg" type="_-f1S8c-aEeWOGvD12nE26A" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S12fEdpKEeWelou951FNPg" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rAQxMN_HEeWOj8fPzW2xTA" name="getDrawingShape" method="_rC2yMN_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rAQxMd_HEeWOj8fPzW2xTA" type="_hBFaIM-TEeWOGvD12nE26A" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rARYQN_HEeWOj8fPzW2xTA" name="getCircles" method="_rC2yMt_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rARYQd_HEeWOj8fPzW2xTA" type="_HY3wMM-bEeWOGvD12nE26A" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rARYQt_HEeWOj8fPzW2xTA" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aVI8cOeCEeWktpDGdewXHA" name="rotate" method="_at2XYeeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aVI8ceeCEeWktpDGdewXHA" name="degree">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aVI8cueCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aVJjgueCEeWktpDGdewXHA" name="move" method="_at2-cOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aVJjg-eCEeWktpDGdewXHA" name="newX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aVJjhOeCEeWktpDGdewXHA" name="newY">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_aVKKkOeCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_aVKKlOeCEeWktpDGdewXHA" name="update" method="_at2-dOeCEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_asE1wOeCEeWktpDGdewXHA" name="Flipper" method="_at1wUOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_asE1xueCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_asE1x-eCEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_asE1weeCEeWktpDGdewXHA" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_asE1wueCEeWktpDGdewXHA" name="grid_tile_x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_asE1w-eCEeWktpDGdewXHA" name="grid_tile_y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_asE1xOeCEeWktpDGdewXHA" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_asE1xeeCEeWktpDGdewXHA" name="leftFlipper">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <ownedParameter xmi:id="_asE1yOeCEeWktpDGdewXHA" type="_3YnQsNaBEeWiEYVNrmJsoQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_n7vxMNo-EeWZSOZzoCHXcg" name="ILineSegmentCollider">
        <eAnnotations xmi:id="_rARYRd_HEeWOj8fPzW2xTA" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_rARYRt_HEeWOj8fPzW2xTA" source="codegen">
            <details xmi:id="_rARYR9_HEeWOj8fPzW2xTA" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_gpt4kNo_EeWZSOZzoCHXcg" name="lineSeg" type="_-f1S8c-aEeWOGvD12nE26A" association="_gp2bcNo_EeWZSOZzoCHXcg">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gp3pkNo_EeWZSOZzoCHXcg" value="*"/>
        </ownedAttribute>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_n8CsINo-EeWZSOZzoCHXcg" name="" memberEnd="_n8CsIdo-EeWZSOZzoCHXcg _n74UEdo-EeWZSOZzoCHXcg">
        <ownedEnd xmi:id="_n8CsIdo-EeWZSOZzoCHXcg" name="" type="_xwp4oMR4EeW_3q3XSh-SYw" association="_n8CsINo-EeWZSOZzoCHXcg"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_n8D6Qdo-EeWZSOZzoCHXcg" name="" memberEnd="_n8D6Qto-EeWZSOZzoCHXcg _n75iMdo-EeWZSOZzoCHXcg">
        <ownedEnd xmi:id="_n8D6Qto-EeWZSOZzoCHXcg" name="" type="_xwp4oMR4EeW_3q3XSh-SYw" association="_n8D6Qdo-EeWZSOZzoCHXcg"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_gp2bcNo_EeWZSOZzoCHXcg" name="" memberEnd="_gpt4kNo_EeWZSOZzoCHXcg _gp3CgNo_EeWZSOZzoCHXcg">
        <ownedEnd xmi:id="_gp3CgNo_EeWZSOZzoCHXcg" name="" type="_n7vxMNo-EeWZSOZzoCHXcg" association="_gp2bcNo_EeWZSOZzoCHXcg"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_S3VFwNpKEeWelou951FNPg" name="Line"/>
      <packagedElement xmi:type="uml:Association" xmi:id="_U0pLYNpoEeWelou951FNPg" name="" memberEnd="_U0pLYdpoEeWelou951FNPg _U0n9QNpoEeWelou951FNPg">
        <ownedEnd xmi:id="_U0pLYdpoEeWelou951FNPg" name="" type="_xws78MR4EeW_3q3XSh-SYw" association="_U0pLYNpoEeWelou951FNPg"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_sBALBNptEeWelou951FNPg" name="" memberEnd="_sBALBdptEeWelou951FNPg _sA_j8NptEeWelou951FNPg">
        <ownedEnd xmi:id="_sBALBdptEeWelou951FNPg" name="" type="_xwtjAMR4EeW_3q3XSh-SYw" association="_sBALBNptEeWelou951FNPg"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_sBAyEdptEeWelou951FNPg" name="" memberEnd="_sBAyEtptEeWelou951FNPg _sA_j89ptEeWelou951FNPg">
        <ownedEnd xmi:id="_sBAyEtptEeWelou951FNPg" name="" type="_xwtjAMR4EeW_3q3XSh-SYw" association="_sBAyEdptEeWelou951FNPg"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="__kgQwNp2EeWelou951FNPg" name="Model"/>
      <packagedElement xmi:type="uml:Class" xmi:id="_rClFYN_HEeWOj8fPzW2xTA" name="AStatueGizmo" isAbstract="true">
        <eAnnotations xmi:id="_vYgHUN_IEeWOj8fPzW2xTA" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_vYgHUd_IEeWOj8fPzW2xTA" source="codegen">
            <details xmi:id="_vYgHUt_IEeWOj8fPzW2xTA" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedComment xmi:id="_auM8sOeCEeWktpDGdewXHA">
          <body>TODO&#xD;
Class designed for Gizmos that do NOT exhibit any motion whatsoever, as if they are part of the background. Thus, their Shape &#xD;
&amp; Circles will remain constant for most of the time, allowing them to be safely stored.&#xD;
Examples:	Square Bumper, Circular Bumper</body>
        </ownedComment>
        <generalization xmi:id="_vY3TsN_IEeWOj8fPzW2xTA" general="_E3x4QMoQEeWsA83iBWrPKA"/>
        <ownedAttribute xmi:id="_vY3Tsd_IEeWOj8fPzW2xTA" name="drawingShape" visibility="protected" type="_hBFaIM-TEeWOGvD12nE26A" association="_vY5I4N_IEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_vY36wN_IEeWOj8fPzW2xTA" name="circleSet" visibility="protected" type="_HY3wMM-bEeWOGvD12nE26A" association="_vY5v8d_IEeWOj8fPzW2xTA">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vY36wd_IEeWOj8fPzW2xTA" value="*"/>
          <defaultValue xmi:type="uml:LiteralString" xmi:id="_aUZ8oOeCEeWktpDGdewXHA" value="new HashSet&lt;Circle>()"/>
        </ownedAttribute>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_vY4h0N_IEeWOj8fPzW2xTA" name="AStatueGizmo" specification="_vY2soN_IEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_vY4h0d_IEeWOj8fPzW2xTA" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_vY4h0t_IEeWOj8fPzW2xTA" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_vY4h09_IEeWOj8fPzW2xTA" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_vY4h1N_IEeWOj8fPzW2xTA" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_vY4h1d_IEeWOj8fPzW2xTA" type="_rClFYN_HEeWOj8fPzW2xTA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>super(name, x, y, color);&#xD;
&#xD;
		setupDrawingShape();&#xD;
		setupCircles();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_vY4h1t_IEeWOj8fPzW2xTA" name="getDrawingShape" specification="_vYhVct_IEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_vY4h19_IEeWOj8fPzW2xTA" type="_hBFaIM-TEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>return drawingShape;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_vY4h2N_IEeWOj8fPzW2xTA" name="getCircles" specification="_vYh8gd_IEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_vY4h2d_IEeWOj8fPzW2xTA" type="_HY3wMM-bEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vY4h2t_IEeWOj8fPzW2xTA" value="*"/>
          </ownedParameter>
          <language>java</language>
          <body>return circleSet;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_vYhVcN_IEeWOj8fPzW2xTA" name="setupDrawingShape" visibility="protected" isAbstract="true"/>
        <ownedOperation xmi:id="_vYhVcd_IEeWOj8fPzW2xTA" name="setupCircles" visibility="protected" isAbstract="true"/>
        <ownedOperation xmi:id="_vYhVct_IEeWOj8fPzW2xTA" name="getDrawingShape" method="_vY4h1t_IEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_vY2sqd_IEeWOj8fPzW2xTA" type="_hBFaIM-TEeWOGvD12nE26A" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_vYh8gd_IEeWOj8fPzW2xTA" name="getCircles" method="_vY4h2N_IEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_vYh8gt_IEeWOj8fPzW2xTA" type="_HY3wMM-bEeWOGvD12nE26A" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vYh8g9_IEeWOj8fPzW2xTA" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_vY2soN_IEeWOj8fPzW2xTA" name="AStatueGizmo" method="_vY4h0N_IEeWOj8fPzW2xTA">
          <eAnnotations xmi:id="_vY2spd_IEeWOj8fPzW2xTA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_vY2spt_IEeWOj8fPzW2xTA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_vY2sod_IEeWOj8fPzW2xTA" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_vY2sot_IEeWOj8fPzW2xTA" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_vY2so9_IEeWOj8fPzW2xTA" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
          </ownedParameter>
          <ownedParameter xmi:id="_vY2spN_IEeWOj8fPzW2xTA" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_vY2sp9_IEeWOj8fPzW2xTA" type="_rClFYN_HEeWOj8fPzW2xTA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aUcY4OeCEeWktpDGdewXHA" name="updateCollections" isAbstract="true"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_vY5I4N_IEeWOj8fPzW2xTA" name="" memberEnd="_vY5I4d_IEeWOj8fPzW2xTA _vY3Tsd_IEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_vY5I4d_IEeWOj8fPzW2xTA" name="" type="_rClFYN_HEeWOj8fPzW2xTA" association="_vY5I4N_IEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_vY5v8d_IEeWOj8fPzW2xTA" name="" memberEnd="_vY5v8t_IEeWOj8fPzW2xTA _vY36wN_IEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_vY5v8t_IEeWOj8fPzW2xTA" name="" type="_rClFYN_HEeWOj8fPzW2xTA" association="_vY5v8d_IEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_asu9EOeCEeWktpDGdewXHA" name="AMovableGizmo" isAbstract="true">
        <ownedComment xmi:id="_m-TKcueEEeWktpDGdewXHA">
          <body>TODO&#xD;
Class designed for Gizmos that can move around on the Board (even just certain parts moving). For these Gizmos, &#xD;
PreciseX &amp; PreciseY methods can be used instead if their position on the board need be precise DURING gameplay &#xD;
(i.e. move about rapidly).&#xD;
Examples:	Ball, Flipper</body>
        </ownedComment>
        <generalization xmi:id="_m-O5AueEEeWktpDGdewXHA" general="_E3x4QMoQEeWsA83iBWrPKA"/>
        <ownedAttribute xmi:id="_m-PgEOeEEeWktpDGdewXHA" name="preciseXPos" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_m-PgEeeEEeWktpDGdewXHA" name="preciseYPos" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_m-QHIOeEEeWktpDGdewXHA" name="preciseXStartingPos" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_m-QHIeeEEeWktpDGdewXHA" name="preciseYStartingPos" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
        </ownedAttribute>
        <ownedAttribute xmi:id="_m-QHIueEEeWktpDGdewXHA" name="velocity" visibility="private" type="_4rFGEM-aEeWOGvD12nE26A" association="_m-TxgOeEEeWktpDGdewXHA"/>
        <ownedAttribute xmi:id="_m-QuMOeEEeWktpDGdewXHA" name="stopped" visibility="private">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
        </ownedAttribute>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-RVQOeEEeWktpDGdewXHA" name="AMovableGizmo" specification="_m-Nq4OeEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-RVQeeEEeWktpDGdewXHA" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_m-RVQueEEeWktpDGdewXHA" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_m-RVQ-eEEeWktpDGdewXHA" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_m-RVROeEEeWktpDGdewXHA" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_m-RVReeEEeWktpDGdewXHA" name="theta" type="_nOTqAM-WEeWOGvD12nE26A"/>
          <ownedParameter xmi:id="_m-RVRueEEeWktpDGdewXHA" name="velo">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_m-RVR-eEEeWktpDGdewXHA" type="_asu9EOeCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>super(name, (int) x, (int) y, color);&#xD;
&#xD;
		preciseXPos = x; // Centre coordinates&#xD;
		preciseYPos = y;&#xD;
		preciseXStartingPos = x;&#xD;
		preciseYStartingPos = y;&#xD;
		velocity = new Vect(theta, velo);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-R8UOeEEeWktpDGdewXHA" name="setPreciseX" specification="_m-GWIOeEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-R8UeeEEeWktpDGdewXHA" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO Validation&#xD;
		preciseXPos = x;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-R8UueEEeWktpDGdewXHA" name="setPreciseY" specification="_m-GWI-eEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-R8U-eEEeWktpDGdewXHA" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO Validation&#xD;
		preciseYPos = y;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-R8VOeEEeWktpDGdewXHA" name="getPreciseX" specification="_m-GWJueEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-R8VeeEEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>return preciseXPos;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-R8VueEEeWktpDGdewXHA" name="getPreciseY" specification="_m-G9MeeEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-R8V-eEEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>return preciseYPos;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-R8WOeEEeWktpDGdewXHA" name="setExactStartingX" specification="_m-G9NOeEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-R8WeeEEeWktpDGdewXHA" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO Validation&#xD;
		preciseXStartingPos = x;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-R8WueEEeWktpDGdewXHA" name="setExactStartingY" specification="_m-G9N-eEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-R8W-eEEeWktpDGdewXHA" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO Validation&#xD;
		preciseYStartingPos = y;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-SjYOeEEeWktpDGdewXHA" name="getExactStartingX" specification="_m-HkQOeEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-SjYeeEEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>return preciseXStartingPos;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-SjYueEEeWktpDGdewXHA" name="getExactStartingY" specification="_m-HkQ-eEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-SjY-eEEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <language>java</language>
          <body>return preciseYStartingPos;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-SjZOeEEeWktpDGdewXHA" name="stop" specification="_m-HkRueEEeWktpDGdewXHA">
          <language>java</language>
          <body>stopped = true;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-SjZeeEEeWktpDGdewXHA" name="start" specification="_m-HkSOeEEeWktpDGdewXHA">
          <language>java</language>
          <body>stopped = false;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-SjZueEEeWktpDGdewXHA" name="stopped" specification="_m-HkSueEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-SjZ-eEEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>return stopped;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-SjaOeEEeWktpDGdewXHA" name="setVelo" specification="_m-OR9-eEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-SjaeeEEeWktpDGdewXHA" name="v" type="_4rFGEM-aEeWOGvD12nE26A"/>
          <language>java</language>
          <body>// TODO Validation&#xD;
		velocity = v;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_m-TKcOeEEeWktpDGdewXHA" name="getVelo" specification="_m-ILUueEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-TKceeEEeWktpDGdewXHA" type="_4rFGEM-aEeWOGvD12nE26A" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>return velocity;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_m-GWIOeEEeWktpDGdewXHA" name="setPreciseX" method="_m-R8UOeEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-GWIeeEEeWktpDGdewXHA" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_m-GWI-eEEeWktpDGdewXHA" name="setPreciseY" method="_m-R8UueEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-GWJOeEEeWktpDGdewXHA" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_m-GWJueEEeWktpDGdewXHA" name="getPreciseX" method="_m-R8VOeEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-GWJ-eEEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_m-G9MeeEEeWktpDGdewXHA" name="getPreciseY" method="_m-R8VueEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-G9MueEEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_m-G9NOeEEeWktpDGdewXHA" name="setExactStartingX" method="_m-R8WOeEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-G9NeeEEeWktpDGdewXHA" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_m-G9N-eEEeWktpDGdewXHA" name="setExactStartingY" method="_m-R8WueEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-G9OOeEEeWktpDGdewXHA" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_m-HkQOeEEeWktpDGdewXHA" name="getExactStartingX" method="_m-SjYOeEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-HkQeeEEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_m-HkQ-eEEeWktpDGdewXHA" name="getExactStartingY" method="_m-SjYueEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-HkROeEEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_m-HkRueEEeWktpDGdewXHA" name="stop" method="_m-SjZOeEEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_m-HkSOeEEeWktpDGdewXHA" name="start" method="_m-SjZeeEEeWktpDGdewXHA"/>
        <ownedOperation xmi:id="_m-HkSueEEeWktpDGdewXHA" name="stopped" method="_m-SjZueEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-ILUOeEEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_m-ILUueEEeWktpDGdewXHA" name="getVelo" method="_m-TKcOeEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-O5AeeEEeWktpDGdewXHA" type="_4rFGEM-aEeWOGvD12nE26A" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_m-ILVOeEEeWktpDGdewXHA" name="update"/>
        <ownedOperation xmi:id="_m-Nq4OeEEeWktpDGdewXHA" name="AMovableGizmo" method="_m-RVQOeEEeWktpDGdewXHA">
          <eAnnotations xmi:id="_m-OR8-eEEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_m-OR9OeEEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_m-Nq4eeEEeWktpDGdewXHA" name="name">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <ownedParameter xmi:id="_m-Nq4ueEEeWktpDGdewXHA" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_m-Nq4-eEEeWktpDGdewXHA" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_m-OR8OeEEeWktpDGdewXHA" name="color" type="_E3j10MoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_m-OR8eeEEeWktpDGdewXHA" name="theta" type="_nOTqAM-WEeWOGvD12nE26A"/>
          <ownedParameter xmi:id="_m-OR8ueEEeWktpDGdewXHA" name="velo">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
          </ownedParameter>
          <ownedParameter xmi:id="_m-OR9eeEEeWktpDGdewXHA" type="_asu9EOeCEeWktpDGdewXHA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_m-OR9-eEEeWktpDGdewXHA" name="setVelo" method="_m-SjaOeEEeWktpDGdewXHA">
          <ownedParameter xmi:id="_m-OR-OeEEeWktpDGdewXHA" name="v" type="_4rFGEM-aEeWOGvD12nE26A"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_as1qwOeCEeWktpDGdewXHA" name="SpecialCollisionHandler">
        <ownedAttribute xmi:id="_wz6SwOeGEeWktpDGdewXHA" name="model" visibility="private" type="_xwvYMMR4EeW_3q3XSh-SYw" association="_wz99IOeGEeWktpDGdewXHA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_wz7g4OeGEeWktpDGdewXHA" name="SpecialCollisionHandler" specification="_wz3PcOeGEeWktpDGdewXHA">
          <ownedParameter xmi:id="_wz8H8OeGEeWktpDGdewXHA" name="mainEngine" type="_xwvYMMR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_wz8H8eeGEeWktpDGdewXHA" type="_as1qwOeCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = mainEngine;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_wz8H8ueGEeWktpDGdewXHA" name="specialCollisionHandler" specification="_wz4dkeeGEeWktpDGdewXHA">
          <ownedParameter xmi:id="_wz8H8-eGEeWktpDGdewXHA" name="cd" type="_xws78MR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>// TODO&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_wz8vAOeGEeWktpDGdewXHA" name="handleAbsorberColi" specification="_wz5EoeeGEeWktpDGdewXHA">
          <ownedParameter xmi:id="_wz8vAeeGEeWktpDGdewXHA" name="cd" type="_xws78MR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_wz8vAueGEeWktpDGdewXHA" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_wz8vA-eGEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO Need to improve in order to incoperate MainEngine code (get MainEngine to retrieve the Gizmo)&#xD;
&#xD;
		/*Ball ball = cd.getBall();&#xD;
		Absorber absorber = (Absorber) cd.getCollider();&#xD;
		&#xD;
		if (absorber.getCapturedBall() != ball &amp;&amp; (ball.getPreciseY() &lt; absorber.getY()&#xD;
				|| ball.getPreciseY() > absorber.getY() + absorber.getHeight())) { // i.e. first collision BEFORE ball enter Absorber&#xD;
			ball.stop();&#xD;
			ball.setPreciseX(absorber.getX() + absorber.getWidth() - (0.25 * MainEngine.L));&#xD;
			ball.setPreciseY(absorber.getY() + absorber.getHeight() - (0.25 * MainEngine.L));&#xD;
			absorber.setBall(ball);&#xD;
			return true;&#xD;
		} else { // i.e. second collision AFTER ball enter Absorber&#xD;
			absorber.setBall(null);&#xD;
			return false;&#xD;
		}&#xD;
		*/&#xD;
&#xD;
		return false;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_wz3PcOeGEeWktpDGdewXHA" name="SpecialCollisionHandler" method="_wz7g4OeGEeWktpDGdewXHA">
          <eAnnotations xmi:id="_wz32gOeGEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_wz32geeGEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_wz3PceeGEeWktpDGdewXHA" name="mainEngine" type="_xwvYMMR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_wz4dkOeGEeWktpDGdewXHA" type="_as1qwOeCEeWktpDGdewXHA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_wz4dkeeGEeWktpDGdewXHA" name="specialCollisionHandler" method="_wz8H8ueGEeWktpDGdewXHA">
          <ownedParameter xmi:id="_wz5EoOeGEeWktpDGdewXHA" name="cd" type="_xws78MR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_wz5EoeeGEeWktpDGdewXHA" name="handleAbsorberColi" method="_wz8vAOeGEeWktpDGdewXHA">
          <ownedParameter xmi:id="_wz5EoueGEeWktpDGdewXHA" name="cd" type="_xws78MR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_wz5rsOeGEeWktpDGdewXHA" name="gizmo" type="_E3x4QMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_wz5rseeGEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_auQnEOeCEeWktpDGdewXHA" name="" memberEnd="_aVRfUOeCEeWktpDGdewXHA _auQnEeeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_auQnEeeCEeWktpDGdewXHA" name="" type="_PF7uUMoQEeWsA83iBWrPKA" association="_auQnEOeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_auQnEueCEeWktpDGdewXHA" name="" memberEnd="_aVSGY-eCEeWktpDGdewXHA _auQnE-eCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_auQnE-eCEeWktpDGdewXHA" name="" type="_PF7uUMoQEeWsA83iBWrPKA" association="_auQnEueCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_auq2weeCEeWktpDGdewXHA" name="" memberEnd="_auq2wueCEeWktpDGdewXHA _atKa4OeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_auq2wueCEeWktpDGdewXHA" name="" type="_xwxNYMR4EeW_3q3XSh-SYw" association="_auq2weeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_aurd0eeCEeWktpDGdewXHA" name="" memberEnd="_aurd0ueCEeWktpDGdewXHA _atMQEOeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_aurd0ueCEeWktpDGdewXHA" name="" type="_xwx0cMR4EeW_3q3XSh-SYw" association="_aurd0eeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_autTAeeCEeWktpDGdewXHA" name="" memberEnd="_autTAueCEeWktpDGdewXHA _atRIkOeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_autTAueCEeWktpDGdewXHA" name="" type="_xwvYMMR4EeW_3q3XSh-SYw" association="_autTAeeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_aut6EeeCEeWktpDGdewXHA" name="" memberEnd="_aut6EueCEeWktpDGdewXHA _atRvoueCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_aut6EueCEeWktpDGdewXHA" name="" type="_xwvYMMR4EeW_3q3XSh-SYw" association="_aut6EeeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_auuhIeeCEeWktpDGdewXHA" name="" memberEnd="_auuhIueCEeWktpDGdewXHA _atSWseeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_auuhIueCEeWktpDGdewXHA" name="" type="_xwvYMMR4EeW_3q3XSh-SYw" association="_auuhIeeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_auvIMOeCEeWktpDGdewXHA" name="" memberEnd="_auvIMeeCEeWktpDGdewXHA _atS9weeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_auvIMeeCEeWktpDGdewXHA" name="" type="_xwvYMMR4EeW_3q3XSh-SYw" association="_auvIMOeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_auvvQOeCEeWktpDGdewXHA" name="" memberEnd="_auvvQeeCEeWktpDGdewXHA _atUL4OeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_auvvQeeCEeWktpDGdewXHA" name="" type="_xwvYMMR4EeW_3q3XSh-SYw" association="_auvvQOeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_m-TxgOeEEeWktpDGdewXHA" name="" memberEnd="_m-TxgeeEEeWktpDGdewXHA _m-QHIueEEeWktpDGdewXHA">
        <ownedEnd xmi:id="_m-TxgeeEEeWktpDGdewXHA" name="" type="_asu9EOeCEeWktpDGdewXHA" association="_m-TxgOeEEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_wz99IOeGEeWktpDGdewXHA" name="" memberEnd="_wz99IeeGEeWktpDGdewXHA _wz6SwOeGEeWktpDGdewXHA">
        <ownedEnd xmi:id="_wz99IeeGEeWktpDGdewXHA" name="" type="_as1qwOeCEeWktpDGdewXHA" association="_wz99IOeGEeWktpDGdewXHA"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_xvv5sMR4EeW_3q3XSh-SYw" name="javax">
      <packagedElement xmi:type="uml:Package" xmi:id="_xvv5scR4EeW_3q3XSh-SYw" name="swing">
        <packagedElement xmi:type="uml:Package" xmi:id="_E2s6MMoQEeWsA83iBWrPKA" name="event">
          <packagedElement xmi:type="uml:Interface" xmi:id="_IRLbAMomEeWI07Wu9tqfCA" name="MouseInputListener"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_xysgAcR4EeW_3q3XSh-SYw" name="SwingUtilities"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_xy7wkcR4EeW_3q3XSh-SYw" name="JPanel"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_xzBQIMR4EeW_3q3XSh-SYw" name="JFrame"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3lD8coQEeWsA83iBWrPKA" name="BorderFactory"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3rxosoQEeWsA83iBWrPKA" name="JLabel"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3sYscoQEeWsA83iBWrPKA" name="JMenu"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3s_wMoQEeWsA83iBWrPKA" name="JMenuBar"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3s_wsoQEeWsA83iBWrPKA" name="JMenuItem"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3uN4coQEeWsA83iBWrPKA" name="JSeparator"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_E3u08MoQEeWsA83iBWrPKA" name="JTextArea"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_PGERMMoQEeWsA83iBWrPKA" name="JComponent"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_WQOf4MoSEeWsA83iBWrPKA" name="ButtonGroup"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_WQPG8coSEeWsA83iBWrPKA" name="JButton"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_WQPuAMoSEeWsA83iBWrPKA" name="JRadioButton"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_rCe-wN_HEeWOj8fPzW2xTA" name="JOptionPane"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asXJoOeCEeWktpDGdewXHA" name="JComboBox"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asXwseeCEeWktpDGdewXHA" name="JSlider"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_asZl4OeCEeWktpDGdewXHA" name="JFileChooser"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_xv_xUMR4EeW_3q3XSh-SYw" name="view">
      <packagedElement xmi:type="uml:Class" xmi:id="_xxSKwMR4EeW_3q3XSh-SYw" name="BuildBoard">
        <eAnnotations xmi:id="_akNngM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akNngc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akNngs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <generalization xmi:id="_asWikOeCEeWktpDGdewXHA" general="_xy7wkcR4EeW_3q3XSh-SYw"/>
        <ownedAttribute xmi:id="_NNy8sNqSEeW7l6s7iyoCaQ" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_NNzjwNqSEeW7l6s7iyoCaQ"/>
        <interfaceRealization xmi:id="_xzr-gMR4EeW_3q3XSh-SYw" client="_xxSKwMR4EeW_3q3XSh-SYw" supplier="_xy7JgcR4EeW_3q3XSh-SYw" contract="_xy7JgcR4EeW_3q3XSh-SYw"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_vF3e0MmFEeWJ3ZYnwbU2iQ" name="paintComponent" specification="_xzslkMR4EeW_3q3XSh-SYw">
          <ownedParameter xmi:id="_vF3e0cmFEeWJ3ZYnwbU2iQ" name="g" type="_xy4tQMR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>super.paintComponent(g);&#xD;
&#xD;
		Graphics2D g2d = (Graphics2D) g;&#xD;
		Map&lt;String, AGizmoComponent> gizmos = model.getGizmosMap();&#xD;
&#xD;
		// Turn on antialiasing&#xD;
		g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);&#xD;
&#xD;
		// Save the default transformation&#xD;
		AffineTransform old = g2d.getTransform();&#xD;
&#xD;
		// Iterate over all gizmos&#xD;
		for (AGizmoComponent giz : gizmos.values()) {&#xD;
			// Get the colour and shape of the gizmo&#xD;
			// System.out.println(giz.getGizmoID());&#xD;
			g2d.setColor(giz.getColour());&#xD;
			Shape s = giz.getDrawingShape();&#xD;
&#xD;
			// Translate the gizmo to the appropriate position on the board&#xD;
			g2d.translate(giz.getX(), giz.getY());&#xD;
			// System.out.println(giz.getX() + &quot;:&quot; + giz.getY());&#xD;
			// Rotate gizmo around its center. Currently only works with 1x1&#xD;
			// gizmos because of hardcoded 10, but can be easily changed&#xD;
			// g2d.rotate(Math.toRadians(giz.getRotation()), giz.getWidth() / 2,&#xD;
			// giz.getHeight() / 2);&#xD;
&#xD;
			// Draw the shape&#xD;
			g2d.fill(s);&#xD;
&#xD;
			// Reset transformation before drawing the next object&#xD;
			g2d.setTransform(old);&#xD;
&#xD;
		}&#xD;
&#xD;
		// Draw grid&#xD;
		g2d.setColor(Color.WHITE);&#xD;
		g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f));&#xD;
		for (int i = 0; i &lt;= 20; i++) {&#xD;
			g2d.drawLine(0, i * 20, 400, i * 20);&#xD;
			g2d.drawLine(i * 20, 0, i * 20, 400);&#xD;
		}&#xD;
		g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f));&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at9FEOeCEeWktpDGdewXHA" name="BuildBoard" specification="_asVUceeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at9FEeeCEeWktpDGdewXHA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_at9FEueCEeWktpDGdewXHA" type="_xxSKwMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>// TODO change to (400, 400)&#xD;
		setPreferredSize(new Dimension(400, 400));&#xD;
		setBackground(Color.BLACK);&#xD;
&#xD;
		model = m;&#xD;
		model.addObserver(this);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at9FE-eCEeWktpDGdewXHA" name="update" specification="_xzvB0MR4EeW_3q3XSh-SYw">
          <ownedParameter xmi:id="_at9FFOeCEeWktpDGdewXHA" name="arg0" type="_xy57YcR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_at9FFeeCEeWktpDGdewXHA" name="arg1" type="_xzuawMR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>repaint();&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_xzslkMR4EeW_3q3XSh-SYw" name="paintComponent" method="_vF3e0MmFEeWJ3ZYnwbU2iQ">
          <ownedParameter xmi:id="_xzslkcR4EeW_3q3XSh-SYw" name="g" type="_xy4tQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_xzvB0MR4EeW_3q3XSh-SYw" name="update" method="_at9FE-eCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_xzvB0cR4EeW_3q3XSh-SYw" name="arg0" type="_xy57YcR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_xzvB0sR4EeW_3q3XSh-SYw" name="arg1" type="_xzuawMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_asVUceeCEeWktpDGdewXHA" name="BuildBoard" method="_at9FEOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_asV7gOeCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_asV7geeCEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_asVUcueCEeWktpDGdewXHA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_asV7gueCEeWktpDGdewXHA" type="_xxSKwMR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xxXDQMR4EeW_3q3XSh-SYw" name="PlayBoard">
        <eAnnotations xmi:id="_akTHEM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akTHEc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akTHEs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_5suv0MmFEeWJ3ZYnwbU2iQ" name="gameBoard" visibility="private" type="_xy7wkcR4EeW_3q3XSh-SYw" association="_E4HPdMoQEeWsA83iBWrPKA"/>
        <ownedAttribute xmi:id="_Qig1wNqSEeW7l6s7iyoCaQ" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_Qihc0NqSEeW7l6s7iyoCaQ"/>
        <interfaceRealization xmi:id="_E33X0MoQEeWsA83iBWrPKA" client="_xxXDQMR4EeW_3q3XSh-SYw" supplier="_E32wwMoQEeWsA83iBWrPKA" contract="_E32wwMoQEeWsA83iBWrPKA"/>
        <interfaceRealization xmi:id="_xzwP8cR4EeW_3q3XSh-SYw" client="_xxXDQMR4EeW_3q3XSh-SYw" supplier="_xy7JgcR4EeW_3q3XSh-SYw" contract="_xy7JgcR4EeW_3q3XSh-SYw"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_wVXX0MmFEeWJ3ZYnwbU2iQ" name="paintComponent" specification="_xzw3AMR4EeW_3q3XSh-SYw">
          <ownedParameter xmi:id="_wVXX0cmFEeWJ3ZYnwbU2iQ" name="g" type="_xy4tQMR4EeW_3q3XSh-SYw"/>
          <language>java</language>
          <body>// TODO&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_E3-FgMoQEeWsA83iBWrPKA" name="initialize" specification="_E26VkMoQEeWsA83iBWrPKA">
          <language>java</language>
          <body>//start of right panel (the game panel)&#xD;
		gameBoard = new JPanel();&#xD;
		gameBoard.setPreferredSize(new Dimension(400, 400));&#xD;
		gameBoard.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1, true));&#xD;
		gameBoard.setBackground(Color.BLACK);&#xD;
		//end of the right panel&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_E3-FgcoQEeWsA83iBWrPKA" name="getBoard" specification="_xzfxQMR4EeW_3q3XSh-SYw">
          <ownedParameter xmi:id="_E3-FgsoQEeWsA83iBWrPKA" type="_xy7wkcR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>return gameBoard;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rC4nYN_HEeWOj8fPzW2xTA" name="PlayBoard" specification="_rAhP4N_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rC4nYd_HEeWOj8fPzW2xTA" type="_xxXDQMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>initialize();&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_xzw3AMR4EeW_3q3XSh-SYw" name="paintComponent" method="_wVXX0MmFEeWJ3ZYnwbU2iQ">
          <ownedParameter xmi:id="_xzw3AcR4EeW_3q3XSh-SYw" name="g" type="_xy4tQMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_xzyFIMR4EeW_3q3XSh-SYw" name="update">
          <ownedParameter xmi:id="_xzyFIcR4EeW_3q3XSh-SYw" name="arg0" type="_xy57YcR4EeW_3q3XSh-SYw"/>
          <ownedParameter xmi:id="_xzyFIsR4EeW_3q3XSh-SYw" name="arg1" type="_xzuawMR4EeW_3q3XSh-SYw"/>
        </ownedOperation>
        <ownedOperation xmi:id="_xzfxQMR4EeW_3q3XSh-SYw" name="getBoard" method="_E3-FgcoQEeWsA83iBWrPKA">
          <ownedParameter xmi:id="_E25ugMoQEeWsA83iBWrPKA" type="_xy7wkcR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_E26VkMoQEeWsA83iBWrPKA" name="initialize" visibility="private" method="_E3-FgMoQEeWsA83iBWrPKA"/>
        <ownedOperation xmi:id="_rAhP4N_HEeWOj8fPzW2xTA" name="PlayBoard" method="_rC4nYN_HEeWOj8fPzW2xTA">
          <eAnnotations xmi:id="_rAhP4t_HEeWOj8fPzW2xTA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_rAhP49_HEeWOj8fPzW2xTA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_rAhP4d_HEeWOj8fPzW2xTA" type="_xxXDQMR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_xxb7wMR4EeW_3q3XSh-SYw" name="GameWindow">
        <eAnnotations xmi:id="_akPcsM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akPcsc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akPcss9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_1IYd4MSCEeW_3q3XSh-SYw" name="gameBoard" visibility="private" type="_xxXDQMR4EeW_3q3XSh-SYw" association="_vVXogMmHEeWJ3ZYnwbU2iQ"/>
        <ownedAttribute xmi:id="_1IZE8cSCEeW_3q3XSh-SYw" name="buildBoard" visibility="private" type="_xxSKwMR4EeW_3q3XSh-SYw" association="_vVY2ocmHEeWJ3ZYnwbU2iQ"/>
        <ownedAttribute xmi:id="_m9iTUMSDEeW_3q3XSh-SYw" name="window1" visibility="private" type="_xzBQIMR4EeW_3q3XSh-SYw" association="_E4GoY8oQEeWsA83iBWrPKA"/>
        <ownedAttribute xmi:id="_PgVmEMmGEeWJ3ZYnwbU2iQ" name="playmenu" visibility="private" type="_E31iosoQEeWsA83iBWrPKA" association="_E4GBUcoQEeWsA83iBWrPKA"/>
        <ownedAttribute xmi:id="_E34l8MoQEeWsA83iBWrPKA" name="buildmenu" visibility="private" type="_WP5vwMoSEeWsA83iBWrPKA" association="_E4EMIMoQEeWsA83iBWrPKA"/>
        <ownedAttribute xmi:id="_E35NAcoQEeWsA83iBWrPKA" name="buildboard" visibility="private" type="_xxSKwMR4EeW_3q3XSh-SYw" association="_E4FaQcoQEeWsA83iBWrPKA"/>
        <ownedAttribute xmi:id="_E3-skMoQEeWsA83iBWrPKA" name="window2" visibility="private" type="_xzBQIMR4EeW_3q3XSh-SYw" association="_E4FaRMoQEeWsA83iBWrPKA"/>
        <ownedAttribute xmi:id="_rCtoQd_HEeWOj8fPzW2xTA" name="loadFileAL" visibility="private" type="_PFJrMMoQEeWsA83iBWrPKA" association="_cU8SoN_PEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_rCuPUd_HEeWOj8fPzW2xTA" name="saveFileAL" visibility="private" type="_PFUDQMoQEeWsA83iBWrPKA" association="_dhbT4N_PEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_atPTYOeCEeWktpDGdewXHA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_ausr8eeCEeWktpDGdewXHA"/>
        <interfaceRealization xmi:id="_E31iocoQEeWsA83iBWrPKA" client="_xxb7wMR4EeW_3q3XSh-SYw" supplier="_E307kMoQEeWsA83iBWrPKA" contract="_E307kMoQEeWsA83iBWrPKA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at-TMOeCEeWktpDGdewXHA" name="GameWindow" specification="_asbbEOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at-TMeeCEeWktpDGdewXHA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_at-TMueCEeWktpDGdewXHA" name="s" type="_is7jEMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_at-TM-eCEeWktpDGdewXHA" type="_xxb7wMR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>model = m;&#xD;
&#xD;
		loadFileAL = new LoadFileListener(this, s);&#xD;
		saveFileAL = new SaveFileListener(m);&#xD;
		window1 = new JFrame(&quot;Play Mode&quot;);&#xD;
		window1.setBounds(100, 100, 750, 500);&#xD;
		window1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&#xD;
&#xD;
		// start of drop menu&#xD;
		JMenuBar menuBar = new JMenuBar();&#xD;
		window1.setJMenuBar(menuBar);&#xD;
&#xD;
		JMenu mnFolio = new JMenu(&quot;Game&quot;);&#xD;
		menuBar.add(mnFolio);&#xD;
&#xD;
		JMenuItem mntmOpen = new JMenuItem(&quot;Load&quot;);&#xD;
		mntmOpen.setActionCommand(&quot;load&quot;);&#xD;
		mntmOpen.addActionListener(loadFileAL);&#xD;
		mnFolio.add(mntmOpen);&#xD;
&#xD;
		JMenuItem mntmSave = new JMenuItem(&quot;Save&quot;);&#xD;
		mntmSave.setActionCommand(&quot;save&quot;);&#xD;
		mntmSave.addActionListener(saveFileAL);&#xD;
		mnFolio.add(mntmSave);&#xD;
&#xD;
		JSeparator separator = new JSeparator();&#xD;
		mnFolio.add(separator);&#xD;
&#xD;
		JMenuItem mntmExit = new JMenuItem(&quot;Exit&quot;);&#xD;
		mnFolio.add(mntmExit);&#xD;
		window1.getContentPane().setLayout(new FlowLayout());&#xD;
		// end of menu bar&#xD;
&#xD;
		JSeparator separator1 = new JSeparator();&#xD;
		window1.getContentPane().add(separator1);&#xD;
&#xD;
		// TODO&#xD;
		buildmenu = new BuildMenu();&#xD;
		buildboard = new BuildBoard(m);&#xD;
&#xD;
		BuildModeMouseListener l = new BuildModeMouseListener(buildboard, model, buildmenu);&#xD;
&#xD;
		buildboard.addMouseListener(l);&#xD;
		//		buildboard.addMouseMotionListener(l);&#xD;
&#xD;
		window1.add(buildmenu.getMenu());&#xD;
		window1.add(buildboard);&#xD;
&#xD;
		JLabel tips = new JLabel(&quot;Action Tip:&quot;);&#xD;
		tips.setFont(new Font(&quot;Arial&quot;, 1, 12));&#xD;
		tips.setForeground(Color.BLUE);&#xD;
		window1.add(tips);&#xD;
&#xD;
		JTextArea textarea = new JTextArea(1, 45);&#xD;
		textarea.setBackground(Color.WHITE);&#xD;
		textarea.setEditable(false);&#xD;
		window1.add(textarea);&#xD;
&#xD;
		window1.setVisible(true);&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at-TNOeCEeWktpDGdewXHA" name="getFile" specification="_aV048OeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at-TNeeCEeWktpDGdewXHA" direction="return">
            <name xsi:nil="true"/>
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
          <language>java</language>
          <body>JFileChooser f = new JFileChooser();&#xD;
		f.showOpenDialog(window1);&#xD;
&#xD;
		File file = f.getSelectedFile();&#xD;
&#xD;
		if (file != null) {&#xD;
			return file.getAbsolutePath();&#xD;
		} else {&#xD;
			return null;&#xD;
		}&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_aV048OeCEeWktpDGdewXHA" name="getFile" method="_at-TNOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_aV1gAOeCEeWktpDGdewXHA" direction="return">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_asbbEOeCEeWktpDGdewXHA" name="GameWindow" method="_at-TMOeCEeWktpDGdewXHA">
          <eAnnotations xmi:id="_asbbE-eCEeWktpDGdewXHA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_asbbFOeCEeWktpDGdewXHA" key="create"/>
          </eAnnotations>
          <ownedComment xmi:id="_auScQOeCEeWktpDGdewXHA">
            <body>Initialize the contents of the frame.</body>
          </ownedComment>
          <ownedParameter xmi:id="_asbbEeeCEeWktpDGdewXHA" name="m" type="_PF7uUMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_asbbEueCEeWktpDGdewXHA" name="s" type="_is7jEMoQEeWsA83iBWrPKA"/>
          <ownedParameter xmi:id="_asbbFeeCEeWktpDGdewXHA" type="_xxb7wMR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_vVXogMmHEeWJ3ZYnwbU2iQ" name="" memberEnd="_vVXogcmHEeWJ3ZYnwbU2iQ _1IYd4MSCEeW_3q3XSh-SYw">
        <ownedEnd xmi:id="_vVXogcmHEeWJ3ZYnwbU2iQ" name="" type="_xxb7wMR4EeW_3q3XSh-SYw" association="_vVXogMmHEeWJ3ZYnwbU2iQ"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_vVY2ocmHEeWJ3ZYnwbU2iQ" name="" memberEnd="_vVY2osmHEeWJ3ZYnwbU2iQ _1IZE8cSCEeW_3q3XSh-SYw">
        <ownedEnd xmi:id="_vVY2osmHEeWJ3ZYnwbU2iQ" name="" type="_xxb7wMR4EeW_3q3XSh-SYw" association="_vVY2ocmHEeWJ3ZYnwbU2iQ"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_E307kMoQEeWsA83iBWrPKA" name="IGameWindow">
        <eAnnotations xmi:id="_akSgAM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akSgAc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akSgAs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_aV6YgOeCEeWktpDGdewXHA" name="file" isReadOnly="true">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
        </ownedAttribute>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_E31iosoQEeWsA83iBWrPKA" name="IMenu">
        <eAnnotations xmi:id="_akSgA89KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akSgBM9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akSgBc9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_WP-oQcoSEeWsA83iBWrPKA" name="menu" type="_xy7wkcR4EeW_3q3XSh-SYw" isReadOnly="true" association="_WQT_c8oSEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_E32wwMoQEeWsA83iBWrPKA" name="IBoard">
        <eAnnotations xmi:id="_akR48M9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akR48c9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akR48s9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_WP8zEcoSEeWsA83iBWrPKA" name="board" type="_xy7wkcR4EeW_3q3XSh-SYw" isReadOnly="true" association="_WQT_cMoSEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_E4EMIMoQEeWsA83iBWrPKA" name="" memberEnd="_E4EMIcoQEeWsA83iBWrPKA _E34l8MoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_E4EMIcoQEeWsA83iBWrPKA" name="" type="_xxb7wMR4EeW_3q3XSh-SYw" association="_E4EMIMoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_E4FaQcoQEeWsA83iBWrPKA" name="" memberEnd="_E4FaQsoQEeWsA83iBWrPKA _E35NAcoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_E4FaQsoQEeWsA83iBWrPKA" name="" type="_xxb7wMR4EeW_3q3XSh-SYw" association="_E4FaQcoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_E4FaRMoQEeWsA83iBWrPKA" name="" memberEnd="_E4FaRcoQEeWsA83iBWrPKA _E3-skMoQEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_E4FaRcoQEeWsA83iBWrPKA" name="" type="_xxb7wMR4EeW_3q3XSh-SYw" association="_E4FaRMoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_E4GBUcoQEeWsA83iBWrPKA" name="" memberEnd="_E4GBUsoQEeWsA83iBWrPKA _PgVmEMmGEeWJ3ZYnwbU2iQ">
        <ownedEnd xmi:id="_E4GBUsoQEeWsA83iBWrPKA" name="" type="_xxb7wMR4EeW_3q3XSh-SYw" association="_E4GBUcoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_E4GoY8oQEeWsA83iBWrPKA" name="" memberEnd="_E4GoZMoQEeWsA83iBWrPKA _m9iTUMSDEeW_3q3XSh-SYw">
        <ownedEnd xmi:id="_E4GoZMoQEeWsA83iBWrPKA" name="" type="_xxb7wMR4EeW_3q3XSh-SYw" association="_E4GoY8oQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_E4HPdMoQEeWsA83iBWrPKA" name="" memberEnd="_E4HPdcoQEeWsA83iBWrPKA _5suv0MmFEeWJ3ZYnwbU2iQ">
        <ownedEnd xmi:id="_E4HPdcoQEeWsA83iBWrPKA" name="" type="_xxXDQMR4EeW_3q3XSh-SYw" association="_E4HPdMoQEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_WP5vwMoSEeWsA83iBWrPKA" name="BuildMenu">
        <eAnnotations xmi:id="_akO1oM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akO1oc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akO1os9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_WQRjMcoSEeWsA83iBWrPKA" name="buttonMenu" visibility="private" type="_xy7wkcR4EeW_3q3XSh-SYw" association="_WQUmgcoSEeWsA83iBWrPKA"/>
        <ownedAttribute xmi:id="_RWPYwNqSEeW7l6s7iyoCaQ" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_RWRN8NqSEeW7l6s7iyoCaQ"/>
        <ownedAttribute xmi:id="_rCtBMN_HEeWOj8fPzW2xTA" name="buildModeAL" visibility="private" type="_IQgFkMomEeWI07Wu9tqfCA" association="_rDENk9_HEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_BaJ8ot_OEeWOj8fPzW2xTA" name="physicsConfigAL" visibility="private" type="_DCB5YN_OEeWOj8fPzW2xTA" association="_BaKjsd_OEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_deYcYt_OEeWOj8fPzW2xTA" name="undoRedoAL" visibility="private" type="_PFY7wMoQEeWsA83iBWrPKA" association="_deZqgd_OEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_GFibwN_QEeWOj8fPzW2xTA" name="changeBallConfigAL" visibility="private" type="_GFh0sN_QEeWOj8fPzW2xTA" association="_GFjC0d_QEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_atOFQOeCEeWktpDGdewXHA" name="bg" visibility="package" type="_WQOf4MoSEeWsA83iBWrPKA" association="_ausE4eeCEeWktpDGdewXHA"/>
        <interfaceRealization xmi:id="_WQPuAsoSEeWsA83iBWrPKA" client="_WP5vwMoSEeWsA83iBWrPKA" supplier="_E31iosoQEeWsA83iBWrPKA" contract="_E31iosoQEeWsA83iBWrPKA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WQSxUsoSEeWsA83iBWrPKA" name="initialize" specification="_WP6W0MoSEeWsA83iBWrPKA">
          <language>java</language>
          <body>// TODO the listeners should have been passed through parameter&#xD;
		//buildModeAL = new BuildModeMainListener(model);&#xD;
		physicsConfigAL = new PhysicsConfigListener(model);&#xD;
		undoRedoAL = new UndoRedoListener(model);&#xD;
&#xD;
		buttonMenu = new JPanel();&#xD;
		buttonMenu.setPreferredSize(new Dimension(300, 400));&#xD;
		buttonMenu.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1, true));&#xD;
		buttonMenu.setLayout(new GridLayout(0, 1));&#xD;
&#xD;
		JButton setBallSpeed = new JButton(&quot;Set Ball speed&quot;);&#xD;
		setBallSpeed.setActionCommand(&quot;setBallSpeed&quot;);&#xD;
		setBallSpeed.addActionListener(changeBallConfigAL);&#xD;
&#xD;
		JButton setFriction = new JButton(&quot;Set Friction&quot;);&#xD;
		setFriction.setActionCommand(&quot;setFriction&quot;);&#xD;
		setFriction.addActionListener(physicsConfigAL);&#xD;
&#xD;
		JButton setGravity = new JButton(&quot;Set Gravity&quot;);&#xD;
		setGravity.setActionCommand(&quot;setGravity&quot;);&#xD;
		setGravity.addActionListener(physicsConfigAL);&#xD;
&#xD;
		JButton connect = new JButton(&quot;Connect gizmos&quot;);&#xD;
		connect.setActionCommand(&quot;connect&quot;);&#xD;
		connect.addActionListener(buildModeAL);&#xD;
&#xD;
		JButton disconnect = new JButton(&quot;Disconnect gizmos&quot;);&#xD;
		disconnect.setActionCommand(&quot;disconnect&quot;);&#xD;
		disconnect.addActionListener(buildModeAL);&#xD;
&#xD;
		JButton keyConnect = new JButton(&quot;Connect key&quot;);&#xD;
		keyConnect.setActionCommand(&quot;keyConnect&quot;);&#xD;
		keyConnect.addActionListener(buildModeAL);&#xD;
&#xD;
		JButton keyDisconnect = new JButton(&quot;Disconnect key&quot;);&#xD;
		keyDisconnect.setActionCommand(&quot;keyDisconnect&quot;);&#xD;
		keyDisconnect.addActionListener(buildModeAL);&#xD;
&#xD;
		JButton delete = new JButton(&quot;Delete gizmo&quot;);&#xD;
		delete.setActionCommand(&quot;delete&quot;);&#xD;
		delete.addActionListener(buildModeAL);&#xD;
&#xD;
		JButton rotate = new JButton(&quot;Rotate gizmo&quot;);&#xD;
		rotate.setActionCommand(&quot;rotate&quot;);&#xD;
		rotate.addActionListener(buildModeAL);&#xD;
&#xD;
		JButton undo = new JButton(&quot;Undo&quot;);&#xD;
		undo.setActionCommand(&quot;undo&quot;);&#xD;
		undo.addActionListener(undoRedoAL);&#xD;
&#xD;
		JButton redo = new JButton(&quot;Redo&quot;);&#xD;
		redo.setActionCommand(&quot;redo&quot;);&#xD;
		redo.addActionListener(undoRedoAL);&#xD;
&#xD;
		JButton reload = new JButton(&quot;Reload Board&quot;);&#xD;
		reload.setActionCommand(&quot;reloadBoard&quot;);&#xD;
		reload.addActionListener(buildModeAL);&#xD;
&#xD;
		JButton clear = new JButton(&quot;Clear Board&quot;);&#xD;
		clear.setActionCommand(&quot;clear&quot;);&#xD;
		clear.addActionListener(buildModeAL);&#xD;
&#xD;
		JButton move = new JButton(&quot;Move Gizmo&quot;);&#xD;
		move.setActionCommand(&quot;moveGizmo&quot;);&#xD;
		move.addActionListener(buildModeAL);&#xD;
&#xD;
		JButton playMode = new JButton(&quot;Play!&quot;);&#xD;
		playMode.setActionCommand(&quot;playMode&quot;);&#xD;
		playMode.addActionListener(buildModeAL);&#xD;
&#xD;
		//		JPanel addGizmo = new JPanel();&#xD;
		//		addGizmo.setPreferredSize(new Dimension(170, 20));&#xD;
		//		addGizmo.setLayout(new GridLayout(0, 2));&#xD;
		//		&#xD;
		//		JLabel label = new JLabel(&quot;  Choose a gizmo to add:&quot;);&#xD;
		//		label.setFont(new Font(&quot;Arial&quot;, 1, 13));&#xD;
		//		buttonMenu.add(label);&#xD;
		//&#xD;
		//		JRadioButton leftFlipper = new JRadioButton(&quot;left flipper&quot;);&#xD;
		//		JRadioButton rightFlipper = new JRadioButton(&quot;right flipper&quot;);&#xD;
		//		JRadioButton square = new JRadioButton(&quot;square&quot;);&#xD;
		//		JRadioButton triangle = new JRadioButton(&quot;circle&quot;);&#xD;
		//		JRadioButton circle = new JRadioButton(&quot;triangle&quot;);&#xD;
		//		JRadioButton absorber = new JRadioButton(&quot;absorber&quot;);&#xD;
		//		JRadioButton ball = new JRadioButton(&quot;ball&quot;);&#xD;
		//	&#xD;
		//		&#xD;
		//		bg = new ButtonGroup();&#xD;
		//		bg.add(leftFlipper);&#xD;
		//		bg.add(rightFlipper);&#xD;
		//		bg.add(square);&#xD;
		//		bg.add(triangle);&#xD;
		//		bg.add(circle);&#xD;
		//		bg.add(absorber);&#xD;
		//		bg.add(ball);&#xD;
		//		square.setSelected(true);&#xD;
		//		addGizmo.add(leftFlipper);&#xD;
		//		addGizmo.add(rightFlipper);&#xD;
		//		addGizmo.add(square);&#xD;
		//		addGizmo.add(triangle);&#xD;
		//		addGizmo.add(circle);&#xD;
		//		addGizmo.add(absorber);&#xD;
		//		addGizmo.add(ball);&#xD;
		//		&#xD;
		//		buttonMenu.add(addGizmo);&#xD;
&#xD;
		//JTextArea textarea = new JTextArea(1,10);&#xD;
		//textarea.setBackground(Color.LIGHT_GRAY);&#xD;
		//textarea.setEditable(false);&#xD;
		//buttonMenu.add(textarea);&#xD;
&#xD;
		JPanel sliders = new JPanel();&#xD;
		sliders.setPreferredSize(new Dimension(270, 400));&#xD;
		sliders.setLayout(new GridLayout(0, 2));&#xD;
&#xD;
		JLabel ballspeedlabel = new JLabel(&quot;  Ball speed:&quot;);&#xD;
		ballspeedlabel.setFont(new Font(&quot;Arial&quot;, 1, 15));&#xD;
		JSlider ballspeed = new JSlider(JSlider.HORIZONTAL, 0, 50, 25);&#xD;
		ballspeed.setMinorTickSpacing(5);&#xD;
		ballspeed.setMajorTickSpacing(10);&#xD;
		ballspeed.setPaintTicks(true);&#xD;
		ballspeed.setPaintLabels(true);&#xD;
		ballspeed.setLabelTable(ballspeed.createStandardLabels(10));&#xD;
&#xD;
		JLabel mu1label = new JLabel(&quot;  Friciton mu1:&quot;);&#xD;
		mu1label.setFont(new Font(&quot;Arial&quot;, 1, 15));&#xD;
		JSlider mu1 = new JSlider(JSlider.HORIZONTAL, 0, 10, 5);&#xD;
		mu1.setMinorTickSpacing(1);&#xD;
		mu1.setMajorTickSpacing(5);&#xD;
		mu1.setPaintTicks(true);&#xD;
		mu1.setPaintLabels(true);&#xD;
		mu1.setLabelTable(ballspeed.createStandardLabels(5));&#xD;
&#xD;
		JLabel mu2label = new JLabel(&quot;  Friciton mu2:&quot;);&#xD;
		mu2label.setFont(new Font(&quot;Arial&quot;, 1, 15));&#xD;
		JSlider mu2 = new JSlider(JSlider.HORIZONTAL, 0, 10, 5);&#xD;
		mu2.setMinorTickSpacing(1);&#xD;
		mu2.setMajorTickSpacing(5);&#xD;
		mu2.setPaintTicks(true);&#xD;
		mu2.setPaintLabels(true);&#xD;
		mu2.setLabelTable(ballspeed.createStandardLabels(5));&#xD;
&#xD;
		JLabel gravitylabel = new JLabel(&quot;  Gravity:&quot;);&#xD;
		gravitylabel.setFont(new Font(&quot;Arial&quot;, 1, 15));&#xD;
		JSlider gravity = new JSlider(JSlider.HORIZONTAL, 0, 50, 25);&#xD;
		gravity.setMinorTickSpacing(5);&#xD;
		gravity.setMajorTickSpacing(10);&#xD;
		gravity.setPaintTicks(true);&#xD;
		gravity.setPaintLabels(true);&#xD;
		gravity.setLabelTable(ballspeed.createStandardLabels(10));&#xD;
&#xD;
		JLabel addgizmolabel = new JLabel(&quot;  Add Gizmo:&quot;);&#xD;
		addgizmolabel.setFont(new Font(&quot;Arial&quot;, 1, 15));&#xD;
		String[] gizmos = { &quot;Left Flipper&quot;, &quot;Right Flipper&quot;, &quot;Square&quot;, &quot;Triangle&quot;, &quot;Circle&quot;, &quot;Absorber&quot;, &quot;Ball&quot; };&#xD;
		JComboBox&lt;String> addgizmo = new JComboBox&lt;String>(gizmos);&#xD;
		addgizmo.setSelectedIndex(6);&#xD;
&#xD;
		sliders.add(ballspeedlabel);&#xD;
		sliders.add(ballspeed);&#xD;
		sliders.add(mu1label);&#xD;
		sliders.add(mu1);&#xD;
		sliders.add(mu2label);&#xD;
		sliders.add(mu2);&#xD;
		sliders.add(gravitylabel);&#xD;
		sliders.add(gravity);&#xD;
		sliders.add(addgizmolabel);&#xD;
		sliders.add(addgizmo);&#xD;
		buttonMenu.add(sliders);&#xD;
&#xD;
		JPanel buttons = new JPanel();&#xD;
		buttons.setPreferredSize(new Dimension(170, 400));&#xD;
		buttons.setLayout(new GridLayout(0, 2));&#xD;
&#xD;
		//buttons.add(setBallSpeed);&#xD;
		//buttons.add(setFriction);&#xD;
		//buttons.add(setGravity);&#xD;
		buttons.add(connect);&#xD;
		buttons.add(disconnect);&#xD;
		buttons.add(keyConnect);&#xD;
		buttons.add(keyDisconnect);&#xD;
		buttons.add(delete);&#xD;
		buttons.add(rotate);&#xD;
		buttons.add(undo);&#xD;
		buttons.add(redo);&#xD;
		buttons.add(reload);&#xD;
		buttons.add(clear);&#xD;
		buttons.add(move);&#xD;
		buttons.add(playMode);&#xD;
&#xD;
		buttonMenu.add(buttons);&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WQSxU8oSEeWsA83iBWrPKA" name="getMenu" specification="_WP694MoSEeWsA83iBWrPKA">
          <ownedParameter xmi:id="_WQSxVMoSEeWsA83iBWrPKA" type="_xy7wkcR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>return buttonMenu;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rC4AUt_HEeWOj8fPzW2xTA" name="BuildMenu" specification="_rAdlgN_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rC4AU9_HEeWOj8fPzW2xTA" type="_WP5vwMoSEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>initialize();&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_at9sIOeCEeWktpDGdewXHA" name="getGizmoSelector" specification="_aVwAcOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_at9sIeeCEeWktpDGdewXHA" type="_WQOf4MoSEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>return bg;&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_WP6W0MoSEeWsA83iBWrPKA" name="initialize" visibility="private" method="_WQSxUsoSEeWsA83iBWrPKA">
          <ownedComment xmi:id="_rT8awM93EeWej54JrL5caA">
            <body>Initialize the contents of the frame.</body>
          </ownedComment>
        </ownedOperation>
        <ownedOperation xmi:id="_WP694MoSEeWsA83iBWrPKA" name="getMenu" method="_WQSxU8oSEeWsA83iBWrPKA">
          <ownedParameter xmi:id="_WQQVEMoSEeWsA83iBWrPKA" type="_xy7wkcR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rAdlgN_HEeWOj8fPzW2xTA" name="BuildMenu" method="_rC4AUt_HEeWOj8fPzW2xTA">
          <eAnnotations xmi:id="_rAdlgt_HEeWOj8fPzW2xTA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_rAdlg9_HEeWOj8fPzW2xTA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_rAdlgd_HEeWOj8fPzW2xTA" type="_WP5vwMoSEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_aVwAcOeCEeWktpDGdewXHA" name="getGizmoSelector" method="_at9sIOeCEeWktpDGdewXHA">
          <ownedParameter xmi:id="_asY-0OeCEeWktpDGdewXHA" type="_WQOf4MoSEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_WP_2YMoSEeWsA83iBWrPKA" name="PlayMenu">
        <eAnnotations xmi:id="_akUVMM9KEeWD9JA5XZkC8g" source="http://ns.yatta.de/umllab">
          <contents xmi:type="ecore:EAnnotation" xmi:id="_akUVMc9KEeWD9JA5XZkC8g" source="codegen">
            <details xmi:id="_akUVMs9KEeWD9JA5XZkC8g" key="codegenDirectory" value="/GitHub-Gizmo Ball/src"/>
          </contents>
        </eAnnotations>
        <ownedAttribute xmi:id="_WQSxUMoSEeWsA83iBWrPKA" name="buttonMenu" visibility="private" type="_xy7wkcR4EeW_3q3XSh-SYw" association="_WQUmhMoSEeWsA83iBWrPKA"/>
        <ownedAttribute xmi:id="_rCu2YN_HEeWOj8fPzW2xTA" name="model" visibility="private" type="_PF7uUMoQEeWsA83iBWrPKA" association="_rDFbtN_HEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_rCu2Yt_HEeWOj8fPzW2xTA" name="playModeAL" visibility="private" type="_IQgFkMomEeWI07Wu9tqfCA" association="_z_rb4N_KEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_YXXNUN_QEeWOj8fPzW2xTA" name="startGameAL" visibility="private" type="_PFVRYMoQEeWsA83iBWrPKA" association="_YXYbcN_QEeWOj8fPzW2xTA"/>
        <ownedAttribute xmi:id="_YXX0YN_QEeWOj8fPzW2xTA" name="stopGameAL" visibility="private" type="_PFXGkMoQEeWsA83iBWrPKA" association="_YXYbc9_QEeWOj8fPzW2xTA"/>
        <interfaceRealization xmi:id="_WQQ8IMoSEeWsA83iBWrPKA" client="_WP_2YMoSEeWsA83iBWrPKA" supplier="_E31iosoQEeWsA83iBWrPKA" contract="_E31iosoQEeWsA83iBWrPKA"/>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WQSxVcoSEeWsA83iBWrPKA" name="initialize" specification="_WQAdcMoSEeWsA83iBWrPKA">
          <language>java</language>
          <body>// TODO the listeners should have been passed through parameter&#xD;
		//playModeAL = new PlayModeMainListener(model);&#xD;
		startGameAL = new StartGameListener(model);&#xD;
		stopGameAL = new StopGameListener(model);&#xD;
&#xD;
		buttonMenu = new JPanel();&#xD;
		buttonMenu.setPreferredSize(new Dimension(170, 400));&#xD;
		buttonMenu.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1, true));&#xD;
		buttonMenu.setLayout(new GridLayout(0, 1));&#xD;
&#xD;
		JButton start = new JButton(&quot;Start&quot;);&#xD;
		start.setActionCommand(&quot;start&quot;);&#xD;
		start.addActionListener(startGameAL);&#xD;
		start.setFont(new Font(&quot;Arial&quot;, Font.PLAIN, 40));&#xD;
&#xD;
		JButton tick = new JButton(&quot;Tick&quot;);&#xD;
		tick.setActionCommand(&quot;tick&quot;);&#xD;
		tick.addActionListener(startGameAL);&#xD;
		tick.setFont(new Font(&quot;Arial&quot;, Font.PLAIN, 40));&#xD;
&#xD;
		JButton stop = new JButton(&quot;Stop&quot;);&#xD;
		stop.setActionCommand(&quot;stop&quot;);&#xD;
		stop.addActionListener(stopGameAL);&#xD;
		stop.setFont(new Font(&quot;Arial&quot;, Font.PLAIN, 40));&#xD;
&#xD;
		JButton reload = new JButton(&quot;Reload&quot;);&#xD;
		reload.setActionCommand(&quot;reload&quot;);&#xD;
		reload.addActionListener(playModeAL);&#xD;
		reload.setFont(new Font(&quot;Arial&quot;, Font.PLAIN, 40));&#xD;
&#xD;
		//JButton shoot = new JButton(&quot;&lt;html>Shoot ball&lt;br />(idea)&lt;/html>&quot;);&#xD;
		//shoot.setFont(new Font(&quot;Arial&quot;, Font.PLAIN, 30));&#xD;
&#xD;
		JButton buildMode = new JButton(&quot;&lt;html>Build&lt;br />Mode&lt;/html>&quot;);&#xD;
		buildMode.setActionCommand(&quot;buildMode&quot;);&#xD;
		buildMode.addActionListener(playModeAL);&#xD;
		buildMode.setFont(new Font(&quot;Arial&quot;, Font.PLAIN, 30));&#xD;
&#xD;
		buttonMenu.add(start);&#xD;
		buttonMenu.add(stop);&#xD;
		buttonMenu.add(tick);&#xD;
		buttonMenu.add(reload);&#xD;
		//buttonMenu.add(shoot);&#xD;
		buttonMenu.add(buildMode);&#xD;
&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WQTYYMoSEeWsA83iBWrPKA" name="getMenu" specification="_WQAdccoSEeWsA83iBWrPKA">
          <ownedParameter xmi:id="_WQTYYcoSEeWsA83iBWrPKA" type="_xy7wkcR4EeW_3q3XSh-SYw" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>return buttonMenu;&#xD;
	</body>
        </ownedBehavior>
        <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_rC4nYt_HEeWOj8fPzW2xTA" name="PlayMenu" specification="_rAjFEN_HEeWOj8fPzW2xTA">
          <ownedParameter xmi:id="_rC4nY9_HEeWOj8fPzW2xTA" type="_WP_2YMoSEeWsA83iBWrPKA" direction="return">
            <name xsi:nil="true"/>
          </ownedParameter>
          <language>java</language>
          <body>initialize();&#xD;
	</body>
        </ownedBehavior>
        <ownedOperation xmi:id="_WQAdcMoSEeWsA83iBWrPKA" name="initialize" visibility="private" method="_WQSxVcoSEeWsA83iBWrPKA">
          <ownedComment xmi:id="_auScQeeCEeWktpDGdewXHA">
            <body>Initialize the contents of the frame.</body>
          </ownedComment>
        </ownedOperation>
        <ownedOperation xmi:id="_WQAdccoSEeWsA83iBWrPKA" name="getMenu" method="_WQTYYMoSEeWsA83iBWrPKA">
          <ownedParameter xmi:id="_WQRjMMoSEeWsA83iBWrPKA" type="_xy7wkcR4EeW_3q3XSh-SYw" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rAjFEN_HEeWOj8fPzW2xTA" name="PlayMenu" method="_rC4nYt_HEeWOj8fPzW2xTA">
          <eAnnotations xmi:id="_rAjFEt_HEeWOj8fPzW2xTA" source="http://www.eclipse.org/uml2/2.0.0/UML">
            <details xmi:id="_rAjFE9_HEeWOj8fPzW2xTA" key="create"/>
          </eAnnotations>
          <ownedParameter xmi:id="_rAjFEd_HEeWOj8fPzW2xTA" type="_WP_2YMoSEeWsA83iBWrPKA" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_WQT_cMoSEeWsA83iBWrPKA" name="" memberEnd="_WQT_ccoSEeWsA83iBWrPKA _WP8zEcoSEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_WQT_ccoSEeWsA83iBWrPKA" name="" type="_E32wwMoQEeWsA83iBWrPKA" association="_WQT_cMoSEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_WQT_c8oSEeWsA83iBWrPKA" name="" memberEnd="_WQT_dMoSEeWsA83iBWrPKA _WP-oQcoSEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_WQT_dMoSEeWsA83iBWrPKA" name="" type="_E31iosoQEeWsA83iBWrPKA" association="_WQT_c8oSEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_WQUmgcoSEeWsA83iBWrPKA" name="" memberEnd="_WQUmgsoSEeWsA83iBWrPKA _WQRjMcoSEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_WQUmgsoSEeWsA83iBWrPKA" name="" type="_WP5vwMoSEeWsA83iBWrPKA" association="_WQUmgcoSEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_WQUmhMoSEeWsA83iBWrPKA" name="" memberEnd="_WQUmhcoSEeWsA83iBWrPKA _WQSxUMoSEeWsA83iBWrPKA">
        <ownedEnd xmi:id="_WQUmhcoSEeWsA83iBWrPKA" name="" type="_WP_2YMoSEeWsA83iBWrPKA" association="_WQUmhMoSEeWsA83iBWrPKA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_NNzjwNqSEeW7l6s7iyoCaQ" name="" memberEnd="_NNzjwdqSEeW7l6s7iyoCaQ _NNy8sNqSEeW7l6s7iyoCaQ">
        <ownedEnd xmi:id="_NNzjwdqSEeW7l6s7iyoCaQ" name="" type="_xxSKwMR4EeW_3q3XSh-SYw" association="_NNzjwNqSEeW7l6s7iyoCaQ"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_Qihc0NqSEeW7l6s7iyoCaQ" name="" memberEnd="_Qihc0dqSEeW7l6s7iyoCaQ _Qig1wNqSEeW7l6s7iyoCaQ">
        <ownedEnd xmi:id="_Qihc0dqSEeW7l6s7iyoCaQ" name="" type="_xxXDQMR4EeW_3q3XSh-SYw" association="_Qihc0NqSEeW7l6s7iyoCaQ"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_RWRN8NqSEeW7l6s7iyoCaQ" name="" memberEnd="_RWRN8dqSEeW7l6s7iyoCaQ _RWPYwNqSEeW7l6s7iyoCaQ">
        <ownedEnd xmi:id="_RWRN8dqSEeW7l6s7iyoCaQ" name="" type="_WP5vwMoSEeWsA83iBWrPKA" association="_RWRN8NqSEeW7l6s7iyoCaQ"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_rDENk9_HEeWOj8fPzW2xTA" name="" memberEnd="_rDENlN_HEeWOj8fPzW2xTA _rCtBMN_HEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_rDENlN_HEeWOj8fPzW2xTA" name="" type="_WP5vwMoSEeWsA83iBWrPKA" association="_rDENk9_HEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_rDFbtN_HEeWOj8fPzW2xTA" name="" memberEnd="_rDFbtd_HEeWOj8fPzW2xTA _rCu2YN_HEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_rDFbtd_HEeWOj8fPzW2xTA" name="" type="_WP_2YMoSEeWsA83iBWrPKA" association="_rDFbtN_HEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_z_rb4N_KEeWOj8fPzW2xTA" name="" memberEnd="_z_rb4d_KEeWOj8fPzW2xTA _rCu2Yt_HEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_z_rb4d_KEeWOj8fPzW2xTA" name="" type="_WP_2YMoSEeWsA83iBWrPKA" association="_z_rb4N_KEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Class" xmi:id="_BaJ8oN_OEeWOj8fPzW2xTA" name="PhysicsConfigListener"/>
      <packagedElement xmi:type="uml:Association" xmi:id="_BaKjsd_OEeWOj8fPzW2xTA" name="" memberEnd="_BaKjst_OEeWOj8fPzW2xTA _BaJ8ot_OEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_BaKjst_OEeWOj8fPzW2xTA" name="" type="_WP5vwMoSEeWsA83iBWrPKA" association="_BaKjsd_OEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_deZqgd_OEeWOj8fPzW2xTA" name="" memberEnd="_deZqgt_OEeWOj8fPzW2xTA _deYcYt_OEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_deZqgt_OEeWOj8fPzW2xTA" name="" type="_WP5vwMoSEeWsA83iBWrPKA" association="_deZqgd_OEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_cU8SoN_PEeWOj8fPzW2xTA" name="" memberEnd="_cU8Sod_PEeWOj8fPzW2xTA _rCtoQd_HEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_cU8Sod_PEeWOj8fPzW2xTA" name="" type="_xxb7wMR4EeW_3q3XSh-SYw" association="_cU8SoN_PEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_dhbT4N_PEeWOj8fPzW2xTA" name="" memberEnd="_dhbT4d_PEeWOj8fPzW2xTA _rCuPUd_HEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_dhbT4d_PEeWOj8fPzW2xTA" name="" type="_xxb7wMR4EeW_3q3XSh-SYw" association="_dhbT4N_PEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_GFjC0d_QEeWOj8fPzW2xTA" name="" memberEnd="_GFjC0t_QEeWOj8fPzW2xTA _GFibwN_QEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_GFjC0t_QEeWOj8fPzW2xTA" name="" type="_WP5vwMoSEeWsA83iBWrPKA" association="_GFjC0d_QEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_YXYbcN_QEeWOj8fPzW2xTA" name="" memberEnd="_YXYbcd_QEeWOj8fPzW2xTA _YXXNUN_QEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_YXYbcd_QEeWOj8fPzW2xTA" name="" type="_WP_2YMoSEeWsA83iBWrPKA" association="_YXYbcN_QEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_YXYbc9_QEeWOj8fPzW2xTA" name="" memberEnd="_YXYbdN_QEeWOj8fPzW2xTA _YXX0YN_QEeWOj8fPzW2xTA">
        <ownedEnd xmi:id="_YXYbdN_QEeWOj8fPzW2xTA" name="" type="_WP_2YMoSEeWsA83iBWrPKA" association="_YXYbc9_QEeWOj8fPzW2xTA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_ausE4eeCEeWktpDGdewXHA" name="" memberEnd="_ausE4ueCEeWktpDGdewXHA _atOFQOeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_ausE4ueCEeWktpDGdewXHA" name="" type="_WP5vwMoSEeWsA83iBWrPKA" association="_ausE4eeCEeWktpDGdewXHA"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_ausr8eeCEeWktpDGdewXHA" name="" memberEnd="_ausr8ueCEeWktpDGdewXHA _atPTYOeCEeWktpDGdewXHA">
        <ownedEnd xmi:id="_ausr8ueCEeWktpDGdewXHA" name="" type="_xxb7wMR4EeW_3q3XSh-SYw" association="_ausr8eeCEeWktpDGdewXHA"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_K74RQsonEeWI07Wu9tqfCA" name="KeyListener"/>
    <packagedElement xmi:type="uml:Class" xmi:id="_K75fYconEeWI07Wu9tqfCA" name="MouseInputListener"/>
    <packagedElement xmi:type="uml:Package" xmi:id="_g_zAsM-TEeWOGvD12nE26A" name="enums">
      <packagedElement xmi:type="uml:Enumeration" xmi:id="_hBGBMM-TEeWOGvD12nE26A" name="Rotations"/>
      <packagedElement xmi:type="uml:Class" xmi:id="_ar4ogOeCEeWktpDGdewXHA" name="Connections_Status"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_nOPYkM-WEeWOGvD12nE26A" name="physics">
      <packagedElement xmi:type="uml:Class" xmi:id="_nOTqAM-WEeWOGvD12nE26A" name="Angle"/>
      <packagedElement xmi:type="uml:Class" xmi:id="_4rFGEM-aEeWOGvD12nE26A" name="Vect"/>
      <packagedElement xmi:type="uml:Class" xmi:id="_-f1S8c-aEeWOGvD12nE26A" name="LineSegment"/>
      <packagedElement xmi:type="uml:Class" xmi:id="_HY3wMM-bEeWOGvD12nE26A" name="Circle"/>
      <packagedElement xmi:type="uml:Class" xmi:id="_ascpMOeCEeWktpDGdewXHA" name="Geometry"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_3XGNwNaBEeWiEYVNrmJsoQ" name="FileLoader">
      <packagedElement xmi:type="uml:Package" xmi:id="_3XG00NaBEeWiEYVNrmJsoQ" name="src">
        <packagedElement xmi:type="uml:Class" xmi:id="_3Yf78NaBEeWiEYVNrmJsoQ" name="Const"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_CJgIoNptEeWelou951FNPg" name="Absorber">
      <packagedElement xmi:type="uml:Class" xmi:id="_CJjL8NptEeWelou951FNPg" name="Absorber"/>
      <packagedElement xmi:type="uml:Class" xmi:id="_CJjL8tptEeWelou951FNPg" name="Ball"/>
      <packagedElement xmi:type="uml:Class" xmi:id="_CJjzAdptEeWelou951FNPg" name="Model"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_aQBL4OeCEeWktpDGdewXHA" name="Connections_Status">
      <packagedElement xmi:type="uml:Enumeration" xmi:id="_ar7EwOeCEeWktpDGdewXHA" name="AC"/>
      <packagedElement xmi:type="uml:Enumeration" xmi:id="_ar8S4ueCEeWktpDGdewXHA" name="RC"/>
    </packagedElement>
    <profileApplication xmi:id="_xeDswMR4EeW_3q3XSh-SYw">
      <eAnnotations xmi:id="_xeJMUMR4EeW_3q3XSh-SYw" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://UMLLAB_PROFILES/UMLLab.profile.uml#UMLLabProfile-Annotation_2-UMLLabProfile"/>
      </eAnnotations>
      <appliedProfile href="pathmap://UMLLAB_PROFILES/UMLLab.profile.uml#UMLLabProfile"/>
    </profileApplication>
  </uml:Model>
  <UMLLabProfile:TargetLanguage xmi:id="_xeQhEMR4EeW_3q3XSh-SYw" base_Package="_xR78UMR4EeW_3q3XSh-SYw">
    <languageName>java</languageName>
  </UMLLabProfile:TargetLanguage>
  <UMLLabProfile:Reference xmi:id="_xycoYMR4EeW_3q3XSh-SYw" base_Element="_xyazMMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xyiH8MR4EeW_3q3XSh-SYw" base_Element="_xyg50MR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xylyUMR4EeW_3q3XSh-SYw" base_Element="_xylLQMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xynAcMR4EeW_3q3XSh-SYw" base_Element="_xylyUcR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xyqDwMR4EeW_3q3XSh-SYw" base_Element="_xypcsMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xysgAMR4EeW_3q3XSh-SYw" base_Element="_xyrR4MR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xytHEMR4EeW_3q3XSh-SYw" base_Element="_xysgAcR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xyuVMMR4EeW_3q3XSh-SYw" base_Element="_xytHEcR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xyu8QMR4EeW_3q3XSh-SYw" base_Element="_xyuVMcR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xyvjUMR4EeW_3q3XSh-SYw" base_Element="_xyu8QcR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xy57YMR4EeW_3q3XSh-SYw" base_Element="_xy4tQMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xy7JgMR4EeW_3q3XSh-SYw" base_Element="_xy57YcR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xy7wkMR4EeW_3q3XSh-SYw" base_Element="_xy7JgcR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xy8-sMR4EeW_3q3XSh-SYw" base_Element="_xy7wkcR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xzCeQMR4EeW_3q3XSh-SYw" base_Element="_xzBQIMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_xzntEMR4EeW_3q3XSh-SYw" base_Element="_xznGAcR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Annotations xmi:id="_xztzsMR4EeW_3q3XSh-SYw" base_Element="_xzslkMR4EeW_3q3XSh-SYw">
    <annotations xmi:id="_xztzscR4EeW_3q3XSh-SYw" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Reference xmi:id="_xzuawcR4EeW_3q3XSh-SYw" base_Element="_xzuawMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_xzvB08R4EeW_3q3XSh-SYw" base_Element="_xzvB0MR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Annotations xmi:id="_xzvo4MR4EeW_3q3XSh-SYw" base_Element="_xzvB0MR4EeW_3q3XSh-SYw">
    <annotations xmi:id="_xzvo4cR4EeW_3q3XSh-SYw" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_xzysMcR4EeW_3q3XSh-SYw" base_Element="_xzyFIMR4EeW_3q3XSh-SYw">
    <annotations xmi:id="_uzYyQMmGEeWJ3ZYnwbU2iQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_xz2WkMR4EeW_3q3XSh-SYw" base_Element="_xz1vgMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_xz3ksMR4EeW_3q3XSh-SYw" base_Element="_xz2WkcR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_xz4y0MR4EeW_3q3XSh-SYw" base_Element="_xz3kscR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_xz5Z4MR4EeW_3q3XSh-SYw" base_Element="_xz4y0cR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_xz6A8MR4EeW_3q3XSh-SYw" base_Element="_xz5Z4cR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_xz6oAMR4EeW_3q3XSh-SYw" base_Element="_xz6A8cR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_xz6oAsR4EeW_3q3XSh-SYw" base_Element="_xz6oAcR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_x0TCgMR4EeW_3q3XSh-SYw" base_Element="_x0SbcMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_x0UQoMR4EeW_3q3XSh-SYw" base_Element="_x0TpkMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_x0U3sMR4EeW_3q3XSh-SYw" base_Element="_x0UQocR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_x0WF0MR4EeW_3q3XSh-SYw" base_Element="_x0VewMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_QljwQMR5EeW_3q3XSh-SYw" base_Element="_QljJMMR5EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_QlkXUMR5EeW_3q3XSh-SYw" base_Element="_QljwQcR5EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_QloowMR5EeW_3q3XSh-SYw" base_Element="_QloBsMR5EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_n03IcMR5EeW_3q3XSh-SYw" base_Element="_n02hYcR5EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_64XHMMR8EeW_3q3XSh-SYw" base_Element="_64WgIMR8EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_64YVUsR8EeW_3q3XSh-SYw" base_Element="_64YVUMR8EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_VC_oEcR9EeW_3q3XSh-SYw" base_Element="_VC_oEMR9EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_VDA2MMR9EeW_3q3XSh-SYw" base_Element="_VDAPIMR9EeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_1IZE8MSCEeW_3q3XSh-SYw" base_Element="_1IYd4MSCEeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_1IZsAMSCEeW_3q3XSh-SYw" base_Element="_1IZE8cSCEeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_m9i6YMSDEeW_3q3XSh-SYw" base_Element="_m9iTUMSDEeW_3q3XSh-SYw"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_5svW4MmFEeWJ3ZYnwbU2iQ" base_Element="_5suv0MmFEeWJ3ZYnwbU2iQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PgW0MMmGEeWJ3ZYnwbU2iQ" base_Element="_PgVmEMmGEeWJ3ZYnwbU2iQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_uzancMmGEeWJ3ZYnwbU2iQ" base_Element="_xzyFIMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_vVY2oMmHEeWJ3ZYnwbU2iQ" base_Element="_vVXogMmHEeWJ3ZYnwbU2iQ"/>
  <UMLLabProfile:Reference xmi:id="_vVaEwMmHEeWJ3ZYnwbU2iQ" base_Element="_vVY2ocmHEeWJ3ZYnwbU2iQ"/>
  <UMLLabProfile:MultiDeclaration xmi:id="_E2yZwMoQEeWsA83iBWrPKA" base_Property="_m9iTUMSDEeW_3q3XSh-SYw" siblings="_E3-skMoQEeWsA83iBWrPKA" root="true"/>
  <UMLLabProfile:Reference xmi:id="_E3kc4MoQEeWsA83iBWrPKA" base_Element="_E3j10MoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3lD8MoQEeWsA83iBWrPKA" base_Element="_E3kc4coQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3lrAMoQEeWsA83iBWrPKA" base_Element="_E3lD8coQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3ouUMoQEeWsA83iBWrPKA" base_Element="_E3oHQcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3pVYMoQEeWsA83iBWrPKA" base_Element="_E3ouUcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3p8cMoQEeWsA83iBWrPKA" base_Element="_E3pVYcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3qjgMoQEeWsA83iBWrPKA" base_Element="_E3p8ccoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3qjgsoQEeWsA83iBWrPKA" base_Element="_E3qjgcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3rKkcoQEeWsA83iBWrPKA" base_Element="_E3rKkMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3rxocoQEeWsA83iBWrPKA" base_Element="_E3rxoMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3sYsMoQEeWsA83iBWrPKA" base_Element="_E3rxosoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3sYssoQEeWsA83iBWrPKA" base_Element="_E3sYscoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3s_wcoQEeWsA83iBWrPKA" base_Element="_E3s_wMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3uN4MoQEeWsA83iBWrPKA" base_Element="_E3s_wsoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3uN4soQEeWsA83iBWrPKA" base_Element="_E3uN4coQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E3u08coQEeWsA83iBWrPKA" base_Element="_E3u08MoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_E35NAMoQEeWsA83iBWrPKA" base_Element="_E34l8MoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_E350EcoQEeWsA83iBWrPKA" base_Element="_E35NAcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:MultiDeclaration xmi:id="_E3-skcoQEeWsA83iBWrPKA" base_Property="_E3-skMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_E3_ToMoQEeWsA83iBWrPKA" base_Element="_E3-skMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E4FaQMoQEeWsA83iBWrPKA" base_Element="_E4EMIMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E4FaQ8oQEeWsA83iBWrPKA" base_Element="_E4FaQcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E4GBUMoQEeWsA83iBWrPKA" base_Element="_E4FaRMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E4GBU8oQEeWsA83iBWrPKA" base_Element="_E4GBUcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E4HPcMoQEeWsA83iBWrPKA" base_Element="_E4GoY8oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_E4H2gMoQEeWsA83iBWrPKA" base_Element="_E4HPdMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PF9jgcoQEeWsA83iBWrPKA" base_Element="_PF88cMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PF-KkMoQEeWsA83iBWrPKA" base_Element="_PF88cMoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PF-KkcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PF-xosoQEeWsA83iBWrPKA" base_Element="_PF-xoMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PF_YsMoQEeWsA83iBWrPKA" base_Element="_PF-xoMoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PF_YscoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PF__wMoQEeWsA83iBWrPKA" base_Element="_PF_YssoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PF__wcoQEeWsA83iBWrPKA" base_Element="_PF_YssoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PF__wsoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGAm0MoQEeWsA83iBWrPKA" base_Element="_PF__w8oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGAm0coQEeWsA83iBWrPKA" base_Element="_PF__w8oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGAm0soQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGAm1coQEeWsA83iBWrPKA" base_Element="_PGAm08oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGBN4MoQEeWsA83iBWrPKA" base_Element="_PGAm08oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGBN4coQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGB08coQEeWsA83iBWrPKA" base_Element="_PGBN4soQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGCcAMoQEeWsA83iBWrPKA" base_Element="_PGBN4soQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGCcAcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGCcBMoQEeWsA83iBWrPKA" base_Element="_PGCcAsoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGDDEMoQEeWsA83iBWrPKA" base_Element="_PGCcAsoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGDDEcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Reference xmi:id="_PGERMcoQEeWsA83iBWrPKA" base_Element="_PGERMMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGFfUsoQEeWsA83iBWrPKA" base_Element="_PGFfUMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGGGYMoQEeWsA83iBWrPKA" base_Element="_PGFfUMoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGGGYcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGIiocoQEeWsA83iBWrPKA" base_Element="_PGH7kcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGJJsMoQEeWsA83iBWrPKA" base_Element="_PGH7kcoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGJJscoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGJwwMoQEeWsA83iBWrPKA" base_Element="_PGJJssoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGJwwcoQEeWsA83iBWrPKA" base_Element="_PGJJssoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGJwwsoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGKX0soQEeWsA83iBWrPKA" base_Element="_PGKX0MoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGK-4MoQEeWsA83iBWrPKA" base_Element="_PGKX0MoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGK-4coQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGLl8MoQEeWsA83iBWrPKA" base_Element="_PGK-4soQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGLl8coQEeWsA83iBWrPKA" base_Element="_PGK-4soQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGLl8soQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGMNAcoQEeWsA83iBWrPKA" base_Element="_PGLl88oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGM0EMoQEeWsA83iBWrPKA" base_Element="_PGLl88oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGM0EcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGM0FMoQEeWsA83iBWrPKA" base_Element="_PGM0EsoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGNbIMoQEeWsA83iBWrPKA" base_Element="_PGM0EsoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGNbIcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGOCMcoQEeWsA83iBWrPKA" base_Element="_PGNbIsoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGOpQMoQEeWsA83iBWrPKA" base_Element="_PGNbIsoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGOpQcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGQecMoQEeWsA83iBWrPKA" base_Element="_PGP3YMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGQeccoQEeWsA83iBWrPKA" base_Element="_PGP3YMoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGRFgMoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGRskMoQEeWsA83iBWrPKA" base_Element="_PGRFgcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGRskcoQEeWsA83iBWrPKA" base_Element="_PGRFgcoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGRsksoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGSToMoQEeWsA83iBWrPKA" base_Element="_PGRsk8oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGS6sMoQEeWsA83iBWrPKA" base_Element="_PGRsk8oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGS6scoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGUv4MoQEeWsA83iBWrPKA" base_Element="_PGUI0coQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGUv4coQEeWsA83iBWrPKA" base_Element="_PGUI0coQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGUv4soQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGVW8soQEeWsA83iBWrPKA" base_Element="_PGVW8MoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGV-AMoQEeWsA83iBWrPKA" base_Element="_PGVW8MoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGV-AcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGWlEcoQEeWsA83iBWrPKA" base_Element="_PGV-AsoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGXMIMoQEeWsA83iBWrPKA" base_Element="_PGV-AsoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGXMIcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGXMJMoQEeWsA83iBWrPKA" base_Element="_PGXMIsoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGXzMMoQEeWsA83iBWrPKA" base_Element="_PGXMIsoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGXzMcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGXzNMoQEeWsA83iBWrPKA" base_Element="_PGXzMsoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGYaQMoQEeWsA83iBWrPKA" base_Element="_PGXzMsoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGYaQcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGZBUMoQEeWsA83iBWrPKA" base_Element="_PGYaQsoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGZBUcoQEeWsA83iBWrPKA" base_Element="_PGYaQsoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGZBUsoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGZBVcoQEeWsA83iBWrPKA" base_Element="_PGZBU8oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGZoYMoQEeWsA83iBWrPKA" base_Element="_PGZBU8oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGZoYcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGbdkMoQEeWsA83iBWrPKA" base_Element="_PGa2gsoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGbdkcoQEeWsA83iBWrPKA" base_Element="_PGa2gsoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGbdksoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGcrsMoQEeWsA83iBWrPKA" base_Element="_PGcEocoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGcrscoQEeWsA83iBWrPKA" base_Element="_PGcEocoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGdSwMoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGd50MoQEeWsA83iBWrPKA" base_Element="_PGdSwcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGeg4MoQEeWsA83iBWrPKA" base_Element="_PGdSwcoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGeg4coQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGfH8MoQEeWsA83iBWrPKA" base_Element="_PGeg4soQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGfH8coQEeWsA83iBWrPKA" base_Element="_PGeg4soQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGfH8soQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGfvAMoQEeWsA83iBWrPKA" base_Element="_PGfH88oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGfvAcoQEeWsA83iBWrPKA" base_Element="_PGfH88oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGfvAsoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGgWEcoQEeWsA83iBWrPKA" base_Element="_PGfvA8oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGgWEsoQEeWsA83iBWrPKA" base_Element="_PGfvA8oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGg9IMoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGg9I8oQEeWsA83iBWrPKA" base_Element="_PGg9IcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGhkMMoQEeWsA83iBWrPKA" base_Element="_PGg9IcoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGhkMcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGhkNMoQEeWsA83iBWrPKA" base_Element="_PGhkMsoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGiLQMoQEeWsA83iBWrPKA" base_Element="_PGhkMsoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGiLQcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGjZYMoQEeWsA83iBWrPKA" base_Element="_PGiyUcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGjZYcoQEeWsA83iBWrPKA" base_Element="_PGiyUcoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGjZYsoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGkAcMoQEeWsA83iBWrPKA" base_Element="_PGjZY8oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGkAccoQEeWsA83iBWrPKA" base_Element="_PGjZY8oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGkAcsoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGkAdcoQEeWsA83iBWrPKA" base_Element="_PGkAc8oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGkngMoQEeWsA83iBWrPKA" base_Element="_PGkAc8oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGkngcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGl1osoQEeWsA83iBWrPKA" base_Element="_PGl1oMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGmcsMoQEeWsA83iBWrPKA" base_Element="_PGl1oMoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGmcscoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGoR4soQEeWsA83iBWrPKA" base_Element="_PGoR4MoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGo48MoQEeWsA83iBWrPKA" base_Element="_PGoR4MoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGo48coQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGo49MoQEeWsA83iBWrPKA" base_Element="_PGo48soQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGpgAMoQEeWsA83iBWrPKA" base_Element="_PGo48soQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGpgAcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGqHEMoQEeWsA83iBWrPKA" base_Element="_PGpgAsoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGqHEcoQEeWsA83iBWrPKA" base_Element="_PGpgAsoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGqHEsoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGquIMoQEeWsA83iBWrPKA" base_Element="_PGqHE8oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGquIcoQEeWsA83iBWrPKA" base_Element="_PGqHE8oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGquIsoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGrVMMoQEeWsA83iBWrPKA" base_Element="_PGquI8oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGrVMcoQEeWsA83iBWrPKA" base_Element="_PGquI8oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGrVMsoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGr8QMoQEeWsA83iBWrPKA" base_Element="_PGrVM8oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGr8QcoQEeWsA83iBWrPKA" base_Element="_PGrVM8oQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGr8QsoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGsjUsoQEeWsA83iBWrPKA" base_Element="_PGsjUMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGtKYMoQEeWsA83iBWrPKA" base_Element="_PGsjUMoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGtKYcoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGuYgMoQEeWsA83iBWrPKA" base_Element="_PGtxccoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGuYgcoQEeWsA83iBWrPKA" base_Element="_PGtxccoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGuYgsoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGvmocoQEeWsA83iBWrPKA" base_Element="_PGu_kcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGvmosoQEeWsA83iBWrPKA" base_Element="_PGu_kcoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGvmo8oQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGw0wsoQEeWsA83iBWrPKA" base_Element="_PGw0wMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGxb0MoQEeWsA83iBWrPKA" base_Element="_PGw0wMoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGxb0coQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGyp8MoQEeWsA83iBWrPKA" base_Element="_PGyC4coQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGyp8coQEeWsA83iBWrPKA" base_Element="_PGyC4coQEeWsA83iBWrPKA">
    <annotations xmi:id="_PGyp8soQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PGz4EsoQEeWsA83iBWrPKA" base_Element="_PGz4EMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Annotations xmi:id="_PGz4E8oQEeWsA83iBWrPKA" base_Element="_PGz4EMoQEeWsA83iBWrPKA">
    <annotations xmi:id="_PG0fIMoQEeWsA83iBWrPKA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PG-3MMoQEeWsA83iBWrPKA" base_Element="_PG-QIMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PHAsYcoQEeWsA83iBWrPKA" base_Element="_PHAsYMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PHBTccoQEeWsA83iBWrPKA" base_Element="_PHBTcMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PHB6gcoQEeWsA83iBWrPKA" base_Element="_PHB6gMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PHChkcoQEeWsA83iBWrPKA" base_Element="_PHChkMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PHDvsMoQEeWsA83iBWrPKA" base_Element="_PHDIoMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PHE90coQEeWsA83iBWrPKA" base_Element="_PHE90MoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PHGL8coQEeWsA83iBWrPKA" base_Element="_PHGL8MoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PHGzAMoQEeWsA83iBWrPKA" base_Element="_PHGL8soQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PHGzAsoQEeWsA83iBWrPKA" base_Element="_PHGzAcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_PHTnUMoQEeWsA83iBWrPKA" base_Element="_PHTAQMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_PHU1c8oQEeWsA83iBWrPKA" base_Element="_PHU1ccoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_PHVcgMoQEeWsA83iBWrPKA" base_Element="_PHU1dMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_PHVcg8oQEeWsA83iBWrPKA" base_Element="_PHVcgcoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_PHWDksoQEeWsA83iBWrPKA" base_Element="_PHWDkMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_PHWqoMoQEeWsA83iBWrPKA" base_Element="_PHWDk8oQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_PHYf0MoQEeWsA83iBWrPKA" base_Element="_PHX4xMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_PHZG4MoQEeWsA83iBWrPKA" base_Element="_PHYf1MoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_PHZG48oQEeWsA83iBWrPKA" base_Element="_PHZG4coQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_PHZt8MoQEeWsA83iBWrPKA" base_Element="_PHZG5MoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_is5G0MoQEeWsA83iBWrPKA" base_Element="_E3x4QMoQEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_WQPG8MoSEeWsA83iBWrPKA" base_Element="_WQOf4MoSEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_WQPG8soSEeWsA83iBWrPKA" base_Element="_WQPG8coSEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_WQPuAcoSEeWsA83iBWrPKA" base_Element="_WQPuAMoSEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_WQSKQMoSEeWsA83iBWrPKA" base_Element="_WQRjMcoSEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_WQSxUcoSEeWsA83iBWrPKA" base_Element="_WQSxUMoSEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_WQT_csoSEeWsA83iBWrPKA" base_Element="_WQT_cMoSEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_WQUmgMoSEeWsA83iBWrPKA" base_Element="_WQT_c8oSEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_WQUmg8oSEeWsA83iBWrPKA" base_Element="_WQUmgcoSEeWsA83iBWrPKA"/>
  <UMLLabProfile:Reference xmi:id="_WQVNkMoSEeWsA83iBWrPKA" base_Element="_WQUmhMoSEeWsA83iBWrPKA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_IRCREMomEeWI07Wu9tqfCA" base_Element="_IQgFkMomEeWI07Wu9tqfCA"/>
  <UMLLabProfile:Reference xmi:id="_IRKM4MomEeWI07Wu9tqfCA" base_Element="_IRJl0MomEeWI07Wu9tqfCA"/>
  <UMLLabProfile:Reference xmi:id="_IRKz8comEeWI07Wu9tqfCA" base_Element="_IRKz8MomEeWI07Wu9tqfCA"/>
  <UMLLabProfile:Reference xmi:id="_IRMCEMomEeWI07Wu9tqfCA" base_Element="_IRLbAMomEeWI07Wu9tqfCA"/>
  <UMLLabProfile:Reference xmi:id="_K74RQconEeWI07Wu9tqfCA" base_Element="_K74RQMonEeWI07Wu9tqfCA"/>
  <UMLLabProfile:Reference xmi:id="_K75fYMonEeWI07Wu9tqfCA" base_Element="_K74RQsonEeWI07Wu9tqfCA"/>
  <UMLLabProfile:Reference xmi:id="_K75fYsonEeWI07Wu9tqfCA" base_Element="_K75fYconEeWI07Wu9tqfCA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_p1EfRM9GEeWcl7az0iEBww" base_Element="_p1EfQ89GEeWcl7az0iEBww"/>
  <UMLLabProfile:Annotations xmi:id="_p1OQQM9GEeWcl7az0iEBww" base_Element="_p1EfQ89GEeWcl7az0iEBww">
    <annotations xmi:id="_p1OQQc9GEeWcl7az0iEBww" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_akCoYM9KEeWD9JA5XZkC8g" base_Element="_akCBUM9KEeWD9JA5XZkC8g">
    <annotations xmi:id="_akCoYc9KEeWD9JA5XZkC8g" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_akD2gc9KEeWD9JA5XZkC8g" base_Element="_akD2gM9KEeWD9JA5XZkC8g">
    <annotations xmi:id="_akD2gs9KEeWD9JA5XZkC8g" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_akLyUc9KEeWD9JA5XZkC8g" base_Element="_akLyUM9KEeWD9JA5XZkC8g">
    <annotations xmi:id="_akLyUs9KEeWD9JA5XZkC8g" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_akNAcc9KEeWD9JA5XZkC8g" base_Element="_akNAcM9KEeWD9JA5XZkC8g">
    <annotations xmi:id="_akNAcs9KEeWD9JA5XZkC8g" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:StyledElement xmi:id="_akdfIM9KEeWD9JA5XZkC8g" base_Element="_akAzMM9KEeWD9JA5XZkC8g"/>
  <UMLLabProfile:StyledElement xmi:id="_akdfIc9KEeWD9JA5XZkC8g" base_Element="_akAzMc9KEeWD9JA5XZkC8g"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_akeGMM9KEeWD9JA5XZkC8g" base_Element="_akCBUM9KEeWD9JA5XZkC8g"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_akeGMc9KEeWD9JA5XZkC8g" base_Element="_akD2gM9KEeWD9JA5XZkC8g"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_akf7YM9KEeWD9JA5XZkC8g" base_Element="_akLyUM9KEeWD9JA5XZkC8g"/>
  <UMLLabProfile:StyledElement xmi:id="_akmCB89KEeWD9JA5XZkC8g" base_Element="_akla8M9KEeWD9JA5XZkC8g"/>
  <UMLLabProfile:StyledElement xmi:id="_ak0EcM9KEeWD9JA5XZkC8g" base_Element="_akzdYs9KEeWD9JA5XZkC8g"/>
  <UMLLabProfile:Reference xmi:id="_alFKMM9KEeWD9JA5XZkC8g" base_Element="_alEjIM9KEeWD9JA5XZkC8g"/>
  <UMLLabProfile:Annotations xmi:id="_g_9_0M-TEeWOGvD12nE26A" base_Element="_g_9YwM-TEeWOGvD12nE26A">
    <annotations xmi:id="_g_9_0c-TEeWOGvD12nE26A" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_hAF7oc-TEeWOGvD12nE26A" base_Element="_hAF7oM-TEeWOGvD12nE26A">
    <annotations xmi:id="_hAF7os-TEeWOGvD12nE26A" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_hAHw0c-TEeWOGvD12nE26A" base_Element="_hAHw0M-TEeWOGvD12nE26A">
    <annotations xmi:id="_hAHw0s-TEeWOGvD12nE26A" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:StyledElement xmi:id="_hAeWIM-TEeWOGvD12nE26A" base_Element="_akNAcM9KEeWD9JA5XZkC8g"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_hAfkQM-TEeWOGvD12nE26A" base_Element="_g_9YwM-TEeWOGvD12nE26A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_hAiAgM-TEeWOGvD12nE26A" base_Element="_hAF7oM-TEeWOGvD12nE26A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_hAinkM-TEeWOGvD12nE26A" base_Element="_hAHw0M-TEeWOGvD12nE26A"/>
  <UMLLabProfile:Reference xmi:id="_hBFaIc-TEeWOGvD12nE26A" base_Element="_hBFaIM-TEeWOGvD12nE26A"/>
  <UMLLabProfile:Reference xmi:id="_hBGBMc-TEeWOGvD12nE26A" base_Element="_hBGBMM-TEeWOGvD12nE26A"/>
  <UMLLabProfile:StyledElement xmi:id="_hBXG8M-TEeWOGvD12nE26A" base_Element="_hBWf4M-TEeWOGvD12nE26A"/>
  <UMLLabProfile:Annotations xmi:id="_n5k78M-TEeWOGvD12nE26A" base_Element="_g_68gM-TEeWOGvD12nE26A">
    <annotations xmi:id="_n5ljAM-TEeWOGvD12nE26A" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_n5mKEM-TEeWOGvD12nE26A" base_Element="_g_68gM-TEeWOGvD12nE26A"/>
  <UMLLabProfile:Reference xmi:id="_nOUREM-WEeWOGvD12nE26A" base_Element="_nOTqAM-WEeWOGvD12nE26A"/>
  <UMLLabProfile:Reference xmi:id="_4rFtIM-aEeWOGvD12nE26A" base_Element="_4rFGEM-aEeWOGvD12nE26A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_4rIJYM-aEeWOGvD12nE26A" base_Element="_4rHiVM-aEeWOGvD12nE26A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_4rIJY8-aEeWOGvD12nE26A" base_Element="_4rIJYc-aEeWOGvD12nE26A"/>
  <UMLLabProfile:Reference xmi:id="_4rJXgM-aEeWOGvD12nE26A" base_Element="_4rIwdM-aEeWOGvD12nE26A"/>
  <UMLLabProfile:Generics xmi:id="_-fyPoc-aEeWOGvD12nE26A" genericsValue="LineSegment" base_Element="_-fyPoM-aEeWOGvD12nE26A"/>
  <UMLLabProfile:Reference xmi:id="_-f1S8M-aEeWOGvD12nE26A" base_Element="_-f0r4M-aEeWOGvD12nE26A"/>
  <UMLLabProfile:Reference xmi:id="_-f1S8s-aEeWOGvD12nE26A" base_Element="_-f1S8c-aEeWOGvD12nE26A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_-f2hEM-aEeWOGvD12nE26A" base_Element="_-f16Ac-aEeWOGvD12nE26A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_-f2hEs-aEeWOGvD12nE26A" base_Element="_-f2hEc-aEeWOGvD12nE26A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_-f2hFM-aEeWOGvD12nE26A" base_Element="_-f2hE8-aEeWOGvD12nE26A"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_-f2hFs-aEeWOGvD12nE26A" base_Element="_-f2hFc-aEeWOGvD12nE26A"/>
  <UMLLabProfile:Reference xmi:id="_HY3wMc-bEeWOGvD12nE26A" base_Element="_HY3wMM-bEeWOGvD12nE26A"/>
  <UMLLabProfile:StyledElement xmi:id="_a07moM-jEeWc1NBveAXAvg" base_Element="_a0WX0M-jEeWc1NBveAXAvg"/>
  <UMLLabProfile:StyledElement xmi:id="_a1F-sM-jEeWc1NBveAXAvg" base_Element="_a1FXoM-jEeWc1NBveAXAvg"/>
  <UMLLabProfile:StyledElement xmi:id="_a1GlwM-jEeWc1NBveAXAvg" base_Element="_a1F-sc-jEeWc1NBveAXAvg"/>
  <UMLLabProfile:Annotations xmi:id="_3XSbANaBEeWiEYVNrmJsoQ" base_Element="_3XRz8NaBEeWiEYVNrmJsoQ">
    <annotations xmi:id="_3XSbAdaBEeWiEYVNrmJsoQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_3X-XgNaBEeWiEYVNrmJsoQ" base_Element="_3XRz8NaBEeWiEYVNrmJsoQ"/>
  <UMLLabProfile:Reference xmi:id="_3YgjANaBEeWiEYVNrmJsoQ" base_Element="_3Yf78NaBEeWiEYVNrmJsoQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_0JVLoNcNEeWNZKF-rpbInQ" base_Element="_0JQ6MNcNEeWNZKF-rpbInQ"/>
  <UMLLabProfile:Annotations xmi:id="_0JZdENcNEeWNZKF-rpbInQ" base_Element="_0JQ6MNcNEeWNZKF-rpbInQ">
    <annotations xmi:id="_0JaEINcNEeWNZKF-rpbInQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_0Jb5UNcNEeWNZKF-rpbInQ" base_Element="_0JarMNcNEeWNZKF-rpbInQ"/>
  <UMLLabProfile:Annotations xmi:id="_0JcgYNcNEeWNZKF-rpbInQ" base_Element="_0JarMNcNEeWNZKF-rpbInQ">
    <annotations xmi:id="_0JcgYdcNEeWNZKF-rpbInQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_dclqsNo-EeWZSOZzoCHXcg" base_Element="_dckckNo-EeWZSOZzoCHXcg">
    <associatedElement xmi:type="uml:Operation" xmi:id="_dclqsdo-EeWZSOZzoCHXcg" name="setVisibility" method="_dcouAdo-EeWZSOZzoCHXcg">
      <ownedParameter xmi:id="_dcmRwNo-EeWZSOZzoCHXcg" name="visible">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
      </ownedParameter>
    </associatedElement>
    <associatedElement xmi:type="uml:Operation" xmi:id="_g_4gQM-TEeWOGvD12nE26A" name="getVisibility" method="_CtFFsNo_EeWZSOZzoCHXcg">
      <ownedParameter xmi:id="_dcgLINo-EeWZSOZzoCHXcg" direction="return">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
      </ownedParameter>
    </associatedElement>
  </UMLLabProfile:LegacyStyledElement>
  <uml:OpaqueBehavior xmi:id="_dcouAdo-EeWZSOZzoCHXcg" name="setVisibility" specification="_dclqsdo-EeWZSOZzoCHXcg">
    <ownedParameter xmi:id="_dcpVENo-EeWZSOZzoCHXcg" name="visible">
      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
    </ownedParameter>
    <language>java</language>
    <body>this.visibility = visible;&#xD;
	</body>
  </uml:OpaqueBehavior>
  <UMLLabProfile:Annotations xmi:id="_n7LJcNo-EeWZSOZzoCHXcg" base_Element="_n7KiYNo-EeWZSOZzoCHXcg">
    <annotations xmi:id="_n7LwgNo-EeWZSOZzoCHXcg" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_n7OMwNo-EeWZSOZzoCHXcg" base_Element="_n7MXkNo-EeWZSOZzoCHXcg">
    <annotations xmi:id="_n7OMwdo-EeWZSOZzoCHXcg" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_n7U6cNo-EeWZSOZzoCHXcg" base_Element="_n7KiYNo-EeWZSOZzoCHXcg"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_n7VhgNo-EeWZSOZzoCHXcg" base_Element="_n7MXkNo-EeWZSOZzoCHXcg"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_n75iMNo-EeWZSOZzoCHXcg" base_Element="_n74UEdo-EeWZSOZzoCHXcg"/>
  <UMLLabProfile:Reference xmi:id="_n8D6QNo-EeWZSOZzoCHXcg" base_Element="_n8CsINo-EeWZSOZzoCHXcg"/>
  <UMLLabProfile:Reference xmi:id="_n8FIYNo-EeWZSOZzoCHXcg" base_Element="_n8D6Qdo-EeWZSOZzoCHXcg"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_63b_INo-EeWZSOZzoCHXcg" base_Element="_63bYENo-EeWZSOZzoCHXcg"/>
  <uml:OpaqueBehavior xmi:id="_CtFFsNo_EeWZSOZzoCHXcg" name="getVisibility" specification="_g_4gQM-TEeWOGvD12nE26A">
    <ownedParameter xmi:id="_CtFswNo_EeWZSOZzoCHXcg" direction="return">
      <name xsi:nil="true"/>
      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
    </ownedParameter>
    <language>java</language>
    <body>return visibility;&#xD;
	</body>
  </uml:OpaqueBehavior>
  <UMLLabProfile:Annotations xmi:id="_S2GWsNpKEeWelou951FNPg" base_Element="_S2FvoNpKEeWelou951FNPg">
    <annotations xmi:id="_S2GWsdpKEeWelou951FNPg" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_S2G9wNpKEeWelou951FNPg" base_Element="_S2GWstpKEeWelou951FNPg">
    <annotations xmi:id="_S2G9wdpKEeWelou951FNPg" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_S2L2QdpKEeWelou951FNPg" base_Element="_S2L2QNpKEeWelou951FNPg">
    <annotations xmi:id="_S2MdUNpKEeWelou951FNPg" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_S2MdUtpKEeWelou951FNPg" base_Element="_S2MdUdpKEeWelou951FNPg">
    <annotations xmi:id="_S2MdU9pKEeWelou951FNPg" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_S20vcNpKEeWelou951FNPg" base_Element="_S1vxYNpKEeWelou951FNPg"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_S24Z0NpKEeWelou951FNPg" base_Element="_S2FvoNpKEeWelou951FNPg"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_S24Z0dpKEeWelou951FNPg" base_Element="_S2GWstpKEeWelou951FNPg"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_S25A4NpKEeWelou951FNPg" base_Element="_S2L2QNpKEeWelou951FNPg"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_S25n8NpKEeWelou951FNPg" base_Element="_S2MdUdpKEeWelou951FNPg"/>
  <UMLLabProfile:Reference xmi:id="_S3Vs0NpKEeWelou951FNPg" base_Element="_S3VFwNpKEeWelou951FNPg"/>
  <UMLLabProfile:Annotations xmi:id="_zJkeENpKEeWelou951FNPg" base_Element="_S1vxYNpKEeWelou951FNPg">
    <annotations xmi:id="_zJkeEdpKEeWelou951FNPg" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_U0n9QdpoEeWelou951FNPg" base_Element="_U0n9QNpoEeWelou951FNPg"/>
  <UMLLabProfile:Reference xmi:id="_U0pLYtpoEeWelou951FNPg" base_Element="_U0pLYNpoEeWelou951FNPg"/>
  <UMLLabProfile:Reference xmi:id="_CJjL8dptEeWelou951FNPg" base_Element="_CJjL8NptEeWelou951FNPg"/>
  <UMLLabProfile:Reference xmi:id="_CJjzANptEeWelou951FNPg" base_Element="_CJjL8tptEeWelou951FNPg"/>
  <UMLLabProfile:Reference xmi:id="_CJjzAtptEeWelou951FNPg" base_Element="_CJjzAdptEeWelou951FNPg"/>
  <UMLLabProfile:Reference xmi:id="_sA-84NptEeWelou951FNPg" base_Element="_sA-V0NptEeWelou951FNPg"/>
  <UMLLabProfile:Reference xmi:id="_sA-84tptEeWelou951FNPg" base_Element="_sA-84dptEeWelou951FNPg"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_sA_j8dptEeWelou951FNPg" base_Element="_sA_j8NptEeWelou951FNPg"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_sBALANptEeWelou951FNPg" base_Element="_sA_j89ptEeWelou951FNPg"/>
  <UMLLabProfile:Reference xmi:id="_sBAyENptEeWelou951FNPg" base_Element="_sBALBNptEeWelou951FNPg"/>
  <UMLLabProfile:Reference xmi:id="_sBAyE9ptEeWelou951FNPg" base_Element="_sBAyEdptEeWelou951FNPg"/>
  <UMLLabProfile:Generics xmi:id="_3PZ1wdpwEeWelou951FNPg" genericsValue="Integer, Set&lt;AGizmoComponent>" base_Element="_3PZ1wNpwEeWelou951FNPg"/>
  <UMLLabProfile:Generics xmi:id="_3Pac0dpwEeWelou951FNPg" genericsValue="AGizmoComponent, Set&lt;AGizmoComponent>" base_Element="_3Pac0NpwEeWelou951FNPg"/>
  <UMLLabProfile:Reference xmi:id="_PIDF4dpxEeWelou951FNPg" base_Element="_PIDF4NpxEeWelou951FNPg"/>
  <UMLLabProfile:Annotations xmi:id="_5g1eIdp2EeWelou951FNPg" base_Element="_5g03Fdp2EeWelou951FNPg">
    <annotations xmi:id="_5g1eItp2EeWelou951FNPg" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Reference xmi:id="__kgQwdp2EeWelou951FNPg" base_Element="__kgQwNp2EeWelou951FNPg"/>
  <UMLLabProfile:Annotations xmi:id="_f0COINqJEeW7l6s7iyoCaQ" base_Element="_f0BnENqJEeW7l6s7iyoCaQ">
    <annotations xmi:id="_f0COIdqJEeW7l6s7iyoCaQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_f0C1NNqJEeW7l6s7iyoCaQ" base_Element="_f0C1MtqJEeW7l6s7iyoCaQ">
    <annotations xmi:id="_f0C1NdqJEeW7l6s7iyoCaQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_f0DcQtqJEeW7l6s7iyoCaQ" base_Element="_f0DcQNqJEeW7l6s7iyoCaQ">
    <annotations xmi:id="_f0DcQ9qJEeW7l6s7iyoCaQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_f0EDUdqJEeW7l6s7iyoCaQ" base_Element="_f0DcRNqJEeW7l6s7iyoCaQ">
    <annotations xmi:id="_f0EDUtqJEeW7l6s7iyoCaQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_f0EDVNqJEeW7l6s7iyoCaQ" base_Element="_f0EDU9qJEeW7l6s7iyoCaQ">
    <annotations xmi:id="_f0EqYNqJEeW7l6s7iyoCaQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_f0EqYtqJEeW7l6s7iyoCaQ" base_Element="_f0EqYdqJEeW7l6s7iyoCaQ">
    <annotations xmi:id="_f0EqY9qJEeW7l6s7iyoCaQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_f0EqZdqJEeW7l6s7iyoCaQ" base_Element="_f0EqZNqJEeW7l6s7iyoCaQ">
    <annotations xmi:id="_f0EqZtqJEeW7l6s7iyoCaQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_f0aBkNqJEeW7l6s7iyoCaQ" base_Element="_f0BnENqJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_f0aooNqJEeW7l6s7iyoCaQ" base_Element="_f0C1MtqJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_f0aoodqJEeW7l6s7iyoCaQ" base_Element="_f0DcQNqJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_f0bPsNqJEeW7l6s7iyoCaQ" base_Element="_f0DcRNqJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_f0bPsdqJEeW7l6s7iyoCaQ" base_Element="_f0EDU9qJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_f0bPstqJEeW7l6s7iyoCaQ" base_Element="_f0EqYdqJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_f0b2wNqJEeW7l6s7iyoCaQ" base_Element="_f0EqZNqJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:Reference xmi:id="_f0_QYNqJEeW7l6s7iyoCaQ" base_Element="_f0-pUNqJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:Generics xmi:id="_f0_3cNqJEeW7l6s7iyoCaQ" genericsValue="?" base_Element="_f0_QYtqJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_f1CTs9qJEeW7l6s7iyoCaQ" base_Element="_f1BsoNqJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:Generics xmi:id="_f1C6wNqJEeW7l6s7iyoCaQ" genericsValue="?" base_Element="_f1CTsNqJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:Annotations xmi:id="_f1Dh0NqJEeW7l6s7iyoCaQ" base_Element="_f1BsoNqJEeW7l6s7iyoCaQ">
    <annotations xmi:id="_f1Dh0dqJEeW7l6s7iyoCaQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_f1JBYNqJEeW7l6s7iyoCaQ" base_Element="_f1IaUNqJEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:Reference xmi:id="_61TUsNqMEeW7l6s7iyoCaQ" base_Element="_61StoNqMEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_NTg8cdqNEeW7l6s7iyoCaQ" base_Element="_NTg8cNqNEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:Reference xmi:id="_NThjgtqNEeW7l6s7iyoCaQ" base_Element="_NThjgNqNEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_PYBx4dqNEeW7l6s7iyoCaQ" base_Element="_PYBx4NqNEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:Reference xmi:id="_PYCY8tqNEeW7l6s7iyoCaQ" base_Element="_PYCY8NqNEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_NNy8sdqSEeW7l6s7iyoCaQ" base_Element="_NNy8sNqSEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:Reference xmi:id="_NN0K0NqSEeW7l6s7iyoCaQ" base_Element="_NNzjwNqSEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_Qig1wdqSEeW7l6s7iyoCaQ" base_Element="_Qig1wNqSEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:Reference xmi:id="_QiiD4NqSEeW7l6s7iyoCaQ" base_Element="_Qihc0NqSEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_RWP_0NqSEeW7l6s7iyoCaQ" base_Element="_RWPYwNqSEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:Reference xmi:id="_RWR1ANqSEeW7l6s7iyoCaQ" base_Element="_RWRN8NqSEeW7l6s7iyoCaQ"/>
  <UMLLabProfile:Annotations xmi:id="_rALRot_HEeWOj8fPzW2xTA" base_Element="_rALRoN_HEeWOj8fPzW2xTA">
    <annotations xmi:id="_rAL4sN_HEeWOj8fPzW2xTA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_rAL4tN_HEeWOj8fPzW2xTA" base_Element="_rAL4sd_HEeWOj8fPzW2xTA">
    <annotations xmi:id="_rAL4td_HEeWOj8fPzW2xTA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_rAQxMt_HEeWOj8fPzW2xTA" base_Element="_rAQxMN_HEeWOj8fPzW2xTA">
    <annotations xmi:id="_rAQxM9_HEeWOj8fPzW2xTA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_rARYQ9_HEeWOj8fPzW2xTA" base_Element="_rARYQN_HEeWOj8fPzW2xTA">
    <annotations xmi:id="_rARYRN_HEeWOj8fPzW2xTA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_rAtdIN_HEeWOj8fPzW2xTA" base_Element="_rALRoN_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_rAuEMN_HEeWOj8fPzW2xTA" base_Element="_rAL4sd_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_rAurQN_HEeWOj8fPzW2xTA" base_Element="_rAQxMN_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_rAurQd_HEeWOj8fPzW2xTA" base_Element="_rARYQN_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_rCe-wd_HEeWOj8fPzW2xTA" base_Element="_rCe-wN_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_rCrzEN_HEeWOj8fPzW2xTA" base_Element="_rCrMAN_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_rCtoQN_HEeWOj8fPzW2xTA" base_Element="_rCtBMN_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_rCuPUN_HEeWOj8fPzW2xTA" base_Element="_rCtoQd_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_rCuPUt_HEeWOj8fPzW2xTA" base_Element="_rCuPUd_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_rCu2Yd_HEeWOj8fPzW2xTA" base_Element="_rCu2YN_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_rCu2Y9_HEeWOj8fPzW2xTA" base_Element="_rCu2Yt_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_rDENld_HEeWOj8fPzW2xTA" base_Element="_rDENk9_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_rDGCwN_HEeWOj8fPzW2xTA" base_Element="_rDFbtN_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_vYguYN_IEeWOj8fPzW2xTA" base_Element="_rClFYN_HEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Annotations xmi:id="_vYhVc9_IEeWOj8fPzW2xTA" base_Element="_vYhVct_IEeWOj8fPzW2xTA">
    <annotations xmi:id="_vYh8gN_IEeWOj8fPzW2xTA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Annotations xmi:id="_vYh8hN_IEeWOj8fPzW2xTA" base_Element="_vYh8gd_IEeWOj8fPzW2xTA">
    <annotations xmi:id="_vYh8hd_IEeWOj8fPzW2xTA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:StyledElement xmi:id="_vY2sqN_IEeWOj8fPzW2xTA" base_Element="_vY2soN_IEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_vY5v8N_IEeWOj8fPzW2xTA" base_Element="_vY5I4N_IEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_vY5v89_IEeWOj8fPzW2xTA" base_Element="_vY5v8d_IEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_z_sC8N_KEeWOj8fPzW2xTA" base_Element="_z_rb4N_KEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_wJRVkN_LEeWOj8fPzW2xTA" base_Element="_wJQugN_LEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_wJR8oN_LEeWOj8fPzW2xTA" base_Element="_wJRVl9_LEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_BaJ8od_OEeWOj8fPzW2xTA" base_Element="_BaJ8oN_OEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_BaKjsN_OEeWOj8fPzW2xTA" base_Element="_BaJ8ot_OEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_BaLKwN_OEeWOj8fPzW2xTA" base_Element="_BaKjsd_OEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_deYcY9_OEeWOj8fPzW2xTA" base_Element="_deYcYt_OEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_deZqg9_OEeWOj8fPzW2xTA" base_Element="_deZqgd_OEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_ivLAkt_OEeWOj8fPzW2xTA" base_Element="_ivLAkN_OEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_cU8Sot_PEeWOj8fPzW2xTA" base_Element="_cU8SoN_PEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_dhb68N_PEeWOj8fPzW2xTA" base_Element="_dhbT4N_PEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_GFjC0N_QEeWOj8fPzW2xTA" base_Element="_GFibwN_QEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_GFjp4N_QEeWOj8fPzW2xTA" base_Element="_GFjC0d_QEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_YXXNUd_QEeWOj8fPzW2xTA" base_Element="_YXXNUN_QEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_YXX0Yd_QEeWOj8fPzW2xTA" base_Element="_YXX0YN_QEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_YXYbct_QEeWOj8fPzW2xTA" base_Element="_YXYbcN_QEeWOj8fPzW2xTA"/>
  <UMLLabProfile:Reference xmi:id="_YXYbdd_QEeWOj8fPzW2xTA" base_Element="_YXYbc9_QEeWOj8fPzW2xTA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_sWzP4N_TEeWK7oluzFDNQQ" base_Element="_sWyBwN_TEeWK7oluzFDNQQ"/>
  <UMLLabProfile:Annotations xmi:id="_sWz28N_TEeWK7oluzFDNQQ" base_Element="_sWyBwN_TEeWK7oluzFDNQQ">
    <annotations xmi:id="_sWz28d_TEeWK7oluzFDNQQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_sW0eAd_TEeWK7oluzFDNQQ" base_Element="_sW0eAN_TEeWK7oluzFDNQQ"/>
  <UMLLabProfile:Reference xmi:id="_sW4IYN_TEeWK7oluzFDNQQ" base_Element="_sW3hUN_TEeWK7oluzFDNQQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_6MsosN_TEeWK7oluzFDNQQ" base_Element="_6Mrakd_TEeWK7oluzFDNQQ"/>
  <UMLLabProfile:Annotations xmi:id="_6Msosd_TEeWK7oluzFDNQQ" base_Element="_6Mrakd_TEeWK7oluzFDNQQ">
    <annotations xmi:id="_6Msost_TEeWK7oluzFDNQQ" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_6MtPwd_TEeWK7oluzFDNQQ" base_Element="_6MtPwN_TEeWK7oluzFDNQQ"/>
  <UMLLabProfile:Reference xmi:id="_6MvE8N_TEeWK7oluzFDNQQ" base_Element="_6Mud4N_TEeWK7oluzFDNQQ"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aUh4cOeCEeWktpDGdewXHA" base_Element="_aUhRYOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aUjGkOeCEeWktpDGdewXHA" base_Element="_aUhRYOeCEeWktpDGdewXHA">
    <annotations xmi:id="_aUjGkeeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aUjtoeeCEeWktpDGdewXHA" base_Element="_aUjGkueCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aUkUsOeCEeWktpDGdewXHA" base_Element="_aUjGkueCEeWktpDGdewXHA">
    <annotations xmi:id="_aUkUseeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aUk7weeCEeWktpDGdewXHA" base_Element="_aUkUsueCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aUk7wueCEeWktpDGdewXHA" base_Element="_aUkUsueCEeWktpDGdewXHA">
    <annotations xmi:id="_aUli0OeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aUrCY-eCEeWktpDGdewXHA" base_Element="_aUrCYOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aUrpcOeCEeWktpDGdewXHA" base_Element="_aUrCYOeCEeWktpDGdewXHA">
    <annotations xmi:id="_aUrpceeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aUsQgeeCEeWktpDGdewXHA" base_Element="_aUrpcueCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aUsQgueCEeWktpDGdewXHA" base_Element="_aUrpcueCEeWktpDGdewXHA">
    <annotations xmi:id="_aUsQg-eCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aUvT0OeCEeWktpDGdewXHA" base_Element="_aUuswOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aUvT0eeCEeWktpDGdewXHA" base_Element="_aUuswOeCEeWktpDGdewXHA">
    <annotations xmi:id="_aUvT0ueCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aUwh8OeCEeWktpDGdewXHA" base_Element="_aUv64OeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aUxwEOeCEeWktpDGdewXHA" base_Element="_aUv64OeCEeWktpDGdewXHA">
    <annotations xmi:id="_aUxwEeeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aUy-MeeCEeWktpDGdewXHA" base_Element="_aUyXIOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aUzlQOeCEeWktpDGdewXHA" base_Element="_aUyXIOeCEeWktpDGdewXHA">
    <annotations xmi:id="_aUzlQeeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aVI8c-eCEeWktpDGdewXHA" base_Element="_aVI8cOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aVJjgOeCEeWktpDGdewXHA" base_Element="_aVI8cOeCEeWktpDGdewXHA">
    <annotations xmi:id="_aVJjgeeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aVKKkeeCEeWktpDGdewXHA" base_Element="_aVJjgueCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aVKKkueCEeWktpDGdewXHA" base_Element="_aVJjgueCEeWktpDGdewXHA">
    <annotations xmi:id="_aVKKk-eCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aVKxoOeCEeWktpDGdewXHA" base_Element="_aVKKlOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aVKxoeeCEeWktpDGdewXHA" base_Element="_aVKKlOeCEeWktpDGdewXHA">
    <annotations xmi:id="_aVKxoueCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aVfhweeCEeWktpDGdewXHA" base_Element="_aVfhwOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aVgI0OeCEeWktpDGdewXHA" base_Element="_aVfhwOeCEeWktpDGdewXHA">
    <annotations xmi:id="_aVgI0eeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aVgv4eeCEeWktpDGdewXHA" base_Element="_aVgI0ueCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aVgv4ueCEeWktpDGdewXHA" base_Element="_aVgI0ueCEeWktpDGdewXHA">
    <annotations xmi:id="_aVgv4-eCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aVhW9OeCEeWktpDGdewXHA" base_Element="_aVhW8OeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aVh-AOeCEeWktpDGdewXHA" base_Element="_aVhW8OeCEeWktpDGdewXHA">
    <annotations xmi:id="_aVh-AeeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aVlBUeeCEeWktpDGdewXHA" base_Element="_aVlBUOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aVloYOeCEeWktpDGdewXHA" base_Element="_aVlBUOeCEeWktpDGdewXHA">
    <annotations xmi:id="_aVloYeeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aVmPcOeCEeWktpDGdewXHA" base_Element="_aVloYueCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aVmPceeCEeWktpDGdewXHA" base_Element="_aVloYueCEeWktpDGdewXHA">
    <annotations xmi:id="_aVmPcueCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aVm2gueCEeWktpDGdewXHA" base_Element="_aVmPc-eCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aVm2g-eCEeWktpDGdewXHA" base_Element="_aVmPc-eCEeWktpDGdewXHA">
    <annotations xmi:id="_aVndkOeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aV1gAeeCEeWktpDGdewXHA" base_Element="_aV048OeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aV1gAueCEeWktpDGdewXHA" base_Element="_aV048OeCEeWktpDGdewXHA">
    <annotations xmi:id="_aV1gA-eCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aV_RAueCEeWktpDGdewXHA" base_Element="_aV-p8OeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aV_RA-eCEeWktpDGdewXHA" base_Element="_aV-p8OeCEeWktpDGdewXHA">
    <annotations xmi:id="_aV_4EOeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:Generics xmi:id="_aWAfIOeCEeWktpDGdewXHA" genericsValue="String, AGizmoComponent" base_Element="_aV_4EeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aWAfIeeCEeWktpDGdewXHA" base_Element="_aV_4EeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aWBGMOeCEeWktpDGdewXHA" base_Element="_aV_4EeeCEeWktpDGdewXHA">
    <annotations xmi:id="_aWBGMeeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aWBtQueCEeWktpDGdewXHA" base_Element="_aWBtQOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aWCUUOeCEeWktpDGdewXHA" base_Element="_aWBtQOeCEeWktpDGdewXHA">
    <annotations xmi:id="_aWCUUeeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:LegacyStyledElement xmi:id="_aWCUVOeCEeWktpDGdewXHA" base_Element="_aWCUUueCEeWktpDGdewXHA"/>
  <UMLLabProfile:Annotations xmi:id="_aWC7YOeCEeWktpDGdewXHA" base_Element="_aWCUUueCEeWktpDGdewXHA">
    <annotations xmi:id="_aWC7YeeCEeWktpDGdewXHA" name="Override"/>
  </UMLLabProfile:Annotations>
  <UMLLabProfile:StyledElement xmi:id="_aq5KBueCEeWktpDGdewXHA" base_Element="_aq4i8OeCEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_aq5xEueCEeWktpDGdewXHA" base_Element="_aq5xEOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_aq5xFeeCEeWktpDGdewXHA" base_Element="_aq5xE-eCEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_aq6YI-eCEeWktpDGdewXHA" base_Element="_aq6YIOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_aq6_MOeCEeWktpDGdewXHA" base_Element="_aq6YJOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_arwssOeCEeWktpDGdewXHA" base_Element="_arwFoOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_ar0-IOeCEeWktpDGdewXHA" base_Element="_ar0XEOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_ar5PkOeCEeWktpDGdewXHA" base_Element="_ar4ogOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_ar7r0OeCEeWktpDGdewXHA" base_Element="_ar7EwOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_ar858OeCEeWktpDGdewXHA" base_Element="_ar8S4ueCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asBLYOeCEeWktpDGdewXHA" base_Element="_asAkUOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asCZgOeCEeWktpDGdewXHA" base_Element="_asBycOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asDAkOeCEeWktpDGdewXHA" base_Element="_asCZgeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asDnoOeCEeWktpDGdewXHA" base_Element="_asDAkeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asHSAOeCEeWktpDGdewXHA" base_Element="_asGq8OeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asLjcOeCEeWktpDGdewXHA" base_Element="_asK8YOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asMKgeeCEeWktpDGdewXHA" base_Element="_asMKgOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asNYoOeCEeWktpDGdewXHA" base_Element="_asMxkOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asN_sOeCEeWktpDGdewXHA" base_Element="_asNYoeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asOmwOeCEeWktpDGdewXHA" base_Element="_asN_seeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asRqEOeCEeWktpDGdewXHA" base_Element="_asRDAOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asUGUOeCEeWktpDGdewXHA" base_Element="_asTfQOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asUtYOeCEeWktpDGdewXHA" base_Element="_asUGUeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asVUcOeCEeWktpDGdewXHA" base_Element="_asUtYeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_asV7g-eCEeWktpDGdewXHA" base_Element="_xzslkMR4EeW_3q3XSh-SYw"/>
  <UMLLabProfile:Reference xmi:id="_asXwsOeCEeWktpDGdewXHA" base_Element="_asXJoOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asYXwOeCEeWktpDGdewXHA" base_Element="_asXwseeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asaM8OeCEeWktpDGdewXHA" base_Element="_asZl4OeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asa0AOeCEeWktpDGdewXHA" base_Element="_asaM8eeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_asdQQOeCEeWktpDGdewXHA" base_Element="_ascpMOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atAC0eeCEeWktpDGdewXHA" base_Element="_atAC0OeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atBQ8eeCEeWktpDGdewXHA" base_Element="_atBQ8OeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atDGIOeCEeWktpDGdewXHA" base_Element="_atCfEOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atE7UOeCEeWktpDGdewXHA" base_Element="_atEUQOeCEeWktpDGdewXHA">
    <associatedElement xmi:type="uml:Operation" xmi:id="_atE7UeeCEeWktpDGdewXHA" name="getRadius" method="_atw30ueCEeWktpDGdewXHA">
      <ownedParameter xmi:id="_atE7UueCEeWktpDGdewXHA" direction="return">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
      </ownedParameter>
    </associatedElement>
  </UMLLabProfile:LegacyStyledElement>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atGJceeCEeWktpDGdewXHA" base_Element="_atGJcOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atGwgeeCEeWktpDGdewXHA" base_Element="_atGwgOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atHXkeeCEeWktpDGdewXHA" base_Element="_atHXkOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atH-oOeCEeWktpDGdewXHA" base_Element="_atHXkueCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atH-oueCEeWktpDGdewXHA" base_Element="_atH-oeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atIlsOeCEeWktpDGdewXHA" base_Element="_atH-o-eCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atIlsueCEeWktpDGdewXHA" base_Element="_atIlseeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atLB8eeCEeWktpDGdewXHA" base_Element="_atKa4OeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atM3IOeCEeWktpDGdewXHA" base_Element="_atMQEOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atOsUOeCEeWktpDGdewXHA" base_Element="_atOFQOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atP6cOeCEeWktpDGdewXHA" base_Element="_atPTYOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atRvoOeCEeWktpDGdewXHA" base_Element="_atRIkOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atSWsOeCEeWktpDGdewXHA" base_Element="_atRvoueCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atS9wOeCEeWktpDGdewXHA" base_Element="_atSWseeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atTk0OeCEeWktpDGdewXHA" base_Element="_atS9weeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_atUL4eeCEeWktpDGdewXHA" base_Element="_atUL4OeCEeWktpDGdewXHA"/>
  <uml:OpaqueBehavior xmi:id="_atw30ueCEeWktpDGdewXHA" name="getRadius" specification="_atE7UeeCEeWktpDGdewXHA">
    <ownedParameter xmi:id="_atxe4OeCEeWktpDGdewXHA" direction="return">
      <name xsi:nil="true"/>
      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
    </ownedParameter>
    <language>java</language>
    <body>return radius;&#xD;
	</body>
  </uml:OpaqueBehavior>
  <UMLLabProfile:Reference xmi:id="_aupBkueCEeWktpDGdewXHA" base_Element="_aupBkOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_aupooOeCEeWktpDGdewXHA" base_Element="_aupBk-eCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_aupoo-eCEeWktpDGdewXHA" base_Element="_aupooeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_auqPsueCEeWktpDGdewXHA" base_Element="_auqPsOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_auq2wOeCEeWktpDGdewXHA" base_Element="_auqPs-eCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_aurd0OeCEeWktpDGdewXHA" base_Element="_auq2weeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_ausE4OeCEeWktpDGdewXHA" base_Element="_aurd0eeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_ausr8OeCEeWktpDGdewXHA" base_Element="_ausE4eeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_autTAOeCEeWktpDGdewXHA" base_Element="_ausr8eeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_aut6EOeCEeWktpDGdewXHA" base_Element="_autTAeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_auuhIOeCEeWktpDGdewXHA" base_Element="_aut6EeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_auuhI-eCEeWktpDGdewXHA" base_Element="_auuhIeeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_auvIMueCEeWktpDGdewXHA" base_Element="_auvIMOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_auvvQueCEeWktpDGdewXHA" base_Element="_auvvQOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_m-FvEOeEEeWktpDGdewXHA" base_Element="_asu9EOeCEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-GWIueEEeWktpDGdewXHA" base_Element="_m-GWIOeEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-GWJeeEEeWktpDGdewXHA" base_Element="_m-GWI-eEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-G9MOeEEeWktpDGdewXHA" base_Element="_m-GWJueEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-G9M-eEEeWktpDGdewXHA" base_Element="_m-G9MeeEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-G9NueEEeWktpDGdewXHA" base_Element="_m-G9NOeEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-G9OeeEEeWktpDGdewXHA" base_Element="_m-G9N-eEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-HkQueEEeWktpDGdewXHA" base_Element="_m-HkQOeEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-HkReeEEeWktpDGdewXHA" base_Element="_m-HkQ-eEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-HkR-eEEeWktpDGdewXHA" base_Element="_m-HkRueEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-HkSeeEEeWktpDGdewXHA" base_Element="_m-HkSOeEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-ILUeeEEeWktpDGdewXHA" base_Element="_m-HkSueEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-ILU-eEEeWktpDGdewXHA" base_Element="_m-ILUueEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-OR9ueEEeWktpDGdewXHA" base_Element="_m-Nq4OeEEeWktpDGdewXHA"/>
  <UMLLabProfile:StyledElement xmi:id="_m-O5AOeEEeWktpDGdewXHA" base_Element="_m-OR9-eEEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_m-UYkOeEEeWktpDGdewXHA" base_Element="_m-TxgOeEEeWktpDGdewXHA"/>
  <UMLLabProfile:LegacyStyledElement xmi:id="_wz650OeGEeWktpDGdewXHA" base_Element="_wz6SwOeGEeWktpDGdewXHA"/>
  <UMLLabProfile:Reference xmi:id="_wz-kMOeGEeWktpDGdewXHA" base_Element="_wz99IOeGEeWktpDGdewXHA"/>
</xmi:XMI>
