entity SerialHandler--><gid="elem_SerialHandler"><rectfill="#85BBF0"height="79.05"rx="1.5"ry="1.5"style="stroke:#78A8D8;stroke-width:0.3;"width="130.2"x="267.9"y="169.8"/><textfill="#000000"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="49.8"x="308.1"y="182.4832">«component»</text><textfill="#000000"font-family="sans-serif"font-size="9.6"font-weight="bold"lengthAdjust="spacing"textLength="98.4"x="283.8"y="193.0922">Serial link handler</text><textfill="#000000"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="15.6"x="325.2"y="202.0395">[Go]</text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="2.4"x="331.8"y="211.5346"></text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="99.6"x="283.2"y="221.3127">Reads and writes to the</text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="115.8"x="273.9"y="231.0908">serial interface, parses and</text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="64.2"x="300.9"y="240.8689">creates frames</text></g><!--MD5=[3d42f30e2a78c2aed96731e8102a93c9]
entity ProtocolHandler--><gid="elem_ProtocolHandler"><rectfill="#85BBF0"height="69.2719"rx="1.5"ry="1.5"style="stroke:#78A8D8;stroke-width:0.3;"width="101.4"x="282.3"y="294"/><textfill="#000000"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="49.8"x="308.1"y="306.6832">«component»</text><textfill="#000000"font-family="sans-serif"font-size="9.6"font-weight="bold"lengthAdjust="spacing"textLength="89.4"x="288.3"y="317.2922">Protocol handler</text><textfill="#000000"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="15.6"x="325.2"y="326.2395">[Go]</text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="2.4"x="331.8"y="335.7346"></text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="80.4"x="292.8"y="345.5127">Parses and creates</text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="80.4"x="292.8"y="355.2908">protocol messages</text></g><!--MD5=[1011eedbd8ff904aa9b61ed64da000c5]
entity HealthHandler--><gid="elem_HealthHandler"><rectfill="#85BBF0"height="69.2719"rx="1.5"ry="1.5"style="stroke:#78A8D8;stroke-width:0.3;"width="108.6"x="278.7"y="413.7"/><textfill="#000000"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="49.8"x="308.1"y="426.3832">«component»</text><textfill="#000000"font-family="sans-serif"font-size="9.6"font-weight="bold"lengthAdjust="spacing"textLength="69.6"x="298.2"y="436.9922">Health check</text><textfill="#000000"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="15.6"x="325.2"y="445.9395">[Go]</text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="2.4"x="331.8"y="455.4346"></text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="91.8"x="287.1"y="465.2127">Handles health check</text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="47.4"x="309.3"y="474.9908">commands</text></g><!--MD5=[58d078c34e72bc75166669b12cea25ab]
entity SyncHandler--><gid="elem_SyncHandler"><rectfill="#85BBF0"height="80.4469"rx="1.5"ry="1.5"style="stroke:#78A8D8;stroke-width:0.3;"width="121.2"x="699"y="408"/><textfill="#000000"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="49.8"x="734.7"y="420.6832">«component»</text><textfill="#000000"font-family="sans-serif"font-size="9.6"font-weight="bold"lengthAdjust="spacing"textLength="85.8"x="714.9"y="431.2922">Synchronization</text><textfill="#000000"font-family="sans-serif"font-size="9.6"font-weight="bold"lengthAdjust="spacing"textLength="40.8"x="739.2"y="442.4672">handler</text><textfill="#000000"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="15.6"x="751.8"y="451.4145">[Go]</text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="2.4"x="758.4"y="460.9096"></text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="104.4"x="707.4"y="470.6877">Handles synchronization</text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="71.4"x="723.9"y="480.4658">with other signer</text></g><!--MD5=[e834ab3daed066426c91d2e7962575e2]
entity SyncHandler2--><gid="elem_SyncHandler2"><rectfill="#CCCCCC"height="80.4469"rx="1.5"ry="1.5"style="stroke:#BFBFBF;stroke-width:0.3;"width="121.2"x="1067.4"y="603"/><textfill="#000000"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="82.8"x="1086.6"y="615.6832">«external_component»</text><textfill="#000000"font-family="sans-serif"font-size="9.6"font-weight="bold"lengthAdjust="spacing"textLength="85.8"x="1083.3"y="626.2922">Synchronization</text><textfill="#000000"font-family="sans-serif"font-size="9.6"font-weight="bold"lengthAdjust="spacing"textLength="40.8"x="1107.6"y="637.4672">handler</text><textfill="#000000"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="15.6"x="1120.2"y="646.4145">[Go]</text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="2.4"x="1126.8"y="655.9096"></text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="104.4"x="1075.8"y="665.6877">Handles synchronization</text><textfill="#000000"font-family="sans-serif"font-size="8.4"lengthAdjust="spacing"textLength="71.4"x="1092.3"y="675.4658">with other signer</text></g><!--MD5=[d6aaf1a0f5c32983fa5796596196f201]
link SignerClient to SerialHandler--><gid="link_SignerClient_SerialHandler"><pathd="M333,55.308 C333,83.61 333,130.254 333,164.706 "fill="none"id="SignerClient-to-SerialHandler"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="333,169.698,334.8,164.898,331.2,164.898,333,169.698"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="352.5"y="80.4832">Uses</text><textfill="#666666"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="57"x="333.6"y="88.8645">[USB serial link]</text></g><!--MD5=[a5ac9fd6085cba509022a8449c62ed3f]
link SerialHandler to ProtocolHandler--><gid="link_SerialHandler_ProtocolHandler"><pathd="M333,249.096 C333,261.936 333,276.192 333,289.02 "fill="none"id="SerialHandler-to-ProtocolHandler"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="333,293.856,334.8,289.056,331.2,289.056,333,293.856"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="333.6"y="274.2832">Uses</text></g><!--MD5=[6904b7103d89ba041a727edd177c7033]
link ProtocolHandler to X509SigningHandler--><gid="link_ProtocolHandler_X509SigningHandler"><pathd="M372.372,363.06 C389.55,377.868 409.734,395.28 427.314,410.436 "fill="none"id="ProtocolHandler-to-X509SigningHandler"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="431.022,413.64,428.5647,409.1409,426.2123,411.8661,431.022,413.64"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="402.6"y="388.2832">Uses</text></g><!--MD5=[6e0d1b21c46cf0a1aeb331a2c465700e]
link ProtocolHandler to X509CRLHandler--><gid="link_ProtocolHandler_X509CRLHandler"><pathd="M297.408,363.06 C281.946,377.808 263.79,395.136 247.95,410.25 "fill="none"id="ProtocolHandler-to-X509CRLHandler"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="244.398,413.64,249.1119,411.6253,246.6248,409.0225,244.398,413.64"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="279"y="388.2832">Uses</text></g><!--MD5=[8bd9096c966b0786426f772de5ff586e]
link ProtocolHandler to X509RevocationHandler--><gid="link_ProtocolHandler_X509RevocationHandler"><pathd="M383.874,345.972 C426.912,360.774 489.882,383.682 543,408 C545.448,409.122 547.926,410.292 550.416,411.492 "fill="none"id="ProtocolHandler-to-X509RevocationHandler"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="554.916,413.694,551.3949,409.9682,549.8132,413.2022,554.916,413.694"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="498.6"y="388.2832">Uses</text></g><!--MD5=[7630a6f192d59137aef045c59458f3ad]
link ProtocolHandler to OpenPGPSigningHandler--><gid="link_ProtocolHandler_OpenPGPSigningHandler"><pathd="M282.288,348.75 C244.944,363.732 193.254,385.548 149.4,408 C147.318,409.068 145.212,410.172 143.094,411.306 "fill="none"id="ProtocolHandler-to-OpenPGPSigningHandler"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="138.732,413.676,143.8082,412.9606,142.0862,409.7992,138.732,413.676"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="204.6"y="388.2832">Uses</text></g><!--MD5=[dd0964938e0e2c1d6f26fa00fb2a70e5]
link ProtocolHandler to HealthHandler--><gid="link_ProtocolHandler_HealthHandler"><pathd="M333,363.06 C333,377.31 333,393.972 333,408.72 "fill="none"id="ProtocolHandler-to-HealthHandler"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="333,413.64,334.8,408.84,331.2,408.84,333,413.64"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="333.6"y="388.2832">Uses</text></g><!--MD5=[c03f96c452f26815ba38daf1adeb88ce]
link X509SigningHandler to HSMAccess--><gid="link_X509SigningHandler_HSMAccess"><pathd="M451.68,482.844 C441.522,497.97 427.518,514.44 410.4,523.8 C392.52,533.58 383.766,521.148 364.8,528.6 C321.12,545.772 279.06,579.114 250.338,605.328 "fill="none"id="X509SigningHandler-to-HSMAccess"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="246.726,608.646,251.4773,606.7211,249.04,604.0716,246.726,608.646"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="432"y="517.8832">Uses</text></g><!--MD5=[049c56c40f5ce55919cf848cfeae4412]
link X509SigningHandler to SignerDB--><gid="link_X509SigningHandler_SignerDB"><pathd="M469.302,482.886 C468.6,495.75 467.46,510.492 465.6,523.8 C461.97,549.756 455.796,578.478 450.39,601.182 "fill="none"id="X509SigningHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="449.256,605.934,452.1297,601.6888,448.6298,600.846,449.256,605.934"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="26.4"x="468.6"y="517.8832">Writes</text></g><!--MD5=[82b942a05dde6d4abd870be92d5b79e1]
link X509RevocationHandler to SignerDB--><gid="link_X509RevocationHandler_SignerDB"><pathd="M560.058,482.754 C541.632,495.66 521.898,511.428 506.4,528.6 C486.888,550.218 470.346,578.448 458.622,601.41 "fill="none"id="X509RevocationHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="456.342,605.928,460.1097,602.4518,456.8949,600.8315,456.342,605.928"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="26.4"x="528.6"y="517.8832">Writes</text></g><!--MD5=[f3fbeda310f19b6def0836f108fb90ae]
link X509CRLHandler to HSMAccess--><gid="link_X509CRLHandler_HSMAccess"><pathd="M195.06,482.736 C192.546,490.392 190.308,498.576 189,506.4 C183.504,539.31 191.046,576.624 199.092,603.864 "fill="none"id="X509CRLHandler-to-HSMAccess"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="200.49,608.484,200.8156,603.3679,197.3713,604.4154,200.49,608.484"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="189.6"y="517.8832">Uses</text></g><!--MD5=[1be83cc4a91ae3618c25e12be491020b]
link X509CRLHandler to SignerDB--><gid="link_X509CRLHandler_SignerDB"><pathd="M257.856,482.772 C261.306,484.764 264.774,486.66 268.2,488.4 C288.966,498.93 298.116,493.356 317.4,506.4 C327.9,513.504 372.84,564.642 405.222,602.172 "fill="none"id="X509CRLHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="408.516,605.988,406.7486,601.1759,404.0203,603.5246,408.516,605.988"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="24.6"x="334.8"y="517.8832">Reads</text></g><!--MD5=[1531770e9c84b9a37109fc722a3e41bc]
link OpenPGPSigningHandler to HSMAccess--><gid="link_OpenPGPSigningHandler_HSMAccess"><pathd="M106.122,482.778 C128.91,516.858 163.932,569.22 187.614,604.644 "fill="none"id="OpenPGPSigningHandler-to-HSMAccess"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="190.302,608.658,189.1297,603.6674,186.1373,605.6688,190.302,608.658"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="133.8"y="517.8832">Uses</text></g><!--MD5=[5647650e77d9b601644db74356963c93]
link OpenPGPSigningHandler to SignerDB--><gid="link_OpenPGPSigningHandler_SignerDB"><pathd="M136.014,482.736 C140.448,484.86 144.936,486.786 149.4,488.4 C198.63,506.196 218.544,483.876 265.8,506.4 C276.198,511.356 276.156,516.42 285,523.8 C317.736,551.118 355.692,580.284 385.83,602.886 "fill="none"id="OpenPGPSigningHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="389.844,605.886,387.0778,601.57,384.9219,604.453,389.844,605.886"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="26.4"x="285.6"y="517.8832">Writes</text></g><!--MD5=[01fcd97973dce0a15ca3f22ec6f9a33e]
link HealthHandler to HSMAccess--><gid="link_HealthHandler_HSMAccess"><pathd="M278.544,482.46 C275.058,484.494 271.59,486.492 268.2,488.4 C253.026,496.944 243.534,492.24 233.4,506.4 C213.276,534.522 209.382,574.344 209.796,603.666 "fill="none"id="HealthHandler-to-HSMAccess"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="209.91,608.646,211.5981,603.8055,207.9991,603.8891,209.91,608.646"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="234"y="517.8832">Checks</text></g><!--MD5=[8e666ca13f2e292cf801466daea72d33]
link HealthHandler to SignerDB--><gid="link_HealthHandler_SignerDB"><pathd="M353.514,482.76 C358.086,490.494 362.862,498.696 367.2,506.4 C385.044,538.092 404.376,574.47 418.602,601.65 "fill="none"id="HealthHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="420.84,605.934,420.2057,600.847,417.0172,602.5184,420.84,605.934"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="376.2"y="517.8832">Checks</text></g><!--MD5=[f6d0a255b9300fdc869edf618776ea20]
link SyncHandler to SignerDB--><gid="link_SyncHandler_SignerDB"><pathd="M698.916,483.69 C695.334,485.37 691.74,486.948 688.2,488.4 C633.648,510.714 618.39,513.282 560.4,523.8 C548.544,525.948 516.57,522.144 506.4,528.6 C480.288,545.166 463.206,575.928 452.88,601.326 "fill="none"id="SyncHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="451.098,605.838,454.5393,602.0384,451.1924,600.7125,451.098,605.838"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="639"y="517.8832">Uses</text></g><!--MD5=[ce0bb68167ca79996a54c04fb7a06609]
link SyncHandler to NATS--><gid="link_SyncHandler_NATS"><pathd="M802.014,492.336 C811.836,503.628 821.754,516.132 829.8,528.6 C849.354,558.888 865.236,597.81 873.996,621.444 "fill="none"id="SyncHandler-NATS"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="875.652,625.962,875.6884,620.8357,872.3087,622.0758,875.652,625.962"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="798.69,488.55,800.5066,493.3437,803.2107,490.9672,798.69,488.55"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="50.4"x="828.3"y="513.6832">Synchronize</text><textfill="#666666"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="57"x="825"y="522.0645">[NATS protocol]</text></g><!--MD5=[ac10af24f910bae24644d4ccf6ac738e]
link NATS to NATS2--><gid="link_NATS_NATS2"><pathd="M895.272,664.308 C907.872,682.488 927.318,709.482 946.2,731.4 C956.484,743.34 968.838,755.826 979.194,765.846 "fill="none"id="NATS-NATS2"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="982.908,769.416,980.6986,764.7902,978.2017,767.3835,982.908,769.416"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="892.53,660.336,893.7738,665.3092,896.7372,663.2651,892.53,660.336"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="50.4"x="946.8"y="721.2832">Synchronize</text><textfill="#666666"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="40.8"x="951.6"y="729.6645">[NATS/TLS]</text></g><!--MD5=[06c6604c5c35b105f23e33e7e3e4aba5]
link SyncHandler2 to NATS2--><gid="link_SyncHandler2_NATS2"><pathd="M1089.258,687.108 C1065.864,713.262 1037.148,745.368 1018.908,765.756 "fill="none"id="SyncHandler2-NATS2"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="1015.626,769.428,1020.1677,767.0504,1017.4845,764.6504,1015.626,769.428"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="1092.57,683.412,1088.0251,685.7835,1090.7051,688.1872,1092.57,683.412"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="50.4"x="1068.3"y="721.2832">Synchronize</text><textfill="#666666"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="57"x="1065"y="729.6645">[NATS protocol]</text></g><!--MD5=[19a8c02a4a6c3e2efd241ec79f03fa40]
link SyncHandler2 to SignerDB2--><gid="link_SyncHandler2_SignerDB2"><pathd="M1128.504,683.412 C1128.744,702.426 1129.032,725.208 1129.272,744.468 "fill="none"id="SyncHandler2-to-SignerDB2"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="1129.338,749.286,1131.0779,744.4639,1127.4781,744.5089,1129.338,749.286"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="1129.2"y="725.4832">Uses</text></g><!--MD5=[c3f60d65e94da5508ad0c196407a2043]
link HSMAccess to HSM--><gid="link_HSMAccess_HSM"><pathd="M213,677.862 C213,700.242 213,729.42 213,751.824 "fill="none"id="HSMAccess-to-HSM"style="stroke:#666666;stroke-width:0.6;"/><polygonfill="#666666"points="213,756.786,214.8,751.986,211.2,751.986,213,756.786"style="stroke:#666666;stroke-width:0.6;"/><textfill="#666666"font-family="sans-serif"font-size="7.2"font-weight="bold"lengthAdjust="spacing"textLength="19.2"x="224.1"y="721.2832">Uses</text><textfill="#666666"font-family="sans-serif"font-size="7.2"font-style="italic"lengthAdjust="spacing"textLength="40.2"x="213.6"y="729.6645">[PKCS#11]</text></g><!--MD5=[c9954cc1af4dd87dab4d4e1f05280030]
entity SerialHandler--><gid="elem_SerialHandler"><rectfill="#85BBF0"height="103.9078"rx="2.25"ry="2.25"style="stroke:#78A8D8;stroke-width:0.45;"width="174.6"x="273.6"y="254.7"/><textfill="#000000"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="74.7"x="323.55"y="273.7248">«component»</text><textfill="#000000"font-family="sans-serif"font-size="14.4"font-weight="bold"lengthAdjust="spacing"textLength="147.6"x="287.1"y="289.6383">Serial link handler</text><textfill="#000000"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="23.4"x="349.2"y="303.0592">[Go]</text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="3.6"x="359.1"y="317.3019"></text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="149.4"x="286.2"y="331.969">Reads and writes to the</text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="96.3"x="312.75"y="346.6362">serial interface</text></g><!--MD5=[ba1642c7c3a493b3e7478514b208a0b1]
entity Framer--><gid="elem_Framer"><rectfill="#85BBF0"height="89.2406"rx="2.25"ry="2.25"style="stroke:#78A8D8;stroke-width:0.45;"width="190.8"x="197.1"y="432.9"/><textfill="#000000"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="74.7"x="255.15"y="451.9248">«component»</text><textfill="#000000"font-family="sans-serif"font-size="14.4"font-weight="bold"lengthAdjust="spacing"textLength="59.4"x="262.8"y="467.8383">Framer</text><textfill="#000000"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="23.4"x="280.8"y="481.2592">[Go]</text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="3.6"x="290.7"y="495.5019"></text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="169.2"x="209.7"y="510.169">Parses and creates frames</text></g><!--MD5=[deb8adcbb2c5b1682b59342c487f75be]
entity HealthHandler--><gid="elem_HealthHandler"><rectfill="#85BBF0"height="103.9078"rx="2.25"ry="2.25"style="stroke:#78A8D8;stroke-width:0.45;"width="162.9"x="418.05"y="776.25"/><textfill="#000000"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="74.7"x="462.15"y="795.2748">«component»</text><textfill="#000000"font-family="sans-serif"font-size="14.4"font-weight="bold"lengthAdjust="spacing"textLength="104.4"x="447.3"y="811.1883">Health check</text><textfill="#000000"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="23.4"x="487.8"y="824.6092">[Go]</text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="3.6"x="497.7"y="838.8519"></text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="137.7"x="430.65"y="853.519">Handles health check</text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="71.1"x="463.95"y="868.1862">commands</text></g><!--MD5=[58d078c34e72bc75166669b12cea25ab]
entity SyncHandler--><gid="elem_SyncHandler"><rectfill="#85BBF0"height="120.6703"rx="2.25"ry="2.25"style="stroke:#78A8D8;stroke-width:0.45;"width="181.8"x="1048.5"y="767.7"/><textfill="#000000"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="74.7"x="1102.05"y="786.7248">«component»</text><textfill="#000000"font-family="sans-serif"font-size="14.4"font-weight="bold"lengthAdjust="spacing"textLength="128.7"x="1072.35"y="802.6383">Synchronization</text><textfill="#000000"font-family="sans-serif"font-size="14.4"font-weight="bold"lengthAdjust="spacing"textLength="61.2"x="1108.8"y="819.4008">handler</text><textfill="#000000"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="23.4"x="1127.7"y="832.8217">[Go]</text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="3.6"x="1137.6"y="847.0644"></text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="156.6"x="1061.1"y="861.7315">Handles synchronization</text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="107.1"x="1085.85"y="876.3987">with other signer</text></g><!--MD5=[e834ab3daed066426c91d2e7962575e2]
entity SyncHandler2--><gid="elem_SyncHandler2"><rectfill="#CCCCCC"height="120.6703"rx="2.25"ry="2.25"style="stroke:#BFBFBF;stroke-width:0.45;"width="181.8"x="1611.9"y="1060.2"/><textfill="#000000"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="124.2"x="1640.7"y="1079.2248">«external_component»</text><textfill="#000000"font-family="sans-serif"font-size="14.4"font-weight="bold"lengthAdjust="spacing"textLength="128.7"x="1635.75"y="1095.1383">Synchronization</text><textfill="#000000"font-family="sans-serif"font-size="14.4"font-weight="bold"lengthAdjust="spacing"textLength="61.2"x="1672.2"y="1111.9008">handler</text><textfill="#000000"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="23.4"x="1691.1"y="1125.3217">[Go]</text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="3.6"x="1701"y="1139.5644"></text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="156.6"x="1624.5"y="1154.2315">Handles synchronization</text><textfill="#000000"font-family="sans-serif"font-size="12.6"lengthAdjust="spacing"textLength="107.1"x="1649.25"y="1168.8987">with other signer</text></g><!--MD5=[d6aaf1a0f5c32983fa5796596196f201]
link SignerClient to SerialHandler--><gid="link_SignerClient_SerialHandler"><pathd="M360.9,82.989 C360.9,126.036 360.9,197.109 360.9,247.338 "fill="none"id="SignerClient-to-SerialHandler"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="360.9,254.592,363.6,247.392,358.2,247.392,360.9,254.592"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="390.15"y="120.7248">Uses</text><textfill="#666666"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="85.5"x="361.8"y="133.2967">[USB serial link]</text></g><!--MD5=[de40622977f577968ad15aec8c744a51]
link SerialHandler to Framer--><gid="link_SerialHandler_Framer"><pathd="M340.281,358.344 C331.623,379.773 321.579,404.622 312.939,425.997 "fill="none"id="SerialHandler-to-Framer"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="310.185,432.81,315.3885,427.1484,310.3827,425.1229,310.185,432.81"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="330.3"y="396.1248">Uses</text></g><!--MD5=[1211b684f0f4acfb9ea05d642655511a]
link SerialHandler to ServerProtocol--><gid="link_SerialHandler_ServerProtocol"><pathd="M402.669,358.344 C418.563,377.739 436.752,399.951 453.051,419.841 "fill="none"id="SerialHandler-to-ServerProtocol"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="457.812,425.655,455.3351,418.3753,451.1591,421.7989,457.812,425.655"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="435.6"y="396.1248">Uses</text></g><!--MD5=[eb969237a50a57975d692cb125e88891]
link ServerProtocol to ProtocolHandler--><gid="link_ServerProtocol_ProtocolHandler"><pathd="M499.5,529.344 C499.5,548.244 499.5,569.808 499.5,589.302 "fill="none"id="ServerProtocol-to-ProtocolHandler"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="499.5,596.655,502.2,589.455,496.8,589.455,499.5,596.655"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="500.4"y="567.1248">Uses</text></g><!--MD5=[6904b7103d89ba041a727edd177c7033]
link ProtocolHandler to X509SigningHandler--><gid="link_ProtocolHandler_X509SigningHandler"><pathd="M558.558,700.29 C584.325,722.502 614.601,748.62 640.971,771.354 "fill="none"id="ProtocolHandler-to-X509SigningHandler"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="646.533,776.16,642.847,769.4114,639.3184,773.4991,646.533,776.16"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="603.9"y="738.1248">Uses</text></g><!--MD5=[6e0d1b21c46cf0a1aeb331a2c465700e]
link ProtocolHandler to X509CRLHandler--><gid="link_ProtocolHandler_X509CRLHandler"><pathd="M446.112,700.29 C422.919,722.412 395.685,748.404 371.925,771.075 "fill="none"id="ProtocolHandler-to-X509CRLHandler"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="366.597,776.16,373.6678,773.1379,369.9372,769.2337,366.597,776.16"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="418.5"y="738.1248">Uses</text></g><!--MD5=[8bd9096c966b0786426f772de5ff586e]
link ProtocolHandler to X509RevocationHandler--><gid="link_ProtocolHandler_X509RevocationHandler"><pathd="M575.811,674.658 C640.368,696.861 734.823,731.223 814.5,767.7 C818.172,769.383 821.889,771.138 825.624,772.938 "fill="none"id="ProtocolHandler-to-X509RevocationHandler"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="832.374,776.241,827.0923,770.6523,824.7199,775.5032,832.374,776.241"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="747.9"y="738.1248">Uses</text></g><!--MD5=[7630a6f192d59137aef045c59458f3ad]
link ProtocolHandler to OpenPGPSigningHandler--><gid="link_ProtocolHandler_OpenPGPSigningHandler"><pathd="M423.432,678.825 C367.416,701.298 289.881,734.022 224.1,767.7 C220.977,769.302 217.818,770.958 214.641,772.659 "fill="none"id="ProtocolHandler-to-OpenPGPSigningHandler"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="208.098,776.214,215.7124,775.1409,213.1293,770.3988,208.098,776.214"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="306.9"y="738.1248">Uses</text></g><!--MD5=[dd0964938e0e2c1d6f26fa00fb2a70e5]
link ProtocolHandler to HealthHandler--><gid="link_ProtocolHandler_HealthHandler"><pathd="M499.5,700.29 C499.5,721.665 499.5,746.658 499.5,768.78 "fill="none"id="ProtocolHandler-to-HealthHandler"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="499.5,776.16,502.2,768.96,496.8,768.96,499.5,776.16"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="500.4"y="738.1248">Uses</text></g><!--MD5=[c03f96c452f26815ba38daf1adeb88ce]
link X509SigningHandler to HSMAccess--><gid="link_X509SigningHandler_HSMAccess"><pathd="M677.52,879.966 C662.283,902.655 641.277,927.36 615.6,941.4 C588.78,956.07 575.649,937.422 547.2,948.6 C481.68,974.358 418.59,1024.371 375.507,1063.692 "fill="none"id="X509SigningHandler-to-HSMAccess"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="370.089,1068.669,377.2159,1065.7816,373.56,1061.8074,370.089,1068.669"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="648"y="932.5248">Uses</text></g><!--MD5=[049c56c40f5ce55919cf848cfeae4412]
link X509SigningHandler to SignerDB--><gid="link_X509SigningHandler_SignerDB"><pathd="M703.953,880.029 C702.9,899.325 701.19,921.438 698.4,941.4 C692.955,980.334 683.694,1023.417 675.585,1057.473 "fill="none"id="X509SigningHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="673.884,1064.601,678.1946,1058.2332,672.9447,1056.969,673.884,1064.601"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="39.6"x="702.9"y="932.5248">Writes</text></g><!--MD5=[82b942a05dde6d4abd870be92d5b79e1]
link X509RevocationHandler to SignerDB--><gid="link_X509RevocationHandler_SignerDB"><pathd="M840.087,879.831 C812.448,899.19 782.847,922.842 759.6,948.6 C730.332,981.027 705.519,1023.372 687.933,1057.815 "fill="none"id="X509RevocationHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="684.513,1064.592,690.1646,1059.3776,685.3424,1056.9473,684.513,1064.592"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="39.6"x="792.9"y="932.5248">Writes</text></g><!--MD5=[f3fbeda310f19b6def0836f108fb90ae]
link X509CRLHandler to HSMAccess--><gid="link_X509CRLHandler_HSMAccess"><pathd="M292.59,879.804 C288.819,891.288 285.462,903.564 283.5,915.3 C275.256,964.665 286.569,1020.636 298.638,1061.496 "fill="none"id="X509CRLHandler-to-HSMAccess"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="300.735,1068.426,301.2234,1060.7519,296.057,1062.323,300.735,1068.426"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="284.4"y="932.5248">Uses</text></g><!--MD5=[1be83cc4a91ae3618c25e12be491020b]
link X509CRLHandler to SignerDB--><gid="link_X509CRLHandler_SignerDB"><pathd="M386.784,879.858 C391.959,882.846 397.161,885.69 402.3,888.3 C433.449,904.095 447.174,895.734 476.1,915.3 C491.85,925.956 559.26,1002.663 607.833,1058.958 "fill="none"id="X509CRLHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="612.774,1064.682,610.1229,1057.4639,606.0304,1060.9869,612.774,1064.682"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="36.9"x="502.2"y="932.5248">Reads</text></g><!--MD5=[1531770e9c84b9a37109fc722a3e41bc]
link OpenPGPSigningHandler to HSMAccess--><gid="link_OpenPGPSigningHandler_HSMAccess"><pathd="M159.183,879.867 C193.365,930.987 245.898,1009.53 281.421,1062.666 "fill="none"id="OpenPGPSigningHandler-to-HSMAccess"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="285.453,1068.687,283.6946,1061.2012,279.2059,1064.2032,285.453,1068.687"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="200.7"y="932.5248">Uses</text></g><!--MD5=[5647650e77d9b601644db74356963c93]
link OpenPGPSigningHandler to SignerDB--><gid="link_OpenPGPSigningHandler_SignerDB"><pathd="M204.021,879.804 C210.672,882.99 217.404,885.879 224.1,888.3 C297.945,914.994 327.816,881.514 398.7,915.3 C414.297,922.734 414.234,930.33 427.5,941.4 C476.604,982.377 533.538,1026.126 578.745,1060.029 "fill="none"id="OpenPGPSigningHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="584.766,1064.529,580.6167,1058.0549,577.3829,1062.3796,584.766,1064.529"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="39.6"x="428.4"y="932.5248">Writes</text></g><!--MD5=[01fcd97973dce0a15ca3f22ec6f9a33e]
link HealthHandler to HSMAccess--><gid="link_HealthHandler_HSMAccess"><pathd="M417.816,879.39 C412.587,882.441 407.385,885.438 402.3,888.3 C379.539,901.116 365.301,894.06 350.1,915.3 C319.914,957.483 314.073,1017.216 314.694,1061.199 "fill="none"id="HealthHandler-to-HSMAccess"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="314.865,1068.669,317.3972,1061.4083,311.9986,1061.5336,314.865,1068.669"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="43.2"x="351"y="932.5248">Checks</text></g><!--MD5=[8e666ca13f2e292cf801466daea72d33]
link HealthHandler to SignerDB--><gid="link_HealthHandler_SignerDB"><pathd="M530.271,879.84 C537.129,891.441 544.293,903.744 550.8,915.3 C577.566,962.838 606.564,1017.405 627.903,1058.175 "fill="none"id="HealthHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="631.26,1064.601,630.3086,1056.9705,625.5259,1059.4776,631.26,1064.601"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="43.2"x="564.3"y="932.5248">Checks</text></g><!--MD5=[f6d0a255b9300fdc869edf618776ea20]
link SyncHandler to SignerDB--><gid="link_SyncHandler_SignerDB"><pathd="M1048.374,881.235 C1043.001,883.755 1037.61,886.122 1032.3,888.3 C950.472,921.771 927.585,925.623 840.6,941.4 C822.816,944.622 774.855,938.916 759.6,948.6 C720.432,973.449 694.809,1019.592 679.32,1057.689 "fill="none"id="SyncHandler-to-SignerDB"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="676.647,1064.457,681.809,1058.7576,676.7886,1056.7687,676.647,1064.457"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="958.5"y="932.5248">Uses</text></g><!--MD5=[ce0bb68167ca79996a54c04fb7a06609]
link SyncHandler to NATS--><gid="link_SyncHandler_NATS"><pathd="M1203.021,894.204 C1217.754,911.142 1232.631,929.898 1244.7,948.6 C1274.031,994.032 1297.854,1052.415 1310.994,1087.866 "fill="none"id="SyncHandler-NATS"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="1313.478,1094.643,1313.5326,1086.9536,1308.4631,1088.8137,1313.478,1094.643"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="1198.035,888.525,1200.76,895.7156,1204.8161,892.1508,1198.035,888.525"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="75.6"x="1242.45"y="926.2248">Synchronize</text><textfill="#666666"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="85.5"x="1237.5"y="938.7967">[NATS protocol]</text></g><!--MD5=[ac10af24f910bae24644d4ccf6ac738e]
link NATS to NATS2--><gid="link_NATS_NATS2"><pathd="M1345.383,1152.081 C1366.218,1179.135 1397.943,1219.356 1427.4,1252.8 C1442.889,1270.386 1460.997,1289.232 1475.991,1304.406 "fill="none"id="NATS-NATS2"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="1481.364,1309.824,1478.1997,1302.8156,1474.3717,1306.6244,1481.364,1309.824"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="1340.847,1146.177,1343.0912,1153.5318,1347.3739,1150.2427,1340.847,1146.177"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="75.6"x="1428.3"y="1237.6248">Synchronize</text><textfill="#666666"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="61.2"x="1435.5"y="1250.1967">[NATS/TLS]</text></g><!--MD5=[06c6604c5c35b105f23e33e7e3e4aba5]
link SyncHandler2 to NATS2--><gid="link_SyncHandler2_NATS2"><pathd="M1643.04,1186.362 C1606.959,1225.593 1562.661,1273.752 1534.527,1304.334 "fill="none"id="SyncHandler2-NATS2"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="1529.469,1309.842,1536.3264,1306.3627,1532.3478,1302.7116,1529.469,1309.842"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="1648.143,1180.818,1641.2814,1184.289,1645.2556,1187.9449,1648.143,1180.818"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="75.6"x="1610.55"y="1237.6248">Synchronize</text><textfill="#666666"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="85.5"x="1605.6"y="1250.1967">[NATS protocol]</text></g><!--MD5=[19a8c02a4a6c3e2efd241ec79f03fa40]
link SyncHandler2 to SignerDB2--><gid="link_SyncHandler2_SignerDB2"><pathd="M1703.556,1180.818 C1703.916,1209.339 1704.348,1243.512 1704.708,1272.402 "fill="none"id="SyncHandler2-to-SignerDB2"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="1704.807,1279.629,1707.4168,1272.3958,1702.0172,1272.4633,1704.807,1279.629"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="1704.6"y="1243.9248">Uses</text></g><!--MD5=[c3f60d65e94da5508ad0c196407a2043]
link HSMAccess to HSM--><gid="link_HSMAccess_HSM"><pathd="M319.5,1172.493 C319.5,1206.063 319.5,1249.83 319.5,1283.436 "fill="none"id="HSMAccess-to-HSM"style="stroke:#666666;stroke-width:0.9;"/><polygonfill="#666666"points="319.5,1290.879,322.2,1283.679,316.8,1283.679,319.5,1290.879"style="stroke:#666666;stroke-width:0.9;"/><textfill="#666666"font-family="sans-serif"font-size="10.8"font-weight="bold"lengthAdjust="spacing"textLength="28.8"x="336.15"y="1237.6248">Uses</text><textfill="#666666"font-family="sans-serif"font-size="10.8"font-style="italic"lengthAdjust="spacing"textLength="60.3"x="320.4"y="1250.1967">[PKCS#11]</text></g><!--MD5=[5a23765b41eba2fb33cbd44d9ccde792]
Rel(SignerClient, SerialHandler, "Uses", "USB serial link")
Rel(SerialHandler, ProtocolHandler, "Uses")
Rel(SerialHandler, Framer, "Uses")
Rel(SerialHandler, ServerProtocol, "Uses")
Rel(ServerProtocol, ProtocolHandler, "Uses")
Rel(ProtocolHandler, X509SigningHandler, "Uses")
Rel(ProtocolHandler, X509CRLHandler, "Uses")
@ -770,7 +778,9 @@ rectangle "==Signer client\n\n Send commands to signer" <<external_system>> as S
rectangle "==Signer server\n<size:12>[System]</size>" <<boundary>> as Signer {
rectangle "==Signer Software" <<boundary>> as SignerSoftware {
rectangle "==Serial link handler\n//<size:12>[Go]</size>//\n\n Reads and writes to the serial interface, parses and creates frames" <<component>> as SerialHandler
rectangle "==Serial link handler\n//<size:12>[Go]</size>//\n\n Reads and writes to the serial interface" <<component>> as SerialHandler
rectangle "==Framer\n//<size:12>[Go]</size>//\n\n Parses and creates frames" <<component>> as Framer
rectangle "==Server protocol\n//<size:12>[Go]</size>//\n\n Server protocol state machine" <<component>> as ServerProtocol
rectangle "==Protocol handler\n//<size:12>[Go]</size>//\n\n Parses and creates protocol messages" <<component>> as ProtocolHandler