<?xml version="1.0" encoding="UTF-8"?>
<Diagram>
  <ID>JAVA</ID>
  <OriginalElement />
  <nodes>
    <node x="1022.2999999999998" y="1241.5">ch.dissem.bitmessage.entity.Encrypted</node>
    <node x="3262.195225464191" y="1703.088063660477">ch.dissem.bitmessage.ports.Inventory</node>
    <node x="953.8409281305113" y="1454.0">ch.dissem.bitmessage.entity.payload.V4Pubkey</node>
    <node x="3639.070833333333" y="552.0">ch.dissem.bitmessage.entity.Addr</node>
    <node x="61.3125" y="574.5">ch.dissem.bitmessage.entity.payload.Broadcast</node>
    <node x="1759.485339506172" y="1777.0">ch.dissem.bitmessage.factory.Factory</node>
    <node x="3809.027006172839" y="132.0">ch.dissem.bitmessage.entity.valueobject.NetworkAddress</node>
    <node x="1252.7999999999997" y="840.5">ch.dissem.bitmessage.entity.payload.V2Pubkey</node>
    <node x="2422.195225464191" y="1725.088063660477">ch.dissem.bitmessage.ports.AddressRepository</node>
    <node x="1237.2999999999997" y="1174.5">ch.dissem.bitmessage.entity.payload.V3Pubkey</node>
    <node x="950.1249999999999" y="198.0">ch.dissem.bitmessage.entity.payload.ObjectPayload</node>
    <node x="3265.695833333333" y="242.5">ch.dissem.bitmessage.entity.MessagePayload</node>
    <node x="2347.852579365079" y="540.5">ch.dissem.bitmessage.entity.NetworkMessage</node>
    <node x="3910.070833333333" y="475.0">ch.dissem.bitmessage.entity.Version</node>
    <node x="3278.195225464191" y="1915.0880636604768">ch.dissem.bitmessage.BitmessageContext</node>
    <node x="3995.195225464191" y="1758.088063660477">ch.dissem.bitmessage.ports.ProofOfWorkEngine</node>
    <node x="1602.2999999999997" y="1153.0">ch.dissem.bitmessage.entity.BitmessageAddress</node>
    <node x="217.375" y="1205.3604060913706">ch.dissem.bitmessage.entity.payload.UnencryptedMessage</node>
    <node x="2394.152006172839" y="907.5">ch.dissem.bitmessage.factory.V3MessageFactory</node>
    <node x="703.2999999999997" y="1230.5">ch.dissem.bitmessage.entity.payload.CryptoBox</node>
    <node x="2841.277006172839" y="530.0">ch.dissem.bitmessage.entity.valueobject.InventoryVector</node>
    <node x="40.0" y="1821.0">ch.dissem.bitmessage.entity.payload.V5Broadcast</node>
    <node x="2026.7485780423274" y="874.0">ch.dissem.bitmessage.entity.valueobject.PrivateKey</node>
    <node x="4063.945225464191" y="2026.0880636604768">ch.dissem.bitmessage.ports.MultiThreadedPOWEngine</node>
    <node x="3440.320833333333" y="896.0">ch.dissem.bitmessage.entity.Inv</node>
    <node x="1508.9249999999997" y="518.5">ch.dissem.bitmessage.entity.payload.Pubkey</node>
    <node x="236.3125" y="541.0">ch.dissem.bitmessage.entity.payload.GetPubkey</node>
    <node x="2357.445833333333" y="0.0">ch.dissem.bitmessage.entity.Streamable</node>
    <node x="4050.4279840848803" y="1283.5018567639252">ch.dissem.bitmessage.entity.payload.ObjectType</node>
    <node x="2715.4985780423276" y="786.0">ch.dissem.bitmessage.entity.ObjectMessage</node>
    <node x="1835.727579365079" y="519.0">ch.dissem.bitmessage.entity.payload.GenericPayload</node>
    <node x="3709.195225464191" y="1736.088063660477">ch.dissem.bitmessage.ports.NetworkHandler</node>
    <node x="2544.852579365079" y="563.0">ch.dissem.bitmessage.entity.VerAck</node>
    <node x="3169.320833333333" y="896.0">ch.dissem.bitmessage.entity.GetData</node>
    <node x="447.0" y="1487.0">ch.dissem.bitmessage.entity.payload.Msg</node>
    <node x="2817.195225464191" y="1747.088063660477">ch.dissem.bitmessage.ports.NodeRegistry</node>
    <node x="0.0" y="1498.0">ch.dissem.bitmessage.entity.payload.V4Broadcast</node>
  </nodes>
  <notes />
  <edges>
    <edge source="ch.dissem.bitmessage.entity.GetData" target="ch.dissem.bitmessage.entity.MessagePayload">
      <point x="62.75" y="-48.5" />
      <point x="0.0" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.valueobject.PrivateKey" target="ch.dissem.bitmessage.entity.payload.Pubkey">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.valueobject.NetworkAddress" target="ch.dissem.bitmessage.entity.Streamable">
      <point x="0.0" y="-136.5" />
      <point x="4023.527006172839" y="92.0" />
      <point x="2555.258333333333" y="92.0" />
      <point x="92.3125" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.BitmessageContext" target="ch.dissem.bitmessage.ports.ProofOfWorkEngine">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.NetworkMessage" target="ch.dissem.bitmessage.entity.MessagePayload">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.Broadcast" target="ch.dissem.bitmessage.entity.payload.ObjectPayload">
      <point x="0.0" y="-26.0" />
      <point x="138.8125" y="435.0" />
      <point x="980.7083333333334" y="435.0" />
      <point x="-152.91666666666652" y="70.5" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.V5Broadcast" target="ch.dissem.bitmessage.entity.payload.V4Broadcast">
      <point x="0.0" y="-48.5" />
      <point x="0.0" y="92.5" />
    </edge>
    <edge source="ch.dissem.bitmessage.BitmessageContext" target="ch.dissem.bitmessage.ports.NetworkHandler">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.Addr" target="ch.dissem.bitmessage.entity.MessagePayload">
      <point x="-62.75" y="-48.5" />
      <point x="3701.820833333333" y="445.0" />
      <point x="3410.2672619047617" y="445.0" />
      <point x="52.57142857142867" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.factory.V3MessageFactory" target="ch.dissem.bitmessage.entity.VerAck">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.ports.MultiThreadedPOWEngine" target="ch.dissem.bitmessage.ports.ProofOfWorkEngine">
      <point x="0.0" y="-26.0" />
      <point x="68.75" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.valueobject.PrivateKey" target="ch.dissem.bitmessage.entity.Streamable">
      <point x="78.25" y="-70.5" />
      <point x="2261.4985780423276" y="766.0" />
      <point x="2282.227579365079" y="766.0" />
      <point x="2282.227579365079" y="102.0" />
      <point x="2449.758333333333" y="102.0" />
      <point x="-13.1875" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.factory.Factory" target="ch.dissem.bitmessage.entity.payload.V4Pubkey">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.VerAck" target="ch.dissem.bitmessage.entity.MessagePayload">
      <point x="0.0" y="-37.5" />
      <point x="2660.352579365079" y="445.0" />
      <point x="3305.1244047619048" y="445.0" />
      <point x="-52.571428571428555" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.V4Pubkey" target="ch.dissem.bitmessage.entity.payload.CryptoBox">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.Msg" target="ch.dissem.bitmessage.entity.payload.UnencryptedMessage">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.MessagePayload" target="ch.dissem.bitmessage.entity.Streamable">
      <point x="0.0" y="-26.0" />
      <point x="3357.695833333333" y="102.0" />
      <point x="2528.883333333333" y="102.0" />
      <point x="65.9375" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.factory.Factory" target="ch.dissem.bitmessage.entity.BitmessageAddress">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.BitmessageContext" target="ch.dissem.bitmessage.ports.Inventory">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.V4Broadcast" target="ch.dissem.bitmessage.entity.payload.UnencryptedMessage">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.valueobject.InventoryVector" target="ch.dissem.bitmessage.entity.Streamable">
      <point x="0.0" y="-70.5" />
      <point x="2980.277006172839" y="425.0" />
      <point x="2940.790244708994" y="425.0" />
      <point x="2940.790244708994" y="112.0" />
      <point x="2502.508333333333" y="112.0" />
      <point x="39.5625" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.BitmessageContext" target="ch.dissem.bitmessage.ports.AddressRepository">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.ObjectPayload" target="ch.dissem.bitmessage.entity.Streamable">
      <point x="0.0" y="-70.5" />
      <point x="1133.625" y="92.0" />
      <point x="2423.383333333333" y="92.0" />
      <point x="-39.5625" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.V4Pubkey" target="ch.dissem.bitmessage.entity.payload.V3Pubkey">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.V2Pubkey" target="ch.dissem.bitmessage.entity.payload.Pubkey">
      <point x="0.0" y="-104.0" />
      <point x="1409.2999999999997" y="766.0" />
      <point x="1545.5499999999997" y="766.0" />
      <point x="-109.875" y="82.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.V3Pubkey" target="ch.dissem.bitmessage.entity.payload.V2Pubkey">
      <point x="0.0" y="-104.0" />
      <point x="0.0" y="104.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.V4Broadcast" target="ch.dissem.bitmessage.entity.payload.Broadcast">
      <point x="-106.75" y="-92.5" />
      <point x="106.75" y="1434.0" />
      <point x="138.8125" y="1434.0" />
      <point x="0.0" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.V4Pubkey" target="ch.dissem.bitmessage.entity.Encrypted">
      <point x="0.0" y="-136.5" />
      <point x="1199.3409281305112" y="1434.0" />
      <point x="1119.7999999999997" y="1434.0" />
      <point x="0.0" y="37.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.CryptoBox" target="ch.dissem.bitmessage.entity.Streamable">
      <point x="0.0" y="-48.0" />
      <point x="852.7999999999997" y="1123.0" />
      <point x="50.8125" y="1123.0" />
      <point x="50.8125" y="82.0" />
      <point x="2397.008333333333" y="82.0" />
      <point x="-65.9375" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.factory.Factory" target="ch.dissem.bitmessage.entity.valueobject.PrivateKey">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.BitmessageAddress" target="ch.dissem.bitmessage.entity.valueobject.PrivateKey">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.ObjectMessage" target="ch.dissem.bitmessage.entity.MessagePayload">
      <point x="141.33333333333326" y="-158.5" />
      <point x="3068.8319113756606" y="766.0" />
      <point x="3242.277006172839" y="766.0" />
      <point x="3242.277006172839" y="455.0" />
      <point x="3331.410119047619" y="455.0" />
      <point x="-26.28571428571422" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.GetPubkey" target="ch.dissem.bitmessage.entity.payload.ObjectPayload">
      <point x="0.0" y="-59.5" />
      <point x="432.3125" y="445.0" />
      <point x="1041.875" y="445.0" />
      <point x="-91.75" y="70.5" />
    </edge>
    <edge source="ch.dissem.bitmessage.factory.V3MessageFactory" target="ch.dissem.bitmessage.entity.payload.GenericPayload">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.ObjectMessage" target="ch.dissem.bitmessage.entity.valueobject.InventoryVector">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.GetData" target="ch.dissem.bitmessage.entity.valueobject.InventoryVector">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.Msg" target="ch.dissem.bitmessage.entity.payload.ObjectPayload">
      <point x="-49.5" y="-103.5" />
      <point x="595.5" y="1434.0" />
      <point x="638.8125" y="1434.0" />
      <point x="638.8125" y="455.0" />
      <point x="1103.0416666666665" y="455.0" />
      <point x="-30.583333333333485" y="70.5" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.Pubkey" target="ch.dissem.bitmessage.entity.payload.ObjectPayload">
      <point x="0.0" y="-82.0" />
      <point x="1655.4249999999997" y="455.0" />
      <point x="1164.2083333333335" y="455.0" />
      <point x="30.583333333333485" y="70.5" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.Version" target="ch.dissem.bitmessage.entity.MessagePayload">
      <point x="-97.75" y="-125.5" />
      <point x="4007.820833333333" y="435.0" />
      <point x="3436.5529761904763" y="435.0" />
      <point x="78.85714285714289" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.factory.V3MessageFactory" target="ch.dissem.bitmessage.entity.valueobject.InventoryVector">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.factory.V3MessageFactory" target="ch.dissem.bitmessage.entity.NetworkMessage">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.ObjectMessage" target="ch.dissem.bitmessage.entity.payload.ObjectPayload">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.UnencryptedMessage" target="ch.dissem.bitmessage.entity.Streamable">
      <point x="0.0" y="-70.5" />
      <point x="408.375" y="1133.0" />
      <point x="39.8125" y="1133.0" />
      <point x="39.8125" y="72.0" />
      <point x="2370.633333333333" y="72.0" />
      <point x="-92.3125" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.Addr" target="ch.dissem.bitmessage.entity.valueobject.NetworkAddress">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.Msg" target="ch.dissem.bitmessage.entity.payload.CryptoBox">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.GenericPayload" target="ch.dissem.bitmessage.entity.payload.ObjectPayload">
      <point x="0.0" y="-81.5" />
      <point x="2048.227579365079" y="445.0" />
      <point x="1225.375" y="445.0" />
      <point x="91.75" y="70.5" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.payload.V4Pubkey" target="ch.dissem.bitmessage.entity.payload.Pubkey">
      <point x="196.4000000000001" y="-136.5" />
      <point x="1395.7409281305113" y="1434.0" />
      <point x="1591.7999999999997" y="1434.0" />
      <point x="1591.7999999999997" y="766.0" />
      <point x="1618.7999999999997" y="766.0" />
      <point x="-36.625" y="82.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.NetworkMessage" target="ch.dissem.bitmessage.entity.Streamable">
      <point x="-44.25" y="-60.0" />
      <point x="2392.102579365079" y="112.0" />
      <point x="2476.133333333333" y="112.0" />
      <point x="13.1875" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.Version" target="ch.dissem.bitmessage.entity.valueobject.NetworkAddress">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.BitmessageAddress" target="ch.dissem.bitmessage.entity.payload.Pubkey">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.BitmessageContext" target="ch.dissem.bitmessage.ports.NodeRegistry">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.Inv" target="ch.dissem.bitmessage.entity.MessagePayload">
      <point x="62.75" y="-48.5" />
      <point x="3628.570833333333" y="455.0" />
      <point x="3383.9815476190474" y="455.0" />
      <point x="26.28571428571422" y="26.0" />
    </edge>
    <edge source="ch.dissem.bitmessage.entity.Inv" target="ch.dissem.bitmessage.entity.valueobject.InventoryVector">
      <point x="0.0" y="0.0" />
      <point x="0.0" y="0.0" />
    </edge>
  </edges>
  <settings layout="Hierarchic Group" zoom="0.37884615384615383" x="630.736040609137" y="1186.0" />
  <SelectedNodes />
  <Categories>
    <Category>Fields</Category>
    <Category>Methods</Category>
    <Category>Properties</Category>
  </Categories>
  <SCOPE>All</SCOPE>
  <VISIBILITY>protected</VISIBILITY>
</Diagram>

