1
0

Fix chapter 3 (normalization)

anybody can find love
This commit is contained in:
2025-02-19 09:13:57 +02:00
parent eb21214ba9
commit 821591d16d
8 changed files with 590 additions and 578 deletions

View File

@ -1,11 +1,11 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.0.9 Chrome/128.0.6613.186 Electron/32.3.0 Safari/537.36" version="26.0.9">
<diagram name="Page-1" id="e56a1550-8fbb-45ad-956c-1786394a9013">
<mxGraphModel dx="1572" dy="2484" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<mxGraphModel dx="1434" dy="2607" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="TstbxcchZz1pR3d-lyST-31" value="Packages" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="470" y="-760" width="160" height="274" as="geometry" />
<mxGeometry x="480" y="-1349" width="160" height="274" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-32" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-31" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -55,10 +55,10 @@
<mxCell id="TstbxcchZz1pR3d-lyST-62" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-61" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-47" value="updated_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-31">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-47" value="updated_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-31" vertex="1">
<mxGeometry y="238" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-48" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-47">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-48" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-47" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-40" value="" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-31" vertex="1">
@ -68,7 +68,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-70" value="Users" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="260" y="-1070" width="150" height="246" as="geometry" />
<mxGeometry x="270" y="-1639" width="150" height="220" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-71" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="26" width="150" height="30" as="geometry" />
@ -76,56 +76,50 @@
<mxCell id="TstbxcchZz1pR3d-lyST-72" value="PK" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-71" vertex="1" connectable="0">
<mxGeometry width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-93" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-31" value="name" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="56" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-94" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-93" vertex="1" connectable="0">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-32" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-31" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-31" value="name" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-33" value="email" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="82" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-32" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-31">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-34" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-33" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-33" value="email" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-35" value="password" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="108" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-34" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-33">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-36" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-35" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-35" value="password" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-37" value="last_used" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="134" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-36" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-35">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-38" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-37" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-37" value="last_used" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-39" value="created_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="160" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-38" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-37">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-40" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-39" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-39" value="created_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-41" value="updated_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="186" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-40" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-39">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-41" value="updated_at" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-70">
<mxGeometry y="212" width="150" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-42" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-41">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-42" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-41" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-114" value="" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-70" vertex="1">
<mxGeometry y="238" width="150" height="8" as="geometry" />
<mxGeometry y="212" width="150" height="8" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-115" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-114" vertex="1" connectable="0">
<mxGeometry width="30" height="8" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-116" value="PackageBaseRoles" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="470" y="-890" width="160" height="118" as="geometry" />
<mxGeometry x="480" y="-1510" width="160" height="118" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-117" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-116" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -152,7 +146,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-129" value="PackageBaseUserRoles" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14" parent="1" vertex="1">
<mxGeometry x="260" y="-810" width="160" height="142" as="geometry" />
<mxGeometry x="270" y="-1399" width="160" height="142" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-130" value="user" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=60;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-129" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -179,7 +173,7 @@
<mxGeometry width="56" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-140" value="DependencyTypes" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="470" y="-1030" width="160" height="92" as="geometry" />
<mxGeometry x="480" y="-1639" width="160" height="92" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-141" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-140" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -200,7 +194,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-150" value="RelationTypes" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="700" y="-810" width="160" height="92" as="geometry" />
<mxGeometry x="720" y="-1399" width="160" height="92" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-151" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-150" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -221,7 +215,7 @@
<mxGeometry width="30" height="10" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-157" value="PackageBases" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="260" y="-656" width="160" height="170" as="geometry" />
<mxGeometry x="270" y="-1245" width="160" height="170" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-158" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-157" vertex="1">
<mxGeometry y="26" width="160" height="30" as="geometry" />
@ -261,15 +255,15 @@
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-170" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=ERmandOne;startFill=0;endArrow=ERzeroToMany;endFill=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-158" target="TstbxcchZz1pR3d-lyST-34" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="440" y="-630" as="sourcePoint" />
<mxPoint x="450" y="-1219" as="sourcePoint" />
<Array as="points">
<mxPoint x="450" y="-615" />
<mxPoint x="450" y="-691" />
<mxPoint x="460" y="-1204" />
<mxPoint x="460" y="-1280" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-171" value="PackageDependencies" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="670" y="-1057" width="200" height="220" as="geometry" />
<mxGeometry x="680" y="-1646" width="200" height="220" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-172" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-171" vertex="1">
<mxGeometry y="26" width="200" height="30" as="geometry" />
@ -283,10 +277,10 @@
<mxCell id="TstbxcchZz1pR3d-lyST-185" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-184" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-23" value="requirement" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-171">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-23" value="requirement" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-171" vertex="1">
<mxGeometry y="82" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-24" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-23">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-24" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-23" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-176" value="description" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-171" vertex="1">
@ -295,10 +289,10 @@
<mxCell id="TstbxcchZz1pR3d-lyST-177" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-176" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-29" value="dependency_type" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-171">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-29" value="dependency_type" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-171" vertex="1">
<mxGeometry y="134" width="200" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-30" value="FK" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-29">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-30" value="FK" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-29" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-174" value="package" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-171" vertex="1">
@ -314,7 +308,7 @@
<mxGeometry width="30" height="34" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-188" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); font-size: 12px; text-wrap: wrap;&quot;&gt;&lt;font face=&quot;Helvetica&quot;&gt;PackageRelations&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=14;swimlaneLine=1;" parent="1" vertex="1">
<mxGeometry x="690" y="-686" width="180" height="200" as="geometry" />
<mxGeometry x="700" y="-1275" width="180" height="200" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-189" value="id" style="shape=partialRectangle;top=0;left=0;right=0;bottom=1;html=1;align=left;verticalAlign=middle;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;fontStyle=5;" parent="TstbxcchZz1pR3d-lyST-188" vertex="1">
<mxGeometry y="26" width="180" height="30" as="geometry" />
@ -340,25 +334,25 @@
<mxCell id="TstbxcchZz1pR3d-lyST-192" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="TstbxcchZz1pR3d-lyST-191" vertex="1" connectable="0">
<mxGeometry width="30" height="26" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-1" value="requirement" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-188">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-1" value="requirement" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-188" vertex="1">
<mxGeometry y="140" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-2" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-1">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-2" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-1" vertex="1" connectable="0">
<mxGeometry width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-3" value="relation_package_name" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" vertex="1" parent="TstbxcchZz1pR3d-lyST-188">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-3" value="relation_package_name" style="shape=partialRectangle;top=0;left=0;right=0;bottom=0;html=1;align=left;verticalAlign=top;fillColor=none;spacingLeft=34;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;" parent="TstbxcchZz1pR3d-lyST-188" vertex="1">
<mxGeometry y="170" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="j6MDIjJCqvpe9HdPzyI4-4" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" vertex="1" connectable="0" parent="j6MDIjJCqvpe9HdPzyI4-3">
<mxCell id="j6MDIjJCqvpe9HdPzyI4-4" value="" style="shape=partialRectangle;top=0;left=0;bottom=0;html=1;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;" parent="j6MDIjJCqvpe9HdPzyI4-3" vertex="1" connectable="0">
<mxGeometry width="30" height="30" as="geometry" />
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-203" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-132" target="TstbxcchZz1pR3d-lyST-158" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="440" y="-709" />
<mxPoint x="440" y="-615" />
<mxPoint x="450" y="-1298" />
<mxPoint x="450" y="-1204" />
</Array>
<mxPoint x="170" y="-710" as="sourcePoint" />
<mxPoint x="180" y="-1299" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-204" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=ERmandOne;startFill=0;endArrow=ERzeroToMany;endFill=0;entryX=1.004;entryY=0.627;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="TstbxcchZz1pR3d-lyST-71" target="TstbxcchZz1pR3d-lyST-130" edge="1">
@ -367,43 +361,43 @@
<mxCell id="TstbxcchZz1pR3d-lyST-206" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-193" target="TstbxcchZz1pR3d-lyST-32" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="660" y="-585" />
<mxPoint x="660" y="-719" />
<mxPoint x="670" y="-1174" />
<mxPoint x="670" y="-1308" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-207" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-197" target="TstbxcchZz1pR3d-lyST-151" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="670" y="-614" />
<mxPoint x="670" y="-769" />
<mxPoint x="680" y="-1203" />
<mxPoint x="680" y="-1358" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-208" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="j6MDIjJCqvpe9HdPzyI4-29" target="TstbxcchZz1pR3d-lyST-141" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="650" y="-910" />
<mxPoint x="650" y="-989" />
<mxPoint x="660" y="-1499" />
<mxPoint x="660" y="-1578" />
</Array>
<mxPoint x="1110" y="-650" as="sourcePoint" />
<mxPoint x="670" y="-400" as="targetPoint" />
<mxPoint x="1120" y="-1239" as="sourcePoint" />
<mxPoint x="680" y="-989" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-210" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=ERmandOne;startFill=0;endArrow=ERzeroToMany;endFill=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-32" target="TstbxcchZz1pR3d-lyST-174" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="710" y="-547" as="targetPoint" />
<mxPoint x="720" y="-1136" as="targetPoint" />
<Array as="points">
<mxPoint x="650" y="-719" />
<mxPoint x="650" y="-884" />
<mxPoint x="660" y="-1308" />
<mxPoint x="660" y="-1473" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="TstbxcchZz1pR3d-lyST-212" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=ERmandOne;endFill=0;startArrow=ERzeroToMany;startFill=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="TstbxcchZz1pR3d-lyST-138" target="TstbxcchZz1pR3d-lyST-117" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="450" y="-739" />
<mxPoint x="450" y="-849" />
<mxPoint x="460" y="-1328" />
<mxPoint x="460" y="-1438" />
</Array>
</mxGeometry>
</mxCell>