summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authortest@dangofactory.cos <you@example.com>2026-08-20 16:57:18 +0000
committertest@dangofactory.cos <you@example.com>2026-08-20 16:57:18 +0000
commit50ce5d5e6cd0d720ff437d35eace545816848428 (patch)
treeb59af206a36265cf081945e434900b32b0c43edd /docs
downloadmonocles_mail-50ce5d5e6cd0d720ff437d35eace545816848428.tar.gz
monocles_mail-50ce5d5e6cd0d720ff437d35eace545816848428.tar.bz2
monocles_mail-50ce5d5e6cd0d720ff437d35eace545816848428.zip
Inital
Diffstat (limited to 'docs')
-rw-r--r--docs/DESIGN.md36
-rw-r--r--docs/Modules.pngbin0 -> 170059 bytes
-rw-r--r--docs/ReadEmail.pngbin0 -> 98452 bytes
-rw-r--r--docs/ReadEmailClasses.pngbin0 -> 56368 bytes
-rw-r--r--docs/SendEmail.pngbin0 -> 52901 bytes
-rw-r--r--docs/activity_diagram.graphml936
-rw-r--r--docs/draw.io/CreateAccount.xml1
-rw-r--r--docs/draw.io/ImportExport.xml1
-rw-r--r--docs/draw.io/Modules.xml1
-rw-r--r--docs/draw.io/README.md1
-rw-r--r--docs/draw.io/ReadEmail.xml1
-rw-r--r--docs/draw.io/ReadEmailClasses.xml1
-rw-r--r--docs/draw.io/SendEmail.xml1
-rw-r--r--docs/google-play/full_description.txt14
-rw-r--r--docs/google-play/short_description.txt1
15 files changed, 994 insertions, 0 deletions
diff --git a/docs/DESIGN.md b/docs/DESIGN.md
new file mode 100644
index 0000000..f5445dc
--- /dev/null
+++ b/docs/DESIGN.md
@@ -0,0 +1,36 @@
+# Repository structure
+
+The project is divided into several directories below which are nested gradle projects.
+
+## app
+
+This contains the highest level code such as UI and core logic.
+
+## backend
+
+APIs for sending and receiving messages
+
+## mail
+
+Low level code for dealing with internet mail protocols
+
+## plugins
+
+Additional, standalone, libraries used by K-9
+
+![modules](Modules.png)
+
+# Walkthrough
+
+To help you understand the design, the following sequence diagrams show typical flows through the
+classes. Each class is colour-coded by its top-level project.
+
+## Reading email
+
+![read email sequence](ReadEmail.png)
+
+![read email classes](ReadEmailClasses.png)
+
+## Sending email
+
+![send email sequence](SendEmail.png)
diff --git a/docs/Modules.png b/docs/Modules.png
new file mode 100644
index 0000000..7357613
--- /dev/null
+++ b/docs/Modules.png
Binary files differ
diff --git a/docs/ReadEmail.png b/docs/ReadEmail.png
new file mode 100644
index 0000000..39d57f0
--- /dev/null
+++ b/docs/ReadEmail.png
Binary files differ
diff --git a/docs/ReadEmailClasses.png b/docs/ReadEmailClasses.png
new file mode 100644
index 0000000..f769c65
--- /dev/null
+++ b/docs/ReadEmailClasses.png
Binary files differ
diff --git a/docs/SendEmail.png b/docs/SendEmail.png
new file mode 100644
index 0000000..28c9281
--- /dev/null
+++ b/docs/SendEmail.png
Binary files differ
diff --git a/docs/activity_diagram.graphml b/docs/activity_diagram.graphml
new file mode 100644
index 0000000..05a291a
--- /dev/null
+++ b/docs/activity_diagram.graphml
@@ -0,0 +1,936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
+ <!--Created by yFiles for Java 2.8-->
+ <key for="graphml" id="d0" yfiles.type="resources"/>
+ <key for="port" id="d1" yfiles.type="portgraphics"/>
+ <key for="port" id="d2" yfiles.type="portgeometry"/>
+ <key for="port" id="d3" yfiles.type="portuserdata"/>
+ <key attr.name="url" attr.type="string" for="node" id="d4"/>
+ <key attr.name="description" attr.type="string" for="node" id="d5"/>
+ <key for="node" id="d6" yfiles.type="nodegraphics"/>
+ <key attr.name="Beschreibung" attr.type="string" for="graph" id="d7"/>
+ <key attr.name="url" attr.type="string" for="edge" id="d8"/>
+ <key attr.name="description" attr.type="string" for="edge" id="d9"/>
+ <key for="edge" id="d10" yfiles.type="edgegraphics"/>
+ <graph edgedefault="directed" id="G">
+ <data key="d7"/>
+ <node id="n0">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="577.5003968253968" y="628.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="53.359375" x="46.4453125" y="88.1494140625">Accounts</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n1">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="507.656746031746" y="913.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="56.6875" x="44.78125" y="88.1494140625">FolderList</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n2">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="325.5472222222222" y="1168.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="71.365234375" x="37.4423828125" y="88.1494140625">MessageList</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n3">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="191.25" y="118.61163569794053"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="78.701171875" x="33.7744140625" y="88.1494140625">MessageView</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n4">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="405.0003968253968" y="1468.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="90.71875" x="27.765625" y="88.1494140625">AccountSettings</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n5">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="669.3753968253968" y="1738.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="127.41015625" x="9.419921875" y="88.1494140625">AccountSetupIncoming</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n6">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="596.2503968253968" y="1963.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="127.421875" x="9.4140625" y="88.1494140625">AccountSetupOutgoing</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n7">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="581.2503968253968" y="1468.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="32.0078125" x="57.12109375" y="88.1494140625">Prefs</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n8">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="845.6253968253968" y="1738.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="94.71484375" x="25.767578125" y="88.1494140625">FontSizeSettings</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n9">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="559.6876984126984" y="2204.1116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="120.07421875" x="13.087890625" y="88.1494140625">AccountSetupOptions</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n10">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="912.1876984126984" y="2429.1116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="116.728515625" x="14.7607421875" y="88.1494140625">AccountSetupNames</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n11">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="493.1253968253968" y="1738.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="145.416015625" x="0.4169921875" y="88.1494140625">AccountSetupComposition</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n12">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="751.4376984126984" y="2204.1116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="156.091796875" x="-4.9208984375" y="88.1494140625">AccountSetupCheckSettings</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n13">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="900.0003968253968" y="1168.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="114.0625" x="16.09375" y="88.1494140625">AccountSetupBasics</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n14">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="844.3722222222223" y="1468.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="148.755859375" x="-1.2529296875" y="88.1494140625">AccountSetupAccountType</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n15">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="228.75039682539682" y="1468.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="81.373046875" x="32.4384765625" y="88.1494140625">FolderSettings</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n16">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="210.00039682539682" y="628.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="88.720703125" x="28.7646484375" y="88.1494140625">ChooseAccount</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n17">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="140.62539682539682" y="1738.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="79.375" x="33.4375" y="88.1494140625">ChooseFolder</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n18">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="386.2503968253968" y="628.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="84.05078125" x="31.099609375" y="88.1494140625">ChooseIdentity</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n19">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="316.8753968253968" y="1963.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="63.3671875" x="41.44140625" y="88.1494140625">EditIdentity</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n20">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="15.0" y="118.61163569794053"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="104.728515625" x="20.7607421875" y="88.1494140625">LauncherShortcuts</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n21">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="316.8753968253968" y="1738.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="95.39453125" x="25.427734375" y="88.1494140625">ManageIdentities</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n22">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="276.5626984126984" y="358.6116356979405"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="104.048828125" x="21.1005859375" y="88.1494140625">MessageCompose</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n23">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="58.61163569794053" width="146.25" x="357.1878968253968" y="0.0"/>
+ <y:Fill color="#999999" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="92.037109375" x="27.1064453125" y="19.955231911470264">Other Apps / OS</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n24">
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="195.0" width="146.25" x="401.2503968253968" y="118.61163569794053"/>
+ <y:Fill color="#CCCCCC" transparent="false"/>
+ <y:BorderStyle color="#000000" type="line" width="1.0"/>
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="42.021484375" x="52.1142578125" y="88.1494140625">Search</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <edge id="e0" source="n0" target="n1">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-20.89285714285714" sy="97.5" tx="18.28125" ty="-97.5">
+ <y:Point x="629.7325396825397" y="883.6116356979405"/>
+ <y:Point x="599.062996031746" y="883.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e1" source="n1" target="n2">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-60.9375" sy="97.5" tx="27.421875" ty="-97.5">
+ <y:Point x="519.844246031746" y="1123.6116356979405"/>
+ <y:Point x="426.0940972222222" y="1123.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e2" source="n2" target="n3">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-63.984375" sy="-97.5" tx="0.0" ty="97.5">
+ <y:Point x="334.6878472222222" y="1041.1116356979405"/>
+ <y:Point x="180.00039682539682" y="1041.1116356979405"/>
+ <y:Point x="180.00039682539682" y="343.6116356979405"/>
+ <y:Point x="264.375" y="343.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e3" source="n3" target="n22">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="48.75" sy="97.5" tx="-36.5625" ty="-97.5"/>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e4" source="n2" target="n22">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-45.703125" sy="-97.5" tx="-60.9375" ty="97.5">
+ <y:Point x="352.9690972222222" y="1026.1116356979405"/>
+ <y:Point x="195.00039682539682" y="1026.1116356979405"/>
+ <y:Point x="195.00039682539682" y="568.6116356979405"/>
+ <y:Point x="288.7501984126984" y="568.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e5" source="n0" target="n7">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="41.785714285714334" sy="97.5" tx="48.75" ty="-97.5">
+ <y:Point x="692.4111111111112" y="853.6116356979405"/>
+ <y:Point x="703.1253968253968" y="853.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e6" source="n0" target="n13">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="62.678571428571445" sy="97.5" tx="0.0" ty="-97.5">
+ <y:Point x="713.3039682539683" y="838.6116356979405"/>
+ <y:Point x="973.1253968253968" y="838.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e7" source="n0" target="n4">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="20.89285714285711" sy="97.5" tx="48.75" ty="-97.5">
+ <y:Point x="671.5182539682539" y="1453.6116356979405"/>
+ <y:Point x="526.8753968253968" y="1453.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e8" source="n0" target="n2">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-62.678571428571445" sy="97.5" tx="-9.140625" ty="-97.5">
+ <y:Point x="587.9468253968254" y="853.6116356979405"/>
+ <y:Point x="389.531746031746" y="853.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e9" source="n1" target="n0">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="54.84375" sy="-97.5" tx="0.0" ty="97.5">
+ <y:Point x="635.625496031746" y="898.6116356979405"/>
+ <y:Point x="650.6253968253968" y="898.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e10" source="n1" target="n7">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="60.9375" sy="97.5" tx="0.0" ty="-97.5">
+ <y:Point x="641.719246031746" y="1123.6116356979405"/>
+ <y:Point x="654.3753968253968" y="1123.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e11" source="n1" target="n4">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="36.5625" sy="97.5" tx="0.0" ty="-97.5">
+ <y:Point x="617.344246031746" y="1123.6116356979405"/>
+ <y:Point x="607.9690476190476" y="1123.6116356979405"/>
+ <y:Point x="607.9690476190476" y="1423.6116356979405"/>
+ <y:Point x="478.1253968253968" y="1423.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e12" source="n1" target="n15">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="12.1875" sy="97.5" tx="36.5625" ty="-97.5">
+ <y:Point x="592.9690476190476" y="1408.6116356979405"/>
+ <y:Point x="338.4378968253968" y="1408.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e13" source="n1" target="n22">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-54.84375" sy="-97.5" tx="36.5625" ty="97.5">
+ <y:Point x="525.937996031746" y="838.6116356979405"/>
+ <y:Point x="547.5003968253968" y="838.6116356979405"/>
+ <y:Point x="547.5003968253968" y="583.6116356979405"/>
+ <y:Point x="386.2501984126984" y="583.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e14" source="n1" target="n2">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-36.5625" sy="97.5" tx="45.703125" ty="-97.5">
+ <y:Point x="544.219246031746" y="1138.6116356979405"/>
+ <y:Point x="444.3753472222222" y="1138.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e15" source="n21" target="n19">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="97.5" tx="0.0" ty="-97.5"/>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e16" source="n22" target="n16">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-36.5625" sy="97.5" tx="0.0" ty="-97.5">
+ <y:Point x="313.1251984126984" y="583.6116356979405"/>
+ <y:Point x="283.1253968253968" y="583.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="dashed" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e17" source="n22" target="n18">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="12.1875" sy="97.5" tx="0.0" ty="-97.5">
+ <y:Point x="361.8751984126984" y="598.6116356979405"/>
+ <y:Point x="459.3753968253968" y="598.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="dashed" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e18" source="n22" target="n0">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="60.9375" sy="97.5" tx="-36.5625" ty="-97.5">
+ <y:Point x="410.6251984126984" y="568.6116356979405"/>
+ <y:Point x="614.0628968253968" y="568.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e19" source="n2" target="n17">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-54.84375" sy="97.5" tx="0.0" ty="-97.5">
+ <y:Point x="343.8284722222222" y="1378.6116356979405"/>
+ <y:Point x="213.75039682539682" y="1378.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="dashed" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e20" source="n2" target="n0">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="9.140625" sy="-97.5" tx="-41.78571428571422" ty="97.5">
+ <y:Point x="407.8126984126984" y="868.6116356979405"/>
+ <y:Point x="608.8396825396826" y="868.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e21" source="n2" target="n1">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="63.984375" sy="-97.5" tx="-12.1875" ty="97.5">
+ <y:Point x="462.6565972222222" y="1153.6116356979405"/>
+ <y:Point x="568.594246031746" y="1153.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e22" source="n2" target="n7">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="54.84375" sy="97.5" tx="-48.75" ty="-97.5">
+ <y:Point x="453.5159722222222" y="1438.6116356979405"/>
+ <y:Point x="605.6253968253968" y="1438.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e23" source="n2" target="n4">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="18.28125" sy="97.5" tx="-48.75" ty="-97.5">
+ <y:Point x="416.9534722222222" y="1423.6116356979405"/>
+ <y:Point x="429.3753968253968" y="1423.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e24" source="n2" target="n22">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-27.421875" sy="-97.5" tx="-12.1875" ty="97.5">
+ <y:Point x="371.2503968253968" y="613.6116356979405"/>
+ <y:Point x="337.5001984126984" y="613.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e25" source="n2" target="n15">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-18.28125" sy="97.5" tx="-36.5625" ty="-97.5">
+ <y:Point x="380.3909722222222" y="1393.6116356979405"/>
+ <y:Point x="265.3128968253968" y="1393.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e26" source="n3" target="n17">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-48.75" sy="97.5" tx="-48.75" ty="-97.5">
+ <y:Point x="215.625" y="328.6116356979405"/>
+ <y:Point x="165.00039682539682" y="328.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="dashed" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e27" source="n4" target="n21">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-29.25" sy="97.5" tx="0.0" ty="-97.5">
+ <y:Point x="448.8753968253968" y="1693.6116356979405"/>
+ <y:Point x="390.0003968253968" y="1693.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e28" source="n4" target="n17">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-58.5" sy="97.5" tx="48.75" ty="-97.5">
+ <y:Point x="419.6253968253968" y="1678.6116356979405"/>
+ <y:Point x="262.5003968253968" y="1678.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="dashed" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e29" source="n4" target="n11">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="29.25" sy="97.5" tx="0.0" ty="-97.5">
+ <y:Point x="507.3753968253968" y="1723.6116356979405"/>
+ <y:Point x="566.2503968253968" y="1723.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e30" source="n4" target="n5">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="58.5" sy="97.5" tx="-36.5625" ty="-97.5">
+ <y:Point x="536.6253968253968" y="1708.6116356979405"/>
+ <y:Point x="705.9378968253968" y="1708.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e31" source="n4" target="n6">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="97.5" tx="-36.5625" ty="-97.5">
+ <y:Point x="478.1253968253968" y="1948.6116356979405"/>
+ <y:Point x="632.8128968253968" y="1948.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e32" source="n14" target="n5">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="97.5" tx="36.5625" ty="-97.5">
+ <y:Point x="917.4972222222223" y="1678.6116356979405"/>
+ <y:Point x="779.0628968253968" y="1678.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e33" source="n13" target="n12">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="97.5" tx="54.84375" ty="-97.5">
+ <y:Point x="973.1253968253968" y="1378.6116356979405"/>
+ <y:Point x="1006.8753968253968" y="1378.6116356979405"/>
+ <y:Point x="1006.8753968253968" y="2076.1116356979405"/>
+ <y:Point x="879.4064484126984" y="2076.1116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="dashed" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e34" source="n12" target="n12">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-54.84375" sy="-97.5" tx="-73.125" ty="0.0">
+ <y:Point x="769.7189484126984" y="2188.6116356979405"/>
+ <y:Point x="735.9376984126984" y="2188.6116356979405"/>
+ <y:Point x="735.9376984126984" y="2301.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="dashed" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e35" source="n5" target="n6">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-36.5625" sy="97.5" tx="36.5625" ty="-97.5"/>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e36" source="n5" target="n12">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="36.5625" sy="97.5" tx="18.28125" ty="-97.5">
+ <y:Point x="779.0628968253968" y="1948.6116356979405"/>
+ <y:Point x="842.8440476190476" y="1948.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="dashed" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e37" source="n9" target="n10">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="97.5" tx="-36.5625" ty="-97.5">
+ <y:Point x="632.8126984126984" y="2414.1116356979405"/>
+ <y:Point x="948.7501984126984" y="2414.1116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e38" source="n6" target="n12">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="36.5625" sy="97.5" tx="-18.28125" ty="-97.5">
+ <y:Point x="705.9378968253968" y="2173.6116356979405"/>
+ <y:Point x="806.2814484126984" y="2173.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="dashed" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e39" source="n7" target="n8">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="0.0" sy="97.5" tx="0.0" ty="-97.5">
+ <y:Point x="654.3753968253968" y="1693.6116356979405"/>
+ <y:Point x="918.7503968253968" y="1693.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e40" source="n6" target="n9">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-36.5625" sy="97.5" tx="0.0" ty="-97.5"/>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e41" source="n13" target="n10">
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="48.75" sy="97.5" tx="36.5625" ty="-97.5"/>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e42" source="n13" target="n14">
+ <data key="d9"/>
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-48.75" sy="97.5" tx="0.0" ty="-97.5">
+ <y:Point x="924.3753968253968" y="1378.6116356979405"/>
+ <y:Point x="917.4972222222223" y="1378.6116356979405"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e43" source="n23" target="n20">
+ <data key="d9"/>
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-60.9375" sy="29.305817848970264" tx="0.0" ty="-97.5">
+ <y:Point x="369.3753968253968" y="73.61163569794053"/>
+ <y:Point x="88.125" y="73.61163569794053"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e44" source="n23" target="n3">
+ <data key="d9"/>
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-36.5625" sy="29.305817848970264" tx="0.0" ty="-97.5">
+ <y:Point x="393.7503968253968" y="88.61163569794053"/>
+ <y:Point x="264.375" y="88.61163569794053"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e45" source="n23" target="n22">
+ <data key="d9"/>
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="-12.1875" sy="29.305817848970264" tx="36.5625" ty="-97.5">
+ <y:Point x="418.1253968253968" y="103.61163569794053"/>
+ <y:Point x="386.2503968253968" y="103.61163569794053"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e46" source="n23" target="n0">
+ <data key="d9"/>
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="60.9375" sy="29.305817848970264" tx="36.5625" ty="-97.5">
+ <y:Point x="491.2503968253968" y="73.61163569794053"/>
+ <y:Point x="687.1880952380952" y="73.61163569794053"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e47" source="n23" target="n1">
+ <data key="d9"/>
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="36.5625" sy="29.305817848970264" tx="-18.28125" ty="-97.5">
+ <y:Point x="466.8753968253968" y="88.61163569794053"/>
+ <y:Point x="562.5003968253968" y="88.61163569794053"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e48" source="n23" target="n24">
+ <data key="d9"/>
+ <data key="d10">
+ <y:PolyLineEdge>
+ <y:Path sx="12.1875" sy="29.305817848970264" tx="0.0" ty="-97.5">
+ <y:Point x="442.5003968253968" y="103.61163569794053"/>
+ <y:Point x="474.3753968253968" y="103.61163569794053"/>
+ </y:Path>
+ <y:LineStyle color="#000000" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ <y:BendStyle smoothed="false"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ </graph>
+ <data key="d0">
+ <y:Resources/>
+ </data>
+</graphml>
diff --git a/docs/draw.io/CreateAccount.xml b/docs/draw.io/CreateAccount.xml
new file mode 100644
index 0000000..b5fb87a
--- /dev/null
+++ b/docs/draw.io/CreateAccount.xml
@@ -0,0 +1 @@
+<mxfile modified="2019-01-11T10:26:15.402Z" host="www.draw.io" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/9.3.1 Chrome/66.0.3359.181 Electron/3.0.6 Safari/537.36" etag="7TMj1jc2HB3p0JL3eQl-" version="10.0.31" type="device"><diagram id="YKoQ1aF3pb8lkexGjirb" name="Page-1">1VjbcpswEP0aHpPhYrD9aDtpOp02ScedaSZvMqxBjUCMELGdr+8KxM041EmdScKDLR2WRXt0dr2y4Szi7ZUgafSDB8AM2wy2hnNh2PbYc/BTAbsSGLlmCYSCBiVkNcCSPoEGK7OcBpB1DCXnTNK0C/o8ScCXHYwIwTddszVn3bemJIQesPQJ66O/aSCjEp3Y4wb/CjSMqjdb3rS8E5PKWEeSRSTgmxbkXBrOQnAuy1G8XQBT3FW8lM99eeZuvTABiTzmgZtkJuZ36fj628+n+9ub4C4nszPt5ZGwXAc8832eJ3IJMk8XEfgPOJI0CTMdhdxV1Ai0C0B5Nw1nvomohGVKfHV3g1pALJIxw5mFw0cQkiKtM0bDBDHJlUE/hmpBaA7bFqRjugIegxQ7NNF3R6bmtxKYnm6a3bImGotaO1VhRAskrD03HOJA0/gCSu0epQWNmtdfJHswbI/hKuYrgaNQ1jy8lttTsOh2WfTcPov2ARZHb8XipMdijyMIMFP1lAsZ8ZAnhF026LzLYouxP6jpnS42JJccocbDd660OcxsxnPhw8D6R7pWERGCHLDTPKtYBvdJACOSPnar0slZHw2WgznJqP+fdeAkGf+qhH8zqVr9jP9cWnWP1KplfSixuoNivSYx9g0fsNJ21WuZ7y1f7wj1JsFM9VI48xnJsAocScvJyuSxymux6B4gscKOFqh+wy2nGFm9h87EOp+2rklnS+vetXJYsqB9tDu0fbfT8ZBbd89tSVrPbSGCmpLX62La08WCMIaZgtu1obirNvo1+xm25kK5TnweY9uo1puoZ3guQ14Ae+LCvJFdOQnI6BNZFQYqKVMVYhG0OzfcC0SI7iJ9FByIA+1lTIOgKKuMrIDNif8QFom+4AyXp97rrIvroHoH82Q/0+uzh16x0W7vD1UA89xxx9OTCPHM8s7djkrO7D2V8PU6gzcRiPXs4eEz1F3vveuu5fQTTACR6lfLzFLwKVE+GPeLb3VyBdHvvvBYmaphwiX8m8hVnQk3uWQ0AY1nZX9huSci2+uyPT1wnDAH6vMLyMZpc4Yupd38EeFc/gU=</diagram></mxfile> \ No newline at end of file
diff --git a/docs/draw.io/ImportExport.xml b/docs/draw.io/ImportExport.xml
new file mode 100644
index 0000000..db0bfdf
--- /dev/null
+++ b/docs/draw.io/ImportExport.xml
@@ -0,0 +1 @@
+<mxfile modified="2019-01-11T10:16:50.353Z" host="www.draw.io" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/9.3.1 Chrome/66.0.3359.181 Electron/3.0.6 Safari/537.36" etag="RNswfYzUOSRtBdjBfTBV" version="10.0.31" type="device"><diagram id="QmmH9szRuSUe-1hLpNK0" name="Page-1">5Zlhc5owGMc/jS97J4mCvHStrr12N+/s1p1vdimkEBsIC7HoPv1CCSBELXO14O2NF56EhPyeJ/8niT14Gaw/cxT5X5iLaQ/03XUPXvUAMCGQv6lhkxmgBTODx4mbmYzSMCe/sTL2lXVFXBxXGgrGqCBR1eiwMMSOqNgQ5yypNntitDpqhDysGeYOorr1gbjCz6wjYJX2a0w8Px/ZMO2sJkB5YzWT2EcuS7ZMcNKDl5wxkZWC9SWmKbucS/bedE9t8WEch6LJCw9L6+F2Ft5fL8n3xb354+tP9HihnPGC6EpNGEWR7MNhHPeASWXPnx65LHlpSU1EbHI6nK1CF6cD9GV14hOB5xFy0tpEhoO0+SKg8smQxRfMBZFkx5R4obQJFhV9pnV4vXdmRsFLxhlmARZ8I5uoF+BIIVYxNlCPSekwCJXN33ZW3hCpIPGKrkuOsqBQ/gVWsAfripwN1MHbTMGpmP5afqMgni3Gyc1i7iSwv5hOLwyN6RwLQUIvvgkiJmfK35vtHmQ7wB6gWMVoQJ1jgWyb48kwjjSMGiTsSglUjxKszzwWIjoprZ+qGLeQLaVLNkrF0UowaSp7uGNpcB5GG7MVd/CB71efKxD3sDjQTgl0OpeDjuKYIkFeqnL//sE7+E+wG7BT3HUhHjuOpCjiDorFsKoVVttSYeiSe15BazUMWrtTMWtp1LMEN8dU7nAJC68IoszrfgC3n+zyU8TZRrDdVHY7FcH2nggex5vQuUfxc+uRWpwvuxOq+lFshuI4YdydcRZEorOrvs7yI/PWztOXvteacfyE5RQdfKK8/49HrY4BHDZQzdAdp9cr8smhMk6JswtLTY+O08D82mdLA/e7XYe8RXG4A2Jua6yMaoQZI3IihQ9NuyYoZs052TTVW2DrmqbWkVU7eBtGraOMg9bRq6OLaR/ve1PzfXZ1EQvG07uyc7m/qF8Kgb6+qnbeCo1Otar0fd08YzpxiSx0UJiGZotZcidD/fbi1j43iqB1ivr+7JC+P1LmPFepyNopScd8RXic1h/y75tab7Wp9TasOnQwPFLrbe3i+mO1vtHxqHuJvlXng7rzj030oO78D070BtCcf8dkJk7l9N3T/AlktPVd8o4T2zmsnszvrS2f4RtR33T5wNqhCdbX4dHLRz6W/8pmzcu/tuHkDw==</diagram></mxfile> \ No newline at end of file
diff --git a/docs/draw.io/Modules.xml b/docs/draw.io/Modules.xml
new file mode 100644
index 0000000..72b58a5
--- /dev/null
+++ b/docs/draw.io/Modules.xml
@@ -0,0 +1 @@
+<mxfile modified="2019-02-08T04:59:27.033Z" host="www.draw.io" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/9.3.1 Chrome/66.0.3359.181 Electron/3.0.6 Safari/537.36" etag="Kic4OgUTI6yT3TjFu3K7" version="10.1.9" type="device"><diagram id="CDRuDVhlQKBUJFbpxX4l" name="Page-1">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</diagram></mxfile> \ No newline at end of file
diff --git a/docs/draw.io/README.md b/docs/draw.io/README.md
new file mode 100644
index 0000000..03569b5
--- /dev/null
+++ b/docs/draw.io/README.md
@@ -0,0 +1 @@
+This folder is for the draw.io raw source for the images in the parent directory
diff --git a/docs/draw.io/ReadEmail.xml b/docs/draw.io/ReadEmail.xml
new file mode 100644
index 0000000..38be7c5
--- /dev/null
+++ b/docs/draw.io/ReadEmail.xml
@@ -0,0 +1 @@
+<mxfile modified="2019-02-10T03:40:30.943Z" host="www.draw.io" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/9.3.1 Chrome/66.0.3359.181 Electron/3.0.6 Safari/537.36" etag="BVVYUPB0dM-kGAl1bI9W" version="10.1.9" type="device"><diagram id="W6TN20NKzh2WQxqSpMed" name="Page-1">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</diagram></mxfile> \ No newline at end of file
diff --git a/docs/draw.io/ReadEmailClasses.xml b/docs/draw.io/ReadEmailClasses.xml
new file mode 100644
index 0000000..09cdb75
--- /dev/null
+++ b/docs/draw.io/ReadEmailClasses.xml
@@ -0,0 +1 @@
+<mxfile modified="2019-02-10T04:00:02.532Z" host="www.draw.io" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/9.3.1 Chrome/66.0.3359.181 Electron/3.0.6 Safari/537.36" etag="K0nVuP_f0XyCsGwlqD9i" version="10.2.0" type="device"><diagram id="Jxua7O0Ivqfy6dVKNSXa" name="Page-1">3Vpdc6IwFP01Pu6MSRT00bra7kdndrbd2ecUUsg0EibEqvvrN5SAktSKrHy4Lw5cwg2cnHvuvcEBmq+2twLH4T33CRvAob8doM8DCF0Hqd/UsMsMo/EwMwSC+pkJ7A0P9A/RxnzYmvokKQ2UnDNJ47LR41FEPFmyYSH4pjzsmbPyrDEOiGV48DCzrb+pL0NtBc50f+GO0CDUU0+gm11Y4XywfpMkxD7fHJjQYoDmgnOZHa22c8JS7HJcsvuWR64WDyZIJKvc8HW3RPJncO8+3oLHu7Gcicf4k/byitlav/DMk/SVyt13mkgSEaEfXu5yRARfRz5JnQ4H6GYTUkkeYuylVzeKAsoWyhVTZ0AdPlPG5pxx8XYvWjjL5Xyu7HpaIiTZHn0fUKCk2EX4ikixU0P0DSONqyYWcPX55mCZHG0LD1YIaRvWzAgKz3vw1IHG7wwsoYXlA13FjNyTJMEBjYJGIF0um4N02DWkyIL0asEcdY3lyMLSgo5E/izVTHX2xLj3ooDwcRK+gZmipa4vaTrrG7TqTOs1gGVUM8fEt6TVwE5NztfCI6eDSmIREHmKKfZavIe2IAwrjSs/23twa3c/OFVPvV9XUF5YNDVWLHsnfdehIBuOxu4JR9lLW47eVr94x/qEcCxCLLYqpPykCi8OFt+xmHFABcxoEKljT628ClZ0k6hYTMOXPEs9Oo0yqjLuTA+VPL4sh0BFDsHWOATH5aUfOzU5ZJLRctQwh1w75+0iryFtXjiX0ubeifPEwnHOIyk4Y0Q0iOjlsl3/yrHpVea7SUWtclvTKseQGFBXqyxHsF2tyqevyAif4hWP/MeQRiUqgBIV4KgxKlRNW5PWqOAaQY7qUmFq5L8ijbVFBbvvLRqLvfAOoMMU8DdP6VEgi9W9AvntPqMBux2+wd6LipzeVgWjSc+qAmD3v78S8pFo8ZhEdqoqJbWGxKpqo9Ze4gLDqZFw6nZqwKzXLU9N69V5zXvnqatqFQOOBGQLLVcR7P/aclmOmubC2OLClxWOr01cwdDpWl3tDZCPgqovHUK+/qeDq739DNcMrmHdwtAMLtNRw8EFjxWGJO3Ar/XbSPeVTB5a//9mI6zatrWX+gAy6JBLyNl1kOGo2ORpKzrtelinvSVnfo/3G52+dRbQLii/TZvE8nLaZmIJJp2D+X5Flu7bNr6F0GCB1j2u5xVonXc9sHJlNm5N+6HRA0M0qaf9Zv8Ekduu9tufmvq6F1KZB7DFr9YGD5yaJYBJA9NP0yywP5R9RIG+9Gx5uu0TI5Dx9wMwrtmzWY4u9l1Hne7/H5cN3//JEC3+Ag==</diagram></mxfile> \ No newline at end of file
diff --git a/docs/draw.io/SendEmail.xml b/docs/draw.io/SendEmail.xml
new file mode 100644
index 0000000..c6acc03
--- /dev/null
+++ b/docs/draw.io/SendEmail.xml
@@ -0,0 +1 @@
+<mxfile modified="2019-02-10T04:02:43.187Z" host="www.draw.io" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/9.3.1 Chrome/66.0.3359.181 Electron/3.0.6 Safari/537.36" etag="sryRBrGrWx2Xdk4-LGi-" version="10.1.9" type="device"><diagram id="UKgcjDadpjXdOPNuiZzW" name="Page-1">7VrbcqM4EP0aV+0+ZIqLufgxduzZS7I7Nc5Udh9lkG0qAlFCTux8/TYgDEgY34jHSW0eUqjRBdSnj0437pmjcP2VoXj5QH1Meobmr3vmXc8wHNuE/6lhkxv6lpYbFizwc5NeGqbBGxbGotsq8HFS68gpJTyI60aPRhH2eM2GGKOv9W5zSuqrxmiBFcPUQ0S1PgU+Xwqrbg/KG7/hYLEUS7uGk98IUdFZvEmyRD59rZjMcc8cMUp5fhWuR5ike1fsSz5usuPu9sEYjvghA7DrJrPX5NZ/mv/59Pi34Zhvf9xY+SwviKzECyc48nuGTWDO4YzB1SK9CnGSpDuVvwnfFNsDnW/TXYaWR1CSBB50XvKQgEGHyxfMeAC7eUuCRQS2MPD9dOyQoBkmQ+Q9LxhdRf6IEsrgfkSj9K76buJ1E7piHm55IUO8EUdsgXlLR1PMiP0aAMTefcU0xJxtoMNr6fYCu8uKwwsbwwTx4KUOGyTQt9hOt13hGw3g3QxtXUwj5hFxYhbzFlPkby5GVd0sT2RJE2nSRPnOKBOBG9Gm0i1OOyS7H9h06+voTg1+cJHPWLQqe1qaMogeAVddV/CK4jhDrKaCllMw0xWf0fXRwG3HpwzrGeWchmcBt8DjfuC6VwVcW8KBIePtUOA6pgQoOQI6Am7fkdZxLwHco4lWvtExgi8BVOuqgOpIQDX7JwLVNWTE2xcBarER7wtU5/MA9WApMLguoNp1v/ftU4GqSxPp78OojqRdDPsSQB0oQH3IITmiYUwTVauCAI/Ty1VI7oM5JkGGrxizAJ4Fp5AjwvyttA1flwHH0xhlUHuFHKcOXsg7OIIhbNsmBMVJMMtW1cDCsLdiCcDhO07y9Ca1gixJVxpt05bUOIfJRAqkZ+2AkCIceoY5tieT0agtJlJdgtetGC7IRYKGaFYQrmsNEDdk0qzCueLwVn9OH260UbB6/DHz3fFY/74Zv/11U2Cz4k/Fg5V9F5gEszXsWXeSIynjS7qgESJVV7YTjbTZ8+xvu9nKztb3vwWiu11g1XWI1uSDBhd04IHm1En1gIio4SogPmzhp4uoyaS7iDJk2v7pIaUy5EePqErh5ICIcg4LKPPdAkrNVtvEEYVE9hhlBEMnQfpEGdJP10nFSbpXJxUEcSU6SZcrHe6JOkmXdJIpI6IjnaTLJRP9AjqpwFwNhLlmT2IUFap9llI8dCtlPQpTYo5mSZyhKx8Cj1Ad1TTTLyjZRN6vO0dIAQAcwOuoZymro5LuVWJCouziAdYzHtpZjzk2t2iPY5WxRNlZPG3P2ENQN9oX3aiT1E2/k2BwGyctxtP5PMFcAls38DIVeCUrzwMUtVHdjFDvuZOCW0mC+nl1Y+1AEtSvK1k0JSFvDk4kwe3AXeWRrkhQIlu9fwkSVMtvU0COkLePKHlW0PrhtW2X2aJ81F5U2zZ71D5TW11ePV1XOVSuACgy+FDiMCTi0GUZ1hVxSPmVfokqk6HmUHgNIcpBIWlbpfMBJU0RPmdLGlA0fcc+D5LvL1NMNRXLyT+IFsCqnAER/1/gaD8ETOfaDgFz18eKho/B6VdicHbjPZH0NEhW4OqpaJYVkHFprfq1CGGC5yIn8mDB+6x1Z+RHjiyAsxDGvnAm+IZt/tkeUND4V9zpJOgP/snD2b9lqBO1c9jJcvRnB6txmcbzQH3G/hfHcm1Ds92BbVm6UZ9LVtE7zrAT6Km5+N2UpH/sUp255/uD5DyziUxULpH90h2VqBnC7yGK0w3LGOXzHQxju6uDwRr8xIOhOZ7UqsSHjyfrmHjaBs+eeJK/CHcXT67igXsKcnbKKfuEn2a71Fl99+p0lpoFTUMePzIUJTGEx2f052jUlT/ln0dcAT0e8GHqeulxT6lqICkL+92YEJrlz7dzKVj+Bt4c/wc=</diagram></mxfile> \ No newline at end of file
diff --git a/docs/google-play/full_description.txt b/docs/google-play/full_description.txt
new file mode 100644
index 0000000..c51bb04
--- /dev/null
+++ b/docs/google-play/full_description.txt
@@ -0,0 +1,14 @@
+K-9 Mail is an open source email client with support for multiple accounts, search, IMAP push email, multi-folder sync, flagging, filing, signatures, BCC-self, PGP/MIME & more!
+
+K-9 supports IMAP, POP3 and Exchange 2003/2007 (with WebDAV).
+
+Install the app "OpenKeychain: Easy PGP" to encrypt/decrypt your emails using OpenPGP.
+
+K-9 is a community developed project. If you're interested in helping to make the most popular open source email client on Android even better, please join us! You can find our bug tracker, source code, mailing list and wiki at https://github.com/thundernest/k-9
+We're always happy to welcome new developers, designers, documenters, bug triagers and friends.
+
+If you're having trouble with K-9, please report a bug at https://github.com/thundernest/k-9 rather than just leaving a one-star review. We don't mind you telling the world that you're frustrated, but if you use our bug tracker, we have a better chance of fixing whatever's giving you a hard time.
+
+You can find K-9's release notes at: https://bit.ly/new-k9
+
+(People sometimes call K-9: K9, K9 Mail, K-9 Email, K9 Email, K9 E-Mail, k9mail or k9email.)
diff --git a/docs/google-play/short_description.txt b/docs/google-play/short_description.txt
new file mode 100644
index 0000000..71faccb
--- /dev/null
+++ b/docs/google-play/short_description.txt
@@ -0,0 +1 @@
+K-9 Mail is a 100% free and open source email client for Android.