<mxfile host="65bd71144e">
    <diagram id="85GXP2z5LsSxjsGxekBU" name="Page-1">
        <mxGraphModel dx="1387" dy="1652" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="12" value="" style="edgeStyle=none;html=1;" parent="1" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="400" y="170" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="23" value="#GameStageData&#10;&#10;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="740" y="520" width="240" height="512" as="geometry"/>
                </mxCell>
                <mxCell id="624" value="- renderObjects: Array&lt;Object&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="23" vertex="1">
                    <mxGeometry y="26" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="390" value="+ get renderObjects: Array&lt;Object&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="23" vertex="1">
                    <mxGeometry y="52" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="127" value="+ set mapRotate(value): number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="23" vertex="1">
                    <mxGeometry y="78" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="350" value="+ get canvasDimensions: Array&lt;number&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="23" vertex="1">
                    <mxGeometry y="104" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="351" value="+ get worldDimensions: Array&lt;number&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="23" vertex="1">
                    <mxGeometry y="130" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="352" value="+ get worldOffset: Array&lt;number&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="23" vertex="1">
                    <mxGeometry y="156" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="353" value="+ get mapCenter: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="23" vertex="1">
                    <mxGeometry y="182" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="354" value="+ get mapRotate: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="23" vertex="1">
                    <mxGeometry y="208" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="656" value="+ get boundariesLen: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="23" vertex="1">
                    <mxGeometry y="234" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="657" value="+ get ellipseBLen: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="23" vertex="1">
                    <mxGeometry y="260" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="658" value="+ get pointBLen: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="23" vertex="1">
                    <mxGeometry y="286" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="356" value="+ getObjectsByInstance(instance): &#10;    set&lt;Object&gt;" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="23" vertex="1">
                    <mxGeometry y="312" width="240" height="54" as="geometry"/>
                </mxCell>
                <mxCell id="135" value="+ getBoundaries(): Array&lt;Array&lt;number&gt;&gt;" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="23" vertex="1">
                    <mxGeometry y="366" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="652" value="+ getRawBoundaries(): Float32Array" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="23" vertex="1">
                    <mxGeometry y="392" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="653" value="+ getEllipseBoundaries(): Float32Array" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="23" vertex="1">
                    <mxGeometry y="418" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="654" value="+ getPointBoundaries(): Float32Array" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="23" vertex="1">
                    <mxGeometry y="444" width="240" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="348" value="+ centerCameraPosition(x:number, &#10;    y:number): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="23" vertex="1">
                    <mxGeometry y="470" width="240" height="42" as="geometry"/>
                </mxCell>
                <mxCell id="41" value="#System" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="10" y="682" width="250" height="142" as="geometry"/>
                </mxCell>
                <mxCell id="46" value="+ get system: #ISystem" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="41" vertex="1">
                    <mxGeometry y="26" width="250" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="72" value="+ registerStage(name:string, &#10;    screen: #GameStage)" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="41" vertex="1">
                    <mxGeometry y="52" width="250" height="38" as="geometry"/>
                </mxCell>
                <mxCell id="89" value="+ preloadPageData(name:string): Promise" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="41" vertex="1">
                    <mxGeometry y="90" width="250" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="44" value="+ preloadAllData(): Promise" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="41" vertex="1">
                    <mxGeometry y="116" width="250" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="80" value="#ISystem" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="30" y="270" width="320" height="382" as="geometry"/>
                </mxCell>
                <mxCell id="288" value="+ get audio: #ISystemAudio" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="80" vertex="1">
                    <mxGeometry y="26" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="116" value="+ get iLoader: assetsm(AssetsManager)" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="80" vertex="1">
                    <mxGeometry y="52" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="289" value="+ get network: #SystemSocketConnection" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="80" vertex="1">
                    <mxGeometry y="78" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="82" value="+ get systemSettings: #SystemSettings" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="80" vertex="1">
                    <mxGeometry y="104" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="514" value="+ get iRender: #IRender" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="80" vertex="1">
                    <mxGeometry y="130" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="538" value="+ get draw: #DrawObjectFactory" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="80" vertex="1">
                    <mxGeometry y="156" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="337" value="+ get iExtension: #IExtension" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="80" vertex="1">
                    <mxGeometry y="182" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="512" value="+ get modules: []" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="80" vertex="1">
                    <mxGeometry y="208" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="328" value="+ addEventListerner(): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="80" vertex="1">
                    <mxGeometry y="234" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="327" value="+ removeEventListerner(): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="80" vertex="1">
                    <mxGeometry y="260" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="86" value="+ startGameStage(name:string)" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="80" vertex="1">
                    <mxGeometry y="286" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="249" value="+ stopGameStage(name:string)" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="80" vertex="1">
                    <mxGeometry y="312" width="320" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="510" value="+ installModule(key, moduleClass, ...params):&#10;    ModuleInstance" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="80" vertex="1">
                    <mxGeometry y="338" width="320" height="44" as="geometry"/>
                </mxCell>
                <mxCell id="13" value="#GameStage&#10;&#10;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" parent="1" vertex="1">
                    <mxGeometry x="410" y="478" width="270" height="320" as="geometry"/>
                </mxCell>
                <mxCell id="382" value="+ get system: #ISystem" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="13" vertex="1">
                    <mxGeometry y="26" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="357" value="+ get stageData: #GameStageData" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="13" vertex="1">
                    <mxGeometry y="52" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="322" value="+ emit(): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="13" vertex="1">
                    <mxGeometry y="78" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="332" value="+ register(): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="13" vertex="1">
                    <mxGeometry y="104" width="270" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="333" value="+ init(): void " style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="13" vertex="1">
                    <mxGeometry y="134" width="270" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="334" value="+ start(): void " style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="13" vertex="1">
                    <mxGeometry y="164" width="270" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="335" value="+ stop(): void " style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="13" vertex="1">
                    <mxGeometry y="194" width="270" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="222" value="+ resize(): void " style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="13" vertex="1">
                    <mxGeometry y="224" width="270" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="120" value="+ addRenderObject(canvasKey, renderObject): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="13" vertex="1">
                    <mxGeometry y="254" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="343" value="+ isBoundariesCollision(x:number, y:number,&#10;    drawObject:Object): boolean | Object" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="13" vertex="1">
                    <mxGeometry y="280" width="270" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="168" value="#DrawShapeObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="1030" y="590" width="200" height="470" as="geometry"/>
                </mxCell>
                <mxCell id="169" value="+ set x(value: number):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="26" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="170" value="+ set y(value: number):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="52" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="393" value="+ get x(): number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="78" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="394" value="+ get y(): number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="104" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="174" value="+ set bgColor(value: string):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="130" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="395" value="+ get bgColor(): string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="156" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="175" value="+ get type: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="182" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="397" value="+ get substruct: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="208" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="398" value="+ get zIndex: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="234" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="399" value="+ set zIndex(value: string):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="260" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="400" value="+ get blenFunc(): string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="286" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="401" value="+ set blenFunc(value: string): void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="312" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="402" value="+ get rotation(): number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="338" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="403" value="+ set rotation(value: number):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="364" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="405" value="+ get id(): number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="390" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="406" value="+ get isRemoved(): boolean" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="168" vertex="1">
                    <mxGeometry y="416" width="200" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="392" value="+ destroy(): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="168" vertex="1">
                    <mxGeometry y="442" width="200" height="28" as="geometry"/>
                </mxCell>
                <mxCell id="176" value="#DrawTextObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="1520" y="80" width="160" height="390" as="geometry"/>
                </mxCell>
                <mxCell id="457" value="+ get text: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="26" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="177" value="+ set text: void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="52" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="459" value="+ get font: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="78" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="461" value="+ set font: void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="104" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="460" value="+ set textAlign: void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="130" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="178" value="+ get textAlign: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="156" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="462" value="+ set textBaseline: void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="182" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="463" value="+ get textBaseline: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="208" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="465" value="+ set fillStyle: void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="234" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="466" value="+ get fillStyle: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="260" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="467" value="+ set strokeStyle: void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="286" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="179" value="+ get strokeStyle: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="312" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="468" value="+ set textMetrics: void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="338" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="180" value="+ get textMetrics: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="176" vertex="1">
                    <mxGeometry y="364" width="160" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="190" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0.999;exitY=0.011;exitDx=0;exitDy=0;labelBackgroundColor=#18141D;exitPerimeter=0;entryX=0.001;entryY=0.051;entryDx=0;entryDy=0;entryPerimeter=0;endFill=0;startArrow=classic;startFill=1;" parent="1" source="168" target="176" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1080" y="545" as="sourcePoint"/>
                        <mxPoint x="1510" y="90" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1380" y="595"/>
                            <mxPoint x="1380" y="470"/>
                            <mxPoint x="1510" y="470"/>
                            <mxPoint x="1510" y="100"/>
                            <mxPoint x="1520" y="100"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="193" value="#DrawImageObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" parent="1" vertex="1">
                    <mxGeometry x="1100" y="30" width="170" height="474" as="geometry"/>
                </mxCell>
                <mxCell id="196" value="- key: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="193" vertex="1">
                    <mxGeometry y="26" width="170" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="444" value="- imageIndex: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="193" vertex="1">
                    <mxGeometry y="52" width="170" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="445" value="- width: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="193" vertex="1">
                    <mxGeometry y="78" width="170" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="448" value="+ width: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="193" vertex="1">
                    <mxGeometry y="104" width="170" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="446" value="- height: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="193" vertex="1">
                    <mxGeometry y="130" width="170" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="447" value="+ height: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="193" vertex="1">
                    <mxGeometry y="156" width="170" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="449" value="+ isAnimations: boolean" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="193" vertex="1">
                    <mxGeometry y="182" width="170" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="570" value="- animations: Map&lt;string, AnimationEvent&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="193" vertex="1">
                    <mxGeometry y="208" width="170" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="450" value="+ boundaries: Array&lt;Vertex&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="193" vertex="1">
                    <mxGeometry y="234" width="170" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="451" value="+ addAnimation(eventName,&#10;   animationSpriteIndexes): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="193" vertex="1">
                    <mxGeometry y="260" width="170" height="46" as="geometry"/>
                </mxCell>
                <mxCell id="455" value="+ removeAllAnimations(): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="193" vertex="1">
                    <mxGeometry y="306" width="170" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="452" value="+ emit(eventName, &#10;   ...eventParams):void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="193" vertex="1">
                    <mxGeometry y="336" width="170" height="46" as="geometry"/>
                </mxCell>
                <mxCell id="453" value="+ addEventListener(eventName,&#10;listener, options):void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="193" vertex="1">
                    <mxGeometry y="382" width="170" height="46" as="geometry"/>
                </mxCell>
                <mxCell id="454" value="+ removeEventListener(&#10;eventName, listener, options):void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="193" vertex="1">
                    <mxGeometry y="428" width="170" height="46" as="geometry"/>
                </mxCell>
                <mxCell id="200" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;labelBackgroundColor=#18141D;entryX=1.002;entryY=0.03;entryDx=0;entryDy=0;entryPerimeter=0;endFill=0;startArrow=classic;startFill=1;" parent="1" target="193" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1230" y="610" as="sourcePoint"/>
                        <mxPoint x="1450" y="40" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1280" y="610"/>
                            <mxPoint x="1280" y="44"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="207" value="#Logger" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="10" y="842" width="220" height="52" as="geometry"/>
                </mxCell>
                <mxCell id="210" value="+ debug(...args):void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="207" vertex="1">
                    <mxGeometry y="26" width="220" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="235" value="#INetwork" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="110" y="120" width="220" height="130" as="geometry"/>
                </mxCell>
                <mxCell id="250" value="+ isServerConnected: boolean" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="235" vertex="1">
                    <mxGeometry y="26" width="220" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="251" value="+ sendGatherRoomsInfo: void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="235" vertex="1">
                    <mxGeometry y="52" width="220" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="252" value="+ sendCreateOrJoinRoom: void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="235" vertex="1">
                    <mxGeometry y="78" width="220" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="257" value="+ sendMessage: void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="235" vertex="1">
                    <mxGeometry y="104" width="220" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="264" value="#ISystemAudio" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="60" y="-110" width="270" height="182" as="geometry"/>
                </mxCell>
                <mxCell id="499" value="constructor(iLoader:assetsm(AssetsManager))" style="text;strokeColor=#808080;fillColor=#FFFFFF;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="264" vertex="1">
                    <mxGeometry y="26" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="268" value="+ set voulme(value:number)" style="text;strokeColor=#808080;fillColor=#FFFFFF;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="264" vertex="1">
                    <mxGeometry y="52" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="275" value="+ get voulme()" style="text;strokeColor=#808080;fillColor=#FFFFFF;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="264" vertex="1">
                    <mxGeometry y="78" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="500" value="+ registerAudio(name:string)" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="264" vertex="1">
                    <mxGeometry y="104" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="274" value="+ getAudio(name:string)" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="264" vertex="1">
                    <mxGeometry y="130" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="269" value="+ getAudioCloned(name:string)" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="264" vertex="1">
                    <mxGeometry y="156" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="281" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=none;endFill=0;endSize=12;startArrow=diamondThin;startFill=1;startSize=12;entryX=1.006;entryY=0.065;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="288" target="264" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="360" y="309"/>
                            <mxPoint x="360" y="-98"/>
                        </Array>
                        <mxPoint x="510" y="160" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="294" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=1.011;entryY=0.081;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=none;endFill=0;endSize=12;startArrow=diamondThin;startFill=1;startSize=12;" parent="1" source="289" target="235" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="40" y="430" as="sourcePoint"/>
                        <mxPoint x="100" y="20" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="370" y="361"/>
                            <mxPoint x="370" y="130"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="360" value="#DrawObjectFactory" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="740" y="174" width="310" height="304" as="geometry"/>
                </mxCell>
                <mxCell id="627" value="+ get stageData: GameStageData" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="360" vertex="1">
                    <mxGeometry y="26" width="310" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="540" value="+ tiledLayer(layerKey, tilemapKey, setBoundaries, &#10;    shapeMask): #DrawTiledLayer" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="360" vertex="1">
                    <mxGeometry y="52" width="310" height="46" as="geometry"/>
                </mxCell>
                <mxCell id="365" value="+ image(x, y, width, height, key, imageIndex, &#10;boundaries): #DrawImageObject" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="360" vertex="1">
                    <mxGeometry y="98" width="310" height="46" as="geometry"/>
                </mxCell>
                <mxCell id="364" value="+ text(x,y, text, font, color): #DrawTextObject" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="360" vertex="1">
                    <mxGeometry y="144" width="310" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="363" value="+ rect(x,y, width, height, backgroundColor): #DrawRectObject" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="360" vertex="1">
                    <mxGeometry y="170" width="310" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="369" value="+ conus(x,y, radius, bgColor, angle): #DrawConusObject" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="360" vertex="1">
                    <mxGeometry y="196" width="310" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="371" value="+ circle(x,y, radius, bgColor): #DrawCircleObject" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="360" vertex="1">
                    <mxGeometry y="226" width="310" height="28" as="geometry"/>
                </mxCell>
                <mxCell id="373" value="+ line(vertices, bgColor): #DrawLineObject" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="360" vertex="1">
                    <mxGeometry y="254" width="310" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="375" value="+ polygon(vertices, bgColor): #DrawPolygonObject" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="360" vertex="1">
                    <mxGeometry y="280" width="310" height="24" as="geometry"/>
                </mxCell>
                <mxCell id="377" value="" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=none;endFill=0;jumpSize=16;endSize=12;startArrow=diamondThin;startFill=1;startSize=12;" parent="1" source="46" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="280" y="721"/>
                            <mxPoint x="280" y="670"/>
                            <mxPoint x="20" y="670"/>
                            <mxPoint x="20" y="280"/>
                        </Array>
                        <mxPoint x="30" y="280" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="408" value="#DrawConusObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="1420" y="670" width="230" height="104" as="geometry"/>
                </mxCell>
                <mxCell id="409" value="+ get vertices: Array&lt;Vertex&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="408" vertex="1">
                    <mxGeometry y="26" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="410" value="+ set vertices(value: Array&lt;Vertex&gt;):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="408" vertex="1">
                    <mxGeometry y="52" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="412" value="+ get radius():number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="408" vertex="1">
                    <mxGeometry y="78" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="436" value="#DrawPolygonObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="1420" y="1000" width="230" height="78" as="geometry"/>
                </mxCell>
                <mxCell id="437" value="+ get vertices: Array&lt;Vertex&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="436" vertex="1">
                    <mxGeometry y="26" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="438" value="+ set vertices(value: Array&lt;Vertex&gt;):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="436" vertex="1">
                    <mxGeometry y="52" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="441" value="#DrawLineObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="1420" y="910" width="230" height="78" as="geometry"/>
                </mxCell>
                <mxCell id="442" value="+ get vertices: Array&lt;Vertex&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="441" vertex="1">
                    <mxGeometry y="26" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="443" value="+ set vertices(value: Array&lt;Vertex&gt;):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="441" vertex="1">
                    <mxGeometry y="52" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="478" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0.999;exitY=0.034;exitDx=0;exitDy=0;labelBackgroundColor=#18141D;exitPerimeter=0;entryX=-0.001;entryY=0.189;entryDx=0;entryDy=0;entryPerimeter=0;endFill=0;startArrow=classic;startFill=1;" parent="1" source="168" target="408" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1140.3999999999999" y="232.08999999999992" as="sourcePoint"/>
                        <mxPoint x="1285.16" y="197.40999999999997" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1310" y="606"/>
                            <mxPoint x="1310" y="690"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="481" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=1.002;exitY=0.042;exitDx=0;exitDy=0;labelBackgroundColor=#18141D;exitPerimeter=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=0;startArrow=classic;startFill=1;" parent="1" source="168" target="441" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1139.9999999999998" y="229.74" as="sourcePoint"/>
                        <mxPoint x="1240" y="700" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1290" y="610"/>
                            <mxPoint x="1290" y="930"/>
                            <mxPoint x="1419" y="930"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="484" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=1.002;exitY=0.028;exitDx=0;exitDy=0;labelBackgroundColor=#18141D;exitPerimeter=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=0;startArrow=classic;startFill=1;" parent="1" source="168" target="436" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1139.2" y="231.62" as="sourcePoint"/>
                        <mxPoint x="1390" y="940" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1270" y="603"/>
                            <mxPoint x="1270" y="1020"/>
                            <mxPoint x="1420" y="1020"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="487" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;labelBackgroundColor=#18141D;exitX=1.001;exitY=0.018;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.091;entryDx=0;entryDy=0;entryPerimeter=0;endFill=0;startArrow=classic;startFill=1;" parent="1" source="168" target="469" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1230" y="530" as="sourcePoint"/>
                        <mxPoint x="1419" y="490" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1400" y="599"/>
                            <mxPoint x="1400" y="495"/>
                            <mxPoint x="1419" y="495"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="469" value="#DrawRectObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="1420" y="478" width="230" height="182" as="geometry"/>
                </mxCell>
                <mxCell id="470" value="+ get vertices: Array&lt;Vertex&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="469" vertex="1">
                    <mxGeometry y="26" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="471" value="+ set vertices(value: Array&lt;Vertex&gt;):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="469" vertex="1">
                    <mxGeometry y="52" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="475" value="+ get width():number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="469" vertex="1">
                    <mxGeometry y="78" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="473" value="+ set width(value: number):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="469" vertex="1">
                    <mxGeometry y="104" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="476" value="+ get height():number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="469" vertex="1">
                    <mxGeometry y="130" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="477" value="+ set height(value: number):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="469" vertex="1">
                    <mxGeometry y="156" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="501" value="Green classes could be extended and include custom logic" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#008a00;fontColor=#ffffff;strokeColor=#005700;" parent="1" vertex="1">
                    <mxGeometry x="10" y="910" width="230" height="50" as="geometry"/>
                </mxCell>
                <mxCell id="518" style="edgeStyle=none;html=1;exitX=1;exitY=0.589;exitDx=0;exitDy=0;exitPerimeter=0;endArrow=none;endFill=0;endSize=12;startArrow=diamondThin;startFill=1;startSize=12;entryX=-0.003;entryY=0.087;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="514" target="17" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="400" y="90" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="400" y="413"/>
                            <mxPoint x="400" y="74"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="520" value="" style="edgeStyle=none;html=1;strokeColor=default;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=-0.001;exitY=0.043;exitDx=0;exitDy=0;exitPerimeter=0;endArrow=none;endFill=0;endSize=12;dashed=1;startArrow=open;startFill=0;startSize=12;" parent="1" source="13" target="41" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="400" y="493"/>
                            <mxPoint x="400" y="753"/>
                        </Array>
                        <mxPoint x="300" y="532" as="sourcePoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="17" value="#IRender" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="420" y="60" width="270" height="160" as="geometry"/>
                </mxCell>
                <mxCell id="358" value="+ get canvas: HTMLCanvasElement" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="17" vertex="1">
                    <mxGeometry y="26" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="529" value="+ get stageData: GameStageData" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="17" vertex="1">
                    <mxGeometry y="52" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="660" value="- renderLoopInstance: RenderLoop&#10;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="17" vertex="1">
                    <mxGeometry y="78" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="671" value="- webGlEngine: WebGlEngine&#10;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" vertex="1" parent="17">
                    <mxGeometry y="104" width="270" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="216" value="+ setCanvasSize(width,height): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" parent="17" vertex="1">
                    <mxGeometry y="130" width="270" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="524" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.999;entryY=0.034;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;endSize=12;startArrow=diamondThin;startFill=0;startSize=12;" parent="1" source="382" target="80" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="390" y="470" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="690" y="517"/>
                            <mxPoint x="690" y="490"/>
                            <mxPoint x="690" y="460"/>
                            <mxPoint x="410" y="460"/>
                            <mxPoint x="410" y="280"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="526" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.001;entryY=0.038;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;endSize=12;startArrow=diamondThin;startFill=1;startSize=12;" parent="1" source="357" target="23" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="530" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.005;entryY=0.037;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;endSize=12;startArrow=diamondThin;startFill=1;startSize=12;" parent="1" source="538" target="360" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="730" y="220" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="380" y="439"/>
                            <mxPoint x="380" y="220"/>
                            <mxPoint x="380" y="50"/>
                            <mxPoint x="400" y="50"/>
                            <mxPoint x="720" y="50"/>
                            <mxPoint x="720" y="190"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="532" value="#IExtension" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="290" y="830" width="250" height="260" as="geometry"/>
                </mxCell>
                <mxCell id="534" value="+ registerDrawObject(name:string, &#10;    createIntanceMethod: function)" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="532" vertex="1">
                    <mxGeometry y="26" width="250" height="38" as="geometry"/>
                </mxCell>
                <mxCell id="535" value="+ registerAndCompileWebGlProgram(&#10;programName:string,&#10;vertexShader:string,&#10;fragmentShader:string,&#10;uVars:Array&lt;string&gt;,&#10;aVars:Array&lt;string&gt;&#10;): Promise" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="532" vertex="1">
                    <mxGeometry y="64" width="250" height="116" as="geometry"/>
                </mxCell>
                <mxCell id="536" value="+ registerRenderIntit(method:function): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="532" vertex="1">
                    <mxGeometry y="180" width="250" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="537" value="+ registerObjectRender(objectClassName:&#10;string, objectrenderMethod:function,&#10;): void" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="532" vertex="1">
                    <mxGeometry y="206" width="250" height="54" as="geometry"/>
                </mxCell>
                <mxCell id="539" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.006;entryY=0.04;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;endSize=12;startArrow=diamondThin;startFill=1;startSize=12;" parent="1" source="337" target="532" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="380" y="465"/>
                            <mxPoint x="380" y="810"/>
                            <mxPoint x="270" y="810"/>
                            <mxPoint x="270" y="840"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="541" value="#DrawTiledLayer" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="740" y="20" width="300" height="130" as="geometry"/>
                </mxCell>
                <mxCell id="542" value="+ get layerKey: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="541" vertex="1">
                    <mxGeometry y="26" width="300" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="543" value="+ get tilemapKey: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="541" vertex="1">
                    <mxGeometry y="52" width="300" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="634" value="+ tilesets: Array&lt;Tileset&gt;&#10;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="541" vertex="1">
                    <mxGeometry y="78" width="300" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="643" value="+ layerData: LayerData&#10;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="541" vertex="1">
                    <mxGeometry y="104" width="300" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="546" value="#AnimationEvent&#10;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="1300" y="30" width="190" height="182" as="geometry"/>
                </mxCell>
                <mxCell id="547" value="+ get name: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="546" vertex="1">
                    <mxGeometry y="26" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="550" value="+ get isActive: boolean" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="546" vertex="1">
                    <mxGeometry y="52" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="548" value="+ get currentSprite: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="546" vertex="1">
                    <mxGeometry y="78" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="569" value="+ iterateAnimationIndex(): void" style="text;strokeColor=#666666;fillColor=#FFF2CC;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="546" vertex="1">
                    <mxGeometry y="104" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="566" value="+ activateAnimation():void" style="text;strokeColor=#666666;fillColor=#FFF2CC;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="546" vertex="1">
                    <mxGeometry y="130" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="567" value="+ deactivateAnimation(): void" style="text;strokeColor=#666666;fillColor=#FFF2CC;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="546" vertex="1">
                    <mxGeometry y="156" width="190" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="576" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.002;entryY=0.106;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;endSize=12;startArrow=diamondThin;startFill=1;startSize=12;" parent="1" source="570" target="546" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="1290" y="250"/>
                            <mxPoint x="1290" y="210"/>
                            <mxPoint x="1290" y="150"/>
                            <mxPoint x="1290" y="70"/>
                            <mxPoint x="1290" y="50"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="577" style="edgeStyle=none;html=1;entryX=0.003;entryY=0.054;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=none;endFill=0;endSize=12;startArrow=diamondThin;startFill=1;startSize=12;" parent="1" source="639" target="546" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1030" y="106.99999999999977" as="sourcePoint"/>
                        <Array as="points">
                            <mxPoint x="1080" y="-80"/>
                            <mxPoint x="1080" y="20"/>
                            <mxPoint x="1290" y="20"/>
                            <mxPoint x="1290" y="40"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="578" value="" style="edgeStyle=none;html=1;entryX=-0.003;entryY=0.032;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=open;endFill=0;endSize=12;dashed=1;" parent="1" source="365" target="193" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1060" y="229" as="sourcePoint"/>
                        <Array as="points">
                            <mxPoint x="1070" y="295"/>
                            <mxPoint x="1070" y="45"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="579" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.001;entryY=0.083;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=open;endFill=0;endSize=12;dashed=1;" parent="1" source="540" target="541" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="830" y="130" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1060" y="250"/>
                            <mxPoint x="1060" y="200"/>
                            <mxPoint x="1060" y="160"/>
                            <mxPoint x="1040" y="160"/>
                            <mxPoint x="730" y="160"/>
                            <mxPoint x="730" y="31"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="581" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.004;entryY=0.028;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=open;endFill=0;endSize=12;dashed=1;" parent="1" source="364" target="176" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1460" y="260" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1090" y="330"/>
                            <mxPoint x="1090" y="430"/>
                            <mxPoint x="1090" y="510"/>
                            <mxPoint x="1300" y="510"/>
                            <mxPoint x="1300" y="450"/>
                            <mxPoint x="1500" y="450"/>
                            <mxPoint x="1500" y="90"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="582" value="" style="edgeStyle=none;html=1;entryX=0;entryY=0.039;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endSize=12;endArrow=open;endFill=0;dashed=1;" parent="1" source="363" target="469" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1360" y="510" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1080" y="357"/>
                            <mxPoint x="1080" y="520"/>
                            <mxPoint x="1310" y="520"/>
                            <mxPoint x="1320" y="510"/>
                            <mxPoint x="1320" y="485"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="583" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.004;entryY=0.095;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=open;endFill=0;endSize=12;dashed=1;" parent="1" source="369" target="408" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="1070" y="380"/>
                            <mxPoint x="1070" y="530"/>
                            <mxPoint x="1360" y="530"/>
                            <mxPoint x="1370" y="530"/>
                            <mxPoint x="1370" y="550"/>
                            <mxPoint x="1370" y="680"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="584" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.004;entryY=0.052;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=open;endFill=0;endSize=12;dashed=1;" parent="1" source="371" target="585" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1370" y="690" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1060" y="414"/>
                            <mxPoint x="1060" y="540"/>
                            <mxPoint x="1340" y="540"/>
                            <mxPoint x="1360" y="540"/>
                            <mxPoint x="1360" y="560"/>
                            <mxPoint x="1360" y="795"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="585" value="#DrawCircleObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="1420" y="790" width="230" height="104" as="geometry"/>
                </mxCell>
                <mxCell id="586" value="+ get vertices: Array&lt;Vertex&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="585" vertex="1">
                    <mxGeometry y="26" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="587" value="+ set vertices(value: Array&lt;Vertex&gt;):void" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="585" vertex="1">
                    <mxGeometry y="52" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="588" value="+ get radius():number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="585" vertex="1">
                    <mxGeometry y="78" width="230" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="589" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=1.001;exitY=0.024;exitDx=0;exitDy=0;labelBackgroundColor=#18141D;exitPerimeter=0;entryX=-0.001;entryY=0.183;entryDx=0;entryDy=0;entryPerimeter=0;endFill=0;startArrow=classic;startFill=1;" parent="1" source="168" target="585" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1239.8" y="615.9799999999999" as="sourcePoint"/>
                        <mxPoint x="1429.77" y="699.656" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1320" y="601"/>
                            <mxPoint x="1320" y="809"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="592" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.456;exitDx=0;exitDy=0;entryX=-0.003;entryY=0.146;entryDx=0;entryDy=0;entryPerimeter=0;exitPerimeter=0;endArrow=open;endFill=0;endSize=12;dashed=1;" parent="1" source="373" target="441" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1350" y="630" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1060" y="440"/>
                            <mxPoint x="1060" y="480"/>
                            <mxPoint x="1060" y="550"/>
                            <mxPoint x="1350" y="550"/>
                            <mxPoint x="1350" y="570"/>
                            <mxPoint x="1350" y="920"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="593" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.016;entryY=0.143;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=open;endFill=0;endSize=12;dashed=1;" parent="1" source="375" target="436" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="1360" y="850" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="1060" y="470"/>
                            <mxPoint x="1060" y="560"/>
                            <mxPoint x="1340" y="560"/>
                            <mxPoint x="1340" y="1010"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="595" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.003;entryY=0.028;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;endSize=12;startArrow=diamondThin;startFill=0;startSize=12;" parent="1" source="529" target="23" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="720" y="490" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="710" y="125"/>
                            <mxPoint x="710" y="534"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="596" value="&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
                    <mxGeometry x="10" y="970" width="230" height="130" as="geometry"/>
                </mxCell>
                <mxCell id="600" style="edgeStyle=none;jumpSize=16;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;endSize=12;" parent="1" source="598" target="599" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="598" value="A" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="20" y="980" width="20" height="10" as="geometry"/>
                </mxCell>
                <mxCell id="599" value="B" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="70" y="980" width="20" height="10" as="geometry"/>
                </mxCell>
                <mxCell id="601" style="edgeStyle=none;jumpSize=16;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=diamondThin;endFill=1;endSize=12;" parent="1" source="602" target="603" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="602" value="A" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="20" y="1040" width="20" height="10" as="geometry"/>
                </mxCell>
                <mxCell id="603" value="B" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="70" y="1040" width="20" height="10" as="geometry"/>
                </mxCell>
                <mxCell id="604" style="edgeStyle=none;jumpSize=16;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=diamondThin;endFill=0;endSize=12;" parent="1" source="605" target="606" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="605" value="A" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="20" y="1010" width="20" height="10" as="geometry"/>
                </mxCell>
                <mxCell id="606" value="B" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="70" y="1010" width="20" height="10" as="geometry"/>
                </mxCell>
                <mxCell id="607" value="Inheritance" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
                    <mxGeometry x="105" y="970" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="608" value="Aggregation" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
                    <mxGeometry x="105" y="1000" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="609" value="Composition" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
                    <mxGeometry x="105" y="1030" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="612" style="edgeStyle=none;jumpSize=16;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=open;endFill=0;endSize=12;dashed=1;" parent="1" source="613" target="614" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="613" value="A" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="20" y="1070" width="20" height="10" as="geometry"/>
                </mxCell>
                <mxCell id="614" value="B" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
                    <mxGeometry x="70" y="1070" width="20" height="10" as="geometry"/>
                </mxCell>
                <mxCell id="615" value="Dependency" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
                    <mxGeometry x="105" y="1060" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="625" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;endArrow=open;endFill=0;" parent="1" source="120" target="624" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="710" y="745"/>
                            <mxPoint x="710" y="560"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="628" value="" style="edgeStyle=none;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.005;entryY=0.017;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;endSize=12;startArrow=diamondThin;startFill=0;startSize=12;" parent="1" source="627" target="23" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="750" y="546.732" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="720" y="213"/>
                            <mxPoint x="720" y="530"/>
                        </Array>
                        <mxPoint x="710" y="305" as="sourcePoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="635" value="#Tileset" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="740" y="-144" width="300" height="104" as="geometry"/>
                </mxCell>
                <mxCell id="636" value="+ get name: string" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="635" vertex="1">
                    <mxGeometry y="26" width="300" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="639" value="- animations: Map&lt;string, AnimationEvent&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="635" vertex="1">
                    <mxGeometry y="52" width="300" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="640" value="- tiledBoundaries: Map&lt;string, objectgroup&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="635" vertex="1">
                    <mxGeometry y="78" width="300" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="641" value="" style="edgeStyle=none;html=1;entryX=1.002;entryY=0.068;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryPerimeter=0;endArrow=diamondThin;endFill=1;endSize=12;" parent="1" source="634" target="635" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="1060" y="110"/>
                            <mxPoint x="1060" y="-137"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="644" value="#LayerData" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="1110" y="-144" width="300" height="130" as="geometry"/>
                </mxCell>
                <mxCell id="645" value="+ get data: Array&lt;number&gt;" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="644" vertex="1">
                    <mxGeometry y="26" width="300" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="646" value="+ get ellipseBoundariesLen: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="644" vertex="1">
                    <mxGeometry y="52" width="300" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="650" value="+ get pointBoundariesLen: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="644" vertex="1">
                    <mxGeometry y="78" width="300" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="651" value="+ get polygonBoundariesLen: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="644" vertex="1">
                    <mxGeometry y="104" width="300" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="649" value="" style="edgeStyle=none;html=1;endArrow=diamondThin;endFill=1;endSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.005;entryY=0.084;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="643" target="644" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="1090" y="137"/>
                            <mxPoint x="1090" y="-133"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="661" value="#RenderLoop" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
                    <mxGeometry x="440" y="230" width="250" height="82" as="geometry"/>
                </mxCell>
                <mxCell id="664" value="- get stageData: GameStageData" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" parent="661" vertex="1">
                    <mxGeometry y="26" width="250" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="680" value="+ renderLoopDebug(): RenderLoopDebug" style="text;strokeColor=#d6b656;fillColor=#fff2cc;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#1A1A1A;" vertex="1" parent="661">
                    <mxGeometry y="52" width="250" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="666" value="" style="edgeStyle=none;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=12;startSize=12;startArrow=diamondThin;startFill=1;targetPerimeterSpacing=12;sourcePerimeterSpacing=12;" parent="1" source="660" target="661" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <Array as="points">
                            <mxPoint x="410" y="150"/>
                            <mxPoint x="410" y="243"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="667" value="#RenderLoopDebug" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" vertex="1" parent="1">
                    <mxGeometry x="440" y="320" width="250" height="52" as="geometry"/>
                </mxCell>
                <mxCell id="668" value="+ get drawCalls: number" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" vertex="1" parent="667">
                    <mxGeometry y="26" width="250" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="669" value="#WebGlEngine&#10;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" vertex="1" parent="1">
                    <mxGeometry x="440" y="390" width="250" height="52" as="geometry"/>
                </mxCell>
                <mxCell id="670" value="- loopDebug: RenderLoopDebug" style="text;strokeColor=#666666;fillColor=#f5f5f5;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#333333;" vertex="1" parent="669">
                    <mxGeometry y="26" width="250" height="26" as="geometry"/>
                </mxCell>
                <mxCell id="673" value="" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1.005;entryY=0.206;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;endSize=12;startSize=12;targetPerimeterSpacing=12;startArrow=diamondThin;startFill=1;sourcePerimeterSpacing=12;" edge="1" parent="1" source="671" target="669">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="700" y="380" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="700" y="177"/>
                            <mxPoint x="700" y="400"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="676" value="" style="edgeStyle=none;html=1;entryX=-0.003;entryY=0.37;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=12;startSize=12;targetPerimeterSpacing=12;startArrow=diamondThin;startFill=0;sourcePerimeterSpacing=12;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryPerimeter=0;" edge="1" parent="1" source="670" target="667">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="440" y="409" as="sourcePoint"/>
                        <mxPoint x="420" y="300" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="420" y="429"/>
                            <mxPoint x="420" y="340"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="681" value="" style="edgeStyle=none;html=1;entryX=0;entryY=0.205;entryDx=0;entryDy=0;endArrow=none;endFill=0;endSize=12;startSize=12;targetPerimeterSpacing=12;startArrow=diamondThin;startFill=1;sourcePerimeterSpacing=12;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryPerimeter=0;" edge="1" parent="1" source="680" target="667">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="450" y="438.9999999999998" as="sourcePoint"/>
                        <mxPoint x="450" y="343" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="420" y="300"/>
                            <mxPoint x="420" y="330"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>