Files
ahriman/docs/ahriman-architecture.svg
2022-05-08 03:58:53 +03:00

5250 lines
503 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 3.0.0 (0)
-->
<!-- Title: G Pages: 1 -->
<svg width="11226pt" height="4186pt"
viewBox="0.00 0.00 11225.95 4185.79" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 4181.79)">
<title>G</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-4181.79 11221.95,-4181.79 11221.95,4 -4,4"/>
<!-- ahriman_application_ahriman -->
<g id="node1" class="node">
<title>ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#723131" stroke="black" cx="3042.8" cy="-28.99" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="3042.8" y="-37.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3042.8" y="-26.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3042.8" y="-15.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman</text>
</g>
<!-- ahriman_application_application -->
<g id="node2" class="node">
<title>ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="2950.8" cy="-874.19" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="2950.8" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2950.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2950.8" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application</text>
</g>
<!-- ahriman_application_handlers_add -->
<g id="node8" class="node">
<title>ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="2820.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2820.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2820.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2820.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2820.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">add</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_add -->
<g id="edge1" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2954.88,-845.15C2957.38,-821.45 2958.74,-786.83 2950.8,-757.87"/>
<path fill="none" stroke="black" d="M2950.8,-755.87C2944.94,-734.52 2900.66,-700.88 2865.38,-676.92"/>
<polygon fill="#db0505" stroke="black" points="2866.89,-673.71 2856.63,-671.04 2862.99,-679.52 2866.89,-673.71"/>
</g>
<!-- ahriman_application_handlers_clean -->
<g id="node10" class="node">
<title>ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3080.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3080.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3080.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3080.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3080.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">clean</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge2" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2995.06,-864.92C3047.34,-852.26 3128.1,-822.37 3134.8,-757.87"/>
<path fill="none" stroke="black" d="M3134.8,-755.87C3137.37,-731.08 3125.81,-706.03 3112.73,-686.35"/>
<polygon fill="#db0505" stroke="black" points="3115.48,-684.17 3106.87,-677.99 3109.75,-688.19 3115.48,-684.17"/>
</g>
<!-- ahriman_application_handlers_key_import -->
<g id="node14" class="node">
<title>ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3302.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3302.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3302.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3302.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3302.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">key_import</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge3" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3191.8,-755.87C3216.43,-731.63 3244.38,-704.56 3266.07,-683.64"/>
<polygon fill="#db0505" stroke="black" points="3268.69,-685.97 3273.46,-676.51 3263.83,-680.93 3268.69,-685.97"/>
</g>
<!-- ahriman_application_handlers_patch -->
<g id="node15" class="node">
<title>ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="362.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="362.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="362.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="362.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="362.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patch</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge4" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2903.94,-872.74C2592.55,-869.57 831.41,-849.22 733.8,-793.64 717.37,-784.29 729.31,-761.68 710.8,-757.87"/>
</g>
<!-- ahriman_application_handlers_rebuild -->
<g id="node16" class="node">
<title>ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="1086.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="1086.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1086.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="1086.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="1086.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">rebuild</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge5" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2905.3,-867.08C2746.34,-845.78 2200.96,-773.27 1749.8,-720.1 1525.4,-693.66 1257.83,-665.83 1143.32,-654.09"/>
<polygon fill="#db0505" stroke="black" points="1143.35,-650.57 1133.05,-653.04 1142.64,-657.54 1143.35,-650.57"/>
</g>
<!-- ahriman_application_handlers_remove -->
<g id="node17" class="node">
<title>ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3413.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3413.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3413.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3413.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3413.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remove</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge6" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2994.75,-863.83C3046.84,-851.77 3135.43,-828.16 3205.8,-793.64 3269.06,-762.61 3334.49,-713.61 3374.66,-681.23"/>
<polygon fill="#db0505" stroke="black" points="3377.04,-683.8 3382.6,-674.78 3372.63,-678.37 3377.04,-683.8"/>
</g>
<!-- ahriman_application_handlers_remove_unknown -->
<g id="node18" class="node">
<title>ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="2950.8" cy="-647.34" rx="65.11" ry="36.54"/>
<text text-anchor="middle" x="2950.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2950.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2950.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2950.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remove_unknown</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge7" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2950.8,-755.87C2945.39,-736.19 2944.61,-713.7 2945.48,-694.39"/>
<polygon fill="#db0505" stroke="black" points="2948.98,-694.52 2946.09,-684.33 2941.99,-694.09 2948.98,-694.52"/>
</g>
<!-- ahriman_application_handlers_report -->
<g id="node19" class="node">
<title>ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="975.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="975.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="975.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="975.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="975.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_report -->
<g id="edge8" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2904.3,-871.54C2743.76,-865.52 2197.98,-842.54 1749.8,-793.64 1428.46,-758.59 1332.87,-799.16 1030.8,-684.1 1026.55,-682.49 1022.29,-680.51 1018.13,-678.31"/>
<polygon fill="#db0505" stroke="black" points="1019.63,-675.14 1009.21,-673.23 1016.16,-681.22 1019.63,-675.14"/>
</g>
<!-- ahriman_application_handlers_search -->
<g id="node21" class="node">
<title>ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="3524.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3524.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3524.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3524.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3524.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">search</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_search -->
<g id="edge9" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2996.42,-868.05C3128.95,-852.6 3506.28,-804.76 3533.8,-757.87"/>
<path fill="none" stroke="black" d="M3533.8,-755.87C3544.8,-737.13 3543.98,-713.29 3539.8,-692.82"/>
<polygon fill="#db0505" stroke="black" points="3543.2,-692.01 3537.51,-683.08 3536.39,-693.61 3543.2,-692.01"/>
</g>
<!-- ahriman_application_handlers_setup -->
<g id="node22" class="node">
<title>ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="10664.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10664.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10664.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10664.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10664.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">setup</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge10" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2997.7,-872.89C3476.27,-869.71 7480.36,-841.9 8674.8,-793.64 9402.94,-764.23 9584.61,-745.09 10310.8,-684.1 10416.04,-675.27 10538.6,-662.28 10608.41,-654.63"/>
<polygon fill="#db0505" stroke="black" points="10609.18,-658.06 10618.74,-653.49 10608.41,-651.11 10609.18,-658.06"/>
</g>
<!-- ahriman_application_handlers_sign -->
<g id="node23" class="node">
<title>ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="10775.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10775.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10775.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10775.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10775.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge11" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2997.84,-872.75C3628.77,-866.84 10395.11,-803.19 10443.8,-793.64 10573.71,-768.17 10603.16,-744.84 10720.8,-684.1 10724.72,-682.08 10728.71,-679.85 10732.66,-677.52"/>
<polygon fill="#db0505" stroke="black" points="10734.5,-680.5 10741.21,-672.31 10730.85,-674.53 10734.5,-680.5"/>
</g>
<!-- ahriman_application_handlers_status -->
<g id="node24" class="node">
<title>ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="2587.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2587.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2587.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2587.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2587.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_status -->
<g id="edge12" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2904.01,-872.75C2834.35,-869.92 2701.91,-855.98 2611.8,-793.64 2596.05,-782.75 2594.81,-775.69 2587.8,-757.87"/>
<path fill="none" stroke="black" d="M2587.8,-755.87C2580.17,-736.49 2579.19,-713.58 2580.51,-693.9"/>
<polygon fill="#db0505" stroke="black" points="2584,-694.21 2581.39,-683.94 2577.02,-693.59 2584,-694.21"/>
</g>
<!-- ahriman_application_handlers_status_update -->
<g id="node25" class="node">
<title>ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="482.8" cy="-647.34" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="482.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="482.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="482.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="482.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status_update</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge13" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2903.81,-872.44C2650.74,-868.23 1447.78,-845.73 1079.8,-793.64 879.56,-765.3 648.49,-699.25 542.07,-666.88"/>
<polygon fill="#db0505" stroke="black" points="543.05,-663.52 532.47,-663.95 541.01,-670.22 543.05,-663.52"/>
</g>
<!-- ahriman_application_handlers_sync -->
<g id="node26" class="node">
<title>ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3191.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3191.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3191.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3191.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3191.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sync</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_sync -->
<g id="edge14" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2992.36,-860.71C3033.68,-847.35 3098.05,-823.92 3148.8,-793.64 3170.14,-780.91 3174.08,-775.31 3191.8,-757.87"/>
<path fill="none" stroke="black" d="M3191.8,-755.87C3208.01,-739.92 3208.79,-714.79 3205.15,-692.84"/>
<polygon fill="#db0505" stroke="black" points="3208.59,-692.15 3203.21,-683.02 3201.72,-693.51 3208.59,-692.15"/>
</g>
<!-- ahriman_application_handlers_update -->
<g id="node28" class="node">
<title>ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="2709.8" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2709.8" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2709.8" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2709.8" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2709.8" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_update -->
<g id="edge15" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2587.8,-755.87C2579.74,-735.42 2626.63,-700.06 2664.6,-675.49"/>
<polygon fill="#db0505" stroke="black" points="2666.48,-678.44 2673.03,-670.12 2662.72,-672.54 2666.48,-678.44"/>
</g>
<!-- ahriman_application_application_application -->
<g id="node3" class="node">
<title>ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="2950.8" cy="-991.51" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2950.8" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2950.8" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2950.8" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2950.8" y="-972.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application</text>
</g>
<!-- ahriman_application_application_application&#45;&gt;ahriman_application_application -->
<g id="edge16" class="edge">
<title>ahriman_application_application_application&#45;&gt;ahriman_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2950.8,-954.65C2950.8,-941.61 2950.8,-926.82 2950.8,-913.57"/>
<polygon fill="#913030" stroke="black" points="2954.3,-913.33 2950.8,-903.33 2947.3,-913.33 2954.3,-913.33"/>
</g>
<!-- ahriman_application_application_application_packages -->
<g id="node4" class="node">
<title>ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="2971.8" cy="-1101.05" rx="77.56" ry="36.54"/>
<text text-anchor="middle" x="2971.8" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2971.8" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2971.8" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2971.8" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application_packages</text>
</g>
<!-- ahriman_application_application_application_packages&#45;&gt;ahriman_application_application_application -->
<g id="edge17" class="edge">
<title>ahriman_application_application_application_packages&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2964.8,-1064.24C2963.17,-1055.89 2961.42,-1046.9 2959.72,-1038.19"/>
<polygon fill="#732626" stroke="black" points="2963.11,-1037.31 2957.76,-1028.16 2956.24,-1038.65 2963.11,-1037.31"/>
</g>
<!-- ahriman_application_application_application_properties -->
<g id="node5" class="node">
<title>ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ac2b2b" stroke="black" cx="2932.8" cy="-1210.59" rx="79.39" ry="36.54"/>
<text text-anchor="middle" x="2932.8" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2932.8" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2932.8" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2932.8" y="-1191.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application_properties</text>
</g>
<!-- ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge18" class="edge">
<title>ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2945.67,-1174.08C2948.8,-1165.45 2952.19,-1156.11 2955.45,-1147.11"/>
<polygon fill="#ac2b2b" stroke="black" points="2958.81,-1148.12 2958.93,-1137.52 2952.23,-1145.73 2958.81,-1148.12"/>
</g>
<!-- ahriman_application_application_application_repository -->
<g id="node6" class="node">
<title>ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="2758.8" cy="-1101.05" rx="79.39" ry="36.54"/>
<text text-anchor="middle" x="2758.8" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2758.8" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2758.8" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2758.8" y="-1082.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application_repository</text>
</g>
<!-- ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge19" class="edge">
<title>ahriman_application_application_application_properties&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2886.17,-1180.77C2864.03,-1167.09 2837.41,-1150.64 2814.25,-1136.32"/>
<polygon fill="#ac2b2b" stroke="black" points="2815.9,-1133.23 2805.55,-1130.95 2812.22,-1139.18 2815.9,-1133.23"/>
</g>
<!-- ahriman_application_application_application_repository&#45;&gt;ahriman_application_application_application -->
<g id="edge20" class="edge">
<title>ahriman_application_application_application_repository&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2808.74,-1072.07C2838.22,-1055.56 2875.29,-1034.8 2904.16,-1018.63"/>
<polygon fill="#732626" stroke="black" points="2906.22,-1021.49 2913.23,-1013.55 2902.8,-1015.38 2906.22,-1021.49"/>
</g>
<!-- ahriman_application_handlers -->
<g id="node7" class="node">
<title>ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="3042.8" cy="-122.97" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="3042.8" y="-131.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3042.8" y="-120.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3042.8" y="-109.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers</text>
</g>
<!-- ahriman_application_handlers&#45;&gt;ahriman_application_ahriman -->
<g id="edge21" class="edge">
<title>ahriman_application_handlers&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3042.8,-93.88C3042.8,-85.84 3042.8,-76.94 3042.8,-68.39"/>
<polygon fill="#950303" stroke="black" points="3046.3,-68.23 3042.8,-58.23 3039.3,-68.23 3046.3,-68.23"/>
</g>
<!-- ahriman_application_handlers_add&#45;&gt;ahriman_application_handlers -->
<g id="edge22" class="edge">
<title>ahriman_application_handlers_add&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2855.24,-622.34C2862.19,-618.08 2869.58,-613.93 2876.8,-610.57 2962.92,-570.42 3073.39,-641.31 3080.8,-546.57"/>
</g>
<!-- ahriman_application_handlers_backup -->
<g id="node9" class="node">
<title>ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3155.8" cy="-334.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3155.8" y="-348.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3155.8" y="-337.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3155.8" y="-326.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3155.8" y="-315.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">backup</text>
</g>
<!-- ahriman_application_handlers_backup&#45;&gt;ahriman_application_handlers -->
<g id="edge23" class="edge">
<title>ahriman_application_handlers_backup&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3128.68,-303.75C3111.74,-283.41 3091.22,-254.88 3080.8,-225.74"/>
</g>
<!-- ahriman_application_handlers_clean&#45;&gt;ahriman_application_handlers -->
<g id="edge24" class="edge">
<title>ahriman_application_handlers_clean&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3079.44,-610.27C3079.07,-591.28 3079.15,-567.64 3080.8,-546.57"/>
</g>
<!-- ahriman_application_handlers_dump -->
<g id="node11" class="node">
<title>ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="64.8" cy="-1429.67" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="64.8" y="-1443.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="64.8" y="-1432.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="64.8" y="-1421.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="64.8" y="-1410.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">dump</text>
</g>
<!-- ahriman_application_handlers_dump&#45;&gt;ahriman_application_handlers -->
<g id="edge25" class="edge">
<title>ahriman_application_handlers_dump&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M85.93,-1396.83C105.81,-1367.14 136.67,-1321.78 164.8,-1283.36 176.77,-1267 186.22,-1266.53 192.8,-1247.36 314.05,-893.96 -5.23,-737.67 168.8,-407.04 235.09,-281.09 303.41,-285.07 432.8,-225.74"/>
<path fill="none" stroke="black" d="M432.8,-223.74C552.78,-168.71 2614.44,-131.24 2985.74,-124.92"/>
<polygon fill="#993333" stroke="black" points="2986.04,-128.42 2995.98,-124.75 2985.92,-121.42 2986.04,-128.42"/>
</g>
<!-- ahriman_application_handlers_handler -->
<g id="node12" class="node">
<title>ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="10550.8" cy="-1852.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="10550.8" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10550.8" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10550.8" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="10550.8" y="-1833.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handler</text>
</g>
<!-- ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers -->
<g id="edge26" class="edge">
<title>ahriman_application_handlers_handler&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10551.06,-1815.16C10551.36,-1772.08 10551.8,-1697.88 10551.8,-1634.19 10551.8,-1634.19 10551.8,-1634.19 10551.8,-646.34 10551.8,-587.69 10552.69,-570.49 10575.8,-516.58 10591.31,-480.38 10621.22,-483.65 10627.8,-444.81"/>
<path fill="none" stroke="black" d="M10627.8,-442.81C10655.04,-244.48 3794.8,-135.37 3099.46,-124.82"/>
<polygon fill="#8a2e2e" stroke="black" points="3099.49,-121.32 3089.44,-124.67 3099.39,-128.32 3099.49,-121.32"/>
</g>
<!-- ahriman_application_handlers_help -->
<g id="node13" class="node">
<title>ahriman_application_handlers_help</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="900.8" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="900.8" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="900.8" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="900.8" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="900.8" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">help</text>
</g>
<!-- ahriman_application_handlers_help&#45;&gt;ahriman_application_handlers -->
<g id="edge27" class="edge">
<title>ahriman_application_handlers_help&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M935.24,-199.57C943.57,-194.86 952.71,-190.58 961.8,-187.97 1160.77,-130.63 2670.87,-124.67 2985.48,-124.05"/>
<polygon fill="#a13535" stroke="black" points="2985.74,-127.55 2995.73,-124.03 2985.72,-120.55 2985.74,-127.55"/>
</g>
<!-- ahriman_application_handlers_key_import&#45;&gt;ahriman_application_handlers -->
<g id="edge28" class="edge">
<title>ahriman_application_handlers_key_import&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3268.24,-622.3C3261.6,-618.13 3254.6,-614.03 3247.8,-610.57 3176.98,-574.48 3074.6,-625.82 3080.8,-546.57"/>
</g>
<!-- ahriman_application_handlers_patch&#45;&gt;ahriman_application_handlers -->
<g id="edge29" class="edge">
<title>ahriman_application_handlers_patch&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M397.02,-621.95C432.34,-596.19 482.37,-557.78 482.8,-546.57"/>
<path fill="none" stroke="black" d="M482.8,-544.57C486.43,-449 399.94,-425.09 432.8,-335.27"/>
</g>
<!-- ahriman_application_handlers_rebuild&#45;&gt;ahriman_application_handlers -->
<g id="edge30" class="edge">
<title>ahriman_application_handlers_rebuild&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1051.58,-623.08C1019.53,-600.64 977,-567.14 975.8,-546.57"/>
</g>
<!-- ahriman_application_handlers_remove&#45;&gt;ahriman_application_handlers -->
<g id="edge31" class="edge">
<title>ahriman_application_handlers_remove&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3379.91,-621.69C3373.15,-617.53 3365.93,-613.59 3358.8,-610.57 3242.09,-561.03 3070.92,-672.98 3080.8,-546.57"/>
</g>
<!-- ahriman_application_handlers_remove_unknown&#45;&gt;ahriman_application_handlers -->
<g id="edge32" class="edge">
<title>ahriman_application_handlers_remove_unknown&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2996.9,-620.99C3033.6,-599.26 3079.11,-568.13 3080.8,-546.57"/>
</g>
<!-- ahriman_application_handlers_report&#45;&gt;ahriman_application_handlers -->
<g id="edge33" class="edge">
<title>ahriman_application_handlers_report&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M976.81,-610.29C977.09,-591.31 977.04,-567.67 975.8,-546.57"/>
</g>
<!-- ahriman_application_handlers_restore -->
<g id="node20" class="node">
<title>ahriman_application_handlers_restore</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="3005.8" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3005.8" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3005.8" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3005.8" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3005.8" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">restore</text>
</g>
<!-- ahriman_application_handlers_restore&#45;&gt;ahriman_application_handlers -->
<g id="edge34" class="edge">
<title>ahriman_application_handlers_restore&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3018.63,-189.12C3022.04,-179.93 3025.73,-169.98 3029.18,-160.68"/>
<polygon fill="#a13535" stroke="black" points="3032.47,-161.89 3032.66,-151.29 3025.9,-159.45 3032.47,-161.89"/>
</g>
<!-- ahriman_application_handlers_search&#45;&gt;ahriman_application_handlers -->
<g id="edge35" class="edge">
<title>ahriman_application_handlers_search&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3491.36,-621.51C3484.5,-617.31 3477.12,-613.41 3469.8,-610.57 3388.11,-578.9 3070.98,-633.63 3080.8,-546.57"/>
</g>
<!-- ahriman_application_handlers_setup&#45;&gt;ahriman_application_handlers -->
<g id="edge36" class="edge">
<title>ahriman_application_handlers_setup&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10650.92,-612.12C10636.43,-572.03 10617.17,-503.62 10627.8,-444.81"/>
</g>
<!-- ahriman_application_handlers_sign&#45;&gt;ahriman_application_handlers -->
<g id="edge37" class="edge">
<title>ahriman_application_handlers_sign&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10756.31,-613.74C10734.99,-574.91 10703.8,-507.42 10703.8,-444.81 10703.8,-444.81 10703.8,-444.81 10703.8,-333.27 10703.8,-263.06 10700.22,-226.91 10641.8,-187.97 10558.48,-132.42 3793.56,-124.67 3100.03,-124.02"/>
<polygon fill="#993333" stroke="black" points="3099.79,-120.52 3089.79,-124.01 3099.79,-127.52 3099.79,-120.52"/>
</g>
<!-- ahriman_application_handlers_status&#45;&gt;ahriman_application_handlers -->
<g id="edge38" class="edge">
<title>ahriman_application_handlers_status&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2624.12,-623.74C2633.5,-618.72 2643.78,-613.91 2653.8,-610.57 2744.79,-580.14 3073.32,-642.23 3080.8,-546.57"/>
<path fill="none" stroke="black" d="M3080.8,-544.57C3086.32,-473.94 3104.67,-292.45 3080.8,-225.74"/>
<path fill="none" stroke="black" d="M3080.8,-223.74C3072.84,-202.95 3063.99,-179.72 3056.83,-160.91"/>
<polygon fill="#7a2828" stroke="black" points="3060.08,-159.61 3053.25,-151.51 3053.54,-162.1 3060.08,-159.61"/>
</g>
<!-- ahriman_application_handlers_status_update&#45;&gt;ahriman_application_handlers -->
<g id="edge39" class="edge">
<title>ahriman_application_handlers_status_update&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M482.14,-610.31C481.96,-591.34 481.99,-567.69 482.8,-546.57"/>
</g>
<!-- ahriman_application_handlers_sync&#45;&gt;ahriman_application_handlers -->
<g id="edge40" class="edge">
<title>ahriman_application_handlers_sync&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3155.99,-623.49C3122.94,-601.04 3079.18,-567.24 3080.8,-546.57"/>
</g>
<!-- ahriman_application_handlers_unsafe_commands -->
<g id="node27" class="node">
<title>ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="247.8" cy="-443.81" rx="70.01" ry="36.54"/>
<text text-anchor="middle" x="247.8" y="-457.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="247.8" y="-446.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="247.8" y="-435.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="247.8" y="-424.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">unsafe_commands</text>
</g>
<!-- ahriman_application_handlers_unsafe_commands&#45;&gt;ahriman_application_handlers -->
<g id="edge41" class="edge">
<title>ahriman_application_handlers_unsafe_commands&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M311.54,-428.23C357.4,-413.65 414.29,-385.86 432.8,-335.27"/>
<path fill="none" stroke="black" d="M432.8,-333.27C449.21,-288.39 389.35,-245.66 432.8,-225.74"/>
</g>
<!-- ahriman_application_handlers_update&#45;&gt;ahriman_application_handlers -->
<g id="edge42" class="edge">
<title>ahriman_application_handlers_update&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2743.32,-621.72C2750.17,-617.51 2757.52,-613.54 2764.8,-610.57 2831.11,-583.44 3075.21,-618 3080.8,-546.57"/>
</g>
<!-- ahriman_application_handlers_users -->
<g id="node29" class="node">
<title>ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="880.8" cy="-1852.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="880.8" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="880.8" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="880.8" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="880.8" y="-1833.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">users</text>
</g>
<!-- ahriman_application_handlers_users&#45;&gt;ahriman_application_handlers -->
<g id="edge43" class="edge">
<title>ahriman_application_handlers_users&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M880.8,-1815.16C880.8,-1772.08 880.8,-1697.88 880.8,-1634.19 880.8,-1634.19 880.8,-1634.19 880.8,-1530.43 880.8,-1291.19 900.8,-1231.75 900.8,-992.51 900.8,-992.51 900.8,-992.51 900.8,-755.87 900.8,-690.74 892.97,-669.92 919.8,-610.57 935.36,-576.13 978.01,-584.3 975.8,-546.57"/>
<path fill="none" stroke="black" d="M975.8,-544.57C961.65,-355.78 1145.59,-364.14 1322.8,-297.5 1638.48,-178.81 2725.55,-134.78 2986.27,-125.79"/>
<polygon fill="#7a2828" stroke="black" points="2986.39,-129.29 2996.27,-125.45 2986.16,-122.3 2986.39,-129.29"/>
</g>
<!-- ahriman_application_handlers_web -->
<g id="node30" class="node">
<title>ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="3155.8" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3155.8" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3155.8" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3155.8" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3155.8" y="-205.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web</text>
</g>
<!-- ahriman_application_handlers_web&#45;&gt;ahriman_application_handlers -->
<g id="edge44" class="edge">
<title>ahriman_application_handlers_web&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3125.22,-196.74C3110.3,-183.57 3092.31,-167.68 3076.94,-154.12"/>
<polygon fill="#8a2e2e" stroke="black" points="3078.99,-151.26 3069.18,-147.26 3074.36,-156.51 3078.99,-151.26"/>
</g>
<!-- ahriman_application_lock -->
<g id="node31" class="node">
<title>ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="10324.8" cy="-2063.57" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="10324.8" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10324.8" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="10324.8" y="-2050.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">lock</text>
</g>
<!-- ahriman_application_lock&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge45" class="edge">
<title>ahriman_application_lock&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10368.64,-2052.97C10413.48,-2040.57 10480.83,-2014.17 10511.8,-1962.8"/>
<path fill="none" stroke="black" d="M10511.8,-1960.8C10523.38,-1941.6 10532.33,-1918.41 10538.72,-1898.49"/>
<polygon fill="#7a2828" stroke="black" points="10542.13,-1899.3 10541.74,-1888.71 10535.44,-1897.24 10542.13,-1899.3"/>
</g>
<!-- ahriman_core -->
<g id="node32" class="node">
<title>ahriman_core</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="9492.8" cy="-4148.8" rx="42.94" ry="18"/>
<text text-anchor="middle" x="9492.8" y="-4146.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.core</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge46" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1899.8,-3815.84C1894.15,-3703.89 1951.64,-3685.53 1999.8,-3584.32 2024.79,-3531.79 2460.68,-2709.19 2483.8,-2655.81 2551.12,-2500.36 2568.51,-2460.37 2609.8,-2296.08 2638.47,-2181.98 2584.7,-2131.9 2650.8,-2034.57 2668.48,-2008.53 2694,-2024.54 2711.8,-1998.57 2748.79,-1944.57 2735.8,-1918.72 2735.8,-1853.27 2735.8,-1853.27 2735.8,-1853.27 2735.8,-1530.43 2735.8,-1364.69 2741.03,-1303.05 2844.8,-1173.82 2859.99,-1154.9 2881.6,-1140.09 2902.69,-1128.96"/>
<polygon fill="#f91010" stroke="black" points="2904.34,-1132.05 2911.68,-1124.41 2901.18,-1125.8 2904.34,-1132.05"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge47" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1899.8,-3898.83C1868.72,-3880.66 1907.99,-3852.89 1899.8,-3817.84"/>
<path fill="none" stroke="black" d="M1899.8,-3815.84C1855.75,-3627.47 1854.28,-3571.67 1885.8,-3380.8 1914.63,-3206.19 2013.8,-3180.72 2013.8,-3003.75 2013.8,-3003.75 2013.8,-3003.75 2013.8,-2813.78 2013.8,-2751.28 2041.72,-2738.03 2083.8,-2691.81 2102.47,-2671.29 2117.36,-2677.39 2134.8,-2655.81 2161.85,-2622.32 2155.31,-2606.05 2172.8,-2566.71 2285.83,-2312.46 2328.71,-2255.39 2435.8,-1998.57 2489.21,-1870.48 2479.38,-1828.35 2544.8,-1705.96 2653.98,-1501.68 2693.36,-1454.17 2849.8,-1283.36 2860.56,-1271.6 2873.16,-1259.86 2885.23,-1249.39"/>
<polygon fill="#f91010" stroke="black" points="2887.74,-1251.85 2893.07,-1242.7 2883.19,-1246.53 2887.74,-1251.85"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge48" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2203.8,-3981.82C2184.3,-3855.66 2040.33,-3969.94 1923.8,-3917.83 1911.86,-3912.49 1911.08,-3907.42 1899.8,-3900.83"/>
<path fill="none" stroke="black" d="M1899.8,-3898.83C1770.66,-3823.35 1859.8,-3711.41 1859.8,-2909.77 1859.8,-2909.77 1859.8,-2909.77 1859.8,-2719.8 1859.8,-2651.24 1847.26,-2627.59 1878.8,-2566.71 1927.72,-2472.26 1992.46,-2491.08 2055.8,-2405.62 2286.87,-2093.84 2202.6,-1939.59 2383.8,-1596.42 2434.82,-1499.77 2440.16,-1465.55 2521.8,-1392.9 2573.44,-1346.93 2621.43,-1378.63 2659.8,-1321.13"/>
<path fill="none" stroke="black" d="M2659.8,-1319.13C2691.09,-1269.67 2721.99,-1268.46 2735.8,-1211.59"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_add -->
<g id="edge49" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1157.8,-3721.85C1186.15,-3564.86 1479.3,-3264.61 1557.8,-3125.72 1603.18,-3045.42 1608.62,-3022.18 1645.8,-2937.76 1651.81,-2924.11 1840.61,-2452.51 1850.8,-2441.62 1875.51,-2415.2 1897.08,-2430.01 1923.8,-2405.62 1952.09,-2379.78 1947.28,-2363.78 1968.8,-2332.08 1980.03,-2315.53 1988.35,-2314.64 1995.8,-2296.08 2112.4,-2005.4 2023.16,-1904.45 2079.8,-1596.42 2105.73,-1455.39 2118.62,-1421.29 2157.8,-1283.36 2171.76,-1234.19 2172.65,-1220.79 2192.8,-1173.82 2267.74,-999.1 2305.01,-956.29 2446.8,-829.64 2488.41,-792.48 2504.78,-790.84 2549.8,-757.87"/>
<path fill="none" stroke="black" d="M2549.8,-755.87C2564.92,-744.14 2557.81,-730.64 2573.8,-720.1 2646.29,-672.34 2685.2,-716.39 2765.8,-684.1 2770.01,-682.42 2774.25,-680.38 2778.4,-678.16"/>
<polygon fill="#f91010" stroke="black" points="2780.39,-681.05 2787.31,-673.03 2776.89,-674.99 2780.39,-681.05"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge50" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8947.8,-4064.81C8907.25,-4035.35 8955.26,-4002.35 8967.8,-3953.83 8974.02,-3929.74 8994.96,-3923.96 8985.8,-3900.83"/>
<path fill="none" stroke="black" d="M8985.8,-3898.83C8963.24,-3846.6 8630.84,-3613.14 8581.8,-3584.32 8501.16,-3536.94 7896.65,-3281.67 7806.8,-3255.71 7711.19,-3228.08 7677.44,-3258.49 7585.8,-3219.71 7546.02,-3202.87 7544.13,-3185.08 7507.8,-3161.72 7289.27,-3021.25 7225.8,-3000.53 6995.8,-2879.77 6830.38,-2792.93 6798.19,-2747.31 6619.8,-2691.81 6564.94,-2674.74 6404.43,-2696.42 6363.8,-2655.81 6308.79,-2600.84 6265.8,-2040.57 6265.8,-1962.8 6265.8,-1962.8 6265.8,-1962.8 6265.8,-990.51 6265.8,-887.12 6220.26,-850.7 6265.8,-757.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge51" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2203.8,-3981.82C2194.06,-3920.43 2111.59,-3959.03 2089.8,-3900.83"/>
<path fill="none" stroke="black" d="M2089.8,-3898.83C1974.87,-3591.85 2219.53,-3488 2450.8,-3255.71 2504.19,-3202.07 2521.37,-3186.75 2592.8,-3161.72 2677.44,-3132.07 2932.53,-3190.28 2994.8,-3125.72 3029.39,-3089.85 3001.8,-2659.27 3001.8,-2487.17 3001.8,-2487.17 3001.8,-2487.17 3001.8,-2062.57 3001.8,-1916.89 3077.8,-1889.4 3077.8,-1743.73 3077.8,-1743.73 3077.8,-1743.73 3077.8,-1632.19 3077.8,-1489.87 3153.8,-1463.44 3153.8,-1321.13 3153.8,-1321.13 3153.8,-1321.13 3153.8,-1100.05 3153.8,-947.74 3119.06,-909.37 3134.8,-757.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge52" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M64.8,-1530.43C62.13,-1512.99 61.58,-1493.63 61.89,-1476.65"/>
<polygon fill="#f91010" stroke="black" points="65.4,-1476.51 62.18,-1466.42 58.4,-1476.31 65.4,-1476.51"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge53" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9514.93,-4133.17C9523.84,-4128.02 9534.45,-4122.78 9544.8,-4119.81 9691.13,-4077.84 10109.84,-4163.05 10227.8,-4066.81"/>
<path fill="none" stroke="black" d="M10227.8,-4064.81C10294.33,-4010.53 10246.35,-3955.89 10289.8,-3881.83 10449.12,-3610.26 10621.63,-3631.48 10751.8,-3344.8 10798.6,-3241.72 10813.8,-3210.94 10813.8,-3097.73 10813.8,-3097.73 10813.8,-3097.73 10813.8,-2610.26 10813.8,-2500.35 10766.53,-2479.24 10755.8,-2369.85"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_help -->
<g id="edge54" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_help</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M197.8,-2719.8C158.26,-2549.83 215.89,-2500.97 259.8,-2332.08 272.84,-2281.92 260.42,-2256.24 299.8,-2222.54 362.44,-2168.92 423.2,-2244.55 481.8,-2186.54 526.34,-2142.43 596.8,-1696.88 596.8,-1634.19 596.8,-1634.19 596.8,-1634.19 596.8,-1100.05 596.8,-875.16 780.81,-868.88 824.8,-648.34"/>
<path fill="none" stroke="black" d="M824.8,-646.34C842.1,-508.76 874.64,-347.93 890.95,-271.1"/>
<polygon fill="#f91010" stroke="black" points="894.38,-271.78 893.04,-261.27 887.53,-270.32 894.38,-271.78"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge55" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2203.8,-3815.84C2230.36,-3790.59 2234.09,-3781.37 2255.8,-3751.84 2375.5,-3588.97 2378.58,-3526.39 2518.8,-3380.8 2580.21,-3317.04 2598.2,-3301.77 2673.8,-3255.71 2762.16,-3201.86 2787.86,-3192.03 2886.8,-3161.72 2972.73,-3135.4 3024.08,-3191.07 3085.8,-3125.72 3218.83,-2984.87 3191.8,-2454.06 3191.8,-2260.31 3191.8,-2260.31 3191.8,-2260.31 3191.8,-2156.55 3191.8,-1966.16 3381.8,-1511.52 3381.8,-1321.13 3381.8,-1321.13 3381.8,-1321.13 3381.8,-990.51 3381.8,-880.91 3342.84,-756.5 3319.64,-692.13"/>
<polygon fill="#f91010" stroke="black" points="3322.91,-690.9 3316.2,-682.7 3316.34,-693.3 3322.91,-690.9"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge56" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M178.8,-1209.59C237.06,-1000.78 328.16,-971.87 362.8,-757.87"/>
<path fill="none" stroke="black" d="M362.8,-755.87C364.16,-735.76 364.37,-713.47 364.17,-694.43"/>
<polygon fill="#f91010" stroke="black" points="367.66,-694.17 364.01,-684.22 360.66,-694.27 367.66,-694.17"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge57" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M463.8,-3620.09C395.36,-3562.31 463.8,-3508.14 463.8,-3418.57 463.8,-3418.57 463.8,-3418.57 463.8,-2813.78 463.8,-2598.99 436.8,-2536.48 502.8,-2332.08 526.02,-2260.15 554.03,-2252.58 590.8,-2186.54 597.36,-2174.75 1029.05,-1334.09 1032.8,-1321.13"/>
<path fill="none" stroke="black" d="M1032.8,-1319.13C1050.19,-1218.4 1090.79,-1202.67 1108.8,-1102.05"/>
<path fill="none" stroke="black" d="M1108.8,-1100.05C1123.71,-946.6 1213.18,-904.58 1165.8,-757.87"/>
<path fill="none" stroke="black" d="M1165.8,-755.87C1153.82,-730.68 1135.64,-705.39 1119.73,-685.68"/>
<polygon fill="#f91010" stroke="black" points="1122.36,-683.37 1113.31,-677.86 1116.95,-687.81 1122.36,-683.37"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge58" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2203.8,-3981.82C2195.73,-3936 2215.37,-3924.11 2234.8,-3881.83 2255.38,-3837.01 2262.54,-3825.99 2293.8,-3787.84 2308.54,-3769.85 2318.39,-3770.86 2331.8,-3751.84 2378.7,-3685.33 2356.05,-3648.75 2405.8,-3584.32 2551.51,-3395.61 2626.5,-3380.26 2829.8,-3255.71 2910.13,-3206.49 2932.89,-3198.09 3019.8,-3161.72 3064.92,-3142.84 3092.28,-3163.13 3123.8,-3125.72 3267.81,-2954.75 3420.94,-1361 3433.8,-1137.82 3444.48,-952.43 3442.45,-904.96 3424.8,-720.1 3423.99,-711.63 3422.84,-702.62 3421.59,-693.97"/>
<polygon fill="#f91010" stroke="black" points="3425.04,-693.38 3420.08,-684.01 3418.12,-694.42 3425.04,-693.38"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge59" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1233.8,-3898.83C1158.8,-3846.03 1215,-3774.99 1257.8,-3693.86 1333.42,-3550.5 1430.73,-3580.25 1532.8,-3454.34 1567.89,-3411.05 1571.31,-3395.79 1593.8,-3344.8 1636.53,-3247.88 1828.91,-2521.21 1898.8,-2441.62 1921.88,-2415.33 1940.96,-2426.8 1968.8,-2405.62 2021.49,-2365.52 2039.01,-2354.71 2069.8,-2296.08 2163.59,-2117.44 2169.8,-2055.03 2169.8,-1853.27 2169.8,-1853.27 2169.8,-1853.27 2169.8,-1632.19 2169.8,-1522.62 2541.76,-828.17 2625.8,-757.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_report -->
<g id="edge60" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M273.8,-3095.73C222.15,-2830.23 273.8,-2757.64 273.8,-2487.17 273.8,-2487.17 273.8,-2487.17 273.8,-2367.85 273.8,-2233.81 435.64,-2294.71 514.8,-2186.54 567.08,-2115.09 557.74,-2084.06 580.8,-1998.57 703.83,-1542.51 606.45,-1393.75 780.8,-954.74 822.3,-850.23 900.62,-742.62 944.31,-686.96"/>
<polygon fill="#f91010" stroke="black" points="947.3,-688.82 950.76,-678.81 941.81,-684.48 947.3,-688.82"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_restore -->
<g id="edge61" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_restore</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M995.8,-3721.85C982.97,-3714.62 967.8,-3604.53 967.8,-3520.33 967.8,-3520.33 967.8,-3520.33 967.8,-2907.77 967.8,-2699.9 981.41,-2648.05 1005.8,-2441.62 1053.77,-2035.53 1146.8,-1941.34 1146.8,-1532.43 1146.8,-1532.43 1146.8,-1532.43 1146.8,-1209.59 1146.8,-991.79 1312.21,-974.28 1336.8,-757.87"/>
<path fill="none" stroke="black" d="M1336.8,-755.87C1339.76,-662.9 1336.8,-639.6 1336.8,-546.57 1336.8,-546.57 1336.8,-546.57 1336.8,-442.81 1336.8,-276.58 2655.6,-234.35 2948.59,-227.02"/>
<polygon fill="#f91010" stroke="black" points="2949.07,-230.51 2958.98,-226.77 2948.89,-223.51 2949.07,-230.51"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_search -->
<g id="edge62" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2203.8,-3981.82C2198.98,-3950.67 2353.33,-3778.71 2369.8,-3751.84 2413.52,-3680.48 2397.36,-3644.24 2455.8,-3584.32 2479.12,-3560.4 2493.16,-3565.53 2521.8,-3548.32 2530.94,-3542.83 3156.48,-3134.31 3162.8,-3125.72 3240.01,-3020.67 3212.05,-2970.23 3243.8,-2843.77 3254.33,-2801.81 3571.8,-1364.39 3571.8,-1321.13 3571.8,-1321.13 3571.8,-1321.13 3571.8,-1209.59 3571.8,-1107.37 3671.19,-1092.02 3647.8,-992.51"/>
<path fill="none" stroke="black" d="M3647.8,-990.51C3610.87,-881.45 3477.7,-858.43 3533.8,-757.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge63" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10303.8,-3898.83C10305.46,-3895.83 10649.52,-3550.89 10651.8,-3548.32 10687.03,-3508.51 10696.64,-3498.79 10725.8,-3454.34 10756.12,-3408.1 10763.77,-3395.94 10784.8,-3344.8 10808.64,-3286.8 11097.8,-2323.02 11097.8,-2260.31 11097.8,-2260.31 11097.8,-2260.31 11097.8,-2062.57 11097.8,-1871.43 11059.8,-1825.33 11059.8,-1634.19 11059.8,-1634.19 11059.8,-1634.19 11059.8,-1530.43 11059.8,-1214.94 11075.37,-1117.74 10946.8,-829.64 10930.08,-792.19 10918.93,-785.69 10888.8,-757.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge64" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9514.65,-4133.25C9523.62,-4128.04 9534.33,-4122.74 9544.8,-4119.81 9687.32,-4079.95 10869.8,-4131.81 10869.8,-3983.82 10869.8,-3983.82 10869.8,-3983.82 10869.8,-3721.85 10869.8,-3582.89 10945.8,-3557.53 10945.8,-3418.57 10945.8,-3418.57 10945.8,-3418.57 10945.8,-3189.71 10945.8,-2984.4 11036.87,-2948.95 11086.8,-2749.79 11124.61,-2598.95 11123.12,-2558.82 11149.8,-2405.62 11161.02,-2341.13 11173.8,-2325.77 11173.8,-2260.31 11173.8,-2260.31 11173.8,-2260.31 11173.8,-2156.55 11173.8,-2020.7 11135.8,-1989.11 11135.8,-1853.27 11135.8,-1853.27 11135.8,-1853.27 11135.8,-1741.73 11135.8,-1602.45 11097.8,-1569.94 11097.8,-1430.67 11097.8,-1430.67 11097.8,-1430.67 11097.8,-1209.59 11097.8,-1002.53 11107.76,-923.72 10983.8,-757.87"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status -->
<g id="edge65" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M995.8,-3721.85C904.03,-3667.88 1390.2,-2795.73 1410.8,-2749.79 1415.28,-2739.78 1476.71,-2574.13 1484.8,-2566.71 1524.88,-2529.92 1565.3,-2571.06 1601.8,-2530.71 2014.5,-2074.55 1626.41,-1736.59 1874.8,-1173.82 1891.41,-1136.17 2084.25,-915.22 2093.8,-875.19"/>
<path fill="none" stroke="black" d="M2093.8,-873.19C2103.98,-683.97 2402.99,-653.28 2530.78,-648.82"/>
<polygon fill="#f91010" stroke="black" points="2531.25,-652.3 2541.14,-648.5 2531.04,-645.31 2531.25,-652.3"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge66" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M83.8,-2485.17C38.25,-2196.76 406.8,-1503.56 406.8,-1211.59 406.8,-1211.59 406.8,-1211.59 406.8,-873.19 406.8,-807.02 436.7,-735.39 458.99,-691.19"/>
<polygon fill="#f91010" stroke="black" points="462.16,-692.68 463.62,-682.18 455.93,-689.48 462.16,-692.68"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_sync -->
<g id="edge67" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2089.8,-3898.83C2068,-3840.62 2162,-3863.84 2203.8,-3817.84"/>
<path fill="none" stroke="black" d="M2203.8,-3815.84C2243.42,-3772.22 2229.87,-3746.78 2255.8,-3693.86 2358.97,-3483.26 2368.58,-3404.56 2549.8,-3255.71 2619.84,-3198.17 2644.1,-3188.16 2730.8,-3161.72 2798.61,-3141.04 2997.67,-3175.86 3047.8,-3125.72 3072.94,-3100.56 3191.8,-1888.84 3191.8,-1853.27 3191.8,-1853.27 3191.8,-1853.27 3191.8,-1530.43 3191.8,-1384.75 3267.8,-1357.26 3267.8,-1211.59 3267.8,-1211.59 3267.8,-1211.59 3267.8,-873.19 3267.8,-806.44 3237.37,-734.14 3215.02,-690.04"/>
<polygon fill="#f91010" stroke="black" points="3218.09,-688.35 3210.39,-681.07 3211.87,-691.56 3218.09,-688.35"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge68" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9449.54,-4147.78C8972.82,-4147.44 4692.28,-4142.76 3419.8,-4083.81 3148.95,-4071.26 2246.26,-4251.61 2203.8,-3983.82"/>
<path fill="none" stroke="black" d="M2203.8,-3981.82C2041.83,-3847.04 1456.3,-3988.47 1257.8,-3917.83 1245.48,-3913.44 1245,-3907.57 1233.8,-3900.83"/>
<path fill="none" stroke="black" d="M1233.8,-3898.83C1191.5,-3873.37 1190.58,-3854.74 1157.8,-3817.84"/>
<path fill="none" stroke="black" d="M1157.8,-3815.84C1110.2,-3762.26 1061.86,-3801.09 1009.8,-3751.84 999.69,-3742.29 1007.91,-3730.69 995.8,-3723.85"/>
<path fill="none" stroke="black" d="M995.8,-3721.85C786.26,-3603.67 653.91,-3769.5 463.8,-3622.09"/>
<path fill="none" stroke="black" d="M463.8,-3620.09C419.75,-3585.94 419.58,-3566.12 387.8,-3520.33"/>
<path fill="none" stroke="black" d="M387.8,-3518.33C364.5,-3484.77 340.2,-3490.82 321.8,-3454.34 249.75,-3311.56 309.21,-3253.68 273.8,-3097.73"/>
<path fill="none" stroke="black" d="M273.8,-3095.73C264.96,-3065.78 253.66,-3061.68 244.8,-3031.74 205.22,-2898.15 230.9,-2857.14 197.8,-2721.8"/>
<path fill="none" stroke="black" d="M197.8,-2719.8C187.04,-2687.78 172.67,-2685.62 156.8,-2655.81 118.42,-2583.71 96.38,-2567.86 83.8,-2487.17"/>
<path fill="none" stroke="black" d="M83.8,-2485.17C-57.99,-2086.08 128.92,-1951.07 64.8,-1532.43"/>
<path fill="none" stroke="black" d="M64.8,-1530.43C56.17,-1493.63 22.09,-1501.81 8.8,-1466.43 -2.7,-1435.84 -3.1,-1423.34 8.8,-1392.9 32.89,-1331.21 64.4,-1331.57 109.8,-1283.36 140.13,-1251.14 163.21,-1253 178.8,-1211.59"/>
<path fill="none" stroke="black" d="M178.8,-1209.59C230.72,-1048.73 141.06,-997.4 161.8,-829.64 174.11,-730.01 182.51,-704.92 216.8,-610.57 227.59,-580.86 237.51,-576.45 247.8,-546.57"/>
<path fill="none" stroke="black" d="M247.8,-544.57C250.51,-527.14 251.07,-507.79 250.75,-490.8"/>
<polygon fill="#f91010" stroke="black" points="254.24,-490.46 250.45,-480.57 247.24,-490.67 254.24,-490.46"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_update -->
<g id="edge69" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1157.8,-3815.84C1130.64,-3785.27 1153.64,-3764.52 1157.8,-3723.85"/>
<path fill="none" stroke="black" d="M1157.8,-3721.85C1164.06,-3660.53 1154.26,-3642.08 1175.8,-3584.32 1236.38,-3421.83 1530.45,-3090.38 1612.8,-2937.76 1676.98,-2818.8 1677.98,-2781.85 1726.8,-2655.81 1763.61,-2560.75 1739.06,-2515.97 1808.8,-2441.62 1834.64,-2414.06 1864.37,-2436.73 1885.8,-2405.62 1948.24,-2314.94 1903.8,-2268.65 1903.8,-2158.55 1903.8,-2158.55 1903.8,-2158.55 1903.8,-1851.27 1903.8,-1773.49 2047.61,-1244.61 2079.8,-1173.82 2146.33,-1027.5 2236.41,-1028.78 2283.8,-875.19"/>
<path fill="none" stroke="black" d="M2283.8,-873.19C2310.95,-694.52 2477.99,-756.01 2643.8,-684.1 2650.37,-681.25 2657.17,-677.98 2663.79,-674.59"/>
<polygon fill="#f91010" stroke="black" points="2665.44,-677.67 2672.67,-669.93 2662.19,-671.47 2665.44,-677.67"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_users -->
<g id="edge70" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M387.8,-3518.33C335.24,-3437.42 387.8,-3397.73 387.8,-3301.25 387.8,-3301.25 387.8,-3301.25 387.8,-2719.8 387.8,-2463.06 508.91,-2412.35 681.8,-2222.54 722.43,-2177.92 732.29,-2165.78 779.8,-2128.56 821.63,-2095.78 866.94,-2115.87 880.8,-2064.57"/>
<path fill="none" stroke="black" d="M880.8,-2062.57C894.49,-2007.68 891.53,-1942.16 887.11,-1899.22"/>
<polygon fill="#f91010" stroke="black" points="890.56,-1898.64 885.99,-1889.08 883.6,-1899.41 890.56,-1898.64"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_web -->
<g id="edge71" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9061.8,-3898.83C9067.56,-3842.62 9039.26,-3828.28 8999.8,-3787.84 8869.8,-3654.64 8799.46,-3669.15 8633.8,-3584.32 8543.08,-3537.87 8318.74,-3415.17 8222.8,-3380.8 8156.22,-3356.95 8132.73,-3372.83 8067.8,-3344.8 8002.13,-3316.46 8000.88,-3280.49 7933.8,-3255.71 7809.48,-3209.78 7760.71,-3269.26 7637.8,-3219.71 7598.06,-3203.69 7595.86,-3186.33 7560.8,-3161.72 7428.28,-3068.74 7390.94,-3051.24 7248.8,-2973.76 7092.39,-2888.5 7053.14,-2867.39 6894.8,-2785.79 6811.76,-2743 6796.25,-2718.73 6706.8,-2691.81 6643.34,-2672.71 6456.25,-2704.02 6410.8,-2655.81 6334.84,-2575.25 6379.8,-2269.26 6379.8,-2158.55 6379.8,-2158.55 6379.8,-2158.55 6379.8,-646.34 6379.8,-588.05 6366.35,-565 6398.8,-516.58 6433.6,-464.64 6555.7,-496 6519.8,-444.81"/>
<path fill="none" stroke="black" d="M6519.8,-442.81C6420.51,-301.61 3646.35,-236.28 3212.59,-226.92"/>
<polygon fill="#f91010" stroke="black" points="3212.56,-223.42 3202.49,-226.7 3212.41,-230.42 3212.56,-223.42"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_lock -->
<g id="edge72" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10227.8,-4064.81C10292.85,-4017.68 10279.99,-3977.55 10303.8,-3900.83"/>
<path fill="none" stroke="black" d="M10303.8,-3898.83C10423.51,-3638.12 10547.8,-3588.13 10547.8,-3301.25 10547.8,-3301.25 10547.8,-3301.25 10547.8,-2907.77 10547.8,-2717.8 10509.09,-2673.43 10471.8,-2487.17"/>
</g>
<!-- ahriman_models_aur_package -->
<g id="node105" class="node">
<title>ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d10505" stroke="black" cx="3164.8" cy="-3621.09" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="3164.8" y="-3629.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3164.8" y="-3618.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="3164.8" y="-3607.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur_package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_aur_package -->
<g id="edge73" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2203.8,-3981.82C2197.32,-3933.36 2908.64,-3703.48 3111.45,-3638.96"/>
<polygon fill="#f91010" stroke="black" points="3112.53,-3642.29 3121,-3635.93 3110.41,-3635.62 3112.53,-3642.29"/>
</g>
<!-- ahriman_models_build_status -->
<g id="node107" class="node">
<title>ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="8266.8" cy="-2908.77" rx="48.58" ry="28.98"/>
<text text-anchor="middle" x="8266.8" y="-2917.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8266.8" y="-2906.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="8266.8" y="-2895.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_status</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_build_status -->
<g id="edge74" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9360.8,-4064.81C9351.04,-3912.81 9600.02,-4103.84 9693.8,-3983.82"/>
<path fill="none" stroke="black" d="M9693.8,-3981.82C9720.9,-3947.13 9666.06,-3933.71 9636.8,-3900.83"/>
<path fill="none" stroke="black" d="M9636.8,-3898.83C9485.8,-3729.18 9492.03,-3649.26 9329.8,-3490.34 9328.8,-3489.36 9005,-3256.41 9003.8,-3255.71 8756.13,-3110.14 8437.17,-2977.66 8316.24,-2929.24"/>
<polygon fill="#f91010" stroke="black" points="8317.44,-2925.95 8306.85,-2925.49 8314.84,-2932.45 8317.44,-2925.95"/>
</g>
<!-- ahriman_models_counters -->
<g id="node108" class="node">
<title>ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a32828" stroke="black" cx="8276.8" cy="-2814.78" rx="38.78" ry="28.98"/>
<text text-anchor="middle" x="8276.8" y="-2823.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8276.8" y="-2812.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="8276.8" y="-2801.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">counters</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_counters -->
<g id="edge75" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9636.8,-3898.83C9610.94,-3850.67 9610.25,-3835.68 9583.8,-3787.84 9531.96,-3694.13 9519.36,-3669.76 9454.8,-3584.32 9242.03,-3302.78 9153.74,-3250.41 8851.8,-3067.74 8666.07,-2955.38 8421.31,-2865.35 8321.78,-2830.91"/>
<polygon fill="#f91010" stroke="black" points="8322.64,-2827.51 8312.05,-2827.56 8320.36,-2834.13 8322.64,-2827.51"/>
</g>
<!-- ahriman_models_migration_result -->
<g id="node111" class="node">
<title>ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bc2f2f" stroke="black" cx="9112.8" cy="-3519.33" rx="60.62" ry="28.98"/>
<text text-anchor="middle" x="9112.8" y="-3527.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9112.8" y="-3516.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="9112.8" y="-3505.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">migration_result</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_migration_result -->
<g id="edge76" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9454.72,-4140.26C9418.33,-4130.53 9367.97,-4109.5 9360.8,-4066.81"/>
<path fill="none" stroke="black" d="M9360.8,-4064.81C9351.64,-4010.31 9186.35,-3670.2 9130.82,-3556.96"/>
<polygon fill="#f91010" stroke="black" points="9133.8,-3555.09 9126.25,-3547.65 9127.51,-3558.17 9133.8,-3555.09"/>
</g>
<!-- ahriman_models_package -->
<g id="node112" class="node">
<title>ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="4645.8" cy="-2908.77" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="4645.8" y="-2917.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4645.8" y="-2906.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4645.8" y="-2895.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package -->
<g id="edge77" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2203.8,-3981.82C2190.11,-3877.47 3055.4,-3966.32 3148.8,-3917.83 3318.05,-3829.94 3287.52,-3722.66 3418.8,-3584.32 3677.61,-3311.56 3731.07,-3183.56 4088.8,-3067.74 4191.83,-3034.38 4481.04,-3085.94 4574.8,-3031.74 4587.81,-3024.21 4582.02,-3013.1 4593.8,-3003.75"/>
</g>
<!-- ahriman_models_package_description -->
<g id="node113" class="node">
<title>ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b42d2d" stroke="black" cx="6194.8" cy="-3519.33" rx="74.91" ry="28.98"/>
<text text-anchor="middle" x="6194.8" y="-3527.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6194.8" y="-3516.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6194.8" y="-3505.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_description</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package_description -->
<g id="edge78" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9450.56,-4145.28C9342.66,-4138.43 9059.23,-4117.65 8971.8,-4083.81 8959.61,-4079.09 8959.19,-4073.21 8947.8,-4066.81"/>
<path fill="none" stroke="black" d="M8947.8,-4064.81C8914.37,-4046.04 8353.24,-3796.05 8315.8,-3787.84 8210.12,-3764.68 6465.13,-3801.07 6368.8,-3751.84 6287.7,-3710.41 6234.26,-3611.71 6209.93,-3557.53"/>
<polygon fill="#f91010" stroke="black" points="6213.09,-3556.02 6205.87,-3548.27 6206.68,-3558.83 6213.09,-3556.02"/>
</g>
<!-- ahriman_models_package_source -->
<g id="node114" class="node">
<title>ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="7053.8" cy="-3096.73" rx="62.45" ry="28.98"/>
<text text-anchor="middle" x="7053.8" y="-3105.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7053.8" y="-3094.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="7053.8" y="-3083.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_source</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package_source -->
<g id="edge79" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8947.8,-4064.81C8912.91,-4037.37 9071.12,-3944.22 9061.8,-3900.83"/>
<path fill="none" stroke="black" d="M9061.8,-3898.83C9061.07,-3892.24 9088.09,-3850.77 8771.8,-3693.86 8724.2,-3670.25 8703.44,-3685.06 8657.8,-3657.86 8617.42,-3633.8 8622.01,-3608.65 8581.8,-3584.32 8325.68,-3429.39 7590.03,-3245.98 7302.8,-3161.72 7240.56,-3143.47 7168.75,-3125.32 7118.29,-3113.04"/>
<polygon fill="#f91010" stroke="black" points="7119.03,-3109.62 7108.49,-3110.66 7117.38,-3116.42 7119.03,-3109.62"/>
</g>
<!-- ahriman_models_remote_source -->
<g id="node116" class="node">
<title>ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#af1313" stroke="black" cx="6774.8" cy="-3002.75" rx="57.05" ry="28.98"/>
<text text-anchor="middle" x="6774.8" y="-3011.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6774.8" y="-3000.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6774.8" y="-2989.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote_source</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_remote_source -->
<g id="edge80" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8985.8,-3898.83C8921.37,-3750.04 7787.22,-3402.77 7635.8,-3344.8 7534.58,-3306.05 7511.15,-3291.35 7408.8,-3255.71 7221.85,-3190.61 7164.08,-3205.22 6982.8,-3125.72 6922.31,-3099.2 6857.37,-3059.04 6816.45,-3032.12"/>
<polygon fill="#f91010" stroke="black" points="6818.36,-3029.19 6808.09,-3026.59 6814.49,-3035.03 6818.36,-3029.19"/>
</g>
<!-- ahriman_models_repository_paths -->
<g id="node118" class="node">
<title>ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e50505" stroke="black" cx="4352.8" cy="-3982.82" rx="62.87" ry="28.98"/>
<text text-anchor="middle" x="4352.8" y="-3991.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4352.8" y="-3980.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4352.8" y="-3969.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository_paths</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_repository_paths -->
<g id="edge81" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9449.63,-4147.58C8968.48,-4145.03 4624.15,-4120.54 4504.8,-4066.81"/>
<path fill="none" stroke="black" d="M4504.8,-4064.81C4468.84,-4048.63 4429.6,-4027.63 4400,-4011.07"/>
<polygon fill="#f91010" stroke="black" points="4401.56,-4007.93 4391.13,-4006.08 4398.13,-4014.03 4401.56,-4007.93"/>
</g>
<!-- ahriman_models_result -->
<g id="node119" class="node">
<title>ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d10505" stroke="black" cx="5119.8" cy="-2814.78" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5119.8" y="-2823.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5119.8" y="-2812.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5119.8" y="-2801.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">result</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_result -->
<g id="edge82" class="edge">
<title>ahriman_core&#45;&gt;ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4504.8,-4064.81C4415.67,-4024.69 4550.35,-3942.74 4626.8,-3881.83 4810.84,-3735.17 4895.29,-3757.67 5121.8,-3693.86 5204.94,-3670.44 5257.66,-3724.36 5312.8,-3657.86 5320.63,-3648.41 5309.42,-3499.32 5307.8,-3490.34 5288.29,-3382.75 5275.13,-3356.94 5233.8,-3255.71 5209.3,-3195.72 5187.67,-3187.39 5167.8,-3125.72 5137.23,-3030.87 5125.84,-2913.24 5121.82,-2853.87"/>
<polygon fill="#f91010" stroke="black" points="5125.31,-2853.58 5121.18,-2843.82 5118.33,-2854.03 5125.31,-2853.58"/>
</g>
<!-- ahriman_web_middlewares_auth_handler -->
<g id="node129" class="node">
<title>ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="10429.8" cy="-874.19" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="10429.8" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10429.8" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10429.8" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="10429.8" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_handler</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge83" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9514.95,-4133.26C9523.87,-4128.12 9534.47,-4122.86 9544.8,-4119.81 9733.37,-4064.02 9808.77,-4169.45 9985.8,-4083.81 10036.36,-4059.35 10649.13,-3394.24 10675.8,-3344.8 10769.97,-3170.19 10775.8,-3108.16 10775.8,-2909.77 10775.8,-2909.77 10775.8,-2909.77 10775.8,-2719.8 10775.8,-2498.6 10790.98,-2440.76 10754.8,-2222.54 10732.76,-2089.64 10744.83,-2050.89 10696.8,-1925.03 10592.03,-1650.54 10436.69,-1640.19 10358.8,-1356.9 10350.13,-1325.38 10344.16,-1312.58 10358.8,-1283.36 10382.66,-1235.73 10444.44,-1263.84 10454.8,-1211.59"/>
</g>
<!-- ahriman_web_views_base -->
<g id="node133" class="node">
<title>ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="9065.8" cy="-991.51" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9065.8" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9065.8" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9065.8" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9065.8" y="-972.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">base</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_base -->
<g id="edge84" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9517.99,-4134.2C9610.53,-4084.12 9926.23,-3912.35 9923.8,-3900.83"/>
<path fill="none" stroke="black" d="M9923.8,-3898.83C9932.52,-3833.28 9667.15,-3436.04 9630.8,-3380.8 9592.41,-3322.49 9581.39,-3308.57 9535.8,-3255.71 9451.29,-3157.72 9403.51,-3149.46 9349.8,-3031.74 9282.33,-2883.88 9186.79,-2486.72 9136.8,-2332.08 9102.18,-2225.01 9073.27,-2203.55 9054.8,-2092.56 9050.57,-2067.14 9054.76,-2060.34 9054.8,-2034.57 9055.02,-1856.62 9055.8,-1812.14 9055.8,-1634.19 9055.8,-1634.19 9055.8,-1634.19 9055.8,-1530.43 9055.8,-1494.75 9015.21,-1247.17 9017.8,-1211.59"/>
</g>
<!-- ahriman_web_views_index -->
<g id="node134" class="node">
<title>ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="9499.8" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9499.8" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9499.8" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9499.8" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9499.8" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">index</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_index -->
<g id="edge85" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9923.8,-3898.83C9955.26,-3827.71 9923.8,-3801.62 9923.8,-3723.85 9923.8,-3723.85 9923.8,-3723.85 9923.8,-3620.09 9923.8,-3487.01 9831.9,-3480.54 9743.8,-3380.8 9669.92,-3297.17 9431.22,-3132.28 9382.8,-3031.74 9255.07,-2766.54 9359.8,-2664.2 9359.8,-2369.85 9359.8,-2369.85 9359.8,-2369.85 9359.8,-1960.8 9359.8,-1605.7 9342.74,-1493.28 9497.8,-1173.82 9515.83,-1136.67 9546.91,-1142.14 9556.8,-1102.05"/>
<path fill="none" stroke="black" d="M9556.8,-1100.05C9572.68,-1035.62 9544.5,-960.97 9522.4,-915.95"/>
<polygon fill="#f91010" stroke="black" points="9525.42,-914.17 9517.8,-906.81 9519.17,-917.32 9525.42,-914.17"/>
</g>
<!-- ahriman_web_views_service_search -->
<g id="node139" class="node">
<title>ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="8523.8" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="8523.8" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8523.8" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="8523.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="8523.8" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="8523.8" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">search</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_service_search -->
<g id="edge86" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9365.8,-3898.83C9339.64,-3758.78 9368.77,-3711.11 9303.8,-3584.32 9277.7,-3533.4 9257.74,-3529.27 9215.8,-3490.34 9187.35,-3463.94 9112.67,-3401.42 9079.8,-3380.8 9048.13,-3360.94 9037.32,-3361.32 9003.8,-3344.8 8647.72,-3169.36 8511.65,-3194.38 8208.8,-2937.76 8184.32,-2917.02 8191.35,-2899.17 8165.8,-2879.77 8130.16,-2852.73 8106.63,-2871.84 8071.8,-2843.77 8047.8,-2824.44 8057.49,-2805.49 8033.8,-2785.79 8001.93,-2759.3 7970.88,-2784.2 7947.8,-2749.79 7844.39,-2595.6 8048.21,-2486.27 7944.8,-2332.08 7921.72,-2297.67 7884.06,-2328.92 7858.8,-2296.08 7821.17,-2247.17 7837.91,-2220.22 7839.8,-2158.55"/>
</g>
<!-- ahriman_web_views_status_package -->
<g id="node142" class="node">
<title>ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="8805.8" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="8805.8" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8805.8" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="8805.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="8805.8" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="8805.8" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_status_package -->
<g id="edge87" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9693.8,-3981.82C9780.59,-3870.73 9627.59,-3818.01 9560.8,-3693.86 9199.47,-3022.25 9044.67,-2886.02 8740.8,-2186.54 8644.38,-1964.59 8643.84,-1900.01 8568.8,-1669.96 8504.34,-1472.33 8416.84,-1410.92 8475.8,-1211.59"/>
<path fill="none" stroke="black" d="M8475.8,-1209.59C8476.67,-1161.8 8454.72,-1144.94 8475.8,-1102.05"/>
</g>
<!-- ahriman_web_views_user_login -->
<g id="node146" class="node">
<title>ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="9869.8" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9869.8" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9869.8" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9869.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9869.8" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="9869.8" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">login</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_user_login -->
<g id="edge88" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9971.8,-4064.81C10049.6,-4014.46 10029.56,-3964.32 10071.8,-3881.83 10277.55,-3479.99 10476.13,-3456.95 10627.8,-3031.74 10763.63,-2650.91 10634.92,-2515.85 10518.8,-2128.56 10449.83,-1898.54 10300.8,-1874.32 10300.8,-1634.19 10300.8,-1634.19 10300.8,-1634.19 10300.8,-1530.43 10300.8,-1401.73 10253.43,-1375.33 10239.8,-1247.36 10236.33,-1214.86 10238.09,-1206.46 10239.8,-1173.82 10244.02,-1092.9 10303.6,-1060.02 10258.8,-992.51"/>
</g>
<!-- ahriman_web_views_user_logout -->
<g id="node147" class="node">
<title>ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="9593.8" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9593.8" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9593.8" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9593.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9593.8" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="9593.8" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">logout</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge89" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9515.28,-4133.34C9524.15,-4128.28 9534.64,-4123.05 9544.8,-4119.81 9726.99,-4061.72 9820.31,-4183.53 9971.8,-4066.81"/>
<path fill="none" stroke="black" d="M9971.8,-4064.81C10055.15,-4000.59 10087,-3230.72 10093.8,-3125.72 10119.08,-2734.89 9863.45,-2682.01 9796.8,-2296.08 9789.04,-2251.16 9775.16,-2128.58 9813.8,-1743.73"/>
</g>
<!-- ahriman_web_web -->
<g id="node148" class="node">
<title>ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="7840.8" cy="-545.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="7840.8" y="-554.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7840.8" y="-543.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="7840.8" y="-532.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_web_web -->
<g id="edge90" class="edge">
<title>ahriman_core&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9360.8,-4064.81C9356.13,-3992.04 9381.09,-3972.12 9365.8,-3900.83"/>
<path fill="none" stroke="black" d="M9365.8,-3898.83C9359.85,-3874.68 9201.11,-3507.16 9182.8,-3490.34 9147.08,-3457.54 9125.13,-3471.56 9079.8,-3454.34 8999.39,-3423.8 8981.15,-3411.46 8900.8,-3380.8 8855.88,-3363.66 8843.31,-3362.95 8798.8,-3344.8 8401.26,-3182.72 8267.98,-3193.01 7922.8,-2937.76 7877.63,-2904.36 7775.84,-2801.45 7753.8,-2749.79 7625.84,-2449.94 7700.68,-1609.17 7711.8,-1283.36 7718.69,-1081.35 7668.18,-1017.48 7742.8,-829.64 7758.04,-791.27 7801.33,-799.16 7801.8,-757.87"/>
<path fill="none" stroke="black" d="M7801.8,-755.87C7801.24,-690.75 7806.81,-674.18 7820.8,-610.57 7822.76,-601.65 7825.4,-592.18 7828.11,-583.34"/>
<polygon fill="#f91010" stroke="black" points="7831.48,-584.29 7831.18,-573.7 7824.81,-582.17 7831.48,-584.29"/>
</g>
<!-- ahriman_core_alpm -->
<g id="node33" class="node">
<title>ahriman_core_alpm</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="4704.8" cy="-3190.71" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="4704.8" y="-3199.21" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4704.8" y="-3188.21" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4704.8" y="-3177.21" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm</text>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_application_handlers_search -->
<g id="edge91" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4670.7,-3177.37C4548.05,-3132.78 4134.18,-2980.37 4087.8,-2937.76 4053.26,-2906.02 4059.47,-2886.35 4039.8,-2843.77 3986.79,-2729.04 3966.28,-2692.74 3975.8,-2566.71 3998.16,-2270.5 4060.89,-2204.06 4162.8,-1925.03 4198.85,-1826.32 4174.97,-1777.67 4251.8,-1705.96 4352.07,-1612.36 5351.96,-1437.36 5424.8,-1321.13"/>
<path fill="none" stroke="black" d="M5424.8,-1319.13C5444.49,-1275.58 5388.59,-1242.79 5424.8,-1211.59"/>
</g>
<!-- ahriman_core_repository_repository_properties -->
<g id="node86" class="node">
<title>ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="4248.8" cy="-1961.8" rx="77.15" ry="36.54"/>
<text text-anchor="middle" x="4248.8" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4248.8" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4248.8" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4248.8" y="-1942.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository_properties</text>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge92" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4683.01,-3166.5C4671.79,-3154.43 4657.95,-3139.39 4645.8,-3125.72 4634.91,-3113.48 4634.14,-3108.51 4621.8,-3097.73"/>
<path fill="none" stroke="black" d="M4621.8,-3095.73C4566.58,-3047.53 4532.51,-3069.67 4469.8,-3031.74 4413.61,-2997.76 4394.63,-2990.71 4355.8,-2937.76 4329.15,-2901.43 4330.98,-2886.86 4317.8,-2843.77 4250.32,-2623.26 4270.11,-2559.48 4231.8,-2332.08 4226.4,-2300.03 4214.11,-2292.6 4217.8,-2260.31"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_models_package -->
<g id="edge93" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4621.8,-3095.73C4605.7,-3081.68 4576.87,-3016.79 4593.8,-3003.75"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_models_remote_source -->
<g id="edge94" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4736.11,-3173.84C4792.38,-3146.23 4915.07,-3090.17 5025.8,-3067.74 5356.18,-3000.82 6427.74,-3001.83 6707.49,-3003.29"/>
<polygon fill="#f91010" stroke="black" points="6707.48,-3006.79 6717.49,-3003.34 6707.51,-2999.79 6707.48,-3006.79"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_web_views_service_search -->
<g id="edge95" class="edge">
<title>ahriman_core_alpm&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4743.22,-3189.68C5013.76,-3189.29 6635.79,-3184.49 7124.8,-3125.72 7517.56,-3078.52 7669.61,-3163.02 7994.8,-2937.76 8094.94,-2868.39 8129.05,-2812.91 8115.8,-2691.81 8092.55,-2479.45 8080.41,-2424.84 8011.8,-2222.54 7953.64,-2051.08 7809.71,-2031.8 7839.8,-1853.27"/>
</g>
<!-- ahriman_core_alpm_pacman -->
<g id="node34" class="node">
<title>ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="4395.8" cy="-3417.57" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4395.8" y="-3431.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4395.8" y="-3420.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4395.8" y="-3409.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="4395.8" y="-3398.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pacman</text>
</g>
<!-- ahriman_core_alpm_remote_aur -->
<g id="node36" class="node">
<title>ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="7361.8" cy="-3300.25" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="7361.8" y="-3319.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7361.8" y="-3308.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7361.8" y="-3297.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="7361.8" y="-3286.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="7361.8" y="-3275.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge96" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4433.69,-3412.38C4506.47,-3404.53 4670.92,-3387.79 4809.8,-3380.8 4948.8,-3373.81 7185.59,-3396.53 7314.8,-3344.8 7318.98,-3343.13 7323.01,-3340.89 7326.84,-3338.32"/>
<polygon fill="#db0505" stroke="black" points="7329.01,-3341.06 7334.86,-3332.23 7324.78,-3335.49 7329.01,-3341.06"/>
</g>
<!-- ahriman_core_alpm_remote_official -->
<g id="node37" class="node">
<title>ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="7267.8" cy="-3300.25" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="7267.8" y="-3319.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7267.8" y="-3308.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7267.8" y="-3297.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="7267.8" y="-3286.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="7267.8" y="-3275.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">official</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge97" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4433.69,-3412.43C4506.48,-3404.67 4670.93,-3388.07 4809.8,-3380.8 5677.64,-3335.37 5896.95,-3390.31 6764.8,-3344.8 6932.14,-3336.03 7130.07,-3316.07 7219.57,-3306.53"/>
<polygon fill="#db0505" stroke="black" points="7220.11,-3309.99 7229.68,-3305.44 7219.37,-3303.03 7220.11,-3309.99"/>
</g>
<!-- ahriman_core_alpm_remote_official_syncdb -->
<g id="node38" class="node">
<title>ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="3180.8" cy="-3300.25" rx="56.64" ry="44.6"/>
<text text-anchor="middle" x="3180.8" y="-3319.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3180.8" y="-3308.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3180.8" y="-3297.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="3180.8" y="-3286.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="3180.8" y="-3275.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">official_syncdb</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge98" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4359.82,-3404.44C4334.41,-3396.39 4299.39,-3386.31 4267.8,-3380.8 3885.79,-3314.13 3418.78,-3303.23 3247.69,-3301.53"/>
<polygon fill="#db0505" stroke="black" points="3247.61,-3298.03 3237.57,-3301.43 3247.54,-3305.03 3247.61,-3298.03"/>
</g>
<!-- ahriman_core_alpm_remote_remote -->
<g id="node39" class="node">
<title>ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3067.8" cy="-3300.25" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="3067.8" y="-3319.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3067.8" y="-3308.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3067.8" y="-3297.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="3067.8" y="-3286.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="3067.8" y="-3275.75" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote</text>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge99" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4360.17,-3404.11C4334.76,-3395.85 4299.61,-3385.67 4267.8,-3380.8 4141.1,-3361.41 3233.38,-3393.44 3114.8,-3344.8 3110.63,-3343.09 3106.61,-3340.84 3102.79,-3338.25"/>
<polygon fill="#db0505" stroke="black" points="3104.84,-3335.41 3094.77,-3332.13 3100.6,-3340.98 3104.84,-3335.41"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge100" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4376.82,-3385.46C4293.21,-3247.68 3963.04,-2695.57 3989.8,-2612.26"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_models_package -->
<g id="edge101" class="edge">
<title>ahriman_core_alpm_pacman&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4405.29,-3381.94C4414.85,-3348.85 4430.87,-3297.91 4449.8,-3255.71 4456.39,-3240.99 4581.03,-3013.59 4593.8,-3003.75"/>
</g>
<!-- ahriman_core_alpm_remote -->
<g id="node35" class="node">
<title>ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b30404" stroke="black" cx="6717.8" cy="-3300.25" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6717.8" y="-3314.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6717.8" y="-3303.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6717.8" y="-3292.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="6717.8" y="-3281.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote</text>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_application_handlers_search -->
<g id="edge102" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6736.44,-3268.15C6757.71,-3228.82 6787.98,-3158.86 6774.8,-3097.73"/>
<path fill="none" stroke="black" d="M6774.8,-3095.73C6767.89,-3055.46 6729.44,-3067 6708.8,-3031.74 6626.84,-2891.73 6714.63,-2775.74 6575.8,-2691.81 6479.73,-2633.73 6407.07,-2733.24 6325.8,-2655.81 6254.79,-2588.16 6263.75,-2318.13 6241.8,-2222.54 6232.12,-2180.41 6231.79,-2169.09 6216.8,-2128.56 6160.56,-1976.56 6144.24,-1930.26 6029.8,-1815.5 6014.47,-1800.13 5415.86,-1340.9 5424.8,-1321.13"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_models_package -->
<g id="edge103" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6679.45,-3297.53C6543.95,-3291.47 6075,-3270.66 5687.8,-3255.71 5630.58,-3253.5 4707.19,-3248.66 4657.8,-3219.71 4654.38,-3217.7 4583.59,-3101.69 4583.8,-3097.73"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_models_remote_source -->
<g id="edge104" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6774.8,-3095.73C6771.07,-3078.44 6770.57,-3058.9 6771.2,-3042.29"/>
<polygon fill="#b30404" stroke="black" points="6774.72,-3042.02 6771.75,-3031.85 6767.73,-3041.65 6774.72,-3042.02"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_web_views_service_search -->
<g id="edge105" class="edge">
<title>ahriman_core_alpm_remote&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6755.36,-3292.97C6814.73,-3283.3 6933.96,-3264.93 7035.8,-3255.71 7623.45,-3202.47 7930.91,-3377.1 8324.8,-2937.76 8435.29,-2814.51 8348.37,-2722.62 8292.8,-2566.71 8144.72,-2151.32 7953.8,-2075.18 7953.8,-1634.19 7953.8,-1634.19 7953.8,-1634.19 7953.8,-1530.43 7953.8,-1420.29 7938.9,-1388.14 7972.8,-1283.36 8013.69,-1156.92 8069.68,-1147.3 8128.8,-1028.28 8136.39,-1012.99 8128.51,-1001.85 8142.8,-992.51"/>
<path fill="none" stroke="black" d="M8142.8,-990.51C8192.71,-939.22 8229.84,-969.82 8299.8,-954.74 8378.27,-937.82 8405.37,-955.38 8476.8,-918.74 8480.64,-916.77 8484.39,-914.39 8488,-911.78"/>
<polygon fill="#b30404" stroke="black" points="8490.47,-914.3 8496.13,-905.35 8486.12,-908.81 8490.47,-914.3"/>
</g>
<!-- ahriman_core_alpm_remote_aur&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge106" class="edge">
<title>ahriman_core_alpm_remote_aur&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7338.76,-3335.99C7329.87,-3346.65 7318.7,-3357.03 7305.8,-3362.8 7237.42,-3393.36 7043.13,-3371.92 6968.8,-3362.8 6896.03,-3353.87 6813.99,-3330.89 6764.11,-3315.42"/>
<polygon fill="#7a2828" stroke="black" points="6764.86,-3311.98 6754.27,-3312.33 6762.76,-3318.66 6764.86,-3311.98"/>
</g>
<!-- ahriman_core_alpm_remote_official&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge107" class="edge">
<title>ahriman_core_alpm_remote_official&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7229.33,-3300.25C7075.01,-3300.25 6920.68,-3300.25 6766.36,-3300.25"/>
<polygon fill="#7a2828" stroke="black" points="6766.2,-3296.75 6756.2,-3300.25 6766.2,-3303.75 6766.2,-3296.75"/>
</g>
<!-- ahriman_core_alpm_remote_official_syncdb&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge108" class="edge">
<title>ahriman_core_alpm_remote_official_syncdb&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3237.79,-3300.25C4381.69,-3300.25 5525.58,-3300.25 6669.48,-3300.25"/>
<polygon fill="#913030" stroke="black" points="6669.56,-3303.75 6679.56,-3300.25 6669.56,-3296.75 6669.56,-3303.75"/>
</g>
<!-- ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge109" class="edge">
<title>ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3090.83,-3335.99C3099.72,-3346.65 3110.89,-3357.03 3123.8,-3362.8 3167.15,-3382.18 6496.01,-3370.91 6542.8,-3362.8 6589,-3354.79 6639.14,-3335.72 6673.86,-3320.72"/>
<polygon fill="#993333" stroke="black" points="6675.48,-3323.84 6683.23,-3316.61 6672.67,-3317.43 6675.48,-3323.84"/>
</g>
<!-- ahriman_core_alpm_repo -->
<g id="node40" class="node">
<title>ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="3465.8" cy="-3621.09" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="3465.8" y="-3635.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3465.8" y="-3624.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3465.8" y="-3613.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="3465.8" y="-3602.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repo</text>
</g>
<!-- ahriman_core_alpm_repo&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge110" class="edge">
<title>ahriman_core_alpm_repo&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3473.17,-3584.69C3516.33,-3378.55 3737.27,-2338.06 3823.8,-2222.54 3915.02,-2100.76 4081.62,-2023.68 4176.89,-1987.39"/>
<polygon fill="#993333" stroke="black" points="4178.32,-1990.59 4186.44,-1983.79 4175.85,-1984.04 4178.32,-1990.59"/>
</g>
<!-- ahriman_core_auth -->
<g id="node41" class="node">
<title>ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c70505" stroke="black" cx="9993.8" cy="-1852.27" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="9993.8" y="-1860.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9993.8" y="-1849.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9993.8" y="-1838.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth</text>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge111" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10021.8,-1741.73C10039.99,-1683.5 10105.42,-1721.02 10138.8,-1669.96 10172.56,-1618.31 10136.48,-1590.33 10157.8,-1532.43"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_base -->
<g id="edge112" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9959.56,-1839.31C9920.62,-1825.54 9855.22,-1801.92 9799.8,-1779.5 9612.54,-1703.73 9575.54,-1659.96 9383.8,-1596.42 9315.84,-1573.9 9281.13,-1607.03 9226.8,-1560.42 9139.96,-1485.91 9150.81,-1433.96 9131.8,-1321.13"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_index -->
<g id="edge113" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9985.07,-1823.69C9953.55,-1724.81 9841.44,-1379.17 9727.8,-1102.05"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_login -->
<g id="edge114" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10021.8,-1741.73C10032.08,-1677.41 10022.33,-1658.88 10040.8,-1596.42 10063.93,-1518.16 10098.74,-1509.51 10119.8,-1430.67"/>
<path fill="none" stroke="black" d="M10119.8,-1428.67C10142.69,-1385.26 10151.62,-1369.72 10144.8,-1321.13"/>
<path fill="none" stroke="black" d="M10144.8,-1319.13C10131.17,-1222.13 10138.42,-1189.36 10182.8,-1102.05"/>
<path fill="none" stroke="black" d="M10182.8,-1100.05C10189.31,-1084.27 10187.98,-1078.9 10196.8,-1064.28 10218.57,-1028.18 10282.1,-1027.63 10258.8,-992.51"/>
<path fill="none" stroke="black" d="M10258.8,-990.51C10220.65,-933.03 10013.17,-896 9917.79,-881.78"/>
<polygon fill="#c70505" stroke="black" points="9918.23,-878.3 9907.83,-880.31 9917.21,-885.23 9918.23,-878.3"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge115" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10002.25,-1823.68C10008.55,-1802.11 10016.88,-1771.26 10021.8,-1743.73"/>
<path fill="none" stroke="black" d="M10021.8,-1741.73C10022.95,-1735.26 9908.57,-1289.31 9905.8,-1283.36 9897.45,-1265.47 9888.84,-1264.9 9879.8,-1247.36 9840.43,-1171 9863.86,-1136.79 9817.8,-1064.28 9780.12,-1004.97 9760.06,-996.83 9703.8,-954.74 9677.97,-935.42 9666.79,-937.82 9640.8,-918.74 9637.22,-916.11 9633.62,-913.25 9630.08,-910.28"/>
<polygon fill="#c70505" stroke="black" points="9632.33,-907.6 9622.49,-903.68 9627.74,-912.89 9632.33,-907.6"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_web -->
<g id="edge116" class="edge">
<title>ahriman_core_auth&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10119.8,-1428.67C10159.14,-1354.08 10171.46,-1329.87 10241.8,-1283.36 10287.53,-1253.11 10326.7,-1291.07 10359.8,-1247.36 10471.9,-1099.32 10302.86,-1003.24 10368.8,-829.64 10383.66,-790.51 10441.23,-798.15 10429.8,-757.87"/>
<path fill="none" stroke="black" d="M10429.8,-755.87C10407.48,-683.21 10339.66,-711.11 10296.8,-648.34"/>
</g>
<!-- ahriman_core_auth_auth -->
<g id="node42" class="node">
<title>ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="9899.8" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9899.8" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9899.8" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9899.8" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="9899.8" y="-1942.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth</text>
</g>
<!-- ahriman_core_auth_auth&#45;&gt;ahriman_core_auth -->
<g id="edge117" class="edge">
<title>ahriman_core_auth_auth&#45;&gt;ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9924,-1933.11C9936.97,-1918.27 9953,-1899.94 9966.42,-1884.58"/>
<polygon fill="#8a2e2e" stroke="black" points="9969.23,-1886.69 9973.17,-1876.86 9963.96,-1882.08 9969.23,-1886.69"/>
</g>
<!-- ahriman_core_auth_helpers -->
<g id="node43" class="node">
<title>ahriman_core_auth_helpers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d92626" stroke="black" cx="9926.8" cy="-1210.59" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9926.8" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9926.8" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9926.8" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="9926.8" y="-1191.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">helpers</text>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_index -->
<g id="edge118" class="edge">
<title>ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9921.43,-1173.92C9912.62,-1126.81 9890.89,-1043.84 9841.8,-992.51"/>
<path fill="none" stroke="black" d="M9841.8,-990.51C9741.03,-900.76 9665.66,-982.6 9546.8,-918.74 9541.9,-916.11 9537.12,-912.84 9532.6,-909.29"/>
<polygon fill="#d92626" stroke="black" points="9534.67,-906.46 9524.78,-902.67 9530.15,-911.8 9534.67,-906.46"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_login -->
<g id="edge119" class="edge">
<title>ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9958.98,-1190.56C9986.16,-1172.06 10022,-1141.07 10030.8,-1102.05"/>
<path fill="none" stroke="black" d="M10030.8,-1100.05C10045.18,-1036.19 10043.98,-1008.61 10006.8,-954.74 9985.15,-923.39 9946.83,-902.68 9916.2,-890.27"/>
<polygon fill="#d92626" stroke="black" points="9917.15,-886.88 9906.56,-886.53 9914.62,-893.41 9917.15,-886.88"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge120" class="edge">
<title>ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9841.8,-990.51C9776.23,-921.96 9724.02,-964.25 9640.8,-918.74 9636.9,-916.61 9633.08,-914.09 9629.4,-911.35"/>
<polygon fill="#d92626" stroke="black" points="9631.59,-908.61 9621.61,-905.06 9627.2,-914.06 9631.59,-908.61"/>
</g>
<!-- ahriman_core_auth_mapping -->
<g id="node44" class="node">
<title>ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="9691.8" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9691.8" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9691.8" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9691.8" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="9691.8" y="-1942.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">mapping</text>
</g>
<!-- ahriman_core_auth_mapping&#45;&gt;ahriman_core_auth -->
<g id="edge121" class="edge">
<title>ahriman_core_auth_mapping&#45;&gt;ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9727.33,-1948.15C9782.71,-1928.43 9889.51,-1890.4 9949.72,-1868.96"/>
<polygon fill="#822b2b" stroke="black" points="9951.08,-1872.19 9959.33,-1865.54 9948.73,-1865.6 9951.08,-1872.19"/>
</g>
<!-- ahriman_core_auth_oauth -->
<g id="node45" class="node">
<title>ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="9993.8" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9993.8" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9993.8" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9993.8" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="9993.8" y="-1942.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">oauth</text>
</g>
<!-- ahriman_core_auth_oauth&#45;&gt;ahriman_core_auth -->
<g id="edge122" class="edge">
<title>ahriman_core_auth_oauth&#45;&gt;ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9993.8,-1925C9993.8,-1914.25 9993.8,-1902.43 9993.8,-1891.54"/>
<polygon fill="#822b2b" stroke="black" points="9997.3,-1891.44 9993.8,-1881.44 9990.3,-1891.44 9997.3,-1891.44"/>
</g>
<!-- ahriman_core_build_tools -->
<g id="node46" class="node">
<title>ahriman_core_build_tools</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="2922.8" cy="-3096.73" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="2922.8" y="-3105.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2922.8" y="-3094.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2922.8" y="-3083.23" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge123" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2925.8,-2610.26C2945.33,-2487.71 2932.56,-2454.97 2949.8,-2332.08 2954.31,-2299.89 2958.4,-2292.36 2963.8,-2260.31"/>
<path fill="none" stroke="black" d="M2963.8,-2258.31C2967.32,-2172.27 2963.8,-2150.67 2963.8,-2064.57 2963.8,-2064.57 2963.8,-2064.57 2963.8,-1530.43 2963.8,-1431.46 3023.35,-1418.72 3039.8,-1321.13"/>
<path fill="none" stroke="black" d="M3039.8,-1319.13C3044.63,-1271.58 3054.77,-1256.97 3039.8,-1211.59"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge124" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2909.29,-3068.83C2877.88,-3006.24 2802.28,-2855.29 2797.8,-2843.77 2782.02,-2803.28 2585.91,-2135.58 2579.8,-2092.56 2576.17,-2067.04 2567.17,-2057.04 2579.8,-2034.57 2609.88,-1981.07 2678.42,-2021.05 2697.8,-1962.8"/>
<path fill="none" stroke="black" d="M2697.8,-1960.8C2762.45,-1683.44 2519.87,-1569.18 2659.8,-1321.13"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge125" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2878.92,-3090.12C2737.21,-3072.09 2278.87,-3014.39 1898.8,-2973.76 1730.11,-2955.72 1682.65,-2981.69 1518.8,-2937.76 1265.24,-2869.77 1233.21,-2767.31 981.8,-2691.81 881.86,-2661.8 833.64,-2717.92 749.8,-2655.81 714.46,-2629.64 738.94,-2596.71 706.8,-2566.71 675.3,-2537.32 651.93,-2555.65 616.8,-2530.71 465.14,-2423.07 445.84,-2360.01 378.8,-2186.54 250.63,-1854.93 239.57,-1746.24 278.8,-1392.9 298.92,-1211.62 373.46,-1174.84 368.8,-992.51"/>
</g>
<!-- ahriman_core_repository_executor -->
<g id="node84" class="node">
<title>ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="5027.8" cy="-1742.73" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="5027.8" y="-1756.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5027.8" y="-1745.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5027.8" y="-1734.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="5027.8" y="-1723.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">executor</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_core_repository_executor -->
<g id="edge126" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2990.8,-2907.77C3028.53,-2831.63 4085.69,-1960.75 4162.8,-1925.03 4248.72,-1885.23 4284.34,-1922.84 4372.8,-1889.03 4400.73,-1878.36 4401.16,-1861.9 4429.8,-1853.27"/>
<path fill="none" stroke="black" d="M4429.8,-1851.27C4619.41,-1772.83 4866.14,-1751.5 4973.7,-1745.78"/>
<polygon fill="#f91010" stroke="black" points="4974.17,-1749.26 4983.98,-1745.26 4973.82,-1742.27 4974.17,-1749.26"/>
</g>
<!-- ahriman_core_repository_update_handler -->
<g id="node87" class="node">
<title>ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="4319.8" cy="-1742.73" rx="58.88" ry="36.54"/>
<text text-anchor="middle" x="4319.8" y="-1756.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4319.8" y="-1745.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4319.8" y="-1734.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4319.8" y="-1723.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update_handler</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge127" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2933.8,-3001.75C2940.14,-2954.07 2975.17,-2955.25 2990.8,-2909.77"/>
<path fill="none" stroke="black" d="M2990.8,-2907.77C3009.12,-2854.43 2999.98,-2835.93 3025.8,-2785.79 3081.71,-2677.18 3608.57,-1993.42 3709.8,-1925.03 3882.82,-1808.15 4132.83,-1765.03 4251.86,-1750.47"/>
<polygon fill="#f91010" stroke="black" points="4252.41,-1753.92 4261.93,-1749.26 4251.58,-1746.97 4252.41,-1753.92"/>
</g>
<!-- ahriman_core_tree -->
<g id="node95" class="node">
<title>ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="2697.8" cy="-2063.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="2697.8" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2697.8" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2697.8" y="-2050.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">tree</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_core_tree -->
<g id="edge128" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2925.6,-3067.47C2927.55,-3049.24 2930.41,-3025.03 2933.8,-3003.75"/>
<path fill="none" stroke="black" d="M2933.8,-3001.75C2942.89,-2944.69 2909.91,-2933.56 2888.8,-2879.77 2882.46,-2863.64 2877.2,-2860.77 2873.8,-2843.77 2860.55,-2777.55 2851.88,-2755.69 2873.8,-2691.81 2880.37,-2672.64 2890.65,-2672.74 2901.8,-2655.81 2913.95,-2637.35 2922.37,-2634.09 2925.8,-2612.26"/>
<path fill="none" stroke="black" d="M2925.8,-2610.26C2936.97,-2498.38 2698.9,-2270.99 2697.8,-2158.55"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_models_package -->
<g id="edge129" class="edge">
<title>ahriman_core_build_tools&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2967.58,-3094.13C3230.82,-3084.72 4565.75,-3036.76 4574.8,-3031.74 4587.94,-3024.44 4581.89,-3012.93 4593.8,-3003.75"/>
<path fill="none" stroke="black" d="M4593.8,-3001.75C4611.94,-2987.76 4624.76,-2965.53 4633.13,-2946.42"/>
<polygon fill="#f91010" stroke="black" points="4636.41,-2947.64 4636.99,-2937.06 4629.94,-2944.97 4636.41,-2947.64"/>
</g>
<!-- ahriman_core_build_tools_sources -->
<g id="node47" class="node">
<title>ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bd0404" stroke="black" cx="2888.8" cy="-2259.31" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2888.8" y="-2273.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2888.8" y="-2262.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2888.8" y="-2251.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="2888.8" y="-2240.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sources</text>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge130" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2849.8,-2062.57C2842.27,-2034.44 2858.95,-2027.28 2863.8,-1998.57 2893.73,-1821.08 2884.6,-1774.36 2911.8,-1596.42 2925.7,-1505.46 2920.62,-1480.16 2949.8,-1392.9 2964.06,-1350.24 3047.15,-1255.96 3039.8,-1211.59"/>
<path fill="none" stroke="black" d="M3039.8,-1209.59C3032.11,-1186.3 3018.31,-1162.99 3005.13,-1144.06"/>
<polygon fill="#bd0404" stroke="black" points="3007.81,-1141.78 2999.15,-1135.68 3002.11,-1145.85 3007.81,-1141.78"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge131" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2849.8,-2062.57C2803.15,-1924.56 2773.8,-1889.4 2773.8,-1743.73 2773.8,-1743.73 2773.8,-1743.73 2773.8,-1530.43 2773.8,-1503.94 2648.14,-1344.9 2659.8,-1321.13"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge132" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2849.8,-2156.55C2829.38,-2121.13 2862.85,-2103.31 2849.8,-2064.57"/>
<path fill="none" stroke="black" d="M2849.8,-2062.57C2824.55,-1987.63 2756.66,-2029.29 2683.8,-1998.57 2053.46,-1732.83 1842.18,-1753.46 1284.8,-1356.9 1247.24,-1330.18 755.94,-767.16 710.8,-757.87"/>
<path fill="none" stroke="black" d="M710.8,-755.87C664.55,-746.41 656.36,-732.44 610.8,-720.1 526.99,-697.41 499.52,-716.06 418.8,-684.1 414.34,-682.34 409.85,-680.21 405.46,-677.87"/>
<polygon fill="#bd0404" stroke="black" points="407.05,-674.75 396.63,-672.84 403.59,-680.83 407.05,-674.75"/>
</g>
<!-- ahriman_core_build_tools_task -->
<g id="node48" class="node">
<title>ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="5867.8" cy="-1961.8" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="5867.8" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5867.8" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5867.8" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="5867.8" y="-1942.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">task</text>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge133" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2934.81,-2253.11C2998.09,-2246 3115.54,-2232.93 3215.8,-2222.54 4257.31,-2114.58 5530.21,-1994.49 5811.19,-1968.11"/>
<polygon fill="#bd0404" stroke="black" points="5811.9,-1971.56 5821.53,-1967.14 5811.25,-1964.59 5811.9,-1971.56"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge134" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2923.67,-2234.51C3036.72,-2158.68 3405.62,-1921.49 3747.8,-1815.5 3923.53,-1761.06 4141.81,-1747.79 4250.93,-1744.64"/>
<polygon fill="#bd0404" stroke="black" points="4251.24,-1748.14 4261.15,-1744.37 4251.06,-1741.14 4251.24,-1748.14"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_tree -->
<g id="edge135" class="edge">
<title>ahriman_core_build_tools_sources&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2878.05,-2223.43C2871.28,-2203.72 2861.59,-2179.01 2849.8,-2158.55"/>
<path fill="none" stroke="black" d="M2849.8,-2156.55C2826.77,-2116.61 2778.83,-2091.96 2742.91,-2078.35"/>
<polygon fill="#bd0404" stroke="black" points="2743.72,-2074.92 2733.12,-2074.8 2741.33,-2081.5 2743.72,-2074.92"/>
</g>
<!-- ahriman_core_build_tools_task&#45;&gt;ahriman_core_repository_executor -->
<g id="edge137" class="edge">
<title>ahriman_core_build_tools_task&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5898.36,-1933.78C5920.2,-1911.14 5942.68,-1878.57 5923.8,-1853.27"/>
<path fill="none" stroke="black" d="M5923.8,-1851.27C5875.86,-1787 5285.08,-1791.4 5205.8,-1779.5 5163.24,-1773.11 5115.45,-1763.36 5080.11,-1755.65"/>
<polygon fill="#732626" stroke="black" points="5080.55,-1752.17 5070.03,-1753.44 5079.04,-1759 5080.55,-1752.17"/>
</g>
<!-- ahriman_core_configuration -->
<g id="node49" class="node">
<title>ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d10505" stroke="black" cx="5252.8" cy="-3621.09" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="5252.8" y="-3629.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5252.8" y="-3618.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5252.8" y="-3607.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge138" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4416.8,-3518.33C4343.63,-3504.42 4151.7,-3492.59 4087.8,-3454.34 3990.05,-3395.83 4024.73,-3312.19 3925.8,-3255.71 3684.53,-3117.95 3583.74,-3193.98 3307.8,-3161.72 3259.19,-3156.04 2902.77,-3160.95 2868.8,-3125.72 2815.45,-3070.42 2811.8,-1820.57 2811.8,-1743.73 2811.8,-1743.73 2811.8,-1743.73 2811.8,-1530.43 2811.8,-1426.24 2868.97,-1314.64 2904.71,-1255.04"/>
<polygon fill="#d10505" stroke="black" points="2907.83,-1256.65 2910.04,-1246.28 2901.85,-1253.01 2907.83,-1256.65"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_add -->
<g id="edge139" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5202.11,-3617.03C5027.94,-3606.34 4462.84,-3570.11 4430.8,-3548.32 4419.29,-3540.5 4430.47,-3522.91 4416.8,-3520.33"/>
<path fill="none" stroke="black" d="M4416.8,-3518.33C4405.68,-3516.24 4024.62,-3459.94 4014.8,-3454.34 3989.86,-3440.14 3875.35,-3268.75 3849.8,-3255.71 3742.28,-3200.82 3427.42,-3235.85 3307.8,-3219.71 3301.35,-3218.83 2853.59,-3130.13 2848.8,-3125.72 2707.55,-2995.88 2657.2,-2481.99 2609.8,-2296.08 2587,-2206.67 2577.99,-2184.37 2568.8,-2092.56 2548.47,-1889.68 2549.8,-1838.08 2549.8,-1634.19 2549.8,-1634.19 2549.8,-1634.19 2549.8,-990.51 2549.8,-887.12 2468.28,-821.48 2549.8,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge140" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5291.62,-3602.1C5304.37,-3596.3 5318.64,-3589.93 5331.8,-3584.32 5371.43,-3567.43 5382.15,-3565.19 5421.8,-3548.32 5449.62,-3536.49 5456.05,-3532.34 5483.8,-3520.33"/>
<path fill="none" stroke="black" d="M5483.8,-3518.33C5497.6,-3512.36 5492.44,-3501.24 5502.8,-3490.34 5539.25,-3451.99 5554.73,-3449.32 5597.8,-3418.57"/>
<path fill="none" stroke="black" d="M5597.8,-3416.57C5780.67,-3285.98 5794.05,-3214.99 5963.8,-3067.74 6085.22,-2962.4 6177.66,-2988.41 6247.8,-2843.77 6259.04,-2820.59 6260.44,-2808.25 6247.8,-2785.79 6208.27,-2715.59 6163.22,-2730.94 6092.8,-2691.81 6061.87,-2674.62 6040.31,-2685.96 6021.8,-2655.81 5859.19,-2391.05 6113.8,-2273.51 6113.8,-1962.8 6113.8,-1962.8 6113.8,-1962.8 6113.8,-1100.05 6113.8,-1035.98 6183.61,-886.15 6213.8,-829.64 6232.36,-794.9 6248.31,-793.17 6265.8,-757.87"/>
<path fill="none" stroke="black" d="M6265.8,-755.87C6274.23,-738.69 6278.84,-735.81 6289.8,-720.1 6312.33,-687.8 6334.78,-687.1 6341.8,-648.34"/>
<path fill="none" stroke="black" d="M6341.8,-646.34C6370.98,-485.12 3642.56,-356.95 3212.53,-337.76"/>
<polygon fill="#d10505" stroke="black" points="3212.66,-334.26 3202.51,-337.31 3212.35,-341.25 3212.66,-334.26"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge141" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_clean</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5202.02,-3618.32C5125.09,-3614 4975.8,-3599.18 4860.8,-3548.32 4821.94,-3531.14 4824.58,-3505.26 4784.8,-3490.34 4671.15,-3447.71 4350.04,-3505.12 4239.8,-3454.34 4233.58,-3451.48 3555.12,-2755.77 3551.8,-2749.79 3399.07,-2475.69 3381.8,-2378.34 3381.8,-2064.57 3381.8,-2064.57 3381.8,-2064.57 3381.8,-1960.8 3381.8,-1626.11 3305.8,-1546.28 3305.8,-1211.59 3305.8,-1211.59 3305.8,-1211.59 3305.8,-990.51 3305.8,-862.37 3290.77,-816.01 3205.8,-720.1 3182.6,-693.92 3166.05,-701.66 3135.8,-684.1 3131.98,-681.89 3128.06,-679.53 3124.15,-677.11"/>
<polygon fill="#d10505" stroke="black" points="3126,-674.14 3115.67,-671.77 3122.27,-680.06 3126,-674.14"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge142" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5202.58,-3616.14C5106.68,-3608.72 4890.8,-3592.74 4708.8,-3584.32 4112.33,-3556.73 3961.22,-3593.11 3365.8,-3548.32 2315.44,-3469.31 2011.47,-3517.71 1033.8,-3125.72 646.78,-2970.55 480.9,-2982.49 221.8,-2655.81 172.65,-2593.85 102.8,-2184.69 102.8,-1962.8 102.8,-1962.8 102.8,-1962.8 102.8,-1632.19 102.8,-1577.54 89.14,-1515.98 78.2,-1475.44"/>
<polygon fill="#d10505" stroke="black" points="81.51,-1474.31 75.48,-1465.6 74.77,-1476.17 81.51,-1474.31"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge143" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5303.48,-3617.53C5432.59,-3611.08 5784.42,-3594 6077.8,-3584.32 6431.69,-3572.65 7319.15,-3589.9 7670.8,-3548.32 7867.22,-3525.1 7913.02,-3498.62 8105.8,-3454.34 8306.41,-3408.26 8359.88,-3407.94 8555.8,-3344.8 8656.2,-3312.44 8673.13,-3279.94 8775.8,-3255.71 8973.66,-3209 9041.91,-3292.32 9231.8,-3219.71 9271.48,-3204.53 9268.82,-3178.63 9307.8,-3161.72 9396.28,-3123.35 9441.05,-3178.47 9521.8,-3125.72 9547.59,-3108.87 9536.14,-3087.49 9559.8,-3067.74 9591.29,-3041.45 9611.02,-3055.03 9644.8,-3031.74 9826.84,-2906.17 9948.78,-2685.42 10105.8,-2405.62 10193.94,-2248.54 10151.84,-2171.56 10268.8,-2034.57 10333.86,-1958.36 10438.95,-1902.66 10500.81,-1874.34"/>
<polygon fill="#d10505" stroke="black" points="10502.31,-1877.51 10509.98,-1870.2 10499.42,-1871.13 10502.31,-1877.51"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_help -->
<g id="edge144" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_help</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3569.8,-3518.33C3505.59,-3498.48 3488.3,-3492.23 3432.8,-3454.34 3374.5,-3414.54 3357.47,-3403.18 3317.8,-3344.8 3293.79,-3309.48 3316.56,-3280.51 3281.8,-3255.71 3219.84,-3211.5 2673.29,-3229.34 2597.8,-3219.71 2262.58,-3176.94 2184.11,-3134.3 1852.8,-3067.74 1771.95,-3051.5 1749.91,-3054.96 1670.8,-3031.74 1603.41,-3011.96 1591.74,-2991.53 1523.8,-2973.76 1409.66,-2943.9 1364.74,-2993.56 1260.8,-2937.76 1230.56,-2921.52 1235.43,-2902.6 1209.8,-2879.77 1188.8,-2861.08 1179.68,-2861.42 1157.8,-2843.77 1128.43,-2820.09 1126.99,-2807.01 1095.8,-2785.79 1064.89,-2764.78 1047.98,-2774.34 1019.8,-2749.79 996.56,-2729.56 1007.05,-2709.46 981.8,-2691.81 924.19,-2651.53 873,-2709.64 827.8,-2655.81 806.25,-2630.15 710.71,-1325.3 824.8,-648.34"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge145" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_key_import</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4253.8,-3416.57C4214.74,-3383.39 4274.24,-3348.25 4253.8,-3301.25"/>
<path fill="none" stroke="black" d="M4253.8,-3299.25C4234.78,-3255.52 4212.8,-3255.94 4181.8,-3219.71 4111.94,-3138.08 4086.5,-3122.99 4029.8,-3031.74 3956.96,-2914.54 3955.14,-2876.2 3899.8,-2749.79 3757.74,-2425.34 3721.77,-2341.66 3633.8,-1998.57 3502.88,-1488.02 3565.06,-1340.11 3433.8,-829.64 3420.96,-779.74 3425.89,-761.93 3395.8,-720.1 3388.43,-709.87 3366.5,-692.79 3345.79,-677.86"/>
<polygon fill="#d10505" stroke="black" points="3347.81,-675.01 3337.64,-672.05 3343.75,-680.71 3347.81,-675.01"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge146" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5202.58,-3616.21C5106.67,-3608.92 4890.78,-3593.14 4708.8,-3584.32 4452.75,-3571.91 3807.65,-3596.1 3555.8,-3548.32 3480.66,-3534.07 3467.3,-3511.45 3393.8,-3490.34 2853.29,-3335.13 2706.04,-3344.86 2157.8,-3219.71 2049.13,-3194.9 2023.42,-3181.87 1913.8,-3161.72 1792.56,-3139.44 1756.85,-3161.18 1638.8,-3125.72 1582.45,-3108.8 1575.29,-3087.29 1519.8,-3067.74 1451.87,-3043.81 1430.44,-3053.54 1361.8,-3031.74 1257.33,-2998.56 1228.21,-2993.43 1133.8,-2937.76 1110.51,-2924.03 968.65,-2796.42 943.8,-2785.79 833.29,-2738.54 783.52,-2803.08 675.8,-2749.79 333.49,-2580.44 330.8,-2344.71 330.8,-1962.8 330.8,-1962.8 330.8,-1962.8 330.8,-1851.27 330.8,-1610.26 402.82,-1558.45 444.8,-1321.13"/>
<path fill="none" stroke="black" d="M444.8,-1319.13C454.26,-1170.39 370.56,-1141.54 368.8,-992.51"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge147" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5202.19,-3616.44C5106.08,-3609.58 4890.47,-3594.52 4708.8,-3584.32 4537.1,-3574.68 4102.71,-3589.69 3935.8,-3548.32 3840.47,-3524.7 3812.26,-3515.98 3735.8,-3454.34 3649.25,-3384.57 3682.31,-3307.21 3583.8,-3255.71 3428.84,-3174.7 2963.8,-3274.62 2797.8,-3219.71 2754.03,-3205.23 2753.04,-3182.32 2711.8,-3161.72 2668.04,-3139.87 2653.21,-3143.9 2607.8,-3125.72 2456.76,-3065.28 2432.9,-3012.09 2274.8,-2973.76 2111.34,-2934.13 1669.98,-3011.45 1518.8,-2937.76 1469.23,-2913.6 1470.98,-2887.81 1437.8,-2843.77 1419.25,-2819.17 1423.03,-2806.03 1399.8,-2785.79 1371.61,-2761.24 1355.72,-2769.23 1323.8,-2749.79 1287.51,-2727.69 1286.95,-2708.31 1247.8,-2691.81 1146.37,-2649.07 1085.76,-2728.13 1002.8,-2655.81 943.96,-2604.52 953.8,-2565.22 953.8,-2487.17 953.8,-2487.17 953.8,-2487.17 953.8,-2367.85 953.8,-1990.21 1108.8,-1910.06 1108.8,-1532.43 1108.8,-1532.43 1108.8,-1532.43 1108.8,-1319.13 1108.8,-1222.65 1092.76,-1197.19 1108.8,-1102.05"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge148" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4253.8,-3299.25C4067.77,-2886.7 3864.78,-2821.6 3837.8,-2369.85"/>
<path fill="none" stroke="black" d="M3837.8,-2367.85C3819.42,-2270.6 3761.8,-2257.51 3761.8,-2158.55 3761.8,-2158.55 3761.8,-2158.55 3761.8,-2062.57 3761.8,-1919.86 3723.8,-1886.44 3723.8,-1743.73 3723.8,-1743.73 3723.8,-1743.73 3723.8,-873.19 3723.8,-856.94 3542.94,-734.33 3457.51,-677.32"/>
<polygon fill="#d10505" stroke="black" points="3459.32,-674.32 3449.06,-671.69 3455.43,-680.15 3459.32,-674.32"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge149" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5203.92,-3612.76C5118.76,-3599.96 4937.63,-3572.56 4784.8,-3548.32 4627.33,-3523.35 4588.48,-3513.88 4430.8,-3490.34 4312.37,-3472.66 4272.6,-3504.34 4163.8,-3454.34 4097.28,-3423.77 4089.58,-3399.38 4040.8,-3344.8 4008.48,-3308.64 4008.66,-3293.11 3977.8,-3255.71 3816.35,-3060.07 3728.95,-3051.08 3582.8,-2843.77 3492.01,-2714.99 3153.8,-1976.04 3153.8,-1853.27 3153.8,-1853.27 3153.8,-1853.27 3153.8,-1632.19 3153.8,-1489.87 3077.8,-1463.44 3077.8,-1321.13 3077.8,-1321.13 3077.8,-1321.13 3077.8,-873.19 3077.8,-800.38 3026.69,-729.47 2989.32,-687.34"/>
<polygon fill="#d10505" stroke="black" points="2991.82,-684.88 2982.52,-679.81 2986.63,-689.58 2991.82,-684.88"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_report -->
<g id="edge150" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3569.8,-3518.33C3499.32,-3493.28 3516.51,-3441.49 3472.8,-3380.8 3432.46,-3324.8 3441.52,-3288.5 3380.8,-3255.71 3249.8,-3184.95 2847.5,-3280.94 2711.8,-3219.71 2678.86,-3204.84 2686.47,-3179.13 2654.8,-3161.72 2587.87,-3124.94 2559.59,-3148.8 2486.8,-3125.72 2424.16,-3105.86 2413.49,-3087.41 2350.8,-3067.74 2155.02,-3006.32 2101.88,-3003.04 1898.8,-2973.76 1704.16,-2945.69 1643.74,-3001.77 1457.8,-2937.76 1269.69,-2872.99 1265.2,-2773.48 1083.8,-2691.81 1027.96,-2666.67 989.07,-2703.61 950.8,-2655.81 866.28,-2550.26 994.8,-1934.45 994.8,-1853.27 994.8,-1853.27 994.8,-1853.27 994.8,-1209.59 994.8,-1113.11 956.49,-1081.06 994.8,-992.51"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_restore -->
<g id="edge151" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_restore</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5202.19,-3616.53C5106.06,-3609.82 4890.44,-3595.01 4708.8,-3584.32 4554.63,-3575.26 4165.19,-3583.41 4014.8,-3548.32 3984.17,-3541.18 3979.69,-3530.1 3949.8,-3520.33"/>
<path fill="none" stroke="black" d="M3949.8,-3518.33C3931.79,-3512.45 3806.91,-3465.75 3791.8,-3454.34 3702.41,-3386.88 3736.31,-3307.04 3636.8,-3255.71 3476.47,-3173 2990.58,-3293.13 2825.8,-3219.71 2792.79,-3205 2796.54,-3184.87 2768.8,-3161.72 2746.93,-3143.48 2733.54,-3147.99 2715.8,-3125.72 2538.88,-2903.76 2584.65,-2796.03 2483.8,-2530.71 2468.79,-2491.24 2479.32,-2472.76 2450.8,-2441.62 2425.55,-2414.06 2404.72,-2428.01 2374.8,-2405.62 2163.64,-2247.62 1979.8,-2226.53 1979.8,-1962.8 1979.8,-1962.8 1979.8,-1962.8 1979.8,-1632.19 1979.8,-1423.19 1990.06,-1348.16 1874.8,-1173.82 1708.11,-921.7 1289.65,-1056.41 1336.8,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_search -->
<g id="edge152" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3837.8,-2367.85C3819.48,-2166.78 4143.91,-1699.03 4317.8,-1596.42 4542.1,-1464.06 5227.51,-1381.61 5424.8,-1211.59"/>
<path fill="none" stroke="black" d="M5424.8,-1209.59C5562.35,-1096.89 6082.99,-1039.17 6151.8,-875.19"/>
<path fill="none" stroke="black" d="M6151.8,-873.19C6190.67,-745.19 3967.28,-663.44 3581.48,-650.23"/>
<polygon fill="#d10505" stroke="black" points="3581.51,-646.72 3571.39,-649.88 3581.27,-653.72 3581.51,-646.72"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge153" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5303.47,-3617.4C5432.57,-3610.65 5784.39,-3592.94 6077.8,-3584.32 6337.94,-3576.69 8163.63,-3594.27 8419.8,-3548.32 8543.21,-3526.18 8568.72,-3499.21 8685.8,-3454.34 8901.38,-3371.71 8943.42,-3317.77 9165.8,-3255.71 9267.57,-3227.3 9298.68,-3246.85 9400.8,-3219.71 9625.42,-3159.99 9690.41,-3152.83 9888.8,-3031.74 9921.84,-3011.57 9924.47,-2999.03 9953.8,-2973.76 10186.86,-2772.86 10318.45,-2788.93 10485.8,-2530.71 10755.55,-2114.48 10673.8,-1926.66 10673.8,-1430.67 10673.8,-1430.67 10673.8,-1430.67 10673.8,-1319.13 10673.8,-1189.14 10823.41,-1223.48 10869.8,-1102.05"/>
<path fill="none" stroke="black" d="M10869.8,-1100.05C10905.99,-952.1 10988.61,-872.92 10888.8,-757.87"/>
<path fill="none" stroke="black" d="M10888.8,-755.87C10828.83,-700.53 10791.83,-722.45 10719.8,-684.1 10715.9,-682.03 10711.93,-679.77 10707.98,-677.42"/>
<polygon fill="#d10505" stroke="black" points="10709.8,-674.43 10699.45,-672.17 10706.14,-680.39 10709.8,-674.43"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge154" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5303.47,-3617.39C5432.57,-3610.61 5784.38,-3592.84 6077.8,-3584.32 6349.38,-3576.44 8254.85,-3593.33 8522.8,-3548.32 9105.71,-3450.42 9251.55,-3382.8 9783.8,-3125.72 9905.95,-3066.72 10696.4,-2519.71 10769.8,-2405.62 10870.46,-2249.12 10830.15,-2180.8 10867.8,-1998.57 10916.36,-1763.52 10936.31,-1705.3 10959.8,-1466.43 10977.29,-1288.5 10963.49,-1242.96 10969.8,-1064.28 10972.2,-996.16 11019.02,-816.23 10983.8,-757.87"/>
<path fill="none" stroke="black" d="M10983.8,-755.87C10946.11,-705.46 10877.92,-676.69 10829.92,-661.82"/>
<polygon fill="#d10505" stroke="black" points="10830.88,-658.46 10820.3,-658.95 10828.88,-665.17 10830.88,-658.46"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status -->
<g id="edge155" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3949.8,-3518.33C3845.75,-3483.1 3832.98,-3437.34 3773.8,-3344.8 3750.6,-3308.53 3771.17,-3280.24 3735.8,-3255.71 3663.05,-3205.25 3025.17,-3243.14 2939.8,-3219.71 2929.11,-3216.77 2771.48,-3133.71 2763.8,-3125.72 2699.48,-3058.81 2706.64,-3024.18 2672.8,-2937.76 2641.37,-2857.5 2605.14,-2640.01 2559.8,-2566.71 2547.56,-2546.93 2535.08,-2549.81 2521.8,-2530.71 2497.21,-2495.37 2511.01,-2474.98 2483.8,-2441.62 2466.03,-2419.84 2451.62,-2425.55 2431.8,-2405.62 2390.18,-2363.79 2388.54,-2345.81 2356.8,-2296.08 2233.63,-2103.14 2093.8,-2082.17 2093.8,-1853.27 2093.8,-1853.27 2093.8,-1853.27 2093.8,-1209.59 2093.8,-1144.13 2091.56,-1124.25 2117.8,-1064.28 2133.58,-1028.19 2177.34,-1031.17 2169.8,-992.51"/>
<path fill="none" stroke="black" d="M2169.8,-990.51C2156.3,-930.63 2081.95,-935.42 2093.8,-875.19"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge156" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5202.57,-3616.34C5106.66,-3609.26 4890.75,-3593.83 4708.8,-3584.32 4455.63,-3571.1 3812.97,-3591.99 3569.8,-3520.33"/>
<path fill="none" stroke="black" d="M3569.8,-3518.33C3525.53,-3505.29 3514.39,-3502.23 3469.8,-3490.34 3406.89,-3473.56 3376.92,-3497.07 3327.8,-3454.34 3255.86,-3391.77 3324.48,-3310.97 3246.8,-3255.71 3185.42,-3212.04 2644.69,-3227.78 2569.8,-3219.71 2152.96,-3174.74 2052.94,-3132.99 1638.8,-3067.74 1533.55,-3051.16 1492.13,-3088.23 1401.8,-3031.74 1375.25,-3015.14 1388.03,-2990.84 1361.8,-2973.76 1289.77,-2926.87 1243.26,-2985.5 1171.8,-2937.76 1146.18,-2920.64 1156.44,-2900.66 1133.8,-2879.77 1109.23,-2857.12 1093.58,-2865.03 1067.8,-2843.77 1041.98,-2822.5 1047.62,-2804.37 1019.8,-2785.79 978.9,-2758.49 626.01,-2695.35 596.8,-2655.81 573.26,-2623.96 593.2,-2606.15 596.8,-2566.71 612.42,-2395.62 651.18,-2357.63 666.8,-2186.54 693.3,-1896.25 589.33,-1163.12 634.8,-875.19"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sync -->
<g id="edge157" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5205.55,-3610.09C5151.39,-3598.02 5060.37,-3575.87 4984.8,-3548.32 4927.64,-3527.49 4919.69,-3505.62 4860.8,-3490.34 4729.32,-3456.24 4357.31,-3506.51 4253.8,-3418.57"/>
<path fill="none" stroke="black" d="M4253.8,-3416.57C4245.78,-3409.76 4159.89,-3264.28 4153.8,-3255.71 4143.04,-3240.57 4060.35,-3140.25 4048.8,-3125.72 3883.67,-2918.11 3801.12,-2892.22 3680.8,-2655.81 3384.94,-2074.49 3419.8,-1863.86 3419.8,-1211.59 3419.8,-1211.59 3419.8,-1211.59 3419.8,-990.51 3419.8,-855.58 3367.13,-824.61 3281.8,-720.1 3268.66,-704.02 3251.37,-689.17 3235.45,-677.21"/>
<polygon fill="#d10505" stroke="black" points="3237.42,-674.31 3227.28,-671.22 3233.28,-679.95 3237.42,-674.31"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge158" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5202.58,-3616.15C5106.68,-3608.75 4890.8,-3592.79 4708.8,-3584.32 4416.78,-3570.73 3680.84,-3603.7 3393.8,-3548.32 3320.76,-3534.23 3309.02,-3508.15 3236.8,-3490.34 3116.69,-3460.73 3083.12,-3472.78 2960.8,-3454.34 2675.44,-3411.33 2600.74,-3414.86 2320.8,-3344.8 2199.03,-3314.33 2173.43,-3290.4 2052.8,-3255.71 1935.63,-3222 1637.58,-3157.2 1519.8,-3125.72 1375.36,-3087.12 1337.06,-3083.49 1196.8,-3031.74 910.9,-2926.26 836.06,-2901.54 571.8,-2749.79 267.34,-2574.97 178.8,-2415.64 178.8,-2064.57 178.8,-2064.57 178.8,-2064.57 178.8,-1960.8 178.8,-1659.53 103.81,-1567.91 202.8,-1283.36 215.74,-1246.15 248.31,-1250.44 254.8,-1211.59"/>
<path fill="none" stroke="black" d="M254.8,-1209.59C294.98,-917.65 161.77,-828.43 247.8,-546.57"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_update -->
<g id="edge159" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5201.78,-3617.91C5069.35,-3611.8 4703.98,-3591.98 4402.8,-3548.32 4198.44,-3518.7 4126.75,-3557.36 3947.8,-3454.34 3891.18,-3421.75 3892.77,-3394 3849.8,-3344.8 3815.55,-3305.6 3820.53,-3278.63 3773.8,-3255.71 3622.39,-3181.44 3174.23,-3277.46 3015.8,-3219.71 2975.88,-3205.15 2978,-3180.3 2939.8,-3161.72 2882.4,-3133.82 2849.88,-3166.5 2800.8,-3125.72 2765.32,-3096.25 2774.06,-3074.51 2756.8,-3031.74 2675.04,-2829.19 2690.38,-2764.55 2597.8,-2566.71 2570.22,-2507.79 2557.17,-2496.21 2521.8,-2441.62 2446.9,-2326.03 2392.93,-2315.96 2345.8,-2186.54 2245.87,-1912.15 2283.8,-1824.45 2283.8,-1532.43 2283.8,-1532.43 2283.8,-1532.43 2283.8,-1100.05 2283.8,-1000.11 2255.47,-971.03 2283.8,-875.19"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_users -->
<g id="edge160" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3569.8,-3518.33C3419.26,-3459.11 3464.74,-3323.34 3317.8,-3255.71 3189.61,-3196.7 2817.53,-3264.76 2683.8,-3219.71 2640.11,-3204.99 2640.34,-3179.47 2597.8,-3161.72 2522.5,-3130.31 2496.41,-3147.53 2417.8,-3125.72 2344.1,-3105.28 2329.86,-3086.77 2255.8,-3067.74 2000.75,-3002.21 1931.57,-3010.39 1670.8,-2973.76 1538.25,-2955.14 1496.83,-2985.51 1371.8,-2937.76 1193.51,-2869.66 1194.19,-2769.34 1019.8,-2691.81 954.78,-2662.9 908.09,-2711.49 863.8,-2655.81 781.97,-2552.95 848.85,-2192.07 880.8,-2064.57"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_web -->
<g id="edge161" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5597.8,-3416.57C5657.58,-3373.12 5686.02,-3385.37 5747.8,-3344.8 6015.52,-3168.99 6188.27,-3154.54 6265.8,-2843.77 6272.03,-2818.77 6270.1,-2811.2 6265.8,-2785.79 6245.74,-2667.41 6196.86,-2649.1 6176.8,-2530.71 6170.18,-2491.67 6176.11,-2481.21 6176.8,-2441.62 6179.69,-2273.96 6189.8,-2232.24 6189.8,-2064.57 6189.8,-2064.57 6189.8,-2064.57 6189.8,-1960.8 6189.8,-1627.43 6225.8,-1544.96 6225.8,-1211.59 6225.8,-1211.59 6225.8,-1211.59 6225.8,-1100.05 6225.8,-866.61 6381.39,-852.93 6493.8,-648.34"/>
<path fill="none" stroke="black" d="M6493.8,-646.34C6522.87,-560.83 6571.52,-518.84 6519.8,-444.81"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_lock -->
<g id="edge162" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5303.47,-3617.42C5432.58,-3610.71 5784.39,-3593.08 6077.8,-3584.32 6322.16,-3577.03 8036.37,-3586.81 8277.8,-3548.32 8513.92,-3510.68 8586.69,-3491.12 8775.8,-3344.8 8819.32,-3311.12 8812.04,-3279.24 8861.8,-3255.71 8951.68,-3213.19 9210.73,-3241.28 9307.8,-3219.71 9336.97,-3213.22 9532.2,-3137.2 9559.8,-3125.72 9616.71,-3102.05 9628.24,-3089.81 9685.8,-3067.74 9736.2,-3048.42 9757.12,-3062.03 9801.8,-3031.74 9846.26,-3001.59 9847.04,-2981.8 9877.8,-2937.76 9935.54,-2855.04 10342.18,-2259.42 10343.8,-2158.55"/>
<path fill="none" stroke="black" d="M10343.8,-2156.55C10343.1,-2138.47 10339.43,-2118.78 10335.51,-2102.27"/>
<polygon fill="#d10505" stroke="black" points="10338.87,-2101.3 10333.05,-2092.45 10332.08,-2103 10338.87,-2101.3"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge163" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5218.77,-3599.47C5208.99,-3594.07 5198.16,-3588.58 5187.8,-3584.32 5133.53,-3562.04 5115.9,-3568.45 5060.8,-3548.32 5032.4,-3537.95 5027.71,-3529.17 4998.8,-3520.33"/>
<path fill="none" stroke="black" d="M4998.8,-3518.33C4983.12,-3513.54 4989.29,-3497.98 4974.8,-3490.34 4909.14,-3455.74 4716.42,-3463.66 4642.8,-3454.34 4573.37,-3445.55 4493.23,-3433.61 4443.53,-3426"/>
<polygon fill="#d10505" stroke="black" points="4443.82,-3422.5 4433.4,-3424.44 4442.75,-3429.42 4443.82,-3422.5"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_auth -->
<g id="edge164" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5303.48,-3617.68C5432.61,-3611.59 5784.46,-3595.29 6077.8,-3584.32 6850.97,-3555.42 7062.41,-3638.89 7813.8,-3454.34 8083.31,-3388.14 8137.53,-3326.82 8405.8,-3255.71 8823.52,-3144.97 8935.7,-3150.78 9359.8,-3067.74 9442,-3051.64 9473.66,-3075.97 9544.8,-3031.74 9633.94,-2976.31 9635.89,-2935.01 9687.8,-2843.77 9826.42,-2600.13 9725.9,-2493.75 9796.8,-2222.54 9817.54,-2143.18 9855.82,-2055.33 9879.42,-2004.84"/>
<polygon fill="#d10505" stroke="black" points="9882.7,-2006.09 9883.79,-1995.55 9876.37,-2003.11 9882.7,-2006.09"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge165" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5303.7,-3617.87C5573.52,-3606.11 6825.91,-3551.43 6865.8,-3548.32 7241.2,-3519.05 7344.04,-3551.65 7707.8,-3454.34 7920.95,-3397.32 7950.89,-3317.2 8162.8,-3255.71 8263.43,-3226.5 8293.02,-3240.13 8395.8,-3219.71 8502.58,-3198.49 8527.92,-3187.09 8633.8,-3161.72 8810.97,-3119.28 8852.76,-3095.67 9032.8,-3067.74 9136.31,-3051.68 9410.88,-3081.97 9502.8,-3031.74 9548.73,-3006.64 9556.71,-2987.24 9573.8,-2937.76 9686.85,-2610.35 9501.22,-2493.92 9587.8,-2158.55"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge166" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5303.48,-3617.57C5432.59,-3611.23 5784.43,-3594.37 6077.8,-3584.32 6396.15,-3573.42 7194.51,-3586.2 7510.8,-3548.32 7706.76,-3524.86 7752.8,-3500.03 7944.8,-3454.34 8286.53,-3373.01 8369.55,-3343.03 8709.8,-3255.71 8905.88,-3205.38 9419.22,-3135.91 9592.8,-3031.74 9689.63,-2973.62 9701.71,-2938.12 9763.8,-2843.77 9847.78,-2716.15 9872.76,-2679.88 9905.8,-2530.71 9908.18,-2519.94 9903.45,-2342.22 9907.8,-2332.08 9925.34,-2291.12 9967.05,-2303.55 9977.8,-2260.31"/>
<path fill="none" stroke="black" d="M9977.8,-2258.31C9996.15,-2171.53 9997.02,-2067.41 9995.65,-2008.8"/>
<polygon fill="#d10505" stroke="black" points="9999.15,-2008.65 9995.38,-1998.75 9992.15,-2008.84 9999.15,-2008.65"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge167" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5407.8,-3518.33C5442.54,-3467.18 5397.47,-3434.11 5428.8,-3380.8 5524.23,-3218.37 6017.09,-3019.58 6084.8,-2843.77 6094.62,-2818.27 6077.33,-2693.53 6075.8,-2691.81 6025.01,-2634.78 5955.8,-2715.19 5907.8,-2655.81 5860.51,-2597.32 5915.49,-2562.11 5921.8,-2487.17"/>
<path fill="none" stroke="black" d="M5921.8,-2485.17C5920.8,-2433.92 5931.4,-2420.54 5923.8,-2369.85"/>
<path fill="none" stroke="black" d="M5923.8,-2367.85C5903.8,-2234.55 5983.84,-2185.25 5923.8,-2064.57"/>
</g>
<!-- ahriman_core_database_data -->
<g id="node51" class="node">
<title>ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a1e1e" stroke="black" cx="7381.8" cy="-2486.17" rx="41.94" ry="36.54"/>
<text text-anchor="middle" x="7381.8" y="-2500.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7381.8" y="-2489.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7381.8" y="-2478.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7381.8" y="-2467.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_data -->
<g id="edge168" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5300.51,-3610.93C5389.16,-3593.82 5585.21,-3555.54 5749.8,-3520.33"/>
<path fill="none" stroke="black" d="M5749.8,-3518.33C5794.93,-3508.68 5804.62,-3499.79 5849.8,-3490.34 5962.26,-3466.8 5995.47,-3486.41 6105.8,-3454.34 6181.72,-3432.27 6191.04,-3399.81 6267.8,-3380.8 6398.75,-3348.38 6751.24,-3401.19 6873.8,-3344.8 6923.79,-3321.8 6914.57,-3287.06 6959.8,-3255.71 6992.84,-3232.8 7008.46,-3240.63 7042.8,-3219.71 7099.17,-3185.36 7112.29,-3173.54 7157.8,-3125.72 7196.24,-3085.32 7456.37,-2777.57 7455.8,-2721.8"/>
<path fill="none" stroke="black" d="M7455.8,-2719.8C7451.32,-2650.9 7422.57,-2575.48 7402.26,-2529.74"/>
<polygon fill="#d10505" stroke="black" points="7405.36,-2528.12 7398.06,-2520.45 7398.98,-2531 7405.36,-2528.12"/>
</g>
<!-- ahriman_core_database_data_users -->
<g id="node55" class="node">
<title>ahriman_core_database_data_users</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="4185.8" cy="-2486.17" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="4185.8" y="-2505.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4185.8" y="-2494.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4185.8" y="-2483.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="4185.8" y="-2472.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="4185.8" y="-2461.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">users</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_data_users -->
<g id="edge169" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_data_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5074.8,-3518.33C5025.45,-3484.8 5001.59,-3493.75 4956.8,-3454.34 4926.55,-3427.73 4933.83,-3407.65 4903.8,-3380.8 4879.46,-3359.05 4866.01,-3364.24 4839.8,-3344.8 4793.82,-3310.7 4798.38,-3280.51 4746.8,-3255.71 4637.69,-3203.24 4577.11,-3287.48 4476.8,-3219.71 4412.49,-3176.26 4438.2,-3129.19 4390.8,-3067.74 4376.78,-3049.57 4369.15,-3048.79 4353.8,-3031.74 4318.22,-2992.23 4306.47,-2983.74 4279.8,-2937.76 4205.26,-2809.26 4189.41,-2629.79 4186.31,-2541.13"/>
<polygon fill="#d10505" stroke="black" points="4189.81,-2540.92 4186,-2531.03 4182.81,-2541.14 4189.81,-2540.92"/>
</g>
<!-- ahriman_core_database_migrations -->
<g id="node56" class="node">
<title>ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#813737" stroke="black" cx="7381.8" cy="-2368.85" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="7381.8" y="-2382.85" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7381.8" y="-2371.85" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7381.8" y="-2360.85" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7381.8" y="-2349.85" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">migrations</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_migrations -->
<g id="edge170" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5297.46,-3607.14C5399.95,-3577.59 5649.81,-3506.45 5735.8,-3490.34 5808.74,-3476.67 6006.59,-3496.3 6067.8,-3454.34 6098.14,-3433.54 6074.88,-3400.74 6105.8,-3380.8 6235.19,-3297.33 6659.7,-3412.92 6797.8,-3344.8 6844.47,-3321.78 6833.52,-3288.68 6873.8,-3255.71 6940.3,-3201.26 6965.81,-3199.92 7042.8,-3161.72 7078.45,-3144.03 7098.9,-3155.94 7124.8,-3125.72 7265.43,-2961.63 7206.72,-2867.59 7249.8,-2655.81 7264.89,-2581.62 7255.02,-2560.51 7273.8,-2487.17"/>
<path fill="none" stroke="black" d="M7273.8,-2485.17C7284.34,-2449.44 7314.09,-2419.16 7339.7,-2398.61"/>
<polygon fill="#d10505" stroke="black" points="7342.09,-2401.19 7347.84,-2392.29 7337.8,-2395.66 7342.09,-2401.19"/>
</g>
<!-- ahriman_core_database_sqlite -->
<g id="node63" class="node">
<title>ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="7381.8" cy="-2259.31" rx="41.94" ry="36.54"/>
<text text-anchor="middle" x="7381.8" y="-2273.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7381.8" y="-2262.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7381.8" y="-2251.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7381.8" y="-2240.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sqlite</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge171" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5483.8,-3518.33C5497.91,-3513.15 5490.24,-3498.62 5502.8,-3490.34 5556.18,-3455.14 6004.32,-3388.55 6067.8,-3380.8 6144.77,-3371.4 6705.09,-3394.29 6764.8,-3344.8 6792.35,-3321.96 6836.54,-3067.28 6840.8,-3031.74 6865.7,-2823.58 6670.72,-2755.54 6761.8,-2566.71 6786.47,-2515.56 6860.72,-2543.95 6861.8,-2487.17"/>
</g>
<!-- ahriman_core_report_console -->
<g id="node76" class="node">
<title>ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="5057.8" cy="-2259.31" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5057.8" y="-2273.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5057.8" y="-2262.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5057.8" y="-2251.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5057.8" y="-2240.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">console</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_console -->
<g id="edge172" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5039.8,-3095.73C5008.43,-2961.6 5029.28,-2923.14 5039.8,-2785.79 5050.05,-2651.9 5105.53,-2620 5085.8,-2487.17"/>
<path fill="none" stroke="black" d="M5085.8,-2485.17C5077.54,-2423.31 5068.76,-2351.76 5063.28,-2306.3"/>
<polygon fill="#d10505" stroke="black" points="5066.73,-2305.67 5062.06,-2296.16 5059.78,-2306.51 5066.73,-2305.67"/>
</g>
<!-- ahriman_core_report_email -->
<g id="node77" class="node">
<title>ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="5414.8" cy="-2486.17" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5414.8" y="-2500.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5414.8" y="-2489.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5414.8" y="-2478.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5414.8" y="-2467.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">email</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_email -->
<g id="edge173" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5219.8,-3299.25C5267.52,-3196.43 5271.82,-3166.87 5326.8,-3067.74 5391.72,-2950.68 5466.24,-2947.18 5491.8,-2815.78"/>
<path fill="none" stroke="black" d="M5491.8,-2813.78C5496.07,-2773.13 5485.7,-2762.22 5491.8,-2721.8"/>
</g>
<!-- ahriman_core_report_html -->
<g id="node78" class="node">
<title>ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="5320.8" cy="-2486.17" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5320.8" y="-2500.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5320.8" y="-2489.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5320.8" y="-2478.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5320.8" y="-2467.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">html</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_html -->
<g id="edge174" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5162.8,-3416.57C5130.38,-3369.47 5200.59,-3355.1 5219.8,-3301.25"/>
<path fill="none" stroke="black" d="M5219.8,-3299.25C5241.41,-3238.66 5256.38,-2785.9 5261.8,-2721.8"/>
</g>
<!-- ahriman_core_report_jinja_template -->
<g id="node79" class="node">
<title>ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a2828" stroke="black" cx="5793.8" cy="-2486.17" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="5793.8" y="-2500.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5793.8" y="-2489.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5793.8" y="-2478.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5793.8" y="-2467.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">jinja_template</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge175" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5296.05,-3605.62C5333.1,-3590.66 5384.11,-3563.37 5407.8,-3520.33"/>
<path fill="none" stroke="black" d="M5407.8,-3518.33C5421.75,-3492.98 5398.47,-3483.15 5395.8,-3454.34 5392.77,-3421.8 5382.17,-3410.51 5395.8,-3380.8 5511.44,-3128.71 5633.17,-3120.05 5868.8,-2973.76 5903.65,-2952.12 5923.89,-2965.84 5953.8,-2937.76 6032.03,-2864.31 6137.62,-2797.74 6061.8,-2721.8"/>
</g>
<!-- ahriman_core_report_report -->
<g id="node80" class="node">
<title>ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="5508.8" cy="-2486.17" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5508.8" y="-2500.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5508.8" y="-2489.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5508.8" y="-2478.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5508.8" y="-2467.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_report -->
<g id="edge176" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5293.8,-3518.33C5289.77,-3474.17 5288.45,-3462.3 5295.8,-3418.57"/>
<path fill="none" stroke="black" d="M5295.8,-3416.57C5307.77,-3345.28 5294.33,-3323.36 5319.8,-3255.71 5354.8,-3162.72 5374.79,-3142 5440.8,-3067.74 5528.05,-2969.58 5564.05,-2958.99 5668.8,-2879.77 5691.22,-2862.82 5705.87,-2867.59 5720.8,-2843.77 5749.93,-2797.29 5749.01,-2775.88 5739.8,-2721.8"/>
</g>
<!-- ahriman_core_report_telegram -->
<g id="node81" class="node">
<title>ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="5645.8" cy="-2486.17" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5645.8" y="-2500.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5645.8" y="-2489.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5645.8" y="-2478.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5645.8" y="-2467.17" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">telegram</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_telegram -->
<g id="edge177" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5295.8,-3416.57C5300.04,-3395.08 5398.12,-3227.98 5583.8,-3067.74 5643.93,-3015.85 5663.56,-3006.79 5735.8,-2973.76 5822.21,-2934.24 5887.29,-2988.96 5939.8,-2909.77"/>
<path fill="none" stroke="black" d="M5939.8,-2907.77C5989.07,-2838.06 5943.86,-2789.45 5891.8,-2721.8"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge178" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4998.8,-3518.33C4983.12,-3513.54 4988.86,-3498.74 4974.8,-3490.34 4910.36,-3451.85 4879.81,-3481.38 4809.8,-3454.34 4644.75,-3390.59 4621.11,-3338.6 4464.8,-3255.71 4432.48,-3238.57 4418.68,-3243.38 4390.8,-3219.71 4381.04,-3211.43 4264.18,-3042.82 4257.8,-3031.74 4155.47,-2854.06 4065.8,-2817.3 4065.8,-2612.26 4065.8,-2612.26 4065.8,-2612.26 4065.8,-2485.17 4065.8,-2409.2 4096.59,-2393.12 4141.8,-2332.08 4169.44,-2294.74 4206.07,-2305.26 4217.8,-2260.31"/>
<path fill="none" stroke="black" d="M4217.8,-2258.31C4226.5,-2214.83 4207.34,-2201.63 4217.8,-2158.55"/>
</g>
<!-- ahriman_core_sign_gpg -->
<g id="node89" class="node">
<title>ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#932424" stroke="black" cx="4856.8" cy="-3417.57" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4856.8" y="-3431.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4856.8" y="-3420.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4856.8" y="-3409.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign.</text>
<text text-anchor="middle" x="4856.8" y="-3398.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">gpg</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge179" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5216.75,-3600.18C5166.62,-3572.44 5081.24,-3525.02 5074.8,-3520.33"/>
<path fill="none" stroke="black" d="M5074.8,-3518.33C5010.88,-3471.78 4979.37,-3490 4908.8,-3454.34 4904.21,-3452.02 4899.55,-3449.35 4895.01,-3446.54"/>
<polygon fill="#d10505" stroke="black" points="4896.76,-3443.5 4886.47,-3441 4892.96,-3449.37 4896.76,-3443.5"/>
</g>
<!-- ahriman_core_spawn -->
<g id="node90" class="node">
<title>ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b62020" stroke="black" cx="7799.8" cy="-2908.77" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="7799.8" y="-2917.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7799.8" y="-2906.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7799.8" y="-2895.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">spawn</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_spawn -->
<g id="edge180" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5302.9,-3615.45C5394.91,-3606.4 5596.7,-3584.09 5763.8,-3548.32 5854.3,-3528.95 5873,-3508.28 5963.8,-3490.34 6109.4,-3461.57 6150.45,-3484.39 6295.8,-3454.34 6404.22,-3431.93 6425.06,-3401.64 6533.8,-3380.8 6633.19,-3361.75 6896.28,-3388.01 6987.8,-3344.8 7037.56,-3321.3 7023.61,-3278.29 7073.8,-3255.71 7158.98,-3217.36 7842.93,-3280.58 7913.8,-3219.71 7955.71,-3183.7 7948.35,-3151.96 7937.8,-3097.73"/>
<path fill="none" stroke="black" d="M7937.8,-3095.73C7927.29,-3034.99 7910.08,-3022.07 7871.8,-2973.76 7860.96,-2960.08 7846.99,-2946.92 7834.25,-2936.13"/>
<polygon fill="#d10505" stroke="black" points="7836.45,-2933.41 7826.52,-2929.73 7831.99,-2938.8 7836.45,-2933.41"/>
</g>
<!-- ahriman_core_status_client -->
<g id="node92" class="node">
<title>ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#931a1a" stroke="black" cx="7897.8" cy="-2368.85" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="7897.8" y="-2382.85" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7897.8" y="-2371.85" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7897.8" y="-2360.85" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="7897.8" y="-2349.85" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">client</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_status_client -->
<g id="edge181" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5302.64,-3615.03C5440.81,-3600.92 5822.22,-3561.28 5877.8,-3548.32 5952.27,-3530.96 5965.27,-3507.47 6039.8,-3490.34 6184.45,-3457.1 6226.45,-3484.39 6371.8,-3454.34 6480.22,-3431.93 6501.06,-3401.64 6609.8,-3380.8 6709.19,-3361.75 6972.28,-3388.01 7063.8,-3344.8 7113.56,-3321.3 7099.61,-3278.29 7149.8,-3255.71 7234.98,-3217.36 7910.95,-3269.8 7989.8,-3219.71 8120.99,-3136.35 8191.98,-3059.91 8151.8,-2909.77"/>
<path fill="none" stroke="black" d="M8151.8,-2907.77C8123.38,-2859.75 8086.21,-2880.02 8043.8,-2843.77 8018.36,-2822.04 8023.23,-2804.94 7995.8,-2785.79 7956.37,-2758.28 7922.01,-2788.72 7893.8,-2749.79 7876.67,-2726.16 7892.87,-2515.91 7887.8,-2487.17"/>
<path fill="none" stroke="black" d="M7887.8,-2485.17C7884.62,-2462.16 7886.35,-2436.42 7889.2,-2415.1"/>
<polygon fill="#d10505" stroke="black" points="7892.69,-2415.43 7890.68,-2405.03 7885.77,-2414.41 7892.69,-2415.43"/>
</g>
<!-- ahriman_core_status_watcher -->
<g id="node93" class="node">
<title>ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b2222" stroke="black" cx="8029.8" cy="-1320.13" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8029.8" y="-1334.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8029.8" y="-1323.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8029.8" y="-1312.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="8029.8" y="-1301.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">watcher</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_status_watcher -->
<g id="edge182" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5303.92,-3620C5454.42,-3618.99 5908.57,-3610.6 6278.8,-3548.32 6560.7,-3500.9 6619.54,-3437.18 6899.8,-3380.8 7017.62,-3357.1 7067.52,-3411.05 7167.8,-3344.8 7206.24,-3319.4 7181.23,-3279.32 7220.8,-3255.71 7302.64,-3206.86 7989.25,-3254.97 8077.8,-3219.71 8314.25,-3125.52 8404.31,-3075.4 8509.8,-2843.77 8523.95,-2812.7 8519.33,-2794.59 8491.8,-2566.71 8485.04,-2510.82 8493.69,-2493.49 8471.8,-2441.62 8458.05,-2409.06 8297.94,-2217.98 8281.8,-2186.54 8274.44,-2172.21 8109.75,-1649.8 8105.8,-1634.19"/>
</g>
<!-- ahriman_core_status_web_client -->
<g id="node94" class="node">
<title>ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="7911.8" cy="-2259.31" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="7911.8" y="-2273.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7911.8" y="-2262.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7911.8" y="-2251.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="7911.8" y="-2240.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web_client</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_status_web_client -->
<g id="edge183" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5302.76,-3615.02C5371.48,-3608.06 5499,-3595.17 5607.8,-3584.32 5770,-3568.15 5814.78,-3588.34 5972.8,-3548.32 6037.29,-3531.99 6046.25,-3506.44 6110.8,-3490.34 6281.41,-3447.78 6331.04,-3481.35 6504.8,-3454.34 6654.56,-3431.06 6688.46,-3406.73 6837.8,-3380.8 6962.72,-3359.11 7011.16,-3408.49 7120.8,-3344.8 7163.64,-3319.91 7143.94,-3278.76 7187.8,-3255.71 7271.96,-3211.46 7965.55,-3275.15 8042.8,-3219.71 8089.99,-3185.83 8089.8,-3155.83 8089.8,-3097.73 8089.8,-3097.73 8089.8,-3097.73 8089.8,-3001.75 8089.8,-2946.5 8099.01,-2923.92 8065.8,-2879.77 8044.76,-2851.82 8021.8,-2867.18 7995.8,-2843.77 7972.89,-2823.16 7981.03,-2806.03 7957.8,-2785.79 7929.61,-2761.24 7903.8,-2780 7881.8,-2749.79 7869.26,-2732.58 7822.83,-2389.16 7831.8,-2369.85"/>
</g>
<!-- ahriman_core_upload_github -->
<g id="node97" class="node">
<title>ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="4943.8" cy="-2611.26" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4943.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4943.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4943.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="4943.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">github</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_github -->
<g id="edge184" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5162.8,-3416.57C5082.62,-3287.57 5081.48,-3243.79 5039.8,-3097.73"/>
<path fill="none" stroke="black" d="M5039.8,-3095.73C5029.72,-3052.66 5013.7,-3046.35 5001.8,-3003.75"/>
<path fill="none" stroke="black" d="M5001.8,-3001.75C4990.79,-2962.38 5010.56,-2949.7 5001.8,-2909.77"/>
</g>
<!-- ahriman_core_upload_http_upload -->
<g id="node98" class="node">
<title>ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="5484.8" cy="-3417.57" rx="47.25" ry="36.54"/>
<text text-anchor="middle" x="5484.8" y="-3431.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5484.8" y="-3420.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5484.8" y="-3409.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="5484.8" y="-3398.57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">http_upload</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge185" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5407.8,-3518.33C5419.87,-3496.39 5436.54,-3474.12 5451.29,-3456.21"/>
<polygon fill="#d10505" stroke="black" points="5454.17,-3458.22 5457.9,-3448.3 5448.8,-3453.73 5454.17,-3458.22"/>
</g>
<!-- ahriman_core_upload_rsync -->
<g id="node99" class="node">
<title>ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="4395.8" cy="-2611.26" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4395.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4395.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4395.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="4395.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">rsync</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge186" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5074.8,-3518.33C4945.95,-3429.28 4978.52,-3328.43 4839.8,-3255.71 4718.51,-3192.13 4640.29,-3305.8 4533.8,-3219.71 4387.56,-3101.48 4489.79,-2985.02 4407.8,-2815.78"/>
<path fill="none" stroke="black" d="M4407.8,-2813.78C4389,-2777.48 4398.95,-2761.71 4407.8,-2721.8"/>
</g>
<!-- ahriman_core_upload_s3 -->
<g id="node100" class="node">
<title>ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="4755.8" cy="-2611.26" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4755.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4755.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4755.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="4755.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">s3</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge187" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5074.8,-3518.33C5008.27,-3469.87 5011.22,-3235.53 4974.8,-3161.72 4897.44,-3005 4754.42,-2987.34 4787.8,-2815.78"/>
</g>
<!-- ahriman_core_upload_upload -->
<g id="node101" class="node">
<title>ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="4849.8" cy="-2611.26" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4849.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4849.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4849.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="4849.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload -->
<g id="edge188" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5271.64,-3593.7C5283.51,-3574.22 5296.19,-3546.62 5293.8,-3520.33"/>
<path fill="none" stroke="black" d="M5293.8,-3518.33C5289.4,-3470.17 5243.96,-3484.04 5205.8,-3454.34 5186.18,-3439.07 5177.07,-3438.92 5162.8,-3418.57"/>
<path fill="none" stroke="black" d="M5162.8,-3416.57C5134.79,-3376.65 5106.19,-3385.81 5079.8,-3344.8 5025.65,-3260.67 4977.32,-3008.9 4963.8,-2909.77"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_views_base -->
<g id="edge189" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5303.65,-3619.24C5466.07,-3616.01 5986.74,-3601.9 6413.8,-3548.32 7104.63,-3461.64 7267.85,-3380.66 7952.8,-3255.71 8044.23,-3239.02 8072.76,-3254.87 8158.8,-3219.71 8480.29,-3088.31 8558.8,-2973.21 8699.8,-2655.81 8716.47,-2618.27 9012.84,-1252.37 9017.8,-1211.59"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_web -->
<g id="edge190" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5749.8,-3518.33C5763.42,-3515.51 5752.27,-3498.13 5763.8,-3490.34 5844.51,-3435.76 6109.97,-3489.62 6200.8,-3454.34 6250.57,-3435.01 6245.78,-3399.49 6295.8,-3380.8 6428.19,-3331.32 6808.79,-3416.15 6930.8,-3344.8 6971.38,-3321.07 6947.04,-3279.14 6987.8,-3255.71 7070.22,-3208.31 7776.99,-3288.34 7842.8,-3219.71 7886.62,-3174 7866.5,-3094.24 7792.8,-2973.76 7780.32,-2953.35 7765.66,-2957.92 7752.8,-2937.76 7651,-2778.22 7669.65,-2715.27 7627.8,-2530.71 7611.81,-2460.22 7603.8,-2442.13 7603.8,-2369.85 7603.8,-2369.85 7603.8,-2369.85 7603.8,-2258.31 7603.8,-2172.2 7559.14,-2138.19 7603.8,-2064.57"/>
</g>
<!-- ahriman_core_database -->
<g id="node50" class="node">
<title>ahriman_core_database</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="7381.8" cy="-2157.55" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="7381.8" y="-2166.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7381.8" y="-2155.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7381.8" y="-2144.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database</text>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge191" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7341.97,-2157.06C7184.96,-2158.6 6609.16,-2159.45 6441.8,-2092.56 6191.91,-1992.68 6222.9,-1812.52 5975.8,-1705.96 5607.81,-1547.26 5479.48,-1637 5080.8,-1596.42 4371.45,-1524.21 4168.44,-1658.54 3481.8,-1466.43 3342.96,-1427.59 3326.77,-1371.77 3191.8,-1321.13"/>
<path fill="none" stroke="black" d="M3191.8,-1319.13C3124.7,-1295.43 3049.8,-1263.74 2997.87,-1240.91"/>
<polygon fill="#db0505" stroke="black" points="2999.01,-1237.58 2988.45,-1236.75 2996.19,-1243.99 2999.01,-1237.58"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge192" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_application_handlers_backup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7342.01,-2156.85C7164.76,-2157.13 6455.8,-2146.76 6455.8,-1962.8 6455.8,-1962.8 6455.8,-1962.8 6455.8,-1530.43 6455.8,-1333.41 6341.8,-1299.06 6341.8,-1102.05 6341.8,-1102.05 6341.8,-1102.05 6341.8,-873.19 6341.8,-773.26 6325.19,-746.88 6341.8,-648.34"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_handlers_users -->
<g id="edge193" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7342.28,-2155.67C7132.67,-2150.93 6129.62,-2127.36 5309.8,-2092.56 3516.21,-2016.42 1316.33,-1880.51 937.58,-1856.83"/>
<polygon fill="#db0505" stroke="black" points="937.62,-1853.33 927.42,-1856.2 937.18,-1860.31 937.62,-1853.33"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_auth -->
<g id="edge194" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7421.29,-2153.49C7524.47,-2145.35 7810.59,-2121.75 8047.8,-2092.56 8219.98,-2071.37 8260.99,-2049.88 8433.8,-2034.57 9011.75,-1983.38 9162.97,-2069.82 9738.8,-1998.57 9777.9,-1993.74 9821.48,-1983.76 9853.43,-1975.58"/>
<polygon fill="#db0505" stroke="black" points="9854.58,-1978.89 9863.38,-1972.99 9852.82,-1972.12 9854.58,-1978.89"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge195" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7420.53,-2150.85C7577.34,-2127.84 8160.57,-2042.51 8243.8,-2034.57 8791.6,-1982.35 9459.84,-1966.98 9643.26,-1963.61"/>
<polygon fill="#db0505" stroke="black" points="9643.45,-1967.1 9653.39,-1963.42 9643.33,-1960.11 9643.45,-1967.1"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge196" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7421.56,-2155.36C7545.43,-2151.3 7935.14,-2135.74 8254.8,-2092.56 8386.35,-2074.79 8415.86,-2049.22 8547.8,-2034.57 8702.34,-2017.42 9800.1,-2050.16 9946.8,-1998.57 9950.6,-1997.23 9954.35,-1995.46 9957.97,-1993.42"/>
<polygon fill="#db0505" stroke="black" points="9960.1,-1996.21 9966.65,-1987.88 9956.34,-1990.31 9960.1,-1996.21"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge197" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7342.14,-2155.28C7175.17,-2149.76 6528.65,-2126.58 6327.8,-2092.56 6176.5,-2066.93 6003.75,-2010.62 5919.49,-1981.33"/>
<polygon fill="#db0505" stroke="black" points="5920.5,-1977.97 5909.91,-1977.98 5918.19,-1984.58 5920.5,-1977.97"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge198" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7342.23,-2155.6C7171.12,-2151.32 6477.87,-2132.33 5909.8,-2092.56 5642.54,-2073.85 5576.81,-2056.5 5309.8,-2034.57 4947.94,-2004.86 4515.92,-1978.44 4335.07,-1967.8"/>
<polygon fill="#db0505" stroke="black" points="4335.27,-1964.3 4325.08,-1967.21 4334.86,-1971.29 4335.27,-1964.3"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_status_watcher -->
<g id="edge199" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7420.9,-2152.15C7469.71,-2145.31 7554.48,-2128.93 7617.8,-2092.56 7709.78,-2039.72 7702.63,-1988.27 7787.8,-1925.03 7814.62,-1905.12 7834.45,-1916.28 7853.8,-1889.03 7891.7,-1835.67 7877.8,-1809.18 7877.8,-1743.73 7877.8,-1743.73 7877.8,-1743.73 7877.8,-1632.19 7877.8,-1522.99 7954.35,-1412.12 7998.8,-1356.95"/>
<polygon fill="#db0505" stroke="black" points="8001.76,-1358.86 8005.37,-1348.9 7996.34,-1354.43 8001.76,-1358.86"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_tree -->
<g id="edge200" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7342.01,-2155.77C6916.57,-2147.41 3213.25,-2074.69 2746.15,-2065.51"/>
<polygon fill="#db0505" stroke="black" points="2746.09,-2062.01 2736.03,-2065.32 2745.96,-2069.01 2746.09,-2062.01"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_web_views_base -->
<g id="edge201" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7421.23,-2154.16C7478.22,-2149.32 7585.56,-2134.9 7665.8,-2092.56 7971.73,-1931.1 7988.8,-1804.63 8233.8,-1560.42 8307.15,-1487.3 8314.9,-1457.57 8395.8,-1392.9 8468.94,-1334.42 8495.53,-1331.6 8575.8,-1283.36 8741.87,-1183.54 8940.65,-1066.21 9024.87,-1016.59"/>
<polygon fill="#db0505" stroke="black" points="9026.78,-1019.53 9033.62,-1011.44 9023.23,-1013.5 9026.78,-1019.53"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_web_web -->
<g id="edge202" class="edge">
<title>ahriman_core_database&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7421.26,-2154.89C7475.96,-2150.1 7571.72,-2132 7603.8,-2064.57"/>
<path fill="none" stroke="black" d="M7603.8,-2062.57C7648.51,-1968.54 7631.83,-1698.79 7650.8,-1596.42 7673.9,-1471.73 7692.1,-1443.38 7725.8,-1321.13"/>
<path fill="none" stroke="black" d="M7725.8,-1319.13C7745.26,-1199.02 7753.55,-1162.18 7825.8,-1064.28 7856.18,-1023.11 7920.34,-1043.47 7915.8,-992.51"/>
<path fill="none" stroke="black" d="M7915.8,-990.51C7907.06,-915.6 7898.62,-895.46 7861.8,-829.64 7841.5,-793.36 7801.26,-799.45 7801.8,-757.87"/>
</g>
<!-- ahriman_core_database_data&#45;&gt;ahriman_core_database_migrations -->
<g id="edge203" class="edge">
<title>ahriman_core_database_data&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7381.8,-2449.31C7381.8,-2438.68 7381.8,-2426.89 7381.8,-2415.72"/>
<polygon fill="#7a1e1e" stroke="black" points="7385.3,-2415.68 7381.8,-2405.68 7378.3,-2415.68 7385.3,-2415.68"/>
</g>
<!-- ahriman_core_database_data_package_remotes -->
<g id="node52" class="node">
<title>ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="7171.8" cy="-2486.17" rx="66.44" ry="44.6"/>
<text text-anchor="middle" x="7171.8" y="-2505.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7171.8" y="-2494.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7171.8" y="-2483.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7171.8" y="-2472.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="7171.8" y="-2461.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_remotes</text>
</g>
<!-- ahriman_core_database_data_package_remotes&#45;&gt;ahriman_core_database_data -->
<g id="edge204" class="edge">
<title>ahriman_core_database_data_package_remotes&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7238.65,-2486.17C7268.96,-2486.17 7299.27,-2486.17 7329.58,-2486.17"/>
<polygon fill="#822b2b" stroke="black" points="7329.86,-2489.67 7339.86,-2486.17 7329.86,-2482.67 7329.86,-2489.67"/>
</g>
<!-- ahriman_core_database_data_package_statuses -->
<g id="node53" class="node">
<title>ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="4389.8" cy="-2486.17" rx="67.76" ry="44.6"/>
<text text-anchor="middle" x="4389.8" y="-2505.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4389.8" y="-2494.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4389.8" y="-2483.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="4389.8" y="-2472.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="4389.8" y="-2461.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_statuses</text>
</g>
<!-- ahriman_core_database_data_package_statuses&#45;&gt;ahriman_core_database_data -->
<g id="edge205" class="edge">
<title>ahriman_core_database_data_package_statuses&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4454.89,-2498.86C4537.5,-2514.26 4684.57,-2539.34 4811.8,-2548.71 4880.14,-2553.75 7212.8,-2567.18 7278.8,-2548.71 7301.48,-2542.37 7324.13,-2529.51 7342.39,-2517.09"/>
<polygon fill="#a13535" stroke="black" points="7344.81,-2519.67 7350.98,-2511.06 7340.79,-2513.94 7344.81,-2519.67"/>
</g>
<!-- ahriman_core_database_data_patches -->
<g id="node54" class="node">
<title>ahriman_core_database_data_patches</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="2399.8" cy="-2486.17" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="2399.8" y="-2505.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2399.8" y="-2494.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2399.8" y="-2483.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="2399.8" y="-2472.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="2399.8" y="-2461.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patches</text>
</g>
<!-- ahriman_core_database_data_patches&#45;&gt;ahriman_core_database_data -->
<g id="edge206" class="edge">
<title>ahriman_core_database_data_patches&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2441.62,-2488.22C2635.22,-2497.61 3463.73,-2536.52 4143.8,-2548.71 4230.87,-2550.27 7194.93,-2572.18 7278.8,-2548.71 7301.48,-2542.37 7324.13,-2529.51 7342.39,-2517.09"/>
<polygon fill="#b03a3a" stroke="black" points="7344.81,-2519.67 7350.98,-2511.06 7340.79,-2513.94 7344.81,-2519.67"/>
</g>
<!-- ahriman_core_database_data_users&#45;&gt;ahriman_core_database_data -->
<g id="edge207" class="edge">
<title>ahriman_core_database_data_users&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4222.37,-2508.26C4248.91,-2522.96 4286.25,-2540.93 4321.8,-2548.71 4402.03,-2566.28 7199.7,-2570.85 7278.8,-2548.71 7301.48,-2542.37 7324.13,-2529.51 7342.39,-2517.09"/>
<polygon fill="#b03a3a" stroke="black" points="7344.81,-2519.67 7350.98,-2511.06 7340.79,-2513.94 7344.81,-2519.67"/>
</g>
<!-- ahriman_core_database_migrations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge208" class="edge">
<title>ahriman_core_database_migrations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7381.8,-2332.04C7381.8,-2323.87 7381.8,-2315.08 7381.8,-2306.55"/>
<polygon fill="#813737" stroke="black" points="7385.3,-2306.33 7381.8,-2296.33 7378.3,-2306.33 7385.3,-2306.33"/>
</g>
<!-- ahriman_core_database_operations -->
<g id="node57" class="node">
<title>ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="7163.8" cy="-2611.26" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="7163.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7163.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7163.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7163.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations</text>
</g>
<!-- ahriman_core_database_operations&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge209" class="edge">
<title>ahriman_core_database_operations&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7166.13,-2574.33C7166.81,-2563.89 7167.56,-2552.27 7168.3,-2540.99"/>
<polygon fill="#f91010" stroke="black" points="7171.81,-2540.99 7168.96,-2530.78 7164.82,-2540.53 7171.81,-2540.99"/>
</g>
<!-- ahriman_core_database_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge210" class="edge">
<title>ahriman_core_database_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7135.29,-2583.02C7128.02,-2577.06 7119.95,-2571.19 7111.8,-2566.71 7009.62,-2510.54 6872.29,-2603.29 6861.8,-2487.17"/>
</g>
<!-- ahriman_core_database_operations_auth_operations -->
<g id="node58" class="node">
<title>ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="7552.8" cy="-2611.26" rx="60.62" ry="44.6"/>
<text text-anchor="middle" x="7552.8" y="-2630.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7552.8" y="-2619.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7552.8" y="-2608.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7552.8" y="-2597.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="7552.8" y="-2586.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_operations</text>
</g>
<!-- ahriman_core_database_operations_auth_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge211" class="edge">
<title>ahriman_core_database_operations_auth_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7538.33,-2567.8C7518.52,-2511.95 7480.17,-2411.58 7434.8,-2332.08 7428.19,-2320.51 7420.04,-2308.61 7412.13,-2297.91"/>
<polygon fill="#8a2e2e" stroke="black" points="7414.69,-2295.49 7405.87,-2289.62 7409.1,-2299.71 7414.69,-2295.49"/>
</g>
<!-- ahriman_core_database_operations_build_operations -->
<g id="node59" class="node">
<title>ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="6652.8" cy="-2611.26" rx="61.54" ry="44.6"/>
<text text-anchor="middle" x="6652.8" y="-2630.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6652.8" y="-2619.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6652.8" y="-2608.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="6652.8" y="-2597.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="6652.8" y="-2586.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_operations</text>
</g>
<!-- ahriman_core_database_operations_build_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge212" class="edge">
<title>ahriman_core_database_operations_build_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6700.54,-2582.84C6762.3,-2547.28 6862.01,-2489.48 6861.8,-2487.17"/>
<path fill="none" stroke="black" d="M6861.8,-2485.17C6855.34,-2413.74 6857.97,-2378.31 6912.8,-2332.08 6975.1,-2279.55 7221.27,-2265.34 7329.86,-2261.6"/>
<polygon fill="#913030" stroke="black" points="7330.05,-2265.1 7339.93,-2261.27 7329.82,-2258.1 7330.05,-2265.1"/>
</g>
<!-- ahriman_core_database_operations_operations -->
<g id="node60" class="node">
<title>ahriman_core_database_operations_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="6527.8" cy="-2611.26" rx="45.92" ry="44.6"/>
<text text-anchor="middle" x="6527.8" y="-2630.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6527.8" y="-2619.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6527.8" y="-2608.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="6527.8" y="-2597.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="6527.8" y="-2586.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations</text>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge213" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6554.83,-2647.41C6564.84,-2657.97 6577.12,-2668.17 6590.8,-2673.81 6635.89,-2692.39 7422.49,-2689.15 7468.8,-2673.81 7482.41,-2669.3 7495.6,-2661.63 7507.35,-2653.18"/>
<polygon fill="#e72222" stroke="black" points="7509.76,-2655.74 7515.63,-2646.92 7505.54,-2650.16 7509.76,-2655.74"/>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge214" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6574.18,-2611.26C6576.47,-2611.26 6578.76,-2611.26 6581.04,-2611.26"/>
<polygon fill="#e72222" stroke="black" points="6581.07,-2614.76 6591.07,-2611.26 6581.07,-2607.76 6581.07,-2614.76"/>
</g>
<!-- ahriman_core_database_operations_package_operations -->
<g id="node61" class="node">
<title>ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#832020" stroke="black" cx="7028.8" cy="-2611.26" rx="73.58" ry="44.6"/>
<text text-anchor="middle" x="7028.8" y="-2630.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7028.8" y="-2619.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7028.8" y="-2608.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7028.8" y="-2597.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="7028.8" y="-2586.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_operations</text>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge215" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6554.83,-2647.41C6564.84,-2657.97 6577.12,-2668.17 6590.8,-2673.81 6625.83,-2688.24 6895.45,-2684.51 6931.8,-2673.81 6947.09,-2669.3 6962.25,-2661.56 6975.88,-2653.02"/>
<polygon fill="#e72222" stroke="black" points="6978.14,-2655.72 6984.6,-2647.32 6974.31,-2649.86 6978.14,-2655.72"/>
</g>
<!-- ahriman_core_database_operations_patch_operations -->
<g id="node62" class="node">
<title>ahriman_core_database_operations_patch_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="6834.8" cy="-2611.26" rx="64.19" ry="44.6"/>
<text text-anchor="middle" x="6834.8" y="-2630.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6834.8" y="-2619.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6834.8" y="-2608.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="6834.8" y="-2597.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="6834.8" y="-2586.76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patch_operations</text>
</g>
<!-- ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_patch_operations -->
<g id="edge216" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations_patch_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6554.83,-2647.41C6564.84,-2657.97 6577.12,-2668.17 6590.8,-2673.81 6623.05,-2687.1 6714.59,-2684.51 6747.8,-2673.81 6761.89,-2669.27 6775.64,-2661.5 6787.89,-2652.95"/>
<polygon fill="#e72222" stroke="black" points="6790.1,-2655.67 6796.11,-2646.94 6785.97,-2650.01 6790.1,-2655.67"/>
</g>
<!-- ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge217" class="edge">
<title>ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7070.54,-2574.33C7087.13,-2560.05 7106.31,-2543.53 7123.49,-2528.74"/>
<polygon fill="#832020" stroke="black" points="7125.93,-2531.26 7131.23,-2522.08 7121.37,-2525.96 7125.93,-2531.26"/>
</g>
<!-- ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge218" class="edge">
<title>ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6964.02,-2590.05C6919.08,-2571.54 6866.48,-2539 6861.8,-2487.17"/>
</g>
<!-- ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge219" class="edge">
<title>ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6850.7,-2567.95C6857.88,-2544.39 6864.26,-2514.4 6861.8,-2487.17"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_database -->
<g id="edge220" class="edge">
<title>ahriman_core_database_sqlite&#45;&gt;ahriman_core_database</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7381.8,-2222.29C7381.8,-2214.05 7381.8,-2205.26 7381.8,-2196.93"/>
<polygon fill="#7a2828" stroke="black" points="7385.3,-2196.69 7381.8,-2186.69 7378.3,-2196.69 7385.3,-2196.69"/>
</g>
<!-- ahriman_core_exceptions -->
<g id="node64" class="node">
<title>ahriman_core_exceptions</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="9598.8" cy="-4148.8" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="9598.8" y="-4157.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9598.8" y="-4146.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9598.8" y="-4135.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">exceptions</text>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge221" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10907.8,-3416.57C10903.26,-3405.14 10904.04,-2986.06 10903.8,-2973.76 10898.06,-2688.49 10935.59,-2612.67 10883.8,-2332.08 10845.21,-2123.07 10775.57,-2082.47 10632.8,-1925.03 10620.26,-1911.21 10605.21,-1897.38 10591.44,-1885.61"/>
<polygon fill="#f91010" stroke="black" points="10593.42,-1882.7 10583.52,-1878.93 10588.91,-1888.05 10593.42,-1882.7"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_search -->
<g id="edge222" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9643.37,-4147.34C9735.58,-4145.34 9942.3,-4135.09 9985.8,-4083.81 9996.15,-4071.61 9994.23,-4061.4 9985.8,-4047.81 9898.18,-3906.62 9802.56,-3949.49 9650.8,-3881.83 9100.75,-3636.6 8975.01,-3530.95 8391.8,-3380.8 8329.76,-3364.83 8156.93,-3383.38 8105.8,-3344.8 8071.43,-3318.87 8102.57,-3281.08 8067.8,-3255.71 7928.61,-3154.15 7821.87,-3320.03 7681.8,-3219.71 7621.64,-3176.62 7652.5,-3130.81 7613.8,-3067.74 7585.7,-3021.95 7579.76,-3007.29 7537.8,-2973.76 7435.62,-2892.12 7384.98,-2912.65 7273.8,-2843.77 7237.68,-2821.4 7236.4,-2803.53 7197.8,-2785.79 7128.02,-2753.72 7098.68,-2781.64 7028.8,-2749.79 6989.81,-2732.02 6991.91,-2706.86 6951.8,-2691.81 6848.33,-2652.99 6539.34,-2728.15 6455.8,-2655.81 6396.2,-2604.21 6303.8,-2041.64 6303.8,-1962.8 6303.8,-1962.8 6303.8,-1962.8 6303.8,-1530.43 6303.8,-1351.21 6252.2,-1312.42 6211.8,-1137.82 6184.8,-1021.17 6199.05,-985.2 6151.8,-875.19"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_lock -->
<g id="edge223" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10907.8,-3898.83C10890.6,-3822.99 10907.8,-3801.62 10907.8,-3723.85 10907.8,-3723.85 10907.8,-3723.85 10907.8,-3620.09 10907.8,-3530.53 10945.96,-3499.6 10907.8,-3418.57"/>
<path fill="none" stroke="black" d="M10907.8,-3416.57C10830.78,-3275.19 10623.8,-3352.71 10623.8,-3191.71 10623.8,-3191.71 10623.8,-3191.71 10623.8,-3095.73 10623.8,-2970.17 10585.8,-2941.35 10585.8,-2815.78 10585.8,-2815.78 10585.8,-2815.78 10585.8,-2719.8 10585.8,-2536.13 10561.94,-2471.86 10442.8,-2332.08 10422.38,-2308.12 10404.69,-2317.69 10381.8,-2296.08 10367.87,-2282.94 10364.49,-2278.25 10357.8,-2260.31"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge224" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9605.7,-4119.77C9617.02,-4066.51 9632.87,-3949.91 9574.8,-3881.83 9532.54,-3832.29 9495.24,-3864.25 9432.8,-3845.83 9084.13,-3742.97 9008.13,-3681.37 8657.8,-3584.32 8176.3,-3450.94 7580.16,-3340.34 7409.47,-3309.7"/>
<polygon fill="#f91010" stroke="black" points="7410,-3306.24 7399.54,-3307.92 7408.77,-3313.13 7410,-3306.24"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge225" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9566.44,-4128.64C9485.86,-4081.51 9268.76,-3958.25 9075.8,-3881.83 8584.98,-3687.45 8441.32,-3700.4 7935.8,-3548.32 7800.37,-3507.58 7766.2,-3498.32 7631.8,-3454.34 7560.96,-3431.16 7378.72,-3383.12 7314.8,-3344.8 7310.99,-3342.52 7307.23,-3339.89 7303.59,-3337.08"/>
<polygon fill="#f91010" stroke="black" points="7305.8,-3334.36 7295.86,-3330.7 7301.34,-3339.76 7305.8,-3334.36"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge226" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3433.8,-4064.81C3288.4,-4022.11 3439.82,-3875.27 3433.8,-3723.85"/>
<path fill="none" stroke="black" d="M3433.8,-3721.85C3433.66,-3702.21 3439.33,-3681.38 3445.94,-3663.87"/>
<polygon fill="#f91010" stroke="black" points="3449.22,-3665.1 3449.67,-3654.51 3442.72,-3662.5 3449.22,-3665.1"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge227" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9643.34,-4145.97C9868.59,-4136.65 10872.14,-4094.56 10883.8,-4083.81 10944.09,-4028.2 10926.71,-3980.64 10907.8,-3900.83"/>
<path fill="none" stroke="black" d="M10907.8,-3898.83C10803.74,-3586.96 10471.8,-3630.02 10471.8,-3301.25 10471.8,-3301.25 10471.8,-3301.25 10471.8,-2719.8 10471.8,-2635.53 10482.68,-2614.92 10485.8,-2530.71 10487.26,-2491.14 10493.16,-2480.53 10485.8,-2441.62 10476.07,-2390.23 10468.67,-2377.53 10442.8,-2332.08 10432.77,-2314.46 10422.6,-2314.79 10414.8,-2296.08 10369.68,-2187.91 10464.7,-2116.41 10380.8,-2034.57 10325.77,-1980.91 10107.62,-2028.44 10036.8,-1998.57 10034.11,-1997.44 10031.47,-1996.08 10028.89,-1994.57"/>
<polygon fill="#f91010" stroke="black" points="10030.67,-1991.55 10020.41,-1988.91 10026.79,-1997.37 10030.67,-1991.55"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge228" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9565.57,-4129.29C9558.81,-4125.89 9551.66,-4122.55 9544.8,-4119.81 9491.51,-4098.5 9475.88,-4099.9 9420.8,-4083.81 9115.31,-3994.56 9039.65,-3969.82 8733.8,-3881.83 8585.6,-3839.19 8548.72,-3827.87 8399.8,-3787.84 8351.92,-3774.98 6703.55,-3382.02 6670.8,-3344.8 6625.5,-3293.33 6651.8,-3260.27 6651.8,-3191.71 6651.8,-3191.71 6651.8,-3191.71 6651.8,-2907.77 6651.8,-2788.31 6593.39,-2754.64 6491.8,-2691.81 6413.49,-2643.38 6363.49,-2708.22 6287.8,-2655.81 6234.69,-2619.03 6240.88,-2589.36 6213.8,-2530.71 6189.15,-2477.34 6186.98,-2462.14 6170.8,-2405.62 6155.28,-2351.45 6141.74,-2207.48 6113.8,-2158.55"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_configuration -->
<g id="edge229" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5331.8,-4064.81C5259.52,-4055.46 5358.2,-3968.76 5331.8,-3900.83"/>
<path fill="none" stroke="black" d="M5331.8,-3898.83C5317.6,-3854.63 5264.83,-3886.13 5241.8,-3845.83 5208.53,-3787.64 5225.04,-3706.39 5239.39,-3659.5"/>
<polygon fill="#f91010" stroke="black" points="5242.79,-3660.35 5242.49,-3649.76 5236.12,-3658.23 5242.79,-3660.35"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_report_report -->
<g id="edge230" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5331.8,-3898.83C5293.37,-3726.92 5448.21,-3710.57 5516.8,-3548.32 5645,-3245.05 5680.52,-3166.5 5745.8,-2843.77 5759.21,-2777.48 5796.12,-2744.57 5753.8,-2691.81 5707.64,-2634.28 5649.79,-2701.38 5591.8,-2655.81 5552.58,-2624.99 5530.61,-2570.86 5519.26,-2532.24"/>
<polygon fill="#f91010" stroke="black" points="5522.54,-2530.96 5516.47,-2522.28 5515.8,-2532.85 5522.54,-2530.96"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge231" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9567.23,-4128.32C9560.09,-4124.82 9552.38,-4121.69 9544.8,-4119.81 9408.52,-4086.07 4631.18,-4085.44 4490.8,-4083.81 4255.89,-4081.08 3661.89,-4123.01 3433.8,-4066.81"/>
<path fill="none" stroke="black" d="M3433.8,-4064.81C3298.95,-4031.58 3167.8,-4039.71 3167.8,-3900.83 3167.8,-3900.83 3167.8,-3900.83 3167.8,-3815.84 3167.8,-3721.1 3346.48,-3536.42 3393.8,-3454.34 3467.3,-3326.84 3477.05,-3290.22 3548.8,-3161.72 3784.84,-2738.98 3833.67,-2626.36 4100.8,-2222.54 4149,-2149.67 4177.86,-2142.27 4217.8,-2064.57"/>
<path fill="none" stroke="black" d="M4217.8,-2062.57C4223.65,-2044.86 4229.8,-2025.28 4235.06,-2008.19"/>
<polygon fill="#f91010" stroke="black" points="4238.47,-2009.04 4238.05,-1998.45 4231.77,-2006.99 4238.47,-2009.04"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge232" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4656.8,-3981.82C4589.79,-3953.15 4656.8,-3890.72 4656.8,-3817.84 4656.8,-3817.84 4656.8,-3817.84 4656.8,-3721.85 4656.8,-3659.8 4651.37,-3638.95 4680.8,-3584.32 4713.22,-3524.12 4775.65,-3473.42 4816.77,-3444.5"/>
<polygon fill="#f91010" stroke="black" points="4818.97,-3447.23 4825.2,-3438.67 4814.99,-3441.48 4818.97,-3447.23"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_status_watcher -->
<g id="edge233" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9643.38,-4146.32C9770.32,-4141.65 10131.59,-4125.01 10241.8,-4083.81 10254.04,-4079.23 10255.25,-4074.54 10265.8,-4066.81"/>
<path fill="none" stroke="black" d="M10265.8,-4064.81C10461.1,-3921.63 9709.31,-3424.64 9535.8,-3255.71 9426.03,-3148.84 9388.48,-3133.3 9273.8,-3031.74 8911.69,-2711.06 8726.95,-2706.99 8471.8,-2296.08 8407.95,-2193.26 8431.88,-2150.1 8395.8,-2034.57 8385.77,-2002.47 8384.27,-1994.04 8371.8,-1962.8"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_upload_upload -->
<g id="edge234" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4656.8,-3981.82C4643.84,-3975.39 4580.8,-3847.81 4580.8,-3817.84 4580.8,-3817.84 4580.8,-3817.84 4580.8,-3416.57 4580.8,-3295.28 4695.23,-3315.36 4769.8,-3219.71 4819.75,-3155.62 4977.21,-2989.91 4963.8,-2909.77"/>
<path fill="none" stroke="black" d="M4963.8,-2907.77C4958.34,-2893.75 4955.04,-2890.78 4944.8,-2879.77 4913.55,-2846.18 4869.04,-2861.36 4863.8,-2815.78"/>
</g>
<!-- ahriman_core_util -->
<g id="node102" class="node">
<title>ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c70505" stroke="black" cx="5647.8" cy="-3816.84" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5647.8" y="-3825.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5647.8" y="-3814.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5647.8" y="-3803.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">util</text>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_util -->
<g id="edge235" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5331.8,-4064.81C5210.95,-4049.14 5512.79,-4096.09 5600.8,-4011.81 5643.08,-3971.32 5650.02,-3899.78 5649.85,-3855.82"/>
<polygon fill="#f91010" stroke="black" points="5653.35,-3855.75 5649.69,-3845.81 5646.35,-3855.86 5653.35,-3855.75"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_migration_result -->
<g id="edge236" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9643.11,-4145.43C9760,-4138.74 10069.77,-4117.91 10099.8,-4083.81 10110.37,-4071.8 10105.13,-4062.89 10099.8,-4047.81 9963.35,-3662.08 9383.5,-3554.02 9182.07,-3527.82"/>
<polygon fill="#f91010" stroke="black" points="9182.27,-3524.32 9171.91,-3526.53 9181.39,-3531.27 9182.27,-3524.32"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_package -->
<g id="edge237" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5331.8,-4064.81C5032.11,-4026.29 4936.4,-4098.35 4656.8,-3983.82"/>
<path fill="none" stroke="black" d="M4656.8,-3981.82C4429.26,-3888.62 4302.76,-3714.95 4402.8,-3490.34 4412.53,-3468.49 4427.42,-3472.66 4442.8,-3454.34 4509.68,-3374.61 4481.05,-3314.68 4566.8,-3255.71 4635.81,-3208.24 4698.52,-3284.35 4751.8,-3219.71 4768.19,-3199.82 4761.66,-3185.53 4751.8,-3161.72 4732.79,-3115.85 4555.34,-3035.16 4593.8,-3003.75"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_repository_paths -->
<g id="edge238" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9567.22,-4128.35C9560.09,-4124.85 9552.38,-4121.71 9544.8,-4119.81 9384.83,-4079.78 6741.68,-4085.94 6576.8,-4083.81 6023.46,-4076.68 5880.59,-4137.96 5331.8,-4066.81"/>
<path fill="none" stroke="black" d="M5331.8,-4064.81C5027.22,-4025.32 4948.77,-4038.34 4642.8,-4011.81 4568.16,-4005.34 4482.82,-3996.99 4424.14,-3991.09"/>
<polygon fill="#f91010" stroke="black" points="4424.17,-3987.58 4413.87,-3990.06 4423.47,-3994.54 4424.17,-3987.58"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_result -->
<g id="edge239" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5331.8,-3898.83C5323.75,-3866.82 5292.28,-3876.37 5279.8,-3845.83 5253.46,-3781.38 5284.7,-3755.11 5317.8,-3693.86 5345.96,-3641.73 5346.58,-3620.12 5393.8,-3584.32 5432.77,-3554.77 5469.42,-3588.17 5497.8,-3548.32 5512.74,-3527.33 5511.15,-3512.38 5497.8,-3490.34 5479.87,-3460.76 5452.54,-3479.5 5428.8,-3454.34 5364.14,-3385.82 5296.4,-3152.27 5254.8,-3067.74 5215.99,-2988.89 5166.27,-2898.57 5139.31,-2850.37"/>
<polygon fill="#f91010" stroke="black" points="5142.33,-2848.6 5134.39,-2841.59 5136.22,-2852.03 5142.33,-2848.6"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_package -->
<g id="edge240" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10265.8,-4064.81C10295.75,-4045.53 10341.8,-3920.88 10341.8,-3900.83 10341.8,-3900.83 10341.8,-3900.83 10341.8,-3721.85 10341.8,-3438.18 10138.03,-3418.61 9905.8,-3255.71 9650.33,-3076.51 9469.71,-3185.36 9279.8,-2937.76 8762.06,-2262.76 8731.72,-1982.26 8628.8,-1137.82 8624.84,-1105.37 8619.13,-1095.5 8628.8,-1064.28 8646.24,-1007.91 8661.64,-996.02 8703.8,-954.74 8724.67,-934.3 8735.78,-936.73 8758.8,-918.74 8762.29,-916.01 8765.84,-913.07 8769.34,-910.05"/>
<polygon fill="#f91010" stroke="black" points="8771.71,-912.63 8776.88,-903.39 8767.07,-907.39 8771.71,-912.63"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_web -->
<g id="edge241" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10907.8,-3898.83C10906.45,-3841.68 10978.43,-3711.64 10997.8,-3657.86 11015.26,-3609.38 11023.49,-3598.36 11035.8,-3548.32 11162.23,-3034.06 11211.8,-2899.42 11211.8,-2369.85 11211.8,-2369.85 11211.8,-2369.85 11211.8,-2062.57 11211.8,-1919.86 11173.8,-1886.44 11173.8,-1743.73 11173.8,-1743.73 11173.8,-1743.73 11173.8,-755.87 11173.8,-590.72 10993.26,-645.25 10831.8,-610.57 10532.76,-546.33 8251.75,-546.13 7889.27,-546.5"/>
<polygon fill="#f91010" stroke="black" points="7889.11,-543 7879.11,-546.52 7889.11,-550 7889.11,-543"/>
</g>
<!-- ahriman_core_formatters -->
<g id="node65" class="node">
<title>ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#950303" stroke="black" cx="1548.8" cy="-2486.17" rx="43.68" ry="28.98"/>
<text text-anchor="middle" x="1548.8" y="-2494.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1548.8" y="-2483.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1548.8" y="-2472.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters</text>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge242" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1871.8,-2367.85C1913.13,-2341.33 1925.68,-2334.86 1955.8,-2296.08 2196.84,-1985.66 2124.42,-1827.18 2345.8,-1502.43 2382.93,-1447.97 2395.16,-1435.1 2445.8,-1392.9 2474.99,-1368.57 2721.66,-1246.86 2735.8,-1211.59"/>
<path fill="none" stroke="black" d="M2735.8,-1209.59C2741.64,-1189.54 2746.68,-1167 2750.55,-1147.75"/>
<polygon fill="#950303" stroke="black" points="2754.03,-1148.22 2752.52,-1137.73 2747.16,-1146.87 2754.03,-1148.22"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge243" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_dump</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1505.9,-2480.06C1370.5,-2463.23 941.05,-2404.28 600.8,-2296.08 543.77,-2277.94 395.29,-2230.6 354.8,-2186.54 136.94,-1949.54 265.71,-1787.84 116.8,-1502.43 110.84,-1491.02 103.23,-1479.41 95.67,-1468.94"/>
<polygon fill="#950303" stroke="black" points="98.42,-1466.77 89.66,-1460.82 92.8,-1470.94 98.42,-1466.77"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge244" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1184.8,-2258.31C1179.37,-2214.3 1193.85,-2201.95 1184.8,-2158.55"/>
<path fill="none" stroke="black" d="M1184.8,-2156.55C1040.23,-1463.6 1008.86,-1208.85 496.8,-720.1 469.18,-693.74 452.3,-702.42 418.8,-684.1 414.82,-681.93 410.74,-679.58 406.69,-677.16"/>
<polygon fill="#950303" stroke="black" points="408.26,-674.02 397.91,-671.78 404.61,-679.99 408.26,-674.02"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge245" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1184.8,-2156.55C1139.42,-1923.29 1296.81,-1871.8 1298.8,-1634.19"/>
<path fill="none" stroke="black" d="M1298.8,-1632.19C1287.8,-1537.1 1222.8,-1526.39 1222.8,-1430.67 1222.8,-1430.67 1222.8,-1430.67 1222.8,-1100.05 1222.8,-1000.11 1266.47,-965.08 1222.8,-875.19"/>
<path fill="none" stroke="black" d="M1222.8,-873.19C1196.61,-822.37 1183.37,-812.28 1165.8,-757.87"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge246" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_remove_unknown</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1590.91,-2477.73C1656.01,-2464.67 1782.84,-2432.78 1871.8,-2369.85"/>
<path fill="none" stroke="black" d="M1871.8,-2367.85C1902.46,-2346.15 2131.8,-1781.29 2131.8,-1743.73 2131.8,-1743.73 2131.8,-1743.73 2131.8,-1632.19 2131.8,-1185.87 2290.78,-1052.78 2625.8,-757.87"/>
<path fill="none" stroke="black" d="M2625.8,-755.87C2714.79,-681.43 2768.39,-725.45 2876.8,-684.1 2882.57,-681.9 2888.51,-679.42 2894.39,-676.82"/>
<polygon fill="#950303" stroke="black" points="2895.9,-679.98 2903.56,-672.65 2893.01,-673.6 2895.9,-679.98"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_search -->
<g id="edge247" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1590.9,-2477.52C1655.29,-2465.31 1781.71,-2439.33 1885.8,-2405.62 2126.72,-2327.59 2187.23,-2303.6 2411.8,-2186.54 2523.42,-2128.36 2543.47,-2100.34 2650.8,-2034.57 2752.81,-1972.06 2849.8,-1972.91 2849.8,-1853.27 2849.8,-1853.27 2849.8,-1853.27 2849.8,-1741.73 2849.8,-1489.31 2800.83,-1422.37 2844.8,-1173.82 2853.82,-1122.78 2847.01,-1099.75 2884.8,-1064.28 2926.01,-1025.59 2954.31,-1049.27 3006.8,-1028.28 3251.22,-930.51 3400.53,-984.91 3533.8,-757.87"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_status -->
<g id="edge248" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1298.8,-1632.19C1295.59,-1542.68 1298.8,-1520.23 1298.8,-1430.67 1298.8,-1430.67 1298.8,-1430.67 1298.8,-990.51 1298.8,-731.72 2281.63,-663.98 2530.88,-650.96"/>
<polygon fill="#950303" stroke="black" points="2531.35,-654.44 2541.16,-650.43 2530.99,-647.45 2531.35,-654.44"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge249" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_unsafe_commands</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1509.2,-2473.54C1442.03,-2453.62 1301.69,-2411.11 1184.8,-2369.85"/>
<path fill="none" stroke="black" d="M1184.8,-2367.85C1163.39,-2360.29 403.29,-2203.14 387.8,-2186.54 350.37,-2146.43 368.8,-2119.43 368.8,-2064.57 368.8,-2064.57 368.8,-2064.57 368.8,-1851.27 368.8,-1562.48 210.71,-1496.98 254.8,-1211.59"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_users -->
<g id="edge250" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1184.8,-2367.85C1139.73,-2351.94 1195.15,-2306.97 1184.8,-2260.31"/>
<path fill="none" stroke="black" d="M1184.8,-2258.31C1165.7,-2172.25 989.99,-1972.48 914.74,-1889.95"/>
<polygon fill="#950303" stroke="black" points="917.11,-1887.36 907.78,-1882.34 911.94,-1892.08 917.11,-1887.36"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_core_report_console -->
<g id="edge251" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1592.51,-2482.78C1758.38,-2473.66 2364.65,-2439.83 2863.8,-2405.62 3290.71,-2376.36 3396.85,-2360.84 3823.8,-2332.08 4284.99,-2301.01 4843.69,-2271.41 5009.32,-2262.81"/>
<polygon fill="#950303" stroke="black" points="5009.85,-2266.28 5019.65,-2262.27 5009.49,-2259.29 5009.85,-2266.28"/>
</g>
<!-- ahriman_core_formatters_aur_printer -->
<g id="node66" class="node">
<title>ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="651.8" cy="-2611.26" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="651.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="651.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="651.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="651.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">aur_printer</text>
</g>
<!-- ahriman_core_formatters_aur_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge252" class="edge">
<title>ahriman_core_formatters_aur_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M696.89,-2604.07C847.68,-2583.38 1333.89,-2516.66 1495.79,-2494.44"/>
<polygon fill="#913030" stroke="black" points="1496.55,-2497.87 1505.98,-2493.04 1495.6,-2490.93 1496.55,-2497.87"/>
</g>
<!-- ahriman_core_formatters_build_printer -->
<g id="node67" class="node">
<title>ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="2076.8" cy="-2611.26" rx="48.58" ry="36.54"/>
<text text-anchor="middle" x="2076.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2076.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2076.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="2076.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_printer</text>
</g>
<!-- ahriman_core_formatters_build_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge253" class="edge">
<title>ahriman_core_formatters_build_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2045.68,-2582.68C2037.41,-2576.58 2028.17,-2570.74 2018.8,-2566.71 1877.27,-2505.9 1693.09,-2491.47 1603.09,-2488.12"/>
<polygon fill="#a13535" stroke="black" points="1602.96,-2484.61 1592.85,-2487.77 1602.73,-2491.61 1602.96,-2484.61"/>
</g>
<!-- ahriman_core_formatters_configuration_printer -->
<g id="node68" class="node">
<title>ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="1363.8" cy="-2611.26" rx="73.58" ry="36.54"/>
<text text-anchor="middle" x="1363.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1363.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1363.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1363.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">configuration_printer</text>
</g>
<!-- ahriman_core_formatters_configuration_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge254" class="edge">
<title>ahriman_core_formatters_configuration_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1407.17,-2581.4C1438.28,-2560.7 1479.82,-2533.06 1509.86,-2513.07"/>
<polygon fill="#a13535" stroke="black" points="1512.02,-2515.84 1518.4,-2507.39 1508.14,-2510.01 1512.02,-2515.84"/>
</g>
<!-- ahriman_core_formatters_package_printer -->
<g id="node69" class="node">
<title>ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="1948.8" cy="-2611.26" rx="60.62" ry="36.54"/>
<text text-anchor="middle" x="1948.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1948.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1948.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1948.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_printer</text>
</g>
<!-- ahriman_core_formatters_package_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge255" class="edge">
<title>ahriman_core_formatters_package_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1895.27,-2593.79C1817.23,-2569.77 1673.36,-2525.5 1597.9,-2502.28"/>
<polygon fill="#913030" stroke="black" points="1598.75,-2498.88 1588.17,-2499.28 1596.7,-2505.57 1598.75,-2498.88"/>
</g>
<!-- ahriman_core_formatters_printer -->
<g id="node70" class="node">
<title>ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="1225.8" cy="-2611.26" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="1225.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1225.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1225.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1225.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">printer</text>
</g>
<!-- ahriman_core_formatters_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge256" class="edge">
<title>ahriman_core_formatters_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1255.78,-2583.18C1263.54,-2577.14 1272.15,-2571.2 1280.8,-2566.71 1351.14,-2530.17 1440.82,-2507.87 1496.52,-2496.52"/>
<polygon fill="#b03a3a" stroke="black" points="1497.4,-2499.92 1506.52,-2494.53 1496.03,-2493.05 1497.4,-2499.92"/>
</g>
<!-- ahriman_core_formatters_status_printer -->
<g id="node71" class="node">
<title>ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a13535" stroke="black" cx="2235.8" cy="-2611.26" rx="53.98" ry="36.54"/>
<text text-anchor="middle" x="2235.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2235.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2235.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="2235.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status_printer</text>
</g>
<!-- ahriman_core_formatters_status_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge257" class="edge">
<title>ahriman_core_formatters_status_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2192.99,-2588.74C2175.36,-2580.69 2154.48,-2572.18 2134.8,-2566.71 1943.76,-2513.64 1707.47,-2495.37 1602.92,-2489.6"/>
<polygon fill="#a13535" stroke="black" points="1602.79,-2486.09 1592.62,-2489.05 1602.42,-2493.08 1602.79,-2486.09"/>
</g>
<!-- ahriman_core_formatters_string_printer -->
<g id="node72" class="node">
<title>ahriman_core_formatters_string_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b03a3a" stroke="black" cx="1109.8" cy="-2611.26" rx="51.74" ry="36.54"/>
<text text-anchor="middle" x="1109.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1109.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1109.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1109.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">string_printer</text>
</g>
<!-- ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge258" class="edge">
<title>ahriman_core_formatters_string_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1142.81,-2582.97C1151.49,-2576.87 1161.15,-2570.95 1170.8,-2566.71 1280.03,-2518.76 1419.97,-2499.04 1495.2,-2491.47"/>
<polygon fill="#b03a3a" stroke="black" points="1495.76,-2494.93 1505.37,-2490.48 1495.08,-2487.96 1495.76,-2494.93"/>
</g>
<!-- ahriman_core_formatters_update_printer -->
<g id="node73" class="node">
<title>ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="1548.8" cy="-2611.26" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="1548.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1548.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1548.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1548.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">update_printer</text>
</g>
<!-- ahriman_core_formatters_update_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge259" class="edge">
<title>ahriman_core_formatters_update_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1548.8,-2574.33C1548.8,-2559.1 1548.8,-2541.34 1548.8,-2525.83"/>
<polygon fill="#993333" stroke="black" points="1552.3,-2525.52 1548.8,-2515.52 1545.3,-2525.52 1552.3,-2525.52"/>
</g>
<!-- ahriman_core_formatters_user_printer -->
<g id="node74" class="node">
<title>ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#993333" stroke="black" cx="1669.8" cy="-2611.26" rx="48.17" ry="36.54"/>
<text text-anchor="middle" x="1669.8" y="-2625.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1669.8" y="-2614.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1669.8" y="-2603.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1669.8" y="-2592.26" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_printer</text>
</g>
<!-- ahriman_core_formatters_user_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge260" class="edge">
<title>ahriman_core_formatters_user_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1641.43,-2581.4C1622.72,-2562.37 1598.24,-2537.47 1579.15,-2518.04"/>
<polygon fill="#993333" stroke="black" points="1581.62,-2515.57 1572.12,-2510.89 1576.63,-2520.47 1581.62,-2515.57"/>
</g>
<!-- ahriman_core_report -->
<g id="node75" class="node">
<title>ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a90404" stroke="black" cx="5414.8" cy="-2157.55" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5414.8" y="-2166.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5414.8" y="-2155.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5414.8" y="-2144.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_core_report&#45;&gt;ahriman_core_repository_executor -->
<g id="edge261" class="edge">
<title>ahriman_core_report&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5400.42,-2130.68C5370.05,-2076.88 5295.88,-1949.92 5219.8,-1853.27"/>
</g>
<!-- ahriman_core_report_console&#45;&gt;ahriman_core_report -->
<g id="edge262" class="edge">
<title>ahriman_core_report_console&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5094.32,-2248.1C5160.09,-2229.72 5298.23,-2191.12 5369.74,-2171.14"/>
<polygon fill="#8a2e2e" stroke="black" points="5370.69,-2174.51 5379.38,-2168.45 5368.81,-2167.77 5370.69,-2174.51"/>
</g>
<!-- ahriman_core_report_email&#45;&gt;ahriman_core_report -->
<g id="edge263" class="edge">
<title>ahriman_core_report_email&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5414.8,-2449.32C5414.8,-2426.56 5414.8,-2396.48 5414.8,-2369.85"/>
</g>
<!-- ahriman_core_report_html&#45;&gt;ahriman_core_report -->
<g id="edge264" class="edge">
<title>ahriman_core_report_html&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5347.98,-2459.89C5375.75,-2432.9 5414.8,-2391.16 5414.8,-2369.85"/>
<path fill="none" stroke="black" d="M5414.8,-2367.85C5414.8,-2308.05 5414.8,-2238.65 5414.8,-2196.7"/>
<polygon fill="#913030" stroke="black" points="5418.3,-2196.65 5414.8,-2186.65 5411.3,-2196.65 5418.3,-2196.65"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report -->
<g id="edge265" class="edge">
<title>ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5762.62,-2455.98C5709.55,-2406.63 5597.75,-2304.08 5498.8,-2222.54 5483.04,-2209.55 5465.09,-2195.76 5449.84,-2184.31"/>
<polygon fill="#7a2828" stroke="black" points="5451.79,-2181.39 5441.68,-2178.21 5447.6,-2187 5451.79,-2181.39"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_report -->
<g id="edge266" class="edge">
<title>ahriman_core_report_report&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5481.61,-2459.89C5453.85,-2432.9 5414.8,-2391.16 5414.8,-2369.85"/>
</g>
<!-- ahriman_core_report_telegram&#45;&gt;ahriman_core_report -->
<g id="edge267" class="edge">
<title>ahriman_core_report_telegram&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5624.68,-2455.31C5581.6,-2394.4 5483.82,-2256.15 5438.58,-2192.18"/>
<polygon fill="#822b2b" stroke="black" points="5441.19,-2189.8 5432.55,-2183.66 5435.47,-2193.84 5441.19,-2189.8"/>
</g>
<!-- ahriman_core_repository -->
<g id="node82" class="node">
<title>ahriman_core_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db0505" stroke="black" cx="5027.8" cy="-1531.43" rx="42.35" ry="28.98"/>
<text text-anchor="middle" x="5027.8" y="-1539.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5027.8" y="-1528.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5027.8" y="-1517.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository</text>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge268" class="edge">
<title>ahriman_core_repository&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4985.36,-1528.79C4742.96,-1518.93 3532.27,-1463.22 3191.8,-1321.13"/>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_core_status_watcher -->
<g id="edge269" class="edge">
<title>ahriman_core_repository&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5070.11,-1528.66C5322.57,-1517.89 6655.86,-1458.33 7739.8,-1356.9 7825.15,-1348.91 7924.18,-1335.88 7981.64,-1327.95"/>
<polygon fill="#db0505" stroke="black" points="7982.45,-1331.37 7991.87,-1326.53 7981.49,-1324.43 7982.45,-1331.37"/>
</g>
<!-- ahriman_core_repository_cleaner -->
<g id="node83" class="node">
<title>ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b42d2d" stroke="black" cx="4319.8" cy="-1852.27" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="4319.8" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4319.8" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4319.8" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="4319.8" y="-1833.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">cleaner</text>
</g>
<!-- ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_executor -->
<g id="edge270" class="edge">
<title>ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4358.37,-1834.48C4375.64,-1827.6 4396.43,-1820.17 4415.8,-1815.5 4617.84,-1766.76 4865.69,-1750.66 4973.46,-1745.73"/>
<polygon fill="#b42d2d" stroke="black" points="4973.92,-1749.21 4983.75,-1745.27 4973.61,-1742.22 4973.92,-1749.21"/>
</g>
<!-- ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge271" class="edge">
<title>ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4319.8,-1815.46C4319.8,-1807.29 4319.8,-1798.5 4319.8,-1789.97"/>
<polygon fill="#b42d2d" stroke="black" points="4323.3,-1789.75 4319.8,-1779.75 4316.3,-1789.75 4323.3,-1789.75"/>
</g>
<!-- ahriman_core_repository_repository -->
<g id="node85" class="node">
<title>ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="5027.8" cy="-1633.19" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="5027.8" y="-1647.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5027.8" y="-1636.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5027.8" y="-1625.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="5027.8" y="-1614.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository</text>
</g>
<!-- ahriman_core_repository_executor&#45;&gt;ahriman_core_repository_repository -->
<g id="edge272" class="edge">
<title>ahriman_core_repository_executor&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5027.8,-1705.92C5027.8,-1697.75 5027.8,-1688.96 5027.8,-1680.43"/>
<polygon fill="#732626" stroke="black" points="5031.3,-1680.21 5027.8,-1670.21 5024.3,-1680.21 5031.3,-1680.21"/>
</g>
<!-- ahriman_core_repository_repository&#45;&gt;ahriman_core_repository -->
<g id="edge273" class="edge">
<title>ahriman_core_repository_repository&#45;&gt;ahriman_core_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5027.8,-1596.17C5027.8,-1587.93 5027.8,-1579.14 5027.8,-1570.8"/>
<polygon fill="#8a2e2e" stroke="black" points="5031.3,-1570.56 5027.8,-1560.56 5024.3,-1570.56 5031.3,-1570.56"/>
</g>
<!-- ahriman_core_repository_repository_properties&#45;&gt;ahriman_core_repository_cleaner -->
<g id="edge274" class="edge">
<title>ahriman_core_repository_repository_properties&#45;&gt;ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4271.46,-1926.48C4278.44,-1915.91 4286.18,-1904.18 4293.39,-1893.26"/>
<polygon fill="#732626" stroke="black" points="4296.45,-1894.98 4299.04,-1884.71 4290.6,-1891.13 4296.45,-1894.98"/>
</g>
<!-- ahriman_core_repository_update_handler&#45;&gt;ahriman_core_repository_repository -->
<g id="edge275" class="edge">
<title>ahriman_core_repository_update_handler&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4376.54,-1733.11C4510.4,-1712.77 4844.4,-1662.04 4974.63,-1642.26"/>
<polygon fill="#822b2b" stroke="black" points="4975.39,-1645.69 4984.75,-1640.73 4974.34,-1638.77 4975.39,-1645.69"/>
</g>
<!-- ahriman_core_sign -->
<g id="node88" class="node">
<title>ahriman_core_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce3b3b" stroke="black" cx="5995.8" cy="-2720.8" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5995.8" y="-2729.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5995.8" y="-2718.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5995.8" y="-2707.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign</text>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge276" class="edge">
<title>ahriman_core_sign&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5769.8,-2610.26C5753.08,-2587.2 5759.71,-2555.58 5770.19,-2530.15"/>
<polygon fill="#ce3b3b" stroke="black" points="5773.51,-2531.31 5774.36,-2520.75 5767.11,-2528.47 5773.51,-2531.31"/>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge277" class="edge">
<title>ahriman_core_sign&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5966.17,-2702.16C5959.01,-2698.37 5951.27,-2694.66 5943.8,-2691.81 5879.74,-2667.36 5848.32,-2697.37 5793.8,-2655.81 5776.22,-2642.41 5782.77,-2630.15 5769.8,-2612.26"/>
<path fill="none" stroke="black" d="M5769.8,-2610.26C5758.24,-2594.32 5738.99,-2548.61 5730.8,-2530.71 5641.25,-2335.21 5649.79,-2232.96 5461.8,-2128.56 5372.93,-2079.21 5106.66,-2105.16 5005.8,-2092.56 4757.8,-2061.58 4467.15,-2006.41 4329.25,-1979.08"/>
<polygon fill="#ce3b3b" stroke="black" points="4329.67,-1975.59 4319.18,-1977.08 4328.31,-1982.46 4329.67,-1975.59"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge278" class="edge">
<title>ahriman_core_sign_gpg&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4883.52,-3391.2C4936.1,-3342.22 5058.03,-3233.19 5174.8,-3161.72 5466.58,-2983.13 5570.66,-2998.47 5875.8,-2843.77 5919.88,-2821.42 6096.5,-2756.99 6061.8,-2721.8"/>
<path fill="none" stroke="black" d="M6061.8,-2719.8C6051.14,-2709.19 6055.44,-2699.94 6042.8,-2691.81 5962.79,-2640.33 5900.81,-2721.28 5831.8,-2655.81 5798.96,-2624.65 5791.62,-2571.68 5791.14,-2533.4"/>
<polygon fill="#932424" stroke="black" points="5794.64,-2533.03 5791.17,-2523.02 5787.64,-2533.01 5794.64,-2533.03"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge279" class="edge">
<title>ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4825.02,-3396.85C4802.79,-3382.81 4772.58,-3363.24 4746.8,-3344.8 4694.49,-3307.4 4691.54,-3281.87 4632.8,-3255.71 4548.69,-3218.25 4502.6,-3274.75 4428.8,-3219.71 4398.53,-3197.13 4377.79,-3096.04 4352.8,-3067.74 4333.71,-3046.12 4318.25,-3053.04 4298.8,-3031.74 4266.75,-2996.64 4266.86,-2981.29 4247.8,-2937.76 4195.41,-2818.12 4134.98,-2532.18 4134.8,-2530.71 4129.8,-2491.43 4126.36,-2480.31 4134.8,-2441.62 4153.67,-2355.03 4200.86,-2347.3 4217.8,-2260.31"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_application_handlers_web -->
<g id="edge280" class="edge">
<title>ahriman_core_spawn&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7765.9,-2894.89C7750.5,-2889.49 7731.93,-2883.59 7714.8,-2879.77 7584.58,-2850.77 7545.97,-2877.13 7416.8,-2843.77 7350.39,-2826.63 7338.49,-2808.55 7273.8,-2785.79 7221.27,-2767.31 7205.85,-2769.56 7153.8,-2749.79 7096.54,-2728.05 7088.14,-2706.93 7028.8,-2691.81 6968.81,-2676.52 6515.13,-2700.98 6472.8,-2655.81 6445.72,-2626.92 6472.11,-2606.31 6472.8,-2566.71 6477.46,-2298.19 6493.8,-2231.37 6493.8,-1962.8 6493.8,-1962.8 6493.8,-1962.8 6493.8,-873.19 6493.8,-773.26 6447.44,-736.87 6493.8,-648.34"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_views_base -->
<g id="edge281" class="edge">
<title>ahriman_core_spawn&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7835.61,-2898.28C7860.02,-2892.14 7893.16,-2884.45 7922.8,-2879.77 8011.39,-2865.79 8250.68,-2894.28 8324.8,-2843.77 8549.73,-2690.51 8495.57,-2547.93 8598.8,-2296.08 8643.67,-2186.6 8860.42,-1380.61 8927.8,-1283.36 8956.93,-1241.3 9009.29,-1262.04 9017.8,-1211.59"/>
<path fill="none" stroke="black" d="M9017.8,-1209.59C9023.56,-1162.14 9002.89,-1147.46 9017.8,-1102.05"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_web -->
<g id="edge282" class="edge">
<title>ahriman_core_spawn&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7786.86,-2881.45C7772.55,-2850.73 7750.36,-2797.97 7741.8,-2749.79 7737.29,-2724.42 7741.24,-2717.57 7741.8,-2691.81 7742.18,-2673.91 7755.38,-2387.75 7755.8,-2369.85"/>
<path fill="none" stroke="black" d="M7755.8,-2367.85C7744.27,-2274.59 7725.8,-2252.52 7725.8,-2158.55 7725.8,-2158.55 7725.8,-2158.55 7725.8,-1530.43 7725.8,-1437.4 7709.3,-1412.67 7725.8,-1321.13"/>
</g>
<!-- ahriman_core_status -->
<g id="node91" class="node">
<title>ahriman_core_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="8551.8" cy="-2259.31" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="8551.8" y="-2267.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8551.8" y="-2256.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8551.8" y="-2245.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_application_lock -->
<g id="edge283" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8588.57,-2250.56C8697.68,-2227.86 9029.37,-2161.11 9307.8,-2128.56 9671.94,-2085.98 10112.99,-2070.4 10267.79,-2066.01"/>
<polygon fill="#f91010" stroke="black" points="10268.11,-2069.5 10278.01,-2065.73 10267.91,-2062.51 10268.11,-2069.5"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge284" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8513.71,-2255.44C8420.26,-2248.51 8172.15,-2230.85 7964.8,-2222.54 7861.25,-2218.39 6193.14,-2231.55 6099.8,-2186.54 6069.66,-2172.01 6081.72,-2143.52 6051.8,-2128.56 5977.58,-2091.44 5387.84,-2105.02 5305.8,-2092.56 5204.13,-2077.11 5183.16,-2051.93 5081.8,-2034.57 4812.22,-1988.41 4488.22,-1971.32 4335.94,-1965.52"/>
<polygon fill="#f91010" stroke="black" points="4335.84,-1962.01 4325.72,-1965.13 4335.58,-1969.01 4335.84,-1962.01"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_views_base -->
<g id="edge285" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8561.8,-2062.57C8561.8,-1761.63 8541.61,-1668.78 8661.8,-1392.9 8684.05,-1341.81 8684.25,-1323.6 8722.8,-1283.36 8829.25,-1172.22 8968.94,-1247.98 9017.8,-1102.05"/>
<path fill="none" stroke="black" d="M9017.8,-1100.05C9025.14,-1077.68 9035.59,-1053.67 9044.87,-1034.03"/>
<polygon fill="#f91010" stroke="black" points="9048.14,-1035.3 9049.31,-1024.77 9041.83,-1032.27 9048.14,-1035.3"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_web -->
<g id="edge286" class="edge">
<title>ahriman_core_status&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8555.8,-2230.34C8560.61,-2192.63 8567.38,-2123.41 8561.8,-2064.57"/>
<path fill="none" stroke="black" d="M8561.8,-2062.57C8558.63,-2029.19 8522.26,-1949.92 8499.8,-1925.03 8478.45,-1901.38 8459.87,-1912.02 8437.8,-1889.03 8303.23,-1748.91 8339.17,-1665.65 8233.8,-1502.43 8222.8,-1485.41 8217.33,-1483.11 8205.8,-1466.43 8188.24,-1441.05 7919.25,-1023.18 7915.8,-992.51"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_application_lock -->
<g id="edge287" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7936.24,-2367.96C8204.48,-2368.54 9791.6,-2368.88 9991.8,-2296.08 10085.09,-2262.15 10094.11,-2225.07 10167.8,-2158.55"/>
<path fill="none" stroke="black" d="M10167.8,-2156.55C10199.19,-2125.06 10243.53,-2100.39 10277.09,-2084.56"/>
<polygon fill="#931a1a" stroke="black" points="10278.63,-2087.7 10286.24,-2080.33 10275.7,-2081.34 10278.63,-2087.7"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge288" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7863.02,-2353.31C7786.77,-2322.25 7598.42,-2250.03 7432.8,-2222.54 7129.95,-2172.28 6357.53,-2214.3 6051.8,-2186.54 5885.59,-2171.45 5846.72,-2146.47 5680.8,-2128.56 5548.21,-2114.24 5206.79,-2139.02 5081.8,-2092.56 5041.97,-2077.75 5045.36,-2050.06 5005.8,-2034.57 4885.72,-1987.57 4508.07,-1970.51 4335.89,-1965.07"/>
<polygon fill="#931a1a" stroke="black" points="4335.95,-1961.57 4325.85,-1964.75 4335.74,-1968.56 4335.95,-1961.57"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_status_web_client -->
<g id="edge289" class="edge">
<title>ahriman_core_status_client&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7903.73,-2322.28C7904.42,-2316.96 7905.13,-2311.53 7905.82,-2306.2"/>
<polygon fill="#931a1a" stroke="black" points="7900.24,-2321.97 7902.42,-2332.34 7907.18,-2322.87 7900.24,-2321.97"/>
<polygon fill="#931a1a" stroke="black" points="7909.31,-2306.52 7907.13,-2296.15 7902.37,-2305.61 7909.31,-2306.52"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_views_base -->
<g id="edge290" class="edge">
<title>ahriman_core_status_watcher&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8066.06,-1307.69C8223.27,-1258.13 8845.81,-1061.86 9020.18,-1006.89"/>
<polygon fill="#8b2222" stroke="black" points="9021.34,-1010.19 9029.83,-1003.85 9019.24,-1003.52 9021.34,-1010.19"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_web -->
<g id="edge291" class="edge">
<title>ahriman_core_status_watcher&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8012.08,-1287.46C7981.75,-1230.5 7922.52,-1106.12 7915.8,-992.51"/>
</g>
<!-- ahriman_core_tree&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge293" class="edge">
<title>ahriman_core_tree&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2693.18,-2034.72C2690.88,-2014.28 2690.03,-1986.14 2697.8,-1962.8"/>
</g>
<!-- ahriman_core_upload -->
<g id="node96" class="node">
<title>ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b30404" stroke="black" cx="4849.8" cy="-2486.17" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="4849.8" y="-2494.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4849.8" y="-2483.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4849.8" y="-2472.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload</text>
</g>
<!-- ahriman_core_upload&#45;&gt;ahriman_core_repository_executor -->
<g id="edge294" class="edge">
<title>ahriman_core_upload&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4885.69,-2476.23C4920.19,-2465.59 4970.69,-2444.21 4995.8,-2405.62 5040.32,-2337.19 4986.8,-2300.57 5010.8,-2222.54 5038.52,-2132.41 5278.22,-1927.27 5219.8,-1853.27"/>
<path fill="none" stroke="black" d="M5219.8,-1851.27C5183.91,-1805.15 5122.38,-1775.75 5078.65,-1759.56"/>
<polygon fill="#b30404" stroke="black" points="5079.65,-1756.2 5069.05,-1756.11 5077.28,-1762.79 5079.65,-1756.2"/>
</g>
<!-- ahriman_core_upload_github&#45;&gt;ahriman_core_upload -->
<g id="edge295" class="edge">
<title>ahriman_core_upload_github&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4921.52,-2581.09C4907.43,-2562.63 4889.19,-2538.75 4874.63,-2519.68"/>
<polygon fill="#8a2e2e" stroke="black" points="4877.28,-2517.39 4868.43,-2511.57 4871.72,-2521.64 4877.28,-2517.39"/>
</g>
<!-- ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload -->
<g id="edge296" class="edge">
<title>ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5454.94,-3388.96C5373.42,-3311.68 5146.07,-3083.18 5039.8,-2843.77 4989.06,-2729.48 5063.06,-2668.77 4990.8,-2566.71 4967.69,-2534.08 4926.71,-2513.15 4894.87,-2500.99"/>
<polygon fill="#993333" stroke="black" points="4895.9,-2497.64 4885.31,-2497.5 4893.5,-2504.22 4895.9,-2497.64"/>
</g>
<!-- ahriman_core_upload_rsync&#45;&gt;ahriman_core_upload -->
<g id="edge297" class="edge">
<title>ahriman_core_upload_rsync&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4432.56,-2600.29C4514.99,-2577.94 4714.34,-2523.89 4804.35,-2499.49"/>
<polygon fill="#913030" stroke="black" points="4805.52,-2502.8 4814.26,-2496.8 4803.69,-2496.04 4805.52,-2502.8"/>
</g>
<!-- ahriman_core_upload_s3&#45;&gt;ahriman_core_upload -->
<g id="edge298" class="edge">
<title>ahriman_core_upload_s3&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4778.07,-2581.09C4792.17,-2562.63 4810.41,-2538.75 4824.96,-2519.68"/>
<polygon fill="#8a2e2e" stroke="black" points="4827.87,-2521.64 4831.16,-2511.57 4822.31,-2517.39 4827.87,-2521.64"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload -->
<g id="edge299" class="edge">
<title>ahriman_core_upload_upload&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4849.8,-2574.33C4849.8,-2559.1 4849.8,-2541.34 4849.8,-2525.83"/>
<polygon fill="#8a2e2e" stroke="black" points="4853.3,-2525.52 4849.8,-2515.52 4846.3,-2525.52 4853.3,-2525.52"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge300" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5619.38,-3797.43C5611.98,-3793.53 5603.83,-3789.95 5595.8,-3787.84 5393.27,-3734.74 3920.33,-3770.58 3711.8,-3751.84 3550.82,-3737.38 3512.55,-3718.36 3352.8,-3693.86 3297.75,-3685.42 3146.43,-3694.85 3104.8,-3657.86 2968.29,-3536.59 2910.69,-3401.36 3020.8,-3255.71 3056.17,-3208.9 3097.28,-3249.54 3147.8,-3219.71 3198.4,-3189.82 3214.59,-3178.32 3240.8,-3125.72 3367.48,-2871.48 3267.8,-2771.22 3267.8,-2487.17 3267.8,-2487.17 3267.8,-2487.17 3267.8,-2367.85 3267.8,-2194.15 3176.65,-2168.32 3139.8,-1998.57 3115.66,-1887.4 3115.8,-1857.49 3115.8,-1743.73 3115.8,-1743.73 3115.8,-1743.73 3115.8,-1632.19 3115.8,-1536.46 3048.62,-1525.98 3039.8,-1430.67"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_lock -->
<g id="edge301" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5686.09,-3815.42C5969.72,-3812.28 7739.37,-3791.21 7973.8,-3751.84 8412.54,-3678.18 9476.53,-3285.72 9841.8,-3031.74 9890.3,-2998.01 9994.1,-2890.85 10029.8,-2843.77 10119.67,-2725.26 10411.81,-2398.9 10357.8,-2260.31"/>
<path fill="none" stroke="black" d="M10357.8,-2258.31C10341.93,-2216.44 10345.52,-2203.29 10343.8,-2158.55"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge302" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6775.8,-3721.85C7040.88,-3598.57 7091.03,-3532.94 7314.8,-3344.8 7318.19,-3341.94 7321.67,-3338.92 7325.13,-3335.85"/>
<polygon fill="#c70505" stroke="black" points="7327.52,-3338.4 7332.6,-3329.11 7322.83,-3333.21 7327.52,-3338.4"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge303" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6889.8,-3620.09C6916.16,-3513.44 6869.67,-3453.77 6951.8,-3380.8 7040.32,-3302.15 7107.49,-3392.69 7215.8,-3344.8 7221.11,-3342.45 7226.3,-3339.39 7231.23,-3335.98"/>
<polygon fill="#c70505" stroke="black" points="7233.34,-3338.77 7239.24,-3329.97 7229.14,-3333.17 7233.34,-3338.77"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge304" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5619.07,-3797.42C5611.75,-3793.57 5603.7,-3790.02 5595.8,-3787.84 5415.86,-3738.37 4942.68,-3768.39 4756.8,-3751.84 4565.59,-3734.83 4519.62,-3714.71 4328.8,-3693.86 4019.22,-3660.04 3645.61,-3633.96 3514.27,-3625.24"/>
<polygon fill="#c70505" stroke="black" points="3514.35,-3621.74 3504.14,-3624.57 3513.89,-3628.72 3514.35,-3621.74"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge305" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5619.38,-3797.42C5611.99,-3793.51 5603.83,-3789.94 5595.8,-3787.84 5361.82,-3726.81 3657.69,-3795.17 3419.8,-3751.84 3344.56,-3738.14 3331.91,-3712.69 3257.8,-3693.86 3156.66,-3668.16 3106.42,-3724.1 3025.8,-3657.86 2968.59,-3610.86 2933.87,-3415.47 2911.8,-3344.8 2886.71,-3264.51 2901.04,-3237.14 2863.8,-3161.72 2854.82,-3143.55 2843.43,-3144.5 2835.8,-3125.72 2804.14,-3047.85 2819.47,-3021.69 2814.8,-2937.76 2813.36,-2912.03 2813.91,-2905.53 2814.8,-2879.77 2816.74,-2823.02 2835.67,-2424.86 2849.8,-2369.85"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge306" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6433.8,-3518.33C6345.08,-3386.56 6425.2,-3319.83 6409.8,-3161.72 6393.47,-2994.08 6459.98,-2922.65 6361.8,-2785.79 6306.18,-2708.27 6259.28,-2722.06 6168.8,-2691.81 6089.35,-2665.25 6047.57,-2710.11 5983.8,-2655.81 5922.99,-2604.04 5923.35,-2567.01 5921.8,-2487.17"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge307" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5619.39,-3797.41C5611.99,-3793.51 5603.83,-3789.94 5595.8,-3787.84 5341.35,-3721.65 3488.95,-3796.2 3229.8,-3751.84 2944.18,-3702.96 3093.12,-3734.65 1610.8,-3125.72 1412.96,-3044.45 1334.24,-3072.07 1167.8,-2937.76 1116.18,-2896.1 1125.2,-2865.94 1081.8,-2815.78"/>
<path fill="none" stroke="black" d="M1081.8,-2813.78C1069.83,-2802.58 1070.53,-2796.1 1057.8,-2785.79 1031.83,-2764.76 1017.58,-2771.04 991.8,-2749.79 965.98,-2728.51 972.88,-2708.33 943.8,-2691.81 853.07,-2640.27 808.27,-2695.56 711.8,-2655.81 704.6,-2652.84 697.46,-2648.85 690.74,-2644.48"/>
<polygon fill="#c70505" stroke="black" points="692.71,-2641.58 682.49,-2638.79 688.74,-2647.35 692.71,-2641.58"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_email -->
<g id="edge308" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5677.45,-3798.28C5684.61,-3794.49 5692.35,-3790.76 5699.8,-3787.84 5875.96,-3718.96 6113.36,-3810.02 6091.8,-3622.09"/>
<path fill="none" stroke="black" d="M6091.8,-3620.09C6097.63,-3592.69 5825.8,-3219.73 5825.8,-3191.71 5825.8,-3191.71 5825.8,-3191.71 5825.8,-3095.73 5825.8,-2941.38 5663.14,-2977.92 5586.8,-2843.77 5552.08,-2782.77 5583.52,-2749.68 5543.8,-2691.81 5528.71,-2669.82 5512.72,-2676.42 5495.8,-2655.81 5465.08,-2618.41 5442.68,-2567.42 5429.32,-2531.33"/>
<polygon fill="#c70505" stroke="black" points="5432.49,-2529.78 5425.8,-2521.56 5425.9,-2532.16 5432.49,-2529.78"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge309" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5676.53,-3797.43C5683.85,-3793.58 5691.89,-3790.03 5699.8,-3787.84 5784.6,-3764.41 6425.56,-3810.87 6490.8,-3751.84 6534.01,-3712.74 6520.16,-3679.45 6509.8,-3622.09"/>
<path fill="none" stroke="black" d="M6509.8,-3620.09C6501.24,-3565.01 6469.54,-3563.1 6433.8,-3520.33"/>
<path fill="none" stroke="black" d="M6433.8,-3518.33C6351.56,-3419.96 6243.8,-3429.47 6243.8,-3301.25 6243.8,-3301.25 6243.8,-3301.25 6243.8,-3001.75 6243.8,-2905.75 6305.44,-2862.55 6247.8,-2785.79 6195.3,-2715.89 6124.24,-2782.98 6061.8,-2721.8"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_telegram -->
<g id="edge310" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6091.8,-3620.09C6080.22,-3474.88 6015.8,-3446.93 6015.8,-3301.25 6015.8,-3301.25 6015.8,-3301.25 6015.8,-3189.71 6015.8,-3008.77 6020.52,-2957.94 5964.8,-2785.79 5962.3,-2778.08 5936.5,-2726.36 5929.8,-2721.8"/>
<path fill="none" stroke="black" d="M5929.8,-2719.8C5916.61,-2710.06 5919.78,-2700.36 5905.8,-2691.81 5847.3,-2656.04 5810.66,-2696.93 5755.8,-2655.81 5719.29,-2628.44 5729.76,-2604.9 5704.8,-2566.71 5695.53,-2552.55 5684.67,-2537.51 5674.81,-2524.37"/>
<polygon fill="#c70505" stroke="black" points="5677.33,-2521.9 5668.5,-2516.04 5671.75,-2526.13 5677.33,-2521.9"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_executor -->
<g id="edge311" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6509.8,-3620.09C6480.38,-3430.78 6461.8,-3383.3 6461.8,-3191.71 6461.8,-3191.71 6461.8,-3191.71 6461.8,-3095.73 6461.8,-2957.57 6480.61,-2917.15 6437.8,-2785.79 6422.58,-2739.12 6421.04,-2718.41 6379.8,-2691.81 6274.36,-2623.8 6197.24,-2734.85 6099.8,-2655.81 6081.72,-2641.15 5961.8,-2283.58 5961.8,-2260.31 5961.8,-2260.31 5961.8,-2260.31 5961.8,-2156.55 5961.8,-2020.7 6005.02,-1962.15 5923.8,-1853.27"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository -->
<g id="edge312" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5673.97,-3795.71C5679.29,-3792.54 5685.03,-3789.69 5690.8,-3787.84 5866.18,-3731.62 6335.15,-3765.82 6518.8,-3751.84 6633.36,-3743.12 6671.73,-3772.56 6775.8,-3723.85"/>
<path fill="none" stroke="black" d="M6775.8,-3721.85C6795.87,-3712.45 6784.32,-3642.56 6775.8,-3622.09"/>
<path fill="none" stroke="black" d="M6775.8,-3620.09C6746.31,-3549.26 6663.63,-3610.59 6618.8,-3548.32 6563.72,-3471.83 6575.8,-3075.14 6575.8,-3003.75 6575.8,-3003.75 6575.8,-3003.75 6575.8,-2907.77 6575.8,-2804.78 6574.65,-2752.98 6491.8,-2691.81 6404.32,-2627.22 6331.61,-2727.44 6249.8,-2655.81 6068.83,-2497.37 6271.64,-2321.33 6127.8,-2128.56 6107.81,-2101.78 6084.48,-2117.09 6061.8,-2092.56 5970.22,-1993.49 6044.48,-1898.07 5937.8,-1815.5 5630.9,-1577.94 5434.4,-1820.73 5076.8,-1669.96 5073.54,-1668.59 5070.3,-1666.96 5067.13,-1665.17"/>
<polygon fill="#c70505" stroke="black" points="5068.73,-1662.05 5058.39,-1659.77 5065.05,-1668 5068.73,-1662.05"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge313" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5619.01,-3797.63C5611.69,-3793.77 5603.66,-3790.16 5595.8,-3787.84 5403.35,-3731.08 5344.26,-3781.28 5145.8,-3751.84 4904.21,-3716.01 4250.49,-3636.49 4087.8,-3454.34 3984.71,-3338.92 3988.44,-2617.46 3989.8,-2612.26"/>
<path fill="none" stroke="black" d="M3989.8,-2610.26C4000.8,-2480.64 4019.32,-2446.72 4080.8,-2332.08 4127.23,-2245.48 4194.62,-2254.04 4217.8,-2158.55"/>
<path fill="none" stroke="black" d="M4217.8,-2156.55C4224.8,-2116.27 4199.11,-2100.93 4217.8,-2064.57"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge314" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5632.49,-3790.2C5613.69,-3761.32 5578.94,-3715.58 5535.8,-3693.86 5398.88,-3624.95 5321.58,-3740.98 5192.8,-3657.86 5160.98,-3637.33 5180.43,-3606.57 5149.8,-3584.32 5089.07,-3540.21 5049.24,-3586.81 4984.8,-3548.32 4970.73,-3539.92 4972.54,-3531.76 4960.8,-3520.33"/>
<path fill="none" stroke="black" d="M4960.8,-3518.33C4949.09,-3506.87 4948.25,-3502.06 4936.8,-3490.34 4923.04,-3476.27 4907.04,-3461.61 4892.98,-3449.24"/>
<polygon fill="#c70505" stroke="black" points="4895.23,-3446.56 4885.39,-3442.62 4890.62,-3451.83 4895.23,-3446.56"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_status_web_client -->
<g id="edge315" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5686,-3815.36C5937.05,-3812.13 7353.48,-3792.34 7783.8,-3751.84 7862.65,-3744.42 7892.29,-3765.28 7959.8,-3723.85"/>
<path fill="none" stroke="black" d="M7959.8,-3721.85C7973.02,-3713.74 7978.2,-3598.79 7983.8,-3584.32 8110.44,-3256.93 8370.36,-3229.56 8340.8,-2879.77 8317.88,-2608.6 8188.44,-2567.91 8001.8,-2369.85"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_tree -->
<g id="edge316" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5619.39,-3797.41C5611.99,-3793.51 5603.83,-3789.94 5595.8,-3787.84 5344.36,-3722.41 3513.88,-3795.7 3257.8,-3751.84 3255.77,-3751.5 2979.35,-3659.2 2977.8,-3657.86 2949.87,-3633.91 2957.87,-3616.37 2939.8,-3584.32 2791.11,-3320.68 2583.8,-3306.43 2583.8,-3003.75 2583.8,-3003.75 2583.8,-3003.75 2583.8,-2907.77 2583.8,-2772.16 2606.65,-2737.02 2659.8,-2612.26"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_github -->
<g id="edge317" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5675.12,-3796.34C5715.86,-3764.77 5787.8,-3698.24 5787.8,-3622.09 5787.8,-3622.09 5787.8,-3622.09 5787.8,-3518.33 5787.8,-3393.43 5766.74,-3352.49 5687.8,-3255.71 5559.18,-3098.01 4901.35,-2920.82 4943.8,-2721.8"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge318" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5639.78,-3788.24C5624.93,-3736.63 5594.86,-3629.96 5597.8,-3622.09"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge319" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5618.5,-3798.19C5611.27,-3794.36 5603.4,-3790.63 5595.8,-3787.84 5405.55,-3718.24 5348.71,-3732.19 5149.8,-3693.86 5058.53,-3676.28 5033.82,-3680.97 4943.8,-3657.86 4926.88,-3653.52 4360.23,-3467.54 4348.8,-3454.34 4251.42,-3341.93 4242.47,-2914.03 4317.8,-2785.79 4342.65,-2743.47 4397.18,-2769.72 4407.8,-2721.8"/>
<path fill="none" stroke="black" d="M4407.8,-2719.8C4411.79,-2699.49 4410.12,-2676.74 4406.92,-2657.41"/>
<polygon fill="#c70505" stroke="black" points="4410.33,-2656.56 4405.08,-2647.36 4403.44,-2657.82 4410.33,-2656.56"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge320" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4960.8,-3518.33C4936.64,-3494.68 4783.91,-2971.17 4778.8,-2937.76 4770.57,-2884.02 4777.79,-2869.21 4787.8,-2815.78"/>
<path fill="none" stroke="black" d="M4787.8,-2813.78C4788.67,-2772.91 4784.31,-2762.53 4787.8,-2721.8"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_aur_package -->
<g id="edge321" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5619.09,-3797.34C5611.77,-3793.49 5603.72,-3789.96 5595.8,-3787.84 5459.74,-3751.49 4469.33,-3761.08 4328.8,-3751.84 3923.08,-3725.17 3822.4,-3707.1 3418.8,-3657.86 3351.87,-3649.7 3275.26,-3638.68 3223.83,-3631.04"/>
<polygon fill="#c70505" stroke="black" points="3224.3,-3627.57 3213.89,-3629.56 3223.27,-3634.49 3224.3,-3627.57"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_build_status -->
<g id="edge322" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5686.01,-3814.84C5859.05,-3810.17 6570.27,-3789.02 6789.8,-3751.84 7113.03,-3697.1 7213.59,-3709.98 7498.8,-3548.32 7664.47,-3454.42 7639.27,-3336.34 7811.8,-3255.71 7930.26,-3200.34 7996.22,-3294.04 8103.8,-3219.71 8198.95,-3153.96 8242.69,-3014.78 8258.89,-2947.6"/>
<polygon fill="#c70505" stroke="black" points="8262.3,-2948.38 8261.17,-2937.85 8255.49,-2946.79 8262.3,-2948.38"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_counters -->
<g id="edge323" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5686.07,-3814.98C5876.01,-3810.59 6718.54,-3789.29 6977.8,-3751.84 7152.55,-3726.6 7199.47,-3722.45 7363.8,-3657.86 7734.94,-3511.98 7846.2,-3481.75 8146.8,-3219.71 8258.5,-3122.32 8286.88,-3081.02 8324.8,-2937.76 8331.39,-2912.84 8332.95,-2904.22 8324.8,-2879.77 8320.82,-2867.83 8313.64,-2856.33 8306.03,-2846.45"/>
<polygon fill="#c70505" stroke="black" points="8308.62,-2844.09 8299.59,-2838.55 8303.2,-2848.51 8308.62,-2844.09"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package -->
<g id="edge324" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5617.11,-3799.27C5586.3,-3782.48 5542.46,-3758.12 5535.8,-3751.84 5513.35,-3730.73 5524.12,-3709.87 5497.8,-3693.86 5363.42,-3612.16 5295.91,-3704.72 5145.8,-3657.86 4979.13,-3605.84 4916.82,-3592.29 4809.8,-3454.34 4778.03,-3413.39 4778.82,-3395.84 4769.8,-3344.8 4762.9,-3305.81 4762.03,-3294.53 4769.8,-3255.71 4773.2,-3238.71 4781.4,-3236.7 4784.8,-3219.71 4789.85,-3194.44 4795.64,-3185.1 4784.8,-3161.72 4757.61,-3103.08 4723.71,-3108.82 4673.8,-3067.74 4638.64,-3038.81 4557.82,-3031.66 4593.8,-3003.75"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_description -->
<g id="edge325" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6091.8,-3620.09C6089.32,-3589.1 6113.78,-3564.61 6139.47,-3547.64"/>
<polygon fill="#c70505" stroke="black" points="6141.58,-3550.46 6148.19,-3542.18 6137.86,-3544.52 6141.58,-3550.46"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_source -->
<g id="edge326" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6775.8,-3721.85C6836.77,-3693.31 6872.36,-3687.12 6889.8,-3622.09"/>
<path fill="none" stroke="black" d="M6889.8,-3620.09C6897.27,-3592.22 6893.58,-3519.17 6894.8,-3490.34 6896.85,-3441.65 6886.71,-3427.74 6899.8,-3380.8 6914.15,-3329.33 6992.82,-3197.07 7031.84,-3133.24"/>
<polygon fill="#c70505" stroke="black" points="7034.83,-3135.06 7037.07,-3124.7 7028.86,-3131.4 7034.83,-3135.06"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_remote_source -->
<g id="edge327" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6775.8,-3620.09C6712.5,-3453.68 6785.91,-3397.73 6788.8,-3219.71 6789.89,-3152.17 6796.06,-3134.89 6788.8,-3067.74 6787.86,-3059.13 6786.25,-3049.97 6784.44,-3041.36"/>
<polygon fill="#c70505" stroke="black" points="6787.84,-3040.56 6782.25,-3031.57 6781.01,-3042.09 6787.84,-3040.56"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_web_views_index -->
<g id="edge328" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7959.8,-3721.85C8352.23,-3499.08 8447.32,-3434.16 8861.8,-3255.71 9138.97,-3136.36 9258.95,-3209.52 9502.8,-3031.74 9699.1,-2888.62 9549.8,-2730.1 9549.8,-2487.17 9549.8,-2487.17 9549.8,-2487.17 9549.8,-2258.31 9549.8,-1854.87 9632.98,-1759.63 9656.8,-1356.9 9661.6,-1275.67 9659.63,-1255.14 9656.8,-1173.82 9655.68,-1141.86 9652.82,-1134.01 9651.8,-1102.05"/>
</g>
<!-- ahriman_models -->
<g id="node103" class="node">
<title>ahriman_models</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="5540.8" cy="-3982.82" rx="50.75" ry="18"/>
<text text-anchor="middle" x="5540.8" y="-3980.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.models</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_ahriman -->
<g id="edge329" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.33,-3981.15C6057.88,-3974.97 9598.41,-3927.8 9650.8,-3917.83 9918.38,-3866.91 9978.15,-3807.43 10205.8,-3657.86 10380.5,-3543.08 10422.52,-3505 10556.8,-3344.8 10667.87,-3212.28 10700.42,-3180.96 10787.8,-3031.74 10835.31,-2950.6 11135.8,-2354.34 11135.8,-2260.31 11135.8,-2260.31 11135.8,-2260.31 11135.8,-2156.55 11135.8,-1969.99 11211.8,-1930.29 11211.8,-1743.73 11211.8,-1743.73 11211.8,-1743.73 11211.8,-755.87 11211.8,-662.85 11224.93,-638.67 11211.8,-546.57"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application -->
<g id="edge330" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2469.8,-3518.33C2332.11,-3239.61 2326.28,-3151.87 2284.8,-2843.77 2281.36,-2818.23 2280.35,-2811.17 2284.8,-2785.79 2295.4,-2725.28 2320.63,-2716.22 2331.8,-2655.81 2336.12,-2632.4 2334.52,-2465.39 2335.8,-2441.62 2352.49,-2130.67 2397.8,-2055.12 2397.8,-1743.73 2397.8,-1743.73 2397.8,-1743.73 2397.8,-1632.19 2397.8,-1493.38 2448.22,-1243.93 2670.8,-1064.28 2735.03,-1012.43 2832.31,-997.58 2893.66,-993.59"/>
<polygon fill="#f91010" stroke="black" points="2894.15,-997.07 2903.93,-993 2893.75,-990.08 2894.15,-997.07"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge331" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2925.8,-3620.09C2821.93,-3494.37 2883.7,-3394.82 2968.8,-3255.71 3022.95,-3167.17 3113.93,-3217.28 3162.8,-3125.72 3223.97,-3011.09 3039.8,-2092.74 3039.8,-1962.8 3039.8,-1962.8 3039.8,-1962.8 3039.8,-1851.27 3039.8,-1664.33 3040.71,-1617.6 3039.8,-1430.67"/>
<path fill="none" stroke="black" d="M3039.8,-1428.67C3035.17,-1381.09 3034.96,-1368.68 3039.8,-1321.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge332" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2469.8,-3620.09C2468.79,-3564.36 2530.31,-3573.88 2545.8,-3520.33"/>
<path fill="none" stroke="black" d="M2545.8,-3518.33C2546.2,-3516.94 2409.16,-3127.12 2408.8,-3125.72 2398.22,-3084.69 2397.82,-3073.81 2392.8,-3031.74 2379.82,-2923.05 2371.71,-2894.96 2379.8,-2785.79 2382.92,-2743.68 2382.96,-2732.63 2393.8,-2691.81 2398.2,-2675.22 2404.63,-2672.68 2407.8,-2655.81 2415.1,-2616.89 2427.18,-2601.24 2407.8,-2566.71 2392.76,-2539.93 2363.83,-2557.5 2348.8,-2530.71 2329.41,-2496.18 2346.34,-2481.14 2348.8,-2441.62 2368.17,-2129.64 2435.8,-2056.3 2435.8,-1743.73 2435.8,-1743.73 2435.8,-1743.73 2435.8,-1632.19 2435.8,-1568.27 2462.37,-1555.63 2497.8,-1502.43 2557.69,-1412.49 2602.4,-1412.69 2659.8,-1321.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge333" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9560.8,-3898.83C9597.09,-3888.75 9688.93,-3864.22 9721.8,-3845.83 9778.2,-3814.25 9784.55,-3794.87 9832.8,-3751.84 9920.04,-3674.04 10533.74,-3128.18 10599.8,-3031.74 10625.26,-2994.57 10625.43,-2981.08 10637.8,-2937.76 10699.2,-2722.55 10658.62,-2655.71 10723.8,-2441.62 10733.97,-2408.21 10755.94,-2404.77 10755.8,-2369.85"/>
<path fill="none" stroke="black" d="M10755.8,-2367.85C10750.17,-2179.16 10632.63,-1977.27 10578.12,-1893.38"/>
<polygon fill="#f91010" stroke="black" points="10580.99,-1891.37 10572.58,-1884.92 10575.13,-1895.2 10580.99,-1891.37"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge334" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5514.07,-3967.47C5502.63,-3962.08 5488.9,-3956.6 5475.8,-3953.83 5280.65,-3912.57 2085.22,-3921.59 1885.8,-3917.83 1749.32,-3915.25 1387.21,-3973.71 1271.8,-3900.83"/>
<path fill="none" stroke="black" d="M1271.8,-3898.83C1230.06,-3872.47 1227.76,-3855.46 1195.8,-3817.84"/>
<path fill="none" stroke="black" d="M1195.8,-3815.84C1185.19,-3803.35 1184.39,-3798.32 1171.8,-3787.84 1107.8,-3734.61 1088.55,-3720.82 1009.8,-3693.86 896.51,-3655.08 856.74,-3694.66 742.8,-3657.86 644.49,-3626.11 627.33,-3599.85 537.8,-3548.32 408.82,-3474.09 311.8,-3450.07 311.8,-3301.25 311.8,-3301.25 311.8,-3301.25 311.8,-3189.71 311.8,-3134.46 301.79,-3121.19 287.8,-3067.74 269.07,-2996.23 235.8,-2983.68 235.8,-2909.77 235.8,-2909.77 235.8,-2909.77 235.8,-2813.78 235.8,-2758.53 235.14,-2741.89 211.8,-2691.81 203.12,-2673.19 191.79,-2674.28 182.8,-2655.81 157.82,-2604.49 165.62,-2586.55 153.8,-2530.71 121.54,-2378.34 102.53,-2341.59 87.8,-2186.54 59.77,-1891.55 216.8,-1828.74 216.8,-1532.43 216.8,-1532.43 216.8,-1532.43 216.8,-1428.67 216.8,-1377.34 365.17,-1043.7 368.8,-992.51"/>
<path fill="none" stroke="black" d="M368.8,-990.51C369.77,-887.09 346.47,-860 362.8,-757.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge335" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5514.07,-3967.47C5502.63,-3962.09 5488.9,-3956.6 5475.8,-3953.83 5108.8,-3876.12 2470.2,-3977.19 2099.8,-3917.83 1995.29,-3901.08 1970.66,-3886.14 1872.8,-3845.83 1708.81,-3778.27 1666.21,-3759.4 1520.8,-3657.86 1272.45,-3484.45 702.25,-2939.76 596.8,-2655.81 514.3,-2433.66 794.63,-2341.68 894.8,-2092.56 929.25,-2006.86 919.76,-1979.81 936.8,-1889.03 984.01,-1637.44 971.97,-1569.78 1032.8,-1321.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_report -->
<g id="edge336" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1271.8,-3721.85C1055.15,-3359.4 835.24,-3394.31 618.8,-3031.74 529.94,-2882.89 529.39,-2828.55 514.8,-2655.81 506.74,-2560.54 515.39,-2535.24 534.8,-2441.62 582.89,-2209.58 599.78,-2152.33 666.8,-1925.03 751.86,-1636.54 779.53,-1566.21 881.8,-1283.36 928.95,-1152.94 937.26,-1118.69 994.8,-992.51"/>
<path fill="none" stroke="black" d="M994.8,-990.51C1009.59,-936.31 1113.94,-810.32 1093.8,-757.87"/>
<path fill="none" stroke="black" d="M1093.8,-755.87C1085.32,-737.3 1047.51,-704.49 1016.95,-679.97"/>
<polygon fill="#f91010" stroke="black" points="1018.96,-677.1 1008.95,-673.62 1014.6,-682.58 1018.96,-677.1"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_search -->
<g id="edge337" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5513.73,-3967.43C5502.35,-3962.11 5488.75,-3956.68 5475.8,-3953.83 5057.25,-3861.52 3960.2,-4017.57 3547.8,-3900.83"/>
<path fill="none" stroke="black" d="M3547.8,-3898.83C2997.58,-3743.07 3533.8,-3184.1 3533.8,-2612.26 3533.8,-2612.26 3533.8,-2612.26 3533.8,-2485.17 3533.8,-2291.49 3647.8,-2258.24 3647.8,-2064.57 3647.8,-2064.57 3647.8,-2064.57 3647.8,-1741.73 3647.8,-1648.7 3639.42,-1625.07 3647.8,-1532.43"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge338" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.48,-3981.13C6053.76,-3974.84 9523.37,-3927.35 9574.8,-3917.83 9666.46,-3900.85 9688.83,-3888.33 9771.8,-3845.83 10124.64,-3665.08 10239.11,-3634.45 10509.8,-3344.8 10586.79,-3262.41 10588.35,-3227.07 10637.8,-3125.72 10831.28,-2729.14 10906.51,-2624.58 10959.8,-2186.54 10967.95,-2119.49 10961.8,-2102.08 10959.8,-2034.57 10956.91,-1937.08 10954.6,-1912.72 10946.8,-1815.5 10945.94,-1804.79 10905.3,-1441.11 10907.8,-1430.67"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status -->
<g id="edge339" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2469.8,-3620.09C2469,-3575.76 2488.3,-3560.62 2469.8,-3520.33"/>
<path fill="none" stroke="black" d="M2469.8,-3518.33C2463.99,-3505.69 2464.96,-3500.81 2455.8,-3490.34 2437.04,-3468.91 2424.72,-3472.52 2402.8,-3454.34 2349.93,-3410.5 2322.45,-3407.22 2293.8,-3344.8 2189.9,-3118.45 2214.33,-3031.53 2254.8,-2785.79 2270.93,-2687.8 2330.54,-2660.82 2298.8,-2566.71 2211.28,-2307.24 1941.8,-2338.4 1941.8,-2064.57 1941.8,-2064.57 1941.8,-2064.57 1941.8,-1851.27 1941.8,-1498.9 1962.88,-1408.59 2037.8,-1064.28 2056.43,-978.64 2076.88,-961.19 2093.8,-875.19"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge340" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1195.8,-3815.84C1161.11,-3772.83 1211.68,-3732.09 1171.8,-3693.86 1095.52,-3620.74 1036.09,-3693.99 936.8,-3657.86 793.37,-3605.67 349.8,-3453.88 349.8,-3301.25 349.8,-3301.25 349.8,-3301.25 349.8,-2813.78 349.8,-2667.64 311.8,-2633.31 311.8,-2487.17 311.8,-2487.17 311.8,-2487.17 311.8,-2367.85 311.8,-2289.45 349.49,-2270.12 411.8,-2222.54 450.34,-2193.11 484.19,-2224.16 514.8,-2186.54 609.08,-2070.64 558.8,-2002.67 558.8,-1853.27 558.8,-1853.27 558.8,-1853.27 558.8,-1100.05 558.8,-1034.59 559.04,-1015.73 582.8,-954.74 598.12,-915.38 627.49,-916.79 634.8,-875.19"/>
<path fill="none" stroke="black" d="M634.8,-873.19C646.46,-794.38 576.4,-721.58 527.49,-681.24"/>
<polygon fill="#f91010" stroke="black" points="529.52,-678.37 519.54,-674.8 525.11,-683.81 529.52,-678.37"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_users -->
<g id="edge341" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1271.8,-3898.83C1206.77,-3856.18 1314.12,-3789.09 1271.8,-3723.85"/>
<path fill="none" stroke="black" d="M1271.8,-3721.85C1256.3,-3695.9 1238.34,-3703.84 1209.8,-3693.86 1148.33,-3672.38 1127.13,-3684.67 1067.8,-3657.86 989.26,-3622.38 962.48,-3614.93 907.8,-3548.32 770.9,-3381.58 569.12,-2867.15 525.8,-2655.81 517.84,-2617.02 514,-2604.51 525.8,-2566.71 596.33,-2340.7 686.7,-2317.94 828.8,-2128.56 850.79,-2099.24 871.17,-2099.93 880.8,-2064.57"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_lock -->
<g id="edge342" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9560.8,-3898.83C9809.72,-3825.05 10235.08,-3267.5 10343.8,-3031.74 10350.3,-3017.63 10474.22,-2502.51 10471.8,-2487.17"/>
<path fill="none" stroke="black" d="M10471.8,-2485.17C10458.76,-2412.93 10446.46,-2395.68 10409.8,-2332.08 10390.12,-2297.95 10371.76,-2297.14 10357.8,-2260.31"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge343" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7313.8,-3620.09C7303.34,-3524.89 7328.3,-3414.52 7346.01,-3351.79"/>
<polygon fill="#f91010" stroke="black" points="7349.38,-3352.71 7348.78,-3342.14 7342.66,-3350.78 7349.38,-3352.71"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge344" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7313.8,-3815.84C7278.97,-3737.08 7332.45,-3706.16 7313.8,-3622.09"/>
<path fill="none" stroke="black" d="M7313.8,-3620.09C7306.4,-3581.4 7273.94,-3585.79 7261.8,-3548.32 7240.88,-3483.79 7248.08,-3404.73 7256.66,-3353.7"/>
<polygon fill="#f91010" stroke="black" points="7260.15,-3354.02 7258.44,-3343.56 7253.26,-3352.81 7260.15,-3354.02"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge345" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3180.8,-3416.57C3180.95,-3396.55 3180.99,-3374.56 3180.97,-3355.21"/>
<polygon fill="#f91010" stroke="black" points="3184.47,-3355.06 3180.96,-3345.06 3177.47,-3355.07 3184.47,-3355.06"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge346" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3068.8,-3721.85C3030.49,-3583.36 3179.66,-3562.26 3180.8,-3418.57"/>
<path fill="none" stroke="black" d="M3180.8,-3416.57C3180.45,-3411.03 3137.21,-3368.14 3104.32,-3336.27"/>
<polygon fill="#f91010" stroke="black" points="3106.69,-3333.69 3097.06,-3329.25 3101.82,-3338.72 3106.69,-3333.69"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge347" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3547.8,-3898.83C3523.43,-3892.29 3530.64,-3812.13 3523.8,-3787.84 3511.86,-3745.51 3494.96,-3698.26 3482.48,-3665.07"/>
<polygon fill="#f91010" stroke="black" points="3485.73,-3663.78 3478.92,-3655.67 3479.19,-3666.26 3485.73,-3663.78"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_auth -->
<g id="edge348" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9023.8,-3898.83C9036.77,-3897.2 9035.68,-3886.73 9047.8,-3881.83 9145.76,-3842.23 9188.15,-3892.81 9282.8,-3845.83 9385.58,-3794.8 9388.5,-3747.77 9459.8,-3657.86 9592.8,-3490.13 9921.84,-3051.19 9974.8,-2843.77 10003.22,-2732.43 10069.57,-2669.53 9943.8,-2441.62 9918.4,-2395.6 9832.81,-2419.59 9849.8,-2369.85"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge349" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.38,-3981.3C6011.95,-3976.91 8915.12,-3945.64 8999.8,-3917.83 9012.21,-3913.75 9010.83,-3902.47 9023.8,-3900.83"/>
<path fill="none" stroke="black" d="M9023.8,-3898.83C9036.76,-3897.18 9035.79,-3887 9047.8,-3881.83 9122.72,-3849.54 9155.76,-3884.13 9227.8,-3845.83 9332.68,-3790.06 9341.23,-3748.68 9417.8,-3657.86 9471.87,-3593.72 9819.49,-3113.14 9839.8,-3031.74 9920.6,-2707.8 9734.46,-2626.67 9687.8,-2296.08 9673.43,-2194.31 9680.92,-2073.33 9686.86,-2008.79"/>
<polygon fill="#f91010" stroke="black" points="9690.37,-2008.83 9687.83,-1998.54 9683.4,-2008.17 9690.37,-2008.83"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge350" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9023.8,-3898.83C9036.75,-3897.09 9035.61,-3886.56 9047.8,-3881.83 9168.47,-3835.01 9221.13,-3903.93 9336.8,-3845.83 9436.13,-3795.93 9433.72,-3745.74 9501.8,-3657.86 9761.25,-3322.92 9870.99,-3248.03 9997.8,-2843.77 10080.85,-2579.02 10094.23,-2497.87 10059.8,-2222.54 10050.13,-2145.28 10024.9,-2058.04 10008.58,-2006.88"/>
<polygon fill="#f91010" stroke="black" points="10011.84,-2005.59 10005.45,-1997.15 10005.18,-2007.74 10011.84,-2005.59"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge351" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3064.8,-3815.84C3042.46,-3781.55 3079.43,-3763.37 3068.8,-3723.85"/>
<path fill="none" stroke="black" d="M3068.8,-3721.85C3065.18,-3708.42 3065.27,-3703.02 3054.8,-3693.86 3017.66,-3661.38 2988.92,-3687.92 2949.8,-3657.86 2934.61,-3646.2 2939.49,-3635.47 2925.8,-3622.09"/>
<path fill="none" stroke="black" d="M2925.8,-3620.09C2527.66,-3231.01 2657.71,-2892.35 2849.8,-2369.85"/>
<path fill="none" stroke="black" d="M2849.8,-2367.85C2856.07,-2346.67 2864.26,-2323.6 2871.5,-2304.28"/>
<polygon fill="#f91010" stroke="black" points="2874.81,-2305.42 2875.09,-2294.83 2868.27,-2302.94 2874.81,-2305.42"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge352" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.43,-3982.02C5888.81,-3982.64 7392.41,-3977.9 7313.8,-3817.84"/>
<path fill="none" stroke="black" d="M7313.8,-3815.84C7328.9,-3640.12 7059.67,-3840.95 6927.8,-3723.85"/>
<path fill="none" stroke="black" d="M6927.8,-3721.85C6871.28,-3671.67 6888.52,-3629.31 6827.8,-3584.32 6788.5,-3555.2 6761.88,-3579.02 6723.8,-3548.32 6641.33,-3481.85 6637.46,-3443.8 6599.8,-3344.8 6545.02,-3200.81 6537.8,-3157.81 6537.8,-3003.75 6537.8,-3003.75 6537.8,-3003.75 6537.8,-2907.77 6537.8,-2852.52 6533.96,-2837.23 6513.8,-2785.79 6495.88,-2740.09 6497.25,-2718.09 6455.8,-2691.81 6395.36,-2653.5 6186.08,-2706.72 6135.8,-2655.81 6079.34,-2598.65 6103.8,-2376.32 6099.8,-2296.08 6098.17,-2263.44 6096.28,-2255.03 6099.8,-2222.54 6102.93,-2193.59 6124.51,-2185.62 6113.8,-2158.55"/>
<path fill="none" stroke="black" d="M6113.8,-2156.55C6105.67,-2142.32 6103.18,-2138.01 6089.8,-2128.56 6025.21,-2082.94 5961.14,-2134.26 5923.8,-2064.57"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_configuration -->
<g id="edge353" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5548.21,-3964.86C5555.81,-3948.1 5568.37,-3921.99 5581.8,-3900.83"/>
<path fill="none" stroke="black" d="M5581.8,-3898.83C5601.08,-3868.43 5571.26,-3852.25 5581.8,-3817.84"/>
<path fill="none" stroke="black" d="M5581.8,-3815.84C5594.52,-3774.26 5538.48,-3782.65 5507.8,-3751.84 5496.23,-3740.23 5492.89,-3737.49 5483.8,-3723.85"/>
<path fill="none" stroke="black" d="M5483.8,-3721.85C5445.68,-3664.72 5367.26,-3640.14 5312.41,-3629.67"/>
<polygon fill="#f91010" stroke="black" points="5312.93,-3626.21 5302.46,-3627.88 5311.68,-3633.09 5312.93,-3626.21"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data -->
<g id="edge354" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7769.8,-3815.84C7810.33,-3729.89 7910.79,-3822.98 7973.8,-3751.84 8012.68,-3707.94 8012.61,-3678.84 7997.8,-3622.09"/>
<path fill="none" stroke="black" d="M7997.8,-3620.09C7971.5,-3497.46 7667.95,-3329.86 7566.8,-3255.71 7542.63,-3237.99 7525.9,-3244.98 7509.8,-3219.71 7390.2,-3031.98 7464.5,-2944.22 7455.8,-2721.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge355" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7769.8,-3721.85C7758.57,-3656.47 7741.61,-3643.58 7711.8,-3584.32 7635.56,-3432.82 7629.63,-3383.21 7517.8,-3255.71 7500.68,-3236.19 7487.41,-3240.44 7471.8,-3219.71 7444.69,-3183.71 7449.85,-3167.82 7433.8,-3125.72 7376.59,-2975.75 7373.04,-2934.16 7311.8,-2785.79 7299.81,-2756.76 7287.93,-2752.61 7281.8,-2721.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge356" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5512.23,-3967.74C5501.08,-3962.72 5488.06,-3957.43 5475.8,-3953.83 5194.81,-3871.31 5110,-3916.47 4825.8,-3845.83 4822.63,-3845.04 3937.7,-3550.97 3935.8,-3548.32 3675.7,-3187.13 3932.82,-2875.41 4291.8,-2612.26"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_patches -->
<g id="edge357" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_data_patches</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2469.8,-3721.85C2440.25,-3690.01 2549.5,-3590.53 2559.8,-3548.32 2565.9,-3523.29 2563.37,-3515.86 2559.8,-3490.34 2522.55,-3224.56 2393.8,-3178.14 2393.8,-2909.77 2393.8,-2909.77 2393.8,-2909.77 2393.8,-2813.78 2393.8,-2758.53 2394.88,-2742.08 2417.8,-2691.81 2426.2,-2673.36 2434.65,-2672.74 2445.8,-2655.81 2457.95,-2637.35 2466.64,-2634.13 2469.8,-2612.26"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_migrations -->
<g id="edge358" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7997.8,-3620.09C7970.11,-3393.42 7797.02,-3413.23 7675.8,-3219.71 7581.64,-3069.38 7581.95,-3016.55 7541.8,-2843.77 7529.44,-2790.62 7540.65,-2774.83 7527.8,-2721.8"/>
<path fill="none" stroke="black" d="M7527.8,-2719.8C7515.25,-2687.37 7497.01,-2687.54 7482.8,-2655.81 7442.84,-2566.59 7472.98,-2530.73 7432.8,-2441.62 7427.49,-2429.85 7420.14,-2418.04 7412.67,-2407.49"/>
<polygon fill="#f91010" stroke="black" points="7415.42,-2405.33 7406.68,-2399.33 7409.77,-2409.47 7415.42,-2405.33"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge359" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7769.8,-3898.83C7780.66,-3891.56 7782.84,-3888.96 7793.8,-3881.83 7888.34,-3820.29 7947.36,-3844.43 8011.8,-3751.84 8045.3,-3703.71 8035.8,-3680.74 8035.8,-3622.09 8035.8,-3622.09 8035.8,-3622.09 8035.8,-3518.33 8035.8,-3362 7931.55,-3342.91 7801.8,-3255.71 7770.11,-3234.41 7749.66,-3247.79 7723.8,-3219.71 7566.51,-3048.94 7659.78,-2934.09 7565.8,-2721.8"/>
<path fill="none" stroke="black" d="M7565.8,-2719.8C7558.53,-2703.16 7554.9,-2683.77 7553.19,-2666.08"/>
<polygon fill="#f91010" stroke="black" points="7556.66,-2665.59 7552.39,-2655.89 7549.68,-2666.14 7556.66,-2665.59"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge360" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7313.8,-3815.84C7299.41,-3783.72 7427.8,-3555.52 7427.8,-3520.33 7427.8,-3520.33 7427.8,-3520.33 7427.8,-3416.57 7427.8,-3344.58 7445.62,-3317.57 7408.8,-3255.71 7394.61,-3231.86 7379.66,-3236.78 7357.8,-3219.71 7099.44,-3017.98 6807.8,-2754.48 6697.89,-2653.81"/>
<polygon fill="#f91010" stroke="black" points="6700.03,-2651.03 6690.29,-2646.85 6695.3,-2656.19 6700.03,-2651.03"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge361" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.33,-3981.48C5914.07,-3979.11 7676.24,-3963.38 7769.8,-3900.83"/>
<path fill="none" stroke="black" d="M7769.8,-3898.83C7799.72,-3878.82 7754.44,-3850.39 7769.8,-3817.84"/>
<path fill="none" stroke="black" d="M7769.8,-3815.84C7787.23,-3778.86 7777.06,-3764.08 7769.8,-3723.85"/>
<path fill="none" stroke="black" d="M7769.8,-3721.85C7767.21,-3707.53 7761.07,-3705.84 7752.8,-3693.86 7676.06,-3582.73 7644.78,-3563.89 7565.8,-3454.34 7503.8,-3368.36 7502.04,-3336.81 7433.8,-3255.71 7418.82,-3237.9 7410.4,-3237.81 7395.8,-3219.71 7334.45,-3143.66 7324.19,-3119.77 7281.8,-3031.74 7218.11,-2899.5 7284.55,-2810.74 7167.8,-2721.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge362" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5514.07,-3967.47C5502.63,-3962.09 5488.9,-3956.6 5475.8,-3953.83 5295.29,-3915.59 2330.36,-3974.6 2154.8,-3917.83 2128.4,-3909.29 2128.61,-3894.25 2103.8,-3881.83 2057.42,-3858.61 2039.43,-3868.52 1992.8,-3845.83 1633.99,-3671.25 1535.79,-3620.99 1247.8,-3344.8 987.83,-3095.49 1030.33,-2938.41 767.8,-2691.81 746.23,-2671.55 736.22,-2672.51 711.8,-2655.81 705.73,-2651.66 699.39,-2647.2 693.2,-2642.77"/>
<polygon fill="#f91010" stroke="black" points="695.04,-2639.79 684.88,-2636.78 690.95,-2645.47 695.04,-2639.79"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge363" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3055.8,-3898.83C3020.04,-3893.09 3084.57,-3848.18 3064.8,-3817.84"/>
<path fill="none" stroke="black" d="M3064.8,-3815.84C2991.76,-3703.73 2556.71,-3825.57 2469.8,-3723.85"/>
<path fill="none" stroke="black" d="M2469.8,-3721.85C2312.55,-3537.83 2215.79,-3542.97 2076.8,-3344.8 1960.09,-3178.4 1935.8,-3113.02 1935.8,-2909.77 1935.8,-2909.77 1935.8,-2909.77 1935.8,-2813.78 1935.8,-2743.78 1993.62,-2680.8 2035.2,-2644.55"/>
<polygon fill="#f91010" stroke="black" points="2037.69,-2647.03 2043.02,-2637.87 2033.14,-2641.7 2037.69,-2647.03"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge364" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5514.07,-3967.48C5502.62,-3962.1 5488.9,-3956.61 5475.8,-3953.83 5147.54,-3884.11 2788.31,-3963.11 2455.8,-3917.83 2331.89,-3900.95 2294.93,-3903.16 2183.8,-3845.83 1676.09,-3583.91 1432.05,-2847.65 1376.38,-2657.52"/>
<polygon fill="#f91010" stroke="black" points="1379.73,-2656.47 1373.58,-2647.85 1373,-2658.43 1379.73,-2656.47"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge365" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5514.07,-3967.5C5502.62,-3962.12 5488.89,-3956.63 5475.8,-3953.83 5345.35,-3925.91 3199.05,-3966.37 3074.8,-3917.83 3064.24,-3913.7 3066.98,-3902.62 3055.8,-3900.83"/>
<path fill="none" stroke="black" d="M3055.8,-3898.83C2784.71,-3855.33 2705.21,-3866.62 2455.8,-3751.84 2268.48,-3665.65 2240,-3605.54 2099.8,-3454.34 2057.9,-3409.15 2045.05,-3398.49 2014.8,-3344.8 1945.64,-3222.08 1835.23,-2848.01 1897.8,-2721.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge366" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5514.07,-3967.48C5502.63,-3962.09 5488.9,-3956.6 5475.8,-3953.83 5126.32,-3879.73 2610.79,-3989.42 2260.8,-3917.83 1953.34,-3854.94 1271.8,-3223.59 1271.8,-2909.77 1271.8,-2909.77 1271.8,-2909.77 1271.8,-2813.78 1271.8,-2758.42 1255.09,-2696.59 1241.81,-2656.2"/>
<polygon fill="#f91010" stroke="black" points="1245.11,-2655.03 1238.61,-2646.67 1238.48,-2657.26 1245.11,-2655.03"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge367" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2469.8,-3721.85C2440.99,-3688.14 2472.54,-3666.35 2469.8,-3622.09"/>
<path fill="none" stroke="black" d="M2469.8,-3620.09C2464.59,-3536.07 2399.97,-3539.73 2331.8,-3490.34 2304.74,-3470.74 2291.46,-3475.73 2265.8,-3454.34 2123.8,-3336.01 2051.8,-3282.57 2051.8,-3097.73 2051.8,-3097.73 2051.8,-3097.73 2051.8,-2813.78 2051.8,-2771.9 2139.56,-2691.75 2193.86,-2646.16"/>
<polygon fill="#f91010" stroke="black" points="2196.18,-2648.79 2201.62,-2639.7 2191.7,-2643.41 2196.18,-2648.79"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge368" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5514.07,-3967.5C5502.62,-3962.12 5488.89,-3956.63 5475.8,-3953.83 5343.55,-3925.54 3177,-3920.84 3041.8,-3917.83 2787.52,-3912.17 2720.01,-3946.43 2469.8,-3900.83"/>
<path fill="none" stroke="black" d="M2469.8,-3898.83C2459.7,-3896.99 2301.98,-3850.41 2292.8,-3845.83 2166.83,-3782.93 2135.92,-3758.83 2037.8,-3657.86 1735.78,-3347.07 1595.07,-2815.23 1558.66,-2657.58"/>
<polygon fill="#f91010" stroke="black" points="1562.05,-2656.71 1556.41,-2647.74 1555.23,-2658.27 1562.05,-2656.71"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge369" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2469.8,-3898.83C2382.5,-3883.34 2219.21,-3715.45 2151.8,-3657.86 2098.37,-3612.22 2078.17,-3605.83 2037.8,-3548.32 2008.91,-3507.19 1660.2,-2771.14 1669.8,-2721.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_console -->
<g id="edge370" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5483.8,-3721.85C5448.5,-3668.94 5578.36,-3711.96 5611.8,-3657.86 5676.54,-3553.12 5643.99,-3499.65 5611.8,-3380.8 5569.47,-3224.55 5306.26,-2900.75 5247.8,-2749.79 5197,-2618.63 5230.4,-2571.24 5175.8,-2441.62 5152.98,-2387.47 5113.98,-2331.78 5087.1,-2296.67"/>
<polygon fill="#f91010" stroke="black" points="5089.77,-2294.4 5080.88,-2288.63 5084.23,-2298.68 5089.77,-2294.4"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_email -->
<g id="edge371" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5673.8,-3299.25C5622.84,-3196.38 5479.78,-2929.95 5491.8,-2815.78"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_html -->
<g id="edge372" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5581.8,-3815.84C5583.78,-3760.53 5578.44,-3741.38 5606.8,-3693.86 5619.57,-3672.46 5635.64,-3678.38 5649.8,-3657.86 5679.06,-3615.44 5679.23,-3599.14 5687.8,-3548.32 5700.17,-3474.9 5694.27,-3454.97 5687.8,-3380.8 5684.67,-3345.04 5692.1,-3332.13 5673.8,-3301.25"/>
<path fill="none" stroke="black" d="M5673.8,-3299.25C5653.16,-3256.59 5632.61,-3256.54 5602.8,-3219.71 5484.97,-3074.14 5474.69,-3022.8 5353.8,-2879.77 5339.39,-2862.73 5327.19,-2864.45 5318.8,-2843.77 5276.26,-2739.01 5295.43,-2602.24 5309.91,-2532.44"/>
<polygon fill="#f91010" stroke="black" points="5313.43,-2532.75 5312.1,-2522.23 5306.58,-2531.28 5313.43,-2532.75"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge373" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5581.8,-3898.83C5638.25,-3809.84 6448.19,-3830.08 6518.8,-3751.84 6568.7,-3696.55 6535.05,-3657.95 6523.8,-3584.32 6523.69,-3583.6 6274.27,-2786.34 6273.8,-2785.79 6209.89,-2712.27 6168.04,-2723.11 6075.8,-2691.81 6003.48,-2667.27 5971.09,-2698.53 5907.8,-2655.81 5862.56,-2625.28 5830.42,-2570.22 5812.04,-2531.33"/>
<polygon fill="#f91010" stroke="black" points="5815.02,-2529.44 5807.66,-2521.82 5808.66,-2532.37 5815.02,-2529.44"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_report -->
<g id="edge374" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5581.8,-3815.84C5623.89,-3678.33 5716.88,-3684.25 5763.8,-3548.32 5815.63,-3398.16 5787.8,-3350.57 5787.8,-3191.71 5787.8,-3191.71 5787.8,-3191.71 5787.8,-3095.73 5787.8,-2916.2 5900.77,-2834.48 5791.8,-2691.81 5754.89,-2643.48 5711.53,-2687.77 5659.8,-2655.81 5606.18,-2622.68 5560.48,-2564.88 5533.82,-2526.31"/>
<polygon fill="#f91010" stroke="black" points="5536.62,-2524.21 5528.1,-2517.91 5530.84,-2528.15 5536.62,-2524.21"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_telegram -->
<g id="edge375" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5581.8,-3815.84C5585.06,-3801.16 5590.47,-3798.78 5600.8,-3787.84 5618.86,-3768.71 5628.29,-3769.51 5647.8,-3751.84 5690.21,-3713.43 5702.43,-3704.35 5735.8,-3657.86 5827.87,-3529.58 5859.01,-3496.22 5903.8,-3344.8 5958.82,-3158.76 5841.91,-3077.27 5939.8,-2909.77"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_executor -->
<g id="edge376" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5513.34,-3967.61C5502.01,-3962.38 5488.56,-3956.98 5475.8,-3953.83 5274.55,-3904.16 5216.16,-3945.99 5010.8,-3917.83 4493.16,-3846.85 4277.57,-3903.95 3894.8,-3548.32 3646.12,-3317.28 3731.22,-3103.09 3851.8,-2785.79 3949.66,-2528.27 4090.11,-2532.34 4231.8,-2296.08 4238.73,-2284.52 4417.35,-1858.42 4429.8,-1853.27"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_repository -->
<g id="edge377" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6927.8,-3721.85C6881.67,-3680.35 6933.73,-3638.67 6903.8,-3584.32 6827.37,-3445.55 6715.9,-3483.75 6639.8,-3344.8 6606.64,-3284.27 6613.8,-3260.73 6613.8,-3191.71 6613.8,-3191.71 6613.8,-3191.71 6613.8,-2907.77 6613.8,-2805.41 6617.48,-2750.75 6533.8,-2691.81 6443.45,-2628.18 6368.3,-2731.5 6287.8,-2655.81 6240.49,-2611.33 6227.8,-2434.78 6227.8,-2369.85 6227.8,-2369.85 6227.8,-2369.85 6227.8,-2258.31 6227.8,-2182.71 6122.05,-1924.49 5978.8,-1815.5 5821.85,-1696.08 5743.4,-1737.92 5548.8,-1705.96 5341.19,-1671.86 5274.19,-1742.76 5076.8,-1669.96 5073.33,-1668.68 5069.9,-1667.08 5066.55,-1665.27"/>
<polygon fill="#f91010" stroke="black" points="5068.3,-1662.24 5057.93,-1660.07 5064.68,-1668.24 5068.3,-1662.24"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge378" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3547.8,-3898.83C3463.93,-3877.14 3450.6,-3832.81 3419.8,-3751.84 3393.32,-3682.26 3416.2,-3658.73 3418.8,-3584.32 3423.91,-3438 3419.06,-3400.34 3441.8,-3255.71 3461.95,-3127.51 3670.83,-2233.04 3747.8,-2128.56 3845.33,-1996.16 3910.25,-1999.65 4056.8,-1925.03 4137.61,-1883.89 4180.77,-1914.35 4247.8,-1853.27"/>
<path fill="none" stroke="black" d="M4247.8,-1851.27C4258.03,-1836.46 4257.2,-1830.73 4266.8,-1815.5 4273.31,-1805.15 4280.84,-1794.37 4288.15,-1784.4"/>
<polygon fill="#f91010" stroke="black" points="4291.06,-1786.36 4294.21,-1776.24 4285.44,-1782.18 4291.06,-1786.36"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge379" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5135.8,-3721.85C5017.04,-3659.35 4922.52,-3525.61 4880.48,-3458.59"/>
<polygon fill="#f91010" stroke="black" points="4883.39,-3456.63 4875.14,-3449.98 4877.44,-3460.32 4883.39,-3456.63"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_spawn -->
<g id="edge380" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.4,-3981.33C5965.61,-3977.56 8289.98,-3952.14 8339.8,-3900.83"/>
<path fill="none" stroke="black" d="M8339.8,-3898.83C8341.53,-3897.04 8303.09,-3819.96 8301.8,-3817.84"/>
<path fill="none" stroke="black" d="M8301.8,-3815.84C8254.83,-3738.63 8220.25,-3735.38 8173.8,-3657.86 8139.08,-3599.93 7963.75,-3160.08 7937.8,-3097.73"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_client -->
<g id="edge381" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8301.8,-3815.84C8285.53,-3778.33 8312.12,-3763.41 8301.8,-3723.85"/>
<path fill="none" stroke="black" d="M8301.8,-3721.85C8209.11,-3366.72 8338.7,-3225.65 8151.8,-2909.77"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_watcher -->
<g id="edge382" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8567.8,-3620.09C8526.78,-3462.93 8569.6,-3416.01 8595.8,-3255.71 8630.3,-3044.6 8752.47,-2993.11 8699.8,-2785.79 8638.81,-2545.73 8516.65,-2529.5 8433.8,-2296.08 8383.4,-2154.09 8411.25,-2108.21 8371.8,-1962.8"/>
<path fill="none" stroke="black" d="M8371.8,-1960.8C8250.26,-1734.99 8105.67,-1463.65 8051.61,-1362.12"/>
<polygon fill="#f91010" stroke="black" points="8054.6,-1360.29 8046.81,-1353.11 8048.42,-1363.58 8054.6,-1360.29"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_web_client -->
<g id="edge383" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8301.8,-3721.85C8290.54,-3512.91 8286.15,-3448.36 8367.8,-3255.71 8375.71,-3237.04 8389.22,-3238.88 8395.8,-3219.71 8404.16,-3195.33 8397.61,-3187.43 8395.8,-3161.72 8386.89,-3035.47 8384.62,-3003.01 8355.8,-2879.77 8345.78,-2836.95 8348.59,-2822.78 8324.8,-2785.79 8271.91,-2703.58 8018.7,-2583.45 8001.8,-2487.17"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_tree -->
<g id="edge384" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2545.8,-3518.33C2635.29,-3248.94 2478.23,-3158.55 2531.8,-2879.77 2548.77,-2791.44 2564.97,-2771.44 2606.8,-2691.81 2626.55,-2654.2 2642.81,-2651.2 2659.8,-2612.26"/>
<path fill="none" stroke="black" d="M2659.8,-2610.26C2701.13,-2442.57 2664.06,-2393.87 2685.8,-2222.54 2689.44,-2193.83 2697.94,-2187.48 2697.8,-2158.55"/>
<path fill="none" stroke="black" d="M2697.8,-2156.55C2696.85,-2139.02 2696.72,-2119.59 2696.87,-2103.11"/>
<polygon fill="#f91010" stroke="black" points="2700.38,-2102.81 2697.01,-2092.77 2693.38,-2102.72 2700.38,-2102.81"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_github -->
<g id="edge385" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4694.8,-3620.09C4630.16,-3563.39 5020.23,-2993.75 5001.8,-2909.77"/>
<path fill="none" stroke="black" d="M5001.8,-2907.77C4973.39,-2825.98 4925.36,-2806.39 4943.8,-2721.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge386" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5526.46,-3965.3C5509.25,-3946.59 5478.58,-3916.66 5445.8,-3900.83"/>
<path fill="none" stroke="black" d="M5445.8,-3898.83C5291.49,-3824.3 4847.39,-3816.75 4688.8,-3751.84 4467.25,-3661.17 4394.22,-3637.26 4239.8,-3454.34 4091.95,-3279.21 3967.87,-3186.64 4052.8,-2973.76 4114.99,-2817.85 4279.93,-2690.62 4356.15,-2638.15"/>
<polygon fill="#f91010" stroke="black" points="4358.27,-2640.95 4364.56,-2632.42 4354.33,-2635.16 4358.27,-2640.95"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge387" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5445.8,-3898.83C5376.87,-3865.54 5365.65,-3844.22 5293.8,-3817.84"/>
<path fill="none" stroke="black" d="M5293.8,-3815.84C4970.6,-3697.19 4730.49,-3851.21 4566.8,-3548.32 4443.66,-3320.49 4384.74,-3218.37 4469.8,-2973.76 4519.93,-2829.58 4654.14,-2699.56 4719.29,-2642.65"/>
<polygon fill="#f91010" stroke="black" points="4721.62,-2645.26 4726.89,-2636.07 4717.04,-2639.97 4721.62,-2645.26"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_upload -->
<g id="edge388" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5293.8,-3815.84C5228.05,-3791.7 5200.43,-3800.22 5149.8,-3751.84 5139.74,-3742.24 5148.38,-3729.79 5135.8,-3723.85"/>
<path fill="none" stroke="black" d="M5135.8,-3721.85C4964.63,-3641.09 4870.37,-3765.65 4714.8,-3657.86 4699.82,-3647.49 4708.11,-3634.52 4694.8,-3622.09"/>
<path fill="none" stroke="black" d="M4694.8,-3620.09C4574.53,-3507.85 4723.3,-3416.11 4759.8,-3255.71 4763.48,-3239.51 4766.67,-3236.01 4769.8,-3219.71 4798.45,-3070.46 4744.11,-3018.22 4806.8,-2879.77 4822.51,-2845.08 4865.08,-2853.85 4863.8,-2815.78"/>
<path fill="none" stroke="black" d="M4863.8,-2813.78C4859.11,-2773.05 4855.5,-2762.78 4856.8,-2721.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_util -->
<g id="edge389" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5581.8,-3898.83C5592.86,-3881.38 5607.15,-3863.43 5619.6,-3848.87"/>
<polygon fill="#f91010" stroke="black" points="5622.38,-3851 5626.29,-3841.15 5617.09,-3846.41 5622.38,-3851"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge390" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.52,-3981.21C6016.93,-3976.08 8984.51,-3939.65 9379.8,-3917.83 9460.47,-3913.37 9483.59,-3924.64 9560.8,-3900.83"/>
<path fill="none" stroke="black" d="M9560.8,-3898.83C9592.88,-3888.93 10282.94,-2969.53 10293.8,-2937.76 10334.32,-2819.18 10295.35,-2781.12 10295.8,-2655.81 10296.13,-2560.61 10299.47,-2536.74 10295.8,-2441.62 10288.8,-2260.45 10243.26,-2214.07 10268.8,-2034.57 10315.3,-1707.7 10465.75,-1651.14 10475.8,-1321.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_base -->
<g id="edge391" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8719.8,-3898.83C8733.76,-3888.21 8916.94,-3674.01 8923.8,-3657.86 9037.99,-3388.91 8989.8,-3295.94 8989.8,-3003.75 8989.8,-3003.75 8989.8,-3003.75 8989.8,-2813.78 8989.8,-2599.6 9013.37,-2546.05 9003.8,-2332.08 8998.46,-2212.83 8979.8,-2183.94 8979.8,-2064.57 8979.8,-2064.57 8979.8,-2064.57 8979.8,-1741.73 8979.8,-1505.5 9003.06,-1447.35 9017.8,-1211.59"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_index -->
<g id="edge392" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.23,-3981.19C5992.54,-3976.11 8655.29,-3941.57 8733.8,-3917.83 8814.23,-3893.5 9164.46,-3589.04 9182.8,-3548.32 9193.38,-3524.82 9182.89,-3516.11 9182.8,-3490.34 9182.13,-3315.84 9179.8,-3272.23 9179.8,-3097.73 9179.8,-3097.73 9179.8,-3097.73 9179.8,-3001.75 9179.8,-2808.11 9185.73,-2759.51 9203.8,-2566.71 9229.05,-2297.14 9283.8,-2233.55 9283.8,-1962.8 9283.8,-1962.8 9283.8,-1962.8 9283.8,-1741.73 9283.8,-1587.17 9531.11,-1254.45 9556.8,-1102.05"/>
</g>
<!-- ahriman_web_views_service_add -->
<g id="node136" class="node">
<title>ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="9405.8" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9405.8" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9405.8" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9405.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9405.8" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="9405.8" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">add</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_add -->
<g id="edge393" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.28,-3981.19C5991.74,-3976.14 8643.63,-3941.85 8809.8,-3917.83 8838.07,-3913.74 8844.03,-3907.57 8871.8,-3900.83"/>
<path fill="none" stroke="black" d="M8871.8,-3898.83C8994.08,-3869.11 9028.05,-3843.95 9113.8,-3751.84 9170.82,-3690.59 9144.08,-3646.77 9199.8,-3584.32 9219,-3562.8 9235.99,-3571.02 9253.8,-3548.32 9366.58,-3404.53 9302.58,-3320.07 9393.8,-3161.72 9431.43,-3096.39 9477.02,-3102.59 9502.8,-3031.74 9603.88,-2753.88 9435.8,-2665.53 9435.8,-2369.85 9435.8,-2369.85 9435.8,-2369.85 9435.8,-2156.55 9435.8,-2082.63 9476.09,-2071.56 9487.8,-1998.57 9492.97,-1966.3 9489.07,-1957.69 9487.8,-1925.03 9472.88,-1542.43 9427.49,-1083.18 9411.47,-928.78"/>
<polygon fill="#f91010" stroke="black" points="9414.93,-928.21 9410.41,-918.62 9407.96,-928.93 9414.93,-928.21"/>
</g>
<!-- ahriman_web_views_service_remove -->
<g id="node137" class="node">
<title>ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="9179.8" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9179.8" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9179.8" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9179.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9179.8" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="9179.8" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remove</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge394" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8757.8,-3721.85C8767.83,-3690.1 8783.93,-3688.58 8796.8,-3657.86 8879.31,-3460.84 8913.8,-3405.32 8913.8,-3191.71 8913.8,-3191.71 8913.8,-3191.71 8913.8,-2719.8 8913.8,-2428.32 8941.8,-2356.05 8941.8,-2064.57 8941.8,-2064.57 8941.8,-2064.57 8941.8,-1741.73 8941.8,-1536.65 8850.4,-1484.81 8888.8,-1283.36 8918.21,-1129.07 8907.13,-1065.19 9018.8,-954.74 9050.6,-923.28 9072.93,-939.04 9112.8,-918.74 9121.51,-914.3 9130.51,-909 9138.97,-903.66"/>
<polygon fill="#f91010" stroke="black" points="9141.07,-906.47 9147.56,-898.1 9137.27,-900.59 9141.07,-906.47"/>
</g>
<!-- ahriman_web_views_service_request -->
<g id="node138" class="node">
<title>ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="9311.8" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9311.8" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9311.8" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9311.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9311.8" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="9311.8" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">request</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_request -->
<g id="edge395" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8719.8,-3898.83C8731.59,-3893.19 8732.8,-3888.89 8743.8,-3881.83 8770.6,-3864.6 8781.28,-3866.18 8805.8,-3845.83 8848.23,-3810.61 8853.07,-3795.47 8886.8,-3751.84 8917.86,-3711.67 8927.27,-3702.33 8951.8,-3657.86 8993.4,-3582.43 9103.8,-3387.4 9103.8,-3301.25 9103.8,-3301.25 9103.8,-3301.25 9103.8,-3001.75 9103.8,-2539.83 9131.8,-2424.72 9131.8,-1962.8 9131.8,-1962.8 9131.8,-1962.8 9131.8,-1851.27 9131.8,-1722.46 9198.43,-1703.65 9269.8,-1596.42 9281.18,-1579.31 9291.48,-1579.62 9298.8,-1560.42 9335.12,-1465.12 9313.73,-1203.72 9321.8,-1102.05"/>
<path fill="none" stroke="black" d="M9321.8,-1100.05C9321.66,-1041.5 9318.26,-974.46 9315.46,-928.93"/>
<polygon fill="#f91010" stroke="black" points="9318.94,-928.45 9314.82,-918.69 9311.95,-928.89 9318.94,-928.45"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_search -->
<g id="edge396" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8339.8,-3898.83C8428.64,-3807.31 8415.8,-3749.64 8415.8,-3622.09 8415.8,-3622.09 8415.8,-3622.09 8415.8,-3518.33 8415.8,-3276.1 8428.13,-3213.54 8393.8,-2973.76 8367.79,-2792.12 8360.46,-2746.7 8324.8,-2566.71 8274.47,-2312.72 8234.51,-2254.6 8195.8,-1998.57 8160.33,-1764.03 8167.81,-1703.28 8154.8,-1466.43 8145.9,-1304.64 8114.57,-1261.61 8142.8,-1102.05"/>
<path fill="none" stroke="black" d="M8142.8,-1100.05C8143.12,-1076.15 8126.13,-1009.63 8142.8,-992.51"/>
</g>
<!-- ahriman_web_views_status_ahriman -->
<g id="node141" class="node">
<title>ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#822b2b" stroke="black" cx="9065.8" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9065.8" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9065.8" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9065.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9065.8" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="9065.8" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge397" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8757.8,-3721.85C8783.45,-3630.24 8837.8,-3396.4 8837.8,-3301.25 8837.8,-3301.25 8837.8,-3301.25 8837.8,-3001.75 8837.8,-2523.21 8895.04,-2400.61 8841.8,-1925.03 8813.09,-1668.65 8740.34,-1614.28 8722.8,-1356.9 8711.42,-1189.92 8703.29,-1114.57 8817.8,-992.51"/>
<path fill="none" stroke="black" d="M8817.8,-990.51C8830.84,-976.49 8826.68,-966.49 8841.8,-954.74 8894.28,-913.96 8969.38,-893.01 9017.87,-883.08"/>
<polygon fill="#f91010" stroke="black" points="9018.66,-886.49 9027.79,-881.12 9017.3,-879.62 9018.66,-886.49"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_package -->
<g id="edge398" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.5,-3981.28C5993.52,-3976.9 8651.97,-3946.28 8719.8,-3900.83"/>
<path fill="none" stroke="black" d="M8719.8,-3898.83C8785.9,-3854.52 8715.34,-3791.16 8757.8,-3723.85"/>
<path fill="none" stroke="black" d="M8757.8,-3721.85C8763.17,-3693.24 8746.93,-3686.81 8743.8,-3657.86 8735.79,-3583.84 8742.53,-3564.78 8743.8,-3490.34 8752.58,-2975.37 8837.32,-2844.01 8780.8,-2332.08 8760.45,-2147.82 8735.78,-2104.61 8689.8,-1925.03 8652.08,-1777.75 8643.99,-1740.27 8594.8,-1596.42 8557.74,-1488.06 8530.41,-1467.25 8499.8,-1356.9 8482.3,-1293.82 8456.25,-1274.06 8475.8,-1211.59"/>
</g>
<!-- ahriman_web_views_status_packages -->
<g id="node143" class="node">
<title>ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a2e2e" stroke="black" cx="9691.8" cy="-874.19" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="9691.8" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9691.8" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="9691.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="9691.8" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="9691.8" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">packages</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge399" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.29,-3981.12C6003.45,-3975.35 8801.57,-3935.59 8885.8,-3917.83 8926.34,-3909.28 8932.64,-3895.38 8971.8,-3881.83 9028.45,-3862.21 9051.35,-3878.23 9101.8,-3845.83 9139.96,-3821.31 9825.8,-3077.27 9825.8,-2909.77 9825.8,-2909.77 9825.8,-2909.77 9825.8,-2813.78 9825.8,-2507.99 9713.01,-2430.1 9763.8,-2128.56 9836.58,-1696.46 10075.49,-1607.05 10009.8,-1173.82 9993.52,-1066.49 9986.93,-1022.1 9901.8,-954.74 9888.68,-944.36 9798.82,-912.16 9740.97,-892.05"/>
<polygon fill="#f91010" stroke="black" points="9741.87,-888.66 9731.27,-888.69 9739.58,-895.28 9741.87,-888.66"/>
</g>
<!-- ahriman_web_views_status_status -->
<g id="node144" class="node">
<title>ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="8617.8" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="8617.8" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8617.8" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="8617.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="8617.8" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="8617.8" y="-849.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_status -->
<g id="edge400" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.38,-3981.27C5965.46,-3977.13 8289.6,-3950.13 8353.8,-3917.83 8436.91,-3876 8602.79,-3741.88 8567.8,-3622.09"/>
<path fill="none" stroke="black" d="M8567.8,-3620.09C8560.68,-3587.63 8551.51,-3581.22 8546.8,-3548.32 8542.85,-3520.79 8547.05,-3395.11 8549.8,-3380.8 8560.98,-3322.63 8574.51,-3310.99 8595.8,-3255.71 8596.65,-3253.48 8723.34,-2940.09 8723.8,-2937.76 8728.7,-2912.46 8726.49,-2905.4 8723.8,-2879.77 8714.86,-2794.83 8707.48,-2773.87 8683.8,-2691.81 8667.37,-2634.89 8661.11,-2621.17 8637.8,-2566.71 8585.04,-2443.51 8544.02,-2424.23 8504.8,-2296.08 8486.74,-2237.08 8485.8,-2220.25 8485.8,-2158.55 8485.8,-2158.55 8485.8,-2158.55 8485.8,-2062.57 8485.8,-1821.72 8129.08,-1147.06 8313.8,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_login -->
<g id="edge401" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5591.45,-3981.16C6008.07,-3975.69 8858.81,-3937.65 9037.8,-3917.83 9196.08,-3900.3 9250.2,-3924.26 9388.8,-3845.83 9414.34,-3831.37 10082.86,-3088.32 10103.8,-3067.74 10179.23,-2993.6 10281.8,-3015.54 10281.8,-2909.77 10281.8,-2909.77 10281.8,-2909.77 10281.8,-2485.17 10281.8,-2306.72 10216.57,-2270.01 10197.8,-2092.56 10195.09,-2066.93 10196.64,-2060.32 10197.8,-2034.57 10205.8,-1856.09 10233.8,-1812.85 10233.8,-1634.19 10233.8,-1634.19 10233.8,-1634.19 10233.8,-1530.43 10233.8,-1338.69 10109.66,-1279.29 10182.8,-1102.05"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge402" class="edge">
<title>ahriman_models&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8871.8,-3898.83C8874.45,-3898.31 9056.5,-3847.24 9058.8,-3845.83 9106.98,-3816.09 9109.48,-3796.1 9144.8,-3751.84 9213.43,-3665.83 9225.32,-3640.25 9285.8,-3548.32 9291.29,-3539.97 9664.04,-2947.37 9666.8,-2937.76 9673.89,-2912.98 9667.83,-2905.52 9666.8,-2879.77 9657.68,-2652.59 9625.8,-2597.21 9625.8,-2369.85 9625.8,-2369.85 9625.8,-2369.85 9625.8,-2156.55 9625.8,-2091.47 9667.08,-2086.13 9706.8,-2034.57 9719.86,-2017.62 9728.41,-2017.29 9738.8,-1998.57 9767.43,-1946.95 9802.66,-1801.7 9813.8,-1743.73"/>
<path fill="none" stroke="black" d="M9813.8,-1741.73C9825.42,-1600.03 9863.86,-1230.9 9803.8,-1102.05"/>
</g>
<!-- ahriman_models_action -->
<g id="node104" class="node">
<title>ahriman_models_action</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="434.8" cy="-2157.55" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="434.8" y="-2166.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="434.8" y="-2155.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="434.8" y="-2144.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">action</text>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_ahriman -->
<g id="edge403" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M444.91,-2129.21C450.77,-2111.14 457.13,-2086.78 457.8,-2064.57"/>
<path fill="none" stroke="black" d="M457.8,-2062.57C460.68,-1966.86 406.8,-1949.01 406.8,-1853.27 406.8,-1853.27 406.8,-1853.27 406.8,-1530.43 406.8,-1119.19 275.43,-1020.6 306.8,-610.57 316.22,-487.35 345.8,-458.85 345.8,-335.27 345.8,-335.27 345.8,-335.27 345.8,-223.74 345.8,-86.5 2596.63,-38.31 2985.81,-31.01"/>
<polygon fill="#e72222" stroke="black" points="2986.05,-34.5 2995.98,-30.82 2985.92,-27.51 2986.05,-34.5"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge404" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M457.8,-2062.57C463.08,-1969.03 482.8,-1946.95 482.8,-1853.27 482.8,-1853.27 482.8,-1853.27 482.8,-990.51 482.8,-887.12 508.43,-858.04 482.8,-757.87"/>
<path fill="none" stroke="black" d="M482.8,-755.87C476.97,-735.97 437.65,-703.06 405.58,-678.87"/>
<polygon fill="#e72222" stroke="black" points="407.3,-675.79 397.19,-672.61 403.11,-681.4 407.3,-675.79"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge405" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_handlers_status_update</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M482.8,-755.87C477.73,-736.1 477,-713.59 477.81,-694.3"/>
<polygon fill="#e72222" stroke="black" points="481.31,-694.43 478.39,-684.25 474.32,-694.03 481.31,-694.43"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_users -->
<g id="edge406" class="edge">
<title>ahriman_models_action&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M462.7,-2137.58C538.16,-2086.26 746.74,-1944.42 837.58,-1882.65"/>
<polygon fill="#e72222" stroke="black" points="839.7,-1885.45 846,-1876.93 835.76,-1879.66 839.7,-1885.45"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_application_handlers_search -->
<g id="edge407" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3222.8,-3518.33C3288.58,-3378.54 3341.8,-3346.21 3341.8,-3191.71 3341.8,-3191.71 3341.8,-3191.71 3341.8,-3095.73 3341.8,-2718.18 3495.8,-2637.86 3495.8,-2260.31 3495.8,-2260.31 3495.8,-2260.31 3495.8,-2062.57 3495.8,-1817.45 3585.9,-1769.59 3647.8,-1532.43"/>
<path fill="none" stroke="black" d="M3647.8,-1530.43C3655.26,-1437.7 3647.8,-1414.15 3647.8,-1321.13 3647.8,-1321.13 3647.8,-1321.13 3647.8,-1209.59 3647.8,-1113.11 3668.72,-1086.69 3647.8,-992.51"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge408" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3213.32,-3611.8C3264.32,-3603.44 3346.95,-3590.84 3418.8,-3584.32 3806.42,-3549.14 3905.15,-3569.41 4293.8,-3548.32 4377.78,-3543.77 7237.57,-3378.12 7314.8,-3344.8 7318.93,-3343.02 7322.93,-3340.71 7326.74,-3338.09"/>
<polygon fill="#d10505" stroke="black" points="7328.95,-3340.8 7334.74,-3331.93 7324.68,-3335.26 7328.95,-3340.8"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge409" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3213.87,-3612.4C3264.95,-3604.58 3347.34,-3592.48 3418.8,-3584.32 4077.05,-3509.22 4253.13,-3579.11 4903.8,-3454.34 5015.45,-3432.93 5036.5,-3398.57 5148.8,-3380.8 5503.58,-3324.66 6406.13,-3364.3 6764.8,-3344.8 6932.12,-3335.7 7130.06,-3315.91 7219.57,-3306.46"/>
<polygon fill="#d10505" stroke="black" points="7220.1,-3309.93 7229.68,-3305.39 7219.37,-3302.97 7220.1,-3309.93"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge410" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3218.8,-3416.57C3211.1,-3396.05 3203.39,-3373.17 3196.94,-3353.24"/>
<polygon fill="#d10505" stroke="black" points="3200.27,-3352.16 3193.88,-3343.71 3193.61,-3354.3 3200.27,-3352.16"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge411" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3181.85,-3593.68C3194.16,-3573.95 3210.68,-3546.07 3222.8,-3520.33"/>
<path fill="none" stroke="black" d="M3222.8,-3518.33C3241.69,-3478.18 3234.37,-3460.12 3218.8,-3418.57"/>
<path fill="none" stroke="black" d="M3218.8,-3416.57C3212.08,-3398.64 3209.42,-3393.15 3194.8,-3380.8 3165.01,-3355.64 3147.3,-3366.33 3114.8,-3344.8 3111.1,-3342.35 3107.41,-3339.61 3103.82,-3336.72"/>
<polygon fill="#d10505" stroke="black" points="3106.05,-3334.02 3096.15,-3330.23 3101.52,-3339.36 3106.05,-3334.02"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge412" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3125.8,-3602.29C3004.19,-3547.1 2620.47,-3375.39 2293.8,-3255.71 1903.4,-3112.67 1804.57,-3076.91 1401.8,-2973.76 1321.92,-2953.3 1290.63,-2979.96 1219.8,-2937.76 1191.06,-2920.63 1197.61,-2901.05 1171.8,-2879.77 1146.01,-2858.52 1131.76,-2864.8 1105.8,-2843.77 1093.06,-2833.46 1092.52,-2828.18 1081.8,-2815.78"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_web_views_service_search -->
<g id="edge413" class="edge">
<title>ahriman_models_aur_package&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3213.35,-3612.09C3264.37,-3603.96 3347.02,-3591.56 3418.8,-3584.32 4358.9,-3489.48 4598.55,-3524.88 5540.8,-3454.34 5910.54,-3426.66 6002.02,-3407.96 6371.8,-3380.8 6440.17,-3375.78 6926.41,-3375.33 6987.8,-3344.8 7034.4,-3321.63 7016.99,-3278.47 7063.8,-3255.71 7151.7,-3212.95 7868.97,-3283.77 7942.8,-3219.71 8039.04,-3136.2 7983.19,-3064.65 7994.8,-2937.76 7997.14,-2912.09 8004.82,-2903.51 7994.8,-2879.77 7985.87,-2858.64 7972.5,-2861.39 7957.8,-2843.77 7937.89,-2819.93 7940.8,-2807.71 7918.8,-2785.79 7898.36,-2765.44 7880.87,-2773.74 7864.8,-2749.79 7841.05,-2714.41 7852.56,-2697.88 7845.8,-2655.81 7836.91,-2600.52 7837.02,-2586.36 7830.8,-2530.71 7815.56,-2394.58 7806.12,-2358.1 7825.8,-2222.54 7829.98,-2193.73 7834.62,-2187.2 7839.8,-2158.55"/>
<path fill="none" stroke="black" d="M7839.8,-2156.55C7843.07,-2086.34 7834.35,-2068.84 7832.8,-1998.57 7832.07,-1965.9 7831.21,-1957.68 7832.8,-1925.03 7834.35,-1893.02 7835.12,-1884.97 7839.8,-1853.27"/>
<path fill="none" stroke="black" d="M7839.8,-1851.27C7839.36,-1754.79 7839.8,-1730.67 7839.8,-1634.19 7839.8,-1634.19 7839.8,-1634.19 7839.8,-1209.59 7839.8,-1142.11 7845.67,-1119.96 7883.8,-1064.28 7898.46,-1042.86 7910.16,-1045.26 7929.8,-1028.28 7965.58,-997.32 7963.58,-974.01 8006.8,-954.74 8198.14,-869.42 8284.81,-1002.61 8476.8,-918.74 8480.92,-916.94 8484.92,-914.62 8488.72,-911.99"/>
<polygon fill="#d10505" stroke="black" points="8490.94,-914.7 8496.72,-905.82 8486.66,-909.15 8490.94,-914.7"/>
</g>
<!-- ahriman_models_auth_settings -->
<g id="node106" class="node">
<title>ahriman_models_auth_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db2f2f" stroke="black" cx="9858.8" cy="-2259.31" rx="53.07" ry="28.98"/>
<text text-anchor="middle" x="9858.8" y="-2267.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9858.8" y="-2256.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="9858.8" y="-2245.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth_settings</text>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_auth -->
<g id="edge414" class="edge">
<title>ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9899.8,-2062.57C9896.66,-2045.2 9896.02,-2025.87 9896.39,-2008.87"/>
<polygon fill="#db2f2f" stroke="black" points="9899.89,-2008.74 9896.73,-1998.63 9892.9,-2008.51 9899.89,-2008.74"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge415" class="edge">
<title>ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9871.32,-2231.14C9887.01,-2193.75 9910.58,-2124.28 9899.8,-2064.57"/>
<path fill="none" stroke="black" d="M9899.8,-2062.57C9889.68,-1994.17 9798.62,-1972.65 9740.38,-1965.89"/>
<polygon fill="#db2f2f" stroke="black" points="9740.59,-1962.39 9730.27,-1964.83 9739.85,-1969.36 9740.59,-1962.39"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge416" class="edge">
<title>ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9899.8,-2062.57C9896.66,-2045.19 9928.73,-2014.45 9956.25,-1991.67"/>
<polygon fill="#db2f2f" stroke="black" points="9958.68,-1994.21 9964.23,-1985.18 9954.26,-1988.78 9958.68,-1994.21"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_ahriman -->
<g id="edge417" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8314.01,-2901.43C8387.04,-2891.29 8531.61,-2869.89 8652.8,-2843.77 8970.22,-2775.37 9048.1,-2750.15 9358.8,-2655.81 9784.41,-2526.57 9875.09,-2443.18 10305.8,-2332.08 10394.52,-2309.19 10440.64,-2357.32 10508.8,-2296.08 10569.01,-2241.98 10688.21,-1673.85 10711.8,-1596.42 10724.57,-1554.47 10726.39,-1543.48 10741.8,-1502.43 10816.38,-1303.71 10830.36,-1250.73 10931.8,-1064.28 11009.98,-920.57 11074.27,-909.47 11135.8,-757.87"/>
<path fill="none" stroke="black" d="M11135.8,-755.87C11139.27,-731.38 11217.89,-570.55 11211.8,-546.57"/>
<path fill="none" stroke="black" d="M11211.8,-544.57C11112.74,-268.7 10935.44,-303.59 10703.8,-123.97"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_handlers_status -->
<g id="edge418" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5053.8,-2813.78C5030.39,-2810.07 5123.8,-2635.96 5123.8,-2612.26 5123.8,-2612.26 5123.8,-2612.26 5123.8,-2367.85 5123.8,-1927.92 4800.02,-1859.63 4387.8,-1705.96 4068,-1586.74 3939.66,-1711.85 3633.8,-1560.42 3286.57,-1388.51 3337.07,-1157.31 3006.8,-954.74 2962.23,-927.4 2944.38,-935.34 2894.8,-918.74 2734.58,-865.08 2633.66,-931.38 2535.8,-793.64 2516.87,-767 2525.72,-751.2 2535.8,-720.1 2539.76,-707.86 2546.69,-695.96 2554.22,-685.48"/>
<polygon fill="#e50505" stroke="black" points="2557.09,-687.48 2560.34,-677.4 2551.51,-683.26 2557.09,-687.48"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_lock -->
<g id="edge419" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8312.96,-2898.96C8368.99,-2887.88 8466.09,-2867.42 8547.8,-2843.77 8788.68,-2774.05 8844.19,-2741.69 9079.8,-2655.81 9334.06,-2563.13 9386.38,-2503.69 9649.8,-2441.62 9725.25,-2423.84 9930.08,-2445.1 9996.8,-2405.62 10111.72,-2337.6 10073.51,-2253.12 10167.8,-2158.55"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge420" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5053.8,-2813.78C4941.97,-2795.43 5075.52,-2641.98 4990.8,-2566.71 4971.38,-2549.46 4624.51,-2511.51 4466.76,-2495.05"/>
<polygon fill="#e50505" stroke="black" points="4466.96,-2491.55 4456.65,-2493.99 4466.24,-2498.51 4466.96,-2491.55"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge421" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8219,-2902.3C8018.75,-2879.05 7253.61,-2786.59 7167.8,-2721.8"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge422" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8219.24,-2901.54C8165.03,-2894.76 8073.71,-2884.27 7994.8,-2879.77 7280.13,-2839.09 5487.72,-2895.92 4773.8,-2843.77 4582.35,-2829.79 4536.89,-2804.04 4345.8,-2785.79 4281.35,-2779.64 2080.53,-2675.32 2018.8,-2655.81 2010.75,-2653.27 2002.7,-2649.59 1995.08,-2645.43"/>
<polygon fill="#e50505" stroke="black" points="1996.75,-2642.35 1986.34,-2640.36 1993.24,-2648.41 1996.75,-2642.35"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge423" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8219.24,-2901.56C8165.03,-2894.79 8073.71,-2884.31 7994.8,-2879.77 7913.76,-2875.11 5144.29,-2882.22 5072.8,-2843.77 5059.55,-2836.65 5068.58,-2818.51 5053.8,-2815.78"/>
<path fill="none" stroke="black" d="M5053.8,-2813.78C4763.96,-2760.41 4687.46,-2774.62 4393.8,-2749.79 4102.14,-2725.13 4029.99,-2708.81 3737.8,-2691.81 3168.76,-2658.7 3022.24,-2719.37 2455.8,-2655.81 2401.23,-2649.69 2340.03,-2637.09 2296.05,-2627.02"/>
<polygon fill="#e50505" stroke="black" points="2296.63,-2623.56 2286.1,-2624.72 2295.05,-2630.38 2296.63,-2623.56"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_client -->
<g id="edge424" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8236.67,-2885.78C8199.41,-2859.34 8133.34,-2814.9 8071.8,-2785.79 8026.44,-2764.34 7994.08,-2790.54 7964.8,-2749.79 7928.79,-2699.68 7982.82,-2673.96 7983.8,-2612.26"/>
<path fill="none" stroke="black" d="M7983.8,-2610.26C7981.4,-2540.92 7899.85,-2555.49 7887.8,-2487.17"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_watcher -->
<g id="edge425" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8295.16,-2884.97C8306.68,-2873.9 8318.7,-2859.58 8324.8,-2843.77 8353.67,-2768.92 8288.8,-2655.84 8263.8,-2566.71 8167.07,-2221.9 8113.41,-2136.97 8091.8,-1779.5 8089.82,-1746.87 8088.65,-1738.49 8091.8,-1705.96 8094.92,-1673.61 8111.57,-1666.17 8105.8,-1634.19"/>
<path fill="none" stroke="black" d="M8105.8,-1632.19C8094.84,-1585.6 8029.8,-1478.53 8029.8,-1430.67"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge426" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7983.8,-2610.26C7981.88,-2555 8011.36,-2541.62 8001.8,-2487.17"/>
<path fill="none" stroke="black" d="M8001.8,-2485.17C7992.93,-2434.69 8036.95,-2407.15 8001.8,-2369.85"/>
<path fill="none" stroke="black" d="M8001.8,-2367.85C7988.67,-2353.92 7989.64,-2347.12 7977.8,-2332.08 7968.09,-2319.76 7956.77,-2306.96 7946.27,-2295.64"/>
<polygon fill="#e50505" stroke="black" points="7948.56,-2292.96 7939.17,-2288.07 7943.45,-2297.75 7948.56,-2292.96"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_models_counters -->
<g id="edge427" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8269.85,-2879.67C8270.74,-2871.47 8271.73,-2862.36 8272.68,-2853.66"/>
<polygon fill="#e50505" stroke="black" points="8276.16,-2854.03 8273.76,-2843.71 8269.2,-2853.27 8276.16,-2854.03"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge428" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8301.25,-2888.01C8321.07,-2876.09 8346.07,-2860.09 8366.8,-2843.77 8414.22,-2806.45 8427.8,-2797.47 8464.8,-2749.79 8593.69,-2583.67 8567.89,-2504.06 8598.8,-2296.08 8612.13,-2206.36 8610.46,-2183.19 8613.8,-2092.56 8614.74,-2066.8 8618.08,-2059.99 8613.8,-2034.57 8605.23,-1983.76 8598.72,-1971.19 8575.8,-1925.03 8567.24,-1907.81 8559.85,-1906.5 8551.8,-1889.03 8530.62,-1843.08 8529.35,-1829.36 8520.8,-1779.5 8507.04,-1699.24 8504.36,-1677.3 8513.8,-1596.42 8536.17,-1404.71 8525.8,-1345.6 8613.8,-1173.82 8672.56,-1059.11 8695.68,-1024.89 8803.8,-954.74 8870.67,-911.35 8962.35,-890.67 9017.65,-881.57"/>
<polygon fill="#e50505" stroke="black" points="9018.54,-884.97 9027.87,-879.95 9017.45,-878.06 9018.54,-884.97"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_package -->
<g id="edge429" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8300.89,-2887.82C8316.23,-2876.9 8332.86,-2861.89 8341.8,-2843.77 8432.21,-2660.46 8445.03,-2120.66 8385.8,-1925.03 8380.22,-1906.63 8368.26,-1907.15 8361.8,-1889.03 8281.94,-1665.22 8321.37,-1594.25 8309.8,-1356.9 8308.2,-1324.25 8296.96,-1313.42 8309.8,-1283.36 8328.16,-1240.35 8435.77,-1176.67 8461.8,-1137.82 8471.3,-1123.63 8471.74,-1118.63 8475.8,-1102.05"/>
<path fill="none" stroke="black" d="M8475.8,-1100.05C8491.58,-1023.26 8510.27,-997.78 8575.8,-954.74 8645.08,-909.23 8684.92,-956.34 8758.8,-918.74 8762.64,-916.78 8766.41,-914.42 8770.02,-911.81"/>
<polygon fill="#e50505" stroke="black" points="8772.48,-914.33 8778.15,-905.38 8768.13,-908.84 8772.48,-914.33"/>
</g>
<!-- ahriman_models_internal_status -->
<g id="node109" class="node">
<title>ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="8030.8" cy="-2720.8" rx="56.64" ry="28.98"/>
<text text-anchor="middle" x="8030.8" y="-2729.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8030.8" y="-2718.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="8030.8" y="-2707.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">internal_status</text>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_models_internal_status -->
<g id="edge430" class="edge">
<title>ahriman_models_counters&#45;&gt;ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8242.33,-2800.9C8201.63,-2785.68 8133.42,-2760.17 8085.48,-2742.25"/>
<polygon fill="#a32828" stroke="black" points="8086.47,-2738.88 8075.88,-2738.66 8084.02,-2745.44 8086.47,-2738.88"/>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_web_views_status_status -->
<g id="edge431" class="edge">
<title>ahriman_models_counters&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8268.21,-2786.41C8228.88,-2660.56 8067.8,-2140.44 8067.8,-2064.57 8067.8,-2064.57 8067.8,-2064.57 8067.8,-1960.8 8067.8,-1884.94 7950.68,-1352.09 7982.8,-1283.36 8025.48,-1192.02 8089.84,-1213.2 8156.8,-1137.82 8182.72,-1108.64 8177.25,-1091.93 8204.8,-1064.28 8245.73,-1023.18 8269.31,-1029.73 8313.8,-992.51"/>
<path fill="none" stroke="black" d="M8313.8,-990.51C8338.19,-970.09 8345.94,-965.73 8375.8,-954.74 8458.5,-924.28 8492.02,-958.25 8570.8,-918.74 8574.66,-916.8 8578.42,-914.45 8582.04,-911.86"/>
<polygon fill="#a32828" stroke="black" points="8584.49,-914.38 8590.18,-905.45 8580.16,-908.89 8584.49,-914.38"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_client -->
<g id="edge432" class="edge">
<title>ahriman_models_internal_status&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8028.99,-2691.44C8027.48,-2669.72 8025.03,-2639.04 8021.8,-2612.26"/>
<path fill="none" stroke="black" d="M8021.8,-2610.26C8019.2,-2588.76 7955.99,-2473.46 7920.84,-2410.67"/>
<polygon fill="#c82323" stroke="black" points="7923.82,-2408.82 7915.87,-2401.81 7917.71,-2412.24 7923.82,-2408.82"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge433" class="edge">
<title>ahriman_models_internal_status&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8021.8,-2610.26C8015,-2555.25 8011.38,-2541.76 8001.8,-2487.17"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_web_views_status_status -->
<g id="edge434" class="edge">
<title>ahriman_models_internal_status&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8021.8,-2610.26C8006.64,-2487.53 8032.08,-2454.67 8015.8,-2332.08 8007.02,-2266.02 7992.72,-2251.91 7979.8,-2186.54 7957.64,-2074.5 7915.8,-1860.53 7915.8,-1743.73 7915.8,-1743.73 7915.8,-1743.73 7915.8,-1632.19 7915.8,-1492.91 7877.8,-1460.4 7877.8,-1321.13 7877.8,-1321.13 7877.8,-1321.13 7877.8,-1209.59 7877.8,-990.48 8093.07,-1027.33 8299.8,-954.74 8414.44,-914.49 8460.85,-970.46 8570.8,-918.74 8574.87,-916.82 8578.83,-914.42 8582.61,-911.74"/>
<polygon fill="#c82323" stroke="black" points="8584.86,-914.43 8590.58,-905.5 8580.55,-908.92 8584.86,-914.43"/>
</g>
<!-- ahriman_models_migration -->
<g id="node110" class="node">
<title>ahriman_models_migration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="7349.8" cy="-2720.8" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="7349.8" y="-2729.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7349.8" y="-2718.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="7349.8" y="-2707.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">migration</text>
</g>
<!-- ahriman_models_migration&#45;&gt;ahriman_core_database_migrations -->
<g id="edge435" class="edge">
<title>ahriman_models_migration&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7349.56,-2691.54C7348.35,-2659.9 7343.53,-2607.7 7325.8,-2566.71 7309.03,-2527.95 7264.39,-2528.34 7273.8,-2487.17"/>
</g>
<!-- ahriman_models_migration_result&#45;&gt;ahriman_core_database_data -->
<g id="edge436" class="edge">
<title>ahriman_models_migration_result&#45;&gt;ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9063.64,-3502.22C8980.54,-3475.28 8806.8,-3420.15 8657.8,-3380.8 8536.19,-3348.69 8229.96,-3275.77 8105.8,-3255.71 8024.68,-3242.6 7805.58,-3266.15 7737.8,-3219.71 7636.81,-3150.52 7698.37,-3062.26 7613.8,-2973.76 7591.25,-2950.16 7571.67,-2961.98 7549.8,-2937.76 7479.64,-2860.07 7466.43,-2825.94 7455.8,-2721.8"/>
</g>
<!-- ahriman_models_migration_result&#45;&gt;ahriman_core_database_migrations -->
<g id="edge437" class="edge">
<title>ahriman_models_migration_result&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9071.44,-3497.9C9011.83,-3469.03 8897.83,-3415.89 8796.8,-3380.8 8771.07,-3371.87 8349.68,-3260.09 8322.8,-3255.71 8262.13,-3245.82 7822.11,-3253.54 7770.8,-3219.71 7719.61,-3185.96 7677.24,-3026.39 7645.8,-2973.76 7635.8,-2957.03 7630.25,-2954.79 7620.8,-2937.76 7570.07,-2846.39 7554.03,-2822.96 7527.8,-2721.8"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge438" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4673.8,-2813.78C4698.47,-2644.53 4698.01,-2561.29 4575.8,-2441.62 4448.95,-2317.41 4355.58,-2388.18 4203.8,-2296.08 3724.56,-2005.28 3549.02,-1942.96 3253.8,-1466.43 3209.49,-1394.93 3252.18,-1353.53 3205.8,-1283.36 3162.04,-1217.16 3085.94,-1164.86 3032.43,-1133.77"/>
<polygon fill="#950303" stroke="black" points="3034.13,-1130.71 3023.72,-1128.78 3030.65,-1136.78 3034.13,-1130.71"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge439" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4657.43,-2881.01C4664.39,-2862.97 4672.19,-2838.43 4673.8,-2815.78"/>
<path fill="none" stroke="black" d="M4673.8,-2813.78C4675.36,-2791.75 4551.04,-2455.42 4533.8,-2441.62 4443.76,-2369.54 4387.8,-2436.93 4276.8,-2405.62 4109.07,-2358.31 3708.44,-2180.16 3557.8,-2092.56 3357.15,-1975.87 3322.31,-1922.88 3139.8,-1779.5 2946.68,-1627.78 2894.8,-1575.96 2783.8,-1356.9 2753.05,-1296.23 2717.96,-1277.22 2735.8,-1211.59"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge440" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_handlers_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4607.43,-2907.25C4331.88,-2903.48 2650.98,-2879.32 2141.8,-2843.77 1774.98,-2818.17 1676.65,-2838.49 1319.8,-2749.79 1251.24,-2732.75 1240.33,-2708.94 1171.8,-2691.81 1038.09,-2658.4 988.06,-2715.42 863.8,-2655.81 796.83,-2623.68 416.46,-2255.05 387.8,-2186.54 377.85,-2162.77 385.17,-2154.19 387.8,-2128.56 400.53,-2004.26 444.8,-1978.21 444.8,-1853.27 444.8,-1853.27 444.8,-1853.27 444.8,-1530.43 444.8,-1437.4 429.34,-1412.85 444.8,-1321.13"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge441" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_handlers_rebuild</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4608.9,-2900.52C4559.26,-2890.29 4468.57,-2869.92 4393.8,-2843.77 4365.26,-2833.79 4359.54,-2827.79 4331.8,-2815.78"/>
<path fill="none" stroke="black" d="M4331.8,-2813.78C4050.2,-2691.98 3954.61,-2740.75 3659.8,-2655.81 3495.01,-2608.33 3456.78,-2587.01 3294.8,-2530.71 3136.78,-2475.8 3094.36,-2469.6 2939.8,-2405.62 2705.84,-2308.77 2622.25,-2290.06 2463.8,-2092.56 2245.46,-1820.42 2329.08,-1662.64 2107.8,-1392.9 2057.91,-1332.08 2034.41,-1326.73 1968.8,-1283.36 1653.5,-1074.97 1395.92,-1211.14 1222.8,-875.19"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_status -->
<g id="edge442" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_application_handlers_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4331.8,-2813.78C4244.99,-2774.78 4243.39,-2729.02 4155.8,-2691.81 4080.71,-2659.91 4054.84,-2676 3975.8,-2655.81 3508.41,-2536.4 3404.82,-2460.38 2939.8,-2332.08 2873.71,-2313.84 2846.24,-2334.99 2789.8,-2296.08 2699.61,-2233.91 2703.86,-2188.38 2650.8,-2092.56 2586.17,-1975.85 2185.83,-1124.94 2169.8,-992.51"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge443" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4636.71,-2870.25C4610.69,-2764.21 4535.41,-2468.25 4499.8,-2441.62 4440.01,-2396.91 4238.91,-2420.71 4165.8,-2405.62 4057.37,-2383.24 4036.95,-2350.62 3927.8,-2332.08 3713.39,-2295.66 3158.59,-2356.93 2949.8,-2296.08 2943.98,-2294.38 2938.14,-2292.01 2932.51,-2289.29"/>
<polygon fill="#950303" stroke="black" points="4633.37,-2871.31 4639.15,-2880.19 4640.17,-2869.65 4633.37,-2871.31"/>
<polygon fill="#950303" stroke="black" points="2933.73,-2285.98 2923.25,-2284.44 2930.48,-2292.18 2933.73,-2285.98"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge444" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4682.37,-2899.98C4714.87,-2893.4 4763.77,-2884.34 4806.8,-2879.77 4857.33,-2874.41 5679.92,-2873.97 5720.8,-2843.77 5776.39,-2802.71 5792.96,-2748.75 5753.8,-2691.81 5728.44,-2654.95 5692.79,-2686.02 5659.8,-2655.81 5586.8,-2588.96 5578.5,-2538.5 5598.8,-2441.62 5609.69,-2389.59 5616.44,-2375.71 5646.8,-2332.08 5695.67,-2261.83 5927.59,-2150.06 5923.8,-2064.57"/>
<path fill="none" stroke="black" d="M5923.8,-2062.57C5914.15,-2043.18 5902.57,-2022.22 5892.45,-2004.54"/>
<polygon fill="#950303" stroke="black" points="5895.33,-2002.53 5887.3,-1995.61 5889.26,-2006.03 5895.33,-2002.53"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge445" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4621.63,-2886.15C4609.36,-2874.38 4594.76,-2859.13 4583.8,-2843.77 4503.5,-2731.34 4512.55,-2685.98 4442.8,-2566.71 4436.77,-2556.42 4429.96,-2545.63 4423.26,-2535.44"/>
<polygon fill="#950303" stroke="black" points="4426.14,-2533.45 4417.69,-2527.05 4420.31,-2537.32 4426.14,-2533.45"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge446" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4682.36,-2899.91C4714.86,-2893.28 4763.76,-2884.2 4806.8,-2879.77 5049.87,-2854.79 5669.34,-2905.39 5905.8,-2843.77 6048.13,-2806.68 6058.66,-2733.22 6199.8,-2691.81 6363.85,-2643.67 6420.78,-2710.42 6582.8,-2655.81 6588.76,-2653.8 6594.74,-2651.19 6600.55,-2648.26"/>
<polygon fill="#950303" stroke="black" points="6602.39,-2651.24 6609.53,-2643.41 6599.07,-2645.08 6602.39,-2651.24"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge447" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4682.36,-2899.89C4714.86,-2893.25 4763.75,-2884.15 4806.8,-2879.77 4964.7,-2863.71 6105.31,-2908.96 6233.8,-2815.78"/>
<path fill="none" stroke="black" d="M6233.8,-2813.78C6482.87,-2633.16 6612.78,-2743.15 6907.8,-2655.81 6924.17,-2650.96 6941.56,-2645.12 6957.9,-2639.32"/>
<polygon fill="#950303" stroke="black" points="6959.16,-2642.59 6967.38,-2635.91 6956.79,-2636 6959.16,-2642.59"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge448" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4608.99,-2900.66C4445.47,-2869.43 3768.1,-2743.6 3205.8,-2691.81 2977.07,-2670.74 2396.42,-2708.25 2172.8,-2655.81 2156.42,-2651.97 2139.42,-2645.27 2124.37,-2638.26"/>
<polygon fill="#950303" stroke="black" points="2125.8,-2635.07 2115.27,-2633.88 2122.76,-2641.37 2125.8,-2635.07"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge449" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4607.86,-2904.27C4504.11,-2894.72 4206.88,-2867.26 3959.8,-2843.77 3744.09,-2823.27 2224.02,-2725.31 2018.8,-2655.81 2011.08,-2653.19 2003.33,-2649.59 1995.94,-2645.56"/>
<polygon fill="#950303" stroke="black" points="1997.22,-2642.26 1986.81,-2640.28 1993.71,-2648.31 1997.22,-2642.26"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge450" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4607.56,-2907.1C4315.85,-2901.82 2438.67,-2863.72 1883.8,-2749.79 1758.92,-2724.15 1726.7,-2713.05 1612.8,-2655.81 1606.36,-2652.57 1599.81,-2648.78 1593.47,-2644.81"/>
<polygon fill="#950303" stroke="black" points="1595.3,-2641.82 1585.01,-2639.32 1591.49,-2647.7 1595.3,-2641.82"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_console -->
<g id="edge451" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4981.8,-2367.85C4999.39,-2345.64 5017.76,-2319.73 5032.03,-2298.91"/>
<polygon fill="#950303" stroke="black" points="5034.94,-2300.85 5037.68,-2290.62 5029.16,-2296.91 5034.94,-2300.85"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_email -->
<g id="edge452" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5185.8,-2813.78C5219.55,-2802.79 5490.87,-2757.29 5491.8,-2721.8"/>
<path fill="none" stroke="black" d="M5491.8,-2719.8C5492.97,-2674.98 5432.97,-2696.34 5413.8,-2655.81 5395.45,-2617.03 5398.43,-2567.39 5404.34,-2532.03"/>
<polygon fill="#950303" stroke="black" points="5407.82,-2532.46 5406.16,-2522 5400.93,-2531.21 5407.82,-2532.46"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_html -->
<g id="edge453" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4682.45,-2900.61C4715,-2894.45 4763.93,-2885.64 4806.8,-2879.77 4886.45,-2868.88 5097.72,-2884.91 5166.8,-2843.77 5179.72,-2836.08 5171.5,-2820.44 5185.8,-2815.78"/>
<path fill="none" stroke="black" d="M5185.8,-2813.78C5236.22,-2797.36 5257.33,-2774.64 5261.8,-2721.8"/>
<path fill="none" stroke="black" d="M5261.8,-2719.8C5265.92,-2671 5220.71,-2658.15 5237.8,-2612.26"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_report -->
<g id="edge454" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4682.38,-2900.11C4714.9,-2893.61 4763.8,-2884.6 4806.8,-2879.77 4961.36,-2862.42 5358.97,-2895.11 5505.8,-2843.77 5547.59,-2829.16 5548.13,-2807.35 5586.8,-2785.79 5651.17,-2749.89 5753.74,-2794.18 5739.8,-2721.8"/>
<path fill="none" stroke="black" d="M5739.8,-2719.8C5719.83,-2623.43 5590.82,-2731.41 5527.8,-2655.81 5499.51,-2621.88 5497.84,-2569.86 5501.31,-2532.57"/>
<polygon fill="#950303" stroke="black" points="5504.81,-2532.79 5502.41,-2522.47 5497.85,-2532.04 5504.81,-2532.79"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_telegram -->
<g id="edge455" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4682.36,-2899.93C4714.87,-2893.33 4763.76,-2884.25 4806.8,-2879.77 4863.36,-2873.89 5781.85,-2874.36 5829.8,-2843.77 5881.06,-2811.07 5933.7,-2765.87 5891.8,-2721.8"/>
<path fill="none" stroke="black" d="M5891.8,-2719.8C5881.39,-2707.14 5881.78,-2700.36 5867.8,-2691.81 5809.3,-2656.04 5770.17,-2700.05 5717.8,-2655.81 5680.85,-2624.6 5662.4,-2571.04 5653.5,-2532.65"/>
<polygon fill="#950303" stroke="black" points="5656.89,-2531.77 5651.34,-2522.74 5650.05,-2533.26 5656.89,-2531.77"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_executor -->
<g id="edge456" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4953.8,-2156.55C4947.34,-2128.16 4962.22,-2121.13 4967.8,-2092.56 4988.95,-1984.21 5009.96,-1856.16 5020.61,-1789.4"/>
<polygon fill="#950303" stroke="black" points="5024.12,-1789.65 5022.23,-1779.23 5017.2,-1788.55 5024.12,-1789.65"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_repository -->
<g id="edge457" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4953.8,-2156.55C4926.85,-2074.76 4953.8,-2048.91 4953.8,-1962.8 4953.8,-1962.8 4953.8,-1962.8 4953.8,-1851.27 4953.8,-1786.01 4950,-1766.31 4974.8,-1705.96 4979.81,-1693.75 4987.36,-1681.71 4995.2,-1671.09"/>
<polygon fill="#950303" stroke="black" points="4998.18,-1672.96 5001.51,-1662.9 4992.64,-1668.69 4998.18,-1672.96"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge458" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4675.32,-2889.67C4699.27,-2873.38 4731.9,-2847.2 4749.8,-2815.78"/>
<path fill="none" stroke="black" d="M4749.8,-2813.78C4777.14,-2765.77 4743.06,-2744.29 4725.8,-2691.81 4720.27,-2675 4712.67,-2673.07 4708.8,-2655.81 4700.13,-2617.17 4696.26,-2604.27 4708.8,-2566.71 4730.82,-2500.75 4747.59,-2483.92 4802.8,-2441.62 4870.83,-2389.48 4928.57,-2437.03 4981.8,-2369.85"/>
<path fill="none" stroke="black" d="M4981.8,-2367.85C5010.1,-2330.42 4977.22,-2199.21 4953.8,-2158.55"/>
<path fill="none" stroke="black" d="M4953.8,-2156.55C4787.88,-1947.3 4610.9,-2071.36 4415.8,-1889.03 4388.13,-1863.18 4393.63,-1847.11 4372.8,-1815.5 4366,-1805.19 4358.31,-1794.34 4350.92,-1784.3"/>
<polygon fill="#950303" stroke="black" points="4353.59,-1782.02 4344.82,-1776.07 4347.97,-1786.19 4353.59,-1782.02"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_client -->
<g id="edge459" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4682.35,-2899.83C4714.85,-2893.15 4763.74,-2884.03 4806.8,-2879.77 5444.33,-2816.74 5608.39,-2883.67 6247.8,-2843.77 6506.36,-2827.64 6569.59,-2806.83 6827.8,-2785.79 6891.16,-2780.63 7355.28,-2796.14 7398.8,-2749.79 7416.44,-2731 7403.58,-2717.13 7398.8,-2691.81 7387.71,-2633.13 7374.66,-2621 7349.8,-2566.71 7342.26,-2550.26 7335.15,-2548.27 7330.8,-2530.71 7321.28,-2492.28 7303.79,-2470.58 7330.8,-2441.62 7369.92,-2399.67 7791.64,-2424.54 7845.8,-2405.62 7850.78,-2403.88 7855.72,-2401.53 7860.47,-2398.86"/>
<polygon fill="#950303" stroke="black" points="7862.64,-2401.63 7869.32,-2393.41 7858.97,-2395.67 7862.64,-2401.63"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_watcher -->
<g id="edge460" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4682.35,-2899.78C4714.84,-2893.07 4763.73,-2883.94 4806.8,-2879.77 5578.92,-2805.12 5777.64,-2893.08 6551.8,-2843.77 6793.57,-2828.38 6852.15,-2803.03 7093.8,-2785.79 7149.41,-2781.82 8058.08,-2789.92 8096.8,-2749.79 8126.07,-2719.44 8092.98,-2696.96 8083.8,-2655.81 8052.34,-2514.78 8082.48,-2473.7 8053.8,-2332.08 8031.63,-2222.62 7994.89,-2202.93 7977.8,-2092.56 7932.64,-1800.95 8026.9,-1725.73 8029.8,-1430.67"/>
<path fill="none" stroke="black" d="M8029.8,-1428.67C8028.42,-1408.55 8028.2,-1386.27 8028.42,-1367.22"/>
<polygon fill="#950303" stroke="black" points="8031.92,-1367.07 8028.57,-1357.01 8024.92,-1366.96 8031.92,-1367.07"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_web_client -->
<g id="edge461" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6233.8,-2813.78C6531.39,-2735.68 6672.26,-2853.77 6907.8,-2655.81 6940.75,-2628.11 6920.05,-2601.22 6945.8,-2566.71 7065.18,-2406.72 7137.04,-2387.59 7328.8,-2332.08 7517.73,-2277.38 7752.91,-2264.36 7857.4,-2261.27"/>
<polygon fill="#950303" stroke="black" points="7857.8,-2264.76 7867.69,-2260.99 7857.6,-2257.76 7857.8,-2264.76"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_tree -->
<g id="edge462" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4630.88,-2881.72C4624.6,-2870.27 4617.45,-2856.54 4611.8,-2843.77 4610.59,-2841.06 4469.17,-2443.4 4466.8,-2441.62 4370.92,-2369.38 4037.51,-2454.33 3927.8,-2405.62 3884.84,-2386.55 3895.05,-2350.47 3851.8,-2332.08 3747.54,-2287.74 2927.99,-2357.51 2832.8,-2296.08 2815.34,-2284.82 2761.03,-2146.03 2749.8,-2128.56 2742.59,-2117.34 2733.75,-2105.82 2725.41,-2095.7"/>
<polygon fill="#950303" stroke="black" points="2727.99,-2093.32 2718.88,-2087.91 2722.62,-2097.82 2727.99,-2093.32"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_github -->
<g id="edge463" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4825.8,-2813.78C4877.04,-2771.41 4929.93,-2786.83 4943.8,-2721.8"/>
<path fill="none" stroke="black" d="M4943.8,-2719.8C4948.05,-2699.83 4948.67,-2677.3 4947.99,-2658.04"/>
<polygon fill="#950303" stroke="black" points="4951.48,-2657.83 4947.51,-2648.01 4944.49,-2658.17 4951.48,-2657.83"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge464" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4607.4,-2907.39C4549.57,-2904.39 4443.14,-2888.74 4407.8,-2815.78"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge465" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4749.8,-2813.78C4771.69,-2775.35 4785.59,-2765.98 4787.8,-2721.8"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_upload -->
<g id="edge466" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4681.67,-2898.34C4714.95,-2888.43 4764.78,-2870.52 4801.8,-2843.77 4815.08,-2834.18 4813.17,-2826.22 4825.8,-2815.78"/>
<path fill="none" stroke="black" d="M4825.8,-2813.78C4859.04,-2786.29 4855.43,-2764.92 4856.8,-2721.8"/>
<path fill="none" stroke="black" d="M4856.8,-2719.8C4857.43,-2699.6 4856.29,-2677.31 4854.75,-2658.28"/>
<polygon fill="#950303" stroke="black" points="4858.22,-2657.74 4853.86,-2648.08 4851.24,-2658.34 4858.22,-2657.74"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_counters -->
<g id="edge467" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4682.34,-2899.73C4714.83,-2892.99 4763.72,-2883.83 4806.8,-2879.77 5319.04,-2831.56 6607.39,-2854.01 7121.8,-2843.77 7550.13,-2835.25 8067.74,-2821.47 8227.47,-2817.13"/>
<polygon fill="#950303" stroke="black" points="8228.01,-2820.62 8237.91,-2816.85 8227.82,-2813.62 8228.01,-2820.62"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_result -->
<g id="edge468" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4682.82,-2900.95C4715.42,-2895.04 4764.19,-2886.41 4806.8,-2879.77 4922.5,-2861.74 4956.48,-2880.1 5067.8,-2843.77 5072.37,-2842.28 5077.01,-2840.4 5081.54,-2838.31"/>
<polygon fill="#950303" stroke="black" points="5083.22,-2841.39 5090.64,-2833.82 5080.12,-2835.11 5083.22,-2841.39"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_web_views_status_package -->
<g id="edge469" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4682.35,-2899.75C4714.84,-2893.02 4763.73,-2883.88 4806.8,-2879.77 5255.95,-2837.01 6386.08,-2864.31 6836.8,-2843.77 6872.38,-2842.15 8089.62,-2773.96 8115.8,-2749.79 8265.71,-2611.38 8170.19,-2499.52 8185.8,-2296.08 8188.3,-2263.49 8188.04,-2255.15 8185.8,-2222.54 8181.79,-2164.36 8171.81,-2150.74 8167.8,-2092.56 8153.78,-1889.22 8181.8,-1838 8181.8,-1634.19 8181.8,-1634.19 8181.8,-1634.19 8181.8,-1530.43 8181.8,-1239.19 8241.71,-1098.83 8494.8,-954.74 8597.71,-896.15 8651.73,-969.33 8758.8,-918.74 8762.87,-916.82 8766.82,-914.41 8770.6,-911.73"/>
<polygon fill="#950303" stroke="black" points="8772.86,-914.41 8778.57,-905.48 8768.54,-908.9 8772.86,-914.41"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge470" class="edge">
<title>ahriman_models_package_description&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6260.96,-3505.62C6399.04,-3478.11 6712.21,-3410.2 6797.8,-3344.8 7021.83,-3173.59 6926.4,-3009.68 7097.8,-2785.79 7123.42,-2752.32 7200.52,-2748.37 7167.8,-2721.8"/>
<path fill="none" stroke="black" d="M7167.8,-2719.8C7139.11,-2697.94 7107.28,-2673.34 7081.32,-2653.19"/>
<polygon fill="#b42d2d" stroke="black" points="7083.16,-2650.19 7073.11,-2646.82 7078.86,-2655.72 7083.16,-2650.19"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_models_package -->
<g id="edge471" class="edge">
<title>ahriman_models_package_description&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6133.37,-3502.56C6027.37,-3475.65 5803.08,-3419.94 5611.8,-3380.8 5293.6,-3315.69 5213.5,-3300.43 4891.8,-3255.71 4815.67,-3245.12 4599.24,-3276.81 4547.8,-3219.71 4530.55,-3200.56 4541.27,-3186.65 4547.8,-3161.72 4556.07,-3130.16 4582.07,-3130.32 4583.8,-3097.73"/>
<path fill="none" stroke="black" d="M4583.8,-3095.73C4584.96,-3054.63 4561.31,-3028.96 4593.8,-3003.75"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_ahriman -->
<g id="edge472" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7116.03,-3096.05C7474.5,-3097.62 9268.24,-3101.91 9502.8,-3031.74 9808.88,-2940.17 10487.49,-2451.64 10665.8,-2186.54 10676.59,-2170.49 11131.79,-894.12 11135.8,-875.19"/>
<path fill="none" stroke="black" d="M11135.8,-873.19C11140.22,-822.13 11119.47,-806.46 11135.8,-757.87"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge473" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6994.46,-3087.93C6940.83,-3081.24 6859.68,-3072.03 6788.8,-3067.74 6725.4,-3063.9 4558.68,-3061.91 4502.8,-3031.74 4489.57,-3024.6 4496.96,-3011.02 4483.8,-3003.75"/>
<path fill="none" stroke="black" d="M4483.8,-3001.75C4413.07,-2962.67 4428.58,-2916.71 4393.8,-2843.77 4311.2,-2670.59 4354.16,-2593.41 4236.8,-2441.62 4134.1,-2308.8 3754.11,-2105.66 3624.8,-1998.57 3570.18,-1953.35 3557.59,-1940.48 3508.8,-1889.03 3423.23,-1798.82 3405.44,-1772.28 3334.8,-1669.96 3197.15,-1470.6 3115.72,-1441.65 3039.8,-1211.59"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge474" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7054.57,-3067.46C7057.43,-3009.64 7070.69,-2875.75 7131.8,-2785.79 7147.18,-2763.14 7165,-2771.42 7181.8,-2749.79 7222.08,-2697.93 7231.41,-2677.78 7235.8,-2612.26"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge475" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4483.8,-3001.75C4456.95,-2985.98 4471.15,-2472.44 4466.8,-2441.62 4433.67,-2206.98 4481.4,-2111.21 4334.8,-1925.03 4313.64,-1898.17 4290.99,-1913.2 4266.8,-1889.03 4254.06,-1876.31 4234.45,-1865.35 4247.8,-1853.27"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_spawn -->
<g id="edge476" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7109.92,-3083.98C7224.41,-3059.63 7492.88,-3000.7 7714.8,-2937.76 7728.14,-2933.97 7742.51,-2929.43 7755.57,-2925.11"/>
<polygon fill="#e50505" stroke="black" points="7756.89,-2928.36 7765.26,-2921.86 7754.67,-2921.72 7756.89,-2928.36"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_models_package -->
<g id="edge477" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7016.76,-3073.17C6960.91,-3039.37 6859.64,-2978.95 6840.8,-2973.76 6622.88,-2913.71 5031.81,-2959.18 4806.8,-2937.76 4767.93,-2934.06 4724.33,-2926.25 4692.31,-2919.81"/>
<polygon fill="#e50505" stroke="black" points="4692.84,-2916.35 4682.35,-2917.78 4691.44,-2923.21 4692.84,-2916.35"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_models_remote_source -->
<g id="edge478" class="edge">
<title>ahriman_models_package_source&#45;&gt;ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7003.92,-3079.29C6955.57,-3063.35 6882.33,-3039.2 6831.72,-3022.52"/>
<polygon fill="#e50505" stroke="black" points="6832.51,-3019.09 6821.92,-3019.28 6830.32,-3025.74 6832.51,-3019.09"/>
</g>
<!-- ahriman_models_property -->
<g id="node115" class="node">
<title>ahriman_models_property</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="1565.8" cy="-2908.77" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1565.8" y="-2917.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1565.8" y="-2906.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="1565.8" y="-2895.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">property</text>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge479" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1529.55,-2899.42C1483.49,-2888.43 1401.78,-2867.7 1333.8,-2843.77 1173.06,-2787.21 1146.02,-2737.27 981.8,-2691.81 865.12,-2659.51 824.21,-2700.73 711.8,-2655.81 704.57,-2652.92 697.41,-2648.97 690.69,-2644.61"/>
<polygon fill="#f91010" stroke="black" points="692.66,-2641.72 682.43,-2638.93 688.69,-2647.49 692.66,-2641.72"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge480" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1558.32,-2880.18C1554.43,-2861.79 1551.33,-2837.17 1555.8,-2815.78"/>
<path fill="none" stroke="black" d="M1555.8,-2813.78C1564.17,-2773.65 1564.3,-2759.75 1548.8,-2721.8"/>
<path fill="none" stroke="black" d="M1548.8,-2719.8C1538.37,-2694.28 1477.84,-2662.2 1428.81,-2639.75"/>
<polygon fill="#f91010" stroke="black" points="1430.05,-2636.46 1419.49,-2635.53 1427.16,-2642.84 1430.05,-2636.46"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge481" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1602.29,-2899.6C1673.47,-2881.53 1829.77,-2830.81 1897.8,-2721.8"/>
<path fill="none" stroke="black" d="M1897.8,-2719.8C1908.13,-2698.96 1919.24,-2675.65 1928.44,-2656.08"/>
<polygon fill="#f91010" stroke="black" points="1931.71,-2657.33 1932.79,-2646.79 1925.38,-2654.36 1931.71,-2657.33"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge482" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1543.14,-2885.22C1517.91,-2860.35 1475.69,-2819.39 1437.8,-2785.79 1388.66,-2742.23 1374.62,-2733.39 1323.8,-2691.81 1304.67,-2676.17 1283.39,-2658.87 1265.55,-2644.42"/>
<polygon fill="#f91010" stroke="black" points="1267.6,-2641.57 1257.62,-2637.99 1263.19,-2647.01 1267.6,-2641.57"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge483" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1548.8,-2719.8C1540.92,-2700.52 1539.91,-2677.62 1541.27,-2657.92"/>
<polygon fill="#f91010" stroke="black" points="1544.76,-2658.22 1542.18,-2647.95 1537.79,-2657.59 1544.76,-2658.22"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge484" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1555.8,-2813.78C1569.1,-2750.05 1657.37,-2785.71 1669.8,-2721.8"/>
<path fill="none" stroke="black" d="M1669.8,-2719.8C1673.69,-2699.76 1674.26,-2677.22 1673.63,-2657.97"/>
<polygon fill="#f91010" stroke="black" points="1677.13,-2657.78 1673.19,-2647.95 1670.14,-2658.09 1677.13,-2657.78"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge485" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6717.6,-3001.01C6395.31,-2996.75 4812.81,-2974.11 4598.8,-2937.76 4190.14,-2868.34 4095.56,-2807.48 3709.8,-2655.81 3362.01,-2519.07 3280.19,-2470.71 2949.8,-2296.08 2944.65,-2293.36 2939.32,-2290.42 2934.05,-2287.44"/>
<polygon fill="#af1313" stroke="black" points="2935.69,-2284.34 2925.27,-2282.4 2932.21,-2290.42 2935.69,-2284.34"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge486" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6797.8,-2907.77C6847.25,-2811.03 7145.12,-2737.46 7216.8,-2655.81 7230.73,-2639.94 7234.58,-2633.34 7235.8,-2612.26"/>
<path fill="none" stroke="black" d="M7235.8,-2610.26C7237.63,-2582.89 7225.16,-2555.51 7210.76,-2533.55"/>
<polygon fill="#af1313" stroke="black" points="7213.5,-2531.36 7204.95,-2525.1 7207.74,-2535.32 7213.5,-2531.36"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge487" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6781.67,-2973.96C6786.2,-2955.7 6792.3,-2931.3 6797.8,-2909.77"/>
<path fill="none" stroke="black" d="M6797.8,-2907.77C6825.09,-2800.89 6917.4,-2706.07 6976.74,-2654.14"/>
<polygon fill="#af1313" stroke="black" points="6979.25,-2656.6 6984.53,-2647.41 6974.67,-2651.3 6979.25,-2656.6"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_models_package -->
<g id="edge488" class="edge">
<title>ahriman_models_remote_source&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6717.29,-3000.96C6434.75,-2996.94 5191.7,-2977.28 4806.8,-2937.76 4767.96,-2933.77 4724.36,-2925.98 4692.33,-2919.63"/>
<polygon fill="#af1313" stroke="black" points="4692.85,-2916.17 4682.36,-2917.62 4691.47,-2923.03 4692.85,-2916.17"/>
</g>
<!-- ahriman_models_report_settings -->
<g id="node117" class="node">
<title>ahriman_models_report_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="5653.8" cy="-2814.78" rx="57.97" ry="28.98"/>
<text text-anchor="middle" x="5653.8" y="-2823.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5653.8" y="-2812.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5653.8" y="-2801.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report_settings</text>
</g>
<!-- ahriman_models_report_settings&#45;&gt;ahriman_core_report_report -->
<g id="edge489" class="edge">
<title>ahriman_models_report_settings&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5693.26,-2793.44C5718.57,-2777.25 5745.67,-2752.28 5739.8,-2721.8"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge490" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4413.55,-3975.15C4472.18,-3968.91 4563.47,-3959.69 4642.8,-3953.83 6391,-3824.7 6851.14,-4030.62 8581.8,-3751.84 8737.42,-3726.78 8774.88,-3709.56 8923.8,-3657.86 9199.37,-3562.19 9251.96,-3498.66 9518.8,-3380.8 9559.34,-3362.89 9574.87,-3369.32 9611.8,-3344.8 9657.64,-3314.35 9653.86,-3288.85 9697.8,-3255.71 9795.89,-3181.71 9848.4,-3205.56 9941.8,-3125.72 10111.53,-2980.62 10448.85,-2511.19 10508.8,-2296.08 10548.56,-2153.39 10435.31,-2089.66 10511.8,-1962.8"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge491" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4413.23,-3974.64C4471.83,-3967.99 4563.27,-3958.47 4642.8,-3953.83 5426.07,-3908.1 5623.57,-3942.22 6407.8,-3917.83 7650.8,-3879.17 8032.6,-4103.02 9193.8,-3657.86 9358.51,-3594.72 10425.82,-2961.94 10556.8,-2843.77 10737.21,-2681 10804.4,-2635.27 10883.8,-2405.62 11025.43,-1995.97 10812.35,-1853.47 10907.8,-1430.67"/>
<path fill="none" stroke="black" d="M10907.8,-1428.67C10898.84,-1282.8 10813.62,-1236.96 10869.8,-1102.05"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge492" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4289.79,-3981.09C4107.83,-3978.41 3590.88,-3966.56 3533.8,-3917.83 3499.04,-3888.15 3518.52,-3862.7 3509.8,-3817.84"/>
<path fill="none" stroke="black" d="M3509.8,-3815.84C3495.66,-3764.72 3435.91,-3776.84 3433.8,-3723.85"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge493" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4289.75,-3980.64C4062.57,-3976.09 3286.49,-3957.92 3041.8,-3917.83 2774.67,-3874.06 2657.27,-3932.62 2455.8,-3751.84 2327.39,-3636.63 2313.13,-3550.92 2341.8,-3380.8 2358.92,-3279.17 2378.34,-3256.93 2417.8,-3161.72 2506.66,-2947.27 2523.2,-2888.93 2645.8,-2691.81 2656.5,-2674.6 2663.7,-2673.38 2673.8,-2655.81 2724.89,-2566.86 2711.14,-2531.93 2759.8,-2441.62 2787.9,-2389.45 2801.3,-2380.26 2835.8,-2332.08 2843.41,-2321.45 2851.76,-2310.02 2859.55,-2299.48"/>
<polygon fill="#e50505" stroke="black" points="2862.5,-2301.37 2865.64,-2291.25 2856.88,-2297.21 2862.5,-2301.37"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge494" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4542.8,-3898.83C4791.62,-3837.48 5446.27,-3908.34 5694.8,-3845.83 5752.63,-3831.28 5757.9,-3802.13 5815.8,-3787.84 5868.37,-3774.87 6752.22,-3790.83 6789.8,-3751.84 6841.46,-3698.23 6834.75,-3643.67 6789.8,-3584.32 6754.11,-3537.22 6708.27,-3584.82 6661.8,-3548.32 6624.08,-3518.7 6629.73,-3497.49 6608.8,-3454.34 6585.83,-3406.98 6581.26,-3394.45 6563.8,-3344.8 6477.56,-3099.58 6548.87,-2992.91 6391.8,-2785.79 6348.93,-2729.27 6328.08,-2719.55 6262.8,-2691.81 6177.66,-2655.64 6131.26,-2712.03 6057.8,-2655.81 6002.07,-2613.16 5932.62,-2439.47 5923.8,-2369.85"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_configuration -->
<g id="edge495" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4366.72,-3954.27C4398.96,-3893.93 4485.18,-3750.93 4604.8,-3693.86 4707.82,-3644.71 5050.77,-3628.46 5191.61,-3623.77"/>
<polygon fill="#e50505" stroke="black" points="5191.92,-3627.27 5201.8,-3623.44 5191.69,-3620.27 5191.92,-3627.27"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge496" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4413.89,-3975.85C4472.57,-3970.13 4563.74,-3961.3 4642.8,-3953.83 4650.38,-3953.11 6820.58,-3754.29 6827.8,-3751.84 6991.86,-3696.12 7344.11,-3514.95 7433.8,-3344.8 7452.26,-3309.77 7439.27,-3294.92 7433.8,-3255.71 7399.69,-3011.35 7285.14,-2968.5 7281.8,-2721.8"/>
<path fill="none" stroke="black" d="M7281.8,-2719.8C7282.22,-2650.29 7282.56,-2628.02 7249.8,-2566.71 7242.39,-2552.86 7231.84,-2539.79 7220.87,-2528.4"/>
<polygon fill="#e50505" stroke="black" points="7223.19,-2525.76 7213.64,-2521.17 7218.24,-2530.72 7223.19,-2525.76"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge497" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3509.8,-3815.84C3490.32,-3745.43 3534.4,-3560.19 3555.8,-3490.34 3657.88,-3157.16 3684.01,-3059.41 3899.8,-2785.79 3940.46,-2734.23 3955.68,-2722.37 4013.8,-2691.81 4127.54,-2632 4187.73,-2687.67 4291.8,-2612.26"/>
<path fill="none" stroke="black" d="M4291.8,-2610.26C4318.91,-2590.38 4342.61,-2561.16 4359.9,-2536.18"/>
<polygon fill="#e50505" stroke="black" points="4362.81,-2538.13 4365.52,-2527.89 4357.01,-2534.21 4362.81,-2538.13"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_patches -->
<g id="edge498" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_patches</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4289.92,-3980.28C3966.05,-3972.25 2499.42,-3935.04 2455.8,-3917.83 2370.18,-3884.04 2165.8,-3714.14 2165.8,-3622.09 2165.8,-3622.09 2165.8,-3622.09 2165.8,-3416.57 2165.8,-3131.28 2156.94,-3040.83 2284.8,-2785.79 2306.69,-2742.12 2307.44,-2726.54 2341.8,-2691.81 2388.9,-2644.19 2459.95,-2678.51 2469.8,-2612.26"/>
<path fill="none" stroke="black" d="M2469.8,-2610.26C2474.35,-2578.7 2456.32,-2547.52 2437.42,-2524.44"/>
<polygon fill="#e50505" stroke="black" points="2439.89,-2521.95 2430.73,-2516.62 2434.57,-2526.5 2439.89,-2521.95"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_tree -->
<g id="edge499" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4289.67,-3982.01C3973.64,-3982.69 2571.39,-3982.02 2388.8,-3917.83 1968.22,-3769.98 1975.8,-3449.55 1975.8,-3003.75 1975.8,-3003.75 1975.8,-3003.75 1975.8,-2907.77 1975.8,-2816.73 2249.76,-2732.51 2298.8,-2655.81 2351.45,-2573.45 2302.96,-2527.96 2348.8,-2441.62 2430.99,-2286.8 2592.64,-2147.49 2663.33,-2091.1"/>
<polygon fill="#e50505" stroke="black" points="2665.82,-2093.6 2671.49,-2084.64 2661.48,-2088.11 2665.82,-2093.6"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_util -->
<g id="edge500" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4392.62,-3960.34C4430.19,-3941.19 4488.66,-3914.17 4542.8,-3900.83"/>
<path fill="none" stroke="black" d="M4542.8,-3898.83C4770.28,-3842.74 5370.12,-3908.78 5595.8,-3845.83 5600.49,-3844.52 5605.23,-3842.73 5609.84,-3840.69"/>
<polygon fill="#e50505" stroke="black" points="5611.59,-3843.73 5619.06,-3836.21 5608.53,-3837.43 5611.59,-3843.73"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_models_package -->
<g id="edge501" class="edge">
<title>ahriman_models_repository_paths&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4298.3,-3968.26C4266.81,-3958.31 4227.99,-3942.22 4199.8,-3917.83 4160.6,-3883.92 4139.8,-3869.66 4139.8,-3817.84 4139.8,-3817.84 4139.8,-3817.84 4139.8,-3518.33 4139.8,-3393.43 4162.31,-3353.66 4239.8,-3255.71 4332.09,-3139.02 4392.01,-3148.76 4516.8,-3067.74 4542.24,-3051.22 4552.91,-3052.75 4574.8,-3031.74 4585.64,-3021.33 4581.92,-3012.97 4593.8,-3003.75"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application -->
<g id="edge502" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_application_application</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5333.8,-2156.55C5336.75,-2109.6 4968.76,-2236.64 5811.8,-1925.03 5866.42,-1904.84 5902.72,-1935.53 5937.8,-1889.03 5957.48,-1862.94 5955.79,-1842.78 5937.8,-1815.5 5591.73,-1290.87 3388.56,-1038.27 3007.05,-998.22"/>
<polygon fill="#d10505" stroke="black" points="3007.39,-994.74 2997.08,-997.18 3006.66,-1001.7 3007.39,-994.74"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge503" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5257.8,-1960.8C5239.61,-1897.93 5253.87,-1877.8 5233.8,-1815.5 5186.18,-1667.72 5202.45,-1596.32 5078.8,-1502.43 4750.46,-1253.13 3413.62,-1135.54 3058.67,-1108.34"/>
<polygon fill="#d10505" stroke="black" points="3058.69,-1104.83 3048.46,-1107.56 3058.16,-1111.81 3058.69,-1104.83"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge504" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_application_application_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5161.8,-2610.26C5147.98,-2557.33 5155.51,-2541.51 5161.8,-2487.17"/>
<path fill="none" stroke="black" d="M5161.8,-2485.17C5176.18,-2360.78 5183.57,-2018.98 5100.8,-1925.03 4881.65,-1676.29 4710.11,-1783.5 4387.8,-1705.96 3790.22,-1562.19 3579.89,-1732.4 3025.8,-1466.43 2987.12,-1447.87 2723.79,-1252.77 2735.8,-1211.59"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_handlers_report -->
<g id="edge505" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_handlers_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5091.09,-2795.31C5083.76,-2791.46 5075.72,-2787.92 5067.8,-2785.79 5013.87,-2771.27 1087.64,-2695.93 1048.8,-2655.81 1021.25,-2627.36 1046.21,-2606.23 1048.8,-2566.71 1079.08,-2104.06 1184.8,-1996.07 1184.8,-1532.43 1184.8,-1532.43 1184.8,-1532.43 1184.8,-1209.59 1184.8,-1004.79 1170.44,-947.78 1093.8,-757.87"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_console -->
<g id="edge506" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5139.39,-2789.85C5153.49,-2771.87 5172.33,-2746.24 5185.8,-2721.8"/>
<path fill="none" stroke="black" d="M5185.8,-2719.8C5209.43,-2676.91 5174.16,-2659.64 5161.8,-2612.26"/>
<path fill="none" stroke="black" d="M5161.8,-2610.26C5145.56,-2548.05 5095.24,-2550.76 5085.8,-2487.17"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_email -->
<g id="edge507" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5185.8,-2719.8C5204.61,-2683.53 5222.94,-2684.73 5251.8,-2655.81 5290.67,-2616.85 5299.55,-2606.28 5337.8,-2566.71 5352.22,-2551.79 5368.18,-2535.3 5381.81,-2521.22"/>
<polygon fill="#d10505" stroke="black" points="5384.68,-2523.29 5389.12,-2513.67 5379.65,-2518.42 5384.68,-2523.29"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_html -->
<g id="edge508" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5185.8,-2719.8C5210.24,-2672.67 5219.27,-2662.01 5237.8,-2612.26"/>
<path fill="none" stroke="black" d="M5237.8,-2610.26C5249.78,-2578.07 5271.79,-2546.03 5290.13,-2522.71"/>
<polygon fill="#d10505" stroke="black" points="5292.91,-2524.83 5296.44,-2514.84 5287.45,-2520.45 5292.91,-2524.83"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge509" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5529.8,-2719.8C5625.32,-2669.88 5714.58,-2578.26 5760.83,-2526.14"/>
<polygon fill="#d10505" stroke="black" points="5763.63,-2528.26 5767.61,-2518.44 5758.38,-2523.63 5763.63,-2528.26"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_report -->
<g id="edge510" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5149.63,-2796.66C5156.79,-2792.86 5164.47,-2789 5171.8,-2785.79 5216.59,-2766.14 5235.13,-2776.97 5275.8,-2749.79 5323.91,-2717.64 5428.83,-2588.7 5479.82,-2524.24"/>
<polygon fill="#d10505" stroke="black" points="5482.61,-2526.35 5486.06,-2516.34 5477.12,-2522.02 5482.61,-2526.35"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_telegram -->
<g id="edge511" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5148.63,-2795.73C5155.95,-2791.86 5163.96,-2788.22 5171.8,-2785.79 5314.41,-2741.58 5373.69,-2819.36 5505.8,-2749.79 5520.3,-2742.16 5516.43,-2731.28 5529.8,-2721.8"/>
<path fill="none" stroke="black" d="M5529.8,-2719.8C5592.56,-2675.28 5623.18,-2586.86 5636.63,-2532.77"/>
<polygon fill="#d10505" stroke="black" points="5640.1,-2533.3 5639.02,-2522.76 5633.29,-2531.68 5640.1,-2533.3"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_repository_executor -->
<g id="edge512" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5161.8,-2485.17C5187.39,-2323.11 5329.16,-2322.54 5333.8,-2158.55"/>
<path fill="none" stroke="black" d="M5333.8,-2156.55C5330.12,-2064.12 5265.73,-2054.96 5257.8,-1962.8"/>
<path fill="none" stroke="black" d="M5257.8,-1960.8C5243.71,-1912.11 5250.93,-1893.27 5219.8,-1853.27"/>
</g>
<!-- ahriman_models_sign_settings -->
<g id="node120" class="node">
<title>ahriman_models_sign_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db2f2f" stroke="black" cx="6429.8" cy="-3722.85" rx="52.15" ry="28.98"/>
<text text-anchor="middle" x="6429.8" y="-3731.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6429.8" y="-3720.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6429.8" y="-3709.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign_settings</text>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_application_ahriman -->
<g id="edge513" class="edge">
<title>ahriman_models_sign_settings&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6481.26,-3717.37C6546.51,-3711.72 6662.48,-3701.79 6761.8,-3693.86 7618.84,-3625.4 7842.56,-3688.69 8690.8,-3548.32 8855.64,-3521.05 8893.79,-3499.01 9054.8,-3454.34 9219.64,-3408.61 9265.16,-3408.84 9423.8,-3344.8 9521.77,-3305.25 9754.14,-3178.3 9845.8,-3125.72 10171.15,-2939.1 10245.95,-2879.82 10546.8,-2655.81 10617.52,-2603.14 10638.24,-2592.86 10700.8,-2530.71 10751.89,-2479.96 10767.54,-2467.85 10803.8,-2405.62 10830.04,-2360.56 10828.18,-2345.15 10845.8,-2296.08 10982.89,-1914.3 11135.8,-1836.31 11135.8,-1430.67 11135.8,-1430.67 11135.8,-1430.67 11135.8,-1209.59 11135.8,-1113.11 11127.73,-1088.65 11135.8,-992.51"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge514" class="edge">
<title>ahriman_models_sign_settings&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6387.8,-3620.09C6365.22,-3564.4 6392.15,-3532.97 6349.8,-3490.34 6310.55,-3450.84 6266.4,-3496.3 6229.8,-3454.34 6184.52,-3402.45 6205.8,-3370.12 6205.8,-3301.25 6205.8,-3301.25 6205.8,-3301.25 6205.8,-3189.71 6205.8,-2972.13 6219.98,-2871.2 6061.8,-2721.8"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge515" class="edge">
<title>ahriman_models_sign_settings&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6418.29,-3694.3C6409.89,-3674.25 6398.21,-3646.46 6387.8,-3622.09"/>
<path fill="none" stroke="black" d="M6387.8,-3620.09C6367.79,-3573.28 6280.21,-3490.99 6278.8,-3490.34 6164.81,-3437.55 5274.04,-3463.99 5148.8,-3454.34 5062.33,-3447.68 4962.1,-3434.12 4904.41,-3425.74"/>
<polygon fill="#db2f2f" stroke="black" points="4904.89,-3422.27 4894.49,-3424.29 4903.87,-3429.2 4904.89,-3422.27"/>
</g>
<!-- ahriman_models_smtp_ssl_settings -->
<g id="node121" class="node">
<title>ahriman_models_smtp_ssl_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="5395.8" cy="-2814.78" rx="67.76" ry="28.98"/>
<text text-anchor="middle" x="5395.8" y="-2823.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5395.8" y="-2812.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5395.8" y="-2801.28" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">smtp_ssl_settings</text>
</g>
<!-- ahriman_models_smtp_ssl_settings&#45;&gt;ahriman_core_report_email -->
<g id="edge516" class="edge">
<title>ahriman_models_smtp_ssl_settings&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5439.32,-2792.44C5464.33,-2776.83 5490.98,-2752.95 5491.8,-2721.8"/>
</g>
<!-- ahriman_models_upload_settings -->
<g id="node122" class="node">
<title>ahriman_models_upload_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="4875.8" cy="-2908.77" rx="60.21" ry="28.98"/>
<text text-anchor="middle" x="4875.8" y="-2917.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4875.8" y="-2906.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4875.8" y="-2895.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload_settings</text>
</g>
<!-- ahriman_models_upload_settings&#45;&gt;ahriman_core_upload_upload -->
<g id="edge517" class="edge">
<title>ahriman_models_upload_settings&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4870.71,-2879.7C4867.78,-2861.54 4864.52,-2837.35 4863.8,-2815.78"/>
</g>
<!-- ahriman_models_user -->
<g id="node123" class="node">
<title>ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b80909" stroke="black" cx="7667.8" cy="-2908.77" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="7667.8" y="-2917.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7667.8" y="-2906.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="7667.8" y="-2895.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user</text>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_application_handlers_users -->
<g id="edge518" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_application_handlers_users</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7629.41,-2906.21C7508.96,-2901.38 7127.69,-2886.6 6811.8,-2879.77 5287.18,-2846.85 4904.97,-2893.27 3380.8,-2843.77 2613.4,-2818.86 2418.65,-2836.88 1655.8,-2749.79 1506.97,-2732.8 1472.02,-2713.4 1323.8,-2691.81 1255.61,-2681.88 1062.8,-2706.2 1015.8,-2655.81 999.55,-2638.39 1010.14,-2465.04 1005.8,-2441.62 1001.77,-2419.92 876.58,-2086.23 880.8,-2064.57"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge519" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7702.5,-2896.21C7717.89,-2891.12 7736.23,-2885.1 7752.8,-2879.77 7936.81,-2820.66 7992.31,-2830.79 8167.8,-2749.79 8638.75,-2532.42 8684.45,-2345.08 9155.8,-2128.56 9328.52,-2049.22 9549.36,-1994.52 9644.6,-1973"/>
<polygon fill="#b80909" stroke="black" points="9645.51,-1976.38 9654.51,-1970.78 9643.98,-1969.55 9645.51,-1976.38"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge520" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7658.55,-2880.63C7649.36,-2855.25 7634.05,-2816.72 7615.8,-2785.79 7597.45,-2754.71 7584.49,-2752.68 7565.8,-2721.8"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge521" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7629.41,-2906.27C7508.95,-2901.62 7127.67,-2887.29 6811.8,-2879.77 5737.31,-2854.21 5467.51,-2891.85 4393.8,-2843.77 3833.91,-2818.71 2433.76,-2734.02 1878.8,-2655.81 1826.13,-2648.39 1766.84,-2635.6 1724.9,-2625.8"/>
<polygon fill="#b80909" stroke="black" points="1725.69,-2622.39 1715.16,-2623.5 1724.09,-2629.2 1725.69,-2622.39"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_status_web_client -->
<g id="edge522" class="edge">
<title>ahriman_models_user&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7671.42,-2879.81C7683.16,-2796.74 7725.74,-2546.17 7831.8,-2369.85"/>
<path fill="none" stroke="black" d="M7831.8,-2367.85C7839.37,-2351.52 7840.69,-2346.97 7850.8,-2332.08 7859,-2319.99 7868.9,-2307.6 7878.32,-2296.6"/>
<polygon fill="#b80909" stroke="black" points="7881.14,-2298.69 7885.07,-2288.85 7875.86,-2294.09 7881.14,-2298.69"/>
</g>
<!-- ahriman_models_user_access -->
<g id="node124" class="node">
<title>ahriman_models_user_access</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="9442.8" cy="-3002.75" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="9442.8" y="-3011.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9442.8" y="-3000.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="9442.8" y="-2989.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_access</text>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_application_ahriman -->
<g id="edge523" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9559.8,-2907.77C9777.2,-2770.88 10346.6,-2464.27 10540.8,-2296.08 10671.57,-2182.82 10706.57,-2149.12 10791.8,-1998.57 10793.61,-1995.36 11135.18,-996.15 11135.8,-992.51"/>
<path fill="none" stroke="black" d="M11135.8,-990.51C11140.08,-939.44 11125.18,-925.33 11135.8,-875.19"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_auth -->
<g id="edge524" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9483.8,-2813.78C9488.61,-2777.45 9513.34,-2778.75 9535.8,-2749.79 9640.21,-2615.16 9646.9,-2565.56 9763.8,-2441.62 9797.95,-2405.4 9830.07,-2415.56 9849.8,-2369.85"/>
<path fill="none" stroke="black" d="M9849.8,-2367.85C9856.44,-2349.89 9860.69,-2346.03 9873.8,-2332.08 9891.81,-2312.9 9909.15,-2319.67 9920.8,-2296.08 9967.54,-2201.39 9937.14,-2072.72 9915.7,-2006.37"/>
<polygon fill="#f91010" stroke="black" points="9918.95,-2005.05 9912.48,-1996.65 9912.31,-2007.25 9918.95,-2005.05"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge525" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9511.8,-2258.31C9521.7,-2203.46 9577.89,-2213.4 9587.8,-2158.55"/>
<path fill="none" stroke="black" d="M9587.8,-2156.55C9597.62,-2102.18 9584.49,-2082.61 9611.8,-2034.57 9621.76,-2017.06 9637.55,-2001.54 9652.48,-1989.47"/>
<polygon fill="#f91010" stroke="black" points="9654.9,-1992.02 9660.65,-1983.12 9650.61,-1986.49 9654.9,-1992.02"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge526" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9391.68,-3001.41C9142.7,-2999.54 8063.29,-2988.55 7922.8,-2937.76 7882.84,-2923.31 7882.29,-2903.13 7846.8,-2879.77 7786.95,-2840.4 7601.03,-2784.17 7565.8,-2721.8"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_models_user -->
<g id="edge527" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9391.65,-3001.74C9145.26,-3001.39 8079.16,-2996.47 7752.8,-2937.76 7738.91,-2935.26 7724.17,-2931.01 7710.94,-2926.56"/>
<polygon fill="#f91010" stroke="black" points="7711.75,-2923.14 7701.15,-2923.15 7709.44,-2929.75 7711.75,-2923.14"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge528" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9469.36,-2977.91C9492.26,-2958.11 9526.75,-2930.01 9559.8,-2909.77"/>
<path fill="none" stroke="black" d="M9559.8,-2907.77C9663.72,-2844.1 9647.16,-2782.3 9728.8,-2691.81 9851.58,-2555.7 9924.81,-2558.6 10025.8,-2405.62 10144.07,-2226.44 10274.76,-1695.44 10368.8,-1502.43 10409.78,-1418.32 10462.93,-1413.8 10475.8,-1321.13"/>
<path fill="none" stroke="black" d="M10475.8,-1319.13C10477.28,-1270.45 10445.33,-1259.36 10454.8,-1211.59"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_base -->
<g id="edge529" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9169.8,-2156.55C9142.64,-2123.14 9169.8,-2005.86 9169.8,-1962.8 9169.8,-1962.8 9169.8,-1962.8 9169.8,-1851.27 9169.8,-1678.68 9129.38,-1638.64 9117.8,-1466.43 9115.6,-1433.82 9114.65,-1425.43 9117.8,-1392.9 9120.92,-1360.55 9135.66,-1353.39 9131.8,-1321.13"/>
<path fill="none" stroke="black" d="M9131.8,-1319.13C9122.62,-1265.42 9000.8,-1153.82 9017.8,-1102.05"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_index -->
<g id="edge530" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9473.8,-1960.8C9494.31,-1825.66 9537.41,-1801.72 9573.8,-1669.96 9611.65,-1532.89 9621.73,-1497.94 9639.8,-1356.9 9654.2,-1244.42 9642.07,-1215.02 9651.8,-1102.05"/>
<path fill="none" stroke="black" d="M9651.8,-1100.05C9650.27,-1052.28 9679.71,-1031.31 9651.8,-992.51"/>
<path fill="none" stroke="black" d="M9651.8,-990.51C9618.78,-944.62 9590.98,-953.99 9546.8,-918.74 9542.56,-915.36 9538.23,-911.68 9534,-907.95"/>
<polygon fill="#f91010" stroke="black" points="9536.3,-905.32 9526.53,-901.23 9531.62,-910.52 9536.3,-905.32"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_add -->
<g id="edge531" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9483.8,-2907.77C9494.81,-2868.39 9481.27,-2856.59 9483.8,-2815.78"/>
<path fill="none" stroke="black" d="M9483.8,-2813.78C9486.06,-2777.21 9445.59,-2783.74 9431.8,-2749.79 9368,-2592.72 9397.8,-2539.39 9397.8,-2369.85 9397.8,-2369.85 9397.8,-2369.85 9397.8,-2156.55 9397.8,-2101.3 9399.74,-2085.23 9421.8,-2034.57 9437.52,-1998.46 9467.76,-2001.73 9473.8,-1962.8"/>
<path fill="none" stroke="black" d="M9473.8,-1960.8C9477.99,-1921.64 9433.94,-1926.51 9421.8,-1889.03 9411.72,-1857.94 9421.68,-1848.18 9421.8,-1815.5 9422.13,-1718.13 9427.85,-1693.66 9422.8,-1596.42 9419.29,-1529.04 9356.78,-1059.91 9359.8,-992.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge532" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9321.8,-2258.31C9307.82,-2216.23 9331.71,-2201.76 9321.8,-2158.55"/>
<path fill="none" stroke="black" d="M9321.8,-2156.55C9315.04,-2127.09 9306.08,-2121.89 9298.8,-2092.56 9273.31,-1989.89 9207.8,-1566.44 9207.8,-1430.67 9207.8,-1430.67 9207.8,-1430.67 9207.8,-1100.05 9207.8,-1040.62 9198.04,-973.02 9190.05,-927.6"/>
<polygon fill="#f91010" stroke="black" points="9193.48,-926.91 9188.27,-917.68 9186.59,-928.14 9193.48,-926.91"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_request -->
<g id="edge533" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9321.8,-2156.55C9263.22,-1855.41 9332.68,-1773.2 9335.8,-1466.43 9336.13,-1433.75 9336.58,-1425.57 9335.8,-1392.9 9332.68,-1263.52 9321.8,-1231.46 9321.8,-1102.05"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_search -->
<g id="edge534" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9405.64,-2982.68C9374.26,-2965.7 9328.94,-2939.06 9293.8,-2909.77"/>
<path fill="none" stroke="black" d="M9293.8,-2907.77C9098.02,-2744.61 9023.98,-2727.29 8861.8,-2530.71 8749.21,-2394.24 8746.51,-2341.86 8661.8,-2186.54 8639.34,-2145.36 8634.57,-2134.61 8613.8,-2092.56 8577.25,-2018.58 8573.69,-1997.26 8533.8,-1925.03 8519.22,-1898.65 8256.01,-1493.99 8243.8,-1466.43 8175.71,-1312.79 8135.91,-1269.96 8142.8,-1102.05"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge535" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9369.8,-2719.8C9297.64,-2527.57 9386.53,-2455.17 9321.8,-2260.31"/>
<path fill="none" stroke="black" d="M9321.8,-2258.31C9289.18,-2184.38 9222.16,-2220.09 9169.8,-2158.55"/>
<path fill="none" stroke="black" d="M9169.8,-2156.55C9109.86,-2086.1 9093.8,-2055.3 9093.8,-1962.8 9093.8,-1962.8 9093.8,-1962.8 9093.8,-1851.27 9093.8,-1650.82 8725.48,-1170.44 8817.8,-992.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_package -->
<g id="edge536" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9458.74,-2975.08C9468.34,-2957.29 9479.51,-2932.98 9483.8,-2909.77"/>
<path fill="none" stroke="black" d="M9483.8,-2907.77C9492.6,-2860.1 9389.03,-2766.29 9369.8,-2721.8"/>
<path fill="none" stroke="black" d="M9369.8,-2719.8C9353.43,-2691.82 9347.55,-2685.61 9334.8,-2655.81 9275.41,-2516.99 9283.42,-2473.97 9231.8,-2332.08 9213.8,-2282.62 9214.32,-2267.4 9186.8,-2222.54 9175.75,-2204.54 9168.46,-2203.43 9155.8,-2186.54 9025.31,-2012.49 8893.9,-1694.21 8832.8,-1596.42 8794.88,-1535.74 8764.58,-1532.79 8737.8,-1466.43 8670.88,-1300.64 8691.04,-1239.25 8727.8,-1064.28 8738.5,-1013.34 8762.51,-958.74 8781.09,-921.38"/>
<polygon fill="#f91010" stroke="black" points="8784.31,-922.77 8785.69,-912.26 8778.06,-919.62 8784.31,-922.77"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge537" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9511.8,-2156.55C9515.71,-2127.14 9625.45,-1947.53 9644.8,-1925.03 9712.55,-1846.24 9765.67,-1862.8 9827.8,-1779.5 9917.46,-1659.26 9918.6,-1612.23 9953.8,-1466.43 10008.13,-1241.35 10022.97,-1114.96 9855.8,-954.74 9823.53,-923.82 9776.96,-902.8 9741.68,-890.18"/>
<polygon fill="#f91010" stroke="black" points="9742.64,-886.81 9732.05,-886.84 9740.35,-893.42 9742.64,-886.81"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_status -->
<g id="edge538" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9293.8,-2907.77C9252.51,-2871.05 9288.97,-2837.61 9269.8,-2785.79 9238.14,-2700.26 8485,-1445.09 8461.8,-1356.9 8416.16,-1183.46 8377.83,-1090.68 8494.8,-954.74 8519.17,-926.41 8539.84,-939.68 8570.8,-918.74 8574.47,-916.25 8578.14,-913.48 8581.72,-910.58"/>
<polygon fill="#f91010" stroke="black" points="8584.03,-913.21 8589.37,-904.07 8579.49,-907.88 8584.03,-913.21"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_login -->
<g id="edge539" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9483.8,-2907.77C9483.93,-2907.29 9801.39,-2441.89 9801.8,-2441.62 9875.64,-2393.52 9934.23,-2467.68 9996.8,-2405.62 10055.9,-2346.99 10130.16,-1752.76 10138.8,-1669.96 10154.88,-1515.73 10141.26,-1476.14 10144.8,-1321.13"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge540" class="edge">
<title>ahriman_models_user_access&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9483.8,-2813.78C9504.54,-2568.35 9468.02,-2502.69 9511.8,-2260.31"/>
<path fill="none" stroke="black" d="M9511.8,-2258.31C9522.82,-2215.36 9511.8,-2202.89 9511.8,-2158.55"/>
<path fill="none" stroke="black" d="M9511.8,-2156.55C9511.8,-1983.06 9633.76,-1889.75 9744.8,-1466.43 9755.2,-1426.76 9816.57,-1141.02 9803.8,-1102.05"/>
<path fill="none" stroke="black" d="M9803.8,-1100.05C9781.22,-1050.22 9739.56,-1069.67 9703.8,-1028.28 9679.74,-1000.44 9686.76,-984.97 9665.8,-954.74 9655.24,-939.51 9642.01,-924.11 9629.79,-910.96"/>
<polygon fill="#f91010" stroke="black" points="9632.15,-908.36 9622.73,-903.5 9627.06,-913.17 9632.15,-908.36"/>
</g>
<!-- ahriman_models_user_identity -->
<g id="node125" class="node">
<title>ahriman_models_user_identity</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce3b3b" stroke="black" cx="10299.8" cy="-1210.59" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="10299.8" y="-1219.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10299.8" y="-1208.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="10299.8" y="-1197.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user_identity</text>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge541" class="edge">
<title>ahriman_models_user_identity&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10299.8,-1100.05C10314.17,-1026.45 10409.96,-1064.82 10429.8,-992.51"/>
<path fill="none" stroke="black" d="M10429.8,-990.51C10435.92,-968.19 10436.51,-942.52 10435.32,-921.07"/>
<polygon fill="#ce3b3b" stroke="black" points="10438.8,-920.64 10434.61,-910.91 10431.82,-921.13 10438.8,-920.64"/>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_views_user_login -->
<g id="edge542" class="edge">
<title>ahriman_models_user_identity&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10296.87,-1181.45C10295.29,-1159.59 10294.61,-1128.62 10299.8,-1102.05"/>
<path fill="none" stroke="black" d="M10299.8,-1100.05C10309.6,-1049.85 10287.08,-1035.13 10258.8,-992.51"/>
</g>
<!-- ahriman_version -->
<g id="node126" class="node">
<title>ahriman_version</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e72222" stroke="black" cx="10461.8" cy="-2259.31" rx="38.37" ry="21.43"/>
<text text-anchor="middle" x="10461.8" y="-2262.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10461.8" y="-2251.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">version</text>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_ahriman -->
<g id="edge543" class="edge">
<title>ahriman_version&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10437.8,-2062.57C10351.18,-1900.93 10545.38,-1429.59 10565.8,-1247.36 10597.38,-965.46 10564.16,-890.69 10608.8,-610.57 10626.13,-501.77 10781.22,-202.35 10703.8,-123.97"/>
<path fill="none" stroke="black" d="M10703.8,-121.97C10623.99,-60.09 3794.95,-32.82 3099.74,-30.2"/>
<polygon fill="#e72222" stroke="black" points="3099.73,-26.7 3089.71,-30.16 3099.7,-33.7 3099.73,-26.7"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_lock -->
<g id="edge544" class="edge">
<title>ahriman_version&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10458.73,-2237.88C10455.23,-2217.32 10448.54,-2184.95 10437.8,-2158.55"/>
<path fill="none" stroke="black" d="M10437.8,-2156.55C10425.3,-2125.84 10395.99,-2102.47 10370.35,-2086.97"/>
<polygon fill="#e72222" stroke="black" points="10371.87,-2083.81 10361.47,-2081.82 10368.36,-2089.86 10371.87,-2083.81"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_views_index -->
<g id="edge545" class="edge">
<title>ahriman_version&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10437.8,-2062.57C10399.81,-1974.59 10310.98,-1959.37 10203.8,-1925.03 10093.96,-1889.85 10035.45,-1962.81 9946.8,-1889.03 9715.71,-1696.74 9786.07,-1543.23 9732.8,-1247.36 9727.07,-1215.56 9739.04,-1132.34 9727.8,-1102.05"/>
<path fill="none" stroke="black" d="M9727.8,-1100.05C9712.21,-1063.87 9698.33,-1060.59 9675.8,-1028.28 9664.84,-1012.58 9662.98,-1008.05 9651.8,-992.51"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_views_status_status -->
<g id="edge546" class="edge">
<title>ahriman_version&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10437.8,-2156.55C10422.39,-2118.68 10455.72,-2101.31 10437.8,-2064.57"/>
<path fill="none" stroke="black" d="M10437.8,-2062.57C10390.52,-1965.67 10306.9,-2030.11 10203.8,-1998.57 10127.79,-1975.33 10116.36,-1949.66 10040.8,-1925.03 9966.54,-1900.83 9943.05,-1913.25 9868.8,-1889.03 9436.02,-1747.87 9345.56,-1664.73 8935.8,-1466.43 8839.97,-1420.06 8787.66,-1441.3 8722.8,-1356.9 8623.66,-1227.9 8613.86,-1024.9 8615.38,-928.91"/>
<polygon fill="#e72222" stroke="black" points="8618.88,-928.92 8615.58,-918.85 8611.88,-928.78 8618.88,-928.92"/>
</g>
<!-- ahriman_web -->
<g id="node127" class="node">
<title>ahriman_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="6449.8" cy="-545.57" rx="41.59" ry="18"/>
<text text-anchor="middle" x="6449.8" y="-543.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.web</text>
</g>
<!-- ahriman_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge547" class="edge">
<title>ahriman_web&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6472.28,-530.38C6500.04,-511.04 6541.12,-475.34 6519.8,-444.81"/>
</g>
<!-- ahriman_web_middlewares -->
<g id="node128" class="node">
<title>ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c82323" stroke="black" cx="7879.8" cy="-647.34" rx="50.41" ry="28.98"/>
<text text-anchor="middle" x="7879.8" y="-655.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7879.8" y="-644.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="7879.8" y="-633.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares</text>
</g>
<!-- ahriman_web_middlewares&#45;&gt;ahriman_web_web -->
<g id="edge548" class="edge">
<title>ahriman_web_middlewares&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7869.04,-618.81C7864.74,-607.82 7859.73,-595 7855.13,-583.23"/>
<polygon fill="#c82323" stroke="black" points="7858.29,-581.7 7851.39,-573.66 7851.77,-584.25 7858.29,-581.7"/>
</g>
<!-- ahriman_web_middlewares_auth_handler&#45;&gt;ahriman_web_web -->
<g id="edge549" class="edge">
<title>ahriman_web_middlewares_auth_handler&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10434.77,-837.43C10436.78,-814.29 10437.15,-783.78 10429.8,-757.87"/>
</g>
<!-- ahriman_web_middlewares_exception_handler -->
<g id="node130" class="node">
<title>ahriman_web_middlewares_exception_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#913030" stroke="black" cx="10296.8" cy="-756.87" rx="67.35" ry="36.54"/>
<text text-anchor="middle" x="10296.8" y="-770.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10296.8" y="-759.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10296.8" y="-748.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="10296.8" y="-737.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">exception_handler</text>
</g>
<!-- ahriman_web_middlewares_exception_handler&#45;&gt;ahriman_web_web -->
<g id="edge550" class="edge">
<title>ahriman_web_middlewares_exception_handler&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10305.59,-720.03C10309,-697.86 10309.5,-669.67 10296.8,-648.34"/>
</g>
<!-- ahriman_web_routes -->
<g id="node131" class="node">
<title>ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#732626" stroke="black" cx="8627.8" cy="-647.34" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="8627.8" y="-655.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8627.8" y="-644.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="8627.8" y="-633.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">routes</text>
</g>
<!-- ahriman_web_routes&#45;&gt;ahriman_web_web -->
<g id="edge551" class="edge">
<title>ahriman_web_routes&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8590.37,-641.59C8461.03,-625.2 8033,-570.94 7888.74,-552.65"/>
<polygon fill="#732626" stroke="black" points="7888.82,-549.13 7878.45,-551.35 7887.93,-556.08 7888.82,-549.13"/>
</g>
<!-- ahriman_web_views -->
<g id="node132" class="node">
<title>ahriman_web_views</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f91010" stroke="black" cx="8627.8" cy="-756.87" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="8627.8" y="-765.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8627.8" y="-754.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="8627.8" y="-743.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views</text>
</g>
<!-- ahriman_web_views&#45;&gt;ahriman_web_routes -->
<g id="edge552" class="edge">
<title>ahriman_web_views&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8627.8,-727.62C8627.8,-715.02 8627.8,-700 8627.8,-686.43"/>
<polygon fill="#f91010" stroke="black" points="8631.3,-686.4 8627.8,-676.4 8624.3,-686.4 8631.3,-686.4"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_index -->
<g id="edge553" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9102.94,-981.94C9136.51,-974.33 9187.33,-963.15 9231.8,-954.74 9329.58,-936.25 9363.38,-962.42 9452.8,-918.74 9458.05,-916.17 9463.12,-912.83 9467.87,-909.13"/>
<polygon fill="#950303" stroke="black" points="9470.16,-911.78 9475.53,-902.65 9465.64,-906.44 9470.16,-911.78"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_add -->
<g id="edge554" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9103.09,-982.47C9176.86,-966.42 9336.23,-930.89 9358.8,-918.74 9362.7,-916.64 9366.53,-914.13 9370.22,-911.4"/>
<polygon fill="#950303" stroke="black" points="9372.42,-914.12 9378.02,-905.13 9368.03,-908.67 9372.42,-914.12"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge555" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9091.66,-964.34C9107.18,-948.64 9127.15,-928.45 9144.15,-911.25"/>
<polygon fill="#950303" stroke="black" points="9146.69,-913.66 9151.23,-904.09 9141.71,-908.74 9146.69,-913.66"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_request -->
<g id="edge556" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9100.59,-975.65C9133.37,-961.49 9183.73,-939.35 9226.8,-918.74 9240.41,-912.23 9255.08,-904.84 9268.34,-898.03"/>
<polygon fill="#950303" stroke="black" points="9269.99,-901.11 9277.27,-893.42 9266.78,-894.89 9269.99,-901.11"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_search -->
<g id="edge557" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9027.61,-987.91C8926.15,-980.55 8651.99,-957.53 8570.8,-918.74 8566.73,-916.8 8562.78,-914.38 8559.01,-911.69"/>
<polygon fill="#950303" stroke="black" points="8561.07,-908.87 8551.05,-905.44 8556.75,-914.37 8561.07,-908.87"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge558" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9065.8,-954.65C9065.8,-946.58 9065.8,-937.83 9065.8,-929.19"/>
<polygon fill="#950303" stroke="black" points="9069.3,-929.15 9065.8,-919.15 9062.3,-929.15 9069.3,-929.15"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_package -->
<g id="edge559" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9031.27,-975.2C8984.72,-954.55 8901.75,-917.75 8850.49,-895.01"/>
<polygon fill="#950303" stroke="black" points="8851.86,-891.79 8841.3,-890.94 8849.02,-898.19 8851.86,-891.79"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge560" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9102.48,-981.23C9135.95,-973.09 9186.91,-961.52 9231.8,-954.74 9412.23,-927.47 9472.53,-989.34 9640.8,-918.74 9645.26,-916.87 9649.62,-914.45 9653.79,-911.73"/>
<polygon fill="#950303" stroke="black" points="9655.99,-914.45 9662.05,-905.76 9651.9,-908.77 9655.99,-914.45"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_status -->
<g id="edge561" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9027.38,-990.67C8953.28,-989.51 8787.13,-979.68 8664.8,-918.74 8660.93,-916.81 8657.16,-914.47 8653.54,-911.88"/>
<polygon fill="#950303" stroke="black" points="8655.42,-908.91 8645.4,-905.48 8651.09,-914.41 8655.42,-908.91"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_login -->
<g id="edge562" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9102.45,-981.04C9135.91,-972.78 9186.85,-961.13 9231.8,-954.74 9457.2,-922.68 9519.68,-964.05 9742.8,-918.74 9770.6,-913.09 9800.68,-902.97 9824.58,-893.9"/>
<polygon fill="#950303" stroke="black" points="9826.02,-897.1 9834.09,-890.23 9823.5,-890.57 9826.02,-897.1"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge563" class="edge">
<title>ahriman_web_views_base&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9102.85,-981.43C9136.36,-973.48 9187.14,-962.08 9231.8,-954.74 9370.84,-931.87 9418.74,-977.55 9546.8,-918.74 9550.89,-916.86 9554.86,-914.49 9558.65,-911.82"/>
<polygon fill="#950303" stroke="black" points="9560.89,-914.51 9566.62,-905.61 9556.58,-908.99 9560.89,-914.51"/>
</g>
<!-- ahriman_web_views_index&#45;&gt;ahriman_web_routes -->
<g id="edge564" class="edge">
<title>ahriman_web_views_index&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9478.57,-842.94C9460.68,-818.55 9433.6,-784.11 9405.8,-757.87"/>
</g>
<!-- ahriman_web_views_service -->
<g id="node135" class="node">
<title>ahriman_web_views_service</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="8335.8" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8335.8" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8335.8" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="8335.8" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="8335.8" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service</text>
</g>
<!-- ahriman_web_views_service&#45;&gt;ahriman_web_routes -->
<g id="edge565" class="edge">
<title>ahriman_web_views_service&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8361.55,-846.96C8368.17,-840.9 8375.5,-834.73 8382.8,-829.64 8440.47,-789.42 8497.73,-823.18 8523.8,-757.87"/>
<path fill="none" stroke="black" d="M8523.8,-755.87C8537.29,-722.07 8567.18,-693.04 8591.47,-673.7"/>
<polygon fill="#c24747" stroke="black" points="8593.69,-676.4 8599.46,-667.52 8589.41,-670.87 8593.69,-676.4"/>
</g>
<!-- ahriman_web_views_service_add&#45;&gt;ahriman_web_routes -->
<g id="edge566" class="edge">
<title>ahriman_web_views_service_add&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9419.09,-832.13C9424.4,-807.02 9425.31,-776.28 9405.8,-757.87"/>
</g>
<!-- ahriman_web_views_service_remove&#45;&gt;ahriman_web_routes -->
<g id="edge567" class="edge">
<title>ahriman_web_views_service_remove&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9209.41,-845.75C9216.45,-840 9224.14,-834.28 9231.8,-829.64 9303.37,-786.33 9466.65,-815.28 9405.8,-757.87"/>
</g>
<!-- ahriman_web_views_service_request&#45;&gt;ahriman_web_routes -->
<g id="edge568" class="edge">
<title>ahriman_web_views_service_request&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9340.28,-844.32C9370.74,-812.66 9413.69,-765.32 9405.8,-757.87"/>
</g>
<!-- ahriman_web_views_service_search&#45;&gt;ahriman_web_routes -->
<g id="edge569" class="edge">
<title>ahriman_web_views_service_search&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8516.38,-830.4C8514.31,-808.04 8514.71,-780.65 8523.8,-757.87"/>
</g>
<!-- ahriman_web_views_status -->
<g id="node140" class="node">
<title>ahriman_web_views_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="8429.8" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8429.8" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8429.8" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="8429.8" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="8429.8" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status</text>
</g>
<!-- ahriman_web_views_status&#45;&gt;ahriman_web_routes -->
<g id="edge570" class="edge">
<title>ahriman_web_views_status&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8457.41,-848.76C8479.63,-827.26 8509.43,-793.86 8523.8,-757.87"/>
</g>
<!-- ahriman_web_views_status_ahriman&#45;&gt;ahriman_web_routes -->
<g id="edge571" class="edge">
<title>ahriman_web_views_status_ahriman&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9097.66,-849.51C9108.41,-842.35 9120.74,-834.98 9132.8,-829.64 9247.52,-778.86 9497.05,-843.96 9405.8,-757.87"/>
<path fill="none" stroke="black" d="M9405.8,-755.87C9299.87,-655.95 8829.11,-647.91 8676.05,-647.98"/>
<polygon fill="#822b2b" stroke="black" points="8676.01,-644.48 8666.01,-648 8676.02,-651.48 8676.01,-644.48"/>
</g>
<!-- ahriman_web_views_status_package&#45;&gt;ahriman_web_routes -->
<g id="edge572" class="edge">
<title>ahriman_web_views_status_package&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8780.29,-840.98C8746.5,-798.28 8687.21,-723.39 8653.38,-680.65"/>
<polygon fill="#732626" stroke="black" points="8655.92,-678.22 8646.97,-672.55 8650.43,-682.56 8655.92,-678.22"/>
</g>
<!-- ahriman_web_views_status_packages&#45;&gt;ahriman_web_routes -->
<g id="edge573" class="edge">
<title>ahriman_web_views_status_packages&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9661.19,-843.61C9654.79,-838.45 9647.84,-833.51 9640.8,-829.64 9545.04,-777.14 9485.23,-832.81 9405.8,-757.87"/>
</g>
<!-- ahriman_web_views_status_status&#45;&gt;ahriman_web_routes -->
<g id="edge574" class="edge">
<title>ahriman_web_views_status_status&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8589.37,-843.87C8560.28,-813.09 8519.83,-767.8 8523.8,-757.87"/>
</g>
<!-- ahriman_web_views_user -->
<g id="node145" class="node">
<title>ahriman_web_views_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c24747" stroke="black" cx="8711.8" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8711.8" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8711.8" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="8711.8" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="8711.8" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user</text>
</g>
<!-- ahriman_web_views_user&#45;&gt;ahriman_web_routes -->
<g id="edge575" class="edge">
<title>ahriman_web_views_user&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8686.28,-846.62C8679.65,-840.56 8672.26,-834.49 8664.8,-829.64 8605.83,-791.34 8497.73,-823.18 8523.8,-757.87"/>
</g>
<!-- ahriman_web_views_user_login&#45;&gt;ahriman_web_routes -->
<g id="edge576" class="edge">
<title>ahriman_web_views_user_login&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9833.48,-859.43C9808.28,-850.21 9773.8,-838.23 9742.8,-829.64 9595.21,-788.79 9517.19,-862.96 9405.8,-757.87"/>
</g>
<!-- ahriman_web_views_user_logout&#45;&gt;ahriman_web_routes -->
<g id="edge577" class="edge">
<title>ahriman_web_views_user_logout&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9565.28,-844.46C9559.41,-839.22 9553.09,-834.03 9546.8,-829.64 9489.12,-789.42 9456.95,-806.13 9405.8,-757.87"/>
</g>
<!-- ahriman_web_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge578" class="edge">
<title>ahriman_web_web&#45;&gt;ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7802.48,-543.33C7589.29,-536.19 6557.58,-498.9 6519.8,-444.81"/>
</g>
<!-- aioauthclient -->
<g id="node149" class="node">
<title>aioauthclient</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b67b53" stroke="black" points="9987.3,-2386.85 9984.3,-2390.85 9963.3,-2390.85 9960.3,-2386.85 9916.3,-2386.85 9916.3,-2350.85 9987.3,-2350.85 9987.3,-2386.85"/>
<text text-anchor="middle" x="9951.8" y="-2366.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aioauthclient</text>
</g>
<!-- aioauthclient&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge579" class="edge">
<title>aioauthclient&#45;&gt;ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9955.87,-2350.7C9960.94,-2329.46 9969.88,-2292.19 9977.8,-2260.31"/>
</g>
<!-- aiohttp -->
<g id="node150" class="node">
<title>aiohttp</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#f9c806" stroke="black" points="9289.8,-1549.43 9286.8,-1553.43 9265.8,-1553.43 9262.8,-1549.43 9235.8,-1549.43 9235.8,-1513.43 9289.8,-1513.43 9289.8,-1549.43"/>
<text text-anchor="middle" x="9262.8" y="-1528.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttp</text>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares -->
<g id="edge580" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9235.54,-1527.34C9178.73,-1520.41 9043.94,-1501.45 8935.8,-1466.43 8534.82,-1336.62 8389.34,-1329.74 8094.8,-1028.28 7991.85,-922.91 7921.29,-758.54 7893.28,-685.49"/>
<polygon fill="#f9c806" stroke="black" points="7896.43,-683.91 7889.61,-675.8 7889.88,-686.39 7896.43,-683.91"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge581" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9730.8,-1428.67C9746.27,-1421.46 9731.91,-1404.09 9744.8,-1392.9 9797.82,-1346.85 10305.07,-1291.35 10359.8,-1247.36 10415.67,-1202.44 10425.56,-1173.61 10429.8,-1102.05"/>
<path fill="none" stroke="black" d="M10429.8,-1100.05C10431.54,-1052.28 10417.15,-1038.6 10429.8,-992.51"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_exception_handler -->
<g id="edge582" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares_exception_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9289.96,-1527.47C9363.13,-1518.9 9569.68,-1490.77 9730.8,-1430.67"/>
<path fill="none" stroke="black" d="M9730.8,-1428.67C9746.79,-1422.7 9735.4,-1407.15 9744.8,-1392.9 9782.93,-1335.02 9795.11,-1316.84 9855.8,-1283.36 9917.34,-1249.4 9944.51,-1273.41 10009.8,-1247.36 10099.25,-1211.65 10126.13,-1203.27 10196.8,-1137.82 10240.27,-1097.55 10252.61,-1083.99 10272.8,-1028.28 10300.02,-953.14 10301.71,-858.9 10299.74,-803.83"/>
<polygon fill="#f9c806" stroke="black" points="10303.23,-803.54 10299.33,-793.69 10296.24,-803.83 10303.23,-803.54"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_routes -->
<g id="edge583" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9245.8,-990.51C9243.5,-918.55 9223.63,-888.7 9264.8,-829.64 9305.01,-771.96 9456.95,-806.13 9405.8,-757.87"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_base -->
<g id="edge584" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9065.8,-1100.05C9063.29,-1080.04 9062.89,-1057.78 9063.28,-1038.72"/>
<polygon fill="#f9c806" stroke="black" points="9066.78,-1038.59 9063.56,-1028.49 9059.79,-1038.39 9066.78,-1038.59"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_add -->
<g id="edge585" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9245.8,-1209.59C9258.57,-1160.05 9309.9,-1181.94 9335.8,-1137.82 9368.92,-1081.36 9358.49,-1057.95 9359.8,-992.51"/>
<path fill="none" stroke="black" d="M9359.8,-990.51C9360.88,-966.23 9369.93,-940.98 9379.72,-920.31"/>
<polygon fill="#f9c806" stroke="black" points="9382.95,-921.67 9384.25,-911.16 9376.68,-918.57 9382.95,-921.67"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge586" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9245.8,-1319.13C9237.85,-1272 9234.44,-1258.01 9245.8,-1211.59"/>
<path fill="none" stroke="black" d="M9245.8,-1209.59C9268.72,-1115.87 9245.8,-1088.99 9245.8,-992.51"/>
<path fill="none" stroke="black" d="M9245.8,-990.51C9244.89,-962.01 9229.47,-934.15 9213.77,-912.96"/>
<polygon fill="#f9c806" stroke="black" points="9216.42,-910.66 9207.53,-904.88 9210.88,-914.94 9216.42,-910.66"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_request -->
<g id="edge587" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9245.8,-990.51C9245.8,-962 9261.18,-934.14 9277.09,-912.95"/>
<polygon fill="#f9c806" stroke="black" points="9280.01,-914.9 9283.42,-904.87 9274.5,-910.58 9280.01,-914.9"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_search -->
<g id="edge588" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9239.24,-1513.23C9212.74,-1493.7 9168.57,-1460.66 9131.8,-1430.67"/>
<path fill="none" stroke="black" d="M9131.8,-1428.67C9078.22,-1384.97 9049.3,-1398.11 8993.8,-1356.9 8807.07,-1218.27 8626.59,-1004.02 8555.52,-915.54"/>
<polygon fill="#f9c806" stroke="black" points="8558.17,-913.24 8549.18,-907.62 8552.7,-917.62 8558.17,-913.24"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_ahriman -->
<g id="edge589" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9245.8,-1428.67C9233.98,-1382.35 9253.74,-1368.26 9245.8,-1321.13"/>
<path fill="none" stroke="black" d="M9245.8,-1319.13C9238.82,-1277.73 9166.95,-991.01 9145.8,-954.74 9135.29,-936.73 9119.69,-919.94 9105.05,-906.48"/>
<polygon fill="#f9c806" stroke="black" points="9107.3,-903.8 9097.51,-899.75 9102.64,-909.02 9107.3,-903.8"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_package -->
<g id="edge590" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9260.74,-1513.3C9258.13,-1493.29 9253.09,-1459.27 9245.8,-1430.67"/>
<path fill="none" stroke="black" d="M9245.8,-1428.67C9213.96,-1303.86 9171,-1286.05 9107.8,-1173.82 9089.66,-1141.61 9070.4,-1138.72 9065.8,-1102.05"/>
<path fill="none" stroke="black" d="M9065.8,-1100.05C9061.3,-1062.18 9101.9,-1064.82 9112.8,-1028.28 9122.14,-996.96 9132.8,-980.59 9112.8,-954.74 9096.78,-934.05 8935.31,-900.23 8853.21,-884.18"/>
<polygon fill="#f9c806" stroke="black" points="8853.85,-880.74 8843.36,-882.27 8852.51,-887.62 8853.85,-880.74"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge591" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9321.8,-1428.67C9343.66,-1389.87 9426.12,-1312.49 9459.8,-1283.36 9465.09,-1278.77 9662.27,-1143.87 9665.8,-1137.82 9703.34,-1073.33 9703.64,-984.6 9698.88,-928.58"/>
<polygon fill="#f9c806" stroke="black" points="9702.36,-928.14 9697.95,-918.51 9695.39,-928.79 9702.36,-928.14"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_status -->
<g id="edge592" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9131.8,-1428.67C9110.91,-1410.61 8812.59,-1084.51 8793.8,-1064.28 8744.92,-1011.68 8688.33,-950.91 8652.8,-912.76"/>
<polygon fill="#f9c806" stroke="black" points="8654.93,-909.91 8645.55,-904.98 8649.81,-914.68 8654.93,-909.91"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_login -->
<g id="edge593" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9289.83,-1519.13C9319.77,-1506.55 9369.42,-1485.47 9411.8,-1466.43 9586.46,-1387.96 9620.19,-1344.06 9801.8,-1283.36 9875.87,-1258.6 9914.14,-1297.77 9973.8,-1247.36 10026.78,-1202.58 10018.33,-1170.29 10030.8,-1102.05"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge594" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9274.39,-1513.36C9287.2,-1493.96 9307.88,-1461.03 9321.8,-1430.67"/>
<path fill="none" stroke="black" d="M9321.8,-1428.67C9372.97,-1316.99 9375.24,-1284.37 9428.8,-1173.82 9473.41,-1081.73 9532.95,-977.93 9566.96,-920.17"/>
<polygon fill="#f9c806" stroke="black" points="9570.12,-921.69 9572.19,-911.3 9564.09,-918.14 9570.12,-921.69"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_web -->
<g id="edge595" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9282.86,-1513.3C9297.66,-1500.56 9318.19,-1482.65 9335.8,-1466.43 9370.37,-1434.59 9376.26,-1423.66 9411.8,-1392.9 9551.95,-1271.57 9639.45,-1292.38 9741.8,-1137.82 9819.98,-1019.74 9728.22,-935.06 9822.8,-829.64 9898.11,-745.7 10354.48,-745.24 10296.8,-648.34"/>
<path fill="none" stroke="black" d="M10296.8,-646.34C10226.33,-543.14 8228.17,-545.27 7889.38,-546.38"/>
<polygon fill="#f9c806" stroke="black" points="7889.15,-542.88 7879.16,-546.41 7889.17,-549.88 7889.15,-542.88"/>
</g>
<!-- aiohttpjinja2 -->
<g id="node152" class="node">
<title>aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#69b03a" stroke="black" points="8799.8,-1338.13 8796.8,-1342.13 8775.8,-1342.13 8772.8,-1338.13 8731.8,-1338.13 8731.8,-1302.13 8799.8,-1302.13 8799.8,-1338.13"/>
<text text-anchor="middle" x="8765.8" y="-1317.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpjinja2</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpjinja2 -->
<g id="edge596" class="edge">
<title>aiohttp&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9235.72,-1519.02C9153.99,-1484.61 8909.24,-1381.53 8809.16,-1339.39"/>
<polygon fill="#f9c806" stroke="black" points="8810.51,-1336.16 8799.94,-1335.5 8807.8,-1342.61 8810.51,-1336.16"/>
</g>
<!-- aiohttpsession -->
<g id="node154" class="node">
<title>aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3db86e" stroke="black" points="10447.8,-1338.13 10444.8,-1342.13 10423.8,-1342.13 10420.8,-1338.13 10367.8,-1338.13 10367.8,-1302.13 10447.8,-1302.13 10447.8,-1338.13"/>
<text text-anchor="middle" x="10407.8" y="-1317.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsession</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpsession -->
<g id="edge597" class="edge">
<title>aiohttp&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9289.83,-1527.64C9363.26,-1519.9 9572.48,-1496.7 9744.8,-1466.43 9864.98,-1445.33 10224.63,-1363.27 10357.63,-1332.69"/>
<polygon fill="#f9c806" stroke="black" points="10358.59,-1336.06 10367.55,-1330.41 10357.02,-1329.24 10358.59,-1336.06"/>
</g>
<!-- aiohttpdebugtoolbar -->
<g id="node151" class="node">
<title>aiohttpdebugtoolbar</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#a2b653" stroke="black" points="7852.3,-892.19 7849.3,-896.19 7828.3,-896.19 7825.3,-892.19 7751.3,-892.19 7751.3,-856.19 7852.3,-856.19 7852.3,-892.19"/>
<text text-anchor="middle" x="7801.8" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpdebugtoolbar</text>
</g>
<!-- aiohttpdebugtoolbar&#45;&gt;ahriman_web_web -->
<g id="edge598" class="edge">
<title>aiohttpdebugtoolbar&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7801.66,-856C7801.51,-833.46 7801.35,-792.71 7801.8,-757.87"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_views_index -->
<g id="edge599" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8800.1,-1313.36C8851.88,-1303.88 8952.41,-1282.49 9031.8,-1247.36 9196.87,-1174.31 9238.8,-1148.11 9373.8,-1028.28 9412.67,-993.77 9449.52,-946.71 9473.21,-913.91"/>
<polygon fill="#69b03a" stroke="black" points="9476.27,-915.65 9479.24,-905.48 9470.58,-911.58 9476.27,-915.65"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_web -->
<g id="edge600" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8738.1,-1301.99C8664.56,-1257.13 8457.24,-1134.86 8270.8,-1064.28 8209.9,-1041.23 8172.65,-1076.4 8128.8,-1028.28 8082.41,-977.37 8104.8,-944.06 8104.8,-875.19 8104.8,-875.19 8104.8,-875.19 8104.8,-755.87 8104.8,-645.6 7961.61,-584.23 7886.14,-559.54"/>
<polygon fill="#69b03a" stroke="black" points="7886.99,-556.14 7876.4,-556.44 7884.86,-562.81 7886.99,-556.14"/>
</g>
<!-- aiohttpsecurity -->
<g id="node153" class="node">
<title>aiohttpsecurity</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#47c247" stroke="black" points="10129.8,-1651.19 10126.8,-1655.19 10105.8,-1655.19 10102.8,-1651.19 10049.8,-1651.19 10049.8,-1615.19 10129.8,-1615.19 10129.8,-1651.19"/>
<text text-anchor="middle" x="10089.8" y="-1630.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsecurity</text>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_core_auth_helpers -->
<g id="edge601" class="edge">
<title>aiohttpsecurity&#45;&gt;ahriman_core_auth_helpers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10086.72,-1615.03C10076.92,-1562.86 10043.36,-1402.47 9981.8,-1283.36 9975.24,-1270.68 9966.4,-1257.95 9957.73,-1246.81"/>
<polygon fill="#47c247" stroke="black" points="9960.46,-1244.62 9951.48,-1239 9955,-1248.99 9960.46,-1244.62"/>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge602" class="edge">
<title>aiohttpsecurity&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10105.69,-1615.01C10121.95,-1596.27 10146.4,-1564.64 10157.8,-1532.43"/>
<path fill="none" stroke="black" d="M10157.8,-1530.43C10202.07,-1405.23 10220.24,-1363.93 10325.8,-1283.36 10377.95,-1243.55 10440.8,-1275.69 10454.8,-1211.59"/>
<path fill="none" stroke="black" d="M10454.8,-1209.59C10464.34,-1161.45 10428.01,-1151.08 10429.8,-1102.05"/>
</g>
<!-- aiohttpsession&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge603" class="edge">
<title>aiohttpsession&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10417.85,-1301.96C10429.32,-1281.32 10447.45,-1245.23 10454.8,-1211.59"/>
</g>
<!-- boto3 -->
<g id="node155" class="node">
<title>boto3</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#40c0a6" stroke="black" points="4565.8,-3020.75 4562.8,-3024.75 4541.8,-3024.75 4538.8,-3020.75 4511.8,-3020.75 4511.8,-2984.75 4565.8,-2984.75 4565.8,-3020.75"/>
<text text-anchor="middle" x="4538.8" y="-3000.25" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">boto3</text>
</g>
<!-- boto3&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge604" class="edge">
<title>boto3&#45;&gt;ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4544.58,-2984.71C4553.55,-2959.91 4572.56,-2913.18 4598.8,-2879.77 4632.61,-2836.73 4785.06,-2776.47 4787.8,-2721.8"/>
<path fill="none" stroke="black" d="M4787.8,-2719.8C4789.7,-2697.55 4783.49,-2673.67 4776.04,-2654.07"/>
<polygon fill="#40c0a6" stroke="black" points="4779.18,-2652.5 4772.19,-2644.53 4772.69,-2655.12 4779.18,-2652.5"/>
</g>
<!-- cryptography -->
<g id="node156" class="node">
<title>cryptography</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#19bde6" stroke="black" points="10399.8,-4166.8 10396.8,-4170.8 10375.8,-4170.8 10372.8,-4166.8 10325.8,-4166.8 10325.8,-4130.8 10399.8,-4130.8 10399.8,-4166.8"/>
<text text-anchor="middle" x="10362.8" y="-4146.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">cryptography</text>
</g>
<!-- cryptography&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge605" class="edge">
<title>cryptography&#45;&gt;ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11021.8,-3898.83C11021.1,-3821.06 11021.8,-3801.62 11021.8,-3723.85 11021.8,-3723.85 11021.8,-3723.85 11021.8,-3416.57 11021.8,-2934.53 11128.41,-2805.13 11035.8,-2332.08 11017.24,-2237.32 10998.23,-2217.13 10959.8,-2128.56 10891.73,-1971.7 10635.8,-1601.65 10635.8,-1430.67 10635.8,-1430.67 10635.8,-1430.67 10635.8,-1319.13 10635.8,-1156.32 10520.38,-988.52 10462.33,-914.41"/>
<polygon fill="#19bde6" stroke="black" points="10464.84,-911.94 10455.89,-906.27 10459.35,-916.28 10464.84,-911.94"/>
</g>
<!-- cryptography&#45;&gt;aiohttpsession -->
<g id="edge606" class="edge">
<title>cryptography&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10399.84,-4147.65C10508.93,-4146.57 10826.72,-4138.68 10911.8,-4083.81 10991.54,-4032.38 11042.01,-3993.54 11021.8,-3900.83"/>
<path fill="none" stroke="black" d="M11021.8,-3898.83C11017.75,-3874.8 11011.61,-3869.89 11007.8,-3845.83 10978.02,-3657.98 10983.8,-3608.76 10983.8,-3418.57 10983.8,-3418.57 10983.8,-3418.57 10983.8,-2258.31 10983.8,-2148.99 10523,-1485.48 10425.7,-1346.6"/>
<polygon fill="#19bde6" stroke="black" points="10428.43,-1344.4 10419.83,-1338.23 10422.7,-1348.42 10428.43,-1344.4"/>
</g>
<!-- requests -->
<g id="node161" class="node">
<title>requests</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#ef06c0" stroke="black" points="6639.8,-4083.81 6636.8,-4087.81 6615.8,-4087.81 6612.8,-4083.81 6585.8,-4083.81 6585.8,-4047.81 6639.8,-4047.81 6639.8,-4083.81"/>
<text text-anchor="middle" x="6612.8" y="-4063.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">requests</text>
</g>
<!-- cryptography&#45;&gt;requests -->
<g id="edge607" class="edge">
<title>cryptography&#45;&gt;requests</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10325.47,-4146.04C10219.91,-4141.12 9910.21,-4127.13 9652.8,-4119.81 8419.99,-4084.77 6905.25,-4069.54 6650.09,-4067.15"/>
<polygon fill="#19bde6" stroke="black" points="6649.91,-4063.65 6639.88,-4067.05 6649.85,-4070.65 6649.91,-4063.65"/>
</g>
<!-- inflection -->
<g id="node157" class="node">
<title>inflection</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#537bb6" stroke="black" points="3139.8,-3917.83 3136.8,-3921.83 3115.8,-3921.83 3112.8,-3917.83 3083.8,-3917.83 3083.8,-3881.83 3139.8,-3881.83 3139.8,-3917.83"/>
<text text-anchor="middle" x="3111.8" y="-3897.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">inflection</text>
</g>
<!-- inflection&#45;&gt;ahriman_models_aur_package -->
<g id="edge608" class="edge">
<title>inflection&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3115.11,-3881.52C3123.53,-3837.56 3145.89,-3720.8 3157.53,-3660.04"/>
<polygon fill="#537bb6" stroke="black" points="3160.99,-3660.56 3159.44,-3650.08 3154.12,-3659.25 3160.99,-3660.56"/>
</g>
<!-- jinja2 -->
<g id="node158" class="node">
<title>jinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3b3bce" stroke="black" points="7985.8,-2926.77 7982.8,-2930.77 7961.8,-2930.77 7958.8,-2926.77 7931.8,-2926.77 7931.8,-2890.77 7985.8,-2890.77 7985.8,-2926.77"/>
<text text-anchor="middle" x="7958.8" y="-2906.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">jinja2</text>
</g>
<!-- jinja2&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge609" class="edge">
<title>jinja2&#45;&gt;ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7931.44,-2899.61C7908.92,-2893.22 7876.06,-2884.62 7846.8,-2879.77 7657.6,-2848.42 7606.96,-2868.65 7416.8,-2843.77 6945.42,-2782.11 6827.51,-2760.57 6363.8,-2655.81 6158.81,-2609.5 6107.52,-2596.09 5907.8,-2530.71 5888.59,-2524.43 5867.87,-2516.78 5849.44,-2509.66"/>
<polygon fill="#3b3bce" stroke="black" points="5850.61,-2506.36 5840.02,-2505.99 5848.07,-2512.88 5850.61,-2506.36"/>
</g>
<!-- jinja2&#45;&gt;ahriman_web_web -->
<g id="edge610" class="edge">
<title>jinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7952.32,-2890.64C7941.57,-2864.42 7917.62,-2814.38 7881.8,-2785.79 7844.22,-2755.81 7808.79,-2788.14 7779.8,-2749.79 7728.78,-2682.3 7762.53,-2454.18 7755.8,-2369.85"/>
</g>
<!-- jinja2&#45;&gt;aiohttpjinja2 -->
<g id="edge611" class="edge">
<title>jinja2&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7986.03,-2891.2C8028.12,-2864.76 8110.15,-2809.83 8167.8,-2749.79 8249.87,-2664.31 8279.12,-2642.02 8319.8,-2530.71 8381.42,-2362.09 8308,-2301.05 8357.8,-2128.56 8453.05,-1798.59 8683.27,-1443.19 8748.38,-1346.57"/>
<polygon fill="#3b3bce" stroke="black" points="8751.28,-1348.53 8753.99,-1338.29 8745.48,-1344.61 8751.28,-1348.53"/>
</g>
<!-- passlib -->
<g id="node159" class="node">
<title>passlib</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#763bce" stroke="black" points="7833.8,-3208.71 7830.8,-3212.71 7809.8,-3212.71 7806.8,-3208.71 7779.8,-3208.71 7779.8,-3172.71 7833.8,-3172.71 7833.8,-3208.71"/>
<text text-anchor="middle" x="7806.8" y="-3188.21" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">passlib</text>
</g>
<!-- passlib&#45;&gt;ahriman_models_user -->
<g id="edge612" class="edge">
<title>passlib&#45;&gt;ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7807.85,-3172.63C7809.4,-3133.79 7808.36,-3037.34 7765.8,-2973.76 7758.13,-2962.3 7731.06,-2945.02 7707.32,-2931.3"/>
<polygon fill="#763bce" stroke="black" points="7708.84,-2928.14 7698.42,-2926.23 7705.38,-2934.22 7708.84,-2928.14"/>
</g>
<!-- pyalpm -->
<g id="node160" class="node">
<title>pyalpm</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b82fdb" stroke="black" points="4262.8,-3917.83 4259.8,-3921.83 4238.8,-3921.83 4235.8,-3917.83 4208.8,-3917.83 4208.8,-3881.83 4262.8,-3881.83 4262.8,-3917.83"/>
<text text-anchor="middle" x="4235.8" y="-3897.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pyalpm</text>
</g>
<!-- pyalpm&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge613" class="edge">
<title>pyalpm&#45;&gt;ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4240.58,-3881.49C4256.41,-3824.72 4309.21,-3639.47 4364.8,-3490.34 4368.39,-3480.71 4372.57,-3470.49 4376.67,-3460.88"/>
<polygon fill="#b82fdb" stroke="black" points="4379.97,-3462.08 4380.73,-3451.51 4373.54,-3459.3 4379.97,-3462.08"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_aur_package -->
<g id="edge614" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4208.62,-3896.98C4103.98,-3889.23 3718.12,-3854.83 3419.8,-3751.84 3341.34,-3724.76 3256.66,-3677.75 3207.31,-3648.37"/>
<polygon fill="#b82fdb" stroke="black" points="3208.89,-3645.24 3198.51,-3643.09 3205.29,-3651.24 3208.89,-3645.24"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package -->
<g id="edge615" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4208.73,-3896.96C4130.86,-3889.99 3911.8,-3858.42 3911.8,-3723.85 3911.8,-3723.85 3911.8,-3723.85 3911.8,-3620.09 3911.8,-3348.58 3944.87,-3215.29 4172.8,-3067.74 4323.38,-2970.26 4420.2,-3122.71 4574.8,-3031.74 4587.75,-3024.11 4581.9,-3012.94 4593.8,-3003.75"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package_description -->
<g id="edge616" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4263.07,-3894.66C4404.78,-3872.87 5071.33,-3768.84 5611.8,-3657.86 5797.26,-3619.78 6013.8,-3566.3 6123.41,-3538.59"/>
<polygon fill="#b82fdb" stroke="black" points="6124.52,-3541.92 6133.36,-3536.07 6122.81,-3535.13 6124.52,-3541.92"/>
</g>
<!-- requests&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge617" class="edge">
<title>requests&#45;&gt;ahriman_application_application_application_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6585.69,-4064.47C6394.46,-4062.02 5228.81,-4046.12 4280.8,-4011.81 3860.11,-3996.58 2791.11,-4041.73 2388.8,-3917.83 2330.08,-3899.74 2317.39,-3885.87 2270.8,-3845.83 2260.45,-3836.94 2198.38,-3763.79 2191.8,-3751.84 2135.02,-3648.89 2112.56,-3601.18 2151.8,-3490.34 2214.5,-3313.21 2250.89,-3248.04 2417.8,-3161.72 2473.08,-3133.13 2934.22,-3171.12 2976.8,-3125.72 2994.42,-3106.92 2980.42,-3093.25 2976.8,-3067.74 2969.5,-3016.43 2919.09,-2895.08 2911.8,-2843.77 2902.29,-2776.91 2889.88,-2755.69 2911.8,-2691.81 2918.37,-2672.64 2932.46,-2674.7 2939.8,-2655.81 2949.58,-2630.62 2956.99,-2408.42 2963.8,-2260.31"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge618" class="edge">
<title>requests&#45;&gt;ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6639.96,-4064.7C6883.12,-4063.65 8682.17,-4053.48 8909.8,-3983.82"/>
<path fill="none" stroke="black" d="M8909.8,-3981.82C8953.5,-3968.44 8919.25,-3912.96 8885.8,-3881.83 8813.91,-3814.93 8761.57,-3874.99 8667.8,-3845.83 8574.01,-3816.66 8556.31,-3794.39 8467.8,-3751.84 8230.34,-3637.7 8186.68,-3570.78 7935.8,-3490.34 7842.28,-3460.36 7806.83,-3495.77 7717.8,-3454.34 7672.2,-3433.12 7676,-3404.78 7631.8,-3380.8 7612,-3370.06 7480.73,-3333.55 7408.78,-3313.94"/>
<polygon fill="#ef06c0" stroke="black" points="7409.61,-3310.54 7399.04,-3311.29 7407.77,-3317.29 7409.61,-3310.54"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge619" class="edge">
<title>requests&#45;&gt;ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7807.8,-3898.83C7793.28,-3850.49 7809.09,-3831.51 7783.8,-3787.84 7672.81,-3596.28 7572.53,-3608.67 7413.8,-3454.34 7374.59,-3416.22 7331.61,-3370.66 7302.5,-3339.21"/>
<polygon fill="#ef06c0" stroke="black" points="7304.76,-3336.5 7295.41,-3331.53 7299.62,-3341.25 7304.76,-3336.5"/>
</g>
<!-- requests&#45;&gt;ahriman_core_report_telegram -->
<g id="edge620" class="edge">
<title>requests&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7769.8,-3981.82C7785.98,-3945.5 7819.73,-3938.76 7807.8,-3900.83"/>
<path fill="none" stroke="black" d="M7807.8,-3898.83C7798.43,-3869.03 7819.17,-3847.29 7327.8,-3787.84 7274.87,-3781.44 6411.61,-3783.62 6368.8,-3751.84 6270.09,-3678.6 6362.06,-3580.75 6278.8,-3490.34 6251.83,-3461.06 6223.36,-3483.98 6196.8,-3454.34 5988.93,-3222.41 6151.81,-3049.93 5986.8,-2785.79 5974.47,-2766.06 5963.86,-2767.52 5948.8,-2749.79 5939.06,-2738.33 5941.91,-2730.71 5929.8,-2721.8"/>
</g>
<!-- requests&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge621" class="edge">
<title>requests&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6585.62,-4064.66C6457.51,-4063.74 5901.08,-4057.17 5447.8,-4011.81 5287.8,-3995.8 4732.8,-4061.62 4732.8,-3900.83 4732.8,-3900.83 4732.8,-3900.83 4732.8,-3815.84 4732.8,-3680.31 4799.37,-3530.1 4834.96,-3459.49"/>
<polygon fill="#ef06c0" stroke="black" points="4838.13,-3460.97 4839.55,-3450.47 4831.9,-3457.79 4838.13,-3460.97"/>
</g>
<!-- requests&#45;&gt;ahriman_core_status_web_client -->
<g id="edge622" class="edge">
<title>requests&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8909.8,-3981.82C8978.66,-3960.16 9056.09,-3951.66 9037.8,-3881.83 8865.34,-3223.57 8675.63,-3100.66 8253.8,-2566.71 8206.23,-2506.5 8195.76,-2488.22 8134.8,-2441.62 8081.43,-2400.83 8046.74,-2419.76 8001.8,-2369.85"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_github -->
<g id="edge623" class="edge">
<title>requests&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6585.62,-4064.98C6422.77,-4065.81 5579.98,-4067.37 5480.8,-4011.81 5467.68,-4004.46 5474.25,-3992.24 5461.8,-3983.82"/>
<path fill="none" stroke="black" d="M5461.8,-3981.82C5435.77,-3964.23 5438.98,-3948.4 5431.8,-3917.83 5388.31,-3732.82 5490.12,-3667.68 5421.8,-3490.34 5415.38,-3473.68 5006.6,-3020.94 5001.8,-3003.75"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge624" class="edge">
<title>requests&#45;&gt;ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5461.8,-3981.82C5413.93,-3939.31 5436.68,-3748.64 5469.8,-3693.86 5503.54,-3638.05 5568.77,-3680.5 5597.8,-3622.09"/>
<path fill="none" stroke="black" d="M5597.8,-3620.09C5626.51,-3558.75 5568.18,-3490.65 5525.14,-3451.4"/>
<polygon fill="#ef06c0" stroke="black" points="5527.37,-3448.69 5517.58,-3444.65 5522.71,-3453.92 5527.37,-3448.69"/>
</g>
<!-- requests&#45;&gt;ahriman_core_util -->
<g id="edge625" class="edge">
<title>requests&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6639.84,-4065.07C6806.55,-4066.37 7690.31,-4069.21 7769.8,-3983.82"/>
<path fill="none" stroke="black" d="M7769.8,-3981.82C7916.89,-3823.79 6026.82,-3817.63 5696.59,-3817.75"/>
<polygon fill="#ef06c0" stroke="black" points="5696.39,-3814.25 5686.39,-3817.76 5696.39,-3821.25 5696.39,-3814.25"/>
</g>
<!-- srcinfo -->
<g id="node162" class="node">
<title>srcinfo</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b6537b" stroke="black" points="4610.8,-3208.71 4607.8,-3212.71 4586.8,-3212.71 4583.8,-3208.71 4556.8,-3208.71 4556.8,-3172.71 4610.8,-3172.71 4610.8,-3208.71"/>
<text text-anchor="middle" x="4583.8" y="-3188.21" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">srcinfo</text>
</g>
<!-- srcinfo&#45;&gt;ahriman_models_package -->
<g id="edge626" class="edge">
<title>srcinfo&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4583.25,-3172.41C4582.79,-3153.91 4582.42,-3123.72 4583.8,-3097.73"/>
</g>
</g>
</svg>