ahriman/docs/ahriman-architecture.svg
2022-09-14 03:28:28 +03:00

5634 lines
537 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 5.0.0 (0)
-->
<!-- Title: G Pages: 1 -->
<svg width="13233pt" height="4186pt"
viewBox="0.00 0.00 13232.57 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 13228.57,-4181.79 13228.57,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="#6b432e" stroke="black" cx="2662" cy="-28.99" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="2662" y="-37.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2662" y="-26.49" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2662" 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="#db5105" stroke="black" cx="2996" cy="-874.19" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="2996" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2996" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2996" 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="#995733" stroke="black" cx="2847" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2847" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2847" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2847" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2847" 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="M2847,-755.87C2833.02,-738.81 2831.94,-714.59 2834.84,-693.45"/>
<polygon fill="#db5105" stroke="black" points="2838.33,-693.81 2836.54,-683.37 2831.43,-692.64 2838.33,-693.81"/>
</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="#995733" stroke="black" cx="3180" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3180" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3180" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3180" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3180" 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="M3750,-755.87C3750.18,-736.73 3742.27,-730.2 3726,-720.1 3705.31,-707.27 3371.87,-669.42 3236.48,-654.49"/>
<polygon fill="#db5105" stroke="black" points="3236.63,-650.99 3226.31,-653.37 3235.86,-657.95 3236.63,-650.99"/>
</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="#995733" stroke="black" cx="2958" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2958" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2958" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2958" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2958" 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="M2991.26,-845.17C2984.86,-807.3 2973.38,-739.32 2965.72,-694.01"/>
<polygon fill="#db5105" stroke="black" points="2969.17,-693.42 2964.05,-684.14 2962.27,-694.59 2969.17,-693.42"/>
</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="#734126" stroke="black" cx="1871" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="1871" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1871" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="1871" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="1871" 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="M2949.37,-872.43C2795.31,-869.34 2304.2,-854.81 2160,-793.64 2113.7,-774.01 2117.55,-745.25 2074,-720.1 2026.8,-692.85 1967.51,-673.36 1925.22,-661.63"/>
<polygon fill="#db5105" stroke="black" points="1925.96,-658.2 1915.39,-658.96 1924.12,-664.96 1925.96,-658.2"/>
</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="#824a2b" stroke="black" cx="2327" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2327" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2327" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2327" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2327" 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="M2554,-755.87C2488.83,-734.66 2418.11,-698.96 2373.23,-674.56"/>
<polygon fill="#db5105" stroke="black" points="2374.78,-671.42 2364.33,-669.68 2371.42,-677.56 2374.78,-671.42"/>
</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="#995733" stroke="black" cx="12971" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="12971" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12971" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="12971" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="12971" 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="M3042.83,-872.91C3758.1,-868.56 12428.6,-815.4 12554,-793.64 12692,-769.7 12845.4,-705.93 12921.94,-671.37"/>
<polygon fill="#db5105" stroke="black" points="12923.68,-674.43 12931.33,-667.1 12920.78,-668.05 12923.68,-674.43"/>
</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="#915230" stroke="black" cx="2495" cy="-647.34" rx="65.11" ry="36.54"/>
<text text-anchor="middle" x="2495" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2495" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2495" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2495" 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="M2954.54,-860.65C2896.78,-842.31 2789.74,-805.16 2706,-757.87"/>
<path fill="none" stroke="black" d="M2706,-755.87C2655.13,-727.15 2595.74,-697.19 2552.95,-676.21"/>
<polygon fill="#db5105" stroke="black" points="2554.33,-672.99 2543.81,-671.74 2551.25,-679.27 2554.33,-672.99"/>
</g>
<!-- ahriman_application_handlers_search -->
<g id="node20" class="node">
<title>ahriman_application_handlers_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="3981" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3981" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3981" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3981" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3981" 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="edge8" 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="M3042.58,-872.32C3194.16,-868.91 3671.69,-853.57 3812,-793.64 3867.74,-769.83 3918.55,-720.75 3949.58,-686.24"/>
<polygon fill="#db5105" stroke="black" points="3952.27,-688.49 3956.28,-678.68 3947.03,-683.85 3952.27,-688.49"/>
</g>
<!-- ahriman_application_handlers_setup -->
<g id="node21" class="node">
<title>ahriman_application_handlers_setup</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="323" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="323" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="323" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="323" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="323" 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="edge9" 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="M2949.27,-872.38C2748.97,-868.61 1943.21,-850.51 1284,-793.64 897.04,-760.26 793.83,-778.18 417,-684.1 402.41,-680.46 387,-675.22 372.97,-669.87"/>
<polygon fill="#db5105" stroke="black" points="374.09,-666.55 363.5,-666.17 371.54,-673.07 374.09,-666.55"/>
</g>
<!-- ahriman_application_handlers_shell -->
<g id="node22" class="node">
<title>ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="2216" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2216" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2216" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2216" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2216" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">shell</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge10" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2950.23,-868.35C2877.48,-859.63 2731.86,-837.89 2616,-793.64 2586.28,-782.29 2584.25,-767.72 2554,-757.87"/>
<path fill="none" stroke="black" d="M2554,-755.87C2430.61,-715.71 2389.88,-736.12 2271,-684.1 2266.9,-682.31 2262.76,-680.22 2258.69,-677.97"/>
<polygon fill="#db5105" stroke="black" points="2260.34,-674.88 2249.94,-672.85 2256.8,-680.92 2260.34,-674.88"/>
</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="#995733" stroke="black" cx="2736" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2736" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2736" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2736" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2736" 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="M2962.85,-853.78C2930.08,-833.28 2880.17,-798.36 2847,-757.87"/>
<path fill="none" stroke="black" d="M2847,-755.87C2825.1,-729.14 2797.13,-702.08 2774.75,-681.79"/>
<polygon fill="#db5105" stroke="black" points="2776.87,-678.99 2767.09,-674.91 2772.19,-684.2 2776.87,-678.99"/>
</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="#7a4528" stroke="black" cx="3870" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3870" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3870" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3870" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3870" 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="M3042.73,-873.24C3189.7,-872.64 3640.1,-864.89 3764,-793.64 3804.08,-770.59 3833.26,-725.59 3850.74,-691.74"/>
<polygon fill="#db5105" stroke="black" points="3854.01,-693.03 3855.36,-682.52 3847.75,-689.9 3854.01,-693.03"/>
</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="#8a4e2e" stroke="black" cx="481" cy="-647.34" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="481" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="481" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="481" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="481" 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="M2949.74,-869.31C2814.41,-857.93 2407.52,-823.57 2070,-793.64 1477.81,-741.13 761.79,-674.54 545.74,-654.38"/>
<polygon fill="#db5105" stroke="black" points="545.81,-650.88 535.53,-653.43 545.16,-657.85 545.81,-650.88"/>
</g>
<!-- ahriman_application_handlers_triggers -->
<g id="node26" class="node">
<title>ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="2625" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2625" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2625" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2625" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2625" y="-628.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers</text>
</g>
<!-- ahriman_application_application&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge14" class="edge">
<title>ahriman_application_application&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2706,-755.87C2679.83,-741.1 2659.52,-714.04 2645.78,-690.76"/>
<polygon fill="#db5105" stroke="black" points="2648.82,-689.02 2640.83,-682.06 2642.73,-692.48 2648.82,-689.02"/>
</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="#995733" stroke="black" cx="3069" cy="-647.34" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3069" y="-661.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3069" y="-650.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3069" y="-639.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="3069" 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="M3042.78,-873.15C3185.13,-872.26 3610.32,-863.65 3726,-793.64 3742.38,-783.73 3749.82,-777.02 3750,-757.87"/>
<path fill="none" stroke="black" d="M3750,-755.87C3750.18,-736.73 3742.62,-729.61 3726,-720.1 3609.68,-653.54 3251.29,-726.03 3124,-684.1 3119.5,-682.62 3115.02,-680.68 3110.66,-678.46"/>
<polygon fill="#db5105" stroke="black" points="3112.36,-675.41 3101.92,-673.59 3108.95,-681.52 3112.36,-675.41"/>
</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="#915230" stroke="black" cx="3035" cy="-991.51" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3035" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3035" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3035" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3035" 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="M3023.3,-955.91C3018.68,-942.24 3013.35,-926.51 3008.64,-912.58"/>
<polygon fill="#915230" stroke="black" points="3011.86,-911.16 3005.34,-902.81 3005.23,-913.41 3011.86,-911.16"/>
</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="#734126" stroke="black" cx="3414" cy="-1101.05" rx="77.56" ry="36.54"/>
<text text-anchor="middle" x="3414" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3414" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3414" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3414" 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="M3347.98,-1081.32C3274.3,-1060.41 3156.51,-1026.99 3088.39,-1007.66"/>
<polygon fill="#734126" stroke="black" points="3089.29,-1004.27 3078.71,-1004.91 3087.38,-1011.01 3089.29,-1004.27"/>
</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="#a35428" stroke="black" cx="3414" cy="-1210.59" rx="79.39" ry="36.54"/>
<text text-anchor="middle" x="3414" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3414" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3414" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3414" 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="M3414,-1173.78C3414,-1165.61 3414,-1156.82 3414,-1148.29"/>
<polygon fill="#a35428" stroke="black" points="3417.5,-1148.07 3414,-1138.07 3410.5,-1148.07 3417.5,-1148.07"/>
</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="#734126" stroke="black" cx="3035" cy="-1101.05" rx="79.39" ry="36.54"/>
<text text-anchor="middle" x="3035" y="-1115.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3035" y="-1104.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3035" y="-1093.05" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="3035" 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="M3347.11,-1190.61C3281.29,-1171.93 3180.87,-1143.44 3111.81,-1123.84"/>
<polygon fill="#a35428" stroke="black" points="3112.43,-1120.38 3101.85,-1121.02 3110.52,-1127.11 3112.43,-1120.38"/>
</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="M3035,-1064.24C3035,-1056.07 3035,-1047.28 3035,-1038.75"/>
<polygon fill="#734126" stroke="black" points="3038.5,-1038.53 3035,-1028.53 3031.5,-1038.53 3038.5,-1038.53"/>
</g>
<!-- ahriman_application_handlers -->
<g id="node7" class="node">
<title>ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#953703" stroke="black" cx="2662" cy="-122.97" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="2662" y="-131.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2662" y="-120.47" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2662" 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="M2662,-93.88C2662,-85.84 2662,-76.94 2662,-68.39"/>
<polygon fill="#953703" stroke="black" points="2665.5,-68.23 2662,-58.23 2658.5,-68.23 2665.5,-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="M2813.07,-621.81C2806.31,-617.64 2799.1,-613.66 2792,-610.57 2719.15,-578.76 2626.42,-626.05 2625,-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="#995733" stroke="black" cx="2700" cy="-334.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2700" y="-348.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2700" y="-337.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2700" y="-326.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2700" 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="M2664.92,-309.77C2637.58,-288.4 2607.04,-255.7 2625,-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="M3147.05,-621.17C3140.09,-616.95 3132.55,-613.12 3125,-610.57 3018.88,-574.69 2627,-658.57 2625,-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="#995733" stroke="black" cx="1833" cy="-1429.67" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="1833" y="-1443.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1833" y="-1432.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="1833" y="-1421.67" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="1833" 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="M1832.52,-1392.6C1832.55,-1283.92 1843.69,-952.7 1970,-720.1 1979.67,-702.29 1986.23,-700.61 1998,-684.1 2020.67,-652.33 2014.59,-633.74 2046,-610.57 2261.39,-451.65 2470.5,-663.39 2625,-444.81"/>
<path fill="none" stroke="black" d="M2625,-442.81C2669.78,-357.35 2575.4,-308.49 2625,-225.74"/>
</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="#8a4e2e" stroke="black" cx="12841" cy="-1852.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="12841" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12841" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="12841" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="12841" 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="M12845.51,-1815.61C12850.55,-1772.65 12858,-1698.26 12858,-1634.19 12858,-1634.19 12858,-1634.19 12858,-755.87 12858,-686.5 12878.96,-669.84 12915,-610.57 12934.64,-578.27 12961.52,-583.16 12971,-546.57"/>
<path fill="none" stroke="black" d="M12971,-544.57C12995.49,-412.26 12914.99,-360.34 12796,-297.5 12558.11,-171.89 3522.7,-127.9 2719.01,-124.23"/>
<polygon fill="#8a4e2e" stroke="black" points="2718.86,-120.73 2708.85,-124.18 2718.83,-127.73 2718.86,-120.73"/>
</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="#a15b35" stroke="black" cx="2811" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2811" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2811" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2811" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2811" 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="M2776.07,-200.35C2753.79,-185.43 2724.88,-166.07 2701.73,-150.58"/>
<polygon fill="#a15b35" stroke="black" points="2703.43,-147.5 2693.17,-144.84 2699.53,-153.32 2703.43,-147.5"/>
</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="M2924.61,-621.38C2917.75,-617.2 2910.36,-613.32 2903,-610.57 2843.64,-588.31 2626.13,-609.96 2625,-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="M1872.8,-610.22C1876.67,-561.11 1888.83,-471.96 1927,-407.04 1951.05,-366.15 1968.6,-364.46 2006,-335.27"/>
<path fill="none" stroke="black" d="M2006,-333.27C2216.46,-166.43 2384.46,-413.32 2606,-261.5 2620.85,-251.33 2615.75,-241.18 2625,-225.74"/>
<path fill="none" stroke="black" d="M2625,-223.74C2636.56,-204.44 2645.5,-180.93 2651.69,-161.58"/>
<polygon fill="#734126" stroke="black" points="2655.08,-162.47 2654.67,-151.88 2648.39,-160.41 2655.08,-162.47"/>
</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="M2362.63,-623.32C2370.76,-618.67 2379.51,-614.13 2388,-610.57 2488.62,-568.38 2626.95,-655.66 2625,-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="M12966.71,-610.7C12965.45,-591.42 12965.62,-567.36 12971,-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="M2541.39,-621.45C2578.88,-599.72 2625.39,-568.33 2625,-546.57"/>
</g>
<!-- ahriman_application_handlers_restore -->
<g id="node19" class="node">
<title>ahriman_application_handlers_restore</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="2550" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2550" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2550" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2550" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2550" 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="edge33" 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="M2580.31,-196.74C2595.09,-183.57 2612.93,-167.68 2628.16,-154.12"/>
<polygon fill="#a15b35" stroke="black" points="2630.71,-156.53 2635.85,-147.26 2626.06,-151.3 2630.71,-156.53"/>
</g>
<!-- ahriman_application_handlers_search&#45;&gt;ahriman_application_handlers -->
<g id="edge34" 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="M3947.09,-621.74C3940.33,-617.58 3933.12,-613.62 3926,-610.57 3443.13,-403.11 2993.22,-813.84 2776,-335.27"/>
</g>
<!-- ahriman_application_handlers_setup&#45;&gt;ahriman_application_handlers -->
<g id="edge35" 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="M329.94,-610.67C349.24,-513.36 404.18,-248.99 436,-225.74"/>
<path fill="none" stroke="black" d="M436,-223.74C521.26,-151.54 2265.78,-128.4 2605.09,-124.58"/>
<polygon fill="#8a4e2e" stroke="black" points="2605.22,-128.07 2615.18,-124.46 2605.14,-121.07 2605.22,-128.07"/>
</g>
<!-- ahriman_application_handlers_shell&#45;&gt;ahriman_application_handlers -->
<g id="edge36" class="edge">
<title>ahriman_application_handlers_shell&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2249.47,-621.6C2256.33,-617.4 2263.69,-613.46 2271,-610.57 2345.31,-581.08 2626.43,-626.5 2625,-546.57"/>
</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="M2700.43,-623.09C2668.1,-600.67 2625.37,-567.17 2625,-546.57"/>
</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="M3823.99,-640.03C3763.38,-631.96 3653.4,-618.12 3559,-610.57 3514.87,-607.03 2793.59,-606.57 2763,-574.57 2711.56,-520.74 2756.34,-481.2 2763,-407.04 2765.9,-374.76 2785.85,-366.16 2776,-335.27"/>
<path fill="none" stroke="black" d="M2776,-333.27C2768.47,-316.69 2770.09,-309.04 2756,-297.5 2715.54,-264.38 2684.1,-295.06 2644,-261.5 2630.19,-249.95 2615.75,-241.18 2625,-225.74"/>
</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="M473.76,-610.63C454.47,-513.23 405.33,-248.63 436,-225.74"/>
</g>
<!-- ahriman_application_handlers_triggers&#45;&gt;ahriman_application_handlers -->
<g id="edge40" class="edge">
<title>ahriman_application_handlers_triggers&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2625.31,-610.32C2625.4,-591.35 2625.38,-567.7 2625,-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="#995733" stroke="black" cx="2006" cy="-443.81" rx="70.01" ry="36.54"/>
<text text-anchor="middle" x="2006" y="-457.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2006" y="-446.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2006" y="-435.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2006" 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="M1993.57,-407.53C1987.39,-382.89 1985.1,-351.58 2006,-335.27"/>
</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="M3036,-621.31C3029.04,-617.08 3021.52,-613.21 3014,-610.57 2931.34,-581.56 2626.56,-634.17 2625,-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="#7a4528" stroke="black" cx="2365" cy="-1852.27" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2365" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2365" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2365" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2365" 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="M2374.72,-1816.23C2385.68,-1773.58 2402,-1699.18 2402,-1634.19 2402,-1634.19 2402,-1634.19 2402,-755.87 2402,-690.74 2379.12,-660.45 2421,-610.57 2482.1,-537.79 2626.7,-641.58 2625,-546.57"/>
</g>
<!-- ahriman_application_handlers_versions -->
<g id="node30" class="node">
<title>ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="1947" cy="-1961.8" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="1947" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1947" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="1947" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="1947" y="-1942.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">versions</text>
</g>
<!-- ahriman_application_handlers_versions&#45;&gt;ahriman_application_handlers -->
<g id="edge44" class="edge">
<title>ahriman_application_handlers_versions&#45;&gt;ahriman_application_handlers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1956.72,-1925.77C1967.68,-1883.12 1984,-1808.72 1984,-1743.73 1984,-1743.73 1984,-1743.73 1984,-873.19 1984,-732.68 2040.85,-685.03 2160,-610.57 2248.45,-555.29 2627.19,-650.86 2625,-546.57"/>
<path fill="none" stroke="black" d="M2625,-544.57C2623.08,-500.28 2604.6,-484.18 2625,-444.81"/>
</g>
<!-- ahriman_application_handlers_web -->
<g id="node31" class="node">
<title>ahriman_application_handlers_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="2700" cy="-224.74" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="2700" y="-238.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2700" y="-227.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="2700" y="-216.74" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">handlers.</text>
<text text-anchor="middle" x="2700" 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="edge45" 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="M2686.92,-189.4C2683.42,-180.2 2679.61,-170.21 2676.06,-160.88"/>
<polygon fill="#8a4e2e" stroke="black" points="2679.29,-159.54 2672.46,-151.44 2672.75,-162.04 2679.29,-159.54"/>
</g>
<!-- ahriman_application_lock -->
<g id="node32" class="node">
<title>ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="12575" cy="-2063.57" rx="46.84" ry="28.98"/>
<text text-anchor="middle" x="12575" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12575" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">application.</text>
<text text-anchor="middle" x="12575" 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="edge46" 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="M12621.85,-2062.29C12686.82,-2058.95 12800.74,-2041.55 12840,-1962.8"/>
<path fill="none" stroke="black" d="M12840,-1960.8C12849.36,-1942.02 12850.7,-1919 12849.25,-1899.08"/>
<polygon fill="#734126" stroke="black" points="12852.72,-1898.6 12848.26,-1888.99 12845.75,-1899.28 12852.72,-1898.6"/>
</g>
<!-- ahriman_core -->
<g id="node33" class="node">
<title>ahriman_core</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="10834" cy="-4148.8" rx="42.94" ry="18"/>
<text text-anchor="middle" x="10834" y="-4146.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.core</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_ahriman -->
<g id="edge47" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10855.83,-4133.15C10864.79,-4127.92 10875.51,-4122.64 10886,-4119.81 11119.99,-4056.71 11735.52,-4113.89 11976,-4083.81 12181.88,-4058.06 12432,-4191.3 12432,-3983.82 12432,-3983.82 12432,-3983.82 12432,-3815.84 12432,-3760.01 12430.5,-3739.95 12462,-3693.86 12626.33,-3453.39 12998,-3608.07 12998,-3316.81 12998,-3316.81 12998,-3316.81 12998,-3017.3 12998,-2626.43 13220,-2557.2 13220,-2166.33 13220,-2166.33 13220,-2166.33 13220,-1851.27 13220,-1754.79 13208.78,-1730.01 13220,-1634.19"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge48" 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="M2120,-3981.82C2090.88,-3941.96 2061.88,-3946.84 2044,-3900.83"/>
<path fill="none" stroke="black" d="M2044,-3898.83C1995.81,-3774.85 1969.39,-3718.28 2030,-3599.88 2143.84,-3377.52 2283.31,-3417.28 2486,-3271.26 2833.96,-3020.59 2872.36,-2870.42 3269,-2707.36 3364.29,-2668.19 3425.68,-2744.75 3498,-2671.36 3551.14,-2617.44 3522,-2578.43 3522,-2502.72 3522,-2502.72 3522,-2502.72 3522,-2383.4 3522,-2318.27 3517.45,-2301.6 3503,-2238.1 3484.99,-2158.94 3446,-2145.74 3446,-2064.57 3446,-2064.57 3446,-2064.57 3446,-1632.19 3446,-1536.79 3562.3,-1302.05 3532,-1211.59"/>
<path fill="none" stroke="black" d="M3532,-1209.59C3517.53,-1180.49 3491.57,-1155.48 3467.67,-1136.93"/>
<polygon fill="#f96210" stroke="black" points="3469.75,-1134.12 3459.66,-1130.89 3465.54,-1139.71 3469.75,-1134.12"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge49" 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="M1892,-3898.83C1793.44,-3838.05 1980.02,-3500.81 2030,-3396.36 2096.93,-3256.47 2234,-3268.36 2234,-3113.29 2234,-3113.29 2234,-3113.29 2234,-2923.32 2234,-2771.4 2179.23,-2712.78 2257,-2582.27 2272.34,-2556.53 2291.57,-2566.14 2314,-2546.27 2367.69,-2498.7 2374.74,-2479.86 2416,-2421.17 2503.29,-2297.02 2501.83,-2250.63 2592,-2128.56 2861.32,-1763.93 3248.38,-1374.28 3373.41,-1251.18"/>
<polygon fill="#f96210" stroke="black" points="3375.89,-1253.65 3380.57,-1244.15 3370.98,-1248.66 3375.89,-1253.65"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge50" 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="M1892,-3898.83C1772.23,-3828.77 1773.12,-3735.6 1802,-3599.88 1886.52,-3202.69 2044.33,-3150.17 2174,-2765.35 2200.69,-2686.14 2186.05,-2659.91 2217,-2582.27 2223.86,-2565.06 2228.93,-2562.42 2238,-2546.27 2391.77,-2272.61 2401.79,-2187.48 2574,-1925.03 2697.81,-1736.35 2730.58,-1685.93 2896,-1532.43"/>
<path fill="none" stroke="black" d="M2896,-1530.43C2904.88,-1519.72 2900.97,-1513.02 2910,-1502.43 2945.49,-1460.81 2995.41,-1483.39 3010,-1430.67"/>
<path fill="none" stroke="black" d="M3010,-1428.67C3035.73,-1335.68 2982.48,-1304.06 3010,-1211.59"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_add -->
<g id="edge51" 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="M2044,-3898.83C2021.36,-3836.14 2031.3,-3655.51 2068,-3599.88 2125.86,-3512.17 2811.8,-3201.68 2914,-3177.28 2971.09,-3163.65 3395.37,-3178.2 3441,-3141.28 3479.98,-3109.74 3531.78,-2744.92 3565,-2707.36 3592.18,-2676.64 3624.98,-2703.88 3650,-2671.36 3696.16,-2611.36 3674,-2578.43 3674,-2502.72 3674,-2502.72 3674,-2502.72 3674,-2273.87 3674,-2035.84 3598,-1981.75 3598,-1743.73 3598,-1743.73 3598,-1743.73 3598,-1428.67 3598,-1261.08 3613.94,-1188.09 3501,-1064.28 3496.26,-1059.08 3058.33,-832.72 3052,-829.64 3016.93,-812.61 3003.24,-816.98 2972,-793.64 2932.6,-764.21 2897.03,-720.33 2874,-688.5"/>
<polygon fill="#f96210" stroke="black" points="2876.79,-686.38 2868.13,-680.27 2871.09,-690.44 2876.79,-686.38"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge52" 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="M2272,-3815.84C2281.86,-3806.02 2276.69,-3798.18 2286,-3787.84 2287.11,-3786.61 3092.43,-3271.81 3094,-3271.26 3235.7,-3221.49 3292.62,-3295.96 3430,-3235.26 3487.59,-3209.81 3498.09,-3191.55 3536,-3141.28 3712.53,-2907.15 3733.08,-2826 3821,-2546.27 4006.72,-1955.38 3894.54,-1769.86 4063,-1173.82 4101.26,-1038.43 4165.07,-1015.85 4168,-875.19"/>
<path fill="none" stroke="black" d="M4168,-873.19C4146.96,-738.42 4030.47,-765.93 3902,-720.1 3619.46,-619.33 3533.91,-645.69 3236,-610.57 3180.57,-604.03 2775.89,-612.55 2735,-574.57 2682.41,-525.7 2684.45,-435.37 2691.61,-380.75"/>
<polygon fill="#f96210" stroke="black" points="2695.11,-381.05 2693.05,-370.66 2688.18,-380.07 2695.11,-381.05"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge53" 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="M2120,-3981.82C2090.88,-3941.96 2155.62,-3929.21 2196,-3900.83"/>
<path fill="none" stroke="black" d="M2196,-3898.83C2206.69,-3891.31 2208.91,-3888.75 2220,-3881.83 2248.35,-3864.14 2257.97,-3864.01 2286,-3845.83 2321.64,-3822.7 2325.41,-3809.44 2362,-3787.84 2437.49,-3743.28 3007.3,-3512.33 3084,-3469.9 3124.64,-3447.41 3393.32,-3263.76 3430,-3235.26 3479.71,-3196.63 3501.34,-3193.84 3536,-3141.28 3647.85,-2971.64 3542.52,-2856.98 3680,-2707.36 3707.48,-2677.46 3736.9,-2701.62 3764,-2671.36 3802.77,-2628.08 3792.9,-2603.66 3802,-2546.27 3837.62,-2321.61 3801.02,-2261.77 3812,-2034.57 3815.9,-1953.85 3826,-1934.09 3826,-1853.27 3826,-1853.27 3826,-1853.27 3826,-1741.73 3826,-1455.43 3902,-1388.35 3902,-1102.05 3902,-1102.05 3902,-1102.05 3902,-990.51 3902,-918.22 3899.32,-898.72 3878,-829.64 3876.01,-823.18 3830.52,-724.01 3825,-720.1 3818.99,-715.85 3392.6,-670.68 3236.47,-654.26"/>
<polygon fill="#f96210" stroke="black" points="3236.46,-650.74 3226.15,-653.17 3235.73,-657.7 3236.46,-650.74"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge54" 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="M456,-3533.89C422.46,-3443.43 456,-3413.29 456,-3316.81 456,-3316.81 456,-3316.81 456,-3111.29 456,-3028.64 471.78,-3006.45 456,-2925.32"/>
<path fill="none" stroke="black" d="M456,-2923.32C449.53,-2894.94 445.13,-2888.28 442,-2859.33 428.64,-2735.76 450.15,-2702.92 480,-2582.27 506.32,-2475.86 510.53,-2447.37 556,-2347.63 691.52,-2050.39 699.3,-1918.96 975,-1743.73"/>
<path fill="none" stroke="black" d="M975,-1741.73C1304.4,-1528.27 1635.21,-1871.46 1833,-1532.43"/>
<path fill="none" stroke="black" d="M1833,-1530.43C1842.39,-1514.35 1843.9,-1494.18 1842.48,-1476.2"/>
<polygon fill="#f96210" stroke="black" points="1845.95,-1475.75 1841.39,-1466.19 1838.99,-1476.51 1845.95,-1475.75"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge55" 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="M10855.85,-4133.23C10864.81,-4128.02 10875.53,-4122.72 10886,-4119.81 11046.34,-4075.27 11467.79,-4092.12 11634,-4083.81 11779.79,-4076.52 11842.14,-4150.12 11962,-4066.81"/>
<path fill="none" stroke="black" d="M11962,-4064.81C12021.84,-4023.21 11962,-3973.71 11962,-3900.83 11962,-3900.83 11962,-3900.83 11962,-3815.84 11962,-3760.59 11951.14,-3736.72 11986,-3693.86 12079.76,-3578.6 12179.92,-3659.07 12294,-3563.88 12460.07,-3425.31 12748.42,-2945.28 12808,-2737.36"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_help -->
<g id="edge56" 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="M10856.17,-4133.29C10865.08,-4128.16 10875.69,-4122.89 10886,-4119.81 11061.68,-4067.27 11117.19,-4119.75 11297,-4083.81 11400.79,-4063.07 11431.12,-4062.56 11524,-4011.81 11775.46,-3874.4 11764.15,-3728.94 12020,-3599.88 12126.25,-3546.28 12215.45,-3635.86 12280,-3535.89"/>
<path fill="none" stroke="black" d="M12280,-3533.89C12313.68,-3481.27 12288.21,-3455.27 12309,-3396.36 12413.7,-3099.63 12529.16,-3063.4 12630,-2765.35 12900.08,-1967.02 12689.83,-1712.92 12782,-875.19"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge57" 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="M2120,-3981.82C2061.38,-3901.57 2208.25,-3894.07 2272,-3817.84"/>
<path fill="none" stroke="black" d="M2272,-3815.84C2288.89,-3793.33 2294.43,-3719.51 2306,-3693.86 2326.48,-3648.47 2331.7,-3635 2367,-3599.88 2494.47,-3473.06 2884.49,-3228 3057,-3177.28 3146.23,-3151.04 3402.22,-3200.43 3474,-3141.28 3551.39,-3077.5 3530.8,-2781.81 3598,-2707.36 3626.87,-2675.39 3663.85,-2707.04 3688,-2671.36 3803.75,-2500.4 3636,-1950.19 3636,-1743.73 3636,-1743.73 3636,-1743.73 3636,-1632.19 3636,-1503.46 3695.42,-1481.94 3726,-1356.9 3741.55,-1293.31 3750,-1277.04 3750,-1211.59 3750,-1211.59 3750,-1211.59 3750,-1100.05 3750,-1061.79 3740.39,-783.51 3712,-757.87"/>
<path fill="none" stroke="black" d="M3712,-755.87C3591.32,-656.78 3160.24,-736.1 3013,-684.1 3008.54,-682.53 3004.07,-680.52 2999.73,-678.26"/>
<polygon fill="#f96210" stroke="black" points="3001.43,-675.21 2991.01,-673.34 2997.99,-681.3 3001.43,-675.21"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge58" 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="M176,-3111.29C148.13,-3033.48 157.7,-3005.92 176,-2925.32"/>
<path fill="none" stroke="black" d="M176,-2923.32C193.03,-2868.72 255.21,-2887.51 266,-2831.34"/>
<path fill="none" stroke="black" d="M266,-2829.34C271.82,-2799.02 250.18,-2794.12 239,-2765.35 215.49,-2704.87 190,-2692.71 190,-2627.82 190,-2627.82 190,-2627.82 190,-2500.72 190,-2285.56 424,-1780.14 536,-1596.42 576.19,-1530.48 766.11,-1327.8 774,-1321.13"/>
<path fill="none" stroke="black" d="M774,-1319.13C920.14,-1124.35 1026.84,-1137.72 1259,-1064.28 1365.39,-1030.62 1689.85,-1082.38 1756,-992.51"/>
<path fill="none" stroke="black" d="M1756,-990.51C1765.11,-977.79 1829.27,-734.67 1835,-720.1 1838.87,-710.27 1843.6,-699.97 1848.34,-690.34"/>
<polygon fill="#f96210" stroke="black" points="1851.5,-691.86 1852.87,-681.35 1845.25,-688.71 1851.5,-691.86"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge59" 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="M570,-3815.84C552.76,-3735 570,-3712.52 570,-3629.87 570,-3629.87 570,-3629.87 570,-2829.34 570,-2565.01 773.31,-1892.08 961,-1705.96 1040.54,-1627.08 1085.23,-1641 1188,-1596.42 1334.89,-1532.69 1382.55,-1541.46 1524,-1466.43 1750.46,-1346.32 1809.85,-1311.92 1998,-1137.82 2053.26,-1086.69 2208.42,-950.39 2212,-875.19"/>
<path fill="none" stroke="black" d="M2212,-873.19C2211.32,-800.7 2259.49,-728.05 2293.69,-685.68"/>
<polygon fill="#f96210" stroke="black" points="2296.46,-687.83 2300.12,-677.88 2291.06,-683.38 2296.46,-687.83"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge60" 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="M11962,-4064.81C12377.55,-3800.35 13106,-2658.89 13106,-2166.33 13106,-2166.33 13106,-2166.33 13106,-1851.27 13106,-1501.32 13139.25,-1409.34 13081,-1064.28 13057.77,-926.65 13009.84,-768.33 12985.65,-692.85"/>
<polygon fill="#f96210" stroke="black" points="12988.94,-691.64 12982.54,-683.19 12982.28,-693.78 12988.94,-691.64"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge61" 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="M1331,-3205.27C1211.64,-3054.38 1530.3,-3070.34 1683,-2953.31 1839.9,-2833.06 1910.7,-2831.22 2027,-2671.36 2057.08,-2630.02 2082.15,-2499.38 2111,-2457.17 2124.31,-2437.7 2138.8,-2441.94 2150,-2421.17 2181.07,-2363.56 2174,-2341.32 2174,-2275.87 2174,-2275.87 2174,-2275.87 2174,-2062.57 2174,-1517.82 2403.46,-1414.81 2478,-875.19"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_restore -->
<g id="edge62" 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="M266,-2829.34C287.81,-2752.64 588,-1510.4 588,-1430.67 588,-1430.67 588,-1430.67 588,-442.81 588,-245.86 2170.04,-227.58 2492.89,-225.9"/>
<polygon fill="#f96210" stroke="black" points="2492.97,-229.4 2502.96,-225.85 2492.94,-222.4 2492.97,-229.4"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_search -->
<g id="edge63" 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="M10834,-4064.81C10895.01,-3959.95 10992.46,-4015.8 11064,-3917.83 11123.77,-3835.97 11129.22,-3792.75 11107,-3693.86 11061.45,-3491.12 11010.89,-3451.22 10907,-3271.26 10830.83,-3139.31 10803.4,-3111.21 10712,-2989.31 10541.9,-2762.47 10054.25,-2241.48 9908,-1998.57 9767.97,-1766 9647.12,-1035.45 9428,-875.19"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge64" 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="M10790.91,-4147.73C10272.68,-4146.84 5227.66,-4136.9 3732,-4083.81 3373.32,-4071.08 2330.84,-4274.28 2120,-3983.82"/>
<path fill="none" stroke="black" d="M2120,-3981.82C1950.49,-3946.35 607.98,-3986.8 570,-3817.84"/>
<path fill="none" stroke="black" d="M570,-3815.84C472.96,-3722.93 505.22,-3660.89 456,-3535.89"/>
<path fill="none" stroke="black" d="M456,-3533.89C364.4,-3328.85 258.39,-3322.2 176,-3113.29"/>
<path fill="none" stroke="black" d="M176,-3111.29C158.6,-3078.07 140.01,-3079.62 121,-3047.3 91.7,-2997.49 91.37,-2981.02 76,-2925.32"/>
<path fill="none" stroke="black" d="M76,-2923.32C62.76,-2889.15 39.55,-2892.51 24,-2859.33 0.55,-2809.3 0,-2792.61 0,-2737.36 0,-2737.36 0,-2737.36 0,-1960.8 0,-1811.76 76,-1783.23 76,-1634.19 76,-1634.19 76,-1634.19 76,-1428.67 76,-1326.44 133.99,-1312.21 152,-1211.59"/>
<path fill="none" stroke="black" d="M152,-1209.59C162.38,-1113.67 152,-1088.99 152,-992.51 152,-992.51 152,-992.51 152,-873.19 152,-788.87 229.13,-716.39 279.79,-677.88"/>
<polygon fill="#f96210" stroke="black" points="282.06,-680.55 287.98,-671.76 277.87,-674.94 282.06,-680.55"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge65" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M456,-2923.32C450.08,-2840.88 456,-2820.01 456,-2737.36 456,-2737.36 456,-2737.36 456,-2500.72 456,-2467.79 766.28,-1720.87 779,-1705.96 1092.76,-1337.96 1312.33,-1417.29 1707,-1137.82 1761.59,-1099.16 2141.49,-816.33 2174,-757.87"/>
<path fill="none" stroke="black" d="M2174,-755.87C2182.75,-735.18 2191.88,-712 2199.39,-692.47"/>
<polygon fill="#f96210" stroke="black" points="2202.74,-693.51 2203.05,-682.92 2196.21,-691 2202.74,-693.51"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge66" 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="M1664,-3721.85C1651.93,-3688.03 2187.84,-2579.27 2202,-2546.27 2206.06,-2536.8 2336.69,-2211.85 2340,-2202.1 2462.64,-1840.77 2668,-1315.16 2668,-992.51 2668,-992.51 2668,-992.51 2668,-873.19 2668,-804.32 2668.21,-784.73 2692,-720.1 2696.02,-709.18 2701.8,-698.1 2707.86,-688.03"/>
<polygon fill="#f96210" stroke="black" points="2710.88,-689.8 2713.21,-679.46 2704.94,-686.09 2710.88,-689.8"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status -->
<g id="edge67" 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="M2196,-3898.83C2206.76,-3891.41 2208.13,-3887.3 2220,-3881.83 2279.12,-3854.55 2300.52,-3867.25 2362,-3845.83 2747.1,-3711.67 2834.01,-3651.78 3199,-3469.9 3392.81,-3373.32 3459.65,-3373.89 3626,-3235.26 3721.12,-3156 3802,-3143.12 3802,-3019.3 3802,-3019.3 3802,-3019.3 3802,-2923.32 3802,-2802.35 3869.67,-2787.07 3905,-2671.36 3927.36,-2598.15 3940,-2579.27 3940,-2502.72 3940,-2502.72 3940,-2502.72 3940,-2164.33 3940,-1827.5 4130,-1767.49 4130,-1430.67 4130,-1430.67 4130,-1430.67 4130,-1100.05 4130,-994.56 4190.15,-979.48 4206,-875.19"/>
<path fill="none" stroke="black" d="M4206,-873.19C4208.32,-847.67 4224.64,-775.46 4206,-757.87"/>
<path fill="none" stroke="black" d="M4206,-755.87C4112.23,-667.44 4044.91,-731.39 3925,-684.1 3920.77,-682.44 3916.53,-680.42 3912.37,-678.21"/>
<polygon fill="#f96210" stroke="black" points="3913.88,-675.03 3903.46,-673.09 3910.4,-681.11 3913.88,-675.03"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge68" 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="M76,-2923.32C55.1,-2843.36 76,-2820.01 76,-2737.36 76,-2737.36 76,-2737.36 76,-1960.8 76,-1807.05 190,-1787.94 190,-1634.19 190,-1634.19 190,-1634.19 190,-873.19 190,-813.44 345.57,-720.85 429.22,-675.39"/>
<polygon fill="#f96210" stroke="black" points="430.93,-678.45 438.06,-670.62 427.6,-672.29 430.93,-678.45"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge69" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1521,-3627.87C1382.23,-3482.27 1951.02,-2915.22 1984,-2859.33 2083.24,-2691.14 2060.8,-2624.79 2161,-2457.17 2171.26,-2440.01 2179.84,-2439.43 2188,-2421.17 2244.01,-2295.87 2274.82,-1948.43 2309,-1815.5 2362.24,-1608.46 2396.48,-1562.78 2454,-1356.9 2485.37,-1244.63 2516,-1218.62 2516,-1102.05 2516,-1102.05 2516,-1102.05 2516,-873.19 2516,-804.32 2506.23,-780.12 2540,-720.1 2549.59,-703.06 2564.89,-688.27 2579.88,-676.62"/>
<polygon fill="#f96210" stroke="black" points="2582.21,-679.26 2588.14,-670.48 2578.03,-673.64 2582.21,-679.26"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge70" 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="M176,-2923.32C215.24,-2797.53 152,-2759.59 152,-2627.82 152,-2627.82 152,-2627.82 152,-2273.87 152,-2124.78 550,-1141.59 550,-992.51 550,-992.51 550,-992.51 550,-873.19 550,-554.59 1692.73,-739.86 1946,-546.57"/>
<path fill="none" stroke="black" d="M1946,-544.57C1964.06,-530 1977.99,-508.44 1987.86,-489.08"/>
<polygon fill="#f96210" stroke="black" points="1991.01,-490.61 1992.25,-480.08 1984.72,-487.54 1991.01,-490.61"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_update -->
<g id="edge71" 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="M2272,-3815.84C2279.88,-3804.38 2278.35,-3799.46 2286,-3787.84 2376.2,-3650.89 2391.25,-3602.17 2524,-3505.9 2663.38,-3404.82 2737.04,-3451.66 2883,-3360.36 2933.19,-3328.97 2929.73,-3299.04 2982,-3271.26 3134.48,-3190.21 3191.17,-3217.94 3359,-3177.28 3426.89,-3160.83 3462.06,-3190.12 3512,-3141.28 3583.57,-3071.29 3563.34,-2779.26 3633,-2707.36 3663.84,-2675.53 3698.27,-2705.94 3726,-2671.36 3761.19,-2627.5 3757.96,-2477.08 3764,-2421.17 3766.31,-2399.78 3865.66,-896.64 3864,-875.19"/>
<path fill="none" stroke="black" d="M3864,-873.19C3859.55,-853.37 3781.59,-730.27 3764,-720.1 3640.68,-648.81 3259.38,-728.43 3124,-684.1 3119.5,-682.63 3115.01,-680.69 3110.65,-678.48"/>
<polygon fill="#f96210" stroke="black" points="3112.35,-675.42 3101.91,-673.62 3108.95,-681.54 3112.35,-675.42"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_users -->
<g id="edge72" 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="M1664,-3721.85C1617.98,-3581.96 1677.72,-3535.48 1726,-3396.36 1761.98,-3292.66 1787.44,-3273.64 1840,-3177.28 1909.1,-3050.6 1928.87,-3020.31 2001,-2895.33 2010.26,-2879.29 2013.54,-2875.81 2022,-2859.33 2083.63,-2739.32 2088.43,-2704.28 2146,-2582.27 2163.06,-2546.12 2211.97,-2458.6 2226,-2421.17 2255.53,-2342.41 2238.04,-2314.14 2274,-2238.1 2290.84,-2202.49 2319.93,-2205.25 2326,-2166.33"/>
<path fill="none" stroke="black" d="M2326,-2164.33C2333.44,-2106.15 2332.28,-2090.48 2350,-2034.57 2360.61,-2001.11 2384.65,-1997.87 2383,-1962.8"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge73" class="edge">
<title>ahriman_core&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2120,-3981.82C2063.95,-3905.09 2001.14,-3960.02 1916,-3917.83 1904.29,-3912.02 1903.25,-3907.48 1892,-3900.83"/>
<path fill="none" stroke="black" d="M1892,-3898.83C1825.32,-3859.44 1785,-3896 1726,-3845.83 1679.68,-3806.43 1677.06,-3783.25 1664,-3723.85"/>
<path fill="none" stroke="black" d="M1664,-3721.85C1645.36,-3665.18 1592.79,-3694.88 1546,-3657.86 1532.92,-3647.51 1533.96,-3640.37 1521,-3629.87"/>
<path fill="none" stroke="black" d="M1521,-3627.87C1444.08,-3565.57 1407.38,-3558.87 1364,-3469.9 1312.44,-3364.15 1396.13,-3305.23 1331,-3207.27"/>
<path fill="none" stroke="black" d="M1331,-3205.27C1320.57,-3192.63 1321.51,-3184.89 1307,-3177.28 1171.27,-3106.05 1085.58,-3234.63 964,-3141.28 680.83,-2923.86 614.97,-2624.79 840,-2347.63 1114.72,-2009.29 1704.72,-1967.72 1890.07,-1963.17"/>
<polygon fill="#f96210" stroke="black" points="1890.22,-1966.67 1900.14,-1962.95 1890.07,-1959.67 1890.22,-1966.67"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_handlers_web -->
<g id="edge74" 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="M10857.89,-4133.77C10866.57,-4128.98 10876.57,-4123.83 10886,-4119.81 10956.46,-4089.75 10976.96,-4089.88 11050,-4066.81"/>
<path fill="none" stroke="black" d="M11050,-4064.81C11059.33,-4061.86 11055.65,-4052.92 11064,-4047.81 11176.56,-3978.87 11268.95,-4084.75 11354,-3983.82"/>
<path fill="none" stroke="black" d="M11354,-3981.82C11379.52,-3951.54 11318.39,-3947.36 11292,-3917.83 11285.48,-3910.53 11284.33,-3908.29 11278,-3900.83"/>
<path fill="none" stroke="black" d="M11278,-3898.83C11237.36,-3850.87 11046.94,-3452.16 11018,-3396.36 10725.63,-2832.62 10656.13,-2689.8 10359,-2128.56 10176.7,-1784.21 10100.12,-1713.44 9943,-1356.9 9829.3,-1098.87 9734,-1039.85 9734,-757.87 9734,-757.87 9734,-757.87 9734,-646.34 9734,-588.05 9720.55,-565 9753,-516.58 9787.81,-464.64 9893.76,-504.14 9874,-444.81"/>
<path fill="none" stroke="black" d="M9874,-442.81C9810.32,-255.53 2943.92,-320.16 2755,-261.5 2750.6,-260.14 2746.21,-258.31 2741.95,-256.2"/>
<polygon fill="#f96210" stroke="black" points="2743.3,-252.95 2732.85,-251.2 2739.93,-259.08 2743.3,-252.95"/>
</g>
<!-- ahriman_core&#45;&gt;ahriman_application_lock -->
<g id="edge75" 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="M12280,-3533.89C12507.02,-3079.14 12493.74,-2926.95 12544,-2421.17 12550.41,-2356.69 12548.66,-2340.25 12556,-2275.87"/>
</g>
<!-- ahriman_models_aur_package -->
<g id="node113" class="node">
<title>ahriman_models_aur_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d14d05" stroke="black" cx="5753" cy="-3628.87" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="5753" y="-3637.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5753" y="-3626.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5753" y="-3615.37" 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="edge76" 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="M3824,-3981.82C3907.32,-3890.83 3971.29,-3924.9 4066,-3845.83 4091.68,-3824.39 4084.45,-3803.52 4114,-3787.84 4149.68,-3768.92 5400.63,-3660.21 5692.53,-3635.06"/>
<polygon fill="#f96210" stroke="black" points="5693.25,-3638.51 5702.91,-3634.17 5692.65,-3631.54 5693.25,-3638.51"/>
</g>
<!-- ahriman_models_build_status -->
<g id="node115" class="node">
<title>ahriman_models_build_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e55405" stroke="black" cx="7745" cy="-2924.32" rx="48.58" ry="28.98"/>
<text text-anchor="middle" x="7745" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7745" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="7745" y="-2910.82" 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="edge77" 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="M10790.81,-4147.78C10417.81,-4147.45 7750.59,-4143.06 7594,-4083.81 7464.24,-4034.71 7469.04,-3962.26 7356,-3881.83 7330.35,-3863.58 7310.61,-3873.16 7295,-3845.83 7282.22,-3823.45 7280.22,-3808.95 7295,-3787.84 7321.86,-3749.5 7357.44,-3781.09 7394,-3751.84 7626.77,-3565.63 7595.19,-3437.83 7740,-3177.28 7756.07,-3148.37 7769.93,-3145.36 7778,-3113.29"/>
<path fill="none" stroke="black" d="M7778,-3111.29C7788.26,-3059.77 7772.76,-2999.92 7759.72,-2962.33"/>
<polygon fill="#f96210" stroke="black" points="7762.98,-2961.03 7756.3,-2952.8 7756.39,-2963.4 7762.98,-2961.03"/>
</g>
<!-- ahriman_models_counters -->
<g id="node116" class="node">
<title>ahriman_models_counters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a35428" stroke="black" cx="8483" cy="-2830.34" rx="38.78" ry="28.98"/>
<text text-anchor="middle" x="8483" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8483" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="8483" y="-2816.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">counters</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_counters -->
<g id="edge78" 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="M10829.3,-4130.7C10825.55,-4113.37 10822.62,-4086.38 10834,-4066.81"/>
<path fill="none" stroke="black" d="M10834,-4064.81C10852.1,-4033.7 10841.76,-4018.97 10834,-3983.82"/>
<path fill="none" stroke="black" d="M10834,-3981.82C10818.01,-3909.37 10631.31,-3814.76 10592,-3751.84 10554.47,-3691.77 10577.93,-3662.05 10544,-3599.88 10453.04,-3433.21 10430.44,-3374.37 10271,-3271.26 10139.71,-3186.36 10083.6,-3215.53 9932,-3177.28 9893.44,-3167.55 8573.29,-2873.15 8536,-2859.33 8531.42,-2857.63 8526.74,-2855.62 8522.15,-2853.46"/>
<polygon fill="#f96210" stroke="black" points="8523.43,-2850.19 8512.92,-2848.88 8520.32,-2856.46 8523.43,-2850.19"/>
</g>
<!-- ahriman_models_migration_result -->
<g id="node119" class="node">
<title>ahriman_models_migration_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bc602f" stroke="black" cx="11037" cy="-3722.85" rx="60.62" ry="28.98"/>
<text text-anchor="middle" x="11037" y="-3731.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11037" y="-3720.35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="11037" y="-3709.35" 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="edge79" 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="M10834,-3981.82C10827.92,-3928.05 10942.54,-3812.13 11002.15,-3755.83"/>
<polygon fill="#f96210" stroke="black" points="11004.59,-3758.34 11009.49,-3748.94 10999.8,-3753.24 11004.59,-3758.34"/>
</g>
<!-- ahriman_models_package -->
<g id="node120" class="node">
<title>ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#953703" stroke="black" cx="6088" cy="-2924.32" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6088" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6088" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6088" y="-2910.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_package -->
<g id="edge80" 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="M10791,-4147.35C10461.57,-4143.86 8303.67,-4120.27 6550,-4083.81 6246.97,-4077.51 3624.3,-4211.82 3824,-3983.82"/>
<path fill="none" stroke="black" d="M3824,-3981.82C3769.45,-3855.23 3932.94,-3823.85 4066,-3787.84 4526.29,-3663.3 4709.74,-3881.29 5131,-3657.86 5231.69,-3604.46 5378.91,-3342.34 5468,-3271.26 5494.42,-3250.18 5505.92,-3252.49 5535,-3235.26 5707.43,-3133.08 5733.73,-3078.96 5913,-2989.31 5955.45,-2968.09 6006.72,-2950.17 6042.76,-2938.75"/>
<polygon fill="#f96210" stroke="black" points="6044,-2942.03 6052.5,-2935.7 6041.91,-2935.34 6044,-2942.03"/>
</g>
<!-- ahriman_models_package_description -->
<g id="node121" class="node">
<title>ahriman_models_package_description</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bf5921" stroke="black" cx="6971" cy="-3018.3" rx="74.91" ry="28.98"/>
<text text-anchor="middle" x="6971" y="-3026.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6971" y="-3015.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6971" y="-3004.8" 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="edge81" 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="M6602,-4064.81C6581.17,-4032.75 6730.74,-3787.32 6745,-3751.84 6852.17,-3485.17 6895.02,-3421.7 6958,-3141.28 6964.18,-3113.77 6967.44,-3082.08 6969.16,-3057.91"/>
<polygon fill="#f96210" stroke="black" points="6972.66,-3057.91 6969.82,-3047.7 6965.68,-3057.45 6972.66,-3057.91"/>
</g>
<!-- ahriman_models_package_source -->
<g id="node122" class="node">
<title>ahriman_models_package_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e55405" stroke="black" cx="6398" cy="-3112.29" rx="62.45" ry="28.98"/>
<text text-anchor="middle" x="6398" y="-3120.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6398" y="-3109.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6398" y="-3098.79" 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="edge82" 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="M10791.05,-4147.47C10348.32,-4144.02 6631.41,-4113.63 6602,-4066.81"/>
<path fill="none" stroke="black" d="M6602,-4064.81C6563.23,-4003.1 6623.6,-3970.43 6602,-3900.83"/>
<path fill="none" stroke="black" d="M6602,-3898.83C6581.95,-3824.9 6539.45,-3823.36 6512,-3751.84 6454.42,-3601.82 6478.19,-3553.79 6446,-3396.36 6431.3,-3324.48 6421.61,-3307.7 6410,-3235.26 6405.54,-3207.44 6402.48,-3175.77 6400.57,-3151.67"/>
<polygon fill="#f96210" stroke="black" points="6404.05,-3151.22 6399.8,-3141.51 6397.07,-3151.75 6404.05,-3151.22"/>
</g>
<!-- ahriman_models_remote_source -->
<g id="node125" class="node">
<title>ahriman_models_remote_source</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#af4a13" stroke="black" cx="6441" cy="-3018.3" rx="57.05" ry="28.98"/>
<text text-anchor="middle" x="6441" y="-3026.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6441" y="-3015.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="6441" y="-3004.8" 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="edge83" 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="M6602,-3898.83C6569.61,-3598.5 6487.86,-3535.54 6455,-3235.26 6452.2,-3209.64 6448.92,-3202.32 6455,-3177.28 6462.55,-3146.18 6498.67,-3143.45 6488,-3113.29"/>
<path fill="none" stroke="black" d="M6488,-3111.29C6480.64,-3092.23 6470.53,-3071.92 6461.57,-3055.25"/>
<polygon fill="#f96210" stroke="black" points="6464.59,-3053.49 6456.73,-3046.39 6458.45,-3056.84 6464.59,-3053.49"/>
</g>
<!-- ahriman_models_repository_paths -->
<g id="node127" class="node">
<title>ahriman_models_repository_paths</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e55405" stroke="black" cx="5743" cy="-3982.82" rx="62.87" ry="28.98"/>
<text text-anchor="middle" x="5743" y="-3991.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5743" y="-3980.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="5743" 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="edge84" 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="M10790.83,-4147.88C10357.21,-4148.62 6798.57,-4152.58 6588,-4083.81 6575.57,-4079.75 6577.05,-4067.59 6564,-4066.81"/>
<path fill="none" stroke="black" d="M6564,-4064.81C6285.57,-4048.09 5955.62,-4009.94 5813.68,-3992.64"/>
<polygon fill="#f96210" stroke="black" points="5813.74,-3989.12 5803.39,-3991.38 5812.89,-3996.07 5813.74,-3989.12"/>
</g>
<!-- ahriman_models_result -->
<g id="node128" class="node">
<title>ahriman_models_result</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d14d05" stroke="black" cx="4976" cy="-2830.34" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="4976" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4976" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="4976" y="-2816.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">result</text>
</g>
<!-- ahriman_core&#45;&gt;ahriman_models_result -->
<g id="edge85" 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="M2120,-3981.82C2053.02,-3891.26 4011.87,-3628.69 4104,-3563.88 4389.46,-3363.06 4219.04,-3078.73 4516,-2895.33 4593.44,-2847.5 4836.81,-2885.44 4924,-2859.33 4928.67,-2857.93 4933.39,-2856.09 4937.99,-2854.02"/>
<polygon fill="#f96210" stroke="black" points="4939.76,-2857.05 4947.2,-2849.5 4936.68,-2850.76 4939.76,-2857.05"/>
</g>
<!-- ahriman_web_middlewares_auth_handler -->
<g id="node138" class="node">
<title>ahriman_web_middlewares_auth_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="12580" cy="-874.19" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="12580" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="12580" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="12580" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="12580" 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="edge86" 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="M10856.48,-4133.33C10865.35,-4128.26 10875.84,-4123.04 10886,-4119.81 11011.88,-4079.82 11051.1,-4107.72 11181,-4083.81 11312.03,-4059.7 11353.1,-4071.93 11472,-4011.81 11530.29,-3982.33 11538.1,-3963.3 11585,-3917.83 11996.07,-3519.28 12112.5,-3423.65 12439,-2953.31 12611.76,-2704.44 12624.21,-2611.26 12669,-2311.63 12716.53,-1993.69 12633.08,-1909.71 12561,-1596.42 12532.77,-1473.7 12447.42,-1438.12 12494,-1321.13"/>
</g>
<!-- ahriman_web_views_base -->
<g id="node142" class="node">
<title>ahriman_web_views_base</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#953703" stroke="black" cx="11389" cy="-991.51" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11389" y="-1005.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11389" y="-994.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11389" y="-983.51" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="11389" 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="edge87" 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="M11050,-4064.81C11186.78,-4022.13 11235.87,-4067.24 11368,-4011.81 11382.45,-4005.75 11587.57,-3859.04 11596,-3845.83 11625.72,-3799.25 11620,-3779.1 11620,-3723.85 11620,-3723.85 11620,-3723.85 11620,-3533.89 11620,-3331.15 11694.28,-3224.7 11549,-3083.3 11460.04,-2996.71 11353.93,-3140.57 11272,-3047.3 11112.54,-2865.77 11350,-2204.43 11350,-1962.8 11350,-1962.8 11350,-1962.8 11350,-1851.27 11350,-1754.79 11331.87,-1728.95 11350,-1634.19"/>
</g>
<!-- ahriman_web_views_index -->
<g id="node143" class="node">
<title>ahriman_web_views_index</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="11389" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11389" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11389" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11389" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="11389" 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="edge88" 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="M10857.13,-4133.45C10865.91,-4128.52 10876.16,-4123.36 10886,-4119.81 10943.36,-4099.13 11369.15,-4038.44 11424,-4011.81 11459.73,-3994.46 11460.75,-3978.34 11492,-3953.83 11550.84,-3907.69 11585.47,-3911.62 11621,-3845.83 11781.04,-3549.52 11855.56,-2684.34 11849,-2347.63 11845.67,-2176.5 11834,-2133.97 11834,-1962.8 11834,-1962.8 11834,-1962.8 11834,-1741.73 11834,-1554.49 11810,-1508.36 11810,-1321.13 11810,-1321.13 11810,-1321.13 11810,-1100.05 11810,-1010.98 11750.95,-995.97 11672,-954.74 11577.95,-905.62 11531.57,-964.83 11436,-918.74 11430.74,-916.2 11425.65,-912.87 11420.9,-909.18"/>
<polygon fill="#f96210" stroke="black" points="11423.13,-906.49 11413.24,-902.71 11418.62,-911.83 11423.13,-906.49"/>
</g>
<!-- ahriman_web_views_service_search -->
<g id="node148" class="node">
<title>ahriman_web_views_service_search</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="10204" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="10204" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10204" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10204" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="10204" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="10204" 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="edge89" 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="M11354,-3981.82C11355.6,-3979.92 11391.56,-3903.27 11392,-3900.83"/>
<path fill="none" stroke="black" d="M11392,-3898.83C11399.06,-3859.7 11365.02,-3856.04 11354,-3817.84"/>
<path fill="none" stroke="black" d="M11354,-3815.84C11330.62,-3734.78 11316,-3714.23 11316,-3629.87 11316,-3629.87 11316,-3629.87 11316,-3533.89 11316,-3294.87 11194.77,-3260.64 11087,-3047.3 10985.16,-2845.69 10988.13,-2781.65 10882,-2582.27 10788.11,-2405.88 10723.27,-2384.64 10642,-2202.1 10604.01,-2116.76 10480.2,-1458.8 10414,-1392.9 10371.51,-1350.6 10328.12,-1397.49 10284,-1356.9 10272.89,-1346.68 10194.31,-1116.51 10190,-1102.05"/>
</g>
<!-- ahriman_web_views_status_package -->
<g id="node150" class="node">
<title>ahriman_web_views_status_package</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="10975" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="10975" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10975" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10975" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="10975" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="10975" 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="edge90" 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="M11354,-3815.84C11336.03,-3733.41 11392,-3714.23 11392,-3629.87 11392,-3629.87 11392,-3629.87 11392,-3314.81 11392,-3186.09 11321.31,-3160.08 11218,-3083.3 11180.76,-3055.62 11152.65,-3080.26 11120,-3047.3 11071.92,-2998.76 10729.11,-1953.67 10707,-1889.03 10679.29,-1808.02 10676.88,-1786.2 10647,-1705.96 10589.73,-1552.14 10333.65,-1101.91 10456,-992.51"/>
<path fill="none" stroke="black" d="M10456,-990.51C10513.93,-927.64 10560.56,-968.09 10645,-954.74 10770.24,-934.94 10813.12,-972.39 10928,-918.74 10932.08,-916.83 10936.04,-914.44 10939.83,-911.77"/>
<polygon fill="#f96210" stroke="black" points="10942.07,-914.45 10947.79,-905.53 10937.76,-908.94 10942.07,-914.45"/>
</g>
<!-- ahriman_web_views_user_login -->
<g id="node154" class="node">
<title>ahriman_web_views_user_login</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="11107" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="11107" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11107" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11107" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="11107" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="11107" 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="edge91" 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="M11392,-3898.83C11418.46,-3777.46 11468,-3754.09 11468,-3629.87 11468,-3629.87 11468,-3629.87 11468,-3533.89 11468,-3369.98 11463.44,-3314.63 11374,-3177.28 11340.36,-3125.62 11325.34,-3114.2 11272,-3083.3 11226.03,-3056.66 11194.91,-3085.51 11158,-3047.3 11063.45,-2949.39 11035.96,-2586.65 10994,-2457.17 10932.23,-2266.57 10913.11,-2219.92 10837,-2034.57 10789.76,-1919.54 10760.06,-1897.88 10722,-1779.5 10678.56,-1644.38 10673.07,-1607.66 10659,-1466.43 10641.11,-1286.86 10620.34,-1217.92 10715,-1064.28 10757.37,-995.52 10786.68,-988.62 10860,-954.74 10926.95,-923.8 10952.62,-943.76 11022,-918.74 11036.19,-913.62 11051.04,-906.64 11064.28,-899.77"/>
<polygon fill="#f96210" stroke="black" points="11065.97,-902.83 11073.16,-895.05 11062.68,-896.65 11065.97,-902.83"/>
</g>
<!-- ahriman_web_views_user_logout -->
<g id="node155" class="node">
<title>ahriman_web_views_user_logout</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="11201" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="11201" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11201" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11201" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="11201" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">user.</text>
<text text-anchor="middle" x="11201" 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="edge92" 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="M11354,-3981.82C11363.98,-3972.13 11359.71,-3965 11368,-3953.83 11381.86,-3935.14 11393.15,-3937.22 11406,-3917.83 11529.44,-3731.44 11544,-3657.68 11544,-3434.13 11544,-3434.13 11544,-3434.13 11544,-3314.81 11544,-3172.87 11446.06,-3155.76 11324,-3083.3 11270.6,-3051.6 11230.06,-3093.88 11189,-3047.3 11189,-3047.3 11047,-1998.57 11047,-1998.57 11014.99,-1762.07 10994.29,-1704.31 10975,-1466.43 10956.42,-1237.34 10884.19,-1113.92 11050,-954.74 11085.29,-920.87 11112.05,-943.9 11154,-918.74 11157.81,-916.46 11161.57,-913.83 11165.2,-911.02"/>
<polygon fill="#f96210" stroke="black" points="11167.45,-913.7 11172.94,-904.63 11163,-908.3 11167.45,-913.7"/>
</g>
<!-- ahriman_web_web -->
<g id="node156" class="node">
<title>ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="10383" cy="-545.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="10383" y="-554.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10383" y="-543.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10383" 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="edge93" 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="M11278,-3898.83C11229.61,-3837.95 11278,-3801.62 11278,-3723.85 11278,-3723.85 11278,-3723.85 11278,-3627.87 11278,-3406.17 11163.61,-3375.34 11064,-3177.28 10992.1,-3034.31 10966.62,-3002.44 10895,-2859.33 10750.54,-2570.68 10705.26,-2502.03 10586,-2202.1 10481.3,-1938.8 10502.56,-1855.13 10387,-1596.42 10336.9,-1484.24 10300.48,-1468.45 10249,-1356.9 10227.35,-1309.97 10226.74,-1296.25 10210,-1247.36 10176.81,-1150.39 10162.02,-1127.92 10138,-1028.28 10121.86,-961.33 10064.44,-923.01 10114,-875.19"/>
</g>
<!-- ahriman_core_alpm -->
<g id="node34" class="node">
<title>ahriman_core_alpm</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="6502" cy="-3206.27" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6502" y="-3214.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="6502" y="-3203.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="6502" y="-3192.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">alpm</text>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_application_handlers_search -->
<g id="edge94" 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="M6464.59,-3199.44C6228.27,-3162.41 4947.99,-2958.22 4804,-2859.33 4592.62,-2714.16 4650.9,-1879.16 4840,-1705.96 5138.47,-1432.57 6246.21,-1530.45 6650,-1502.43 6799.8,-1492.04 9220.54,-1503.25 9352,-1430.67"/>
<path fill="none" stroke="black" d="M9352,-1428.67C9366.88,-1420.3 9357.18,-1407.51 9366,-1392.9 9387.77,-1356.8 9421,-1362.69 9428,-1321.13"/>
<path fill="none" stroke="black" d="M9428,-1319.13C9444.03,-1223.99 9361.28,-1171.73 9428,-1102.05"/>
</g>
<!-- ahriman_core_repository_repository_properties -->
<g id="node90" class="node">
<title>ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="7302" cy="-1961.8" rx="77.15" ry="36.54"/>
<text text-anchor="middle" x="7302" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7302" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7302" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="7302" 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="edge95" 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="M6507.87,-3177.38C6514.98,-3141.13 6526,-3075.78 6526,-3019.3 6526,-3019.3 6526,-3019.3 6526,-2829.34 6526,-2756.09 6556.74,-2742.79 6573,-2671.36 6585.5,-2616.47 6585.25,-2602.04 6593,-2546.27 6595.48,-2528.44 6595.57,-2392.75 6612,-2385.4"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_models_package -->
<g id="edge96" 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="M6466.17,-3196.22C6429.6,-3186.08 6371.98,-3167.54 6327,-3141.28 6254.86,-3099.17 6240.6,-3080.75 6184,-3019.3"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_models_remote_source -->
<g id="edge97" 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="M6500.89,-3177.09C6499.4,-3158.45 6495.95,-3133.77 6488,-3113.29"/>
</g>
<!-- ahriman_core_alpm&#45;&gt;ahriman_web_views_service_search -->
<g id="edge98" 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="M6537.78,-3195.59C6562.18,-3189.37 6595.32,-3181.66 6625,-3177.28 6830.83,-3146.88 8287.49,-3079.76 8493,-3047.3 8598.41,-3030.64 8622.43,-3015.01 8726,-2989.31 9063.72,-2905.53 9143.49,-2862.64 9486,-2801.35 9556.66,-2788.7 9759.16,-2818.86 9807,-2765.35 9816.01,-2755.27 9878.25,-2987.61 9806,-2238.1 9799.68,-2172.53 9784.25,-2158.13 9778,-2092.56 9767.64,-1983.88 9713.84,-1758.05 9808,-1392.9 9862.21,-1182.66 9861.21,-1098.39 10024,-954.74 10060.68,-922.38 10083.47,-938.99 10128,-918.74 10139.25,-913.62 10151.01,-907.37 10161.83,-901.21"/>
<polygon fill="#f96210" stroke="black" points="10163.77,-904.14 10170.66,-896.09 10160.26,-898.08 10163.77,-904.14"/>
</g>
<!-- ahriman_core_alpm_pacman -->
<g id="node35" class="node">
<title>ahriman_core_alpm_pacman</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db5105" stroke="black" cx="5936" cy="-3433.13" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5936" y="-3447.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5936" y="-3436.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5936" y="-3425.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="5936" y="-3414.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pacman</text>
</g>
<!-- ahriman_core_alpm_remote_aur -->
<g id="node37" class="node">
<title>ahriman_core_alpm_remote_aur</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="9370" cy="-3315.81" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="9370" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9370" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9370" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="9370" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="9370" y="-3291.31" 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="edge99" 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="M5974.07,-3428.52C6055.45,-3420.98 6252.44,-3403.64 6418,-3396.36 7570.77,-3345.64 7862.76,-3438.52 9014,-3360.36 9124.79,-3352.83 9254,-3334.66 9322.18,-3324.32"/>
<polygon fill="#db5105" stroke="black" points="9322.84,-3327.76 9332.19,-3322.8 9321.78,-3320.84 9322.84,-3327.76"/>
</g>
<!-- ahriman_core_alpm_remote_official -->
<g id="node38" class="node">
<title>ahriman_core_alpm_remote_official</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="7276" cy="-3315.81" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="7276" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7276" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7276" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="7276" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="7276" y="-3291.31" 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="edge100" 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="M5973.95,-3428.86C6164.31,-3412.48 7014.55,-3339.31 7227.51,-3320.98"/>
<polygon fill="#db5105" stroke="black" points="7228.08,-3324.45 7237.75,-3320.1 7227.48,-3317.47 7228.08,-3324.45"/>
</g>
<!-- ahriman_core_alpm_remote_official_syncdb -->
<g id="node39" class="node">
<title>ahriman_core_alpm_remote_official_syncdb</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="5709" cy="-3315.81" rx="56.64" ry="44.6"/>
<text text-anchor="middle" x="5709" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5709" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5709" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="5709" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="5709" y="-3291.31" 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="edge101" 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="M5901.35,-3417.6C5869.35,-3403.85 5820.76,-3382.13 5780,-3360.36 5773.92,-3357.11 5767.63,-3353.56 5761.44,-3349.93"/>
<polygon fill="#db5105" stroke="black" points="5762.84,-3346.69 5752.46,-3344.59 5759.26,-3352.71 5762.84,-3346.69"/>
</g>
<!-- ahriman_core_alpm_remote_remote -->
<g id="node40" class="node">
<title>ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="5596" cy="-3315.81" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="5596" y="-3335.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5596" y="-3324.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5596" y="-3313.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="5596" y="-3302.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">remote.</text>
<text text-anchor="middle" x="5596" y="-3291.31" 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="edge102" 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="M5901.52,-3416.52C5885,-3409.53 5864.76,-3401.69 5846,-3396.36 5757.86,-3371.31 5725.05,-3401.15 5643,-3360.36 5639.13,-3358.43 5635.36,-3356.09 5631.74,-3353.51"/>
<polygon fill="#db5105" stroke="black" points="5633.62,-3350.53 5623.6,-3347.1 5629.29,-3356.03 5633.62,-3350.53"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge103" 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="M5922.85,-3398.33C5915.25,-3375.61 5907.3,-3344.82 5908,-3316.81"/>
<path fill="none" stroke="black" d="M5908,-3314.81C5912.91,-3118.33 5979.48,-2590.37 6124,-2457.17 6385.01,-2216.62 6546.04,-2317.49 6892,-2238.1 6982.15,-2217.41 7251.28,-2243.68 7302,-2166.33"/>
<path fill="none" stroke="black" d="M7302,-2164.33C7323.75,-2114.39 7319.05,-2050.67 7312.02,-2008.4"/>
<polygon fill="#db5105" stroke="black" points="7315.44,-2007.63 7310.25,-1998.4 7308.55,-2008.85 7315.44,-2007.63"/>
</g>
<!-- ahriman_core_alpm_pacman&#45;&gt;ahriman_models_package -->
<g id="edge104" 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="M5908,-3314.81C5911.7,-3240.61 5952.86,-3232.09 6003,-3177.28 6033.04,-3144.45 6094.23,-3155.45 6080,-3113.29"/>
<path fill="none" stroke="black" d="M6080,-3111.29C6063.88,-3062.02 6071.11,-3001.47 6078.75,-2963.13"/>
<polygon fill="#db5105" stroke="black" points="6082.26,-2963.44 6080.89,-2952.93 6075.41,-2962 6082.26,-2963.44"/>
</g>
<!-- ahriman_core_alpm_remote -->
<g id="node36" class="node">
<title>ahriman_core_alpm_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b34204" stroke="black" cx="7598" cy="-3315.81" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="7598" y="-3329.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7598" y="-3318.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7598" y="-3307.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="7598" y="-3296.81" 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="edge105" 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="M7616.29,-3283.09C7678.2,-3179.05 7891.64,-2846.86 8169,-2707.36 8272.04,-2655.54 8319.63,-2715.96 8426,-2671.36 8570.17,-2610.93 8575.89,-2545.32 8705,-2457.17 8977.85,-2270.9 9121.41,-2282.69 9290,-1998.57 9349.49,-1898.33 9352,-1860.3 9352,-1743.73 9352,-1743.73 9352,-1743.73 9352,-1632.19 9352,-1542.62 9273.91,-1474.53 9352,-1430.67"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_models_package -->
<g id="edge106" 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="M7561.47,-3305.02C7520.9,-3294.62 7453.29,-3278.67 7394,-3271.26 7186.79,-3245.37 6657.54,-3286.09 6455,-3235.26 6397.94,-3220.94 6389.93,-3200.8 6336,-3177.28 6295.38,-3159.56 6275.59,-3171.32 6243,-3141.28 6198.73,-3100.46 6225.56,-3062.88 6184,-3019.3"/>
<path fill="none" stroke="black" d="M6184,-3017.3C6171.67,-3006.51 6171.48,-3001 6160,-2989.31 6147.77,-2976.86 6133.55,-2963.93 6120.99,-2952.98"/>
<polygon fill="#b34204" stroke="black" points="6123.27,-2950.33 6113.42,-2946.44 6118.7,-2955.62 6123.27,-2950.33"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_models_remote_source -->
<g id="edge107" 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="M7561.43,-3305.13C7527.8,-3296.25 7476.57,-3282.77 7432,-3271.26 7079.64,-3180.25 6656.13,-3073.43 6501.37,-3034.48"/>
<polygon fill="#b34204" stroke="black" points="6502.12,-3031.06 6491.57,-3032.02 6500.41,-3037.85 6502.12,-3031.06"/>
</g>
<!-- ahriman_core_alpm_remote&#45;&gt;ahriman_web_views_service_search -->
<g id="edge108" 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="M7635.52,-3308.21C7927.03,-3256.72 9824.29,-2917.15 10030,-2765.35 10165.73,-2665.19 10162.8,-2587.65 10190,-2421.17 10263.74,-1969.85 10185.31,-1849.06 10153,-1392.9 10148.41,-1328.03 10141.34,-1312.3 10138,-1247.36 10132.18,-1134.07 10119.08,-1101.06 10152,-992.51"/>
<path fill="none" stroke="black" d="M10152,-990.51C10156.17,-965.89 10166.88,-940.4 10177.52,-919.66"/>
<polygon fill="#b34204" stroke="black" points="10180.63,-921.26 10182.21,-910.79 10174.44,-917.99 10180.63,-921.26"/>
</g>
<!-- ahriman_core_alpm_remote_aur&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge109" 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="M9331.49,-3315.81C8769.94,-3315.81 8208.39,-3315.81 7646.85,-3315.81"/>
<polygon fill="#7a4528" stroke="black" points="7646.5,-3312.31 7636.5,-3315.81 7646.5,-3319.31 7646.5,-3312.31"/>
</g>
<!-- ahriman_core_alpm_remote_official&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge110" 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="M7314.36,-3315.81C7392.81,-3315.81 7471.26,-3315.81 7549.71,-3315.81"/>
<polygon fill="#7a4528" stroke="black" points="7549.78,-3319.31 7559.78,-3315.81 7549.78,-3312.31 7549.78,-3319.31"/>
</g>
<!-- ahriman_core_alpm_remote_official_syncdb&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge111" 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="M5743.74,-3351.11C5756.8,-3362.03 5772.5,-3372.67 5789,-3378.36 5874.83,-3407.93 7333.56,-3393.86 7423,-3378.36 7469.2,-3370.35 7519.35,-3351.27 7554.07,-3336.28"/>
<polygon fill="#915230" stroke="black" points="7555.68,-3339.39 7563.44,-3332.17 7552.87,-3332.98 7555.68,-3339.39"/>
</g>
<!-- ahriman_core_alpm_remote_remote&#45;&gt;ahriman_core_alpm_remote -->
<g id="edge112" 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="M5619.04,-3351.55C5627.93,-3362.21 5639.09,-3372.59 5652,-3378.36 5696.91,-3398.43 7374.53,-3386.76 7423,-3378.36 7469.2,-3370.35 7519.35,-3351.27 7554.07,-3336.28"/>
<polygon fill="#915230" stroke="black" points="7555.68,-3339.39 7563.44,-3332.17 7552.87,-3332.98 7555.68,-3339.39"/>
</g>
<!-- ahriman_core_alpm_repo -->
<g id="node41" class="node">
<title>ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="9464" cy="-3315.81" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9464" y="-3329.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9464" y="-3318.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9464" y="-3307.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">alpm.</text>
<text text-anchor="middle" x="9464" y="-3296.81" 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="edge113" 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="M9439.71,-3287.41C9432.93,-3281.23 9425.17,-3275.31 9417,-3271.26 9412.27,-3268.92 8674.16,-3142.34 8669,-3141.28 8492.24,-3104.93 8432.88,-3132.86 8274,-3047.3 8166.6,-2989.46 8145.81,-2957.94 8074,-2859.33 8030,-2798.92 8047.71,-2766.49 8002,-2707.36 7986.76,-2687.65 7973.94,-2691.32 7959,-2671.36 7946.35,-2654.46 7950.37,-2646.21 7940,-2627.82"/>
<path fill="none" stroke="black" d="M7940,-2625.82C7863.94,-2489.1 8002.2,-2396.02 7902,-2275.87"/>
</g>
<!-- ahriman_core_auth -->
<g id="node42" class="node">
<title>ahriman_core_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c74905" stroke="black" cx="11454" cy="-1852.27" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="11454" y="-1860.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11454" y="-1849.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11454" 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="edge114" 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="M11488.71,-1839.75C11525.96,-1826.9 11586.46,-1804.58 11636,-1779.5 11804.66,-1694.09 12225.37,-1422.65 12280,-1356.9 12324.87,-1302.89 12301.8,-1269.15 12342,-1211.59"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_base -->
<g id="edge115" 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="M11488.24,-1839.29C11518.8,-1827.44 11563.61,-1807.07 11596,-1779.5 11610.97,-1766.76 11609.53,-1758.92 11622,-1743.73"/>
<path fill="none" stroke="black" d="M11622,-1741.73C11637.75,-1722.55 11544,-1557.24 11544,-1532.43 11544,-1532.43 11544,-1532.43 11544,-1428.67 11544,-1325.53 11510.92,-1302.38 11462,-1211.59"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_index -->
<g id="edge116" 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="M11622,-1741.73C11685.64,-1672.02 11658,-1626.81 11658,-1532.43 11658,-1532.43 11658,-1532.43 11658,-1428.67 11658,-1363.21 11665.07,-1340.97 11634,-1283.36 11622.8,-1262.59 11604.46,-1268.97 11595,-1247.36 11581.89,-1217.42 11583.48,-1204.4 11595,-1173.82 11609.96,-1134.1 11657.42,-1144.49 11658,-1102.05"/>
<path fill="none" stroke="black" d="M11658,-1100.05C11657.13,-1052.26 11690.46,-1027.59 11658,-992.51"/>
<path fill="none" stroke="black" d="M11658,-990.51C11644.83,-976.27 11649.32,-965.22 11633,-954.74 11558.1,-906.65 11515.59,-958.57 11436,-918.74 11431.03,-916.25 11426.2,-913.07 11421.66,-909.57"/>
<polygon fill="#c74905" stroke="black" points="11423.73,-906.73 11413.81,-902.99 11419.23,-912.1 11423.73,-906.73"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_login -->
<g id="edge117" 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="M11416.77,-1845.32C11370.35,-1836.61 11289.95,-1817.17 11231,-1779.5 11175.2,-1743.84 11164.79,-1726.3 11130,-1669.96 10960.92,-1396.08 10683.05,-1251.62 10874,-992.51"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge118" 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="M11422.61,-1835.36C11352.89,-1798.16 11185.59,-1698.07 11113,-1560.42 11105.4,-1546.01 11041.29,-1046.78 11064,-992.51"/>
</g>
<!-- ahriman_core_auth&#45;&gt;ahriman_web_web -->
<g id="edge119" 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="M11622,-1741.73C11633.57,-1729.17 11626.2,-1719.94 11636,-1705.96 11640.21,-1699.94 12027.57,-1361.84 12033,-1356.9 12085.41,-1309.14 12098.02,-1296.64 12149,-1247.36 12298.26,-1103.05 12368.79,-1093.42 12481,-918.74 12486.15,-910.73 12544.88,-766.05 12540,-757.87"/>
</g>
<!-- ahriman_core_auth_auth -->
<g id="node43" class="node">
<title>ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="11454" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11454" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11454" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11454" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="11454" 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="edge120" 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="M11454,-1925C11454,-1914.25 11454,-1902.43 11454,-1891.54"/>
<polygon fill="#824a2b" stroke="black" points="11457.5,-1891.44 11454,-1881.44 11450.5,-1891.44 11457.5,-1891.44"/>
</g>
<!-- ahriman_core_auth_helpers -->
<g id="node44" class="node">
<title>ahriman_core_auth_helpers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d96526" stroke="black" cx="11168" cy="-1210.59" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11168" y="-1224.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="11168" y="-1213.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="11168" y="-1202.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">auth.</text>
<text text-anchor="middle" x="11168" y="-1191.59" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">helpers</text>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_index -->
<g id="edge121" 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="M11188.2,-1179.03C11228.48,-1118.08 11318.74,-981.5 11363.22,-914.19"/>
<polygon fill="#d96526" stroke="black" points="11366.33,-915.83 11368.93,-905.56 11360.5,-911.97 11366.33,-915.83"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_login -->
<g id="edge122" 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="M11142.89,-1182.38C11113.97,-1149 11068.11,-1089.31 11050,-1028.28 11040.7,-996.94 11040,-985.86 11050,-954.74 11054.77,-939.89 11063.45,-925.46 11072.62,-913.06"/>
<polygon fill="#d96526" stroke="black" points="11075.65,-914.86 11079.01,-904.81 11070.12,-910.58 11075.65,-914.86"/>
</g>
<!-- ahriman_core_auth_helpers&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge123" 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="M11172.04,-1173.89C11173.85,-1143.02 11172.36,-1098.14 11154,-1064.28 11129.61,-1019.3 11048.02,-1041.11 11064,-992.51"/>
</g>
<!-- ahriman_core_auth_mapping -->
<g id="node45" class="node">
<title>ahriman_core_auth_mapping</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="11094" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11094" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11094" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11094" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="11094" 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="edge124" 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="M11130.17,-1950C11196.41,-1930.21 11337.03,-1888.21 11409.21,-1866.65"/>
<polygon fill="#824a2b" stroke="black" points="11410.34,-1869.96 11418.92,-1863.74 11408.34,-1863.25 11410.34,-1869.96"/>
</g>
<!-- ahriman_core_auth_oauth -->
<g id="node46" class="node">
<title>ahriman_core_auth_oauth</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="11548" cy="-1961.8" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="11548" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11548" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="11548" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">auth.</text>
<text text-anchor="middle" x="11548" 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="edge125" 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="M11523.79,-1933.11C11510.82,-1918.27 11494.8,-1899.94 11481.37,-1884.58"/>
<polygon fill="#824a2b" stroke="black" points="11483.84,-1882.08 11474.62,-1876.86 11478.57,-1886.69 11483.84,-1882.08"/>
</g>
<!-- ahriman_core_build_tools -->
<g id="node47" class="node">
<title>ahriman_core_build_tools</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="3387" cy="-3112.29" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="3387" y="-3120.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="3387" y="-3109.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="3387" y="-3098.79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">build_tools</text>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge126" 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="M3352,-2829.34C3326.51,-2780.32 3336.1,-2745.59 3376,-2707.36 3452.62,-2633.97 3524.99,-2732.08 3612,-2671.36 3630.12,-2658.72 3623.96,-2646.35 3636,-2627.82"/>
<path fill="none" stroke="black" d="M3636,-2625.82C3669.69,-2573.71 3621.91,-2408.89 3612,-2347.63 3593.38,-2232.57 3572.51,-2207.12 3551,-2092.56 3525.08,-1954.52 3517.58,-1919.61 3508,-1779.5 3505.77,-1746.89 3505.2,-1738.52 3508,-1705.96 3518.68,-1581.9 3537.87,-1553.2 3560,-1430.67"/>
<path fill="none" stroke="black" d="M3560,-1428.67C3562.57,-1380.94 3573.76,-1366.9 3560,-1321.13"/>
<path fill="none" stroke="black" d="M3560,-1319.13C3545.78,-1271.83 3547.69,-1258.42 3532,-1211.59"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge127" 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="M3362.79,-3087.47C3319.32,-3044.12 3226.23,-2948.54 3158,-2859.33 2989.25,-2638.7 2868,-2545.68 2934,-2275.87"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge128" 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="M3344.47,-3103.27C3223.33,-3080.79 2865.89,-3017.03 2566,-2989.31 2349.66,-2969.32 1797.91,-3012.98 1589,-2953.31 1377.3,-2892.85 1365.56,-2783.56 1159,-2707.36 1078.36,-2677.62 1042.95,-2715.16 969,-2671.36 907.03,-2634.67 893.08,-2613 866,-2546.27 842.61,-2488.65 754.77,-1489.81 774,-1430.67"/>
</g>
<!-- ahriman_core_repository_executor -->
<g id="node88" class="node">
<title>ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="6701" cy="-1742.73" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="6701" y="-1756.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6701" y="-1745.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6701" y="-1734.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6701" 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="edge129" 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="M3431.74,-3109.35C3704.84,-3097.55 5175.24,-3034.35 6375,-2989.31 6433.38,-2987.12 7376,-2983.54 7426,-2953.31 7451.37,-2937.97 7441.55,-2919.3 7459,-2895.33 7534.89,-2791.08 7558.16,-2749.59 7680,-2707.36 7808.1,-2662.97 8177.45,-2748.41 8289,-2671.36 8339.12,-2636.75 8321.01,-2602.26 8345,-2546.27 8423.99,-2361.87 8435.4,-2312.26 8516,-2128.56 8528.62,-2099.79 8539.13,-2095.22 8546,-2064.57"/>
<path fill="none" stroke="black" d="M8546,-2062.57C8552.92,-2018.77 8507.39,-1984.61 8546,-1962.8"/>
</g>
<!-- ahriman_core_repository_update_handler -->
<g id="node91" class="node">
<title>ahriman_core_repository_update_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="5976" cy="-1742.73" rx="58.88" ry="36.54"/>
<text text-anchor="middle" x="5976" y="-1756.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5976" y="-1745.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5976" y="-1734.73" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="5976" 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="edge130" 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="M3424.28,-3096.02C3485.75,-3071.24 3612.56,-3021.79 3723,-2989.31 3903.6,-2936.21 3949.39,-2920.14 4136,-2895.33 4233.78,-2882.33 4935.81,-2905.46 5023,-2859.33 5051.36,-2844.33 5039.53,-2819.47 5066,-2801.35 5115.82,-2767.23 5158.26,-2811.66 5197,-2765.35 5316.62,-2622.37 5106.49,-2482.67 5235,-2347.63 5313.9,-2264.72 5386.04,-2359.52 5490,-2311.63 5659.05,-2233.78 5646.23,-2133.3 5804,-2034.57 5874.22,-1990.63 5953.43,-2042.5 5976,-1962.8"/>
<path fill="none" stroke="black" d="M5976,-1960.8C5991.34,-1903.2 5987.72,-1833.9 5982.72,-1789.36"/>
<polygon fill="#f96210" stroke="black" points="5986.19,-1788.93 5981.53,-1779.42 5979.24,-1789.76 5986.19,-1788.93"/>
</g>
<!-- ahriman_core_tree -->
<g id="node99" class="node">
<title>ahriman_core_tree</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="3000" cy="-2063.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="3000" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3000" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3000" 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="edge131" 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="M3388.35,-3083.01C3389.78,-3031.02 3388.03,-2917.67 3352,-2831.34"/>
<path fill="none" stroke="black" d="M3352,-2829.34C3281.31,-2707.4 3152.89,-2790.14 3077,-2671.36 3008.54,-2564.21 3054.58,-2508.62 3086,-2385.4"/>
<path fill="none" stroke="black" d="M3086,-2383.4C3090.72,-2335.84 3087.89,-2323.62 3086,-2275.87"/>
</g>
<!-- ahriman_core_build_tools&#45;&gt;ahriman_models_package -->
<g id="edge132" 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="M3428.98,-3102.5C3542.38,-3079.18 3864.57,-3015.75 4136,-2989.31 4521.91,-2951.72 5776.23,-2930.22 6039.32,-2926.07"/>
<polygon fill="#f96210" stroke="black" points="6039.74,-2929.56 6049.69,-2925.9 6039.63,-2922.56 6039.74,-2929.56"/>
</g>
<!-- ahriman_core_build_tools_sources -->
<g id="node48" class="node">
<title>ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a93e04" stroke="black" cx="3447" cy="-2274.87" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="3447" y="-2288.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="3447" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="3447" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="3447" y="-2255.87" 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="edge133" 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="M3370,-1960.8C3353.97,-1865.67 3370,-1840.21 3370,-1743.73 3370,-1743.73 3370,-1743.73 3370,-1530.43 3370,-1370.73 3257.5,-1318.07 3326,-1173.82 3332.87,-1159.35 3344.23,-1146.85 3356.55,-1136.51"/>
<polygon fill="#a93e04" stroke="black" points="3359.08,-1138.97 3364.75,-1130.03 3354.73,-1133.48 3359.08,-1138.97"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge134" 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="M3421.7,-2243.34C3405.38,-2222.58 3384.56,-2193.95 3370,-2166.33"/>
<path fill="none" stroke="black" d="M3370,-2164.33C3233.27,-1904.89 3202.44,-1824.83 3180,-1532.43"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge135" 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="M3370,-2164.33C3332.55,-2082.97 3385.95,-2050.94 3370,-1962.8"/>
<path fill="none" stroke="black" d="M3370,-1960.8C3355.6,-1858.49 3200.45,-1132.67 3123,-1064.28 3081.42,-1027.56 2930.83,-1036.7 2876,-1028.28 2574.3,-981.92 2476.02,-1044.75 2198,-918.74 2073.75,-862.42 1958.15,-746.08 1903.7,-686.03"/>
<polygon fill="#a93e04" stroke="black" points="1906.03,-683.39 1896.74,-678.29 1900.82,-688.07 1906.03,-683.39"/>
</g>
<!-- ahriman_core_build_tools_task -->
<g id="node49" class="node">
<title>ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="9067" cy="-1961.8" rx="46.84" ry="36.54"/>
<text text-anchor="middle" x="9067" y="-1975.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9067" y="-1964.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9067" y="-1953.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">build_tools.</text>
<text text-anchor="middle" x="9067" 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="edge136" 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="M3493,-2267.67C3733.34,-2235.61 4869.29,-2088.02 5804,-2034.57 7027,-1964.64 7336.07,-2049.7 8560,-1998.57 8723.79,-1991.73 8916.87,-1975.98 9010.47,-1967.86"/>
<polygon fill="#a93e04" stroke="black" points="9010.91,-1971.33 9020.57,-1966.98 9010.3,-1964.36 9010.91,-1971.33"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge137" 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="M3491.03,-2262.34C3589.11,-2236.84 3833.15,-2174.25 4039,-2128.56 4769.84,-1966.35 5663.1,-1800.89 5910.05,-1755.72"/>
<polygon fill="#a93e04" stroke="black" points="5910.74,-1759.16 5919.95,-1753.92 5909.48,-1752.27 5910.74,-1759.16"/>
</g>
<!-- ahriman_core_build_tools_sources&#45;&gt;ahriman_core_tree -->
<g id="edge138" 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="M3407.33,-2255.29C3323,-2215.8 3126.61,-2123.85 3041.06,-2083.79"/>
<polygon fill="#a93e04" stroke="black" points="3042.46,-2080.58 3031.92,-2079.51 3039.49,-2086.92 3042.46,-2080.58"/>
</g>
<!-- ahriman_core_build_tools_task&#45;&gt;ahriman_core_repository_executor -->
<g id="edge140" 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="M9105.27,-1940.75C9136.06,-1921.56 9172.59,-1890.14 9162,-1853.27"/>
</g>
<!-- ahriman_core_configuration -->
<g id="node50" class="node">
<title>ahriman_core_configuration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d14d05" stroke="black" cx="6333" cy="-3628.87" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="6333" y="-3637.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6333" y="-3626.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6333" y="-3615.37" 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="edge141" 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="M3884,-3533.89C3799.56,-3487.21 3928.36,-3402.48 3884,-3316.81"/>
<path fill="none" stroke="black" d="M3884,-3314.81C3817.37,-3168.3 3704.6,-3218.42 3549,-3177.28 3488.14,-3161.19 3312.97,-3185.34 3268,-3141.28 3117.17,-2993.5 3228.59,-2880.29 3198,-2671.36 3181.76,-2560.45 3172.24,-2533.1 3166,-2421.17 3151.77,-2166.02 3256,-2108.82 3256,-1853.27 3256,-1853.27 3256,-1853.27 3256,-1741.73 3256,-1542.96 3367.26,-1515.67 3408,-1321.13"/>
<path fill="none" stroke="black" d="M3408,-1319.13C3410.55,-1299.09 3412.01,-1276.82 3412.86,-1257.77"/>
<polygon fill="#d14d05" stroke="black" points="3416.36,-1257.68 3413.26,-1247.55 3409.37,-1257.4 3416.36,-1257.68"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_add -->
<g id="edge142" 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="M3884,-3314.81C3856.02,-3229.73 3884,-3202.85 3884,-3113.29 3884,-3113.29 3884,-3113.29 3884,-2829.34 3884,-2752.54 3932.83,-2745.19 3954,-2671.36 3974.87,-2598.59 3978,-2578.43 3978,-2502.72 3978,-2502.72 3978,-2502.72 3978,-2383.4 3978,-2244.22 3840.28,-1915.77 3812,-1779.5 3756.75,-1513.28 3870.77,-1403.96 3726,-1173.82 3517.76,-842.76 3317.83,-902.77 2972,-720.1 2941.07,-703.77 2932.26,-701.66 2902,-684.1 2898.18,-681.89 2894.26,-679.53 2890.36,-677.11"/>
<polygon fill="#d14d05" stroke="black" points="2892.2,-674.14 2881.88,-671.77 2888.48,-680.06 2892.2,-674.14"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge143" 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="M4220,-2500.72C4243.15,-2369.11 4247.21,-2335.5 4255,-2202.1 4277.94,-1809.32 4168,-1714.57 4168,-1321.13 4168,-1321.13 4168,-1321.13 4168,-1100.05 4168,-1000.11 4166.09,-975.11 4168,-875.19"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_clean -->
<g id="edge144" 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="M3998,-3432.13C4026.25,-3364.73 4013.54,-3341.97 4032,-3271.26 4065.17,-3144.25 4072.47,-3111.68 4120,-2989.31 4131.37,-2960.03 4142.51,-2955.83 4150,-2925.32"/>
<path fill="none" stroke="black" d="M4150,-2923.32C4157.82,-2770.69 4157.76,-2730.75 4194,-2582.27 4202.82,-2546.14 4217.77,-2539.85 4220,-2502.72"/>
<path fill="none" stroke="black" d="M4220,-2500.72C4220.61,-2298.94 4028.11,-836.1 3863,-720.1 3859.79,-717.85 3399.52,-670.72 3236.46,-654.09"/>
<polygon fill="#d14d05" stroke="black" points="3236.46,-650.57 3226.16,-653.04 3235.75,-657.53 3236.46,-650.57"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge145" 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="M3108,-3314.81C3087.36,-3291.82 2053.66,-3020.4 1868,-2989.31 1765.56,-2972.16 1493.85,-3001.8 1402,-2953.31 1382.85,-2943.2 1296.81,-2815 1280,-2801.35 1208.42,-2743.2 1182.38,-2736.85 1095,-2707.36 1010.67,-2678.91 955,-2739.72 898,-2671.36 872.64,-2640.95 893.68,-2621.63 898,-2582.27 899.79,-2565.98 903.49,-2562.47 906,-2546.27 924.46,-2427.04 930,-2396.52 930,-2275.87 930,-2275.87 930,-2275.87 930,-2164.33 930,-2140.83 955.54,-1756.9 975,-1743.73"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge146" 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="M9530,-3533.89C9559.62,-3527.82 9563.3,-3515.39 9592,-3505.9 9663.26,-3482.32 9683.94,-3487.09 9757,-3469.9 9886.85,-3439.33 9917.67,-3424.8 10048,-3396.36 10884.27,-3213.83 11112.41,-3258.1 11942,-3047.3 12007.25,-3030.72 12170.47,-2984.75 12230,-2953.31 12543.05,-2787.97 12522.67,-2616.89 12702,-2311.63 12733.85,-2257.41 12843.89,-2127.33 12840,-2064.57"/>
<path fill="none" stroke="black" d="M12840,-2062.57C12834.81,-2018.53 12820.22,-2002.48 12840,-1962.8"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_help -->
<g id="edge147" 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="M6383.83,-3625.9C6514.98,-3620.88 6875.54,-3607.46 7176,-3599.88 7291.7,-3596.96 9147.72,-3595.71 9259,-3563.88 9339.33,-3540.9 9824.03,-3201.49 9904,-3177.28 10063.49,-3128.99 10487.19,-3157.84 10653,-3141.28 10823.44,-3124.26 10863.8,-3102.53 11034,-3083.3 11141.39,-3071.16 11421.79,-3094.52 11519,-3047.3 11550.4,-3032.04 11540.76,-3004.89 11572,-2989.31 11723.02,-2914 11806.58,-3042.25 11950,-2953.31 11975.78,-2937.33 11966.83,-2918.84 11986,-2895.33 12000.7,-2877.3 12010.57,-2878.32 12024,-2859.33 12136.97,-2699.6 12112.41,-2630.58 12203,-2457.17 12284.5,-2301.17 12553.39,-1945.11 12613,-1779.5 12655.16,-1662.37 12633.93,-1625.29 12654,-1502.43 12675.17,-1372.84 12706,-1342.9 12706,-1211.59 12706,-1211.59 12706,-1211.59 12706,-1100.05 12706,-994.56 12765.55,-979.39 12782,-875.19"/>
<path fill="none" stroke="black" d="M12782,-873.19C12791.66,-773.72 12782,-748.27 12782,-648.34 12782,-648.34 12782,-648.34 12782,-442.81 12782,-281.83 10048.91,-302.36 9888,-297.5 8410.25,-252.93 3457.14,-228.74 2868.36,-226"/>
<polygon fill="#d14d05" stroke="black" points="2868.03,-222.5 2858.01,-225.95 2867.99,-229.5 2868.03,-222.5"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_key_import -->
<g id="edge148" 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="M3884,-3533.89C3854.38,-3517.89 3983.85,-3464.67 3998,-3434.13"/>
<path fill="none" stroke="black" d="M3998,-3432.13C4042.34,-3336.41 3922,-3312.76 3922,-3207.27 3922,-3207.27 3922,-3207.27 3922,-3111.29 3922,-2985.72 3953.68,-2956.74 3960,-2831.34"/>
<path fill="none" stroke="black" d="M3960,-2829.34C3966.25,-2774.69 3968.27,-2760.88 3981,-2707.36 3984.87,-2691.09 3988.37,-2687.7 3992,-2671.36 4008.44,-2597.46 4016,-2578.43 4016,-2502.72 4016,-2502.72 4016,-2502.72 4016,-2164.33 4016,-2004.45 3834.19,-860.98 3712,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge149" 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="M6282.47,-3624.45C6189.57,-3618.31 5985.36,-3605.54 5813,-3599.88 5644.91,-3594.36 2945.97,-3615.77 2786,-3563.88 2743.54,-3550.11 2745.52,-3522.29 2704,-3505.9 2594.67,-3462.73 2552.54,-3509.86 2442,-3469.9 2383.89,-3448.88 2377.25,-3427.71 2324,-3396.36 2260.48,-3358.95 2097.24,-3273.14 2034,-3235.26 1993.18,-3210.81 1987.42,-3196.73 1944,-3177.28 1889.29,-3152.76 1871.46,-3158.38 1814,-3141.28 1600.75,-3077.81 1551.62,-3048 1337,-2989.31 1267.95,-2970.43 1245.56,-2982.07 1180,-2953.31 1112.38,-2923.65 1099.48,-2906.9 1043,-2859.33 970.89,-2798.6 977.99,-2752.1 895,-2707.36 820.5,-2667.2 768.4,-2730.65 708,-2671.36 592.22,-2557.71 597.68,-2021.32 626,-1853.27"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge150" 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="M3574,-3533.89C3372.37,-3452.26 3348.91,-3380.84 3161,-3271.26 3054.86,-3209.36 3014.31,-3216.29 2917,-3141.28 2871.92,-3106.53 2862.58,-3093.97 2830,-3047.3 2766.24,-2955.97 2699.64,-2868.99 2588,-2546.27 2584.11,-2535.03 2211.4,-887.07 2212,-875.19"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove -->
<g id="edge151" 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="M6383.83,-3625.86C6514.97,-3620.76 6875.53,-3607.15 7176,-3599.88 7702.13,-3587.15 9020.63,-3619.15 9544,-3563.88 10025.41,-3513.04 11208.69,-3247.41 11681,-3141.28 11847.8,-3103.8 11889.22,-3092.85 12054,-3047.3 12193.59,-3008.71 12237.05,-3019.23 12366,-2953.31 12427.26,-2922 12436,-2903.19 12489,-2859.33 12537.25,-2819.4 12551.08,-2810.96 12594,-2765.35 12601.27,-2757.62 13068,-2176.94 13068,-2166.33 13068,-2166.33 13068,-2166.33 13068,-1851.27 13068,-1449.82 12949.49,-1356.09 12958,-954.74 12959.96,-862.34 12965.24,-754.38 12968.43,-694.43"/>
<polygon fill="#d14d05" stroke="black" points="12971.94,-694.34 12968.99,-684.17 12964.95,-693.97 12971.94,-694.34"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge152" 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="M6282.46,-3624.58C6189.56,-3618.65 5985.34,-3606.23 5813,-3599.88 5410.08,-3585.04 4398.82,-3615.87 3999,-3563.88 3946.84,-3557.1 3930.29,-3560.88 3884,-3535.89"/>
<path fill="none" stroke="black" d="M3884,-3533.89C3812.23,-3495.14 3782.3,-3511.26 3712,-3469.9 3668.65,-3444.39 3671.32,-3418.16 3626,-3396.36 3549.33,-3359.48 3509.86,-3405.9 3438,-3360.36 3396.6,-3334.12 3408.24,-3305.33 3373,-3271.26 3352.53,-3251.47 3342.77,-3252.36 3320,-3235.26 3287.7,-3211 3286.06,-3195.49 3250,-3177.28 3190.73,-3147.35 3162.26,-3174.89 3105,-3141.28 3055.65,-3112.31 3052.27,-3092.36 3017,-3047.3 2956.06,-2969.44 2946.49,-2945.5 2898,-2859.33 2852.95,-2779.27 2840.71,-2758.63 2812,-2671.36 2710.39,-2362.51 2630,-2287.94 2630,-1962.8 2630,-1962.8 2630,-1962.8 2630,-1741.73 2630,-1602.45 2668,-1569.94 2668,-1430.67 2668,-1430.67 2668,-1430.67 2668,-1319.13 2668,-1075.96 2560.09,-798.47 2514.72,-692.56"/>
<polygon fill="#d14d05" stroke="black" points="2517.83,-690.94 2510.66,-683.15 2511.41,-693.72 2517.83,-690.94"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_restore -->
<g id="edge153" 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="M6282.47,-3624.51C6189.56,-3618.49 5985.35,-3605.89 5813,-3599.88 5562.79,-3591.15 3808.14,-3597.16 3560,-3563.88 3393.12,-3541.49 3329.72,-3568.17 3193,-3469.9 3145.89,-3436.04 3146.87,-3412.77 3122,-3360.36 3113.28,-3341.99 3121.8,-3331.74 3108,-3316.81"/>
<path fill="none" stroke="black" d="M3108,-3314.81C2942.11,-3180.93 2844.08,-3276.86 2635,-3235.26 2156.85,-3140.14 2044.22,-3084.09 1566,-2989.31 1470.53,-2970.39 1437.77,-2995.36 1350,-2953.31 1315.09,-2936.59 1315.3,-2919.42 1285,-2895.33 1170.27,-2804.1 1147.34,-2768.25 1014,-2707.36 957.12,-2681.39 921.69,-2716.09 878,-2671.36 838.05,-2630.47 857.64,-2602.62 848,-2546.27 833.08,-2459.07 826.44,-2435.69 835,-2347.63 863.13,-2058.36 816.9,-1958.36 961,-1705.96 1137.39,-1396.99 1272.05,-1384.14 1559,-1173.82 1660.84,-1099.17 1720.11,-1123.53 1803,-1028.28 1815.2,-1014.26 1924.63,-736.69 1933,-720.1 1958.51,-669.57 1961.64,-653.96 1998,-610.57 2146.75,-433.02 2396.19,-299.66 2501.13,-248.54"/>
<polygon fill="#d14d05" stroke="black" points="2502.76,-251.64 2510.24,-244.13 2499.71,-245.34 2502.76,-251.64"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_search -->
<g id="edge154" 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="M8582,-3533.89C8594.52,-3527.82 8587.71,-3517.07 8596,-3505.9 8609.86,-3487.21 8621.19,-3489.31 8634,-3469.9 8833.02,-3168.31 8706.16,-3001.52 8916,-2707.36 8930.67,-2686.8 8944.01,-2690.93 8960,-2671.36 8988.33,-2636.7 8983.16,-2620.16 9007,-2582.27 9189.47,-2292.23 9362.43,-2289.44 9466,-1962.8"/>
<path fill="none" stroke="black" d="M9466,-1960.8C9489.71,-1676.99 9401.14,-1604.66 9428,-1321.13"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge155" 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="M6282.47,-3624.44C6189.57,-3618.28 5985.36,-3605.49 5813,-3599.88 5459.28,-3588.36 2979.52,-3604.92 2628,-3563.88 2604.36,-3561.12 2232.96,-3476.16 2210,-3469.9 2056.84,-3428.1 2010.42,-3434.43 1870,-3360.36 1812.81,-3330.19 1811.41,-3302.86 1755,-3271.26 1715.61,-3249.19 1697.71,-3260.1 1660,-3235.26 1630.08,-3215.55 1635.3,-3194.71 1604,-3177.28 1538.05,-3140.55 1510.77,-3161.36 1438,-3141.28 1271.96,-3095.46 864.19,-2947.13 716,-2859.33 600.64,-2790.98 561.95,-2777.5 480,-2671.36 442.77,-2623.15 440.59,-2604.88 424,-2546.27 396.16,-2447.92 304,-1736.4 304,-1634.19 304,-1634.19 304,-1634.19 304,-1428.67 304,-1332.19 287.97,-1306.72 304,-1211.59"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge156" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6282.46,-3624.53C6189.56,-3618.52 5985.35,-3605.97 5813,-3599.88 5576.23,-3591.51 3915.72,-3596.09 3681,-3563.88 3632.3,-3557.2 3621.64,-3547.99 3574,-3535.89"/>
<path fill="none" stroke="black" d="M3574,-3533.89C3381.03,-3484.85 3295.73,-3506.95 3161,-3360.36 3131.75,-3328.53 3154.89,-3299.31 3122,-3271.26 3024.86,-3188.4 2134.18,-3008.82 2008,-2989.31 1896.38,-2972.06 1605.87,-2995.27 1501,-2953.31 1402.53,-2913.91 1401.92,-2864.89 1317,-2801.35 1257.29,-2756.67 1247.4,-2734.65 1178,-2707.36 1129.65,-2688.36 980.79,-2710.83 947,-2671.36 756.31,-2448.65 2060,-2256.01 2060,-1962.8 2060,-1962.8 2060,-1962.8 2060,-1632.19 2060,-1436.25 2073.93,-926.33 2174,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_sign -->
<g id="edge157" 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="M3726,-3432.13C3580.37,-3340.76 3590.44,-3250.73 3435,-3177.28 3346.21,-3135.32 3296.13,-3199.43 3217,-3141.28 3118.35,-3068.79 3153.23,-3001.9 3093,-2895.33 3035.12,-2792.93 3000.86,-2778.36 2952,-2671.36 2838.63,-2423.12 2858,-2337.47 2858,-2064.57 2858,-2064.57 2858,-2064.57 2858,-1741.73 2858,-1599.41 2782,-1572.98 2782,-1430.67 2782,-1430.67 2782,-1430.67 2782,-873.19 2782,-809.66 2764.16,-738.04 2750.7,-693.06"/>
<polygon fill="#d14d05" stroke="black" points="2753.99,-691.87 2747.73,-683.32 2747.3,-693.91 2753.99,-691.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status -->
<g id="edge158" 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="M4150,-2923.32C4169.71,-2827.72 4168.65,-2802.61 4190,-2707.36 4202.58,-2651.26 4207.26,-2637.57 4223,-2582.27 4227.58,-2566.18 4229.97,-2562.51 4234,-2546.27 4259.5,-2443.44 4261.43,-2416.57 4276,-2311.63 4302,-2124.4 4313.32,-2077.76 4324,-1889.03 4338.27,-1637.03 4292.17,-1572 4320,-1321.13"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge159" 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="M6282.47,-3624.44C6189.57,-3618.29 5985.36,-3605.51 5813,-3599.88 5726.68,-3597.06 2785.66,-3592 2704,-3563.88 2663.83,-3550.05 2667.38,-3521.84 2628,-3505.9 2501.89,-3454.82 2452.02,-3515.96 2324,-3469.9 2267.27,-3449.48 2264.57,-3422.01 2210,-3396.36 2161.91,-3373.75 2145.87,-3378.69 2096,-3360.36 1798.17,-3250.89 1733.79,-3198.18 1438,-3083.3 1393.58,-3066.04 1381.8,-3063.54 1337,-3047.3 1223.44,-3006.13 1189.75,-3007.9 1082,-2953.31 1031.36,-2927.66 698.27,-2709.25 656,-2671.36 532.86,-2561.01 418,-2550.76 418,-2385.4 418,-2385.4 418,-2385.4 418,-1851.27 418,-1550.14 384.64,-1471.8 428,-1173.82 447.85,-1037.38 483.69,-1010.13 512,-875.19"/>
<path fill="none" stroke="black" d="M512,-873.19C518.07,-810.65 504.56,-738.79 493.5,-693.48"/>
<polygon fill="#d14d05" stroke="black" points="496.86,-692.52 491.04,-683.67 490.07,-694.22 496.86,-692.52"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge160" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3884,-3533.89C3810.92,-3494.43 3796.67,-3477.75 3726,-3434.13"/>
<path fill="none" stroke="black" d="M3726,-3432.13C3698.93,-3415.42 3693,-3409.44 3664,-3396.36 3618.27,-3375.72 3601.24,-3384.02 3557,-3360.36 3439.63,-3297.58 3438.91,-3237.08 3320,-3177.28 3267.2,-3150.73 3242.2,-3172.46 3192,-3141.28 3048.73,-3052.28 3028.47,-3001.67 2938,-2859.33 2857,-2731.89 2841.93,-2692.93 2806,-2546.27 2797.88,-2513.11 2706,-1355.27 2706,-1321.13 2706,-1321.13 2706,-1321.13 2706,-990.51 2706,-881.74 2663,-861.52 2630,-757.87"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge161" 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="M6282.47,-3624.47C6189.57,-3618.37 5985.36,-3605.67 5813,-3599.88 5515.25,-3589.87 3424.56,-3620.09 3132,-3563.88 2896.4,-3518.61 2351.79,-3252.58 2124,-3177.28 2113.02,-3173.65 1332.54,-2958.08 1322,-2953.31 1139.36,-2870.75 1130.26,-2781.4 944,-2707.36 860.88,-2674.33 805.41,-2738.22 746,-2671.36 641.21,-2553.44 702,-2120.57 702,-1962.8 702,-1962.8 702,-1962.8 702,-1851.27 702,-1375.39 990.88,-1252.37 1428,-1064.28 1498.2,-1034.07 1710.91,-1076.74 1770,-1028.28 1825.46,-982.8 1821.47,-776.34 1866,-720.1 1885.54,-695.43 1909.55,-710.31 1927,-684.1 1961.2,-632.74 1897.03,-584.12 1946,-546.57"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_update -->
<g id="edge162" 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="M3960,-2829.34C3960,-2744.29 4042.88,-2752.62 4068,-2671.36 4139.26,-2440.88 4082.56,-2369.36 4068,-2128.56 4051.08,-1848.75 4036.95,-1779.13 3992,-1502.43 3946.38,-1221.6 3879.79,-1159.27 3864,-875.19"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_users -->
<g id="edge163" 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="M6282.46,-3624.56C6189.56,-3618.6 5985.34,-3606.11 5813,-3599.88 5597.22,-3592.07 4081.61,-3606.82 3870,-3563.88 3760.16,-3541.59 3722.64,-3540.99 3636,-3469.9 3605.83,-3445.14 3620.42,-3418.08 3588,-3396.36 3516.96,-3348.76 3473.47,-3402.38 3399,-3360.36 3352.65,-3334.21 3358.37,-3307.07 3319,-3271.26 3267.06,-3224.01 3255.81,-3206.59 3192,-3177.28 3126.55,-3147.22 3100.64,-3168.59 3034,-3141.28 2960.5,-3111.16 2937.92,-3103.7 2882,-3047.3 2813.21,-2977.91 2812.72,-2946.2 2768,-2859.33 2755.6,-2835.23 2383.62,-1989.9 2383,-1962.8"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge164" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6282.47,-3624.46C6189.57,-3618.36 5985.36,-3605.64 5813,-3599.88 5506.81,-3589.64 3358.87,-3610 3056,-3563.88 2899.22,-3540 2507.52,-3442.73 2372,-3360.36 2324.97,-3331.77 2332.39,-3300.88 2286,-3271.26 2244.77,-3244.94 2227.74,-3252.6 2182,-3235.26 2016.54,-3172.52 1978.35,-3148.87 1814,-3083.3 1706.06,-3040.23 1682,-3020.3 1570,-2989.31 1480,-2964.41 1448.59,-2990.66 1363,-2953.31 1321.66,-2935.27 1081.11,-2725.93 1040,-2707.36 965.64,-2673.79 911.72,-2734.46 860,-2671.36 828.88,-2633.4 882.96,-2495.2 914,-2457.17 1021.6,-2325.35 1078.05,-2318.54 1228,-2238.1 1413.24,-2138.71 1505.91,-2198.42 1668,-2064.57"/>
<path fill="none" stroke="black" d="M1668,-2062.57C1742.09,-2022.72 1835.38,-1993.07 1893.1,-1976.85"/>
<polygon fill="#d14d05" stroke="black" points="1894.05,-1980.22 1902.75,-1974.17 1892.18,-1973.47 1894.05,-1980.22"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_handlers_web -->
<g id="edge165" 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="M8772,-3432.13C8819.05,-3395.1 8841.11,-3399.98 8886,-3360.36 8964.87,-3290.75 8954.32,-3243.56 9036,-3177.28 9113.1,-3114.71 9777.45,-2850.21 9829,-2765.35 9949.73,-2566.58 9602,-1976.29 9602,-1743.73 9602,-1743.73 9602,-1743.73 9602,-1428.67 9602,-1215.68 9616.62,-1160.13 9673,-954.74 9688.89,-896.84 9695.83,-882.67 9724,-829.64 9742,-795.75 9753.37,-791.42 9772,-757.87"/>
<path fill="none" stroke="black" d="M9772,-755.87C9827.28,-621.29 9919.32,-583.07 9874,-444.81"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_application_lock -->
<g id="edge166" 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="M6383.83,-3625.89C6514.98,-3620.84 6875.54,-3607.37 7176,-3599.88 7655.7,-3587.92 8856.68,-3602.04 9335,-3563.88 9422.28,-3556.91 9444.64,-3555.39 9530,-3535.89"/>
<path fill="none" stroke="black" d="M9530,-3533.89C9538.69,-3531.9 9811.52,-3399.12 9820,-3396.36 10527.08,-3165.56 10728.27,-3192.58 11464,-3083.3 11612.56,-3061.23 11658.92,-3098.79 11800,-3047.3 11843.3,-3031.49 11842.98,-3005.88 11886,-2989.31 11991.58,-2948.66 12044.19,-3016.55 12138,-2953.31 12202.54,-2909.81 12440.2,-2407.45 12490,-2347.63 12517.73,-2314.33 12549.77,-2318.75 12556,-2275.87"/>
<path fill="none" stroke="black" d="M12556,-2273.87C12561.06,-2223.43 12584.41,-2216.1 12594,-2166.33"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_alpm_pacman -->
<g id="edge167" 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="M6285.67,-3617.82C6234.54,-3605.2 6152.55,-3579.72 6094,-3535.89"/>
<path fill="none" stroke="black" d="M6094,-3533.89C6056.02,-3505.45 6009.87,-3476.95 5977.28,-3457.73"/>
<polygon fill="#d14d05" stroke="black" points="5978.86,-3454.6 5968.46,-3452.57 5975.32,-3460.64 5978.86,-3454.6"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_auth -->
<g id="edge168" 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="M6383.83,-3625.96C6514.98,-3621.06 6875.55,-3607.93 7176,-3599.88 7961.21,-3578.84 8158.75,-3608.15 8943,-3563.88 9077.58,-3556.28 9160.06,-3640.56 9245,-3535.89"/>
<path fill="none" stroke="black" d="M9245,-3533.89C9272.4,-3500.13 9189.08,-3509.44 9171,-3469.9 9157.41,-3440.17 9155.83,-3425.31 9171,-3396.36 9184.05,-3371.46 9200.91,-3377.74 9223,-3360.36 9269.78,-3323.55 9269.17,-3296.66 9323,-3271.26 9417.37,-3226.73 9452.69,-3255.78 9555,-3235.26 9660.48,-3214.11 9683.7,-3193.82 9790,-3177.28 10026.36,-3140.49 10090.32,-3175.9 10327,-3141.28 10442,-3124.45 10466.79,-3098.64 10582,-3083.3 10630.12,-3076.89 11419.73,-3080.65 11455,-3047.3 11525.06,-2981.03 11476,-2927.77 11476,-2831.34 11476,-2831.34 11476,-2831.34 11476,-2735.36 11476,-2610.32 11478.04,-2574.2 11434,-2457.17 11420.66,-2421.71 11400.2,-2421.27 11388,-2385.4"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge169" 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="M6383.83,-3625.97C6514.98,-3621.12 6875.55,-3608.07 7176,-3599.88 7269.65,-3597.32 8772.16,-3590.45 8862,-3563.88 9017.92,-3517.76 9043.09,-3466.8 9166,-3360.36 9207.6,-3324.33 9203.98,-3298.16 9252,-3271.26 9262.52,-3265.37 9664.05,-3178.96 9676,-3177.28 9806.08,-3159.01 10143.78,-3189.41 10266,-3141.28 10543.73,-3031.89 10965.59,-2306.04 11019,-2202.1 11051.76,-2138.33 11073.41,-2057.6 11084.68,-2008.11"/>
<polygon fill="#d14d05" stroke="black" points="11088.1,-2008.86 11086.86,-1998.34 11081.27,-2007.33 11088.1,-2008.86"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge170" 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="M9245,-3533.89C9283.8,-3488.06 9363.19,-3396.85 9364,-3396.36 9421.41,-3361.3 9453.19,-3394.74 9511,-3360.36 9557,-3333 9547.29,-3300.67 9592,-3271.26 9605.45,-3262.42 9850.21,-3180.4 9866,-3177.28 10128.95,-3125.32 10201.7,-3171.72 10468,-3141.28 10621.17,-3123.77 10656.77,-3100.31 10810,-3083.3 10884.76,-3075 11424,-3089.88 11486,-3047.3 11614.16,-2959.27 11445.89,-2497.3 11488,-2347.63 11493.08,-2329.58 11503.49,-2329.22 11510,-2311.63 11548.62,-2207.31 11528.98,-2173.8 11550,-2064.57"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge171" 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="M6383.83,-3626.07C6514.99,-3621.44 6875.58,-3608.89 7176,-3599.88 7325.32,-3595.4 8374.39,-3597.27 8520,-3563.88 8549.47,-3557.12 8555.26,-3550 8582,-3535.89"/>
<path fill="none" stroke="black" d="M8582,-3533.89C8600.2,-3524.28 8675.25,-3196.72 8682,-3177.28 8756.24,-2963.51 8734.89,-2882.66 8878,-2707.36 8896.01,-2685.31 8917.64,-2696.51 8931,-2671.36 9013.47,-2516.13 8920.44,-2451.26 8932,-2275.87"/>
</g>
<!-- ahriman_core_database_data -->
<g id="node52" class="node">
<title>ahriman_core_database_data</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a3f1e" stroke="black" cx="9988" cy="-2501.72" rx="41.94" ry="36.54"/>
<text text-anchor="middle" x="9988" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9988" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9988" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="9988" y="-2482.72" 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="edge172" 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="M6383.83,-3626.04C6514.99,-3621.36 6875.57,-3608.67 7176,-3599.88 7333.76,-3595.26 8445.66,-3611.92 8596,-3563.88 8639.91,-3549.85 8642.61,-3529.84 8682,-3505.9 8710.55,-3488.54 8723.32,-3492.42 8748,-3469.9 8762.14,-3456.99 8757.68,-3446.83 8772,-3434.13"/>
<path fill="none" stroke="black" d="M8772,-3432.13C8886.26,-3338.21 8873.44,-3273.22 8986,-3177.28 9098.25,-3081.61 9390.09,-2882.29 9638,-2801.35 9718.99,-2774.9 9977.6,-2813.41 10016,-2737.36"/>
<path fill="none" stroke="black" d="M10016,-2735.36C10047.92,-2675.23 10026.14,-2594.31 10007.23,-2545.47"/>
<polygon fill="#d14d05" stroke="black" points="10010.47,-2544.13 10003.51,-2536.14 10003.97,-2546.73 10010.47,-2544.13"/>
</g>
<!-- ahriman_core_database_data_users -->
<g id="node56" class="node">
<title>ahriman_core_database_data_users</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b0643a" stroke="black" cx="4328" cy="-2501.72" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="4328" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4328" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4328" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="4328" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="4328" y="-2477.22" 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="edge173" 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="M3998,-3432.13C4001.2,-3425.9 4112,-3214.27 4112,-3207.27 4112,-3207.27 4112,-3207.27 4112,-3111.29 4112,-3037.37 4145.33,-3024.83 4164,-2953.31 4192.13,-2845.55 4173.37,-2811.82 4212,-2707.36 4233.77,-2648.48 4271.22,-2586.53 4297.67,-2546.42"/>
<polygon fill="#d14d05" stroke="black" points="4300.68,-2548.22 4303.31,-2537.96 4294.85,-2544.34 4300.68,-2548.22"/>
</g>
<!-- ahriman_core_database_migrations -->
<g id="node57" class="node">
<title>ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#794c34" stroke="black" cx="9618" cy="-2384.4" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="9618" y="-2398.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9618" y="-2387.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9618" y="-2376.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="9618" y="-2365.4" 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="edge174" 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="M8734,-3432.13C8746.87,-3415.1 8825.97,-3288.17 8839,-3271.26 9055.99,-2989.8 9146.68,-2907.04 9486,-2801.35 9553.48,-2780.33 9754.94,-2818.08 9802,-2765.35 9898.84,-2656.85 9735,-2488.27 9656.42,-2417.94"/>
<polygon fill="#d14d05" stroke="black" points="9658.44,-2415.06 9648.64,-2411.05 9653.8,-2420.3 9658.44,-2415.06"/>
</g>
<!-- ahriman_core_database_sqlite -->
<g id="node64" class="node">
<title>ahriman_core_database_sqlite</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="9430" cy="-2274.87" rx="41.94" ry="36.54"/>
<text text-anchor="middle" x="9430" y="-2288.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9430" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9430" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="9430" y="-2255.87" 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="edge175" 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="M8582,-3533.89C8594.3,-3527.4 8586.06,-3515.63 8596,-3505.9 8645.4,-3457.54 8692.32,-3489.28 8734,-3434.13"/>
<path fill="none" stroke="black" d="M8734,-3432.13C8778.61,-3373.08 8748.63,-3339.62 8777,-3271.26 8888.04,-3003.68 8943.72,-2948.7 9104,-2707.36 9204.66,-2555.81 9339.72,-2386.45 9399.43,-2313.08"/>
<polygon fill="#d14d05" stroke="black" points="9402.38,-2315 9405.99,-2305.03 9396.96,-2310.57 9402.38,-2315"/>
</g>
<!-- ahriman_core_report_console -->
<g id="node79" class="node">
<title>ahriman_core_report_console</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="4560" cy="-2274.87" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4560" y="-2288.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4560" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4560" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="4560" y="-2255.87" 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="edge176" 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="M6281.89,-3627.93C6187.74,-3626.66 5981.56,-3617.37 5818,-3563.88 5665.18,-3513.9 4636.22,-2997.51 4554,-2859.33 4472.95,-2723.12 4561.91,-2660.78 4550,-2502.72"/>
</g>
<!-- ahriman_core_report_email -->
<g id="node80" class="node">
<title>ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="5282" cy="-2384.4" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5282" y="-2398.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5282" y="-2387.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5282" y="-2376.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5282" y="-2365.4" 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="edge177" 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="M5794,-3314.81C5784.51,-3295.94 5786.39,-3289.04 5775,-3271.26 5754.46,-3239.19 5742.1,-3236.76 5718,-3207.27"/>
<path fill="none" stroke="black" d="M5718,-3205.27C5573.76,-3028.77 5641.31,-2930.55 5595,-2707.36 5589.21,-2679.47 5558.61,-2477.84 5539,-2457.17 5531.62,-2449.4 5400.63,-2415.37 5328.58,-2397.1"/>
<polygon fill="#d14d05" stroke="black" points="5329.38,-2393.69 5318.83,-2394.63 5327.66,-2400.47 5329.38,-2393.69"/>
</g>
<!-- ahriman_core_report_html -->
<g id="node81" class="node">
<title>ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="5476" cy="-2384.4" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5476" y="-2398.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5476" y="-2387.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5476" y="-2376.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5476" y="-2365.4" 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="edge178" 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="M5718,-3205.27C5618.79,-3071.12 5753.17,-2591.36 5654,-2457.17 5623.54,-2415.96 5565.42,-2398.36 5523.88,-2390.88"/>
<polygon fill="#d14d05" stroke="black" points="5524.41,-2387.42 5513.97,-2389.23 5523.26,-2394.32 5524.41,-2387.42"/>
</g>
<!-- ahriman_core_report_jinja_template -->
<g id="node82" class="node">
<title>ahriman_core_report_jinja_template</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b4118" stroke="black" cx="5476" cy="-2501.72" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="5476" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5476" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5476" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5476" y="-2482.72" 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="edge179" 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="M5794,-3314.81C5783.95,-3296.24 5789.49,-3286.62 5775,-3271.26 5750.72,-3245.53 5734.75,-3252.76 5704,-3235.26 5636.28,-3196.71 5604.75,-3202.07 5556,-3141.28 5464.37,-3027.01 5424.77,-2976.54 5444,-2831.34"/>
</g>
<!-- ahriman_core_report_report -->
<g id="node83" class="node">
<title>ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="5476" cy="-2165.33" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="5476" y="-2179.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5476" y="-2168.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5476" y="-2157.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5476" y="-2146.33" 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="edge180" 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="M5794,-3314.81C5742.03,-3233.99 5718.07,-2546.63 5683,-2457.17 5642.23,-2353.17 5556.25,-2251.44 5508.94,-2200.34"/>
<polygon fill="#d14d05" stroke="black" points="5511.35,-2197.79 5501.97,-2192.87 5506.24,-2202.57 5511.35,-2197.79"/>
</g>
<!-- ahriman_core_report_report_trigger -->
<g id="node84" class="node">
<title>ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="5896" cy="-2165.33" rx="52.15" ry="36.54"/>
<text text-anchor="middle" x="5896" y="-2179.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5896" y="-2168.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5896" y="-2157.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="5896" y="-2146.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report_trigger</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge181" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5870,-3533.89C5813.61,-3477.95 5886.23,-3256.32 5894,-3177.28 5903.82,-3077.39 5916.54,-3053.48 5923,-2953.31 5933.66,-2787.93 5864.66,-2746.62 5886,-2582.27 5897.65,-2492.53 5923.88,-2474.79 5938,-2385.4"/>
</g>
<!-- ahriman_core_report_telegram -->
<g id="node85" class="node">
<title>ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#7a4528" stroke="black" cx="4560" cy="-2384.4" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="4560" y="-2398.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="4560" y="-2387.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="4560" y="-2376.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report.</text>
<text text-anchor="middle" x="4560" y="-2365.4" 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="edge182" 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="M6282.78,-3624.03C6176.15,-3614.92 5931.85,-3588.71 5870,-3535.89"/>
<path fill="none" stroke="black" d="M5870,-3533.89C5831.13,-3500.69 5816.97,-3362.47 5794,-3316.81"/>
<path fill="none" stroke="black" d="M5794,-3314.81C5782.02,-3297.42 5791.5,-3284.45 5775,-3271.26 5708.54,-3218.15 5668.16,-3260.75 5587,-3235.26 5195.62,-3112.33 5101.48,-3060.58 4744,-2859.33 4661.07,-2812.64 4579.2,-2831.87 4568,-2737.36"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge183" 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="M6094,-3533.89C5872.75,-3368.24 6222,-3201.71 6222,-2925.32 6222,-2925.32 6222,-2925.32 6222,-2829.34 6222,-2636.97 6284.2,-2565.76 6443,-2457.17 6510.36,-2411.11 6537.25,-2418.15 6612,-2385.4"/>
<path fill="none" stroke="black" d="M6612,-2383.4C6729.79,-2309.35 6780.8,-2336.56 6906,-2275.87"/>
<path fill="none" stroke="black" d="M6906,-2273.87C6926.58,-2263.89 6922.74,-2248.72 6943,-2238.1 7087.11,-2162.54 7226.99,-2310.72 7302,-2166.33"/>
</g>
<!-- ahriman_core_sign_gpg -->
<g id="node93" class="node">
<title>ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8b4722" stroke="black" cx="6574" cy="-3315.81" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6574" y="-3329.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6574" y="-3318.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6574" y="-3307.81" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">sign.</text>
<text text-anchor="middle" x="6574" y="-3296.81" 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="edge184" 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="M6432,-3533.89C6473.03,-3471.87 6520.2,-3399.54 6548.53,-3356.01"/>
<polygon fill="#d14d05" stroke="black" points="6551.59,-3357.72 6554.11,-3347.43 6545.72,-3353.91 6551.59,-3357.72"/>
</g>
<!-- ahriman_core_spawn -->
<g id="node94" class="node">
<title>ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ae511e" stroke="black" cx="10072" cy="-2924.32" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="10072" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10072" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="10072" y="-2910.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">spawn</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_spawn -->
<g id="edge185" 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="M9000,-3314.81C9333.29,-3049.05 9864.09,-2954.83 10024.54,-2931.58"/>
<polygon fill="#d14d05" stroke="black" points="10025.17,-2935.03 10034.57,-2930.15 10024.18,-2928.1 10025.17,-2935.03"/>
</g>
<!-- ahriman_core_status_client -->
<g id="node96" class="node">
<title>ahriman_core_status_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#93451a" stroke="black" cx="7338" cy="-2384.4" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="7338" y="-2398.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7338" y="-2387.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7338" y="-2376.4" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="7338" y="-2365.4" 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="edge186" 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="M6376.69,-3613.64C6611.15,-3534.51 7703.04,-3129.45 7526,-2502.72"/>
</g>
<!-- ahriman_core_status_watcher -->
<g id="node97" class="node">
<title>ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#834320" stroke="black" cx="9990" cy="-1320.13" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9990" y="-1334.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9990" y="-1323.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9990" y="-1312.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="9990" 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="edge187" 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="M8848,-3432.13C8856.63,-3417.39 8849.11,-3407.55 8862,-3396.36 8914.42,-3350.83 8950.83,-3389.16 9014,-3360.36 9075.75,-3332.2 9078.53,-3303.94 9138,-3271.26 9236.22,-3217.29 9262.69,-3202.04 9372,-3177.28 9617.4,-3121.69 9699.02,-3222.99 9937,-3141.28 10166.83,-3062.36 10227.03,-2983.54 10334,-2765.35 10369.95,-2692.01 10365.45,-2662.47 10350,-2582.27 10290.48,-2273.33 10204.38,-2216.94 10087,-1925.03 10074.16,-1893.12 10063.23,-1887.27 10058,-1853.27"/>
</g>
<!-- ahriman_core_status_web_client -->
<g id="node98" class="node">
<title>ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="7374" cy="-2274.87" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="7374" y="-2288.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7374" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7374" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="7374" y="-2255.87" 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="edge188" 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="M6432,-3432.13C6436.64,-3394.03 6460.35,-3393.32 6480,-3360.36 6502.92,-3321.9 6491.02,-3297.9 6527,-3271.26 6595.37,-3220.64 6660.8,-3300.83 6715,-3235.26 6731.42,-3215.4 6717.96,-3202.88 6715,-3177.28 6706.72,-3105.64 6678,-3091.42 6678,-3019.3 6678,-3019.3 6678,-3019.3 6678,-2829.34 6678,-2706.87 6721.3,-2676.1 6800,-2582.27 6817.37,-2561.56 6835.4,-2569.62 6849,-2546.27 6867.12,-2515.16 6833.43,-2395.42 6868,-2385.4"/>
</g>
<!-- ahriman_core_triggers_trigger -->
<g id="node101" class="node">
<title>ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="6678" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="6678" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6678" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6678" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers.</text>
<text text-anchor="middle" x="6678" y="-2482.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">trigger</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge189" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6364.34,-3605.83C6386.17,-3588.97 6414.42,-3563.91 6432,-3535.89"/>
<path fill="none" stroke="black" d="M6432,-3533.89C6455.56,-3496.33 6432,-3478.46 6432,-3434.13"/>
<path fill="none" stroke="black" d="M6432,-3432.13C6432,-3360.36 6374.49,-3328.34 6418,-3271.26 6454.6,-3223.24 6509.02,-3280.51 6549,-3235.26 6627.5,-3146.43 6602.81,-2823.63 6626,-2707.36 6637.13,-2651.57 6653.87,-2588.21 6665.34,-2546.97"/>
<polygon fill="#d14d05" stroke="black" points="6668.74,-2547.8 6668.06,-2537.23 6662,-2545.92 6668.74,-2547.8"/>
</g>
<!-- ahriman_core_triggers_trigger_loader -->
<g id="node102" class="node">
<title>ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="6787" cy="-2501.72" rx="53.07" ry="36.54"/>
<text text-anchor="middle" x="6787" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6787" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6787" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers.</text>
<text text-anchor="middle" x="6787" y="-2482.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">trigger_loader</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge190" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6432,-3432.13C6437.72,-3355.72 6434.87,-3319.99 6494,-3271.26 6564.71,-3212.99 6638.14,-3305.48 6697,-3235.26 6713.56,-3215.51 6706.34,-3201.3 6697,-3177.28 6689.13,-3157.05 6673.79,-3160.65 6664,-3141.28 6639.07,-3091.97 6640,-3074.55 6640,-3019.3 6640,-3019.3 6640,-3019.3 6640,-2829.34 6640,-2774.09 6644.14,-2758.92 6664,-2707.36 6687.53,-2646.28 6728.83,-2582.69 6757.03,-2542.93"/>
<polygon fill="#d14d05" stroke="black" points="6760.04,-2544.74 6763.01,-2534.57 6754.35,-2540.66 6760.04,-2544.74"/>
</g>
<!-- ahriman_core_upload_github -->
<g id="node104" class="node">
<title>ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="9054" cy="-2626.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="9054" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9054" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9054" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="9054" y="-2607.82" 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="edge191" 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="M8468,-3533.89C8475.68,-3522.29 8474.82,-3517.81 8482,-3505.9 8493.39,-3486.99 8937.26,-2880.35 8944,-2859.33 8960.66,-2807.37 8930.93,-2791.92 8930,-2737.36"/>
<path fill="none" stroke="black" d="M8930,-2735.36C8931.27,-2713.89 9000.85,-2672.27 9002,-2671.36 9007.27,-2667.19 9012.78,-2662.71 9018.15,-2658.27"/>
<polygon fill="#d14d05" stroke="black" points="9020.44,-2660.91 9025.89,-2651.83 9015.96,-2655.53 9020.44,-2660.91"/>
</g>
<!-- ahriman_core_upload_http_upload -->
<g id="node105" class="node">
<title>ahriman_core_upload_http_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="9227" cy="-3433.13" rx="47.25" ry="36.54"/>
<text text-anchor="middle" x="9227" y="-3447.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9227" y="-3436.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9227" y="-3425.13" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="9227" y="-3414.13" 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="edge192" 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="M9245,-3533.89C9257.81,-3518.11 9255.4,-3496.26 9248.89,-3477.03"/>
<polygon fill="#d14d05" stroke="black" points="9252.11,-3475.66 9245.3,-3467.55 9245.57,-3478.15 9252.11,-3475.66"/>
</g>
<!-- ahriman_core_upload_rsync -->
<g id="node106" class="node">
<title>ahriman_core_upload_rsync</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="8884" cy="-2626.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8884" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8884" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8884" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="8884" y="-2607.82" 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="edge193" 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="M8392,-3432.13C8346.61,-3327.5 8364.22,-3275.61 8422,-3177.28 8471.99,-3092.2 8530.35,-3115.14 8602,-3047.3 8680.01,-2973.43 8703.16,-2953.98 8754,-2859.33 8787.52,-2796.93 8764.78,-2767.63 8802,-2707.36 8808.76,-2696.42 8829.74,-2676.13 8848.78,-2658.78"/>
<polygon fill="#d14d05" stroke="black" points="8851.15,-2661.35 8856.23,-2652.05 8846.46,-2656.16 8851.15,-2661.35"/>
</g>
<!-- ahriman_core_upload_s3 -->
<g id="node107" class="node">
<title>ahriman_core_upload_s3</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="8714" cy="-2626.82" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8714" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8714" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8714" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="8714" y="-2607.82" 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="edge194" 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="M6383.84,-3626.1C6515,-3621.54 6875.58,-3609.13 7176,-3599.88 7246.44,-3597.71 8380.4,-3594.23 8444,-3563.88 8458.79,-3556.82 8458.95,-3549.55 8468,-3535.89"/>
<path fill="none" stroke="black" d="M8468,-3533.89C8498.77,-3487.41 8417.61,-3483.63 8392,-3434.13"/>
<path fill="none" stroke="black" d="M8392,-3432.13C8301.39,-3256.95 8341.57,-3169.84 8421,-2989.31 8441.66,-2942.36 8453.16,-2932.98 8488,-2895.33 8504.93,-2877.03 8514.28,-2877.82 8531,-2859.33 8541.08,-2848.18 8543.56,-2844.92 8550,-2831.34"/>
<path fill="none" stroke="black" d="M8550,-2829.34C8562.25,-2790.34 8516.7,-2761.07 8550,-2737.36"/>
</g>
<!-- ahriman_core_upload_upload -->
<g id="node108" class="node">
<title>ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="8752" cy="-2501.72" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="8752" y="-2515.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8752" y="-2504.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8752" y="-2493.72" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="8752" y="-2482.72" 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="edge195" 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="M8140,-3533.89C8297.78,-3367.69 8213.41,-3344.72 8316,-2859.33 8327.42,-2805.27 8296.44,-2771.34 8340,-2737.36"/>
</g>
<!-- ahriman_core_upload_upload_trigger -->
<g id="node109" class="node">
<title>ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="8388" cy="-2165.33" rx="54.39" ry="36.54"/>
<text text-anchor="middle" x="8388" y="-2179.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8388" y="-2168.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8388" y="-2157.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload.</text>
<text text-anchor="middle" x="8388" y="-2146.33" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload_trigger</text>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge196" class="edge">
<title>ahriman_core_configuration&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6384.11,-3626.18C6641.94,-3617.63 7793.88,-3578.88 7953,-3563.88 8036.67,-3555.99 8080.52,-3595.25 8140,-3535.89"/>
<path fill="none" stroke="black" d="M8140,-3533.89C8278.31,-3395.86 8012,-3308.69 8012,-3113.29 8012,-3113.29 8012,-3113.29 8012,-2923.32 8012,-2862.51 8030.77,-2844.11 8074,-2801.35 8140.98,-2735.1 8175.15,-2738.7 8264,-2707.36 8333.56,-2682.84 8370.27,-2719.67 8426,-2671.36 8528.66,-2582.38 8544.89,-2520.82 8534,-2385.4"/>
<path fill="none" stroke="black" d="M8534,-2383.4C8523.14,-2310.02 8466.71,-2241.91 8427.27,-2202.22"/>
<polygon fill="#d14d05" stroke="black" points="8429.69,-2199.69 8420.12,-2195.14 8424.77,-2204.66 8429.69,-2199.69"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_views_base -->
<g id="edge197" 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="M8848,-3533.89C8862.51,-3526.27 8859.74,-3516.77 8872,-3505.9 8893.79,-3486.58 9068.23,-3379.71 9090,-3360.36 9128.9,-3325.78 9121.95,-3298.98 9166,-3271.26 9218.92,-3237.96 9244.17,-3259.03 9302,-3235.26 9349.87,-3215.58 9353.4,-3192.07 9403,-3177.28 9665.81,-3098.92 9756.58,-3220.94 10019,-3141.28 10097.92,-3117.32 10111.26,-3094.34 10179,-3047.3 10331.16,-2941.61 10383.84,-2919.89 10486,-2765.35 10632.31,-2544.01 10623.63,-2461.99 10766,-2238.1 10924.76,-1988.42 10966.8,-1924.72 11166,-1705.96 11230.72,-1634.88 11259.03,-1629.38 11326,-1560.42 11337.42,-1548.66 11339.19,-1544.74 11350,-1532.43"/>
<path fill="none" stroke="black" d="M11350,-1530.43C11370.5,-1498.67 11392.71,-1501.81 11406,-1466.43 11445.96,-1360.08 11395.74,-1324.78 11386,-1211.59"/>
</g>
<!-- ahriman_core_configuration&#45;&gt;ahriman_web_web -->
<g id="edge198" 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="M6383.83,-3626.01C6514.99,-3621.25 6875.56,-3608.39 7176,-3599.88 7516.85,-3590.22 8371.15,-3601.92 8710,-3563.88 8772.19,-3556.9 8793.52,-3566.69 8848,-3535.89"/>
<path fill="none" stroke="black" d="M8848,-3533.89C8886.59,-3512.06 8826.4,-3472.85 8848,-3434.13"/>
<path fill="none" stroke="black" d="M8848,-3432.13C8856.32,-3417.22 8849.53,-3408.02 8862,-3396.36 8900.81,-3360.07 8934.9,-3394.03 8976,-3360.36 8993.09,-3346.35 8983.09,-3331.04 9000,-3316.81"/>
<path fill="none" stroke="black" d="M9000,-3314.81C9015.55,-3301.72 9002.81,-3288.23 9014,-3271.26 9049.02,-3218.14 9066.7,-3208.76 9122,-3177.28 9166.34,-3152.04 9183.48,-3159.85 9231,-3141.28 9459.12,-3052.12 10007.06,-2797.74 10030,-2765.35 10109.19,-2653.52 10074.94,-2589.4 10039,-2457.17 10004.68,-2330.91 9947.74,-2320.47 9892,-2202.1 9765.86,-1934.23 9747.1,-1854.53 9713,-1560.42 9710.03,-1534.82 9711.33,-1528.15 9713,-1502.43 9718.4,-1419.18 9750.29,-816.14 9810,-757.87"/>
</g>
<!-- ahriman_core_database -->
<g id="node51" class="node">
<title>ahriman_core_database</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db5105" stroke="black" cx="9534" cy="-2165.33" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="9534" y="-2173.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="9534" y="-2162.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="9534" y="-2151.83" 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="edge199" 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="M9520.84,-2137.89C9473.11,-2042.24 9310.78,-1719.06 9290,-1705.96 9019.8,-1535.65 3815.46,-1637.9 3546,-1466.43 3472.28,-1419.53 3437.62,-1317.31 3423.1,-1257.56"/>
<polygon fill="#db5105" stroke="black" points="3426.46,-1256.57 3420.78,-1247.64 3419.65,-1258.17 3426.46,-1256.57"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_handlers_backup -->
<g id="edge200" 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="M9535.84,-2136.12C9538.94,-2096.69 9546.65,-2023.14 9564,-1962.8"/>
<path fill="none" stroke="black" d="M9564,-1960.8C9583.46,-1866.31 9564,-1840.21 9564,-1743.73 9564,-1743.73 9564,-1743.73 9564,-1530.43 9564,-1437.4 9574.61,-1413.54 9564,-1321.13"/>
<path fill="none" stroke="black" d="M9564,-1319.13C9558.97,-1280.06 9526.59,-1283.94 9512,-1247.36 9424.43,-1027.79 9615.69,-880.46 9442,-720.1 8895.91,-215.94 3474.68,-581.97 2762,-371.04 2755.9,-369.24 2749.76,-366.73 2743.84,-363.86"/>
<polygon fill="#db5105" stroke="black" points="2745.24,-360.64 2734.76,-359.12 2742,-366.85 2745.24,-360.64"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_application_handlers_users -->
<g id="edge201" 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="M9503.68,-2146.39C9410.43,-2091.29 9133.58,-1927.95 9123,-1925.03 9080.21,-1913.24 3072.82,-1859.55 2421.99,-1853.77"/>
<polygon fill="#db5105" stroke="black" points="2421.94,-1850.27 2411.91,-1853.68 2421.88,-1857.27 2421.94,-1850.27"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_auth -->
<g id="edge202" 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="M9573.05,-2159.19C9716.55,-2140.45 10228.42,-2074.73 10652,-2034.57 10868.95,-2014.01 10924.03,-2018.95 11141,-1998.57 11234.94,-1989.75 11344.42,-1976.58 11405.83,-1968.92"/>
<polygon fill="#db5105" stroke="black" points="11406.5,-1972.36 11415.99,-1967.65 11405.63,-1965.42 11406.5,-1972.36"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge203" 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="M9571.84,-2156.47C9680.36,-2134.21 10002.1,-2070.01 10272,-2034.57 10564.53,-1996.16 10918.42,-1973.1 11045.59,-1965.56"/>
<polygon fill="#db5105" stroke="black" points="11045.99,-1969.04 11055.77,-1964.96 11045.58,-1962.05 11045.99,-1969.04"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge204" 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="M9573.5,-2161.12C9696.58,-2151.11 10084.09,-2119.54 10405,-2092.56 10892.18,-2051.6 11044.84,-2174.47 11501,-1998.57 11504.77,-1997.12 11508.49,-1995.27 11512.09,-1993.18"/>
<polygon fill="#db5105" stroke="black" points="11514.25,-1995.94 11520.74,-1987.56 11510.44,-1990.07 11514.25,-1995.94"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge205" 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="M9500.34,-2149.87C9483.1,-2142.83 9461.66,-2134.59 9442,-2128.56 9319.96,-2091.11 9255.1,-2151.9 9162,-2064.57"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge206" 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="M9501.01,-2149.19C9483.76,-2141.88 9462.11,-2133.61 9442,-2128.56 9314.33,-2096.46 9274.53,-2128.89 9148,-2092.56 9089.52,-2075.77 9083.1,-2049.01 9024,-2034.57 8943.99,-2015.03 7727.45,-1976.01 7388.86,-1965.47"/>
<polygon fill="#db5105" stroke="black" points="7388.97,-1961.98 7378.87,-1965.16 7388.75,-1968.97 7388.97,-1961.98"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_status_watcher -->
<g id="edge207" 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="M9564,-1960.8C9657.01,-1702.51 9875.7,-1446.2 9957.96,-1355.53"/>
<polygon fill="#db5105" stroke="black" points="9960.65,-1357.78 9964.8,-1348.03 9955.47,-1353.06 9960.65,-1357.78"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_core_tree -->
<g id="edge208" 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="M9494.18,-2162.71C9352.37,-2157 8858.66,-2137.68 8451,-2128.56 7881.14,-2115.8 3556.6,-2070.38 3048.66,-2065.07"/>
<polygon fill="#db5105" stroke="black" points="3048.42,-2061.57 3038.38,-2064.97 3048.35,-2068.57 3048.42,-2061.57"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_web_views_base -->
<g id="edge209" 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="M9565.89,-2147.65C9715.11,-2070.43 10361.05,-1745.08 10930,-1596.42 10992.19,-1580.17 11170.84,-1605.14 11217,-1560.42 11245.18,-1533.11 11237.55,-1230.37 11272,-1211.59"/>
</g>
<!-- ahriman_core_database&#45;&gt;ahriman_web_web -->
<g id="edge210" 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="M9564,-1319.13C9557.6,-1285.69 9783.34,-779.04 9810,-757.87"/>
<path fill="none" stroke="black" d="M9810,-755.87C9960.27,-609.25 10095.4,-764.94 10270,-648.34"/>
<path fill="none" stroke="black" d="M10270,-646.34C10300.56,-625.92 10331.6,-597.88 10353.39,-576.73"/>
<polygon fill="#db5105" stroke="black" points="10356.02,-579.06 10360.7,-569.56 10351.11,-574.06 10356.02,-579.06"/>
</g>
<!-- ahriman_core_database_data&#45;&gt;ahriman_core_database_migrations -->
<g id="edge211" 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="M9948.75,-2488.49C9881.21,-2467.44 9743.06,-2424.38 9668.46,-2401.13"/>
<polygon fill="#7a3f1e" stroke="black" points="9669.4,-2397.76 9658.81,-2398.12 9667.31,-2404.44 9669.4,-2397.76"/>
</g>
<!-- ahriman_core_database_data_package_remotes -->
<g id="node53" class="node">
<title>ahriman_core_database_data_package_remotes</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="6518" cy="-2501.72" rx="66.44" ry="44.6"/>
<text text-anchor="middle" x="6518" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6518" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6518" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="6518" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="6518" y="-2477.22" 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="edge212" 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="M6565.78,-2532.89C6587.5,-2545.26 6614.09,-2558.01 6640,-2564.27 6684.32,-2574.97 9880.71,-2581.31 9923,-2564.27 9935.96,-2559.04 9947.79,-2549.86 9957.69,-2540.11"/>
<polygon fill="#8a4e2e" stroke="black" points="9960.49,-2542.25 9964.88,-2532.61 9955.44,-2537.41 9960.49,-2542.25"/>
</g>
<!-- ahriman_core_database_data_package_statuses -->
<g id="node54" class="node">
<title>ahriman_core_database_data_package_statuses</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="7138" cy="-2501.72" rx="67.76" ry="44.6"/>
<text text-anchor="middle" x="7138" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7138" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7138" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7138" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="7138" y="-2477.22" 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="edge213" 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="M7204.07,-2512.71C7299.06,-2527.91 7479.85,-2554.55 7635,-2564.27 7698.43,-2568.25 9864.05,-2588.03 9923,-2564.27 9935.96,-2559.04 9947.79,-2549.86 9957.69,-2540.11"/>
<polygon fill="#a15b35" stroke="black" points="9960.49,-2542.25 9964.88,-2532.61 9955.44,-2537.41 9960.49,-2542.25"/>
</g>
<!-- ahriman_core_database_data_patches -->
<g id="node55" class="node">
<title>ahriman_core_database_data_patches</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b0643a" stroke="black" cx="5324" cy="-2501.72" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="5324" y="-2521.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5324" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5324" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="5324" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">data.</text>
<text text-anchor="middle" x="5324" y="-2477.22" 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="edge214" 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="M5357.01,-2529.52C5375,-2542.84 5398.36,-2557.37 5422,-2564.27 5482.01,-2581.79 9865.02,-2587.64 9923,-2564.27 9935.96,-2559.04 9947.79,-2549.86 9957.69,-2540.11"/>
<polygon fill="#b0643a" stroke="black" points="9960.49,-2542.25 9964.88,-2532.61 9955.44,-2537.41 9960.49,-2542.25"/>
</g>
<!-- ahriman_core_database_data_users&#45;&gt;ahriman_core_database_data -->
<g id="edge215" 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="M4368.94,-2510.98C4436.72,-2525.79 4576.73,-2554.15 4697,-2564.27 4769.33,-2570.36 9855.68,-2591.4 9923,-2564.27 9935.96,-2559.04 9947.79,-2549.86 9957.69,-2540.11"/>
<polygon fill="#b0643a" stroke="black" points="9960.49,-2542.25 9964.88,-2532.61 9955.44,-2537.41 9960.49,-2542.25"/>
</g>
<!-- ahriman_core_database_migrations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge216" 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="M9582.2,-2362.92C9551.33,-2345.27 9506.65,-2319.71 9473.68,-2300.85"/>
<polygon fill="#794c34" stroke="black" points="9475.14,-2297.65 9464.72,-2295.72 9471.66,-2303.73 9475.14,-2297.65"/>
</g>
<!-- ahriman_core_database_operations -->
<g id="node58" class="node">
<title>ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a93e04" stroke="black" cx="8158" cy="-2626.82" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="8158" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8158" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8158" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="8158" y="-2607.82" 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="edge217" 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="M8130.79,-2597.76C8123.09,-2591.5 8114.26,-2585.72 8105,-2582.27 7951.45,-2525.15 6791.69,-2578.19 6631,-2546.27 6614.61,-2543.01 6597.5,-2537.58 6581.7,-2531.63"/>
<polygon fill="#a93e04" stroke="black" points="6582.64,-2528.24 6572.05,-2527.88 6580.1,-2534.77 6582.64,-2528.24"/>
</g>
<!-- ahriman_core_database_operations&#45;&gt;ahriman_core_database_sqlite -->
<g id="edge218" 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="M8198.61,-2612.47C8289.08,-2582.92 8514.28,-2510.38 8705,-2457.17 8956.97,-2386.88 9261.76,-2314.85 9379.87,-2287.42"/>
<polygon fill="#a93e04" stroke="black" points="9380.77,-2290.8 9389.72,-2285.13 9379.18,-2283.98 9380.77,-2290.8"/>
</g>
<!-- ahriman_core_database_operations_auth_operations -->
<g id="node59" class="node">
<title>ahriman_core_database_operations_auth_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="7361" cy="-2626.82" rx="60.62" ry="44.6"/>
<text text-anchor="middle" x="7361" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7361" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7361" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7361" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="7361" y="-2602.32" 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_operations -->
<g id="edge219" class="edge">
<title>ahriman_core_database_operations_auth_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7418.86,-2640.59C7487.05,-2656.06 7603.99,-2680.19 7706,-2689.36 7792.32,-2697.13 8016,-2722.71 8096,-2689.36 8108.14,-2684.31 8119.12,-2675.59 8128.35,-2666.24"/>
<polygon fill="#915230" stroke="black" points="8131.14,-2668.38 8135.37,-2658.66 8126,-2663.62 8131.14,-2668.38"/>
</g>
<!-- ahriman_core_database_operations_build_operations -->
<g id="node60" class="node">
<title>ahriman_core_database_operations_build_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="6484" cy="-2626.82" rx="61.54" ry="44.6"/>
<text text-anchor="middle" x="6484" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6484" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6484" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="6484" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="6484" y="-2602.32" 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_operations -->
<g id="edge220" class="edge">
<title>ahriman_core_database_operations_build_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6542.64,-2640.73C6611.12,-2656.2 6728.01,-2680.22 6830,-2689.36 6900.05,-2695.65 8031.08,-2716.42 8096,-2689.36 8108.14,-2684.31 8119.12,-2675.59 8128.35,-2666.24"/>
<polygon fill="#995733" stroke="black" points="8131.14,-2668.38 8135.37,-2658.66 8126,-2663.62 8131.14,-2668.38"/>
</g>
<!-- ahriman_core_database_operations_operations -->
<g id="node61" class="node">
<title>ahriman_core_database_operations_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b0643a" stroke="black" cx="7752" cy="-2626.82" rx="45.92" ry="44.6"/>
<text text-anchor="middle" x="7752" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7752" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7752" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="7752" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="7752" y="-2602.32" 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 -->
<g id="edge221" class="edge">
<title>ahriman_core_database_operations_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7792.52,-2648.42C7858.5,-2680.52 7992.21,-2732.63 8096,-2689.36 8108.14,-2684.31 8119.12,-2675.59 8128.35,-2666.24"/>
<polygon fill="#b0643a" stroke="black" points="8131.14,-2668.38 8135.37,-2658.66 8126,-2663.62 8131.14,-2668.38"/>
</g>
<!-- ahriman_core_database_operations_package_operations -->
<g id="node62" class="node">
<title>ahriman_core_database_operations_package_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#824a2b" stroke="black" cx="6904" cy="-2626.82" rx="73.58" ry="44.6"/>
<text text-anchor="middle" x="6904" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6904" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6904" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="6904" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="6904" y="-2602.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">package_operations</text>
</g>
<!-- ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_operations -->
<g id="edge222" class="edge">
<title>ahriman_core_database_operations_package_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6973.71,-2641.22C7052.5,-2656.71 7184.81,-2680.32 7300,-2689.36 7388.17,-2696.29 8014.36,-2723.39 8096,-2689.36 8108.14,-2684.31 8119.12,-2675.59 8128.35,-2666.24"/>
<polygon fill="#824a2b" stroke="black" points="8131.14,-2668.38 8135.37,-2658.66 8126,-2663.62 8131.14,-2668.38"/>
</g>
<!-- ahriman_core_database_operations_patch_operations -->
<g id="node63" class="node">
<title>ahriman_core_database_operations_patch_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a86038" stroke="black" cx="8032" cy="-2626.82" rx="64.19" ry="44.6"/>
<text text-anchor="middle" x="8032" y="-2646.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8032" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8032" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">database.</text>
<text text-anchor="middle" x="8032" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">operations.</text>
<text text-anchor="middle" x="8032" y="-2602.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">patch_operations</text>
</g>
<!-- ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_operations -->
<g id="edge223" class="edge">
<title>ahriman_core_database_operations_patch_operations&#45;&gt;ahriman_core_database_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8096.48,-2626.82C8098.91,-2626.82 8101.34,-2626.82 8103.78,-2626.82"/>
<polygon fill="#a86038" stroke="black" points="8103.78,-2630.32 8113.78,-2626.82 8103.78,-2623.32 8103.78,-2630.32"/>
</g>
<!-- ahriman_core_database_sqlite&#45;&gt;ahriman_core_database -->
<g id="edge224" 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="M9456.51,-2246.45C9471.2,-2231.26 9489.49,-2212.35 9504.62,-2196.71"/>
<polygon fill="#995733" stroke="black" points="9507.32,-2198.95 9511.76,-2189.33 9502.29,-2194.08 9507.32,-2198.95"/>
</g>
<!-- ahriman_core_exceptions -->
<g id="node65" class="node">
<title>ahriman_core_exceptions</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="10940" cy="-4148.8" rx="44.6" ry="28.98"/>
<text text-anchor="middle" x="10940" y="-4157.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="10940" y="-4146.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="10940" y="-4135.3" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">exceptions</text>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge225" 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="M12470,-3815.84C12398.11,-3577.65 12886.8,-3852.43 12998,-3629.87"/>
<path fill="none" stroke="black" d="M12998,-3627.87C13012.24,-3594.1 12959.19,-3598.07 12946,-3563.88 12733.53,-3013.35 12914.16,-2826.83 12874,-2238.1 12870.68,-2189.36 12876,-2176.15 12865,-2128.56 12858.12,-2098.81 12844.09,-2094.82 12840,-2064.57"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_handlers_search -->
<g id="edge226" 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="M10984.51,-4146.73C11178.45,-4141.87 11941.54,-4120.47 11976,-4083.81 11986.96,-4072.15 11981.61,-4062.8 11976,-4047.81 11776.94,-3515.66 11556.78,-3466.17 11137,-3083.3 11116.77,-3064.84 11106.34,-3066.68 11087,-3047.3 11015.99,-2976.11 10611.08,-2398.24 10560,-2311.63 10463.32,-2147.73 10461.35,-2095.11 10376,-1925.03 10231.33,-1636.76 10194.36,-1564.91 10037,-1283.36 9954.25,-1135.31 9975.94,-1060.05 9843,-954.74 9480.67,-667.72 8501.19,-739.61 8109,-720.1 7264.62,-678.12 4471.26,-652.57 4037.75,-648.82"/>
<polygon fill="#f96210" stroke="black" points="4037.69,-645.32 4027.66,-648.73 4037.63,-652.32 4037.69,-645.32"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_application_lock -->
<g id="edge227" 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="M12394,-3721.85C12331.07,-3614.97 12470.35,-3585.99 12514,-3469.9 12617.77,-3193.9 12694,-3126.2 12694,-2831.34 12694,-2831.34 12694,-2831.34 12694,-2500.72 12694,-2427.31 12679.07,-2403.96 12632,-2347.63 12602.21,-2311.99 12552.7,-2322.21 12556,-2275.87"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge228" 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="M10921.35,-4122.18C10908.49,-4105.43 10890.46,-4083.63 10872,-4066.81"/>
<path fill="none" stroke="black" d="M10872,-4064.81C10522.76,-3746.59 10341.89,-3804.44 9916,-3599.88 9909.07,-3596.55 9423.36,-3364.68 9417,-3360.36 9413.33,-3357.86 9409.66,-3355.09 9406.09,-3352.18"/>
<polygon fill="#f96210" stroke="black" points="9408.32,-3349.48 9398.44,-3345.66 9403.78,-3354.81 9408.32,-3349.48"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge229" 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="M7608,-4064.81C7572.35,-4059.82 7627.77,-4013.9 7608,-3983.82"/>
<path fill="none" stroke="black" d="M7608,-3981.82C7524.7,-3855.07 7378.18,-3972.66 7295,-3845.83 7280.87,-3824.28 7286.97,-3812.33 7295,-3787.84 7305.99,-3754.31 7333.18,-3758.02 7342,-3723.85"/>
<path fill="none" stroke="black" d="M7342,-3721.85C7347.5,-3681.34 7332.66,-3669.67 7342,-3629.87"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge230" 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="M10872,-4064.81C10812.37,-4008.49 10894.27,-3949.55 10848,-3881.83 10799.08,-3810.22 10584.38,-3730.97 10506,-3693.86 10303.41,-3597.94 10248.55,-3582.77 10038,-3505.9 9843.38,-3434.84 9607.48,-3360.9 9509.78,-3330.8"/>
<polygon fill="#f96210" stroke="black" points="9510.79,-3327.45 9500.21,-3327.86 9508.74,-3334.14 9510.79,-3327.45"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge231" 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="M12470,-4064.81C12512.85,-3963.75 12490.96,-3925.58 12470,-3817.84"/>
<path fill="none" stroke="black" d="M12470,-3815.84C12454.68,-3765.07 12420.7,-3769.67 12394,-3723.85"/>
<path fill="none" stroke="black" d="M12394,-3721.85C12369.8,-3680.32 12242,-3364.88 12242,-3316.81 12242,-3316.81 12242,-3316.81 12242,-3111.29 12242,-2920.56 11967.14,-3098.11 11843,-2953.31 11609.53,-2680.99 11720.01,-2520.63 11664,-2166.33"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge232" 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="M10984.58,-4145.51C11077.09,-4139.99 11286.12,-4123.4 11344,-4083.81 11452.93,-4009.3 11474.01,-3866.45 11368,-3787.84 11296.13,-3734.55 11042.62,-3799.66 10967,-3751.84 10859.75,-3684.03 10892.04,-3611.71 10822,-3505.9 10702.41,-3325.22 10345.39,-2890.69 10148,-2801.35 10032.17,-2748.92 9685.42,-2831.75 9577,-2765.35 9268.32,-2576.29 9434.61,-2302.71 9162,-2064.57"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_configuration -->
<g id="edge233" 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="M10908.42,-4128.34C10901.29,-4124.84 10893.58,-4121.7 10886,-4119.81 10708.54,-4075.52 7776.56,-4095.03 7594,-4083.81 7307.86,-4066.22 7233,-4073.32 6953,-4011.81 6686.96,-3953.37 6611.51,-3909.3 6412,-3723.85"/>
<path fill="none" stroke="black" d="M6412,-3721.85C6391.23,-3705.25 6371.72,-3682.64 6357.29,-3663.99"/>
<polygon fill="#f96210" stroke="black" points="6360.06,-3661.86 6351.23,-3656.01 6354.49,-3666.09 6360.06,-3661.86"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_report_report -->
<g id="edge234" 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="M10908.43,-4128.33C10901.3,-4124.82 10893.58,-4121.69 10886,-4119.81 10769.1,-4090.8 6670.38,-4087.9 6550,-4083.81 6240.96,-4073.3 3984.03,-4142.9 3772,-3917.83 3761.03,-3906.18 3765.24,-3896.33 3772,-3881.83 3795.23,-3832.01 4111.09,-3601.67 4151,-3563.88 4192.55,-3524.53 4206.44,-3516.95 4239,-3469.9 4319.27,-3353.88 4410.41,-2996.24 4509,-2895.33 4534.28,-2869.45 4550.6,-2877.3 4582,-2859.33 4697.6,-2793.17 5037.87,-2559.8 5045,-2546.27 5063.47,-2511.24 5059.52,-2494.01 5045,-2457.17 5029,-2416.58 4961.12,-2425.65 4978,-2385.4"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge235" 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="M10981.83,-4138.32C11010.42,-4129.43 11046.23,-4112.98 11064,-4083.81 11110.71,-4007.15 11110.84,-3958.41 11064,-3881.83 11056.27,-3869.2 10128.76,-3401.82 10115,-3396.36 9545.77,-3170.33 9380.03,-3164.65 8773,-3083.3 8617.13,-3062.41 8567.76,-3103.8 8421,-3047.3 8380.36,-3031.65 8377.74,-3014.2 8342,-2989.31 8339.31,-2987.44 8147.42,-2861.54 8145,-2859.33 8120.75,-2837.11 8119.96,-2826.7 8099,-2801.35 8063.86,-2758.85 8060.05,-2743.04 8018,-2707.36 7994.58,-2687.49 7979.19,-2694.52 7959,-2671.36 7945.12,-2655.45 7951.63,-2645.45 7940,-2627.82"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge236" 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="M10908.13,-4128.23C10901.08,-4124.78 10893.47,-4121.7 10886,-4119.81 10709.4,-4075.24 7788.37,-4092.07 7608,-4066.81"/>
<path fill="none" stroke="black" d="M7608,-4064.81C7590.99,-4062.43 7007.36,-4019.49 6992,-4011.81 6977.08,-4004.35 6982.9,-3988.85 6967,-3983.82"/>
<path fill="none" stroke="black" d="M6967,-3981.82C6955.68,-3978.23 6770.59,-3926.96 6763,-3917.83 6681.16,-3819.35 6728.7,-3755.39 6754,-3629.87"/>
<path fill="none" stroke="black" d="M6754,-3627.87C6760.86,-3528.2 6711.06,-3504.35 6640,-3434.13"/>
<path fill="none" stroke="black" d="M6640,-3432.13C6619.48,-3411.5 6603.16,-3383.21 6591.88,-3359.81"/>
<polygon fill="#f96210" stroke="black" points="6594.91,-3358.03 6587.51,-3350.45 6588.57,-3360.99 6594.91,-3358.03"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_status_watcher -->
<g id="edge237" 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="M10984.75,-4146.61C11227.22,-4140.09 12375.16,-4108.03 12446,-4083.81 12458.37,-4079.58 12464.44,-4078.64 12470,-4066.81"/>
<path fill="none" stroke="black" d="M12470,-4064.81C12524.89,-3948.04 12092.31,-3814.01 12000,-3723.85"/>
<path fill="none" stroke="black" d="M12000,-3721.85C11737.35,-3494.4 11846.55,-3262.69 11549,-3083.3 11442.68,-3019.2 11377.64,-3112.51 11272,-3047.3 11059.8,-2916.3 11099.05,-2787.93 10958,-2582.27 10819.02,-2379.61 10785.76,-2327.85 10642,-2128.56 10575.95,-2037 10560.97,-2012.83 10490,-1925.03 10478.54,-1910.85 10067.5,-1446.23 10058,-1430.67"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge238" class="edge">
<title>ahriman_core_exceptions&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6967,-3981.82C6898.37,-3953.8 7020,-3390.93 7020,-3316.81 7020,-3316.81 7020,-3316.81 7020,-3205.27 7020,-3133.36 7047.18,-3118.78 7055,-3047.3 7057.8,-3021.68 7056.73,-3015.02 7055,-2989.31 7053.64,-2969.09 7013.55,-2646.63 7006,-2627.82"/>
<path fill="none" stroke="black" d="M7006,-2625.82C6993.35,-2608.91 7002.17,-2596.95 6987,-2582.27 6948.88,-2545.38 6891.55,-2524.95 6848.03,-2514.06"/>
<polygon fill="#f96210" stroke="black" points="6848.66,-2510.61 6838.12,-2511.68 6847.03,-2517.42 6848.66,-2510.61"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_core_upload_upload -->
<g id="edge239" 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="M10984.79,-4146.43C11107.47,-4140.63 11435.37,-4110.46 11368,-3953.83 11349.62,-3911.08 11332.27,-3905.14 11292,-3881.83 11248.43,-3856.61 10892.66,-3788.35 10858,-3751.84 10780.52,-3670.25 10852.72,-3604.21 10798,-3505.9 10796.33,-3502.9 10109.12,-2802.77 10106,-2801.35 9980.34,-2744.29 9618.57,-2803.7 9486,-2765.35 9405.25,-2741.99 9233.96,-2611.1 9155,-2582.27 9031.68,-2537.25 8877.32,-2515.84 8800.34,-2507.37"/>
<polygon fill="#f96210" stroke="black" points="8800.32,-2503.85 8790,-2506.26 8799.57,-2510.81 8800.32,-2503.85"/>
</g>
<!-- ahriman_core_util -->
<g id="node110" class="node">
<title>ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c74905" stroke="black" cx="7342" cy="-3816.84" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="7342" y="-3825.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7342" y="-3814.34" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="7342" 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="edge240" 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="M7608,-3981.82C7580.38,-3937.42 7587.31,-3913.88 7546,-3881.83 7500.16,-3846.26 7434.23,-3830.27 7389.85,-3823.21"/>
<polygon fill="#f96210" stroke="black" points="7390.29,-3819.74 7379.89,-3821.72 7389.26,-3826.66 7390.29,-3819.74"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_migration_result -->
<g id="edge241" 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="M10984.62,-4146.56C11120.08,-4142.33 11519.67,-4126.31 11558,-4083.81 11646.82,-3985.32 11624.84,-3869.07 11520,-3787.84 11457.14,-3739.14 11226.07,-3727.46 11107.79,-3724.69"/>
<polygon fill="#f96210" stroke="black" points="11107.82,-3721.19 11097.74,-3724.47 11107.66,-3728.19 11107.82,-3721.19"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_package -->
<g id="edge242" 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="M6967,-3981.82C6747.05,-3904.29 6857.65,-3710.65 6746,-3505.9 6709.36,-3438.71 6687.92,-3428.95 6654,-3360.36 6635.28,-3322.5 6654.72,-3296.68 6621,-3271.26 6536.46,-3207.55 6234.82,-3292.85 6146,-3235.26 6094.28,-3201.73 6095.24,-3173.01 6080,-3113.29"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_repository_paths -->
<g id="edge243" 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="M10908.43,-4128.33C10901.3,-4124.83 10893.58,-4121.69 10886,-4119.81 10656.3,-4062.78 6860.42,-4116.38 6626,-4083.81 6597.7,-4079.88 6592.52,-4068.52 6564,-4066.81"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_models_result -->
<g id="edge244" 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="M10908.43,-4128.31C10901.3,-4124.81 10893.59,-4121.68 10886,-4119.81 10790.06,-4096.17 3850.12,-4144.31 3772,-4083.81 3699.78,-4027.88 3703.54,-3967.94 3734,-3881.83 3751.91,-3831.18 3770.18,-3823.91 3810,-3787.84 3944.39,-3666.12 4012.28,-3680.65 4151,-3563.88 4278.98,-3456.15 4487.57,-3142.16 4488,-3141.28 4537.77,-3039.63 4467.64,-2968.48 4554,-2895.33 4617.03,-2841.93 4844.97,-2883.38 4924,-2859.33 4928.66,-2857.91 4933.38,-2856.06 4937.98,-2853.98"/>
<polygon fill="#f96210" stroke="black" points="4939.75,-2857 4947.19,-2849.45 4936.67,-2850.72 4939.75,-2857"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_views_status_package -->
<g id="edge245" 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="M12000,-3721.85C11962.3,-3680.23 11800.1,-3319.29 11771,-3271.26 11744.42,-3227.39 11737.84,-3215.83 11704,-3177.28 11663.55,-3131.19 11658.61,-3109.13 11603,-3083.3 11542.5,-3055.2 11351.78,-3094.84 11305,-3047.3 11277.59,-3019.44 11237.63,-2386.31 11232,-2347.63 11220.18,-2266.51 11198,-2248.31 11198,-2166.33 11198,-2166.33 11198,-2166.33 11198,-2062.57 11198,-1999.91 11200.22,-1978.16 11167,-1925.03 11153.42,-1903.32 11141.43,-1905.72 11122,-1889.03 11012.91,-1795.39 10980.55,-1776.48 10884,-1669.96 10830.94,-1611.41 10482.44,-1176.51 10456,-1102.05"/>
</g>
<!-- ahriman_core_exceptions&#45;&gt;ahriman_web_web -->
<g id="edge246" 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="M12998,-3627.87C13295.34,-3044.58 13182,-2821.03 13182,-2166.33 13182,-2166.33 13182,-2166.33 13182,-1851.27 13182,-1399.22 12896,-1327.24 12896,-875.19 12896,-875.19 12896,-875.19 12896,-755.87 12896,-536.81 12139.08,-631.29 11921,-610.57 11336.44,-555 10622.35,-547.68 10431.69,-546.72"/>
<polygon fill="#f96210" stroke="black" points="10431.46,-543.22 10421.44,-546.67 10431.43,-550.22 10431.46,-543.22"/>
</g>
<!-- ahriman_core_formatters -->
<g id="node66" class="node">
<title>ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#953703" stroke="black" cx="1664" cy="-2501.72" rx="43.68" ry="28.98"/>
<text text-anchor="middle" x="1664" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1664" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1664" y="-2488.22" 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="edge247" 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="M2136,-2062.57C2157.87,-1941.46 2185.19,-1912.43 2261,-1815.5 2524.44,-1478.66 2785.36,-1575.44 3010,-1211.59"/>
<path fill="none" stroke="black" d="M3010,-1209.59C3015.98,-1189.5 3021.41,-1166.95 3025.67,-1147.71"/>
<polygon fill="#953703" stroke="black" points="3029.15,-1148.21 3027.85,-1137.69 3022.31,-1146.72 3029.15,-1148.21"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_dump -->
<g id="edge248" 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="M2022,-2062.57C1987.28,-2011.55 2019.63,-1984.46 2003,-1925.03 1951.74,-1741.93 1738.8,-1697.6 1833,-1532.43"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge249" 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="M2136,-2164.33C2124.8,-2121.43 2132.76,-2108.78 2136,-2064.57"/>
<path fill="none" stroke="black" d="M2136,-2062.57C2142.96,-1967.62 2170.91,-1722.75 2136,-1634.19"/>
<path fill="none" stroke="black" d="M2136,-1632.19C2082.67,-1521.24 1946,-1553.76 1946,-1430.67 1946,-1430.67 1946,-1430.67 1946,-1319.13 1946,-1139.38 1907.65,-1097.51 1889,-918.74 1880.81,-840.21 1875.62,-748.44 1873.02,-694.54"/>
<polygon fill="#953703" stroke="black" points="1876.5,-694.1 1872.53,-684.27 1869.51,-694.43 1876.5,-694.1"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge250" 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="M2212,-990.51C2212.71,-939.26 2211.08,-926.44 2212,-875.19"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_remove_unknown -->
<g id="edge251" 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="M2250,-1428.67C2316.87,-1171.16 2389.19,-1125.97 2478,-875.19"/>
<path fill="none" stroke="black" d="M2478,-873.19C2483.88,-811.36 2489,-739.81 2492.04,-694.34"/>
<polygon fill="#953703" stroke="black" points="2495.55,-694.41 2492.72,-684.2 2488.56,-693.95 2495.55,-694.41"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_search -->
<g id="edge252" 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="M1707.54,-2497.79C1793.77,-2491.07 1991.61,-2471.12 2150,-2421.17 2527.76,-2302.05 2576.04,-2156.2 2953,-2034.57 3040.2,-2006.44 3071.79,-2034.71 3156,-1998.57 3637.01,-1792.18 3779.01,-1687.04 4063,-1247.36 4195.66,-1041.97 4365.92,-916.29 4220,-720.1 4198.03,-690.57 4099.94,-668.63 4036.45,-657.21"/>
<polygon fill="#953703" stroke="black" points="4037.03,-653.75 4026.58,-655.46 4035.82,-660.65 4037.03,-653.75"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_shell -->
<g id="edge253" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_shell</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2174,-1319.13C2136.23,-1256.57 2212.24,-1065.58 2212,-992.51"/>
<path fill="none" stroke="black" d="M2212,-990.51C2212.59,-885.75 2120.2,-847.77 2174,-757.87"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_status -->
<g id="edge254" 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="M2136,-2383.4C2239.41,-2320 2249.93,-2283.34 2340,-2202.1 2493.02,-2064.08 2545.38,-2043.31 2682,-1889.03 2716.99,-1849.52 2918.5,-1537.44 2958,-1502.43 2983.01,-1480.28 2998.71,-1488.27 3024,-1466.43 3193.39,-1320.18 3158.32,-1211.34 3327,-1064.28 3513.06,-902.06 3649.09,-979.09 3812,-793.64 3836.99,-765.19 3851.96,-724.64 3860.42,-693.6"/>
<polygon fill="#953703" stroke="black" points="3863.82,-694.44 3862.94,-683.88 3857.04,-692.68 3863.82,-694.44"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_unsafe_commands -->
<g id="edge255" 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="M2136,-1632.19C2115.26,-1571.93 2164.36,-1557.16 2197,-1502.43 2217.31,-1468.38 2237.29,-1468.23 2250,-1430.67"/>
<path fill="none" stroke="black" d="M2250,-1428.67C2258.71,-1390.25 2220.53,-1389.2 2198,-1356.9 2187.05,-1341.19 2184.01,-1337.44 2174,-1321.13"/>
<path fill="none" stroke="black" d="M2174,-1319.13C2003.64,-1041.46 1999.92,-628.39 2003.92,-491.06"/>
<polygon fill="#953703" stroke="black" points="2007.43,-491.01 2004.25,-480.9 2000.43,-490.78 2007.43,-491.01"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_users -->
<g id="edge256" 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="M2136,-2273.87C2157.94,-2143.68 2226.24,-2134.94 2312,-2034.57 2341.15,-2000.46 2392.8,-2006.59 2383,-1962.8"/>
<path fill="none" stroke="black" d="M2383,-1960.8C2376.95,-1941.01 2372.78,-1918.51 2369.99,-1899.22"/>
<polygon fill="#953703" stroke="black" points="2373.44,-1898.6 2368.62,-1889.16 2366.51,-1899.54 2373.44,-1898.6"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge257" class="edge">
<title>ahriman_core_formatters&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1707.74,-2498.84C1795.31,-2493.29 1995.77,-2471.38 2136,-2385.4"/>
<path fill="none" stroke="black" d="M2136,-2383.4C2176.75,-2358.42 2128.06,-2323 2136,-2275.87"/>
<path fill="none" stroke="black" d="M2136,-2273.87C2143.94,-2226.73 2148.07,-2212.57 2136,-2166.33"/>
<path fill="none" stroke="black" d="M2136,-2164.33C2119,-2099.18 2059.88,-2120.23 2022,-2064.57"/>
<path fill="none" stroke="black" d="M2022,-2062.57C2008.04,-2042.06 1991.57,-2019.95 1977.63,-2001.76"/>
<polygon fill="#953703" stroke="black" points="1980.29,-1999.49 1971.42,-1993.7 1974.75,-2003.76 1980.29,-1999.49"/>
</g>
<!-- ahriman_core_formatters&#45;&gt;ahriman_core_report_console -->
<g id="edge258" 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="M1707.85,-2500.19C1908.92,-2497.44 2762.79,-2482.55 3460,-2421.17 3868.92,-2385.18 4359.29,-2308.42 4512.14,-2283.71"/>
<polygon fill="#953703" stroke="black" points="4512.82,-2287.14 4522.14,-2282.09 4511.7,-2280.23 4512.82,-2287.14"/>
</g>
<!-- ahriman_core_formatters_aur_printer -->
<g id="node67" class="node">
<title>ahriman_core_formatters_aur_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="1431" cy="-2626.82" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="1431" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1431" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1431" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1431" y="-2607.82" 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="edge259" 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="M1460.99,-2598.76C1468.75,-2592.72 1477.36,-2586.77 1486,-2582.27 1535.37,-2556.53 1556.3,-2571.37 1606,-2546.27 1614.08,-2542.19 1622.19,-2536.97 1629.69,-2531.57"/>
<polygon fill="#915230" stroke="black" points="1632.26,-2534.01 1638.16,-2525.2 1628.06,-2528.41 1632.26,-2534.01"/>
</g>
<!-- ahriman_core_formatters_build_printer -->
<g id="node68" class="node">
<title>ahriman_core_formatters_build_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="2351" cy="-2626.82" rx="48.58" ry="36.54"/>
<text text-anchor="middle" x="2351" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2351" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2351" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="2351" y="-2607.82" 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="edge260" 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="M2303.78,-2617.36C2179.81,-2595.14 1845.75,-2535.29 1716.28,-2512.09"/>
<polygon fill="#a15b35" stroke="black" points="1716.67,-2508.6 1706.21,-2510.29 1715.44,-2515.49 1716.67,-2508.6"/>
</g>
<!-- ahriman_core_formatters_configuration_printer -->
<g id="node69" class="node">
<title>ahriman_core_formatters_configuration_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="1183" cy="-2626.82" rx="73.58" ry="36.54"/>
<text text-anchor="middle" x="1183" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1183" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1183" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1183" y="-2607.82" 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="edge261" 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="M1228.65,-2597.95C1240.44,-2591.86 1253.39,-2586.09 1266,-2582.27 1411.42,-2538.19 1464.59,-2601.89 1606,-2546.27 1614.78,-2542.82 1623.38,-2537.66 1631.17,-2532.08"/>
<polygon fill="#a15b35" stroke="black" points="1633.42,-2534.77 1639.26,-2525.93 1629.18,-2529.2 1633.42,-2534.77"/>
</g>
<!-- ahriman_core_formatters_package_printer -->
<g id="node70" class="node">
<title>ahriman_core_formatters_package_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="1836" cy="-2626.82" rx="60.62" ry="36.54"/>
<text text-anchor="middle" x="1836" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1836" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1836" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1836" y="-2607.82" 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="edge262" 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="M1797.4,-2598.19C1768.77,-2577.7 1729.94,-2549.91 1701.56,-2529.6"/>
<polygon fill="#915230" stroke="black" points="1703.28,-2526.53 1693.11,-2523.55 1699.2,-2532.22 1703.28,-2526.53"/>
</g>
<!-- ahriman_core_formatters_printer -->
<g id="node71" class="node">
<title>ahriman_core_formatters_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b0643a" stroke="black" cx="1321" cy="-2626.82" rx="45.92" ry="36.54"/>
<text text-anchor="middle" x="1321" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1321" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1321" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1321" y="-2607.82" 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="edge263" 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="M1350.3,-2598.13C1358.14,-2592.04 1366.96,-2586.22 1376,-2582.27 1470.79,-2540.79 1510.69,-2586.53 1606,-2546.27 1614.69,-2542.6 1623.26,-2537.35 1631.04,-2531.76"/>
<polygon fill="#b0643a" stroke="black" points="1633.28,-2534.45 1639.13,-2525.61 1629.05,-2528.87 1633.28,-2534.45"/>
</g>
<!-- ahriman_core_formatters_status_printer -->
<g id="node72" class="node">
<title>ahriman_core_formatters_status_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="2472" cy="-2626.82" rx="53.98" ry="36.54"/>
<text text-anchor="middle" x="2472" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="2472" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="2472" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="2472" y="-2607.82" 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="edge264" 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="M2438.42,-2598.07C2429.36,-2591.9 2419.22,-2586.07 2409,-2582.27 2281.88,-2535.06 1867.66,-2511.98 1718.31,-2505.05"/>
<polygon fill="#a15b35" stroke="black" points="1718.17,-2501.54 1708.02,-2504.57 1717.85,-2508.53 1718.17,-2501.54"/>
</g>
<!-- ahriman_core_formatters_string_printer -->
<g id="node73" class="node">
<title>ahriman_core_formatters_string_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b0643a" stroke="black" cx="1966" cy="-2626.82" rx="51.74" ry="36.54"/>
<text text-anchor="middle" x="1966" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1966" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1966" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1966" y="-2607.82" 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="edge265" 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="M1932.28,-2598.56C1924,-2592.67 1914.94,-2586.84 1906,-2582.27 1843.56,-2550.34 1765.62,-2527.44 1715.34,-2514.64"/>
<polygon fill="#b0643a" stroke="black" points="1715.91,-2511.18 1705.36,-2512.14 1714.21,-2517.97 1715.91,-2511.18"/>
</g>
<!-- ahriman_core_formatters_update_printer -->
<g id="node74" class="node">
<title>ahriman_core_formatters_update_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="1664" cy="-2626.82" rx="55.31" ry="36.54"/>
<text text-anchor="middle" x="1664" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1664" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1664" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1664" y="-2607.82" 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="edge266" 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="M1664,-2589.88C1664,-2574.66 1664,-2556.89 1664,-2541.39"/>
<polygon fill="#995733" stroke="black" points="1667.5,-2541.07 1664,-2531.07 1660.5,-2541.07 1667.5,-2541.07"/>
</g>
<!-- ahriman_core_formatters_user_printer -->
<g id="node75" class="node">
<title>ahriman_core_formatters_user_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#995733" stroke="black" cx="1543" cy="-2626.82" rx="48.17" ry="36.54"/>
<text text-anchor="middle" x="1543" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1543" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1543" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1543" y="-2607.82" 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="edge267" 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="M1571.37,-2596.96C1590.07,-2577.93 1614.55,-2553.03 1633.65,-2533.6"/>
<polygon fill="#995733" stroke="black" points="1636.17,-2536.03 1640.68,-2526.45 1631.17,-2531.12 1636.17,-2536.03"/>
</g>
<!-- ahriman_core_formatters_version_printer -->
<g id="node76" class="node">
<title>ahriman_core_formatters_version_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#a15b35" stroke="black" cx="1035" cy="-2626.82" rx="56.64" ry="36.54"/>
<text text-anchor="middle" x="1035" y="-2640.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="1035" y="-2629.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="1035" y="-2618.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">formatters.</text>
<text text-anchor="middle" x="1035" y="-2607.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">version_printer</text>
</g>
<!-- ahriman_core_formatters_version_printer&#45;&gt;ahriman_core_formatters -->
<g id="edge268" class="edge">
<title>ahriman_core_formatters_version_printer&#45;&gt;ahriman_core_formatters</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1070.01,-2597.6C1079.27,-2591.51 1089.59,-2585.84 1100,-2582.27 1313.24,-2509.07 1394.8,-2625.17 1606,-2546.27 1614.92,-2542.94 1623.64,-2537.77 1631.48,-2532.15"/>
<polygon fill="#a15b35" stroke="black" points="1633.8,-2534.78 1639.63,-2525.93 1629.56,-2529.21 1633.8,-2534.78"/>
</g>
<!-- ahriman_core_lazy_logging -->
<g id="node77" class="node">
<title>ahriman_core_lazy_logging</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="7894" cy="-3534.89" rx="50.41" ry="28.98"/>
<text text-anchor="middle" x="7894" y="-3543.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="7894" y="-3532.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="7894" y="-3521.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">lazy_logging</text>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_application_application_application_properties -->
<g id="edge269" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_application_application_application_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7494,-3432.13C7463.79,-3424.98 7461.47,-3410.83 7434,-3396.36 7400.22,-3378.56 7381.31,-3388.94 7356,-3360.36 7342.52,-3345.14 7361,-3324.05 7342,-3316.81"/>
<path fill="none" stroke="black" d="M7342,-3314.81C7322.27,-3307.29 7340.51,-3283.06 7323,-3271.26 7260.88,-3229.39 6049.88,-3237.59 5975,-3235.26 5938.3,-3234.12 3360.46,-3165.65 3333,-3141.28 3291.97,-3104.86 3314,-3074.17 3314,-3019.3 3314,-3019.3 3314,-3019.3 3314,-2829.34 3314,-2774.33 3296.36,-2746.51 3335,-2707.36 3396.61,-2644.95 3471.99,-2738 3529,-2671.36 3690.74,-2482.29 3408,-1662.07 3408,-1634.19 3408,-1634.19 3408,-1634.19 3408,-1530.43 3408,-1437.4 3390.04,-1412.4 3408,-1321.13"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_application_lock -->
<g id="edge270" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_application_lock</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7942.81,-3527.29C7989.7,-3521.12 8062.59,-3511.96 8126,-3505.9 8351.31,-3484.33 8411.14,-3509.46 8634,-3469.9 8947.79,-3414.18 9010.04,-3331.44 9323,-3271.26 9569.61,-3223.84 11324.46,-3089.56 11572,-3047.3 11679.32,-3028.97 11703.76,-3013.11 11810,-2989.31 11887.91,-2971.86 11913.95,-2987.73 11986,-2953.31 12045.25,-2925.01 12063.27,-2913.76 12100,-2859.33 12139.62,-2800.62 12122.6,-2773.48 12148,-2707.36 12191.82,-2593.3 12189.08,-2555.23 12262,-2457.17 12320.53,-2378.47 12564.04,-2259.72 12594,-2166.33"/>
<path fill="none" stroke="black" d="M12594,-2164.33C12597.99,-2143.63 12594.11,-2120.52 12588.84,-2101.75"/>
<polygon fill="#f96210" stroke="black" points="12592.16,-2100.64 12585.91,-2092.1 12585.47,-2102.68 12592.16,-2100.64"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge271" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_alpm_remote_remote</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7850.83,-3519.48C7832.85,-3514.15 7811.63,-3508.73 7792,-3505.9 7582.69,-3475.68 6095.43,-3515.82 5889,-3469.9 5772.17,-3443.9 5742.91,-3426.26 5643,-3360.36 5639.3,-3357.91 5635.6,-3355.17 5632.01,-3352.29"/>
<polygon fill="#f96210" stroke="black" points="5634.24,-3349.59 5624.34,-3345.81 5629.72,-3354.93 5634.24,-3349.59"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge272" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_alpm_repo</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7942.33,-3526.97C7989.18,-3520.53 8062.32,-3511.14 8126,-3505.9 8486.02,-3476.24 8582.27,-3532.8 8938,-3469.9 9044.93,-3450.99 9065.16,-3420.64 9171,-3396.36 9278.7,-3371.65 9317.33,-3408.05 9417,-3360.36 9422.27,-3357.83 9427.36,-3354.51 9432.11,-3350.83"/>
<polygon fill="#f96210" stroke="black" points="9434.4,-3353.48 9439.78,-3344.36 9429.88,-3348.13 9434.4,-3353.48"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_auth_auth -->
<g id="edge273" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_auth_auth</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8620,-3432.13C8696.16,-3406.43 8712.4,-3392.66 8786,-3360.36 8875.11,-3321.25 8892.41,-3297.89 8986,-3271.26 9283.68,-3186.55 9369.24,-3218.36 9676,-3177.28 9993.24,-3134.8 10071.03,-3109.77 10390,-3083.3 10447.34,-3078.54 11383.8,-3087.46 11425,-3047.3 11493.85,-2980.17 11438,-2927.49 11438,-2831.34 11438,-2831.34 11438,-2831.34 11438,-2735.36 11438,-2578.24 11437.96,-2534.36 11388,-2385.4"/>
<path fill="none" stroke="black" d="M11388,-2383.4C11363.68,-2322.98 11345.39,-2298.8 11369,-2238.1 11376.87,-2217.87 11390.06,-2220.22 11402,-2202.1 11420.45,-2174.1 11464.6,-2098.08 11464,-2064.57"/>
<path fill="none" stroke="black" d="M11464,-2062.57C11463.8,-2044.84 11462.17,-2025.42 11460.29,-2008.47"/>
<polygon fill="#f96210" stroke="black" points="11463.74,-2007.8 11459.1,-1998.27 11456.78,-2008.61 11463.74,-2007.8"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge274" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7851.33,-3519.61C7833.25,-3514.24 7811.81,-3508.74 7792,-3505.9 7330.88,-3439.74 6160.45,-3505.99 5696,-3469.9 5688.63,-3469.32 3595.33,-3178.25 3588,-3177.28 3524.06,-3168.84 3347.17,-3185.26 3300,-3141.28 3259.59,-3103.6 3276,-3074.55 3276,-3019.3 3276,-3019.3 3276,-3019.3 3276,-2829.34 3276,-2774.09 3260.65,-2746.15 3300,-2707.36 3363.7,-2644.58 3440.69,-2740.03 3498,-2671.36 3559,-2598.28 3527.36,-2547.73 3498,-2457.17 3485.85,-2419.7 3435.44,-2423.35 3446,-2385.4"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge275" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_build_tools_task</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7942.52,-3527.1C8001.34,-3516.59 8100.47,-3491.28 8164,-3434.13"/>
<path fill="none" stroke="black" d="M8164,-3432.13C8220.17,-3381.59 8173.9,-3331.89 8219,-3271.26 8321.1,-3134.02 8413.02,-3170.19 8532,-3047.3 8671.74,-2902.96 8691.21,-2850.07 8783,-2671.36 8868.82,-2504.28 8887.37,-2458.32 8932,-2275.87"/>
<path fill="none" stroke="black" d="M8932,-2273.87C8935.14,-2226.17 8921.3,-2212.91 8932,-2166.33"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_database_migrations -->
<g id="edge276" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_database_migrations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8164,-3432.13C8176.61,-3420.62 8167.34,-3409.69 8178,-3396.36 8222.82,-3340.26 9189.84,-2713.48 9248,-2671.36 9370.96,-2582.32 9511.71,-2470.78 9578.65,-2417.12"/>
<polygon fill="#f96210" stroke="black" points="9581.22,-2419.55 9586.83,-2410.56 9576.84,-2414.09 9581.22,-2419.55"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_database_operations_operations -->
<g id="edge277" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_database_operations_operations</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7912,-2735.36C7910.12,-2722.93 7824.28,-2679.36 7812,-2671.36 7806.83,-2668 7801.5,-2664.37 7796.24,-2660.69"/>
<polygon fill="#f96210" stroke="black" points="7798.26,-2657.83 7788.07,-2654.9 7794.21,-2663.54 7798.26,-2657.83"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_report_report -->
<g id="edge278" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7342,-3314.81C7322.26,-3307.3 7340.51,-3283.07 7323,-3271.26 7201.36,-3189.23 6118.47,-3325.79 6003,-3235.26 5977.43,-3215.22 5854.57,-2703.18 5848,-2671.36 5828.55,-2577.23 5838.2,-2551.15 5818,-2457.17 5796.69,-2358 5826.85,-2308.68 5754,-2238.1 5721.37,-2206.48 5594.26,-2183.5 5523.76,-2172.89"/>
<polygon fill="#f96210" stroke="black" points="5524.19,-2169.41 5513.79,-2171.41 5523.17,-2176.34 5524.19,-2169.41"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge279" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7869.67,-3509.25C7852.81,-3490.41 7831.72,-3462.86 7822,-3434.13"/>
<path fill="none" stroke="black" d="M7822,-3432.13C7780.29,-3308.9 7767.18,-3272 7678,-3177.28 7662.3,-3160.61 7344.69,-2972.37 7332,-2953.31 7316.41,-2929.91 7278.43,-2736.62 7258,-2421.17 7255.89,-2388.56 7249.13,-2379.09 7258,-2347.63 7268.16,-2311.63 7299.29,-2313.18 7302,-2275.87"/>
<path fill="none" stroke="black" d="M7302,-2273.87C7303.2,-2226.09 7279.97,-2208.74 7302,-2166.33"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge280" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_sign_gpg</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7856.4,-3515.35C7847.88,-3511.75 7838.76,-3508.33 7830,-3505.9 7711.67,-3472.96 7672.32,-3509.34 7556,-3469.9 7525.87,-3459.68 7524.96,-3441.45 7494,-3434.13"/>
<path fill="none" stroke="black" d="M7494,-3432.13C7166.52,-3354.66 6760.38,-3326.81 6622.43,-3319.21"/>
<polygon fill="#f96210" stroke="black" points="6622.38,-3315.7 6612.2,-3318.65 6622,-3322.69 6622.38,-3315.7"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_spawn -->
<g id="edge281" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_spawn</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7942.25,-3526.73C7999.59,-3517.39 8097.6,-3498.74 8178,-3469.9 8449.77,-3372.4 8484.7,-3270.39 8758,-3177.28 9236.07,-3014.41 9849.95,-2946.45 10024.07,-2929.66"/>
<polygon fill="#f96210" stroke="black" points="10024.56,-2933.13 10034.18,-2928.7 10023.9,-2926.17 10024.56,-2933.13"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_status_watcher -->
<g id="edge282" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_status_watcher</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7942.82,-3528.05C8052.75,-3514.85 8317.03,-3482.89 8406,-3469.9 8501.42,-3455.96 8528.63,-3464.95 8620,-3434.13"/>
<path fill="none" stroke="black" d="M8620,-3432.13C8717.35,-3399.28 8696.81,-3322.25 8786,-3271.26 8922.48,-3193.24 8971.78,-3202.19 9127,-3177.28 9287.15,-3151.58 9699.94,-3185.47 9856,-3141.28 9994.24,-3102.13 10025.81,-3062.67 10119,-2953.31 10186.39,-2874.23 10225.48,-2864.03 10258,-2765.35 10266.07,-2740.87 10260.24,-2733.04 10258,-2707.36 10253.09,-2651.13 10249.02,-2637.2 10236,-2582.27 10195.32,-2410.63 10163.31,-2373.59 10122,-2202.1 10085.09,-2048.86 10078.45,-2009.56 10058,-1853.27"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_status_web_client -->
<g id="edge283" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_status_web_client</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7822,-3432.13C7791.31,-3337.02 7822,-3307.21 7822,-3207.27 7822,-3207.27 7822,-3207.27 7822,-2923.32 7822,-2868.07 7819.63,-2849.9 7846,-2801.35 7865.5,-2765.44 7918.1,-2777.76 7912,-2737.36"/>
<path fill="none" stroke="black" d="M7912,-2735.36C7908.07,-2714.75 7893.17,-2715.88 7874,-2707.36 7800.63,-2674.79 7759.42,-2721.84 7697,-2671.36 7680.58,-2658.09 7680.29,-2648.81 7678,-2627.82"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge284" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7855.48,-3515.89C7807.26,-3493.02 7727.85,-3454.12 7702,-3434.13"/>
<path fill="none" stroke="black" d="M7702,-3432.13C7677.44,-3413.14 7669.86,-3410.06 7642,-3396.36 7602.97,-3377.16 7585.1,-3387.36 7551,-3360.36 7513.18,-3330.41 7519.4,-3308.72 7489,-3271.26 7367.52,-3121.59 7308.09,-3108.69 7194,-2953.31 7136.44,-2874.93 7129.3,-2850.31 7082,-2765.35 7037.41,-2685.25 7061.91,-2635.11 6987,-2582.27 6890.95,-2514.52 6831.25,-2596.54 6725,-2546.27 6719.72,-2543.77 6714.62,-2540.46 6709.86,-2536.78"/>
<polygon fill="#f96210" stroke="black" points="6712.1,-2534.09 6702.2,-2530.32 6707.59,-2539.44 6712.1,-2534.09"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge285" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7702,-3432.13C7644.75,-3382.36 7689.57,-3332.64 7645,-3271.26 7524.13,-3104.83 7445.73,-3108.38 7278,-2989.31 7254.18,-2972.4 7241.12,-2976.23 7223,-2953.31 7195.44,-2918.47 7203.62,-2901.27 7189,-2859.33 7187.66,-2855.5 7098.97,-2585.03 7096,-2582.27 7060.42,-2549.16 6928.41,-2524.06 6848.9,-2511.55"/>
<polygon fill="#f96210" stroke="black" points="6849.42,-2508.09 6839,-2510.01 6848.34,-2515.01 6849.42,-2508.09"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_core_upload_upload -->
<g id="edge286" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7822,-3432.13C7818.44,-3297.79 8192.63,-3136.59 8316,-3083.3 8389.7,-3051.46 8430.05,-3097.11 8493,-3047.3 8623.5,-2944.03 8525.53,-2817.83 8650,-2707.36 8688.79,-2672.94 8730.5,-2713.31 8761,-2671.36 8787.08,-2635.49 8779.19,-2583.12 8768.38,-2546.28"/>
<polygon fill="#f96210" stroke="black" points="8771.59,-2544.84 8765.28,-2536.33 8764.91,-2546.92 8771.59,-2544.84"/>
</g>
<!-- ahriman_core_lazy_logging&#45;&gt;ahriman_models_package -->
<g id="edge287" class="edge">
<title>ahriman_core_lazy_logging&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7855.82,-3515.97C7847.42,-3512.37 7838.49,-3508.81 7830,-3505.9 7768.41,-3484.78 7748.13,-3494.87 7688,-3469.9 7608.6,-3436.91 7438.45,-3295.62 7356,-3271.26 7138.48,-3207.01 6555.59,-3292.01 6336,-3235.26 6280.96,-3221.04 6273.26,-3201.85 6222,-3177.28 6159.58,-3147.36 6100.83,-3179.3 6080,-3113.29"/>
</g>
<!-- ahriman_core_report -->
<g id="node78" class="node">
<title>ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d14d05" stroke="black" cx="5851" cy="-2063.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5851" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="5851" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="5851" y="-2050.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">report</text>
</g>
<!-- ahriman_core_report_console&#45;&gt;ahriman_core_report_report -->
<g id="edge288" class="edge">
<title>ahriman_core_report_console&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4593.86,-2257.69C4610.41,-2250.49 4630.86,-2242.63 4650,-2238.1 4938.83,-2169.71 5298.27,-2164.93 5427.18,-2165.65"/>
<polygon fill="#8a4e2e" stroke="black" points="5427.48,-2169.16 5437.5,-2165.73 5427.53,-2162.16 5427.48,-2169.16"/>
</g>
<!-- ahriman_core_report_email&#45;&gt;ahriman_core_report_report -->
<g id="edge289" class="edge">
<title>ahriman_core_report_email&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5319.54,-2377.12C5368.82,-2366.46 5451.91,-2339.42 5476,-2275.87"/>
<path fill="none" stroke="black" d="M5476,-2273.87C5483.35,-2254.48 5484.32,-2231.68 5483.07,-2212.07"/>
<polygon fill="#7a4528" stroke="black" points="5486.53,-2211.52 5482.2,-2201.85 5479.56,-2212.11 5486.53,-2211.52"/>
</g>
<!-- ahriman_core_report_html&#45;&gt;ahriman_core_report_report -->
<g id="edge290" class="edge">
<title>ahriman_core_report_html&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5469.8,-2347.88C5467.53,-2326.36 5467.33,-2298.73 5476,-2275.87"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_email -->
<g id="edge291" class="edge">
<title>ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_email</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5437.38,-2475.5C5427.84,-2469.4 5417.6,-2462.98 5408,-2457.17 5380.18,-2440.36 5348.36,-2422.24 5323.66,-2408.42"/>
<polygon fill="#8b4118" stroke="black" points="5325.34,-2405.35 5314.9,-2403.53 5321.93,-2411.46 5325.34,-2405.35"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_html -->
<g id="edge292" class="edge">
<title>ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_html</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5476,-2464.87C5476,-2454.24 5476,-2442.45 5476,-2431.27"/>
<polygon fill="#8b4118" stroke="black" points="5479.5,-2431.24 5476,-2421.24 5472.5,-2431.24 5479.5,-2431.24"/>
</g>
<!-- ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_telegram -->
<g id="edge293" class="edge">
<title>ahriman_core_report_jinja_template&#45;&gt;ahriman_core_report_telegram</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5433.32,-2478.72C5415.71,-2470.6 5394.81,-2462.17 5375,-2457.17 5197.21,-2412.3 5146.66,-2437.26 4964,-2421.17 4835.54,-2409.86 4684.13,-2396.43 4608.34,-2389.7"/>
<polygon fill="#8b4118" stroke="black" points="4608.42,-2386.19 4598.15,-2388.79 4607.81,-2393.17 4608.42,-2386.19"/>
</g>
<!-- ahriman_core_report_report&#45;&gt;ahriman_core_report -->
<g id="edge294" 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="M5512.64,-2154.58C5581.46,-2136.27 5729.89,-2096.78 5805.19,-2076.75"/>
<polygon fill="#734126" stroke="black" points="5806.55,-2080.01 5815.31,-2074.06 5804.75,-2073.25 5806.55,-2080.01"/>
</g>
<!-- ahriman_core_report_report_trigger&#45;&gt;ahriman_core_report -->
<g id="edge295" class="edge">
<title>ahriman_core_report_report_trigger&#45;&gt;ahriman_core_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5880.51,-2129.99C5876.24,-2120.53 5871.6,-2110.23 5867.28,-2100.66"/>
<polygon fill="#8a4e2e" stroke="black" points="5870.41,-2099.07 5863.1,-2091.4 5864.03,-2101.95 5870.41,-2099.07"/>
</g>
<!-- ahriman_core_report_telegram&#45;&gt;ahriman_core_report_report -->
<g id="edge296" class="edge">
<title>ahriman_core_report_telegram&#45;&gt;ahriman_core_report_report</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4594.38,-2368.3C4663.17,-2338.69 4823.26,-2272.88 4964,-2238.1 5131.6,-2196.68 5336.37,-2176.98 5427.85,-2169.75"/>
<polygon fill="#7a4528" stroke="black" points="5428.22,-2173.23 5437.92,-2168.97 5427.67,-2166.25 5428.22,-2173.23"/>
</g>
<!-- ahriman_core_repository -->
<g id="node86" class="node">
<title>ahriman_core_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db5105" stroke="black" cx="6701" cy="-1531.43" rx="42.35" ry="28.98"/>
<text text-anchor="middle" x="6701" y="-1539.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6701" y="-1528.93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6701" 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="edge297" 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="M6658.5,-1530.37C6337.6,-1529.59 4291.87,-1518.27 3698,-1356.9 3652.28,-1344.47 3540.85,-1283.77 3471.94,-1244.85"/>
<polygon fill="#db5105" stroke="black" points="3473.35,-1241.63 3462.93,-1239.75 3469.9,-1247.72 3473.35,-1241.63"/>
</g>
<!-- ahriman_core_repository&#45;&gt;ahriman_core_status_watcher -->
<g id="edge298" 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="M6743.8,-1530.6C7043.23,-1531.63 8828.26,-1534.77 9366,-1466.43 9585.98,-1438.48 9841.77,-1365.94 9944.19,-1335.21"/>
<polygon fill="#db5105" stroke="black" points="9945.34,-1338.52 9953.9,-1332.28 9943.32,-1331.82 9945.34,-1338.52"/>
</g>
<!-- ahriman_core_repository_cleaner -->
<g id="node87" class="node">
<title>ahriman_core_repository_cleaner</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b45c2d" stroke="black" cx="6701" cy="-1852.27" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="6701" y="-1866.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6701" y="-1855.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6701" y="-1844.27" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6701" 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="edge299" 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="M6701,-1815.46C6701,-1807.29 6701,-1798.5 6701,-1789.97"/>
<polygon fill="#b45c2d" stroke="black" points="6704.5,-1789.75 6701,-1779.75 6697.5,-1789.75 6704.5,-1789.75"/>
</g>
<!-- ahriman_core_repository_cleaner&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge300" 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="M6657.82,-1844.86C6536.14,-1826.81 6189.76,-1775.43 6043.01,-1753.67"/>
<polygon fill="#b45c2d" stroke="black" points="6043.2,-1750.16 6032.8,-1752.15 6042.18,-1757.08 6043.2,-1750.16"/>
</g>
<!-- ahriman_core_repository_repository -->
<g id="node89" class="node">
<title>ahriman_core_repository_repository</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="6701" cy="-1633.19" rx="43.68" ry="36.54"/>
<text text-anchor="middle" x="6701" y="-1647.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6701" y="-1636.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6701" y="-1625.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">repository.</text>
<text text-anchor="middle" x="6701" 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="edge301" 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="M6701,-1705.92C6701,-1697.75 6701,-1688.96 6701,-1680.43"/>
<polygon fill="#734126" stroke="black" points="6704.5,-1680.21 6701,-1670.21 6697.5,-1680.21 6704.5,-1680.21"/>
</g>
<!-- ahriman_core_repository_repository&#45;&gt;ahriman_core_repository -->
<g id="edge302" 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="M6701,-1596.17C6701,-1587.93 6701,-1579.14 6701,-1570.8"/>
<polygon fill="#8a4e2e" stroke="black" points="6704.5,-1570.56 6701,-1560.56 6697.5,-1570.56 6704.5,-1570.56"/>
</g>
<!-- ahriman_core_repository_repository_properties&#45;&gt;ahriman_core_repository_cleaner -->
<g id="edge303" 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="M7230.4,-1947.99C7108.13,-1926.11 6861.84,-1882.05 6753.82,-1862.72"/>
<polygon fill="#734126" stroke="black" points="6754.27,-1859.24 6743.81,-1860.92 6753.03,-1866.13 6754.27,-1859.24"/>
</g>
<!-- ahriman_core_repository_update_handler&#45;&gt;ahriman_core_repository_repository -->
<g id="edge304" 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="M6019.02,-1717.61C6028.64,-1713.09 6038.97,-1708.87 6049,-1705.96 6264.02,-1643.52 6533.34,-1634.65 6646.73,-1633.9"/>
<polygon fill="#824a2b" stroke="black" points="6646.9,-1637.4 6656.89,-1633.85 6646.87,-1630.4 6646.9,-1637.4"/>
</g>
<!-- ahriman_core_sign -->
<g id="node92" class="node">
<title>ahriman_core_sign</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce6f3b" stroke="black" cx="5548" cy="-2736.36" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="5548" y="-2744.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="5548" y="-2733.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="5548" y="-2722.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">sign</text>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge305" 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="M5516,-2720.12C5484.15,-2702.46 5440.48,-2670.27 5444,-2627.82"/>
</g>
<!-- ahriman_core_sign&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge306" 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="M5550.48,-2707.35C5554.12,-2675.71 5562.7,-2623.29 5582,-2582.27 5590.63,-2563.93 5598.93,-2563.25 5610,-2546.27 5725.13,-2369.6 5660.32,-2246.68 5835,-2128.56 5892.7,-2089.54 6910.41,-1997.25 7215.96,-1970.31"/>
<polygon fill="#ce6f3b" stroke="black" points="7216.44,-1973.78 7226.09,-1969.42 7215.83,-1966.81 7216.44,-1973.78"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge307" 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="M6535.89,-3312.89C6415.08,-3306.36 6042.08,-3282.76 5932,-3235.26 5802.75,-3179.49 5451.7,-2971.9 5444,-2831.34"/>
</g>
<!-- ahriman_core_sign_gpg&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge308" 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="M6612.21,-3310.88C6657.48,-3304.01 6731.37,-3285.36 6768,-3235.26 6853.93,-3117.74 6768.22,-2717.95 6821,-2582.27 6828.35,-2563.38 6840.47,-2564.66 6849,-2546.27 6900.69,-2434.86 6797.06,-2332.58 6906,-2275.87"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_application_handlers_web -->
<g id="edge309" 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="M10074.23,-2895.04C10076.64,-2876.13 10081.64,-2851.19 10092,-2831.34"/>
<path fill="none" stroke="black" d="M10092,-2829.34C10168.63,-2682.54 10152.85,-2617.13 10110,-2457.17 10108.79,-2452.67 10027.67,-2315.99 10026,-2311.63 9927.9,-2055.09 9772,-1376.71 9772,-1102.05 9772,-1102.05 9772,-1102.05 9772,-990.51 9772,-887.12 9723.92,-849.41 9772,-757.87"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_views_base -->
<g id="edge310" 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="M10101.46,-2905.68C10159.09,-2869.52 10286.66,-2781.09 10350,-2671.36 10449.96,-2498.21 10373.49,-2412.64 10471,-2238.1 10630.02,-1953.45 10722.76,-1911.34 10976,-1705.96 11043.22,-1651.44 11059.83,-1635.61 11137,-1596.42 11179.49,-1574.84 11203.33,-1593.11 11238,-1560.42 11360.54,-1444.89 11390.61,-1379.94 11386,-1211.59"/>
<path fill="none" stroke="black" d="M11386,-1209.59C11381.9,-1161.97 11382.6,-1149.72 11386,-1102.05"/>
</g>
<!-- ahriman_core_spawn&#45;&gt;ahriman_web_web -->
<g id="edge311" 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="M10092,-2829.34C10100.5,-2815.33 10103.26,-2811.66 10116,-2801.35 10141.97,-2780.32 10164.94,-2794.08 10182,-2765.35 10210.06,-2718.07 10221.4,-2717.5 10148,-2457.17 10109.67,-2321.24 10020,-2307.56 10020,-2166.33 10020,-2166.33 10020,-2166.33 10020,-1851.27 10020,-1467.22 9649.05,-1260.64 9924,-992.51"/>
<path fill="none" stroke="black" d="M9924,-990.51C9936.83,-976.3 9933.52,-967.27 9948,-954.74 10009.86,-901.2 10055.12,-931.99 10114,-875.19"/>
<path fill="none" stroke="black" d="M10114,-873.19C10133.58,-854.31 10135.83,-846.72 10157,-829.64 10203.31,-792.29 10251.65,-814.47 10270,-757.87"/>
<path fill="none" stroke="black" d="M10270,-755.87C10284.74,-710.41 10230.25,-674.88 10270,-648.34"/>
</g>
<!-- ahriman_core_status -->
<g id="node95" class="node">
<title>ahriman_core_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="11920" cy="-2274.87" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="11920" y="-2283.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="11920" y="-2272.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">core.</text>
<text text-anchor="middle" x="11920" y="-2261.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">status</text>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_application_lock -->
<g id="edge312" 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="M11945.99,-2253.57C11954.01,-2247.98 11963.08,-2242.31 11972,-2238.1 12011.73,-2219.32 12309.77,-2140.7 12352,-2128.56 12410.66,-2111.69 12478.01,-2092.37 12523.21,-2079.41"/>
<polygon fill="#f96210" stroke="black" points="12524.42,-2082.7 12533.07,-2076.58 12522.5,-2075.97 12524.42,-2082.7"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge313" 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="M11882.36,-2269.88C11808.03,-2262.18 11637.13,-2245.42 11493,-2238.1 11047.28,-2215.46 9929.36,-2243.63 9485,-2202.1 9042.86,-2160.77 8941.17,-2085.15 8500,-2034.57 8085.69,-1987.07 7586.95,-1969.98 7389.03,-1964.78"/>
<polygon fill="#f96210" stroke="black" points="7389.07,-1961.28 7378.99,-1964.52 7388.89,-1968.28 7389.07,-1961.28"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_views_base -->
<g id="edge314" 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="M11917.81,-2245.79C11914.86,-2205.64 11910,-2129.5 11910,-2064.57 11910,-2064.57 11910,-2064.57 11910,-1960.8 11910,-1756.24 11780.48,-1740.26 11683,-1560.42 11577.24,-1365.32 11457.4,-1128.66 11409.94,-1034.28"/>
<polygon fill="#f96210" stroke="black" points="11412.93,-1032.44 11405.31,-1025.07 11406.67,-1035.58 11412.93,-1032.44"/>
</g>
<!-- ahriman_core_status&#45;&gt;ahriman_web_web -->
<g id="edge315" 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="M11933.96,-2247.75C11959.53,-2199.39 12014.86,-2092.25 12054,-1998.57 12170.58,-1719.59 12210.09,-1651.06 12280,-1356.9 12304.95,-1251.89 12271.92,-957.28 12342,-875.19"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_application_lock -->
<g id="edge316" 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="M7376.48,-2382.77C7592.67,-2379.21 8678.16,-2361.4 9565,-2347.63 9698.44,-2345.56 11838.9,-2349.06 11967,-2311.63 12026.68,-2294.2 12028.62,-2262.04 12086,-2238.1 12148.87,-2211.86 12170.13,-2222.93 12235,-2202.1 12342.48,-2167.58 12464.15,-2114.92 12528.81,-2085.79"/>
<polygon fill="#93451a" stroke="black" points="12530.26,-2088.98 12537.93,-2081.67 12527.38,-2082.6 12530.26,-2088.98"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge317" 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="M7320.18,-2351.81C7310.19,-2330.83 7300.07,-2302.37 7302,-2275.87"/>
</g>
<!-- ahriman_core_status_client&#45;&gt;ahriman_core_status_web_client -->
<g id="edge318" 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="M7352.76,-2339.31C7354.86,-2333.03 7357.03,-2326.57 7359.13,-2320.28"/>
<polygon fill="#93451a" stroke="black" points="7349.35,-2338.49 7349.49,-2349.08 7355.98,-2340.71 7349.35,-2338.49"/>
<polygon fill="#93451a" stroke="black" points="7362.52,-2321.19 7362.37,-2310.6 7355.88,-2318.97 7362.52,-2321.19"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_views_base -->
<g id="edge319" 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="M10028.28,-1319.43C10209.99,-1320.47 10986.21,-1320.51 11215,-1247.36 11243.49,-1238.25 11245.74,-1225.91 11272,-1211.59"/>
<path fill="none" stroke="black" d="M11272,-1209.59C11288.81,-1200.42 11283.03,-1187.9 11296,-1173.82 11330.66,-1136.19 11382.36,-1153.08 11386,-1102.05"/>
<path fill="none" stroke="black" d="M11386,-1100.05C11387.44,-1079.93 11388.19,-1057.64 11388.59,-1038.6"/>
<polygon fill="#834320" stroke="black" points="11392.09,-1038.46 11388.78,-1028.39 11385.1,-1038.33 11392.09,-1038.46"/>
</g>
<!-- ahriman_core_status_watcher&#45;&gt;ahriman_web_web -->
<g id="edge320" 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="M9969.05,-1288.87C9927.74,-1225.16 9846.23,-1076.21 9924,-992.51"/>
</g>
<!-- ahriman_core_tree&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge322" 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="M3002.19,-2034.49C3005.14,-1994.34 3010,-1918.2 3010,-1853.27 3010,-1853.27 3010,-1853.27 3010,-1632.19 3010,-1542.62 2987.38,-1517.33 3010,-1430.67"/>
</g>
<!-- ahriman_core_triggers -->
<g id="node100" class="node">
<title>ahriman_core_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#cc4f0a" stroke="black" cx="6802" cy="-2384.4" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="6802" y="-2392.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="6802" y="-2381.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="6802" y="-2370.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">triggers</text>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge323" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6765.92,-2374.76C6627.25,-2341.53 6127.65,-2221.83 5955.1,-2180.49"/>
<polygon fill="#cc4f0a" stroke="black" points="5955.73,-2177.04 5945.19,-2178.11 5954.1,-2183.85 5955.73,-2177.04"/>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge324" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_core_repository_repository_properties</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6819.01,-2357.95C6837.34,-2332.73 6868.91,-2295.18 6906,-2275.87"/>
</g>
<!-- ahriman_core_triggers&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge325" class="edge">
<title>ahriman_core_triggers&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6827.86,-2362.82C6835.88,-2357.23 6844.98,-2351.62 6854,-2347.63 7048.97,-2261.39 7110.17,-2269.7 7321,-2238.1 7698,-2181.59 8156.64,-2169.56 8323.44,-2167.01"/>
<polygon fill="#cc4f0a" stroke="black" points="8323.59,-2170.51 8333.53,-2166.86 8323.48,-2163.51 8323.59,-2170.51"/>
</g>
<!-- ahriman_core_triggers_trigger&#45;&gt;ahriman_core_triggers -->
<g id="edge326" class="edge">
<title>ahriman_core_triggers_trigger&#45;&gt;ahriman_core_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6705.21,-2475.41C6724.56,-2457.43 6750.58,-2433.22 6770.77,-2414.45"/>
<polygon fill="#915230" stroke="black" points="6773.26,-2416.91 6778.2,-2407.54 6768.49,-2411.79 6773.26,-2416.91"/>
</g>
<!-- ahriman_core_triggers_trigger_loader&#45;&gt;ahriman_core_triggers -->
<g id="edge327" class="edge">
<title>ahriman_core_triggers_trigger_loader&#45;&gt;ahriman_core_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6791.66,-2464.87C6793.36,-2451.82 6795.28,-2437.04 6797.01,-2423.78"/>
<polygon fill="#824a2b" stroke="black" points="6800.52,-2423.92 6798.34,-2413.55 6793.58,-2423.01 6800.52,-2423.92"/>
</g>
<!-- ahriman_core_upload -->
<g id="node103" class="node">
<title>ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#d14d05" stroke="black" cx="8453" cy="-2063.57" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="8453" y="-2072.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="8453" y="-2061.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">core.</text>
<text text-anchor="middle" x="8453" y="-2050.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">upload</text>
</g>
<!-- ahriman_core_upload_github&#45;&gt;ahriman_core_upload_upload -->
<g id="edge328" class="edge">
<title>ahriman_core_upload_github&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9019.06,-2611.58C8963.94,-2589.11 8856.86,-2545.46 8796.38,-2520.81"/>
<polygon fill="#824a2b" stroke="black" points="8797.67,-2517.56 8787.09,-2517.02 8795.03,-2524.04 8797.67,-2517.56"/>
</g>
<!-- ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload_github -->
<g id="edge329" class="edge">
<title>ahriman_core_upload_http_upload&#45;&gt;ahriman_core_upload_github</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9208.06,-3399.23C9187.09,-3361.12 9154.14,-3295.79 9138,-3235.26 9088.09,-3048.05 9202.82,-2962.99 9096,-2801.35 9077.58,-2773.47 9047.06,-2794.08 9030,-2765.35 9012.71,-2736.23 9021.44,-2697.93 9032.94,-2669.15"/>
<polygon fill="#995733" stroke="black" points="9036.23,-2670.35 9036.91,-2659.78 9029.79,-2667.62 9036.23,-2670.35"/>
</g>
<!-- ahriman_core_upload_rsync&#45;&gt;ahriman_core_upload_upload -->
<g id="edge330" class="edge">
<title>ahriman_core_upload_rsync&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8856.97,-2600.61C8836.59,-2581.61 8808.5,-2555.41 8786.5,-2534.89"/>
<polygon fill="#915230" stroke="black" points="8788.7,-2532.16 8778.99,-2527.9 8783.92,-2537.28 8788.7,-2532.16"/>
</g>
<!-- ahriman_core_upload_s3&#45;&gt;ahriman_core_upload_upload -->
<g id="edge331" class="edge">
<title>ahriman_core_upload_s3&#45;&gt;ahriman_core_upload_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8724.69,-2591.2C8728.93,-2577.45 8733.87,-2561.46 8738.36,-2546.89"/>
<polygon fill="#8a4e2e" stroke="black" points="8741.79,-2547.67 8741.39,-2537.08 8735.1,-2545.6 8741.79,-2547.67"/>
</g>
<!-- ahriman_core_upload_upload&#45;&gt;ahriman_core_upload -->
<g id="edge332" 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="M8731.21,-2470.4C8677.16,-2391.55 8532.5,-2180.54 8476.03,-2098.16"/>
<polygon fill="#734126" stroke="black" points="8478.76,-2095.95 8470.22,-2089.68 8472.99,-2099.91 8478.76,-2095.95"/>
</g>
<!-- ahriman_core_upload_upload_trigger&#45;&gt;ahriman_core_upload -->
<g id="edge333" class="edge">
<title>ahriman_core_upload_upload_trigger&#45;&gt;ahriman_core_upload</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M8409.46,-2131.38C8416.34,-2120.83 8423.96,-2109.13 8430.88,-2098.51"/>
<polygon fill="#8a4e2e" stroke="black" points="8433.97,-2100.18 8436.5,-2089.89 8428.11,-2096.36 8433.97,-2100.18"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_ahriman -->
<g id="edge334" class="edge">
<title>ahriman_core_util&#45;&gt;ahriman_application_ahriman</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7380.25,-3815.44C7677.58,-3812.25 9614.44,-3790.13 9871,-3751.84 11027.99,-3579.18 11345.59,-3539.07 12407,-3047.3 12870.19,-2832.69 13144,-2676.81 13144,-2166.33 13144,-2166.33 13144,-2166.33 13144,-1851.27 13144,-1749.04 13204.5,-1735.23 13220,-1634.19"/>
<path fill="none" stroke="black" d="M13220,-1632.19C13239.39,-1396.76 13187.28,-1338.21 13182,-1102.05"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge335" 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="M7305.95,-3806.74C7278.27,-3800.2 7238.98,-3791.84 7204,-3787.84 6620.9,-3721.26 6469.74,-3788.46 5884,-3751.84 5192.27,-3708.6 5022.59,-3658.54 4332,-3599.88 4276.5,-3595.16 3878.59,-3594.4 3832,-3563.88 3777.54,-3528.2 3764,-3499.23 3764,-3434.13 3764,-3434.13 3764,-3434.13 3764,-2923.32 3764,-2822.7 3769.33,-2786.09 3832,-2707.36 3848.17,-2687.05 3865.01,-2693.84 3878,-2671.36 3915.88,-2605.82 3902,-2578.43 3902,-2502.72 3902,-2502.72 3902,-2502.72 3902,-2383.4 3902,-2081.58 3674,-2045.55 3674,-1743.73 3674,-1743.73 3674,-1743.73 3674,-1632.19 3674,-1484.95 3602.4,-1462.13 3560,-1321.13"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_application_lock -->
<g id="edge336" 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="M7380.22,-3815.61C7669.12,-3813.83 9504.81,-3800.61 9746,-3751.84 10171.6,-3665.79 10244.89,-3536.09 10656,-3396.36 11182.3,-3217.48 11331.86,-3229.54 11857,-3047.3 11921.79,-3024.81 11934.37,-3009.23 12000,-2989.31 12075.57,-2966.38 12107.57,-2996.02 12174,-2953.31 12382.8,-2819.08 12451.34,-2745.3 12504,-2502.72"/>
<path fill="none" stroke="black" d="M12504,-2500.72C12511.32,-2398.41 12545.76,-2377.93 12556,-2275.87"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge337" 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="M9283,-3533.89C9303.89,-3475.28 9330.95,-3409.04 9349.3,-3365.32"/>
<polygon fill="#c74905" stroke="black" points="9352.54,-3366.64 9353.2,-3356.07 9346.09,-3363.93 9352.54,-3366.64"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge338" 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="M7338.39,-3787.6C7336.91,-3769.16 7336.61,-3744.73 7342,-3723.85"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge339" 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="M9378,-3432.13C9380.17,-3413.79 9408.54,-3378.15 9432.11,-3351.32"/>
<polygon fill="#c74905" stroke="black" points="9434.89,-3353.46 9438.92,-3343.66 9429.66,-3348.81 9434.89,-3353.46"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge340" 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="M7305.96,-3806.72C7278.27,-3800.16 7238.98,-3791.8 7204,-3787.84 6574.93,-3716.65 6412.43,-3780.8 5780,-3751.84 5149.5,-3722.98 4991.53,-3715.45 4363,-3657.86 4273.54,-3649.67 3638.16,-3608.17 3560,-3563.88 3478.24,-3517.55 3489.28,-3470.07 3431,-3396.36 3340.45,-3281.82 3272.81,-3278.88 3224,-3141.28 3178.89,-3014.11 3037.53,-2953.78 3269,-2707.36 3329.64,-2642.81 3395.61,-2726.4 3465,-2671.36 3481.54,-2658.24 3471.31,-2644.69 3484,-2627.82"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge341" 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="M9207,-3627.87C9184.71,-3584.14 9263.35,-3599.61 9297,-3563.88 9343.61,-3514.39 9370.01,-3501.64 9378,-3434.13"/>
<path fill="none" stroke="black" d="M9378,-3432.13C9388.85,-3393.43 9341.05,-3396.26 9323,-3360.36 9161.45,-3039.07 9219.58,-2921.77 9101,-2582.27 9075.43,-2509.06 9059.4,-2494.44 9034,-2421.17 9027.26,-2401.73 8928.14,-2084.29 8934,-2064.57"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge342" 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="M7305.96,-3806.64C7278.28,-3800.04 7239,-3791.66 7204,-3787.84 6738.69,-3737.11 5565.4,-3776.9 5098,-3751.84 4634.12,-3726.97 4519.66,-3699.67 4057,-3657.86 3595.22,-3616.13 3447.54,-3738.46 3018,-3563.88 2861.02,-3500.08 2560.49,-3186.37 2426,-3083.3 2312.83,-2996.56 2291.35,-2963.29 2166,-2895.33 1961.68,-2784.55 1901.59,-2770.81 1678,-2707.36 1594.48,-2683.66 1565.01,-2707.36 1486,-2671.36 1480.11,-2668.68 1474.29,-2665.23 1468.77,-2661.46"/>
<polygon fill="#c74905" stroke="black" points="1470.52,-2658.39 1460.38,-2655.31 1466.38,-2664.04 1470.52,-2658.39"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_email -->
<g id="edge343" 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="M7305.91,-3807.13C7278.2,-3800.78 7238.89,-3792.5 7204,-3787.84 6961.19,-3755.42 6897,-3782.85 6654,-3751.84 6517.56,-3734.43 6486.53,-3710.55 6350,-3693.86 6204.86,-3676.12 5827.96,-3714.12 5693,-3657.86 5511.04,-3582.01 5469.6,-3526.83 5364,-3360.36 5319.49,-3290.18 5322.78,-3260.32 5326,-3177.28 5336.9,-2896.2 5364.1,-2827.35 5375,-2546.27 5376.53,-2506.7 5392.46,-2492.71 5375,-2457.17 5364.39,-2435.59 5343.82,-2418.66 5324.72,-2406.68"/>
<polygon fill="#c74905" stroke="black" points="5326.46,-2403.64 5316.08,-2401.52 5322.87,-2409.65 5326.46,-2403.64"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge344" 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="M7305.91,-3807.09C7278.2,-3800.73 7238.9,-3792.45 7204,-3787.84 6948.82,-3754.18 6882.54,-3772.75 6626,-3751.84 6619.51,-3751.32 5699.02,-3660.34 5693,-3657.86 5498.86,-3577.88 5416.35,-3549.9 5326,-3360.36 5308.96,-3324.61 5321.33,-3310.58 5326,-3271.26 5341.22,-3143.26 5359.42,-3113.49 5394,-2989.31 5413.76,-2918.37 5433.97,-2904.3 5444,-2831.34"/>
<path fill="none" stroke="black" d="M5444,-2829.34C5442.91,-2788.47 5431.61,-2776.32 5444,-2737.36"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_report_telegram -->
<g id="edge345" 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="M7305.93,-3806.92C7278.24,-3800.46 7238.94,-3792.14 7204,-3787.84 6848.1,-3744.07 6755.48,-3779.96 6398,-3751.84 6168.81,-3733.82 6113.22,-3711.48 5884,-3693.86 5786.98,-3686.4 5091.4,-3709.62 5009,-3657.86 4832.72,-3547.12 4487.82,-3023.46 4568,-2831.34"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_executor -->
<g id="edge346" 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="M9207,-3721.85C9249.9,-3562.1 9412.82,-3664.65 9544,-3563.88 9587.27,-3530.64 9604.31,-3521.16 9623,-3469.9 9654.54,-3383.37 9622.62,-3342.29 9564,-3271.26 9488.29,-3179.53 9348,-3232.22 9348,-3113.29 9348,-3113.29 9348,-3113.29 9348,-3017.3 9348,-2898.39 9287.25,-2880.6 9258,-2765.35 9157.74,-2370.26 9274.55,-2245.03 9162,-1853.27"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository -->
<g id="edge347" 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="M7380.27,-3815.31C7631,-3811.74 9034.77,-3790.16 9221,-3751.84 9446.22,-3705.5 9573.27,-3753.72 9703,-3563.88 9742.42,-3506.2 9709.97,-3470.38 9638,-3271.26 9554.17,-3039.32 9481.57,-3001.36 9410,-2765.35 9305.06,-2419.29 9367.32,-2312.71 9276,-1962.8"/>
<path fill="none" stroke="black" d="M9276,-1960.8C9265.57,-1926.63 9232.7,-1847.85 9176,-1815.5 8790.31,-1595.4 7625.87,-1702.56 7183,-1669.96 7027.64,-1658.52 6844.13,-1644.86 6755,-1638.22"/>
<polygon fill="#c74905" stroke="black" points="6755.09,-1634.71 6744.86,-1637.46 6754.57,-1641.69 6755.09,-1634.71"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_repository_repository_properties -->
<g id="edge348" 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="M9207,-3721.85C9217.6,-3682.37 9225.56,-3666.29 9207,-3629.87"/>
<path fill="none" stroke="black" d="M9207,-3627.87C9168.81,-3552.94 8916.66,-3579.35 8834,-3563.88 8772.49,-3552.37 8751.42,-3564.96 8696,-3535.89"/>
<path fill="none" stroke="black" d="M8696,-3533.89C8531.69,-3447.71 8207.02,-3101.97 8096,-2953.31 8057.55,-2901.83 7989.03,-2753.2 7944,-2707.36 7923.26,-2686.26 7902.18,-2697.33 7888,-2671.36 7845.86,-2594.18 7957.86,-2343.79 7902,-2275.87"/>
<path fill="none" stroke="black" d="M7902,-2273.87C7804.96,-2179.35 7239.55,-2286.53 7302,-2166.33"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge349" 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="M7309.83,-3801.18C7283.57,-3788.87 7245.75,-3770.38 7214,-3751.84 7174.19,-3728.6 7166.33,-3719.47 7128,-3693.86 7002.14,-3609.78 6979.53,-3573.29 6844,-3505.9 6757.94,-3463.1 6707.67,-3502.38 6640,-3434.13"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_status_web_client -->
<g id="edge350" 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="M8620,-3627.87C8565.74,-3617.48 8628.68,-3550.45 8596,-3505.9 8576.24,-3478.95 8559.04,-3486.42 8530,-3469.9 8474.31,-3438.21 8466.2,-3418.3 8406,-3396.36 8313.74,-3362.73 8273.46,-3408.73 8188,-3360.36 8029.11,-3270.42 8016.54,-3203.5 7922,-3047.3 7864.73,-2952.67 7837.78,-2901.84 7884,-2801.35 7894.27,-2779.01 7915.73,-2787.68 7926,-2765.35 7936.77,-2741.94 7939.78,-2729.14 7926,-2707.36 7906.01,-2675.78 7872.17,-2701.46 7850,-2671.36 7805.1,-2610.41 7843.77,-2576.31 7826,-2502.72"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_github -->
<g id="edge351" 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="M9207,-3627.87C9077.09,-3362.21 9106.53,-3272.09 9020,-2989.31 8994.34,-2905.46 8992.01,-2882.99 8960,-2801.35 8948.53,-2772.1 8928.15,-2768.71 8930,-2737.36"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge352" 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="M9207,-3627.87C9183.7,-3580.23 9265.19,-3585.84 9283,-3535.89"/>
<path fill="none" stroke="black" d="M9283,-3533.89C9291.05,-3511.3 9279.05,-3487.82 9264.12,-3469.32"/>
<polygon fill="#c74905" stroke="black" points="9266.76,-3467.03 9257.59,-3461.72 9261.45,-3471.59 9266.76,-3467.03"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge353" 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="M8886,-3533.89C8853.97,-3503.31 8860.13,-2781.22 8854,-2737.36"/>
<path fill="none" stroke="black" d="M8854,-2735.36C8850.84,-2713.36 8856.52,-2689.5 8863.77,-2669.86"/>
<polygon fill="#c74905" stroke="black" points="8867.13,-2670.88 8867.54,-2660.29 8860.61,-2668.31 8867.13,-2670.88"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge354" 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="M9207,-3627.87C9141.81,-3494.55 8994.68,-3636.95 8886,-3535.89"/>
<path fill="none" stroke="black" d="M8886,-3533.89C8865.88,-3515.18 8626,-3140.76 8626,-3113.29 8626,-3113.29 8626,-3113.29 8626,-2923.32 8626,-2840.67 8613.95,-2819.12 8626,-2737.36"/>
<path fill="none" stroke="black" d="M8626,-2735.36C8630.96,-2703.73 8654.42,-2675.99 8675.87,-2656.62"/>
<polygon fill="#c74905" stroke="black" points="8678.39,-2659.06 8683.65,-2649.86 8673.8,-2653.78 8678.39,-2659.06"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_aur_package -->
<g id="edge355" 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="M7305.45,-3808.1C7277.67,-3802.3 7238.48,-3794.29 7204,-3787.84 6960.23,-3742.31 6900.2,-3723.57 6654,-3693.86 6339.28,-3655.89 5959.79,-3637.99 5814.06,-3632.13"/>
<polygon fill="#c74905" stroke="black" points="5814.1,-3628.63 5803.97,-3631.73 5813.82,-3635.63 5814.1,-3628.63"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_build_status -->
<g id="edge356" 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="M7778,-3533.89C7613.33,-3445.41 7742.31,-3296.78 7778,-3113.29"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_counters -->
<g id="edge357" 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="M8696,-3533.89C8639.04,-3498.52 8668.6,-3453.79 8634,-3396.36 8623.54,-3379 8617.4,-3377.12 8606,-3360.36 8515.09,-3226.73 8463.62,-3203.19 8421,-3047.3 8403.41,-2982.97 8436.97,-2908.25 8461.2,-2865.71"/>
<polygon fill="#c74905" stroke="black" points="8464.33,-2867.28 8466.36,-2856.88 8458.29,-2863.75 8464.33,-2867.28"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package -->
<g id="edge358" 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="M7326.47,-3789.88C7293.94,-3735.78 7220.3,-3614.69 7204,-3599.88 7056.94,-3466.29 6985.09,-3482.38 6806,-3396.36 6770.85,-3379.48 6756.87,-3384.17 6726,-3360.36 6685.69,-3329.26 6698.99,-3295.09 6654,-3271.26 6483.75,-3181.08 6399.72,-3309.65 6222,-3235.26 6212.41,-3231.25 6082.77,-3123.31 6080,-3113.29"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_description -->
<g id="edge359" 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="M7368.17,-3795.67C7373.48,-3792.5 7379.22,-3789.67 7385,-3787.84 7481.58,-3757.32 9180.73,-3821.67 9207,-3723.85"/>
<path fill="none" stroke="black" d="M9207,-3721.85C9215.56,-3689.97 8652.42,-3636.08 8620,-3629.87"/>
<path fill="none" stroke="black" d="M8620,-3627.87C8440.92,-3593.58 7964.56,-3646.46 7802,-3563.88 7787.39,-3556.46 7793.09,-3542.29 7778,-3535.89"/>
<path fill="none" stroke="black" d="M7778,-3533.89C7650.1,-3479.64 7624.63,-3449.41 7518,-3360.36 7475.76,-3325.08 7475.76,-3304.64 7432,-3271.26 7299.27,-3170.02 7120.7,-3084.76 7029.67,-3044.37"/>
<polygon fill="#c74905" stroke="black" points="7030.9,-3041.09 7020.34,-3040.26 7028.08,-3047.5 7030.9,-3041.09"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_package_source -->
<g id="edge360" 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="M7336.3,-3787.82C7322.96,-3728.72 7284.57,-3589.81 7204,-3505.9 7041.21,-3336.33 6954.92,-3339.58 6730,-3271.26 6612.06,-3235.43 6554.46,-3308.07 6455,-3235.26 6427.7,-3215.28 6413.05,-3178.91 6405.47,-3151.06"/>
<polygon fill="#c74905" stroke="black" points="6408.83,-3150.07 6402.99,-3141.24 6402.05,-3151.79 6408.83,-3150.07"/>
</g>
<!-- ahriman_core_util&#45;&gt;ahriman_models_remote_source -->
<g id="edge361" 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="M7364.79,-3793.43C7375.22,-3781.93 7386.83,-3767.14 7394,-3751.84 7417.45,-3701.82 7418,-3685.12 7418,-3629.87 7418,-3629.87 7418,-3629.87 7418,-3432.13 7418,-3349.09 7394.03,-3314.27 7323,-3271.26 7190.14,-3190.82 6768.68,-3294.24 6625,-3235.26 6606.15,-3227.52 6495.37,-3132.29 6488,-3113.29"/>
</g>
<!-- ahriman_models -->
<g id="node111" class="node">
<title>ahriman_models</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="7190" cy="-3982.82" rx="50.75" ry="18"/>
<text text-anchor="middle" x="7190" y="-3980.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.models</text>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_ahriman -->
<g id="edge362" 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="M7145.32,-3974.18C7103.12,-3967.35 7037.97,-3957.83 6981,-3953.83 6434.89,-3915.41 2596.2,-3993.53 2054,-3917.83 2039.16,-3915.75 1806.59,-3853.97 1794,-3845.83 1748.42,-3816.35 1748.26,-3795.5 1716,-3751.84 1697.69,-3727.07 1702.3,-3712.8 1678,-3693.86 1639.42,-3663.8 1612.76,-3687.69 1574,-3657.86 1549.39,-3638.92 1559.52,-3618.93 1535,-3599.88 1497.37,-3570.64 1478.05,-3582.06 1434,-3563.88 1237.8,-3482.93 1188.86,-3461.01 1002,-3360.36 625.66,-3157.63 527.14,-3110.16 181,-2859.33 113.36,-2810.31 38,-2820.89 38,-2737.36 38,-2737.36 38,-2737.36 38,-1428.67 38,-1360.65 62.97,-1347.35 86,-1283.36 97.6,-1251.14 107.97,-1245.29 114,-1211.59"/>
<path fill="none" stroke="black" d="M114,-1209.59C124.59,-1113.69 114,-1088.99 114,-992.51 114,-992.51 114,-992.51 114,-873.19 114,-558.97 334.16,-533.41 398,-225.74"/>
<path fill="none" stroke="black" d="M398,-223.74C399.73,-204.67 405.43,-197.56 422,-187.97 616.28,-75.41 2274.88,-37.5 2604.99,-31.04"/>
<polygon fill="#f96210" stroke="black" points="2605.35,-34.53 2615.28,-30.84 2605.21,-27.53 2605.35,-34.53"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application -->
<g id="edge363" 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="M2880,-3721.85C2824.83,-3680.84 2668,-2571.47 2668,-2502.72 2668,-2502.72 2668,-2502.72 2668,-2273.87 2668,-2067.72 2701.98,-2018.29 2739,-1815.5 2770.39,-1643.55 2820,-1605.45 2820,-1430.67 2820,-1430.67 2820,-1430.67 2820,-1209.59 2820,-1115.93 2922.28,-1048.2 2985.75,-1015.19"/>
<polygon fill="#f96210" stroke="black" points="2987.49,-1018.23 2994.81,-1010.57 2984.31,-1011.99 2987.49,-1018.23"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge364" 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="M4128,-3815.84C4070.17,-3785.93 4062.7,-3767.06 4014,-3723.85"/>
<path fill="none" stroke="black" d="M4014,-3721.85C3974.05,-3686.41 3590.95,-3607.41 3560,-3563.88 3545.07,-3542.87 3554.82,-3531.14 3560,-3505.9 3589.04,-3364.44 3688,-3351.67 3688,-3207.27 3688,-3207.27 3688,-3207.27 3688,-3111.29 3688,-2957.5 3681.78,-2919.13 3680,-2765.35 3679.7,-2739.58 3677.19,-2732.98 3680,-2707.36 3681.79,-2691.07 3686.21,-2687.66 3688,-2671.36 3692.32,-2632 3691.2,-2621.74 3688,-2582.27 3670.16,-2362.46 3638.7,-2310.94 3608,-2092.56 3595.32,-2002.36 3591.72,-1979.79 3584,-1889.03 3566.71,-1685.77 3549.02,-1634.37 3560,-1430.67"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge365" 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="M7145.31,-3974.33C7103.1,-3967.61 7037.94,-3958.16 6981,-3953.83 6129.53,-3889.04 5913.18,-3953.52 5060,-3917.83 4813.47,-3907.51 4165.17,-3970.09 3952,-3845.83 3925.38,-3830.31 3940.65,-3803.31 3914,-3787.84 3800.39,-3721.92 3449.64,-3790.16 3324,-3751.84 3153.57,-3699.87 3108.22,-3634.08 3039,-3469.9 2980.8,-3331.85 2985.52,-3289.53 2964,-3141.28 2951.92,-3058.04 2951.49,-3036.89 2942,-2953.31 2911.6,-2685.49 2869.37,-2613.94 2911,-2347.63 2916.17,-2314.54 2925.08,-2308.15 2934,-2275.87"/>
<path fill="none" stroke="black" d="M2934,-2273.87C2943.41,-2181.32 2934,-2157.59 2934,-2064.57 2934,-2064.57 2934,-2064.57 2934,-1960.8 2934,-1865.24 2827.67,-1599.25 2896,-1532.43"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge366" 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="M7238.46,-3977.53C7314.24,-3971.04 7465.44,-3958.92 7594,-3953.83 7990.26,-3938.11 10770.92,-3977.39 11163,-3917.83 11273.1,-3901.1 11300.89,-3890.28 11403,-3845.83 11554.58,-3779.84 11587.47,-3751.09 11724,-3657.86 11854.49,-3568.76 12768.04,-2890.23 12808,-2737.36"/>
<path fill="none" stroke="black" d="M12808,-2735.36C12877.43,-2445.08 12874.95,-2360.98 12840,-2064.57"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge367" 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="M7145.32,-3974.18C7103.12,-3967.36 7037.97,-3957.85 6981,-3953.83 5963.72,-3882 3410.12,-3976.45 2392,-3917.83 2321.49,-3913.77 2302.87,-3916.51 2234,-3900.83"/>
<path fill="none" stroke="black" d="M2234,-3898.83C2221.25,-3895.93 2221.64,-3887.77 2210,-3881.83 2165.68,-3859.21 2148.01,-3869.04 2104,-3845.83 1962.49,-3771.18 1952.75,-3712.92 1816,-3629.87"/>
<path fill="none" stroke="black" d="M1816,-3627.87C1756.95,-3593.33 1731.97,-3603.22 1676,-3563.88 1516.64,-3451.86 1499.53,-3393.55 1386,-3235.26 1367.61,-3209.61 1370.56,-3195.79 1345,-3177.28 1300.94,-3145.36 1278.61,-3161.25 1228,-3141.28 1139.25,-3106.26 1114.56,-3099.95 1035,-3047.3 981.94,-3012.18 973.98,-2996.23 927,-2953.31 798.68,-2836.08 733.69,-2826.84 656,-2671.36 529.1,-2417.42 600.6,-2318.41 606,-2034.57 606.93,-1985.88 602.69,-1973.33 609,-1925.03 613.25,-1892.53 619.84,-1885.46 626,-1853.27"/>
<path fill="none" stroke="black" d="M626,-1851.27C630.66,-1780.57 587.38,-1591.83 626,-1532.43"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge368" 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="M1816,-3627.87C1679.32,-3534.03 1670.19,-3480.56 1556,-3360.36 1479.52,-3279.85 1473.28,-3245.92 1386,-3177.28 1225.85,-3051.33 1148.68,-3075.98 986,-2953.31 983.78,-2951.64 703.25,-2673.85 702,-2671.36 659.08,-2586.02 651.19,-2546.89 684,-2457.17 926.86,-1793.15 1466.44,-2026.62 1998,-1560.42 2039.46,-1524.06 2054.21,-1515.69 2079,-1466.43 2094.14,-1436.36 2209.95,-908.8 2212,-875.19"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_search -->
<g id="edge369" 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="M9918,-3205.27C9877.4,-3155.35 9877.91,-3135.29 9840,-3083.3 9731.95,-2935.11 9649.87,-2933.64 9577,-2765.35 9502.64,-2593.62 9551.78,-2532.7 9524,-2347.63 9516.67,-2298.77 9521.45,-2284.69 9505,-2238.1 9498.91,-2220.84 9490.29,-2219.62 9485,-2202.1 9454.17,-2099.96 9454.21,-2068.84 9466,-1962.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge370" 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="M7145.32,-3974.18C7103.12,-3967.35 7037.97,-3957.84 6981,-3953.83 6845.69,-3944.31 2224.46,-3966.89 2098,-3917.83 2075.7,-3909.18 2079.23,-3892.84 2058,-3881.83 1994.06,-3848.67 1966.21,-3874.16 1900,-3845.83 1830.42,-3816.05 1812.63,-3804.22 1758,-3751.84 1735.03,-3729.82 1740.48,-3714.19 1716,-3693.86 1687.25,-3669.98 1671.23,-3678.39 1640,-3657.86 1607.37,-3636.41 1605.68,-3622.7 1574,-3599.88 1245.51,-3363.27 1125.38,-3363.51 787,-3141.28 610.32,-3025.25 564.67,-2996.68 404,-2859.33 305.75,-2775.34 228,-2757.07 228,-2627.82 228,-2627.82 228,-2627.82 228,-2500.72 228,-2261.65 228,-2201.88 228,-1962.8 228,-1962.8 228,-1962.8 228,-1428.67 228,-1361.06 249.56,-1346.77 273,-1283.36 285.05,-1250.77 297.88,-1245.79 304,-1211.59"/>
<path fill="none" stroke="black" d="M304,-1209.59C315.22,-1113.76 304,-1088.99 304,-992.51 304,-992.51 304,-992.51 304,-873.19 304,-811.04 311.3,-739.57 316.85,-694.2"/>
<polygon fill="#f96210" stroke="black" points="320.34,-694.44 318.11,-684.08 313.4,-693.57 320.34,-694.44"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status -->
<g id="edge371" 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="M4014,-3721.85C3855.27,-3604.6 3674.04,-3590.01 3712,-3396.36 3735.55,-3276.21 3771.5,-3255.34 3816,-3141.28 3822.88,-3123.64 4054,-2521.65 4054,-2502.72 4054,-2502.72 4054,-2502.72 4054,-2062.57 4054,-1887.52 4298.24,-1494.81 4320,-1321.13"/>
<path fill="none" stroke="black" d="M4320,-1319.13C4311.14,-1115.61 4174.23,-1076.4 4206,-875.19"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge372" 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="M7145.32,-3974.18C7103.12,-3967.36 7037.97,-3957.84 6981,-3953.83 6717.15,-3935.23 2480.64,-3962.88 2220,-3917.83 2172.01,-3909.53 2056.53,-3867.67 2013,-3845.83 1813.38,-3745.63 1772.06,-3702.59 1597,-3563.88 1548.69,-3525.6 1536.96,-3515.05 1495,-3469.9 1452.68,-3424.35 1446.13,-3409.46 1408,-3360.36 1400.17,-3350.27 1280.15,-3183.5 1269,-3177.28 1122.76,-3095.75 1045.91,-3211.68 894,-3141.28 676.72,-3040.59 669.92,-2941.79 508,-2765.35 471.49,-2725.56 456.94,-2718.73 431,-2671.36 374.28,-2567.81 266,-2284.39 266,-2166.33 266,-2166.33 266,-2166.33 266,-1428.67 266,-1344.83 295.44,-1328.09 318,-1247.36 375.7,-1040.88 442.15,-793.61 468.91,-693.6"/>
<polygon fill="#f96210" stroke="black" points="472.32,-694.39 471.52,-683.83 465.56,-692.58 472.32,-694.39"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge373" class="edge">
<title>ahriman_models&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7145.32,-3974.24C7103.11,-3967.46 7037.96,-3957.97 6981,-3953.83 6654.95,-3930.09 4362.44,-3965.33 4039,-3917.83 3831.77,-3887.39 3791.89,-3826.36 3586,-3787.84 3431.15,-3758.88 3012.75,-3808.67 2880,-3723.85"/>
<path fill="none" stroke="black" d="M2880,-3721.85C2826.22,-3686.56 2592,-3246.84 2592,-2925.32 2592,-2925.32 2592,-2925.32 2592,-2829.34 2592,-2632.03 2592,-2582.71 2592,-2385.4 2592,-2385.4 2592,-2385.4 2592,-1100.05 2592,-947.04 2672.46,-904.88 2630,-757.87"/>
<path fill="none" stroke="black" d="M2630,-755.87C2624.2,-736.28 2622.45,-713.8 2622.34,-694.48"/>
<polygon fill="#f96210" stroke="black" points="2625.84,-694.43 2622.42,-684.4 2618.84,-694.37 2625.84,-694.43"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_handlers_users -->
<g id="edge374" 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="M3862,-3898.83C3856.4,-3898.26 3477.55,-3788.79 3472,-3787.84 3339,-3765.25 2985.97,-3813.55 2866,-3751.84 2818.23,-3727.27 2816.35,-3704.67 2790,-3657.86 2622.23,-3359.78 2554,-3267.37 2554,-2925.32 2554,-2925.32 2554,-2925.32 2554,-2735.36 2554,-2666.8 2566.7,-2643.06 2535,-2582.27 2523.94,-2561.06 2509.06,-2565.62 2495,-2546.27 2386.38,-2396.74 2310.15,-2350.46 2326,-2166.33"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_application_lock -->
<g id="edge375" 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="M7238.46,-3977.54C7314.24,-3971.05 7465.44,-3958.94 7594,-3953.83 7979.27,-3938.49 10682.06,-3970.62 11064,-3917.83 11185.32,-3901.06 11216.42,-3891.65 11330,-3845.83 11410.42,-3813.38 11600.95,-3707.59 11672,-3657.86 11754.25,-3600.29 11951.96,-3440.82 12012,-3360.36 12065.54,-3288.61 12040.25,-3247.32 12096,-3177.28 12117.31,-3150.5 12311.46,-3008.19 12340,-2989.31 12367.22,-2971.31 12382.45,-2977.82 12404,-2953.31 12539.47,-2799.27 12467.17,-2704.52 12504,-2502.72"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge376" 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="M7342,-3898.83C7513.78,-3737.06 8162.57,-3803.7 8398,-3787.84 8489.32,-3781.69 9142.96,-3799.67 9221,-3751.84 9287.17,-3711.3 9251.7,-3654.32 9307,-3599.88 9330.81,-3576.44 9353.17,-3590.77 9373,-3563.88 9398.29,-3529.58 9387.76,-3512.3 9392,-3469.9 9395.25,-3437.37 9396.4,-3428.74 9392,-3396.36 9390.71,-3386.87 9388.6,-3376.92 9386.18,-3367.39"/>
<polygon fill="#f96210" stroke="black" points="9389.54,-3366.41 9383.57,-3357.66 9382.78,-3368.22 9389.54,-3366.41"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge377" 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="M7190,-3815.84C7185.13,-3709.2 7321.62,-3734.65 7342,-3629.87"/>
<path fill="none" stroke="black" d="M7342,-3627.87C7362.31,-3534.68 7325.15,-3425.61 7298.84,-3364.53"/>
<polygon fill="#f96210" stroke="black" points="7301.94,-3362.9 7294.72,-3355.15 7295.53,-3365.71 7301.94,-3362.9"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge378" 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="M7146.15,-3973.65C7085,-3962.09 6970.73,-3939.91 6874,-3917.83 6633.57,-3862.93 5858.82,-3781.05 5832,-3535.89"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge379" 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="M5511,-3533.89C5524.73,-3473.21 5552.62,-3407.13 5572.71,-3364.01"/>
<polygon fill="#f96210" stroke="black" points="5575.91,-3365.44 5577,-3354.91 5569.57,-3362.46 5575.91,-3365.44"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge380" 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="M7223.38,-3969.08C7288.22,-3944.55 7429.27,-3892.25 7480,-3881.83 7948.87,-3785.54 9398.91,-3967.43 9606,-3535.89"/>
<path fill="none" stroke="black" d="M9606,-3533.89C9612,-3497.74 9575.79,-3499.36 9554,-3469.9 9542.62,-3454.5 9539.37,-3450.82 9530,-3434.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_auth -->
<g id="edge381" 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="M10606,-3815.84C10687,-3754.09 10703.25,-3733 10772,-3657.86 10992.26,-3417.14 10944.42,-3242.92 11229,-3083.3 11342.27,-3019.76 11419.86,-3131.2 11519,-3047.3 11571.42,-3002.93 11547.73,-2964 11547,-2895.33 11546.56,-2853.55 11546.71,-2843.09 11545,-2801.35 11536.75,-2599.61 11489.66,-2546.94 11522,-2347.63 11524.7,-2330.99 11531.3,-2328.28 11534,-2311.63 11539.24,-2279.37 11538.37,-2270.49 11534,-2238.1 11522.62,-2153.82 11490.79,-2059.41 11470.88,-2005.93"/>
<polygon fill="#f96210" stroke="black" points="11474.11,-2004.56 11467.31,-1996.43 11467.55,-2007.03 11474.11,-2004.56"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge382" 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="M10784,-3533.89C10876.49,-3309.03 10973.76,-3282.85 11034,-3047.3 11131.49,-2666.07 11066.27,-2555.85 11122,-2166.33"/>
<path fill="none" stroke="black" d="M11122,-2164.33C11122.25,-2110.11 11112.13,-2048.46 11103.99,-2007.78"/>
<polygon fill="#f96210" stroke="black" points="11107.41,-2007.01 11101.97,-1997.91 11100.55,-2008.41 11107.41,-2007.01"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge383" 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="M7238.46,-3977.57C7314.24,-3971.13 7465.45,-3959.09 7594,-3953.83 7908.87,-3940.93 10120.38,-3976.56 10430,-3917.83 10474.36,-3909.41 10581.42,-3869.28 10620,-3845.83 10673.52,-3813.3 10679.79,-3795.19 10725,-3751.84 10874.68,-3608.33 11194.21,-3183.06 11376,-3083.3 11444.85,-3045.51 11479.82,-3084.48 11549,-3047.3 11616.81,-3010.85 11672,-3002.31 11672,-2925.32 11672,-2925.32 11672,-2925.32 11672,-2829.34 11672,-2582.5 11575.04,-2517.38 11626,-2275.87"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge384" 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="M5074,-3898.83C4863.71,-3881.68 4322.88,-3898.71 4128,-3817.84"/>
<path fill="none" stroke="black" d="M4128,-3815.84C3847.18,-3699.29 3743.2,-3735.17 3492,-3563.88 3254.1,-3401.66 3189.38,-3321.34 3101,-3047.3 3052.05,-2895.5 3081.67,-2793.34 3216,-2707.36 3310.18,-2647.09 3376.08,-2739.17 3465,-2671.36 3481.79,-2658.56 3471.33,-2644.71 3484,-2627.82"/>
<path fill="none" stroke="black" d="M3484,-2625.82C3514.62,-2580.48 3483.61,-2557.43 3484,-2502.72"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge385" 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="M7239.11,-3978.09C7315.13,-3972.38 7465.91,-3961.37 7594,-3953.83 7841.42,-3939.26 9600.99,-3957.99 9822,-3845.83 9938.72,-3786.59 9917.06,-3712.36 9984,-3599.88 10001.15,-3571.06 10006.35,-3564.41 10024,-3535.89"/>
<path fill="none" stroke="black" d="M10024,-3533.89C10083.86,-3429.35 10041.22,-3357.39 9957,-3271.26 9915.38,-3228.7 9877.79,-3267.89 9828,-3235.26 9824.32,-3232.85 9631.06,-2992.48 9628,-2989.31 9601.76,-2962.11 9391.89,-2797.48 9372,-2765.35 9327.73,-2693.82 9374.95,-2649.21 9324,-2582.27 9304.7,-2556.91 9280.8,-2572 9262,-2546.27 9169.58,-2419.79 9216.36,-2355.78 9186,-2202.1 9179.99,-2171.66 9184.63,-2085.79 9162,-2064.57"/>
<path fill="none" stroke="black" d="M9162,-2062.57C9139.9,-2043.26 9117.16,-2019.54 9099.47,-2000.07"/>
<polygon fill="#f96210" stroke="black" points="9102,-1997.65 9092.7,-1992.57 9096.8,-2002.34 9102,-1997.65"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_configuration -->
<g id="edge386" 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="M7153.08,-3970.39C7002.64,-3923.71 6442.46,-3748.85 6412,-3723.85"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data -->
<g id="edge387" 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="M10036,-3815.84C9951.2,-3670.46 10155.01,-3634.52 10190,-3469.9 10196.79,-3437.93 10196.82,-3428.32 10190,-3396.36 10126.81,-3100.09 9836.88,-2981.65 10016,-2737.36"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge388" 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="M6830,-3533.89C6790.44,-3475.38 6710.82,-3308.8 6651,-3271.26 6559.27,-3213.7 6505.15,-3286.98 6410,-3235.26 6361.04,-3208.65 6346.72,-3193.4 6327,-3141.28 6317.88,-3117.18 6324.81,-3108.97 6327,-3083.3 6336.59,-2970.74 6354.32,-2678.8 6413,-2582.27 6424.13,-2563.96 6441.17,-2548.4 6458.31,-2536.03"/>
<polygon fill="#f96210" stroke="black" points="6460.48,-2538.79 6466.71,-2530.22 6456.49,-2533.03 6460.48,-2538.79"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge389" 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="M7190,-3815.84C7191.72,-3774.99 7182.19,-3763.98 7190,-3723.85"/>
<path fill="none" stroke="black" d="M7190,-3721.85C7197.81,-3681.72 7190,-3670.75 7190,-3629.87"/>
<path fill="none" stroke="black" d="M7190,-3627.87C7190,-3508.13 7165.12,-3479.89 7158,-3360.36 7155.64,-3320.83 7157.47,-3310.86 7158,-3271.26 7159.68,-3145.93 7190.89,-3111.73 7164,-2989.31 7160.59,-2973.78 7109.17,-2874.37 7104,-2859.33 7090.05,-2818.76 7086.92,-2807.96 7082,-2765.35 7073.44,-2691.23 7097.47,-2607.14 7116.69,-2554.52"/>
<polygon fill="#f96210" stroke="black" points="7119.99,-2555.66 7120.21,-2545.07 7113.44,-2553.22 7119.99,-2555.66"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_data_patches -->
<g id="edge390" 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="M5112,-3815.84C5121.42,-3772.62 5123.84,-3759.52 5150,-3723.85"/>
<path fill="none" stroke="black" d="M5150,-3721.85C5187.81,-3670.29 5159.48,-3497.36 5150,-3434.13"/>
<path fill="none" stroke="black" d="M5150,-3432.13C5121.67,-3300.74 4976.66,-2917.29 5080,-2831.34"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_migrations -->
<g id="edge391" 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="M10102,-3898.83C10134.66,-3865.42 10156.15,-3862.75 10169,-3817.84"/>
<path fill="none" stroke="black" d="M10169,-3815.84C10179.64,-3778.67 10203.94,-3508.5 10206,-3469.9 10207.74,-3437.26 10209.59,-3428.84 10206,-3396.36 10199.74,-3339.73 10196.7,-3325.08 10178,-3271.26 10126.54,-3123.13 10059.87,-3106.21 10025,-2953.31 10019.27,-2928.19 10024.14,-2921.09 10025,-2895.33 10031.51,-2700.6 10165.26,-2605.57 10039,-2457.17 9992.43,-2402.44 9775.01,-2389.45 9672.17,-2386.36"/>
<polygon fill="#f96210" stroke="black" points="9672.08,-2382.86 9661.99,-2386.08 9671.89,-2389.86 9672.08,-2382.86"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge392" 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="M7190,-3815.84C7185.56,-3736.89 7305.15,-3812.39 7356,-3751.84 7391.53,-3709.54 7380,-3685.12 7380,-3629.87 7380,-3629.87 7380,-3629.87 7380,-3533.89 7380,-3291.58 7474.29,-3199.66 7354,-2989.31 7339.5,-2963.95 7312.89,-2979.01 7299,-2953.31 7286.74,-2930.64 7298.25,-2921.09 7299,-2895.33 7301.45,-2811.68 7284.13,-2786.95 7310,-2707.36 7313.68,-2696.03 7319.39,-2684.72 7325.66,-2674.34"/>
<polygon fill="#f96210" stroke="black" points="7328.64,-2676.17 7331.04,-2665.85 7322.73,-2672.43 7328.64,-2676.17"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge393" 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="M7190.78,-3964.56C7191.95,-3934.64 7193.68,-3871.23 7190,-3817.84"/>
<path fill="none" stroke="black" d="M7190,-3815.84C7186.04,-3766.92 7135.76,-3785.46 7100,-3751.84 7060.86,-3715.05 7052.08,-3703.65 7024,-3657.86 7000.08,-3618.86 7000.59,-3605.69 6982,-3563.88 6941.82,-3473.5 6925.17,-3453.53 6892,-3360.36 6849.17,-3240.07 6871.4,-3198.34 6816,-3083.3 6736.16,-2917.51 6594.48,-2749.53 6524.89,-2672.02"/>
<polygon fill="#f96210" stroke="black" points="6527.27,-2669.44 6517.98,-2664.36 6522.08,-2674.13 6527.27,-2669.44"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge394" 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="M7058,-3432.13C7020.76,-3238.87 7142.95,-3165.38 7055,-2989.31 7034.03,-2947.33 6998.42,-2963.41 6971,-2925.32"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge395" 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="M2082,-3627.87C2039.18,-3584.69 2048.35,-3559.69 2020,-3505.9 1831.48,-3148.17 1890.24,-2971.41 1584,-2707.36 1548.86,-2677.06 1526.48,-2694.05 1486,-2671.36 1480.49,-2668.28 1474.96,-2664.65 1469.64,-2660.84"/>
<polygon fill="#f96210" stroke="black" points="1471.59,-2657.93 1461.48,-2654.74 1467.39,-2663.53 1471.59,-2657.93"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge396" 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="M7145.32,-3974.23C7103.11,-3967.45 7037.96,-3957.96 6981,-3953.83 6642.2,-3929.24 4260.38,-3965.13 3924,-3917.83 3895.71,-3913.85 3890.31,-3904.66 3862,-3900.83"/>
<path fill="none" stroke="black" d="M3862,-3898.83C3833.69,-3895 3828.17,-3886.62 3800,-3881.83 3335.99,-3802.95 3151.97,-3995.04 2749,-3751.84 2721.07,-3734.99 2726.64,-3717.35 2704,-3693.86 2686.7,-3675.91 2677.38,-3676.65 2661,-3657.86 2497.77,-3470.7 2511.27,-3381.43 2448,-3141.28 2403.16,-2971.07 2370.57,-2763.93 2357.42,-2673.6"/>
<polygon fill="#f96210" stroke="black" points="2360.88,-2673.08 2355.99,-2663.69 2353.95,-2674.09 2360.88,-2673.08"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge397" 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="M7145.32,-3974.19C7103.12,-3967.37 7037.97,-3957.86 6981,-3953.83 6492.76,-3919.27 3061.17,-3982.52 2576,-3917.83 2451.19,-3901.18 2418.13,-3894.49 2302,-3845.83 2226.64,-3814.25 2208.04,-3802.58 2144,-3751.84 2007.52,-3643.72 1976.43,-3609.22 1872,-3469.9 1849.43,-3439.78 1856.23,-3423.35 1830,-3396.36 1808.6,-3374.32 1795.67,-3378.66 1771,-3360.36 1672.9,-3287.56 1659.42,-3255.98 1566,-3177.28 1443.59,-3074.16 1374.4,-3085.39 1284,-2953.31 1223.88,-2865.49 1198.38,-2740.38 1188.53,-2673.75"/>
<polygon fill="#f96210" stroke="black" points="1191.96,-2672.97 1187.08,-2663.57 1185.03,-2673.96 1191.96,-2672.97"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge398" 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="M3786,-3898.83C3569.29,-3887.84 3011.9,-3927.82 2811,-3845.83 2491.25,-3715.32 2274.4,-3129.61 2086,-2895.33 2016.52,-2808.93 1925.66,-2716.08 1874.81,-2665.68"/>
<polygon fill="#f96210" stroke="black" points="1877.18,-2663.1 1867.61,-2658.56 1872.26,-2668.07 1877.18,-2663.1"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge399" 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="M7145.32,-3974.2C7103.11,-3967.39 7037.97,-3957.88 6981,-3953.83 6088.33,-3890.31 3846.31,-3986.14 2954,-3917.83 2547.05,-3886.67 2393.22,-3893.92 2082,-3629.87"/>
<path fill="none" stroke="black" d="M2082,-3627.87C2052.53,-3599.57 2043.43,-3594.16 2016,-3563.88 1899.66,-3435.46 1627.81,-3097.02 1531,-2953.31 1460.85,-2849.18 1465.11,-2809.44 1392,-2707.36 1381.28,-2692.39 1368.17,-2677.05 1356.14,-2663.88"/>
<polygon fill="#f96210" stroke="black" points="1358.58,-2661.35 1349.22,-2656.39 1353.44,-2666.11 1358.58,-2661.35"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge400" 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="M3862,-3898.83C3833.94,-3893.43 3827.86,-3888.15 3800,-3881.83 3570.97,-3829.84 3512.9,-3818.09 3280,-3787.84 3180.08,-3774.87 2919.6,-3793.83 2828,-3751.84 2774.01,-3727.1 2670.23,-3613.76 2638,-3563.88 2528.17,-3393.89 2516,-3172.59 2516,-2925.32 2516,-2925.32 2516,-2925.32 2516,-2829.34 2516,-2774.26 2500.12,-2712.61 2487.43,-2672.18"/>
<polygon fill="#f96210" stroke="black" points="2490.76,-2671.08 2484.37,-2662.63 2484.09,-2673.22 2490.76,-2671.08"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge401" 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="M7145.32,-3974.23C7103.11,-3967.44 7037.96,-3957.95 6981,-3953.83 6633.78,-3928.67 4192.75,-3966.25 3848,-3917.83 3819.71,-3913.85 3814.54,-3902.27 3786,-3900.83"/>
<path fill="none" stroke="black" d="M3786,-3898.83C3666.23,-3892.77 2818.6,-3892.18 2708,-3845.83 2600.47,-3800.77 2597.46,-3749.21 2525,-3657.86 2460.76,-3576.87 2447.5,-3554.43 2388,-3469.9 2373.26,-3448.96 1890.91,-2722.15 1870,-2707.36 1818.6,-2671.01 1790.74,-2696.46 1733,-2671.36 1725.25,-2668 1717.36,-2663.83 1709.83,-2659.43"/>
<polygon fill="#f96210" stroke="black" points="1711.54,-2656.37 1701.17,-2654.18 1707.91,-2662.36 1711.54,-2656.37"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge402" 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="M7145.32,-3974.23C7103.11,-3967.44 7037.96,-3957.95 6981,-3953.83 6269.7,-3902.4 4484.68,-3944 3772,-3917.83 3643.39,-3913.1 2738.54,-3885.13 2616,-3845.83 2492.24,-3806.13 2120,-3665.86 2120,-3535.89 2120,-3535.89 2120,-3535.89 2120,-3432.13 2120,-3186.67 1883.25,-2882.05 1678,-2707.36 1648.92,-2682.62 1632.7,-2691.07 1600,-2671.36 1594.54,-2668.07 1588.99,-2664.36 1583.59,-2660.52"/>
<polygon fill="#f96210" stroke="black" points="1585.42,-2657.52 1575.28,-2654.43 1581.28,-2663.16 1585.42,-2657.52"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_formatters_version_printer -->
<g id="edge403" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_formatters_version_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M2234,-3898.83C2214.55,-3895.23 1985.38,-3672.42 1972,-3657.86 1935.65,-3618.31 1928.34,-3606.77 1896,-3563.88 1865.27,-3523.13 1856.44,-3513.55 1830,-3469.9 1810.94,-3438.43 1820.51,-3419.6 1792,-3396.36 1746.2,-3359.01 1715.38,-3389.55 1664,-3360.36 1561.2,-3301.96 1561.71,-3253.11 1471,-3177.28 1450.27,-3159.95 1443.32,-3157.88 1422,-3141.28 1370.19,-3100.94 1351.75,-3096.27 1308,-3047.3 1197.44,-2923.54 1099.9,-2750.97 1057.49,-2671.29"/>
<polygon fill="#f96210" stroke="black" points="1060.36,-2669.25 1052.59,-2662.05 1054.18,-2672.52 1060.36,-2669.25"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_console -->
<g id="edge404" 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="M4128,-3815.84C4018.67,-3771.02 4283.54,-3742.9 4318,-3629.87"/>
<path fill="none" stroke="black" d="M4318,-3627.87C4334.35,-3570.57 4302,-3419.91 4300,-3360.36 4298.67,-3320.78 4294.62,-3310.49 4300,-3271.26 4323.55,-3099.39 4351.57,-3060.37 4405,-2895.33 4412.16,-2873.21 4551.24,-2525.94 4550,-2502.72"/>
<path fill="none" stroke="black" d="M4550,-2500.72C4545.47,-2461.99 4521.42,-2459.25 4513,-2421.17 4505.94,-2389.26 4503.66,-2378.96 4513,-2347.63 4516.7,-2335.25 4523.29,-2323.01 4530.39,-2312.24"/>
<polygon fill="#f96210" stroke="black" points="4533.32,-2314.16 4536.15,-2303.95 4527.57,-2310.17 4533.32,-2314.16"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_email -->
<g id="edge405" 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="M5074,-3898.83C5034.37,-3895.6 5103.53,-3856.68 5112,-3817.84"/>
<path fill="none" stroke="black" d="M5112,-3815.84C5145.57,-3661.87 4577.6,-3602.84 4493,-3469.9 4430.17,-3371.16 4474,-3324.3 4474,-3207.27 4474,-3207.27 4474,-3207.27 4474,-3111.29 4474,-3014.05 4451.19,-2973.51 4509,-2895.33 4530.51,-2866.24 4552.26,-2879.93 4582,-2859.33 4663.15,-2803.12 4663.79,-2764.92 4744,-2707.36 4867.28,-2618.9 4925.34,-2639.56 5045,-2546.27 5087.21,-2513.37 5082.82,-2488.79 5126,-2457.17 5159.9,-2432.35 5203.75,-2413.11 5236.32,-2400.83"/>
<polygon fill="#f96210" stroke="black" points="5237.87,-2403.98 5246.04,-2397.24 5235.45,-2397.42 5237.87,-2403.98"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_html -->
<g id="edge406" 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="M5150,-3721.85C5158.43,-3710.79 5153.35,-3702.81 5164,-3693.86 5240,-3630 5314.84,-3706.46 5378,-3629.87"/>
<path fill="none" stroke="black" d="M5378,-3627.87C5429.41,-3565.53 5308.69,-3548.01 5288,-3469.9 5279.63,-3438.3 5283.2,-3428.69 5288,-3396.36 5327.01,-3133.73 5482,-3096.85 5482,-2831.34 5482,-2831.34 5482,-2831.34 5482,-2735.36 5482,-2609.15 5583.48,-2575.28 5539,-2457.17 5533.25,-2441.9 5522.6,-2427.76 5511.68,-2416.14"/>
<polygon fill="#f96210" stroke="black" points="5514.03,-2413.54 5504.51,-2408.89 5509.05,-2418.46 5514.03,-2413.54"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge407" 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="M5150,-3432.13C5110.11,-3179.52 5427.84,-2788.18 5444,-2737.36"/>
<path fill="none" stroke="black" d="M5444,-2735.36C5451.01,-2688.08 5440.63,-2675.49 5444,-2627.82"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_report -->
<g id="edge408" 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="M4128,-3815.84C4048.12,-3773.89 4444.16,-2296.42 4513,-2238.1 4583.23,-2178.59 5241.66,-2168.36 5427.42,-2166.66"/>
<polygon fill="#f96210" stroke="black" points="5427.73,-2170.16 5437.69,-2166.57 5427.66,-2163.16 5427.73,-2170.16"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge409" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5378,-3627.87C5426.95,-3575.24 5493.26,-3605.53 5511,-3535.89"/>
<path fill="none" stroke="black" d="M5511,-3533.89C5539.82,-3420.75 5504.64,-3387.36 5517,-3271.26 5521.5,-3228.97 5521.52,-3217.62 5535,-3177.28 5563.24,-3092.76 5842.79,-2533.96 5888,-2457.17 5907.72,-2423.67 5929.68,-2423.38 5938,-2385.4"/>
<path fill="none" stroke="black" d="M5938,-2383.4C5950.89,-2323.57 5931.43,-2254.06 5914.92,-2210.14"/>
<polygon fill="#f96210" stroke="black" points="5918.11,-2208.69 5911.24,-2200.63 5911.58,-2211.22 5918.11,-2208.69"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_report_telegram -->
<g id="edge410" 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="M4318,-3627.87C4388.43,-3350.36 4336.33,-3267.75 4403,-2989.31 4413.31,-2946.26 4406.53,-2928.36 4436,-2895.33 4479.41,-2846.68 4539.57,-2890.01 4568,-2831.34"/>
<path fill="none" stroke="black" d="M4568,-2829.34C4581.88,-2790.89 4572.08,-2778.03 4568,-2737.36"/>
<path fill="none" stroke="black" d="M4568,-2735.36C4562.98,-2685.34 4618.34,-2675.68 4603,-2627.82"/>
<path fill="none" stroke="black" d="M4603,-2625.82C4586.18,-2573.33 4580.67,-2557.35 4588,-2502.72"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_executor -->
<g id="edge411" 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="M10024,-3533.89C10041.64,-3505.91 10053.24,-3501.79 10062,-3469.9 10070.65,-3438.38 10068.83,-3428.32 10062,-3396.36 10049.27,-3336.79 10050.79,-3312.54 10006,-3271.26 9970.65,-3238.68 9945.85,-3258.91 9904,-3235.26 9771.3,-3160.27 9768.88,-3100.85 9665,-2989.31 9623.65,-2944.92 9611.26,-2935.73 9566,-2895.33 9517.52,-2852.06 9504.04,-2842.81 9454,-2801.35 9434.54,-2785.23 9423.5,-2786.7 9410,-2765.35 9358.59,-2684.05 9242.45,-2012.3 9202,-1925.03 9193.7,-1907.13 9185.45,-1906.36 9176,-1889.03 9167.83,-1874.05 9166.88,-1869.63 9162,-1853.27"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_repository -->
<g id="edge412" 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="M7238.77,-3977.65C7314.66,-3971.34 7465.64,-3959.49 7594,-3953.83 7663.61,-3950.75 10053.28,-3950.65 10102,-3900.83"/>
<path fill="none" stroke="black" d="M10102,-3898.83C10134.46,-3865.63 10060.55,-3857.25 10036,-3817.84"/>
<path fill="none" stroke="black" d="M10036,-3815.84C10027.93,-3802.88 10013.83,-3766.85 10011,-3751.84 10006.23,-3726.52 10007.27,-3719.36 10011,-3693.86 10030.63,-3559.75 10095.93,-3530.7 10078,-3396.36 10070.38,-3339.25 10080.37,-3315.95 10044,-3271.26 10004.35,-3222.55 9962.85,-3251.24 9918,-3207.27"/>
<path fill="none" stroke="black" d="M9918,-3205.27C9830.7,-3107.28 9575.82,-2885.92 9524,-2765.35 9431.17,-2549.34 9568.15,-2456.46 9481,-2238.1 9473.38,-2219.01 9464.53,-2218.38 9452,-2202.1 9371.46,-2097.49 9347.32,-2073.9 9276,-1962.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge413" 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="M5378,-3627.87C5381.71,-3623.89 5831.41,-2132.65 5835,-2128.56 5880.39,-2076.83 5949.32,-2128 5976,-2064.57"/>
<path fill="none" stroke="black" d="M5976,-2062.57C5990.69,-2020.73 5962.65,-2005.09 5976,-1962.8"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge414" 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="M7168.91,-3966.21C7123.24,-3931.61 7013.66,-3844.23 6943,-3751.84 6885.64,-3676.85 6887.12,-3647.88 6844,-3563.88 6837.65,-3551.5 6839.38,-3546.16 6830,-3535.89"/>
<path fill="none" stroke="black" d="M6830,-3533.89C6776.58,-3454.87 6707.84,-3501.17 6640,-3434.13"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_spawn -->
<g id="edge415" 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="M10169,-3815.84C10197.51,-3699.28 10244.08,-3681.85 10266,-3563.88 10297.77,-3392.93 10270.18,-3338.88 10206,-3177.28 10173.7,-3095.95 10122.19,-3006.92 10093.35,-2959.52"/>
<polygon fill="#f96210" stroke="black" points="10096.27,-2957.59 10088.06,-2950.89 10090.3,-2961.24 10096.27,-2957.59"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_client -->
<g id="edge416" 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="M7190,-3721.85C7204.11,-3649.3 7230.3,-3636.86 7242,-3563.88 7250.01,-3513.9 7229.57,-3373.16 7229,-3360.36 7227.24,-3320.8 7208.28,-3305 7229,-3271.26 7247.52,-3241.11 7281.48,-3265.41 7300,-3235.26 7313.49,-3213.3 7300.63,-3203.04 7300,-3177.28 7297.55,-3077.65 7291.45,-3052.94 7289,-2953.31 7288.37,-2927.55 7288.92,-2921.1 7289,-2895.33 7289.44,-2756.19 7200.93,-2688.32 7291,-2582.27 7362.38,-2498.23 7557.93,-2608.26 7526,-2502.72"/>
<path fill="none" stroke="black" d="M7526,-2500.72C7519.65,-2479.56 7518.32,-2472.07 7502,-2457.17 7468.64,-2426.72 7420.3,-2407.72 7384.74,-2396.97"/>
<polygon fill="#f96210" stroke="black" points="7385.65,-2393.59 7375.07,-2394.16 7383.7,-2400.31 7385.65,-2393.59"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_watcher -->
<g id="edge417" 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="M10264,-3898.83C10317.6,-3854.91 10294.71,-3817.78 10316,-3751.84 10355.49,-3629.56 10373.87,-3598.25 10380,-3469.9 10381.56,-3437.25 10380.22,-3429.04 10380,-3396.36 10376.18,-2831.64 10415.81,-2680.21 10295,-2128.56 10242.51,-1888.87 10258.09,-1815.7 10148,-1596.42 10138.91,-1578.3 10130.65,-1577.66 10120,-1560.42 10086.41,-1506.04 10086.17,-1488.03 10058,-1430.67"/>
<path fill="none" stroke="black" d="M10058,-1428.67C10044.17,-1406 10028.34,-1380.91 10015.43,-1360.66"/>
<polygon fill="#f96210" stroke="black" points="10018.24,-1358.56 10009.9,-1352.02 10012.34,-1362.33 10018.24,-1358.56"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_status_web_client -->
<g id="edge418" 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="M7190,-3627.87C7192.34,-3599.36 7195.44,-3592.45 7197,-3563.88 7198.4,-3538.15 7197.34,-3531.66 7197,-3505.9 7194.01,-3276.23 7200.93,-3218.22 7182,-2989.31 7175.09,-2905.76 7151.4,-2883.91 7166,-2801.35 7184.05,-2699.28 7171.52,-2654.36 7246,-2582.27 7327.35,-2503.53 7494.21,-2615.77 7488,-2502.72"/>
<path fill="none" stroke="black" d="M7488,-2500.72C7478.84,-2406.74 7343.81,-2499.45 7291,-2421.17 7272.72,-2394.08 7277.41,-2377.36 7291,-2347.63 7299.22,-2329.66 7314.42,-2314.46 7329.58,-2302.74"/>
<polygon fill="#f96210" stroke="black" points="7331.97,-2305.33 7337.96,-2296.6 7327.83,-2299.69 7331.97,-2305.33"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_tree -->
<g id="edge419" 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="M7144.89,-3974.38C7102.66,-3967.75 7037.74,-3958.4 6981,-3953.83 6135.86,-3885.68 5919.08,-3969.72 5074,-3900.83"/>
<path fill="none" stroke="black" d="M5074,-3898.83C4648.1,-3864.11 4532.85,-3930.48 4114,-3845.83 4039.04,-3830.68 4025.96,-3807.29 3952,-3787.84 3860.84,-3763.87 3834.68,-3773.75 3743,-3751.84 3466.66,-3685.83 3327.02,-3770.49 3132,-3563.88 2998.33,-3422.27 2923.41,-2900.66 2947,-2707.36 2953.94,-2650.51 2961.57,-2637.14 2978,-2582.27 2988.35,-2547.69 3087.43,-2311.94 3086,-2275.87"/>
<path fill="none" stroke="black" d="M3086,-2273.87C3079.12,-2221.98 3049.52,-2217.38 3038,-2166.33"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge420" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7190,-3815.84C7191.66,-3776.27 7150.9,-3784.15 7128,-3751.84 7119.96,-3740.5 7121.72,-3735.42 7114,-3723.85"/>
<path fill="none" stroke="black" d="M7114,-3721.85C7096.23,-3695.24 7090.13,-3688.53 7081,-3657.86 7052.48,-3562.05 7077.36,-3532.2 7058,-3434.13"/>
<path fill="none" stroke="black" d="M7058,-3432.13C6977.7,-3198.55 6830,-3172.31 6830,-2925.32 6830,-2925.32 6830,-2925.32 6830,-2829.34 6830,-2714.59 6751.92,-2596.55 6707.68,-2538.88"/>
<polygon fill="#f96210" stroke="black" points="6710.32,-2536.56 6701.42,-2530.82 6704.79,-2540.86 6710.32,-2536.56"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge421" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7114,-3721.85C7031.4,-3581.56 7152.08,-3150.02 7126,-2989.31 7125.25,-2984.72 7021.45,-2675.79 7020,-2671.36 7013.67,-2652.04 7011.39,-2647.42 7006,-2627.82"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_github -->
<g id="edge422" 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="M9884,-3721.85C9950.94,-3532.61 10006.73,-3400.35 9853,-3271.26 9816.5,-3240.62 9794.3,-3257.22 9752,-3235.26 9623.52,-3168.57 9598.17,-3138.8 9486,-3047.3 9409.51,-2984.89 9400.17,-2958.13 9324,-2895.33 9247.86,-2832.56 9212.15,-2836.71 9144,-2765.35 9116.44,-2736.49 9092.13,-2698.11 9075.74,-2669.23"/>
<polygon fill="#f96210" stroke="black" points="9078.64,-2667.24 9070.71,-2660.21 9072.53,-2670.65 9078.64,-2667.24"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge423" 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="M9808,-3815.84C9905.82,-3729.31 9685.45,-3357.08 9587,-3271.26 9551.08,-3239.95 9527.71,-3258.31 9486,-3235.26 9407.76,-3192.02 8866.72,-2825.84 8854,-2737.36"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge424" 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="M7230.35,-3971.9C7279.36,-3959.72 7364.5,-3938.18 7437,-3917.83 7490.2,-3902.9 7501.44,-3890.58 7556,-3881.83 7679.58,-3862.01 9727.32,-3913.53 9808,-3817.84"/>
<path fill="none" stroke="black" d="M9808,-3815.84C9824.46,-3796.31 9631.88,-3418.97 9620,-3396.36 9589.75,-3338.76 9594.1,-3312.76 9544,-3271.26 9508.91,-3242.19 9489,-3255.15 9448,-3235.26 9255.85,-3142.04 8592.93,-2948.34 8626,-2737.36"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_upload -->
<g id="edge425" 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="M9808,-3815.84C9848.95,-3782.15 9867.11,-3774.12 9884,-3723.85"/>
<path fill="none" stroke="black" d="M9884,-3721.85C9917.92,-3620.87 9827.36,-3601.32 9780,-3505.9 9725.81,-3396.71 9717.21,-3363.91 9638,-3271.26 9622.88,-3253.58 9615.79,-3252.34 9600,-3235.26 9563.53,-3195.82 9557.1,-3183.59 9524,-3141.28 9476.01,-3079.93 9166.43,-2624.54 9101,-2582.27 9006.72,-2521.36 8871.75,-2506.8 8800.44,-2503.51"/>
<polygon fill="#f96210" stroke="black" points="8800.52,-2500.01 8790.39,-2503.1 8800.24,-2507 8800.52,-2500.01"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge426" class="edge">
<title>ahriman_models&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M9606,-3533.89C9626.33,-3411.44 9606,-3351.15 9511,-3271.26 9440.53,-3212.01 9397.18,-3253.79 9307,-3235.26 9196.54,-3212.57 9170.27,-3200.88 9060,-3177.28 8985.63,-3161.36 8457.29,-3078.63 8388,-3047.3 8263.59,-2991.03 8205.15,-2981.91 8145,-2859.33 8133.65,-2836.2 8131.62,-2823.37 8145,-2801.35 8192.06,-2723.88 8241.01,-2738.87 8326,-2707.36 8391.5,-2683.08 8424.01,-2714.44 8479,-2671.36 8580.89,-2591.55 8579.26,-2506.66 8534,-2385.4"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_core_util -->
<g id="edge427" 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="M7224.65,-3969.54C7257.77,-3956.48 7307.61,-3933.22 7342,-3900.83"/>
<path fill="none" stroke="black" d="M7342,-3898.83C7353.59,-3887.91 7354.93,-3870.82 7352.82,-3855.14"/>
<polygon fill="#f96210" stroke="black" points="7356.23,-3854.33 7351,-3845.12 7349.34,-3855.58 7356.23,-3854.33"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge428" 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="M11050,-3898.83C11106.49,-3886.13 11119.68,-3876.15 11169,-3845.83 11302.79,-3763.58 12172.91,-3080.53 12265,-2953.31 12380.28,-2794.07 12418,-2737.19 12418,-1634.19 12418,-1634.19 12418,-1634.19 12418,-1530.43 12418,-1468.94 12408.69,-1449.37 12433,-1392.9 12449.55,-1354.45 12478,-1359.81 12494,-1321.13"/>
<path fill="none" stroke="black" d="M12494,-1319.13C12500.66,-1302.4 12503.08,-1298.37 12513,-1283.36 12535.61,-1249.14 12568.46,-1252.52 12571,-1211.59"/>
<path fill="none" stroke="black" d="M12571,-1209.59C12577.38,-1106.91 12579.24,-986.22 12579.78,-921.61"/>
<polygon fill="#f96210" stroke="black" points="12583.28,-921.38 12579.86,-911.35 12576.28,-921.32 12583.28,-921.38"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_base -->
<g id="edge429" 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="M10416,-3898.83C10425.37,-3896.01 10422.01,-3887.48 10430,-3881.83 10497.97,-3833.79 10540.56,-3869.27 10606,-3817.84"/>
<path fill="none" stroke="black" d="M10606,-3815.84C10616.94,-3807.24 10613.18,-3799.97 10620,-3787.84 10644.17,-3744.85 10644.46,-3729.06 10679,-3693.86 10699.46,-3673.01 10715.4,-3680.39 10734,-3657.86 10771.3,-3612.68 10769.46,-3592.64 10784,-3535.89"/>
<path fill="none" stroke="black" d="M10784,-3533.89C10801.71,-3474.42 10793.17,-3456.61 10808,-3396.36 10867.91,-3153 10937.01,-3106.24 10980,-2859.33 11010.68,-2683.14 10984.1,-2635.74 10994,-2457.17 11007.15,-2219.86 10939.09,-2136.8 11047,-1925.03 11131.75,-1758.72 11289.52,-1810.78 11350,-1634.19"/>
<path fill="none" stroke="black" d="M11350,-1632.19C11358.33,-1588.64 11328.07,-1570.96 11350,-1532.43"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_index -->
<g id="edge430" 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="M7238.46,-3977.57C7314.24,-3971.12 7465.45,-3959.07 7594,-3953.83 7755.27,-3947.25 10341.06,-3951.09 10499,-3917.83 10578.89,-3901 10598.49,-3888.65 10668,-3845.83 10726.52,-3809.77 11565.74,-3097.21 11613,-3047.3 11648.99,-3009.28 11665.98,-3002.46 11684,-2953.31 11752.09,-2767.61 11770.26,-1367.67 11731,-1173.82 11713.76,-1088.68 11717,-1056.26 11658,-992.51"/>
</g>
<!-- ahriman_web_views_service_add -->
<g id="node145" class="node">
<title>ahriman_web_views_service_add</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="11679" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="11679" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11679" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11679" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="11679" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="11679" 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="edge431" 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="M10834,-3898.83C10961.56,-3846.69 10991.76,-3827.4 11107,-3751.84 11565.31,-3451.37 11600.88,-3262.43 12076,-2989.31 12113.71,-2967.64 12140.92,-2988.12 12167,-2953.31 12387.72,-2658.71 12203.57,-2494.55 12243,-2128.56 12266.72,-1908.44 12304,-1855.57 12304,-1634.19 12304,-1634.19 12304,-1634.19 12304,-1319.13 12304,-1225.22 12169.1,-1005.35 12090,-954.74 11953.06,-867.13 11874.24,-985.46 11726,-918.74 11721.89,-916.89 11717.91,-914.54 11714.12,-911.89"/>
<polygon fill="#f96210" stroke="black" points="11716.18,-909.06 11706.13,-905.69 11711.89,-914.59 11716.18,-909.06"/>
</g>
<!-- ahriman_web_views_service_remove -->
<g id="node146" class="node">
<title>ahriman_web_views_service_remove</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="11773" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="11773" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11773" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11773" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="11773" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="11773" 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="edge432" 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="M7238.46,-3977.55C7314.24,-3971.07 7465.44,-3958.99 7594,-3953.83 7977.74,-3938.42 10672.53,-3971.58 11050,-3900.83"/>
<path fill="none" stroke="black" d="M11050,-3898.83C11088.22,-3891.66 12079.95,-3008.09 12114,-2989.31 12161.27,-2963.24 12192.43,-2992.07 12230,-2953.31 12319.18,-2861.33 12280.83,-2799.15 12290,-2671.36 12330.83,-2102.36 12282.4,-1950.25 12404,-1392.9 12421.87,-1310.99 12456,-1295.42 12456,-1211.59 12456,-1211.59 12456,-1211.59 12456,-1100.05 12456,-980.26 12340.64,-998.17 12229,-954.74 12087.55,-899.7 11906.61,-882.58 11821.44,-877.38"/>
<polygon fill="#f96210" stroke="black" points="11821.48,-873.88 11811.29,-876.79 11821.07,-880.86 11821.48,-873.88"/>
</g>
<!-- ahriman_web_views_service_request -->
<g id="node147" class="node">
<title>ahriman_web_views_service_request</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="11483" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="11483" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11483" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11483" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="11483" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">service.</text>
<text text-anchor="middle" x="11483" 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="edge433" 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="M7238.46,-3977.56C7314.24,-3971.11 7465.44,-3959.05 7594,-3953.83 7759.04,-3947.12 10406.07,-3955.04 10567,-3917.83 10639.83,-3900.99 10655.73,-3885.64 10719,-3845.83 10897.42,-3733.56 11287.88,-3375.8 11445,-3235.26 11571.82,-3121.82 11644.64,-3112.78 11704,-2953.31 11729.46,-2884.91 11977.15,-1742.52 11985,-1669.96 11993.33,-1593.01 12010.7,-1515.51 11981,-1283.36 11961.4,-1130.16 11996.21,-1040.85 11868,-954.74 11742.59,-870.51 11667.53,-981.26 11530,-918.74 11525.9,-916.88 11521.93,-914.51 11518.13,-911.86"/>
<polygon fill="#f96210" stroke="black" points="11520.2,-909.03 11510.15,-905.65 11515.9,-914.55 11520.2,-909.03"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_service_search -->
<g id="edge434" 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="M7238.46,-3977.6C7314.24,-3971.19 7465.45,-3959.19 7594,-3953.83 7668.12,-3950.73 10212.1,-3953.83 10264,-3900.83"/>
<path fill="none" stroke="black" d="M10264,-3898.83C10291,-3871.26 10328,-3245.85 10328,-3207.27 10328,-3207.27 10328,-3207.27 10328,-3111.29 10328,-2914.92 10355.18,-2867.25 10369,-2671.36 10375.7,-2576.37 10381.46,-2552.19 10375,-2457.17 10354.4,-2153.94 10240.51,-1401.75 10190,-1102.05"/>
<path fill="none" stroke="black" d="M10190,-1100.05C10175.51,-1051.47 10143.54,-1042.49 10152,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_status_package -->
<g id="edge435" 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="M7238.46,-3977.58C7314.24,-3971.16 7465.45,-3959.14 7594,-3953.83 7668.5,-3950.75 10214.2,-3956.41 10278,-3917.83 10418.96,-3832.58 10364.08,-3726.86 10388,-3563.88 10473.73,-2979.83 10514.03,-2826.61 10468,-2238.1 10445.49,-1950.27 10418.35,-1880.52 10367,-1596.42 10347.06,-1486.08 10198.7,-1191.74 10266,-1102.05"/>
</g>
<!-- ahriman_web_views_status_packages -->
<g id="node151" class="node">
<title>ahriman_web_views_status_packages</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#8a4e2e" stroke="black" cx="11581" cy="-874.19" rx="41.94" ry="44.6"/>
<text text-anchor="middle" x="11581" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11581" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11581" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="11581" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="11581" 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="edge436" 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="M7238.46,-3977.56C7314.24,-3971.1 7465.44,-3959.04 7594,-3953.83 7773.88,-3946.53 10670.07,-3975.23 10834,-3900.83"/>
<path fill="none" stroke="black" d="M10834,-3898.83C10883.44,-3876.39 10929.97,-3733.58 10967,-3693.86 10978.66,-3681.36 11937.73,-2965.21 11950,-2953.31 11999.93,-2904.91 12048,-2900.88 12048,-2831.34 12048,-2831.34 12048,-2831.34 12048,-2500.72 12048,-1878.96 12380.4,-1644.2 12076,-1102.05"/>
</g>
<!-- ahriman_web_views_status_status -->
<g id="node152" class="node">
<title>ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="11295" cy="-874.19" rx="38.37" ry="44.6"/>
<text text-anchor="middle" x="11295" y="-893.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="11295" y="-882.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="11295" y="-871.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">views.</text>
<text text-anchor="middle" x="11295" y="-860.69" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">status.</text>
<text text-anchor="middle" x="11295" 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="edge437" 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="M10492,-3721.85C10511.77,-3684.99 10535.35,-3690.9 10561,-3657.86 10651.56,-3541.2 10657.79,-3498.88 10709,-3360.36 10935.01,-2749 10791.9,-2539.26 11010,-1925.03 11073.95,-1744.93 11168.31,-1738.38 11238,-1560.42 11270.27,-1478.02 11263.89,-1306.84 11268,-1137.82 11268.79,-1105.14 11271.14,-1096.81 11268,-1064.28 11264.87,-1031.93 11246.63,-1024.16 11254,-992.51"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_login -->
<g id="edge438" 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="M7238.46,-3977.58C7314.24,-3971.15 7465.45,-3959.13 7594,-3953.83 8198.21,-3928.92 9712.73,-3972.17 10315,-3917.83 10360.34,-3913.74 10372.4,-3913.92 10416,-3900.83"/>
<path fill="none" stroke="black" d="M10416,-3898.83C10425.37,-3896.01 10423.48,-3889.13 10430,-3881.83 10456.39,-3852.3 10484.96,-3856.81 10492,-3817.84"/>
<path fill="none" stroke="black" d="M10492,-3815.84C10497.17,-3787.19 10481.13,-3780.79 10478,-3751.84 10475.23,-3726.22 10475.8,-3719.54 10478,-3693.86 10515.85,-3251.31 10654.55,-3151.23 10638,-2707.36 10627.33,-2421.08 10590,-2351.05 10590,-2064.57 10590,-2064.57 10590,-2064.57 10590,-1851.27 10590,-1549.8 10391.09,-1426.18 10556,-1173.82 10626.51,-1065.93 10632.46,-1015.74 10746,-954.74 10854.97,-896.19 10903.88,-955.48 11022,-918.74 11036.41,-914.26 11051.31,-907.46 11064.54,-900.56"/>
<polygon fill="#f96210" stroke="black" points="11066.26,-903.61 11073.4,-895.79 11062.94,-897.45 11066.26,-903.61"/>
</g>
<!-- ahriman_models&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge439" 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="M10492,-3815.84C10505.28,-3777.17 10470.43,-3758.58 10492,-3723.85"/>
<path fill="none" stroke="black" d="M10492,-3721.85C11044.34,-2832.42 10664.67,-2424.05 10846,-1392.9 10881.14,-1193.09 10821.09,-1088.08 10974,-954.74 11035.49,-901.12 11081.35,-955.86 11154,-918.74 11157.84,-916.77 11161.6,-914.41 11165.22,-911.8"/>
<polygon fill="#f96210" stroke="black" points="11167.68,-914.31 11173.34,-905.36 11163.33,-908.83 11167.68,-914.31"/>
</g>
<!-- ahriman_models_action -->
<g id="node112" class="node">
<title>ahriman_models_action</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e76822" stroke="black" cx="484" cy="-2165.33" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="484" y="-2173.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="484" y="-2162.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="484" y="-2151.83" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">action</text>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_ahriman -->
<g id="edge440" 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="M485.79,-2136.1C488.5,-2114.4 495.25,-2084.79 512,-2064.57"/>
<path fill="none" stroke="black" d="M512,-2062.57C551.58,-2014.78 522.09,-1985.5 536,-1925.03 554.79,-1843.34 594.11,-1827.33 588,-1743.73"/>
<path fill="none" stroke="black" d="M588,-1741.73C571.05,-1614.12 527.11,-1591.83 498,-1466.43 426.09,-1156.64 398,-1075.91 398,-757.87 398,-757.87 398,-757.87 398,-442.81 398,-346.33 379.5,-320.42 398,-225.74"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge441" 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="M588,-1632.19C591.92,-1584.9 600.14,-1572.2 626,-1532.43"/>
<path fill="none" stroke="black" d="M626,-1530.43C669.24,-1463.92 749.47,-1506.1 774,-1430.67"/>
<path fill="none" stroke="black" d="M774,-1428.67C788.78,-1383.21 737.51,-1351.99 774,-1321.13"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_status_update -->
<g id="edge442" 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="M588,-1741.73C584.52,-1694.06 588,-1681.98 588,-1634.19"/>
<path fill="none" stroke="black" d="M588,-1632.19C588,-1294.05 450.42,-1207.67 512,-875.19"/>
</g>
<!-- ahriman_models_action&#45;&gt;ahriman_application_handlers_users -->
<g id="edge443" 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="M512,-2062.57C630.45,-1920.89 2009.76,-1865.49 2308.26,-1855.13"/>
<polygon fill="#e76822" stroke="black" points="2308.55,-1858.62 2318.42,-1854.78 2308.31,-1851.62 2308.55,-1858.62"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_application_handlers_search -->
<g id="edge444" 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="M5702.83,-3623.12C5633.16,-3616.73 5503.12,-3605.5 5392,-3599.88 5349.76,-3597.74 3899.55,-3594.13 3870,-3563.88 3846.9,-3540.23 3834.34,-3526.29 4060,-2801.35 4078.21,-2742.84 4090.02,-2730.53 4106,-2671.36 4215.43,-2266.25 4282,-2163.36 4282,-1743.73 4282,-1743.73 4282,-1743.73 4282,-1530.43 4282,-956.67 9031.17,-1516.44 9428,-1102.05"/>
<path fill="none" stroke="black" d="M9428,-1100.05C9479.6,-1014.46 9443.59,-973.9 9428,-875.19"/>
<path fill="none" stroke="black" d="M9428,-873.19C9400.04,-733.69 4616.33,-657.83 4038.01,-649.17"/>
<polygon fill="#d14d05" stroke="black" points="4037.89,-645.67 4027.84,-649.02 4037.78,-652.67 4037.89,-645.67"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge445" 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="M5803.54,-3624.52C5896.44,-3618.51 6100.65,-3605.94 6273,-3599.88 6514.11,-3591.39 8208.93,-3618.17 8444,-3563.88 8503.28,-3550.19 8509.32,-3521.96 8568,-3505.9 8727.36,-3462.27 8776.72,-3505.75 8938,-3469.9 9014.61,-3452.86 9229.67,-3371.18 9324.32,-3334.59"/>
<polygon fill="#d14d05" stroke="black" points="9325.84,-3337.76 9333.9,-3330.89 9323.31,-3331.23 9325.84,-3337.76"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge446" 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="M5802.06,-3620.47C5937.98,-3599.7 6330.76,-3537.93 6654,-3469.9 6870.16,-3424.4 7125.35,-3357.34 7228.86,-3329.57"/>
<polygon fill="#d14d05" stroke="black" points="7229.94,-3332.91 7238.69,-3326.93 7228.13,-3326.15 7229.94,-3332.91"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_official_syncdb -->
<g id="edge447" 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="M5787.73,-3607.39C5810.58,-3590.97 5835.66,-3565.77 5832,-3535.89"/>
<path fill="none" stroke="black" d="M5832,-3533.89C5827.55,-3497.51 5799.41,-3500.98 5780,-3469.9 5759.83,-3437.61 5741.85,-3398.66 5729.02,-3368.13"/>
<polygon fill="#d14d05" stroke="black" points="5732.11,-3366.43 5725.04,-3358.53 5725.64,-3369.11 5732.11,-3366.43"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_alpm_remote_remote -->
<g id="edge448" 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="M5739.34,-3600.81C5712.55,-3547.73 5652.83,-3429.4 5619.55,-3363.46"/>
<polygon fill="#d14d05" stroke="black" points="5622.66,-3361.86 5615.03,-3354.51 5616.41,-3365.02 5622.66,-3361.86"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge449" 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="M5703.13,-3622.99C5633.54,-3616.42 5503.31,-3604.95 5392,-3599.88 5245.47,-3593.21 2893.24,-3603.44 2752,-3563.88 2259.15,-3425.84 2233.24,-3168.98 1754,-2989.31 1683.72,-2962.96 1647.98,-2999.74 1589,-2953.31 1498.09,-2881.75 1456.2,-2744.66 1439.86,-2673.39"/>
<polygon fill="#d14d05" stroke="black" points="1443.22,-2672.37 1437.63,-2663.37 1436.39,-2673.89 1443.22,-2672.37"/>
</g>
<!-- ahriman_models_aur_package&#45;&gt;ahriman_web_views_service_search -->
<g id="edge450" 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="M5803.54,-3624.61C5896.45,-3618.72 6100.67,-3606.36 6273,-3599.88 6646.16,-3585.84 7583.95,-3620.83 7953,-3563.88 8099.92,-3541.21 8135.69,-3524.38 8274,-3469.9 8541.9,-3364.37 8578.93,-3268.59 8852,-3177.28 8987.58,-3131.94 10005.72,-3040.53 10119,-2953.31 10412.16,-2727.6 10294.54,-2493.22 10232,-2128.56 10201.34,-1949.76 10096,-1925.13 10096,-1743.73 10096,-1743.73 10096,-1743.73 10096,-1530.43 10096,-1322.82 10108.02,-1271.1 10126,-1064.28 10130.24,-1015.49 10118.89,-999.83 10138,-954.74 10144.84,-938.59 10156.08,-923.18 10167.36,-910.3"/>
<polygon fill="#d14d05" stroke="black" points="10170.2,-912.37 10174.34,-902.62 10165.02,-907.66 10170.2,-912.37"/>
</g>
<!-- ahriman_models_auth_settings -->
<g id="node114" class="node">
<title>ahriman_models_auth_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db6b2f" stroke="black" cx="11431" cy="-2274.87" rx="53.07" ry="28.98"/>
<text text-anchor="middle" x="11431" y="-2283.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="11431" y="-2272.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="11431" y="-2261.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">auth_settings</text>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_auth -->
<g id="edge451" 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="M11464,-2164.33C11465.77,-2120.02 11466.17,-2108.85 11464,-2064.57"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge452" 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="M11443.6,-2246.7C11452.43,-2225.36 11462.87,-2194.62 11464,-2166.33"/>
<path fill="none" stroke="black" d="M11464,-2164.33C11469.79,-2019.12 11243.74,-1977.92 11142.22,-1966.75"/>
<polygon fill="#db6b2f" stroke="black" points="11142.52,-1963.26 11132.21,-1965.7 11141.79,-1970.22 11142.52,-1963.26"/>
</g>
<!-- ahriman_models_auth_settings&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge453" 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="M11464,-2164.33C11466.33,-2105.83 11538.94,-2122.05 11550,-2064.57"/>
<path fill="none" stroke="black" d="M11550,-2062.57C11553.33,-2045.24 11553.7,-2025.91 11552.93,-2008.91"/>
<polygon fill="#db6b2f" stroke="black" points="11556.41,-2008.44 11552.32,-1998.66 11549.42,-2008.85 11556.41,-2008.44"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_ahriman -->
<g id="edge454" 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="M7793.97,-2923.12C7999.35,-2921.93 8811.37,-2913.82 9476,-2859.33 9805.54,-2832.31 9887.3,-2816.3 10214,-2765.35 10282.52,-2754.66 12618.83,-2359.51 12669,-2311.63 12709.96,-2272.55 12771.86,-1870.56 12785,-1815.5 12856.95,-1513.97 12890.07,-1441.96 12950,-1137.82 12962.63,-1073.73 12954,-1055.3 12972,-992.51"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_handlers_status -->
<g id="edge455" 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="M7712.61,-2902.44C7676.67,-2880.45 7616.18,-2846.91 7559,-2831.34"/>
<path fill="none" stroke="black" d="M7559,-2829.34C7525.27,-2820.15 5072.87,-2783.5 5043,-2765.35 4963.58,-2717.09 5002.25,-2653.02 4942,-2582.27 4925.17,-2562.5 4910.25,-2567.97 4896,-2546.27 4855.44,-2484.5 4854,-2459.3 4854,-2385.4 4854,-2385.4 4854,-2385.4 4854,-873.19 4854,-583.32 4505.23,-771.77 4220,-720.1 4090.03,-696.56 4049.12,-729.28 3925,-684.1 3920.73,-682.55 3916.46,-680.61 3912.28,-678.45"/>
<polygon fill="#e55405" stroke="black" points="3913.77,-675.27 3903.34,-673.41 3910.34,-681.37 3913.77,-675.27"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_application_lock -->
<g id="edge456" 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="M7794.06,-2923.45C7985.56,-2923.51 8701,-2919.43 9286,-2859.33 9443.72,-2843.13 9480.73,-2821.5 9638,-2801.35 9811.54,-2779.12 9857.09,-2792.01 10030,-2765.35 10740.73,-2655.78 10911.17,-2586.64 11611,-2421.17 11942.31,-2342.84 12037.25,-2347.68 12345,-2202.1 12414.79,-2169.08 12490.74,-2121.08 12535.54,-2091.4"/>
<polygon fill="#e55405" stroke="black" points="12537.69,-2094.17 12544.08,-2085.71 12533.81,-2088.34 12537.69,-2094.17"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge457" 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="M7747.51,-2895.33C7748.54,-2876.99 7748.75,-2852.57 7745,-2831.34"/>
<path fill="none" stroke="black" d="M7745,-2829.34C7738.18,-2790.72 7640.38,-2784.05 7614,-2765.35 7528.18,-2704.52 7553.02,-2638.31 7464,-2582.27 7387.99,-2534.42 7285.3,-2515.35 7215.63,-2507.75"/>
<polygon fill="#e55405" stroke="black" points="7215.91,-2504.26 7205.6,-2506.71 7215.18,-2511.23 7215.91,-2504.26"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge458" 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="M7559,-2829.34C7306.66,-2760.34 7236.31,-2764.89 6992,-2671.36 6984.1,-2668.34 6975.97,-2664.86 6967.97,-2661.2"/>
<polygon fill="#e55405" stroke="black" points="6969.22,-2657.92 6958.68,-2656.85 6966.25,-2664.26 6969.22,-2657.92"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge459" 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="M7697.25,-2918.01C7634.94,-2911.33 7522.48,-2900.16 7426,-2895.33 6151.05,-2831.49 5828.54,-2930.89 4554,-2859.33 4295.34,-2844.81 4231.91,-2825.75 3974,-2801.35 3740.11,-2779.22 3155.48,-2721.97 2921,-2707.36 2808.26,-2700.34 2012.94,-2704.66 1905,-2671.36 1897.2,-2668.96 1889.41,-2665.43 1882.02,-2661.4"/>
<polygon fill="#e55405" stroke="black" points="1883.31,-2658.1 1872.91,-2656.08 1879.78,-2664.14 1883.31,-2658.1"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_formatters_status_printer -->
<g id="edge460" 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="M7697.25,-2918.03C7634.94,-2911.39 7522.47,-2900.25 7426,-2895.33 6871.77,-2867.06 5482.08,-2904.76 4929,-2859.33 4756.54,-2845.17 4715.87,-2821.46 4544,-2801.35 3754.52,-2708.94 2790.2,-2647.11 2535.92,-2631.63"/>
<polygon fill="#e55405" stroke="black" points="2535.95,-2628.12 2525.76,-2631.01 2535.52,-2635.11 2535.95,-2628.12"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_client -->
<g id="edge461" 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="M7745,-2829.34C7743.16,-2815.55 7738.09,-2813.32 7731,-2801.35 7648.97,-2662.83 7571.26,-2657.21 7526,-2502.72"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_watcher -->
<g id="edge462" 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="M9788,-2735.36C9792.64,-2729.18 9788.37,-2464.73 9790,-2457.17 9805.48,-2385.41 10058,-1926.68 10058,-1853.27"/>
<path fill="none" stroke="black" d="M10058,-1851.27C10054.23,-1785.92 10048.76,-1769.73 10034,-1705.96 10024.92,-1666.74 9982,-1572.68 9982,-1532.43"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge463" 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="M7745,-2829.34C7741.56,-2772.88 7826.8,-2814.38 7855,-2765.35 7867.85,-2743.01 7871.07,-2727.51 7855,-2707.36 7810.08,-2651.06 7752.47,-2717.3 7697,-2671.36 7680.74,-2657.9 7680.43,-2648.79 7678,-2627.82"/>
<path fill="none" stroke="black" d="M7678,-2625.82C7675.71,-2604.82 7683.16,-2598.22 7697,-2582.27 7741.15,-2531.4 7841.81,-2568.2 7826,-2502.72"/>
<path fill="none" stroke="black" d="M7826,-2500.72C7803.17,-2406.17 7717.69,-2443.92 7640,-2385.4"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_models_counters -->
<g id="edge464" 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="M7793.69,-2921.25C7929.51,-2915.07 8310.38,-2894.97 8430,-2859.33 8434.86,-2857.88 8439.79,-2855.97 8444.59,-2853.82"/>
<polygon fill="#e55405" stroke="black" points="8446.12,-2856.97 8453.61,-2849.47 8443.08,-2850.67 8446.12,-2856.97"/>
</g>
<!-- ahriman_models_internal_status -->
<g id="node117" class="node">
<title>ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#bf5921" stroke="black" cx="7789" cy="-2736.36" rx="56.64" ry="28.98"/>
<text text-anchor="middle" x="7789" y="-2744.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7789" y="-2733.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="7789" y="-2722.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">internal_status</text>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_models_internal_status -->
<g id="edge465" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_models_internal_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7745,-2829.34C7741.41,-2809 7750.23,-2788.1 7760.89,-2771.37"/>
<polygon fill="#e55405" stroke="black" points="7763.84,-2773.26 7766.58,-2763.02 7758.06,-2769.31 7763.84,-2773.26"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_package -->
<g id="edge466" 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="M7793.65,-2921.3C7920.74,-2915.63 8273.04,-2897.45 8564,-2859.33 8704.71,-2840.89 8736.97,-2817.16 8878,-2801.35 8975.8,-2790.38 9674.01,-2807.38 9763,-2765.35 9778.08,-2758.22 9778.39,-2750.99 9788,-2737.36"/>
<path fill="none" stroke="black" d="M9788,-2735.36C9796.55,-2723.18 9740.67,-2216.95 9740,-2202.1 9734.47,-2079.08 9721.21,-2046.73 9740,-1925.03 9785.65,-1629.42 9732.83,-1496.2 9943,-1283.36 9978.85,-1247.05 10006.23,-1269.9 10052,-1247.36 10155.13,-1196.55 10246.89,-1215.41 10266,-1102.05"/>
<path fill="none" stroke="black" d="M10266,-1100.05C10292,-1002 10347.88,-992.56 10442,-954.74 10642.98,-873.99 10729.41,-1005.2 10928,-918.74 10932.13,-916.94 10936.12,-914.63 10939.93,-912"/>
<polygon fill="#e55405" stroke="black" points="10942.15,-914.71 10947.93,-905.83 10937.87,-909.16 10942.15,-914.71"/>
</g>
<!-- ahriman_models_build_status&#45;&gt;ahriman_web_views_status_status -->
<g id="edge467" class="edge">
<title>ahriman_models_build_status&#45;&gt;ahriman_web_views_status_status</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7793.44,-2920.58C7937.14,-2912.38 8373.49,-2886.86 8735,-2859.33 8764.81,-2857.06 9780.16,-2778.5 9807,-2765.35 9858.11,-2740.3 9868.1,-2722.05 9894,-2671.36 9938.19,-2584.91 9893.44,-2543.95 9937,-2457.17 9986.09,-2359.38 11229.51,-1099.16 11254,-992.51"/>
<path fill="none" stroke="black" d="M11254,-990.51C11259.2,-968.18 11267.3,-944.18 11274.93,-923.89"/>
<polygon fill="#e55405" stroke="black" points="11278.2,-925.15 11278.51,-914.56 11271.66,-922.64 11278.2,-925.15"/>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_models_internal_status -->
<g id="edge468" 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="M8448.46,-2816.7C8431.65,-2811.07 8411.01,-2804.92 8392,-2801.35 8175.64,-2760.73 8115.25,-2800.87 7898,-2765.35 7881.31,-2762.62 7863.45,-2758.54 7847.12,-2754.33"/>
<polygon fill="#a35428" stroke="black" points="7847.73,-2750.87 7837.17,-2751.7 7845.95,-2757.64 7847.73,-2750.87"/>
</g>
<!-- ahriman_models_counters&#45;&gt;ahriman_web_views_status_status -->
<g id="edge469" 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="M8521.66,-2826.21C8592.36,-2820.58 8747.24,-2808.64 8878,-2801.35 8927.13,-2798.61 9722.14,-2792.77 9763,-2765.35 9888.06,-2681.4 9840.22,-2593.63 9904,-2457.17 10089.65,-2059.96 10088.2,-1918.22 10386,-1596.42 10717,-1238.75 10875.1,-1232.49 11248,-918.74 11251.4,-915.88 11254.87,-912.86 11258.33,-909.79"/>
<polygon fill="#a35428" stroke="black" points="11260.72,-912.34 11265.8,-903.04 11256.03,-907.14 11260.72,-912.34"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_client -->
<g id="edge470" 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="M7739.46,-2722.19C7712.88,-2712.52 7681.98,-2696.57 7664,-2671.36 7620.04,-2609.73 7673.28,-2570.72 7640,-2502.72"/>
<path fill="none" stroke="black" d="M7640,-2500.72C7590.05,-2411.6 7458.42,-2390.91 7386.54,-2386.4"/>
<polygon fill="#bf5921" stroke="black" points="7386.56,-2382.9 7376.38,-2385.85 7386.18,-2389.89 7386.56,-2382.9"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_core_status_web_client -->
<g id="edge471" 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="M7640,-2500.72C7614.94,-2456.01 7680.94,-2416.24 7640,-2385.4"/>
<path fill="none" stroke="black" d="M7640,-2383.4C7574.32,-2333.93 7482.73,-2303.54 7425.96,-2288.2"/>
<polygon fill="#bf5921" stroke="black" points="7426.69,-2284.77 7416.13,-2285.6 7424.9,-2291.54 7426.69,-2284.77"/>
</g>
<!-- ahriman_models_internal_status&#45;&gt;ahriman_web_views_status_status -->
<g id="edge472" 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="M7837.16,-2720.96C7855.98,-2715.87 7877.84,-2710.61 7898,-2707.36 8014.11,-2688.66 8319.67,-2721.61 8426,-2671.36 8475.2,-2648.11 8468.12,-2617.02 8510,-2582.27 8589.24,-2516.52 8611.94,-2501.25 8705,-2457.17 8989.67,-2322.35 9073.38,-2314.34 9379,-2238.1 9468.33,-2215.81 9507.44,-2254.7 9583,-2202.1 9614.07,-2180.46 9603.42,-2158.95 9626,-2128.56 9892.28,-1770.21 9959.33,-1669.2 10310,-1392.9 10621.71,-1147.29 10717.6,-1097.17 11088,-954.74 11156.03,-928.58 11183.49,-952.68 11248,-918.74 11251.93,-916.67 11255.77,-914.19 11259.46,-911.48"/>
<polygon fill="#bf5921" stroke="black" points="11261.65,-914.21 11267.28,-905.23 11257.28,-908.74 11261.65,-914.21"/>
</g>
<!-- ahriman_models_migration -->
<g id="node118" class="node">
<title>ahriman_models_migration</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="9644" cy="-2736.36" rx="39.7" ry="28.98"/>
<text text-anchor="middle" x="9644" y="-2744.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="9644" y="-2733.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="9644" y="-2722.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">migration</text>
</g>
<!-- ahriman_models_migration&#45;&gt;ahriman_core_database_migrations -->
<g id="edge473" 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="M9634.01,-2707.96C9626.76,-2686.49 9617.62,-2655.69 9614,-2627.82"/>
</g>
<!-- ahriman_models_migration_result&#45;&gt;ahriman_core_database_data -->
<g id="edge474" 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="M10974,-3627.87C10896.91,-3482.43 10959.75,-3411.77 10874,-3271.26 10829.77,-3198.79 10779.4,-3213.02 10734,-3141.28 10696.12,-3081.43 10729.24,-3045.41 10686,-2989.31 10667.71,-2965.58 10652.12,-2972.38 10629,-2953.31 10557.45,-2894.31 10558.23,-2859.52 10486,-2801.35 10333.01,-2678.14 10124.4,-2569.48 10033.48,-2524.61"/>
<polygon fill="#bc602f" stroke="black" points="10034.79,-2521.35 10024.27,-2520.08 10031.7,-2527.64 10034.79,-2521.35"/>
</g>
<!-- ahriman_models_migration_result&#45;&gt;ahriman_core_database_migrations -->
<g id="edge475" 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="M11017.95,-3695.27C11005.14,-3677.1 10988.09,-3652.34 10974,-3629.87"/>
<path fill="none" stroke="black" d="M10974,-3627.87C10955.53,-3598.41 10947.46,-3593.34 10929,-3563.88 10883.78,-3491.72 10880.99,-3468.66 10836,-3396.36 10773.38,-3295.74 10760.22,-3268.02 10684,-3177.28 10607.6,-3086.33 10579.3,-3071.98 10494,-2989.31 10406.87,-2904.87 10407.51,-2849.2 10296,-2801.35 10224.33,-2770.59 9648.72,-2821.89 9595,-2765.35 9552.5,-2720.61 9621.95,-2689.01 9614,-2627.82"/>
<path fill="none" stroke="black" d="M9614,-2625.82C9602.27,-2551.53 9590.78,-2531.82 9600,-2457.17 9601.1,-2448.28 9602.93,-2438.91 9605.02,-2429.97"/>
<polygon fill="#bc602f" stroke="black" points="9608.46,-2430.67 9607.47,-2420.12 9601.66,-2428.99 9608.46,-2430.67"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge476" 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="M6049.94,-2920.23C5980.73,-2914.69 5829.6,-2902.93 5702,-2895.33 5616.17,-2890.22 5004.02,-2901.34 4929,-2859.33 4915.88,-2851.98 4922.84,-2839.16 4910,-2831.34"/>
<path fill="none" stroke="black" d="M4910,-2829.34C4763,-2739.85 4744.5,-2669.49 4702,-2502.72"/>
<path fill="none" stroke="black" d="M4702,-2500.72C4701.07,-2485.23 4617.03,-2249.94 4607,-2238.1 4585.91,-2213.19 4569.1,-2221.68 4543,-2202.1 4217.04,-1957.5 4155.16,-1868.16 3888,-1560.42 3801.45,-1460.72 3733.94,-1451.31 3712,-1321.13"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge477" 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="M6049.56,-2923.12C5800.78,-2921.66 4423.02,-2911.25 4244,-2859.33 4195.03,-2845.13 4191.17,-2822.99 4145,-2801.35 4131.09,-2794.83 3900.05,-2710.43 3885,-2707.36 3812.92,-2692.71 3278.21,-2721.08 3224,-2671.36 3200.07,-2649.41 3144.28,-2124.95 3142,-2092.56 3137.95,-2035.03 3142.59,-2020.47 3142,-1962.8"/>
<path fill="none" stroke="black" d="M3142,-1960.8C3111.54,-1801.62 3073.77,-1749.14 3128,-1596.42 3140.26,-1561.88 3183.52,-1568.9 3180,-1532.43"/>
<path fill="none" stroke="black" d="M3180,-1530.43C3170.29,-1453.5 3089.25,-1240.28 3052.73,-1146.87"/>
<polygon fill="#953703" stroke="black" points="3055.93,-1145.45 3049.02,-1137.41 3049.41,-1148 3055.93,-1145.45"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_patch -->
<g id="edge478" 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="M6049.51,-2923.02C5759.83,-2920.67 3917.92,-2904.13 3362,-2859.33 3057.89,-2834.83 2984.07,-2808.22 2682,-2765.35 2505.02,-2740.23 2461.73,-2726.46 2284,-2707.36 2226.64,-2701.2 1813.01,-2704.82 1766,-2671.36 1730.93,-2646.4 1759.99,-2611.08 1728,-2582.27 1687.57,-2545.86 1650.27,-2583.92 1611,-2546.27 1556.25,-2493.77 1554,-2461.26 1554,-2385.4 1554,-2385.4 1554,-2385.4 1554,-2273.87 1554,-2270.55 1560.9,-2253.2 1612,-2128.56 1733.01,-1833.41 1826.22,-1779.19 1889,-1466.43 1932.06,-1251.94 1627.19,-1169.34 1756,-992.51"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_rebuild -->
<g id="edge479" 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="M6049.76,-2923.52C5786.31,-2924.72 4245.12,-2928.7 4050,-2859.33 4009.97,-2845.1 4013.07,-2818.04 3974,-2801.35 3943.07,-2788.13 3409.31,-2711.99 3376,-2707.36 3309.71,-2698.17 3130.7,-2711.31 3077,-2671.36 2937.03,-2567.25 2986.46,-2472.92 2920,-2311.63 2773.04,-1954.95 2778.7,-1847.39 2606,-1502.43 2477.52,-1245.82 2418.52,-1196.57 2264,-954.74 2241.26,-919.15 2211.24,-917.42 2212,-875.19"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_application_handlers_status -->
<g id="edge480" 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="M4702,-2500.72C4695.47,-2395.43 4778,-2381.36 4778,-2275.87 4778,-2275.87 4778,-2275.87 4778,-2164.33 4778,-1826.92 4444.35,-996.68 4206,-757.87"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge481" 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="M6044.58,-2907.21C6029.98,-2902.5 6013.47,-2897.92 5998,-2895.33 5867.09,-2873.42 4927.54,-2907.86 4804,-2859.33 4685.86,-2812.93 4677.49,-2762.35 4589,-2671.36 4502.9,-2582.84 4518.37,-2519.92 4412,-2457.17 4254.83,-2364.46 3685.62,-2300.01 3503.47,-2281.4"/>
<polygon fill="#953703" stroke="black" points="6043.75,-2910.62 6054.34,-2910.47 6045.96,-2903.98 6043.75,-2910.62"/>
<polygon fill="#953703" stroke="black" points="3503.61,-2277.89 3493.31,-2280.36 3502.91,-2284.86 3503.61,-2277.89"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge482" 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="M6125.95,-2920.48C6284.41,-2908.28 6908.38,-2856.71 7414,-2765.35 7521.14,-2745.99 7544.29,-2723.25 7652,-2707.36 7799.07,-2685.68 8185.29,-2734.25 8320,-2671.36 8334.75,-2664.48 8507.73,-2467.87 8520,-2457.17 8688.93,-2309.86 8820.26,-2360.63 8932,-2166.33"/>
<path fill="none" stroke="black" d="M8932,-2164.33C8941.93,-2121.11 8921.37,-2107.08 8934,-2064.57"/>
<path fill="none" stroke="black" d="M8934,-2062.57C8945.34,-2024.41 8983.05,-1998.42 9015.43,-1982.55"/>
<polygon fill="#953703" stroke="black" points="9017.26,-1985.56 9024.83,-1978.15 9014.29,-1979.22 9017.26,-1985.56"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge483" 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="M6146,-2829.34C6176.44,-2691.5 6372,-2855.01 6450,-2737.36"/>
<path fill="none" stroke="black" d="M6450,-2735.36C6468.15,-2707.97 6421.51,-2703.1 6413,-2671.36 6402.74,-2633.12 6386.18,-2611.4 6413,-2582.27 6445.93,-2546.51 6800.72,-2551.89 6849,-2546.27 6921.62,-2537.81 7004.06,-2525.08 7062.25,-2515.56"/>
<polygon fill="#953703" stroke="black" points="7063.16,-2518.96 7072.46,-2513.88 7062.02,-2512.05 7063.16,-2518.96"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_build_operations -->
<g id="edge484" 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="M6450,-2735.36C6460.82,-2719.03 6468.38,-2699.05 6473.57,-2680.75"/>
<polygon fill="#953703" stroke="black" points="6476.95,-2681.65 6476.14,-2671.09 6470.19,-2679.85 6476.95,-2681.65"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge485" 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="M6119.75,-2907.67C6170,-2883.23 6271.3,-2835.26 6360,-2801.35 6404.68,-2784.27 6691.17,-2694.32 6829.48,-2651.07"/>
<polygon fill="#953703" stroke="black" points="6830.68,-2654.37 6839.18,-2648.04 6828.59,-2647.69 6830.68,-2654.37"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_build_printer -->
<g id="edge486" 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="M6049.85,-2922.95C5803.71,-2920.42 4436.94,-2904.5 4022,-2859.33 3931.18,-2849.44 3304.75,-2717.87 3214,-2707.36 3036.12,-2686.76 2577.55,-2731.82 2409,-2671.36 2402.39,-2668.99 2395.91,-2665.59 2389.81,-2661.72"/>
<polygon fill="#953703" stroke="black" points="2391.4,-2658.56 2381.18,-2655.77 2387.43,-2664.32 2391.4,-2658.56"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge487" 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="M6049.77,-2923.04C5782.25,-2920.98 4187.41,-2906.82 3705,-2859.33 3552.88,-2844.36 3517.07,-2824.64 3366,-2801.35 3062.73,-2754.59 2987.57,-2735.38 2682,-2707.36 2509.87,-2691.58 2069.89,-2723.21 1905,-2671.36 1897.3,-2668.94 1889.62,-2665.45 1882.32,-2661.47"/>
<polygon fill="#953703" stroke="black" points="1883.71,-2658.23 1873.3,-2656.22 1880.18,-2664.28 1883.71,-2658.23"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge488" 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="M6049.75,-2922.85C5719.06,-2918.69 3348.32,-2888 3034,-2859.33 2614.29,-2821.05 2515.91,-2761.85 2098,-2707.36 1936.36,-2686.29 1887.18,-2724.29 1733,-2671.36 1724.73,-2668.52 1716.43,-2664.52 1708.6,-2660.08"/>
<polygon fill="#953703" stroke="black" points="1710.36,-2657.06 1699.99,-2654.92 1706.77,-2663.06 1710.36,-2657.06"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_console -->
<g id="edge489" 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="M4758,-2735.36C4638.78,-2593.99 4691.67,-2512.04 4607,-2347.63 4601.19,-2336.36 4594.05,-2324.64 4587.1,-2314.03"/>
<polygon fill="#953703" stroke="black" points="4589.8,-2311.78 4581.34,-2305.4 4583.98,-2315.66 4589.8,-2311.78"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_email -->
<g id="edge490" 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="M6068.87,-2899.05C6006.46,-2821.57 5799.58,-2578.17 5572,-2457.17 5569.28,-2455.73 5410.26,-2416.75 5328.88,-2396.85"/>
<polygon fill="#953703" stroke="black" points="5329.43,-2393.39 5318.89,-2394.41 5327.77,-2400.19 5329.43,-2393.39"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_html -->
<g id="edge491" 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="M6109.12,-2900.05C6123.25,-2882.6 6140.26,-2857.33 6146,-2831.34"/>
<path fill="none" stroke="black" d="M6146,-2829.34C6159.71,-2767.23 6067.83,-2804.87 6018,-2765.35 5948.25,-2710.02 5837.35,-2504.6 5762,-2457.17 5687.61,-2410.36 5584.36,-2394.06 5524.42,-2388.4"/>
<polygon fill="#953703" stroke="black" points="5524.38,-2384.88 5514.11,-2387.49 5523.76,-2391.85 5524.38,-2384.88"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_report -->
<g id="edge492" 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="M4910,-2829.34C4896.43,-2819.38 4805.05,-2562.82 4802,-2546.27 4794.82,-2507.33 4779.91,-2490.04 4802,-2457.17 4849.13,-2387.06 4965.07,-2468.88 4978,-2385.4"/>
<path fill="none" stroke="black" d="M4978,-2383.4C5004.24,-2191.82 5307.87,-2167.87 5427.75,-2165.93"/>
<polygon fill="#953703" stroke="black" points="5427.79,-2169.43 5437.75,-2165.81 5427.71,-2162.43 5427.79,-2169.43"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge493" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6146,-2829.34C6150.46,-2818.25 6004.69,-2682.36 6000,-2671.36 5930.89,-2509.39 6006.67,-2449.27 5976,-2275.87"/>
<path fill="none" stroke="black" d="M5976,-2273.87C5970.38,-2246.5 5952.44,-2221.15 5934.96,-2201.94"/>
<polygon fill="#953703" stroke="black" points="5937.47,-2199.5 5928.06,-2194.63 5932.38,-2204.3 5937.47,-2199.5"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_report_telegram -->
<g id="edge494" 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="M6054.34,-2910.49C6037.65,-2904.74 6017.04,-2898.54 5998,-2895.33 5877.2,-2874.95 5010.61,-2902.61 4896,-2859.33 4819.42,-2830.41 4807.4,-2802.63 4758,-2737.36"/>
<path fill="none" stroke="black" d="M4758,-2735.36C4703.95,-2671.26 4628.6,-2707.66 4603,-2627.82"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_executor -->
<g id="edge495" 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="M6124.65,-2916.16C6225.58,-2896.56 6516.21,-2840.82 6759,-2801.35 7049.28,-2754.16 7121.18,-2734.66 7414,-2707.36 7505.91,-2698.8 8169.46,-2725.81 8244,-2671.36 8349.01,-2594.66 8299.51,-2515.29 8306,-2385.4"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_repository -->
<g id="edge496" 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="M6146,-2829.34C6196.15,-2713.09 6121.12,-2672.68 6114,-2546.27 6106.3,-2409.52 6062.48,-2365 6114,-2238.1 6227.89,-1957.52 6541.69,-1735.67 6657.4,-1661.16"/>
<polygon fill="#953703" stroke="black" points="6659.5,-1663.97 6666.04,-1655.64 6655.73,-1658.07 6659.5,-1663.97"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge497" 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="M5976,-2273.87C5966.65,-2228.3 5958.5,-2107.66 5976,-2064.57"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_client -->
<g id="edge498" 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="M6184,-2735.36C6196.25,-2665.63 6184.49,-2638.11 6228,-2582.27 6295.94,-2495.06 6337.5,-2490.21 6443,-2457.17 6448.11,-2455.57 7104.49,-2403.79 7289.79,-2389.2"/>
<polygon fill="#953703" stroke="black" points="7290.09,-2392.69 7299.79,-2388.41 7289.54,-2385.71 7290.09,-2392.69"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_watcher -->
<g id="edge499" 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="M9716,-2273.87C9735.17,-2062.1 9944,-2065.9 9944,-1853.27 9944,-1853.27 9944,-1853.27 9944,-1741.73 9944,-1647.18 9979.45,-1626.93 9982,-1532.43"/>
<path fill="none" stroke="black" d="M9982,-1530.43C9980.89,-1474.17 9984.05,-1409.45 9986.72,-1367.05"/>
<polygon fill="#953703" stroke="black" points="9990.21,-1367.24 9987.36,-1357.04 9983.23,-1366.79 9990.21,-1367.24"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_status_web_client -->
<g id="edge500" 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="M6146,-2829.34C6162.49,-2788.3 6175.95,-2780.85 6184,-2737.36"/>
<path fill="none" stroke="black" d="M6184,-2735.36C6196.39,-2668.43 6170.17,-2647.95 6188,-2582.27 6204.64,-2520.99 6203.33,-2491.1 6257,-2457.17 6368.4,-2386.75 6738.15,-2492.48 6849,-2421.17 6864.14,-2411.44 6850.68,-2390.32 6868,-2385.4"/>
<path fill="none" stroke="black" d="M6868,-2383.4C7061.68,-2327.28 7126.98,-2381.87 7316,-2311.63 7321.47,-2309.6 7326.99,-2307.03 7332.33,-2304.19"/>
<polygon fill="#953703" stroke="black" points="7334.13,-2307.19 7341.11,-2299.22 7330.68,-2301.1 7334.13,-2307.19"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_tree -->
<g id="edge501" 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="M6049.81,-2922.73C5799.55,-2918.75 4398.45,-2894.98 4212,-2859.33 4136.89,-2844.97 4122.05,-2826.97 4050,-2801.35 3931.86,-2759.34 3906.93,-2732.04 3784,-2707.36 3714.6,-2693.44 3201.82,-2717.34 3148,-2671.36 3049.12,-2586.9 3065.72,-2513.86 3086,-2385.4"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge502" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6184,-2735.36C6192.16,-2687.15 6298.11,-2603.8 6342,-2582.27 6443.18,-2532.64 6485.6,-2580.43 6593,-2546.27 6607.89,-2541.53 6623.34,-2534.38 6636.92,-2527.23"/>
<polygon fill="#953703" stroke="black" points="6638.86,-2530.16 6645.99,-2522.32 6635.53,-2524.01 6638.86,-2530.16"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge503" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6146,-2829.34C6152.65,-2805.91 6281.31,-2689.1 6298,-2671.36 6334.88,-2632.17 6331.91,-2606.42 6380,-2582.27 6517.77,-2513.08 6580.62,-2600.31 6725,-2546.27 6731.86,-2543.7 6738.67,-2540.19 6745.13,-2536.27"/>
<polygon fill="#953703" stroke="black" points="6747.2,-2539.09 6753.68,-2530.71 6743.39,-2533.22 6747.2,-2539.09"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_github -->
<g id="edge504" 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="M6125.8,-2919.52C6189.65,-2913.27 6322.95,-2900.95 6436,-2895.33 6644.67,-2884.95 8112.18,-2905.25 8316,-2859.33 8345.49,-2852.68 8347.85,-2833.63 8378,-2831.34"/>
<path fill="none" stroke="black" d="M8378,-2829.34C8394.34,-2828.1 8387.55,-2809.08 8402,-2801.35 8518.43,-2738.98 8568.85,-2797.33 8697,-2765.35 8814.01,-2736.15 8944.63,-2679.18 9010.69,-2648.53"/>
<polygon fill="#953703" stroke="black" points="9012.38,-2651.6 9019.96,-2644.2 9009.41,-2645.26 9012.38,-2651.6"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_rsync -->
<g id="edge505" 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="M8302,-2829.34C8331.84,-2824.45 8334.92,-2809.61 8364,-2801.35 8482.99,-2767.53 8524.29,-2809.09 8640,-2765.35 8683.12,-2749.05 8686.22,-2730.66 8726,-2707.36 8763.75,-2685.26 8808.4,-2663.12 8840.59,-2647.84"/>
<polygon fill="#953703" stroke="black" points="8842.2,-2650.95 8849.74,-2643.52 8839.21,-2644.62 8842.2,-2650.95"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge506" 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="M6125.8,-2919.52C6189.65,-2913.28 6322.95,-2900.97 6436,-2895.33 6538.5,-2890.21 8192.78,-2908.26 8283,-2859.33 8296.22,-2852.16 8287.16,-2833.77 8302,-2831.34"/>
<path fill="none" stroke="black" d="M8302,-2829.34C8331.84,-2824.45 8335.9,-2812.5 8364,-2801.35 8445.26,-2769.11 8478.78,-2788.06 8550,-2737.36"/>
<path fill="none" stroke="black" d="M8550,-2735.36C8563.35,-2725.85 8560.77,-2717.04 8574,-2707.36 8607.12,-2683.15 8623.71,-2692.29 8659,-2671.36 8665.41,-2667.56 8671.9,-2663.09 8678.06,-2658.49"/>
<polygon fill="#953703" stroke="black" points="8680.45,-2661.06 8686.22,-2652.18 8676.17,-2655.52 8680.45,-2661.06"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_upload -->
<g id="edge507" 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="M6125.88,-2920.21C6349.75,-2901.8 7502.03,-2806.42 7855,-2765.35 7928.03,-2756.85 8442.62,-2700.78 8510,-2671.36 8567.66,-2646.19 8568.49,-2618.39 8620,-2582.27 8649.2,-2561.79 8683.77,-2541.08 8710.21,-2525.92"/>
<polygon fill="#953703" stroke="black" points="8712.25,-2528.79 8719.2,-2520.8 8708.78,-2522.71 8712.25,-2528.79"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge508" class="edge">
<title>ahriman_models_package&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6123.97,-2914.35C6167.58,-2903.1 6243.07,-2882.48 6306,-2859.33 6365.37,-2837.49 6374.72,-2817.05 6436,-2801.35 6928.47,-2675.13 7068.79,-2741.93 7576,-2707.36 7650.16,-2702.31 8181.04,-2710.88 8244,-2671.36 8262.72,-2659.62 8249.64,-2640.12 8268,-2627.82"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_counters -->
<g id="edge509" 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="M6125.8,-2919.51C6189.64,-2913.25 6322.95,-2900.91 6436,-2895.33 6653.11,-2884.61 8177.35,-2893.62 8392,-2859.33 8407.52,-2856.85 8424.06,-2852.35 8438.72,-2847.68"/>
<polygon fill="#953703" stroke="black" points="8440.14,-2850.9 8448.54,-2844.44 8437.95,-2844.25 8440.14,-2850.9"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_models_result -->
<g id="edge510" 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="M6054.33,-2910.54C6037.64,-2904.8 6017.03,-2898.6 5998,-2895.33 5589.45,-2825.17 5474.55,-2929.49 5066,-2859.33 5050.54,-2856.68 5034.03,-2852.08 5019.44,-2847.38"/>
<polygon fill="#953703" stroke="black" points="5020.27,-2843.96 5009.67,-2844.12 5018.05,-2850.6 5020.27,-2843.96"/>
</g>
<!-- ahriman_models_package&#45;&gt;ahriman_web_views_status_package -->
<g id="edge511" 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="M8378,-2829.34C8391.87,-2828.31 8380.27,-2808.82 8392,-2801.35 8452.98,-2762.49 9641.38,-2815.98 9693,-2765.35 9770.74,-2689.09 9715.76,-2384.76 9716,-2275.87"/>
<path fill="none" stroke="black" d="M9716,-2273.87C9662.64,-1831.28 9608,-1641.09 9874,-1283.36 9945.24,-1187.55 10187.17,-996.54 10299,-954.74 10430.15,-905.72 10799.17,-973.55 10928,-918.74 10932.14,-916.98 10936.15,-914.68 10939.96,-912.07"/>
<polygon fill="#953703" stroke="black" points="10942.17,-914.79 10947.97,-905.92 10937.9,-909.24 10942.17,-914.79"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge512" 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="M6979.34,-2989.43C6983.48,-2969.5 6985.01,-2943.15 6971,-2925.32"/>
<path fill="none" stroke="black" d="M6971,-2923.32C6943.08,-2887.8 6911.45,-2900.11 6892,-2859.33 6865.01,-2802.74 6875.31,-2729.3 6887.51,-2680.47"/>
<polygon fill="#bf5921" stroke="black" points="6890.91,-2681.3 6890.05,-2670.74 6884.14,-2679.54 6890.91,-2681.3"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_core_repository_executor -->
<g id="edge513" class="edge">
<title>ahriman_models_package_description&#45;&gt;ahriman_core_repository_executor</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M7044.69,-3012.76C7162.27,-3004.67 7386.46,-2985.5 7459,-2953.31 7576.86,-2901.02 7591.91,-2859.51 7680,-2765.35 7701.92,-2741.92 7694.74,-2722.55 7723,-2707.36 7854.93,-2636.47 8278.11,-2763.74 8396,-2671.36 8417.46,-2654.55 8491.78,-2364.75 8546,-2064.57"/>
</g>
<!-- ahriman_models_package_description&#45;&gt;ahriman_models_package -->
<g id="edge514" 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="M6899.11,-3009.82C6724.62,-2991.64 6282.26,-2945.56 6135.87,-2930.31"/>
<polygon fill="#bf5921" stroke="black" points="6136.15,-2926.82 6125.85,-2929.26 6135.43,-2933.78 6136.15,-2926.82"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_ahriman -->
<g id="edge515" 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="M6460.54,-3111.12C7003.27,-3109.54 10907.74,-3096.55 11425,-3047.3 11483.99,-3041.68 11893.99,-2972.66 11950,-2953.31 12034.19,-2924.23 12057.5,-2915.03 12127,-2859.33 12161.68,-2831.54 12225.97,-2739.18 12257,-2707.36 12440.66,-2519.09 12521.59,-2507.61 12697,-2311.63 12776.89,-2222.38 12789.11,-2193.25 12854,-2092.56 12920.5,-1989.36 12992,-1976.04 12992,-1853.27 12992,-1853.27 12992,-1853.27 12992,-1428.67 12992,-1279.62 13068,-1251.09 13068,-1102.05 13068,-1102.05 13068,-1102.05 13068,-990.51 13068,-881.74 13126.62,-865.25 13144,-757.87"/>
<path fill="none" stroke="black" d="M13144,-755.87C13148.62,-708.3 13138.26,-695.78 13144,-648.34"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge516" 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="M6338.22,-3103.93C6025.5,-3065.36 4590.72,-2887.13 4554,-2859.33 4398.6,-2741.66 4486,-2620.1 4379,-2457.17 4140.71,-2094.35 3712,-2177.8 3712,-1743.73 3712,-1743.73 3712,-1743.73 3712,-1530.43 3712,-1437.4 3722.21,-1413.59 3712,-1321.13"/>
<path fill="none" stroke="black" d="M3712,-1319.13C3706.44,-1271.66 3748.11,-1242.9 3712,-1211.59"/>
<path fill="none" stroke="black" d="M3712,-1209.59C3651.26,-1156.91 3562.72,-1129.32 3497.94,-1115.35"/>
<polygon fill="#e55405" stroke="black" points="3498.26,-1111.85 3487.75,-1113.23 3496.83,-1118.7 3498.26,-1111.85"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge517" 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="M6450,-2923.32C6466.93,-2882.46 6481.73,-2875.12 6488,-2831.34"/>
<path fill="none" stroke="black" d="M6488,-2829.34C6495.84,-2774.65 6483.88,-2754.92 6512,-2707.36 6524.69,-2685.91 6544.45,-2693.95 6555,-2671.36 6572.56,-2633.75 6560.3,-2587.49 6545.34,-2552.93"/>
<polygon fill="#e55405" stroke="black" points="6548.38,-2551.18 6541.07,-2543.51 6542.01,-2554.07 6548.38,-2551.18"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_repository_update_handler -->
<g id="edge518" 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="M6383.77,-3083.97C6372.54,-3058.45 6360.92,-3019.84 6375,-2989.31 6393.35,-2949.53 6433.23,-2965.8 6450,-2925.32"/>
<path fill="none" stroke="black" d="M6450,-2923.32C6530.62,-2702.13 6128,-2738.15 6128,-2502.72 6128,-2502.72 6128,-2502.72 6128,-2383.4 6128,-2318.52 6131.95,-2300.44 6114,-2238.1 6095.06,-2172.34 5964.32,-2030.23 5976,-1962.8"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_core_spawn -->
<g id="edge519" 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="M6460.17,-3110.45C6713.22,-3106.8 7690.43,-3090.53 8493,-3047.3 9098.23,-3014.69 9831.97,-2947.79 10024.11,-2929.84"/>
<polygon fill="#e55405" stroke="black" points="10024.53,-2933.32 10034.16,-2928.9 10023.88,-2926.35 10024.53,-2933.32"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_models_package -->
<g id="edge520" 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="M6340.89,-3100.35C6292.84,-3088.31 6225.51,-3064.37 6184,-3019.3"/>
</g>
<!-- ahriman_models_package_source&#45;&gt;ahriman_models_remote_source -->
<g id="edge521" 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="M6410.9,-3083.69C6414.94,-3075.05 6419.46,-3065.37 6423.75,-3056.2"/>
<polygon fill="#e55405" stroke="black" points="6427.04,-3057.42 6428.11,-3046.88 6420.7,-3054.46 6427.04,-3057.42"/>
</g>
<!-- ahriman_models_pkgbuild_patch -->
<g id="node123" class="node">
<title>ahriman_models_pkgbuild_patch</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="3399" cy="-2626.82" rx="57.05" ry="28.98"/>
<text text-anchor="middle" x="3399" y="-2635.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="3399" y="-2624.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="3399" y="-2613.32" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">pkgbuild_patch</text>
</g>
<!-- ahriman_models_pkgbuild_patch&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge522" class="edge">
<title>ahriman_models_pkgbuild_patch&#45;&gt;ahriman_core_build_tools_sources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M3428.59,-2601.81C3453.01,-2579.14 3483.71,-2542.72 3484,-2502.72"/>
<path fill="none" stroke="black" d="M3484,-2500.72C3484.38,-2446.76 3431.53,-2437.39 3446,-2385.4"/>
</g>
<!-- ahriman_models_property -->
<g id="node124" class="node">
<title>ahriman_models_property</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="1636" cy="-2924.32" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="1636" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="1636" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="1636" y="-2910.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">property</text>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_aur_printer -->
<g id="edge523" 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="M1570,-2735.36C1546.34,-2694.82 1524.6,-2698.06 1486,-2671.36 1480.87,-2667.82 1475.6,-2663.95 1470.44,-2660.03"/>
<polygon fill="#f96210" stroke="black" points="1472.51,-2657.21 1462.46,-2653.86 1468.23,-2662.75 1472.51,-2657.21"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_configuration_printer -->
<g id="edge524" 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="M1616.33,-2899.43C1602.19,-2881.48 1583.34,-2855.86 1570,-2831.34"/>
<path fill="none" stroke="black" d="M1570,-2829.34C1536.5,-2767.76 1530.51,-2742.77 1470,-2707.36 1390.53,-2660.87 1353.13,-2701.11 1266,-2671.36 1256.97,-2668.28 1247.72,-2664.33 1238.83,-2660.06"/>
<polygon fill="#f96210" stroke="black" points="1240.23,-2656.85 1229.72,-2655.53 1237.11,-2663.12 1240.23,-2656.85"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_package_printer -->
<g id="edge525" 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="M1653.05,-2898.13C1687.43,-2847.34 1765.35,-2732.21 1807.56,-2669.84"/>
<polygon fill="#f96210" stroke="black" points="1810.56,-2671.65 1813.27,-2661.41 1804.76,-2667.72 1810.56,-2671.65"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_printer -->
<g id="edge526" 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="M1570,-2829.34C1550.46,-2793.43 1590.61,-2772.66 1570,-2737.36"/>
<path fill="none" stroke="black" d="M1570,-2735.36C1554.76,-2709.25 1536.45,-2717.59 1508,-2707.36 1450.78,-2686.79 1430.27,-2698.8 1376,-2671.36 1370.29,-2668.48 1364.61,-2664.95 1359.19,-2661.15"/>
<polygon fill="#f96210" stroke="black" points="1361.03,-2658.16 1350.91,-2655.03 1356.87,-2663.79 1361.03,-2658.16"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_update_printer -->
<g id="edge527" 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="M1664,-2735.36C1658.9,-2715.59 1658.16,-2693.09 1658.98,-2673.79"/>
<polygon fill="#f96210" stroke="black" points="1662.48,-2673.92 1659.56,-2663.74 1655.49,-2673.52 1662.48,-2673.92"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge528" 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="M1646.81,-2896.18C1659.84,-2859.65 1678.3,-2792.84 1664,-2737.36"/>
<path fill="none" stroke="black" d="M1664,-2735.36C1659.91,-2719.49 1651.71,-2718.82 1640,-2707.36 1622.85,-2690.59 1602.51,-2673.53 1584.89,-2659.53"/>
<polygon fill="#f96210" stroke="black" points="1587.03,-2656.76 1577.01,-2653.32 1582.7,-2662.26 1587.03,-2656.76"/>
</g>
<!-- ahriman_models_property&#45;&gt;ahriman_core_formatters_version_printer -->
<g id="edge529" class="edge">
<title>ahriman_models_property&#45;&gt;ahriman_core_formatters_version_printer</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M1609.7,-2903C1593.92,-2890.63 1573.56,-2874.37 1556,-2859.33 1518.01,-2826.81 1435.41,-2728.32 1390,-2707.36 1272.08,-2652.94 1221.69,-2716.74 1100,-2671.36 1092.75,-2668.66 1085.51,-2665.01 1078.63,-2660.96"/>
<polygon fill="#f96210" stroke="black" points="1080.48,-2657.98 1070.14,-2655.66 1076.77,-2663.92 1080.48,-2657.98"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge530" 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="M6386.3,-3009.43C6233.63,-2987.75 5789.8,-2926.72 5419,-2895.33 5259.81,-2881.86 4853.17,-2907.98 4701,-2859.33 4627.14,-2835.71 4609,-2820.01 4554,-2765.35 4471.7,-2683.56 4464.02,-2649.99 4412,-2546.27 4393.07,-2508.52 4412.46,-2482.94 4379,-2457.17 4313.2,-2406.5 4088.78,-2435.65 4007,-2421.17 3817.67,-2387.66 3598.37,-2323.02 3499.78,-2292.54"/>
<polygon fill="#af4a13" stroke="black" points="3500.64,-2289.14 3490.05,-2289.52 3498.57,-2295.83 3500.64,-2289.14"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge531" 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="M6452,-2989.56C6456.15,-2978.42 6460.67,-2965.37 6464,-2953.31 6478.72,-2900.06 6482.5,-2886.31 6488,-2831.34"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_core_database_operations_package_operations -->
<g id="edge532" 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="M6469.96,-2992.94C6546.89,-2928.23 6757.05,-2751.43 6853.9,-2669.96"/>
<polygon fill="#af4a13" stroke="black" points="6856.4,-2672.43 6861.8,-2663.32 6851.89,-2667.08 6856.4,-2672.43"/>
</g>
<!-- ahriman_models_remote_source&#45;&gt;ahriman_models_package -->
<g id="edge533" 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="M6390.8,-3004.22C6322.09,-2986.32 6199.76,-2954.44 6133.56,-2937.19"/>
<polygon fill="#af4a13" stroke="black" points="6134.39,-2933.79 6123.83,-2934.66 6132.62,-2940.57 6134.39,-2933.79"/>
</g>
<!-- ahriman_models_report_settings -->
<g id="node126" class="node">
<title>ahriman_models_report_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="4978" cy="-2501.72" rx="57.97" ry="28.98"/>
<text text-anchor="middle" x="4978" y="-2510.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="4978" y="-2499.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="4978" y="-2488.22" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">report_settings</text>
</g>
<!-- ahriman_models_report_settings&#45;&gt;ahriman_core_report_report -->
<g id="edge534" 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="M4975.41,-2472.54C4973.87,-2449.06 4973.06,-2414.82 4978,-2385.4"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_handler -->
<g id="edge535" 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="M5805.86,-3980.53C6222.7,-3971.84 8593.63,-3919.8 9313,-3845.83 9563.17,-3820.1 9627.5,-3814.74 9871,-3751.84 9875.04,-3750.8 12134.96,-2956.17 12138,-2953.31 12171.02,-2922.27 12439.19,-2244.18 12456,-2202.1 12485.51,-2128.23 12460.87,-2088.87 12519,-2034.57 12559.69,-1996.57 12589.05,-2023.17 12639,-1998.57 12700.69,-1968.2 12763.76,-1919.42 12802.65,-1886.86"/>
<polygon fill="#e55405" stroke="black" points="12805.18,-1889.3 12810.57,-1880.18 12800.67,-1883.95 12805.18,-1889.3"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_application_handlers_setup -->
<g id="edge536" 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="M5679.83,-3980.86C5186.19,-3973.4 1964.63,-3924.47 1916,-3917.83 1297.16,-3833.35 1036.86,-3962.47 556,-3563.88 467.45,-3490.48 114,-2742.84 114,-2627.82 114,-2627.82 114,-2627.82 114,-1851.27 114,-1708.56 152,-1675.14 152,-1532.43 152,-1532.43 152,-1532.43 152,-1428.67 152,-1332.19 135.97,-1306.72 152,-1211.59"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_alpm_repo -->
<g id="edge537" 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="M5805.51,-3979.17C5966.77,-3972.06 6409.97,-3950.86 6778,-3917.83 7050.34,-3893.38 7150.9,-3980.28 7389,-3845.83 7417.4,-3829.79 7404.85,-3802.49 7434,-3787.84 7611.47,-3698.71 9039.34,-3832.09 9221,-3751.84 9253.49,-3737.49 9247.33,-3714.84 9276,-3693.86 9302.71,-3674.32 9526.43,-3591.93 9544,-3563.88 9574.79,-3514.72 9558.39,-3484.7 9530,-3434.13"/>
<path fill="none" stroke="black" d="M9530,-3432.13C9516.78,-3406.78 9500.9,-3378.95 9488.02,-3356.98"/>
<polygon fill="#e55405" stroke="black" points="9490.98,-3355.1 9482.89,-3348.25 9484.94,-3358.65 9490.98,-3355.1"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_sources -->
<g id="edge538" 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="M5679.9,-3982.22C5265.46,-3984.18 2944.02,-3984.72 2749,-3751.84 2670.37,-3657.95 2928.89,-3285.14 2986,-2953.31 3000.33,-2870.07 2966.94,-2849.33 2958,-2765.35 2955.27,-2739.72 2945.79,-2730.06 2958,-2707.36 3081.16,-2478.57 3364.51,-2632.14 3446,-2385.4"/>
<path fill="none" stroke="black" d="M3446,-2383.4C3446.46,-2363.25 3446.71,-2340.96 3446.85,-2321.92"/>
<polygon fill="#e55405" stroke="black" points="3450.35,-2321.74 3446.91,-2311.72 3443.35,-2321.69 3450.35,-2321.74"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_build_tools_task -->
<g id="edge539" 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="M5805.83,-3979.79C5995.44,-3973.44 6578.57,-3952.31 7061,-3917.83 7230.65,-3905.7 7272.39,-3894.62 7442,-3881.83 7697.68,-3862.54 9525.03,-3881.91 9746,-3751.84 9873.71,-3676.67 9882.82,-3612.25 9924,-3469.9 9933.08,-3438.5 9932.34,-3427.96 9924,-3396.36 9907.68,-3334.55 9899.95,-3314.65 9853,-3271.26 9825.25,-3245.62 9806.53,-3257.51 9776,-3235.26 9559.7,-3077.65 9048,-2543.5 9048,-2275.87 9048,-2275.87 9048,-2275.87 9048,-2164.33 9048,-2110.66 9054.76,-2049.31 9060.22,-2008.54"/>
<polygon fill="#e55405" stroke="black" points="9063.72,-2008.77 9061.61,-1998.38 9056.78,-2007.82 9063.72,-2008.77"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_configuration -->
<g id="edge540" 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="M5805.78,-3980.66C5974.51,-3976.74 6426.65,-3960.68 6450,-3900.83"/>
<path fill="none" stroke="black" d="M6450,-3898.83C6461.99,-3868.08 6414.8,-3874.23 6398,-3845.83 6364.25,-3788.77 6346.71,-3712.72 6338.7,-3667.76"/>
<polygon fill="#e55405" stroke="black" points="6342.14,-3667.11 6337,-3657.84 6335.24,-3668.29 6342.14,-3667.11"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_remotes -->
<g id="edge541" 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="M6450,-3898.83C6512.32,-3831.53 6440.14,-3784.48 6426,-3693.86 6383.51,-3421.58 6307.76,-3358.68 6318,-3083.3 6326.33,-2859.34 6247.17,-2766.36 6375,-2582.27 6392.91,-2556.48 6422,-2538.14 6449.29,-2525.61"/>
<polygon fill="#e55405" stroke="black" points="6450.7,-2528.81 6458.45,-2521.58 6447.89,-2522.4 6450.7,-2528.81"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_package_statuses -->
<g id="edge542" 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="M6450,-3898.83C6497.01,-3851.4 6868,-3533.63 6868,-3113.29 6868,-3113.29 6868,-3113.29 6868,-3017.3 6868,-2802.02 6970.59,-2767.08 7081,-2582.27 7087.39,-2571.57 7094.81,-2560.46 7102.13,-2550.07"/>
<polygon fill="#e55405" stroke="black" points="7104.99,-2552.08 7107.96,-2541.91 7099.3,-2548.01 7104.99,-2552.08"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_database_data_patches -->
<g id="edge543" 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="M5679.98,-3981.47C5393.32,-3979.26 4221.84,-3963.05 4114,-3845.83 4096.55,-3826.86 4103.11,-3811.2 4114,-3787.84 4125.62,-3762.94 4478.28,-3493.1 4493,-3469.9 4588.2,-3319.85 4482.01,-3220.45 4595,-3083.3 4740.35,-2906.87 4879.91,-3002.64 5058,-2859.33 5070.33,-2849.41 5065.17,-2836.85 5080,-2831.34"/>
<path fill="none" stroke="black" d="M5080,-2829.34C5138.11,-2788.1 5178.07,-2817.14 5227,-2765.35 5282.26,-2706.85 5306.62,-2614.18 5316.93,-2555.99"/>
<polygon fill="#e55405" stroke="black" points="5320.42,-2556.35 5318.64,-2545.9 5313.52,-2555.18 5320.42,-2556.35"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_tree -->
<g id="edge544" 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="M5680.2,-3980.8C5238.42,-3973.57 2614.35,-3930.18 2576,-3917.83 2468.64,-3883.23 2158,-3742.67 2158,-3629.87 2158,-3629.87 2158,-3629.87 2158,-3533.89 2158,-3335.12 2310,-3312.05 2310,-3113.29 2310,-3113.29 2310,-3113.29 2310,-2923.32 2310,-2771.55 2211.2,-2710.11 2293,-2582.27 2313.58,-2550.11 2337.05,-2563.73 2371,-2546.27 2674.38,-2390.21 3006.51,-2506.04 3038,-2166.33"/>
<path fill="none" stroke="black" d="M3038,-2164.33C3033.07,-2142.46 3024.32,-2119 3016.45,-2100.32"/>
<polygon fill="#e55405" stroke="black" points="3019.62,-2098.82 3012.45,-2091.02 3013.19,-2101.59 3019.62,-2098.82"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_core_util -->
<g id="edge545" 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="M5805.24,-3978.51C6007.7,-3967.24 6665.49,-3926.42 7204,-3845.83 7234.87,-3841.21 7269.28,-3834.23 7296.01,-3828.4"/>
<polygon fill="#e55405" stroke="black" points="7296.85,-3831.8 7305.86,-3826.23 7295.34,-3824.96 7296.85,-3831.8"/>
</g>
<!-- ahriman_models_repository_paths&#45;&gt;ahriman_models_package -->
<g id="edge546" 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="M5680.03,-3980.65C5518.9,-3976.99 5101.32,-3963.2 5060,-3917.83 5049.23,-3906 5056.95,-3897.53 5060,-3881.83 5077.21,-3793.37 5074.33,-3759.56 5136,-3693.86 5161.3,-3666.9 5180.04,-3678.08 5211,-3657.86 5318.4,-3587.74 5353.69,-3573 5430,-3469.9 5487.34,-3392.43 5443.64,-3333.77 5517,-3271.26 5565.57,-3229.87 5602.15,-3269.5 5656,-3235.26 5684.23,-3217.31 5676.51,-3196.34 5704,-3177.28 5744.2,-3149.41 5765.65,-3165.76 5808,-3141.28 5897.18,-3089.72 5899.84,-3050.1 5983,-2989.31 6003.77,-2974.13 6028.26,-2959.06 6048.36,-2947.36"/>
<polygon fill="#e55405" stroke="black" points="6050.34,-2950.26 6057.26,-2942.23 6046.85,-2944.19 6050.34,-2950.26"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application -->
<g id="edge547" 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="M4950.68,-2808.21C4914.02,-2779.07 4842.75,-2727.86 4772,-2707.36 4695.19,-2685.12 3388.88,-2728.58 3333,-2671.36 3277.99,-2615.04 3332,-2041.53 3332,-1962.8 3332,-1962.8 3332,-1962.8 3332,-1632.19 3332,-1502.31 3276.93,-1164.23 3194,-1064.28 3167.77,-1032.67 3124.72,-1014.41 3090.02,-1004.23"/>
<polygon fill="#d14d05" stroke="black" points="3090.58,-1000.75 3080.01,-1001.44 3088.71,-1007.49 3090.58,-1000.75"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge548" 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="M4816,-2500.72C4773.4,-2434.55 4771.37,-2412.64 4727,-2347.63 4691.95,-2296.28 4680.2,-2285.52 4640,-2238.1 4540.58,-2120.81 3842.36,-1293.11 3712,-1211.59"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_application_application_repository -->
<g id="edge549" 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="M4947.19,-2811.22C4939.87,-2807.36 4931.85,-2803.73 4924,-2801.35 4920.73,-2800.36 3948.41,-2707.62 3945,-2707.36 3869.21,-2701.73 3318.07,-2722.67 3262,-2671.36 3206.15,-2620.26 3238,-2578.43 3238,-2502.72 3238,-2502.72 3238,-2502.72 3238,-2383.4 3238,-2191.66 3139.75,-2154.53 3142,-1962.8"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_application_handlers_triggers -->
<g id="edge550" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_application_handlers_triggers</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4946.84,-2811.32C4939.6,-2807.5 4931.7,-2803.87 4924,-2801.35 4781.34,-2754.59 4404.54,-2720.67 4255,-2707.36 4202.5,-2702.69 3346.85,-2705.86 3307,-2671.36 3249.38,-2621.49 3276,-2578.93 3276,-2502.72 3276,-2502.72 3276,-2502.72 3276,-2383.4 3276,-2162.07 3235.63,-2109.49 3216,-1889.03 3200.74,-1717.61 3205.51,-1674.15 3194,-1502.43 3188.59,-1421.79 3180,-1401.95 3180,-1321.13 3180,-1321.13 3180,-1321.13 3180,-1209.59 3180,-1144.13 3201.42,-1111.41 3156,-1064.28 3100.29,-1006.47 3051.97,-1061.74 2979,-1028.28 2976.21,-1027 2631.04,-760.76 2630,-757.87"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_console -->
<g id="edge551" 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="M4948,-2735.36C4925.39,-2669.72 4959.92,-2636.83 4917,-2582.27 4893.64,-2552.58 4867.58,-2572.08 4840,-2546.27 4823.86,-2531.17 4827.61,-2521.53 4816,-2502.72"/>
<path fill="none" stroke="black" d="M4816,-2500.72C4763.25,-2408.96 4659.18,-2335.62 4601.3,-2299.78"/>
<polygon fill="#d14d05" stroke="black" points="4602.77,-2296.59 4592.42,-2294.36 4599.12,-2302.56 4602.77,-2296.59"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_email -->
<g id="edge552" 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="M5140,-2500.72C5160.38,-2457.96 5205.23,-2425.88 5239.1,-2406.55"/>
<polygon fill="#d14d05" stroke="black" points="5240.85,-2409.58 5247.9,-2401.67 5237.45,-2403.46 5240.85,-2409.58"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_html -->
<g id="edge553" 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="M5010.97,-2818.17C5027.6,-2812.93 5047.78,-2806.68 5066,-2801.35 5123.95,-2784.38 5154.87,-2808.6 5197,-2765.35 5246.21,-2714.82 5225.63,-2509.43 5273,-2457.17 5294.23,-2433.76 5375.99,-2409.96 5429.05,-2396.5"/>
<polygon fill="#d14d05" stroke="black" points="5430.07,-2399.86 5438.92,-2394.03 5428.37,-2393.07 5430.07,-2399.86"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge554" 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="M5014.27,-2826.45C5066.31,-2821.07 5160.85,-2806.09 5230,-2765.35 5326.45,-2708.52 5408.4,-2602.58 5448.9,-2544.12"/>
<polygon fill="#d14d05" stroke="black" points="5451.8,-2546.07 5454.57,-2535.85 5446.03,-2542.12 5451.8,-2546.07"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_report -->
<g id="edge555" 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="M4991.28,-2803.43C5001.5,-2785.35 5014.72,-2760.42 5024,-2737.36"/>
<path fill="none" stroke="black" d="M5024,-2735.36C5052.8,-2663.75 4985.67,-2645.91 4942,-2582.27 4930.05,-2564.86 4918.35,-2566.06 4911,-2546.27 4897.22,-2509.15 4896.48,-2494.01 4911,-2457.17 4927,-2416.58 4970.78,-2428.44 4978,-2385.4"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_report_trigger -->
<g id="edge556" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_report_report_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5024,-2735.36C5034.42,-2701.64 5053.32,-2701.91 5071,-2671.36 5111.57,-2601.28 5105.16,-2575.83 5140,-2502.72"/>
<path fill="none" stroke="black" d="M5140,-2500.72C5175.71,-2429.05 5170.85,-2395.55 5235,-2347.63 5421.15,-2208.59 5707.88,-2176.17 5833.46,-2168.62"/>
<polygon fill="#d14d05" stroke="black" points="5833.88,-2172.1 5843.67,-2168.04 5833.49,-2165.11 5833.88,-2172.1"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_report_telegram -->
<g id="edge557" 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="M4968.49,-2801.69C4963.26,-2783.29 4955.85,-2758.66 4948,-2737.36"/>
<path fill="none" stroke="black" d="M4948,-2735.36C4934.08,-2697.59 4747.96,-2481.64 4716,-2457.17 4682.64,-2431.63 4638.74,-2412.46 4606.01,-2400.39"/>
<polygon fill="#d14d05" stroke="black" points="4606.83,-2396.97 4596.23,-2396.87 4604.46,-2403.55 4606.83,-2396.97"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_repository_executor -->
<g id="edge558" 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="M5014.29,-2827.72C5134.42,-2822.38 5514.47,-2803.43 5827,-2765.35 5980.47,-2746.65 6016.05,-2721.65 6170,-2707.36 6226.46,-2702.12 8165.31,-2704.95 8211,-2671.36 8237.98,-2651.54 8300.78,-2418.48 8306,-2385.4"/>
<path fill="none" stroke="black" d="M8306,-2383.4C8313.22,-2270.05 8281.52,-2233.48 8325,-2128.56 8372.01,-2015.13 8436.5,-2018.33 8546,-1962.8"/>
<path fill="none" stroke="black" d="M8546,-1960.8C8606.5,-1926.64 9181.18,-1920.04 9162,-1853.27"/>
<path fill="none" stroke="black" d="M9162,-1851.27C9144.78,-1791.32 7114.62,-1751.31 6755.1,-1744.7"/>
<polygon fill="#d14d05" stroke="black" points="6755.02,-1741.2 6744.96,-1744.51 6754.89,-1748.19 6755.02,-1741.2"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger -->
<g id="edge559" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5014.12,-2828.24C5111.76,-2824.8 5378.4,-2811.58 5595,-2765.35 5849.84,-2710.95 5896.58,-2633.91 6152,-2582.27 6344.75,-2543.3 6403.87,-2600.13 6593,-2546.27 6608.16,-2541.95 6623.78,-2534.84 6637.43,-2527.6"/>
<polygon fill="#d14d05" stroke="black" points="6639.46,-2530.48 6646.54,-2522.6 6636.09,-2524.34 6639.46,-2530.48"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger_loader -->
<g id="edge560" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_triggers_trigger_loader</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5014.24,-2828.55C5123.04,-2825.77 5443.28,-2813.75 5704,-2765.35 5994.04,-2711.5 6052.12,-2636.99 6342,-2582.27 6510.01,-2550.55 6564.57,-2605.38 6725,-2546.27 6731.96,-2543.71 6738.86,-2540.16 6745.39,-2536.19"/>
<polygon fill="#d14d05" stroke="black" points="6747.56,-2538.95 6754.04,-2530.56 6743.74,-2533.08 6747.56,-2538.95"/>
</g>
<!-- ahriman_models_result&#45;&gt;ahriman_core_upload_upload_trigger -->
<g id="edge561" class="edge">
<title>ahriman_models_result&#45;&gt;ahriman_core_upload_upload_trigger</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5014.27,-2829.39C5162.43,-2829.16 5712.25,-2824.13 6160,-2765.35 6284.28,-2749.03 6311.46,-2721.56 6436,-2707.36 6535.82,-2695.99 8158.01,-2723.32 8244,-2671.36 8262.91,-2659.94 8249.16,-2639.37 8268,-2627.82"/>
<path fill="none" stroke="black" d="M8268,-2625.82C8339.15,-2582.15 8372.82,-2320.04 8383.79,-2212.41"/>
<polygon fill="#d14d05" stroke="black" points="8387.3,-2212.48 8384.81,-2202.19 8380.34,-2211.79 8387.3,-2212.48"/>
</g>
<!-- ahriman_models_sign_settings -->
<g id="node129" class="node">
<title>ahriman_models_sign_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#db6b2f" stroke="black" cx="5070" cy="-3628.87" rx="52.15" ry="28.98"/>
<text text-anchor="middle" x="5070" y="-3637.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="5070" y="-3626.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="5070" y="-3615.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">sign_settings</text>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_application_ahriman -->
<g id="edge562" 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="M5017.66,-3625.57C4896.88,-3620.34 4589.29,-3607.41 4332,-3599.88 3555.72,-3577.16 3358.93,-3628.34 2585,-3563.88 2298.06,-3539.98 2214.52,-3568.51 1944,-3469.9 1885.59,-3448.6 1879.4,-3426.46 1825,-3396.36 1800.89,-3383.01 1405.71,-3187.19 1380,-3177.28 1325.66,-3156.33 1309.35,-3159.4 1254,-3141.28 1139.6,-3103.83 1111.79,-3091.93 1000,-3047.3 823.16,-2976.69 772.14,-2966.87 615,-2859.33 506.05,-2784.77 462.72,-2778.08 385,-2671.36 358.33,-2634.75 152,-2065.43 152,-1962.8 152,-1962.8 152,-1962.8 152,-1851.27 152,-1708.56 114,-1675.14 114,-1532.43 114,-1532.43 114,-1532.43 114,-1428.67 114,-1332.19 97.97,-1306.72 114,-1211.59"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge563" 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="M5079.85,-3600.36C5092.26,-3563.17 5112,-3494.53 5112,-3434.13 5112,-3434.13 5112,-3434.13 5112,-3205.27 5112,-3007.82 5157.84,-2941.43 5297,-2801.35 5315.54,-2782.68 5325.63,-2784.18 5344,-2765.35 5396.77,-2711.25 5437.76,-2703.13 5444,-2627.82"/>
<path fill="none" stroke="black" d="M5444,-2625.82C5445.87,-2599.34 5453.04,-2570.59 5460.12,-2547.53"/>
<polygon fill="#db6b2f" stroke="black" points="5463.56,-2548.29 5463.24,-2537.7 5456.88,-2546.17 5463.56,-2548.29"/>
</g>
<!-- ahriman_models_sign_settings&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge564" 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="M5115.79,-3614.7C5193.93,-3592.24 5358.07,-3545.15 5497,-3505.9 5671.08,-3456.71 5711.5,-3431.24 5889,-3396.36 6125.38,-3349.9 6413.37,-3327.33 6525.8,-3319.8"/>
<polygon fill="#db6b2f" stroke="black" points="6526.06,-3323.29 6535.8,-3319.13 6525.6,-3316.3 6526.06,-3323.29"/>
</g>
<!-- ahriman_models_smtp_ssl_settings -->
<g id="node130" class="node">
<title>ahriman_models_smtp_ssl_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="5120" cy="-2736.36" rx="67.76" ry="28.98"/>
<text text-anchor="middle" x="5120" y="-2744.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="5120" y="-2733.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="5120" y="-2722.86" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">smtp_ssl_settings</text>
</g>
<!-- ahriman_models_smtp_ssl_settings&#45;&gt;ahriman_core_report_email -->
<g id="edge565" 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="M5130.66,-2707.6C5150.4,-2656.97 5194.77,-2546.58 5240,-2457.17 5245.34,-2446.61 5251.57,-2435.46 5257.57,-2425.17"/>
<polygon fill="#c27347" stroke="black" points="5260.68,-2426.78 5262.75,-2416.39 5254.66,-2423.22 5260.68,-2426.78"/>
</g>
<!-- ahriman_models_upload_settings -->
<g id="node131" class="node">
<title>ahriman_models_upload_settings</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="8214" cy="-2830.34" rx="60.21" ry="28.98"/>
<text text-anchor="middle" x="8214" y="-2838.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="8214" y="-2827.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="8214" y="-2816.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">upload_settings</text>
</g>
<!-- ahriman_models_upload_settings&#45;&gt;ahriman_core_upload_upload -->
<g id="edge566" 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="M8247.04,-2806.05C8272.69,-2787.77 8309,-2761.46 8340,-2737.36"/>
<path fill="none" stroke="black" d="M8340,-2735.36C8442.14,-2655.93 8522.69,-2751.85 8624,-2671.36 8658.43,-2644.01 8640.95,-2617.69 8667,-2582.27 8680.58,-2563.8 8698.82,-2546.08 8714.92,-2532.07"/>
<polygon fill="#c27347" stroke="black" points="8717.28,-2534.66 8722.62,-2525.5 8712.74,-2529.33 8717.28,-2534.66"/>
</g>
<!-- ahriman_models_user -->
<g id="node132" class="node">
<title>ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#b84709" stroke="black" cx="7379" cy="-2924.32" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="7379" y="-2932.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="7379" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">models.</text>
<text text-anchor="middle" x="7379" y="-2910.82" 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="edge567" 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="M7340.65,-2921.99C7214.96,-2917.65 6804,-2903.74 6464,-2895.33 6039.61,-2884.84 4976.1,-2904.6 4554,-2859.33 4380.58,-2840.73 3956.95,-2729.89 3784,-2707.36 3660.34,-2691.26 3339.47,-2718.44 3224,-2671.36 3087.23,-2615.6 2833.2,-2332.96 2720,-2238.1 2645.89,-2175.98 2411.28,-2055.28 2383,-1962.8"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge568" 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="M7416.89,-2919.39C7474.97,-2913.48 7589.52,-2902.25 7687,-2895.33 7765.24,-2889.78 8322.86,-2896.37 8392,-2859.33 8420.28,-2844.18 8406.55,-2816.17 8435,-2801.35 8562.27,-2735.05 9600.01,-2834.04 9726,-2765.35 9762.44,-2745.48 9904.92,-2483.5 9937,-2457.17 10303.17,-2156.74 10879.1,-2010.57 11046.76,-1972.88"/>
<polygon fill="#b84709" stroke="black" points="11047.75,-1976.25 11056.74,-1970.66 11046.22,-1969.41 11047.75,-1976.25"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge569" 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="M7361.33,-2898.51C7337.94,-2862.44 7302.08,-2793.67 7324,-2737.36"/>
<path fill="none" stroke="black" d="M7324,-2735.36C7330.57,-2717.36 7337.47,-2697.56 7343.51,-2679.9"/>
<polygon fill="#b84709" stroke="black" points="7346.86,-2680.93 7346.78,-2670.34 7340.24,-2678.67 7346.86,-2680.93"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_formatters_user_printer -->
<g id="edge570" 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="M7340.65,-2921.98C7214.96,-2917.61 6804.01,-2903.61 6464,-2895.33 5581.45,-2873.83 5360.05,-2896.11 4478,-2859.33 4457.99,-2858.5 1618.75,-2678.4 1600,-2671.36 1593.58,-2668.96 1587.28,-2665.57 1581.35,-2661.73"/>
<polygon fill="#b84709" stroke="black" points="1583.15,-2658.72 1572.95,-2655.85 1579.14,-2664.46 1583.15,-2658.72"/>
</g>
<!-- ahriman_models_user&#45;&gt;ahriman_core_status_web_client -->
<g id="edge571" 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="M7324,-2735.36C7343,-2683.3 7393.48,-2712.14 7431,-2671.36 7484.57,-2613.14 7493.97,-2581.61 7488,-2502.72"/>
</g>
<!-- ahriman_models_user_access -->
<g id="node133" class="node">
<title>ahriman_models_user_access</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="11365" cy="-3018.3" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="11365" y="-3026.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="11365" y="-3015.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="11365" y="-3004.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">user_access</text>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_application_ahriman -->
<g id="edge572" 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="M11416,-3015C11539.7,-3008.9 11852.66,-2990.18 11950,-2953.31 12397.98,-2783.64 12487.66,-2660.44 12816,-2311.63 12927.56,-2193.12 12952.17,-2152.17 13006,-1998.57 13096.24,-1741.1 13049.23,-1659.76 13106,-1392.9 13112.95,-1360.23 13180.75,-1135.43 13182,-1102.05"/>
<path fill="none" stroke="black" d="M13182,-1100.05C13171.25,-947.41 13120.13,-909.01 13144,-757.87"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_auth -->
<g id="edge573" 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="M11400,-2625.82C11394,-2500.34 11386.95,-2456.28 11450,-2347.63 11462.51,-2326.08 11482.45,-2334.22 11493,-2311.63 11506.83,-2282.02 11495.22,-2270.7 11493,-2238.1 11489.66,-2189.07 11486.59,-2176.94 11478,-2128.56 11472.91,-2099.89 11465.43,-2093.64 11464,-2064.57"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_auth_mapping -->
<g id="edge574" 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="M11380,-2923.32C11377.38,-2881.91 11404.39,-2871.98 11396,-2831.34"/>
<path fill="none" stroke="black" d="M11396,-2829.34C11366.15,-2684.71 11283.86,-2680.37 11222,-2546.27 11176.09,-2446.73 11171.89,-2418.15 11146,-2311.63 11130.54,-2248.03 11111.12,-2230.87 11122,-2166.33"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_core_database_operations_auth_operations -->
<g id="edge575" 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="M11314.01,-3016.81C10877.09,-3012.57 7777.7,-2981.47 7687,-2953.31 7544.69,-2909.13 7436.84,-2756.84 7388.68,-2677.21"/>
<polygon fill="#f96210" stroke="black" points="7391.51,-2675.13 7383.38,-2668.34 7385.5,-2678.72 7391.51,-2675.13"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_models_user -->
<g id="edge576" 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="M11313.87,-3017.26C10919.71,-3016.8 8359.08,-3011.6 7587,-2953.31 7531.45,-2949.12 7468.06,-2939.95 7426.01,-2933.25"/>
<polygon fill="#f96210" stroke="black" points="7426.49,-2929.78 7416.06,-2931.64 7425.38,-2936.69 7426.49,-2929.78"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge577" 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="M12010,-2735.36C12043.55,-2536.3 12275.85,-2080.43 12340,-1889.03 12376.41,-1780.42 12398.72,-1473.62 12480,-1392.9 12522.84,-1350.35 12574.4,-1404.92 12611,-1356.9 12630.81,-1330.9 12619.22,-1314.99 12611,-1283.36 12601.82,-1248.01 12569.5,-1248.07 12571,-1211.59"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_base -->
<g id="edge578" 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="M11388,-2164.33C11391.72,-2086.78 11362.02,-1878.77 11407,-1815.5 11455.71,-1746.98 11552.27,-1822.36 11582,-1743.73"/>
<path fill="none" stroke="black" d="M11582,-1741.73C11582.89,-1739.3 11540.57,-1562.94 11540,-1560.42 11531.19,-1521.69 11479.11,-1247.43 11462,-1211.59"/>
<path fill="none" stroke="black" d="M11462,-1209.59C11434.44,-1157.96 11381.83,-1160.43 11386,-1102.05"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_index -->
<g id="edge579" 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="M11405.77,-3000.9C11438.94,-2985.71 11484.86,-2960.2 11514,-2925.32"/>
<path fill="none" stroke="black" d="M11514,-2923.32C11551.73,-2878.18 11671.73,-2479.1 11682,-2421.17 11773.11,-1907.29 11707.67,-1769.21 11715,-1247.36 11715.46,-1214.68 11727.91,-1203.84 11715,-1173.82 11705.81,-1152.45 11691.09,-1156.33 11677,-1137.82 11666.1,-1123.49 11658.33,-1120.05 11658,-1102.05"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_add -->
<g id="edge580" 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="M12010,-2829.34C12021.63,-2790.15 12003.21,-2777.67 12010,-2737.36"/>
<path fill="none" stroke="black" d="M12010,-2735.36C12027.18,-2633.4 11993.87,-2604.85 12010,-2502.72"/>
<path fill="none" stroke="black" d="M12010,-2500.72C12036.16,-2335.04 12191.08,-1114.54 12076,-992.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge581" 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="M12010,-2500.72C12023.65,-2428.52 12128.96,-2271.87 12152,-2202.1 12212.01,-2020.34 12299.47,-1547.41 12318,-1356.9 12325.88,-1275.91 12331.52,-1254.05 12318,-1173.82 12298.31,-1056.96 12270.98,-1009.74 12166,-954.74 12052.48,-895.27 11899,-880.19 11821.73,-876.42"/>
<polygon fill="#f96210" stroke="black" points="11821.5,-872.9 11811.35,-875.96 11821.18,-879.9 11821.5,-872.9"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_request -->
<g id="edge582" 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="M11514,-2923.32C11540.44,-2896.72 11550.09,-2891.71 11569,-2859.33 11613.8,-2782.61 11608.97,-2755.67 11637,-2671.36 11727.81,-2398.26 11845.77,-1906.28 11848,-1889.03 11864.69,-1760.06 11850.43,-1726.45 11848,-1596.42 11845.33,-1453.75 11920.55,-1059.81 11824,-954.74 11779.46,-906.27 11589.7,-946.45 11530,-918.74 11525.92,-916.84 11521.95,-914.46 11518.16,-911.79"/>
<polygon fill="#f96210" stroke="black" points="11520.23,-908.96 11510.19,-905.56 11515.92,-914.48 11520.23,-908.96"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_service_search -->
<g id="edge583" 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="M11372.91,-2989.29C11377.2,-2971.15 11381.37,-2946.96 11380,-2925.32"/>
<path fill="none" stroke="black" d="M11380,-2923.32C11375.67,-2854.9 10741.41,-1948.33 10707,-1889.03 10699.22,-1875.63 10463.66,-1403.1 10452,-1392.9 10416.15,-1361.5 10386.05,-1389.18 10351,-1356.9 10225.28,-1241.09 10262.69,-1159.88 10228,-992.51"/>
<path fill="none" stroke="black" d="M10228,-990.51C10223.08,-970.11 10218.25,-947.54 10214.22,-927.81"/>
<polygon fill="#f96210" stroke="black" points="10217.61,-926.89 10212.2,-917.78 10210.75,-928.27 10217.61,-926.89"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_package -->
<g id="edge584" 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="M11396,-2829.34C11395.79,-2788.42 11405.94,-2777.84 11400,-2737.36"/>
<path fill="none" stroke="black" d="M11400,-2735.36C11384.66,-2630.79 11217,-2412.04 11184,-2311.63 11163.56,-2249.45 11160,-2231.78 11160,-2166.33 11160,-2166.33 11160,-2166.33 11160,-2062.57 11160,-2000.86 11184.39,-1968.91 11141,-1925.03 11064.84,-1848.04 10999.03,-1932.88 10900,-1889.03 10829.66,-1857.89 10810.84,-1842 10766,-1779.5 10689.33,-1672.62 10727.84,-1616.29 10662,-1502.43 10641.02,-1466.15 10562.37,-1393.53 10542,-1356.9 10483.91,-1252.42 10484.4,-1218.17 10456,-1102.05"/>
<path fill="none" stroke="black" d="M10456,-1100.05C10440.01,-1055.01 10420.37,-1024.37 10456,-992.51"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge585" 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="M11413.51,-3008.93C11449.46,-3002.92 11499.69,-2994.92 11544,-2989.31 11626.18,-2978.91 11842.9,-2994.09 11915,-2953.31 11942.93,-2937.52 11938.32,-2920.67 11958,-2895.33 11980.48,-2866.39 12004.6,-2867.59 12010,-2831.34"/>
<path fill="none" stroke="black" d="M12010,-2829.34C12014.1,-2800.52 11999.13,-2794.29 11996,-2765.35 11976.05,-2580.77 11990.05,-2533.19 11996,-2347.63 12000.45,-2209.02 12145.41,-1222.11 12076,-1102.05"/>
<path fill="none" stroke="black" d="M12076,-1100.05C12042.62,-1038.28 12070.7,-996.15 12014,-954.74 11945.14,-904.46 11710.52,-951.97 11632,-918.74 11627.54,-916.85 11623.19,-914.43 11619.02,-911.7"/>
<polygon fill="#f96210" stroke="black" points="11620.91,-908.75 11610.76,-905.72 11616.81,-914.42 11620.91,-908.75"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_status_status -->
<g id="edge586" 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="M11582,-1741.73C11694.61,-1515.84 11554.97,-1424.88 11581,-1173.82 11589.49,-1091.92 11670.75,-1056.54 11619,-992.51"/>
<path fill="none" stroke="black" d="M11619,-990.51C11601.86,-974.7 11344.4,-920.02 11342,-918.74 11338.08,-916.65 11334.25,-914.16 11330.56,-911.44"/>
<polygon fill="#f96210" stroke="black" points="11332.74,-908.7 11322.75,-905.18 11328.36,-914.17 11332.74,-908.7"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_login -->
<g id="edge587" 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="M11400,-2735.36C11393.06,-2688.07 11404.8,-2675.37 11400,-2627.82"/>
<path fill="none" stroke="black" d="M11400,-2625.82C11388.58,-2512.61 11342.93,-2494.9 11312,-2385.4"/>
<path fill="none" stroke="black" d="M11312,-2383.4C11280.18,-2286.26 11236,-2268.55 11236,-2166.33 11236,-2166.33 11236,-2166.33 11236,-2062.57 11236,-2000.52 11237.58,-1981.56 11212,-1925.03 11177.78,-1849.42 11145.42,-1845.42 11095,-1779.5 10917.33,-1547.21 10798.43,-1525.46 10708,-1247.36 10666.2,-1118.81 10785.65,-1094.82 10874,-992.51"/>
<path fill="none" stroke="black" d="M10874,-990.51C10886.57,-976.07 10882.23,-965.59 10898,-954.74 10956.98,-914.16 10990.89,-950.6 11055,-918.74 11060.01,-916.25 11064.95,-913.18 11069.67,-909.84"/>
<polygon fill="#f96210" stroke="black" points="11072.06,-912.43 11077.91,-903.6 11067.83,-906.85 11072.06,-912.43"/>
</g>
<!-- ahriman_models_user_access&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge588" 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="M11312,-2383.4C11290.62,-2319.67 11330.2,-2300.97 11354,-2238.1 11366.5,-2205.09 11386.5,-2201.59 11388,-2166.33"/>
<path fill="none" stroke="black" d="M11388,-2164.33C11384.88,-2076.64 11262.13,-1880.33 11203,-1815.5 11183.31,-1793.91 11164.63,-1803.51 11148,-1779.5 10947.75,-1490.3 10926.72,-1316.37 11064,-992.51"/>
<path fill="none" stroke="black" d="M11064,-990.51C11081.54,-942.45 11115.06,-951.92 11154,-918.74 11157.38,-915.86 11160.84,-912.82 11164.29,-909.74"/>
<polygon fill="#f96210" stroke="black" points="11166.69,-912.29 11171.75,-902.99 11161.99,-907.1 11166.69,-912.29"/>
</g>
<!-- ahriman_models_user_identity -->
<g id="node134" class="node">
<title>ahriman_models_user_identity</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#ce6f3b" stroke="black" cx="11655" cy="-1210.59" rx="50.82" ry="28.98"/>
<text text-anchor="middle" x="11655" y="-1219.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="11655" y="-1208.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">models.</text>
<text text-anchor="middle" x="11655" y="-1197.09" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">user_identity</text>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge589" 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="M11695.74,-1192.7C11826.25,-1138.67 12228.99,-972.55 12290,-954.74 12372.92,-930.54 12398.48,-944.3 12481,-918.74 12496.89,-913.82 12513.64,-907.08 12528.76,-900.39"/>
<polygon fill="#ce6f3b" stroke="black" points="12530.26,-903.55 12537.93,-896.23 12527.38,-897.17 12530.26,-903.55"/>
</g>
<!-- ahriman_models_user_identity&#45;&gt;ahriman_web_views_user_login -->
<g id="edge590" 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="M11640.91,-1182.67C11611.18,-1128.92 11536.42,-1008.81 11436,-954.74 11324.75,-894.84 11268.47,-972.23 11154,-918.74 11149.92,-916.83 11145.96,-914.44 11142.18,-911.77"/>
<polygon fill="#ce6f3b" stroke="black" points="11144.24,-908.94 11134.21,-905.53 11139.93,-914.45 11144.24,-908.94"/>
</g>
<!-- ahriman_version -->
<g id="node135" class="node">
<title>ahriman_version</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#e76822" stroke="black" cx="12622" cy="-2274.87" rx="38.37" ry="21.43"/>
<text text-anchor="middle" x="12622" y="-2277.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="12622" y="-2266.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">version</text>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_ahriman -->
<g id="edge591" 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="M12650,-2164.33C12673.33,-1959.96 12664.53,-1905.62 12714,-1705.96 12795.09,-1378.67 12876.19,-1315.79 12972,-992.51"/>
<path fill="none" stroke="black" d="M12972,-990.51C13006.25,-823.78 13105.06,-814.03 13144,-648.34"/>
<path fill="none" stroke="black" d="M13144,-646.34C13153.45,-557.27 13144,-534.38 13144,-444.81 13144,-444.81 13144,-444.81 13144,-223.74 13144,-84.41 3547.44,-34.33 2718.91,-30.26"/>
<polygon fill="#e76822" stroke="black" points="2718.75,-26.76 2708.73,-30.21 2718.72,-33.76 2718.75,-26.76"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge592" class="edge">
<title>ahriman_version&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12584,-2271.26C12483.4,-2264.47 12201.75,-2246.2 11967,-2238.1 11415.72,-2219.05 10034.31,-2252.49 9485,-2202.1 9042.79,-2161.53 8942.38,-2073.23 8500,-2034.57 7821.35,-1975.27 3049.54,-2029.37 2369,-1998.57 2237.63,-1992.63 2083.85,-1977.53 2003.09,-1968.97"/>
<polygon fill="#e76822" stroke="black" points="2003.45,-1965.49 1993.13,-1967.91 2002.7,-1972.45 2003.45,-1965.49"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_application_lock -->
<g id="edge593" 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="M12628.83,-2253.95C12635.76,-2232.59 12646.02,-2197.52 12650,-2166.33"/>
<path fill="none" stroke="black" d="M12650,-2164.33C12653.6,-2136.12 12633.79,-2110.61 12613.64,-2092.46"/>
<polygon fill="#e76822" stroke="black" points="12615.82,-2089.71 12605.95,-2085.86 12611.26,-2095.03 12615.82,-2089.71"/>
</g>
<!-- ahriman_version&#45;&gt;ahriman_web_views_status_status -->
<g id="edge594" 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="M12650,-2164.33C12657.37,-2106.51 12663.14,-2083.19 12631,-2034.57 12614.06,-2008.95 12595.21,-2018.69 12572,-1998.57 12260.37,-1728.53 12278.74,-1568.65 11981,-1283.36 11845.37,-1153.39 11774.29,-1163.6 11644,-1028.28 11630.55,-1014.31 11630.03,-1008.46 11619,-992.51"/>
</g>
<!-- ahriman_web -->
<g id="node136" class="node">
<title>ahriman_web</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="9804" cy="-545.57" rx="41.59" ry="18"/>
<text text-anchor="middle" x="9804" y="-543.07" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.web</text>
</g>
<!-- ahriman_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge595" 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="M9826.19,-529.93C9850.66,-511.77 9885.2,-478.99 9874,-444.81"/>
</g>
<!-- ahriman_web_middlewares -->
<g id="node137" class="node">
<title>ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c85d23" stroke="black" cx="10383" cy="-647.34" rx="50.41" ry="28.98"/>
<text text-anchor="middle" x="10383" y="-655.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10383" y="-644.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10383" 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="edge596" 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="M10383,-618.28C10383,-607.97 10383,-596.12 10383,-585.05"/>
<polygon fill="#c85d23" stroke="black" points="10386.5,-584.76 10383,-574.76 10379.5,-584.76 10386.5,-584.76"/>
</g>
<!-- ahriman_web_middlewares_auth_handler&#45;&gt;ahriman_web_web -->
<g id="edge597" 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="M12559.07,-840.18C12547.1,-817.54 12535.32,-786.53 12540,-757.87"/>
</g>
<!-- ahriman_web_middlewares_exception_handler -->
<g id="node139" class="node">
<title>ahriman_web_middlewares_exception_handler</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#915230" stroke="black" cx="10495" cy="-756.87" rx="67.35" ry="36.54"/>
<text text-anchor="middle" x="10495" y="-770.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10495" y="-759.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10495" y="-748.87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">middlewares.</text>
<text text-anchor="middle" x="10495" 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="edge598" 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="M10486.3,-720.37C10477.85,-689.82 10463.17,-645.31 10442,-610.57 10434.34,-598 10423.98,-585.74 10414.07,-575.36"/>
<polygon fill="#915230" stroke="black" points="10416.49,-572.83 10406.98,-568.17 10411.5,-577.75 10416.49,-572.83"/>
</g>
<!-- ahriman_web_routes -->
<g id="node140" class="node">
<title>ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#734126" stroke="black" cx="10623" cy="-647.34" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="10623" y="-655.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">ahriman.</text>
<text text-anchor="middle" x="10623" y="-644.84" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">web.</text>
<text text-anchor="middle" x="10623" 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="edge599" 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="M10589.88,-632.57C10547.05,-614.77 10472.4,-583.74 10425.45,-564.22"/>
<polygon fill="#734126" stroke="black" points="10426.74,-560.97 10416.16,-560.36 10424.05,-567.43 10426.74,-560.97"/>
</g>
<!-- ahriman_web_views -->
<g id="node141" class="node">
<title>ahriman_web_views</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#f96210" stroke="black" cx="10656" cy="-756.87" rx="38.37" ry="28.98"/>
<text text-anchor="middle" x="10656" y="-765.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="10656" y="-754.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="10656" y="-743.37" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views</text>
</g>
<!-- ahriman_web_views&#45;&gt;ahriman_web_routes -->
<g id="edge600" 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="M10647.59,-728.46C10643.59,-715.44 10638.76,-699.68 10634.43,-685.6"/>
<polygon fill="#f96210" stroke="black" points="10637.68,-684.23 10631.4,-675.7 10630.99,-686.29 10637.68,-684.23"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_index -->
<g id="edge601" 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="M11389,-954.65C11389,-944.02 11389,-932.23 11389,-921.06"/>
<polygon fill="#953703" stroke="black" points="11392.5,-921.02 11389,-911.02 11385.5,-921.02 11392.5,-921.02"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_add -->
<g id="edge602" 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="M11426.92,-984.86C11476.61,-976.25 11565.28,-956.7 11632,-918.74 11635.86,-916.55 11639.65,-913.98 11643.31,-911.21"/>
<polygon fill="#953703" stroke="black" points="11645.54,-913.91 11651.08,-904.88 11641.12,-908.48 11645.54,-913.91"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge603" 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="M11427.35,-988.92C11492.3,-984.84 11626.57,-970.32 11726,-918.74 11729.83,-916.75 11733.58,-914.36 11737.19,-911.75"/>
<polygon fill="#953703" stroke="black" points="11739.66,-914.26 11745.31,-905.3 11735.3,-908.78 11739.66,-914.26"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_request -->
<g id="edge604" 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="M11412.24,-962C11423.81,-947.8 11437.99,-930.4 11450.62,-914.92"/>
<polygon fill="#953703" stroke="black" points="11453.45,-916.99 11457.05,-907.02 11448.02,-912.56 11453.45,-916.99"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_service_search -->
<g id="edge605" 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="M11351.11,-986.87C11241.76,-976.38 10916.22,-945.1 10646,-918.74 10502.96,-904.78 10333.92,-888.07 10252.55,-880.01"/>
<polygon fill="#953703" stroke="black" points="10252.43,-876.48 10242.13,-878.97 10251.74,-883.44 10252.43,-876.48"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_package -->
<g id="edge606" 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="M11351.12,-985.5C11288.97,-976.57 11162.09,-955.33 11060,-918.74 11045.8,-913.65 11030.95,-906.67 11017.71,-899.8"/>
<polygon fill="#953703" stroke="black" points="11019.31,-896.68 11008.83,-895.08 11016.02,-902.86 11019.31,-896.68"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge607" 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="M11423.59,-975.69C11452.93,-962.47 11495.62,-941.7 11530,-918.74 11533.97,-916.09 11537.97,-913.17 11541.9,-910.14"/>
<polygon fill="#953703" stroke="black" points="11544.19,-912.79 11549.81,-903.81 11539.82,-907.33 11544.19,-912.79"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_status_status -->
<g id="edge608" 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="M11365.76,-962C11354.19,-947.8 11340.01,-930.4 11327.38,-914.92"/>
<polygon fill="#953703" stroke="black" points="11329.98,-912.56 11320.95,-907.02 11324.55,-916.99 11329.98,-912.56"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_login -->
<g id="edge609" 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="M11351.5,-984.45C11303.3,-975.48 11218.16,-955.63 11154,-918.74 11150.15,-916.53 11146.36,-913.95 11142.71,-911.17"/>
<polygon fill="#953703" stroke="black" points="11144.91,-908.44 11134.95,-904.83 11140.48,-913.87 11144.91,-908.44"/>
</g>
<!-- ahriman_web_views_base&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge610" 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="M11354.17,-976.04C11324.68,-963.04 11281.91,-942.39 11248,-918.74 11244.36,-916.2 11240.71,-913.4 11237.15,-910.47"/>
<polygon fill="#953703" stroke="black" points="11239.39,-907.78 11229.52,-903.92 11234.83,-913.09 11239.39,-907.78"/>
</g>
<!-- ahriman_web_views_index&#45;&gt;ahriman_web_routes -->
<g id="edge611" 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="M11363.84,-846.03C11357.2,-840 11349.71,-834.08 11342,-829.64 11247.33,-775.21 11202.36,-811.1 11107,-757.87"/>
</g>
<!-- ahriman_web_views_service -->
<g id="node144" class="node">
<title>ahriman_web_views_service</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="10693" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="10693" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="10693" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="10693" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views.</text>
<text text-anchor="middle" x="10693" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">service</text>
</g>
<!-- ahriman_web_views_service&#45;&gt;ahriman_web_routes -->
<g id="edge612" 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="M10717.85,-845.46C10724.5,-839.44 10732.07,-833.68 10740,-829.64 10888.16,-754.34 11252.12,-838.88 11107,-757.87"/>
<path fill="none" stroke="black" d="M11107,-755.87C10962.44,-675.18 10761.89,-655.03 10671.09,-650.01"/>
<polygon fill="#c27347" stroke="black" points="10671.26,-646.51 10661.09,-649.49 10670.89,-653.5 10671.26,-646.51"/>
</g>
<!-- ahriman_web_views_service_add&#45;&gt;ahriman_web_routes -->
<g id="edge613" 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="M11651.77,-842.9C11645.74,-837.74 11639.04,-832.97 11632,-829.64 11419.09,-729 11312.63,-872.66 11107,-757.87"/>
</g>
<!-- ahriman_web_views_service_remove&#45;&gt;ahriman_web_routes -->
<g id="edge614" 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="M11745.82,-842.79C11739.79,-837.63 11733.07,-832.9 11726,-829.64 11474.42,-713.85 11348.83,-892.87 11107,-757.87"/>
</g>
<!-- ahriman_web_views_service_request&#45;&gt;ahriman_web_routes -->
<g id="edge615" 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="M11455.29,-843.11C11449.36,-838 11442.8,-833.2 11436,-829.64 11303.32,-760.4 11237.68,-830.82 11107,-757.87"/>
</g>
<!-- ahriman_web_views_service_search&#45;&gt;ahriman_web_routes -->
<g id="edge616" 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="M10242.28,-869.58C10326.05,-860.95 10522.06,-836.59 10571,-793.64 10587.45,-779.2 10604.09,-724 10613.97,-685.95"/>
<polygon fill="#734126" stroke="black" points="10617.38,-686.76 10616.45,-676.2 10610.59,-685.03 10617.38,-686.76"/>
</g>
<!-- ahriman_web_views_status -->
<g id="node149" class="node">
<title>ahriman_web_views_status</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="10787" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="10787" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="10787" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="10787" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views.</text>
<text text-anchor="middle" x="10787" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">status</text>
</g>
<!-- ahriman_web_views_status&#45;&gt;ahriman_web_routes -->
<g id="edge617" 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="M10812.04,-845.82C10818.68,-839.79 10826.2,-833.93 10834,-829.64 10943.97,-769.26 11216.54,-819.02 11107,-757.87"/>
</g>
<!-- ahriman_web_views_status_package&#45;&gt;ahriman_web_routes -->
<g id="edge618" 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="M11005.79,-847.49C11045.71,-814.01 11109.94,-759.52 11107,-757.87"/>
</g>
<!-- ahriman_web_views_status_packages&#45;&gt;ahriman_web_routes -->
<g id="edge619" 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="M11551.05,-843.1C11544.54,-837.92 11537.38,-833.1 11530,-829.64 11357.27,-748.87 11273.5,-850.82 11107,-757.87"/>
</g>
<!-- ahriman_web_views_status_status&#45;&gt;ahriman_web_routes -->
<g id="edge620" 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="M11266.48,-844.46C11260.61,-839.22 11254.3,-834.03 11248,-829.64 11190.33,-789.42 11168.4,-792.15 11107,-757.87"/>
</g>
<!-- ahriman_web_views_user -->
<g id="node153" class="node">
<title>ahriman_web_views_user</title><style>.edge>path:hover{stroke-width:8}</style>
<ellipse fill="#c27347" stroke="black" cx="10881" cy="-874.19" rx="38.37" ry="36.54"/>
<text text-anchor="middle" x="10881" y="-888.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">ahriman.</text>
<text text-anchor="middle" x="10881" y="-877.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">web.</text>
<text text-anchor="middle" x="10881" y="-866.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">views.</text>
<text text-anchor="middle" x="10881" y="-855.19" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">user</text>
</g>
<!-- ahriman_web_views_user&#45;&gt;ahriman_web_routes -->
<g id="edge621" 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="M10906.44,-846.49C10913.07,-840.44 10920.48,-834.4 10928,-829.64 11000.42,-783.8 11181.84,-799.65 11107,-757.87"/>
</g>
<!-- ahriman_web_views_user_login&#45;&gt;ahriman_web_routes -->
<g id="edge622" 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="M11121.84,-832.91C11129.13,-805.46 11131.74,-771.68 11107,-757.87"/>
</g>
<!-- ahriman_web_views_user_logout&#45;&gt;ahriman_web_routes -->
<g id="edge623" 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="M11181.08,-836.15C11164.8,-809.75 11139.25,-775.88 11107,-757.87"/>
</g>
<!-- ahriman_web_web&#45;&gt;ahriman_application_handlers_web -->
<g id="edge624" 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="M10344.49,-544.78C10230.96,-544.34 9903.63,-535.2 9874,-444.81"/>
</g>
<!-- aioauthclient -->
<g id="node157" class="node">
<title>aioauthclient</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b69953" stroke="black" points="11601.5,-2402.4 11598.5,-2406.4 11577.5,-2406.4 11574.5,-2402.4 11530.5,-2402.4 11530.5,-2366.4 11601.5,-2366.4 11601.5,-2402.4"/>
<text text-anchor="middle" x="11566" y="-2381.9" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aioauthclient</text>
</g>
<!-- aioauthclient&#45;&gt;ahriman_core_auth_oauth -->
<g id="edge625" 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="M11580.04,-2366.12C11595.34,-2345.92 11618.63,-2310.8 11626,-2275.87"/>
<path fill="none" stroke="black" d="M11626,-2273.87C11636.47,-2224.27 11664,-2217.02 11664,-2166.33"/>
<path fill="none" stroke="black" d="M11664,-2164.33C11664,-2097.81 11615.94,-2033.43 11581.69,-1995.99"/>
<polygon fill="#b69953" stroke="black" points="11584,-1993.34 11574.61,-1988.42 11578.88,-1998.12 11584,-1993.34"/>
</g>
<!-- aiohttp -->
<g id="node158" class="node">
<title>aiohttp</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#ebf906" stroke="black" points="11208,-1549.43 11205,-1553.43 11184,-1553.43 11181,-1549.43 11154,-1549.43 11154,-1513.43 11208,-1513.43 11208,-1549.43"/>
<text text-anchor="middle" x="11181" 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="edge626" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_middlewares</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11153.79,-1525.43C11114.87,-1517.41 11042.05,-1499.17 10988,-1466.43 10947.8,-1442.09 10949.3,-1421.5 10912,-1392.9 10761.56,-1277.54 10717.82,-1253.93 10546,-1173.82 10501.67,-1153.15 10472.71,-1175.89 10442,-1137.82 10333.32,-1003.08 10359.53,-775.74 10375.34,-686.2"/>
<polygon fill="#ebf906" stroke="black" points="10378.8,-686.69 10377.15,-676.23 10371.92,-685.43 10378.8,-686.69"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge627" 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="M11468,-1428.67C11688.46,-1362.33 11773.66,-1456.94 11981,-1356.9 11995.6,-1349.85 12390.55,-963.79 12404,-954.74 12409.57,-950.99 12477.07,-920.79 12526.82,-898.71"/>
<polygon fill="#ebf906" stroke="black" points="12528.48,-901.8 12536.2,-894.55 12525.64,-895.4 12528.48,-901.8"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_middlewares_exception_handler -->
<g id="edge628" 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="M11153.75,-1518.11C11129.22,-1506.44 11092.71,-1487.58 11064,-1466.43 11026.15,-1438.57 11021.95,-1425.4 10988,-1392.9 10971.2,-1376.81 10966.8,-1372.98 10950,-1356.9 10916.05,-1324.39 10908.75,-1315.01 10874,-1283.36 10855.82,-1266.8 10848.44,-1265.63 10832,-1247.36 10696.58,-1096.82 10570.73,-889.41 10519.37,-800.81"/>
<polygon fill="#ebf906" stroke="black" points="10522.37,-799.01 10514.34,-792.11 10516.31,-802.52 10522.37,-799.01"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_routes -->
<g id="edge629" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_routes</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11188.22,-1513.27C11195.69,-1493.5 11205.78,-1459.98 11202,-1430.67"/>
<path fill="none" stroke="black" d="M11202,-1428.67C11194.59,-1371.14 11137.21,-1394.44 11093,-1356.9 10956.54,-1240.99 10907.95,-1200.78 10860,-1028.28 10851.25,-996.79 10839.55,-980.23 10860,-954.74 10906.15,-897.21 10965.26,-965.87 11022,-918.74 11055.11,-891.23 11039.68,-867.6 11060,-829.64 11077.99,-796.03 11140.29,-776.46 11107,-757.87"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_base -->
<g id="edge630" 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="M11202,-1319.13C11202.39,-1317.39 11270.44,-1212.44 11272,-1211.59"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_add -->
<g id="edge631" 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="M11392,-1428.67C11463.67,-1374 12123.56,-1069.07 12076,-992.51"/>
<path fill="none" stroke="black" d="M12076,-990.51C12062.87,-976.58 12068.37,-964.66 12052,-954.74 11927.34,-879.18 11858.58,-979.33 11726,-918.74 11721.91,-916.87 11717.93,-914.5 11714.14,-911.84"/>
<polygon fill="#ebf906" stroke="black" points="11716.2,-909.01 11706.16,-905.63 11711.9,-914.53 11716.2,-909.01"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_remove -->
<g id="edge632" 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="M11208.05,-1525C11251.05,-1515.87 11337.18,-1495.55 11406,-1466.43 11435.3,-1454.04 11437.55,-1439.87 11468,-1430.67"/>
<path fill="none" stroke="black" d="M11468,-1428.67C11713.6,-1354.41 11749.2,-1272.6 11986,-1173.82 12031.14,-1154.98 12061.63,-1177.66 12090,-1137.82 12137.2,-1071.54 12140.05,-1018.9 12090,-954.74 12057.23,-912.73 11901.91,-889.54 11821.51,-880.17"/>
<polygon fill="#ebf906" stroke="black" points="11821.48,-876.65 11811.15,-878.99 11820.69,-883.6 11821.48,-876.65"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_request -->
<g id="edge633" 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="M11202,-1428.67C11193.97,-1350.89 11356.63,-1202.87 11400,-1137.82 11421.65,-1105.34 11415.27,-1085.53 11448,-1064.28 11532.57,-1009.36 11606.6,-1105.03 11672,-1028.28 11693.2,-1003.4 11692.07,-980.53 11672,-954.74 11632.02,-903.35 11587.21,-949.83 11530,-918.74 11526.1,-916.62 11522.28,-914.1 11518.6,-911.37"/>
<polygon fill="#ebf906" stroke="black" points="11520.78,-908.64 11510.8,-905.09 11516.39,-914.09 11520.78,-908.64"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_service_search -->
<g id="edge634" 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="M11153.88,-1527.58C11010.47,-1510.79 10342.77,-1410.69 10228,-992.51"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_package -->
<g id="edge635" 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="M11169.38,-1513C11150.06,-1485.01 11109,-1429.48 11064,-1392.9 11038.07,-1371.82 11022.54,-1379.57 10998,-1356.9 10969.33,-1330.41 10977.22,-1311.33 10950,-1283.36 10930.4,-1263.21 10917.89,-1267.22 10898,-1247.36 10856.08,-1205.48 10839.7,-1194.37 10822,-1137.82 10797.7,-1060.16 10774.61,-1020.88 10822,-954.74 10850.98,-914.29 10885.26,-944.21 10928,-918.74 10931.81,-916.47 10935.58,-913.85 10939.22,-911.04"/>
<polygon fill="#ebf906" stroke="black" points="10941.46,-913.72 10946.96,-904.66 10937.01,-908.32 10941.46,-913.72"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_packages -->
<g id="edge636" 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="M11208.27,-1523.71C11251.96,-1511.71 11338.19,-1482.86 11392,-1430.67"/>
<path fill="none" stroke="black" d="M11392,-1428.67C11448.27,-1374.08 11445.49,-1346.47 11492,-1283.36 11534.81,-1225.26 11669.36,-1096.47 11693,-1028.28 11703.71,-997.4 11709.21,-983.12 11693,-954.74 11677.39,-927.4 11657.62,-937.03 11632,-918.74 11628.17,-916.01 11624.29,-913.06 11620.45,-910.02"/>
<polygon fill="#ebf906" stroke="black" points="11622.66,-907.3 11612.69,-903.71 11618.24,-912.73 11622.66,-907.3"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_status_status -->
<g id="edge637" 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="M11254,-1100.05C11255.5,-1052.28 11243.31,-1039.09 11254,-992.51"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_login -->
<g id="edge638" 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="M11202,-1428.67C11195.78,-1368.35 10845.22,-1045.88 10874,-992.51"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_views_user_logout -->
<g id="edge639" 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="M11202,-1428.67C11197.09,-1381.12 11191.67,-1367.79 11202,-1321.13"/>
<path fill="none" stroke="black" d="M11202,-1319.13C11223.44,-1222.26 11253.56,-1201.26 11254,-1102.05"/>
<path fill="none" stroke="black" d="M11254,-1100.05C11254,-1082.86 11230.23,-987.83 11214.52,-926.94"/>
<polygon fill="#ebf906" stroke="black" points="11217.87,-925.91 11211.98,-917.11 11211.1,-927.67 11217.87,-925.91"/>
</g>
<!-- aiohttp&#45;&gt;ahriman_web_web -->
<g id="edge640" class="edge">
<title>aiohttp&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11153.82,-1526.77C11104.3,-1519.51 10996.7,-1500.9 10912,-1466.43 10785.73,-1415.05 10474.41,-1247.9 10394,-1137.82 10289.22,-994.38 10218.63,-927.91 10270,-757.87"/>
</g>
<!-- aiohttpjinja2 -->
<g id="node160" class="node">
<title>aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#56b03a" stroke="black" points="11972,-1338.13 11969,-1342.13 11948,-1342.13 11945,-1338.13 11904,-1338.13 11904,-1302.13 11972,-1302.13 11972,-1338.13"/>
<text text-anchor="middle" x="11938" y="-1317.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpjinja2</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpjinja2 -->
<g id="edge641" class="edge">
<title>aiohttp&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11468,-1428.67C11622.22,-1382.04 11810.22,-1344.73 11894.03,-1329.09"/>
<polygon fill="#ebf906" stroke="black" points="11894.77,-1332.51 11903.96,-1327.25 11893.49,-1325.63 11894.77,-1332.51"/>
</g>
<!-- aiohttpsession -->
<g id="node162" class="node">
<title>aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3db877" stroke="black" points="12602,-1338.13 12599,-1342.13 12578,-1342.13 12575,-1338.13 12522,-1338.13 12522,-1302.13 12602,-1302.13 12602,-1338.13"/>
<text text-anchor="middle" x="12562" y="-1317.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">aiohttpsession</text>
</g>
<!-- aiohttp&#45;&gt;aiohttpsession -->
<g id="edge642" class="edge">
<title>aiohttp&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11208.21,-1528.55C11374.62,-1516.82 12256.07,-1451.02 12508,-1356.9 12516.48,-1353.73 12524.97,-1349.02 12532.62,-1344.04"/>
<polygon fill="#ebf906" stroke="black" points="12534.91,-1346.71 12541.16,-1338.16 12530.94,-1340.95 12534.91,-1346.71"/>
</g>
<!-- aiohttpdebugtoolbar -->
<g id="node159" class="node">
<title>aiohttpdebugtoolbar</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#8db653" stroke="black" points="12471.5,-892.19 12468.5,-896.19 12447.5,-896.19 12444.5,-892.19 12370.5,-892.19 12370.5,-856.19 12471.5,-856.19 12471.5,-892.19"/>
<text text-anchor="middle" x="12421" 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="edge643" class="edge">
<title>aiohttpdebugtoolbar&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12444.3,-856.12C12477.73,-830.84 12535.79,-783.64 12540,-757.87"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_views_index -->
<g id="edge644" 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="M11938.76,-1302.1C11940.39,-1242.67 11936.96,-1043.26 11824,-954.74 11755.84,-901.33 11515.07,-954.04 11436,-918.74 11430.66,-916.36 11425.54,-913.12 11420.76,-909.48"/>
<polygon fill="#56b03a" stroke="black" points="11422.99,-906.78 11413.08,-903.04 11418.5,-912.15 11422.99,-906.78"/>
</g>
<!-- aiohttpjinja2&#45;&gt;ahriman_web_web -->
<g id="edge645" class="edge">
<title>aiohttpjinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11956.47,-1301.89C11990.11,-1270.27 12063.25,-1200.46 12121,-1137.82 12224.4,-1025.66 12246.72,-994.33 12342,-875.19"/>
<path fill="none" stroke="black" d="M12342,-873.19C12355.83,-856.99 12346.59,-844.34 12362,-829.64 12423.72,-770.77 12526.24,-842.06 12540,-757.87"/>
<path fill="none" stroke="black" d="M12540,-755.87C12557.69,-647.62 10752.85,-562.9 10431.59,-548.68"/>
<polygon fill="#56b03a" stroke="black" points="10431.37,-545.17 10421.23,-548.22 10431.06,-552.16 10431.37,-545.17"/>
</g>
<!-- aiohttpsecurity -->
<g id="node161" class="node">
<title>aiohttpsecurity</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#47c256" stroke="black" points="11468,-1651.19 11465,-1655.19 11444,-1655.19 11441,-1651.19 11388,-1651.19 11388,-1615.19 11468,-1615.19 11468,-1651.19"/>
<text text-anchor="middle" x="11428" 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="edge646" 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="M11387.75,-1624.79C11313.24,-1610.71 11160.02,-1579.72 11145,-1560.42 11075.14,-1470.63 11119.91,-1325.33 11148.9,-1253.93"/>
<polygon fill="#47c256" stroke="black" points="11152.27,-1254.94 11152.87,-1244.36 11145.81,-1252.26 11152.27,-1254.94"/>
</g>
<!-- aiohttpsecurity&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge647" 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="M11468.1,-1618.8C11627.93,-1564.74 12216.92,-1358.3 12342,-1211.59"/>
<path fill="none" stroke="black" d="M12342,-1209.59C12416.43,-1103.02 12505.63,-978.53 12550.76,-915.77"/>
<polygon fill="#47c256" stroke="black" points="12553.83,-917.5 12556.83,-907.34 12548.15,-913.41 12553.83,-917.5"/>
</g>
<!-- aiohttpsession&#45;&gt;ahriman_web_middlewares_auth_handler -->
<g id="edge648" 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="M12563.88,-1302.02C12566.11,-1280.83 12569.69,-1243.6 12571,-1211.59"/>
</g>
<!-- boto3 -->
<g id="node163" class="node">
<title>boto3</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#40c0a9" stroke="black" points="8484,-3036.3 8481,-3040.3 8460,-3040.3 8457,-3036.3 8430,-3036.3 8430,-3000.3 8484,-3000.3 8484,-3036.3"/>
<text text-anchor="middle" x="8457" y="-3015.8" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">boto3</text>
</g>
<!-- boto3&#45;&gt;ahriman_core_upload_s3 -->
<g id="edge649" 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="M8466.59,-3000.27C8484.51,-2968 8523.65,-2895.44 8550,-2831.34"/>
</g>
<!-- cryptography -->
<g id="node164" class="node">
<title>cryptography</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#19c2e6" stroke="black" points="12075,-4166.8 12072,-4170.8 12051,-4170.8 12048,-4166.8 12001,-4166.8 12001,-4130.8 12075,-4130.8 12075,-4166.8"/>
<text text-anchor="middle" x="12038" 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="edge650" 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="M13036,-3627.87C13024.07,-3542.59 13036,-3520.23 13036,-3434.13 13036,-3434.13 13036,-3434.13 13036,-2500.72 13036,-1894.49 12939.37,-1738.96 12720,-1173.82 12683.79,-1080.53 12631.77,-975.43 12602.4,-918.13"/>
<polygon fill="#19c2e6" stroke="black" points="12605.4,-916.31 12597.72,-909.02 12599.18,-919.51 12605.4,-916.31"/>
</g>
<!-- cryptography&#45;&gt;aiohttpsession -->
<g id="edge651" class="edge">
<title>cryptography&#45;&gt;aiohttpsession</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12075,-4145.71C12255.62,-4135.04 13036,-4083.19 13036,-3983.82 13036,-3983.82 13036,-3983.82 13036,-3815.84 13036,-3733.18 13051.78,-3711 13036,-3629.87"/>
<path fill="none" stroke="black" d="M13036,-3627.87C13015.93,-3537.58 12960,-3526.62 12960,-3434.13 12960,-3434.13 12960,-3434.13 12960,-3017.3 12960,-2749.87 12982.13,-2069.02 12897,-1815.5 12887.94,-1788.51 12647.82,-1443.91 12579.8,-1346.57"/>
<polygon fill="#19c2e6" stroke="black" points="12582.55,-1344.39 12573.95,-1338.2 12576.81,-1348.4 12582.55,-1344.39"/>
</g>
<!-- requests -->
<g id="node171" class="node">
<title>requests</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#ef06aa" stroke="black" points="10405,-4083.81 10402,-4087.81 10381,-4087.81 10378,-4083.81 10351,-4083.81 10351,-4047.81 10405,-4047.81 10405,-4083.81"/>
<text text-anchor="middle" x="10378" y="-4063.31" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">requests</text>
</g>
<!-- cryptography&#45;&gt;requests -->
<g id="edge652" class="edge">
<title>cryptography&#45;&gt;requests</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M12000.61,-4145.98C11778.65,-4135.15 10636.41,-4079.42 10415.14,-4068.62"/>
<polygon fill="#19c2e6" stroke="black" points="10415.18,-4065.12 10405.02,-4068.13 10414.84,-4072.11 10415.18,-4065.12"/>
</g>
<!-- inflection -->
<g id="node165" class="node">
<title>inflection</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#5382b6" stroke="black" points="5822,-3917.83 5819,-3921.83 5798,-3921.83 5795,-3917.83 5766,-3917.83 5766,-3881.83 5822,-3881.83 5822,-3917.83"/>
<text text-anchor="middle" x="5794" 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="edge653" 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="M5798.9,-3881.71C5807.28,-3848.92 5820.98,-3775.9 5794,-3723.85"/>
<path fill="none" stroke="black" d="M5794,-3721.85C5784.32,-3704.33 5775.1,-3684.07 5767.86,-3667.04"/>
<polygon fill="#5382b6" stroke="black" points="5770.92,-3665.3 5763.83,-3657.43 5764.47,-3668 5770.92,-3665.3"/>
</g>
<!-- jinja2 -->
<g id="node166" class="node">
<title>jinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#3b4cce" stroke="black" points="11906,-2942.32 11903,-2946.32 11882,-2946.32 11879,-2942.32 11852,-2942.32 11852,-2906.32 11906,-2906.32 11906,-2942.32"/>
<text text-anchor="middle" x="11879" y="-2921.82" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">jinja2</text>
</g>
<!-- jinja2&#45;&gt;ahriman_core_report_jinja_template -->
<g id="edge654" 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="M11851.73,-2920.5C11792.76,-2914.55 11648.92,-2900.79 11528,-2895.33 11152.47,-2878.38 8518.43,-2902.42 8145,-2859.33 7833.09,-2823.34 7686.76,-2892.65 7464,-2671.36 7434.04,-2641.61 7465.21,-2607.02 7431,-2582.27 7386.5,-2550.08 6497.88,-2548.5 6443,-2546.27 6103.02,-2532.42 5695.93,-2513.24 5540.56,-2505.82"/>
<polygon fill="#3b4cce" stroke="black" points="5540.41,-2502.31 5530.25,-2505.33 5540.07,-2509.3 5540.41,-2502.31"/>
</g>
<!-- jinja2&#45;&gt;ahriman_web_web -->
<g id="edge655" class="edge">
<title>jinja2&#45;&gt;ahriman_web_web</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11934,-2829.34C12014.96,-2585.34 12081.05,-2543.54 12192,-2311.63 12393.48,-1890.5 12524.66,-1811.71 12630,-1356.9 12656.44,-1242.73 12694.75,-933.78 12641,-829.64 12615.74,-780.71 12568.17,-805.19 12540,-757.87"/>
</g>
<!-- jinja2&#45;&gt;aiohttpjinja2 -->
<g id="edge656" class="edge">
<title>jinja2&#45;&gt;aiohttpjinja2</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M11893.37,-2906.01C11906.92,-2888.46 11926.26,-2859.89 11934,-2831.34"/>
<path fill="none" stroke="black" d="M11934,-2829.34C11941.62,-2801.24 11923.13,-2794.29 11920,-2765.35 11911.25,-2684.45 11913.47,-2663.38 11920,-2582.27 11928.47,-2476.97 11936.73,-2451.11 11958,-2347.63 11961.32,-2331.48 11964.98,-2328 11967,-2311.63 12013.73,-1932.01 11957.42,-1464.69 11941.8,-1348.32"/>
<polygon fill="#3b4cce" stroke="black" points="11945.23,-1347.61 11940.42,-1338.17 11938.3,-1348.55 11945.23,-1347.61"/>
</g>
<!-- main -->
<g id="node167" class="node">
<title>main</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#6b2e2e" stroke="black" points="4062,-3552.89 4059,-3556.89 4038,-3556.89 4035,-3552.89 4008,-3552.89 4008,-3516.89 4062,-3516.89 4062,-3552.89"/>
<text text-anchor="middle" x="4035" y="-3532.39" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">main</text>
</g>
<!-- pkgresources -->
<g id="node169" class="node">
<title>pkgresources</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#8731c4" stroke="black" points="4100,-3451.13 4097,-3455.13 4076,-3455.13 4073,-3451.13 4026,-3451.13 4026,-3415.13 4100,-3415.13 4100,-3451.13"/>
<text text-anchor="middle" x="4063" y="-3430.63" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">pkgresources</text>
</g>
<!-- main&#45;&gt;pkgresources -->
<g id="edge657" class="edge">
<title>main&#45;&gt;pkgresources</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4039.88,-3516.51C4044.17,-3501.2 4050.5,-3478.67 4055.45,-3461.03"/>
<polygon fill="#6b2e2e" stroke="black" points="4058.85,-3461.88 4058.18,-3451.3 4052.11,-3459.99 4058.85,-3461.88"/>
</g>
<!-- passlib -->
<g id="node168" class="node">
<title>passlib</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#5e3bce" stroke="black" points="6688,-3224.27 6685,-3228.27 6664,-3228.27 6661,-3224.27 6634,-3224.27 6634,-3188.27 6688,-3188.27 6688,-3224.27"/>
<text text-anchor="middle" x="6661" y="-3203.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">passlib</text>
</g>
<!-- passlib&#45;&gt;ahriman_models_user -->
<g id="edge658" class="edge">
<title>passlib&#45;&gt;ahriman_models_user</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6672.82,-3188.07C6702.91,-3145.85 6787.12,-3037.07 6887,-2989.31 6964.84,-2952.1 7222.14,-2933.94 7330.36,-2927.8"/>
<polygon fill="#5e3bce" stroke="black" points="7330.87,-2931.28 7340.66,-2927.23 7330.49,-2924.29 7330.87,-2931.28"/>
</g>
<!-- pkgresources&#45;&gt;ahriman_application_handlers_versions -->
<g id="edge659" class="edge">
<title>pkgresources&#45;&gt;ahriman_application_handlers_versions</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4051.55,-3415.04C4027.62,-3380.94 3968.65,-3304.82 3898,-3271.26 3771.12,-3210.99 3722.74,-3257.25 3584,-3235.26 3041.13,-3149.22 2917.49,-3056.79 2372,-2989.31 2285.57,-2978.62 1668.58,-2988.69 1589,-2953.31 1481.89,-2905.7 1484.15,-2850.88 1404,-2765.35 1380.33,-2740.09 1382.91,-2722.94 1352,-2707.36 1275.66,-2668.9 1026.55,-2734.58 969,-2671.36 942.34,-2642.08 947.5,-2615.52 969,-2582.27 990.17,-2549.53 1013.46,-2562.3 1049,-2546.27 1279.76,-2442.19 1392.62,-2494.18 1568,-2311.63 1650.07,-2226.21 1583.91,-2148.01 1668,-2064.57"/>
</g>
<!-- pkgresources&#45;&gt;passlib -->
<g id="edge660" class="edge">
<title>pkgresources&#45;&gt;passlib</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M4100.24,-3427.1C4267.91,-3404.66 4969.88,-3312.98 5549,-3271.26 5992.58,-3239.31 6108.65,-3297.52 6549,-3235.26 6574.36,-3231.68 6602.3,-3224.7 6623.93,-3218.61"/>
<polygon fill="#8731c4" stroke="black" points="6625.06,-3221.92 6633.7,-3215.8 6623.12,-3215.2 6625.06,-3221.92"/>
</g>
<!-- pyalpm -->
<g id="node170" class="node">
<title>pyalpm</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#d12fdb" stroke="black" points="5914,-3917.83 5911,-3921.83 5890,-3921.83 5887,-3917.83 5860,-3917.83 5860,-3881.83 5914,-3881.83 5914,-3917.83"/>
<text text-anchor="middle" x="5887" 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="edge661" 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="M5908,-3815.84C5914.92,-3694.43 5926.25,-3551.55 5932.16,-3479.93"/>
<polygon fill="#d12fdb" stroke="black" points="5935.65,-3480.14 5932.99,-3469.89 5928.67,-3479.56 5935.65,-3480.14"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_aur_package -->
<g id="edge662" 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="M5893.52,-3881.76C5899.19,-3865.59 5906.71,-3840.46 5908,-3817.84"/>
<path fill="none" stroke="black" d="M5908,-3815.84C5910.79,-3766.83 5854.24,-3784.94 5818,-3751.84 5805.9,-3740.79 5801.92,-3738.2 5794,-3723.85"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package -->
<g id="edge663" class="edge">
<title>pyalpm&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M5859.8,-3890.33C5782.66,-3865.43 5568,-3790.18 5568,-3723.85 5568,-3723.85 5568,-3723.85 5568,-3533.89 5568,-3416.86 5476.9,-3363.44 5549,-3271.26 5589.91,-3218.96 5631.66,-3258.11 5694,-3235.26 5782.45,-3202.84 5808.24,-3197.28 5884,-3141.28 5957.79,-3086.73 6027.55,-3003.68 6063.24,-2958.11"/>
<polygon fill="#d12fdb" stroke="black" points="6066.13,-2960.09 6069.5,-2950.05 6060.6,-2955.8 6066.13,-2960.09"/>
</g>
<!-- pyalpm&#45;&gt;ahriman_models_package_description -->
<g id="edge664" 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="M5908,-3815.84C5915.44,-3702.73 6291.91,-3709.15 6393,-3657.86 6520.48,-3593.18 6545.77,-3563.29 6654,-3469.9 6764.09,-3374.9 6802.19,-3356.81 6882,-3235.26 6919.76,-3177.75 6946.56,-3101.61 6960.35,-3056.8"/>
<polygon fill="#d12fdb" stroke="black" points="6963.71,-3057.77 6963.25,-3047.19 6957.01,-3055.75 6963.71,-3057.77"/>
</g>
<!-- requests&#45;&gt;ahriman_application_application_application_packages -->
<g id="edge665" 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="M10350.82,-4064.78C10068.25,-4064.45 7637.91,-4060.22 5671,-4011.81 4570.54,-3984.73 4295.88,-3962.56 3196,-3917.83 3021.76,-3910.74 2965.01,-3967.82 2804,-3900.83"/>
<path fill="none" stroke="black" d="M2804,-3898.83C2781.22,-3889.85 2792.37,-3870.08 2789,-3845.83 2779.49,-3777.27 2792.36,-3755.92 2823,-3693.86 2921.79,-3493.8 2905.89,-3391.25 3094,-3271.26 3194.21,-3207.34 3247.06,-3275.23 3359,-3235.26 3396.58,-3221.84 3492.52,-3176.1 3512,-3141.28 3606.26,-2972.75 3388.48,-2871.62 3490,-2707.36 3508.81,-2676.93 3530.56,-2688.45 3562,-2671.36 3595.53,-2653.14 3614.77,-2659.53 3636,-2627.82"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_aur -->
<g id="edge666" 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="M10378,-3981.82C10378.5,-3929.53 10358.06,-3912.9 10316,-3881.83 10265.37,-3844.41 10237.32,-3869.53 10179,-3845.83 10065.72,-3799.78 9765.24,-3664.36 9516,-3469.9 9472.89,-3436.26 9430.54,-3389.97 9402.65,-3357.12"/>
<polygon fill="#ef06aa" stroke="black" points="9405,-3354.47 9395.88,-3349.07 9399.64,-3358.98 9405,-3354.47"/>
</g>
<!-- requests&#45;&gt;ahriman_core_alpm_remote_official -->
<g id="edge667" 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="M10378,-3981.82C10377.84,-3977.89 10281.5,-3883.6 10278,-3881.83 10184.55,-3834.43 10148.31,-3863.33 10045,-3845.83 9417.38,-3739.49 9267.27,-3664.63 8634,-3599.88 8545.59,-3590.84 7913.46,-3605.61 7835,-3563.88 7806.67,-3548.81 7819.78,-3521.94 7792,-3505.9 7671.13,-3436.08 7610.16,-3520.33 7480,-3469.9 7413.23,-3444.02 7349.41,-3389.75 7311.46,-3353.28"/>
<polygon fill="#ef06aa" stroke="black" points="7313.83,-3350.7 7304.22,-3346.24 7308.95,-3355.72 7313.83,-3350.7"/>
</g>
<!-- requests&#45;&gt;ahriman_core_report_telegram -->
<g id="edge668" 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="M2804,-3898.83C2760.14,-3880.38 2829.37,-3724.23 2866,-3693.86 2969.67,-3607.91 3963.55,-3645.06 4071,-3563.88 4106.95,-3536.72 4093.46,-3512.19 4109,-3469.9 4156.26,-3341.29 4151.04,-3302.79 4206,-3177.28 4335.33,-2881.91 4404.44,-2826.47 4564,-2546.27 4574.94,-2527.07 4585.06,-2524.62 4588,-2502.72"/>
<path fill="none" stroke="black" d="M4588,-2500.72C4587.88,-2476.53 4581.98,-2450.28 4575.62,-2428.94"/>
<polygon fill="#ef06aa" stroke="black" points="4578.91,-2427.7 4572.59,-2419.2 4572.22,-2429.78 4578.91,-2427.7"/>
</g>
<!-- requests&#45;&gt;ahriman_core_sign_gpg -->
<g id="edge669" 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="M10350.62,-4064.65C10041.04,-4062.85 7208.41,-4045.4 7130,-4011.81 6911.04,-3918 6708.52,-3863.69 6754,-3629.87"/>
</g>
<!-- requests&#45;&gt;ahriman_core_status_web_client -->
<g id="edge670" 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="M10378,-3981.82C10376.06,-3940.36 10417.55,-3948.04 10446,-3917.83 10474.55,-3887.5 10491.82,-3884.99 10506,-3845.83 10514.77,-3821.6 10518.68,-3810.28 10506,-3787.84 10271.12,-3372.12 10014.34,-3429.96 9564,-3271.26 9405.2,-3215.3 9361.85,-3211.55 9197,-3177.28 9107.86,-3158.75 8472.59,-3080.95 8388,-3047.3 8250.1,-2992.44 8223.28,-2957.53 8112,-2859.33 8044.48,-2799.75 8045.29,-2767.2 7978,-2707.36 7956.99,-2688.69 7943.53,-2693.34 7926,-2671.36 7894.01,-2631.27 7873.44,-2496.07 7840,-2457.17 7731.77,-2331.3 7525.2,-2292.31 7427.61,-2280.64"/>
<polygon fill="#ef06aa" stroke="black" points="7428,-2277.16 7417.66,-2279.5 7427.2,-2284.11 7428,-2277.16"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_github -->
<g id="edge671" 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="M10405.07,-4057.86C10457.78,-4042.71 10573.12,-4001.15 10620,-3917.83 10648.33,-3867.48 10627.91,-3845.07 10620,-3787.84 10608.11,-3701.86 10597.63,-3681.09 10567,-3599.88 10501.52,-3426.28 10273.96,-2997.36 10119,-2895.33 9865.29,-2728.28 9741.27,-2844.49 9448,-2765.35 9318.9,-2730.51 9171.15,-2674.42 9098.75,-2645.83"/>
<polygon fill="#ef06aa" stroke="black" points="9099.63,-2642.41 9089.05,-2641.98 9097.05,-2648.92 9099.63,-2642.41"/>
</g>
<!-- requests&#45;&gt;ahriman_core_upload_http_upload -->
<g id="edge672" 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="M10378,-3981.82C10379.32,-3945.2 10417.74,-3952.36 10430,-3917.83 10435.35,-3902.75 10439.83,-3894.45 10430,-3881.83 10390.02,-3830.44 10348.55,-3869.76 10288,-3845.83 10238.42,-3826.23 10230.18,-3812.67 10183,-3787.84 9935.35,-3657.52 9885.42,-3594.58 9620,-3505.9 9504.16,-3467.19 9361.73,-3447.78 9284.11,-3439.43"/>
<polygon fill="#ef06aa" stroke="black" points="9284.36,-3435.93 9274.05,-3438.37 9283.63,-3442.9 9284.36,-3435.93"/>
</g>
<!-- requests&#45;&gt;ahriman_core_util -->
<g id="edge673" class="edge">
<title>requests&#45;&gt;ahriman_core_util</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M10377.1,-4047.7C10376.46,-4031.28 10376,-4005.8 10378,-3983.82"/>
<path fill="none" stroke="black" d="M10378,-3981.82C10380.82,-3950.79 10146.58,-3887.83 10116,-3881.83 9838.65,-3827.39 7738.37,-3818.98 7390.68,-3817.96"/>
<polygon fill="#ef06aa" stroke="black" points="7390.46,-3814.46 7380.45,-3817.93 7390.44,-3821.46 7390.46,-3814.46"/>
</g>
<!-- srcinfo -->
<g id="node172" class="node">
<title>srcinfo</title><style>.edge>path:hover{stroke-width:8}</style>
<polygon fill="#b65376" stroke="black" points="6066,-3224.27 6063,-3228.27 6042,-3228.27 6039,-3224.27 6012,-3224.27 6012,-3188.27 6066,-3188.27 6066,-3224.27"/>
<text text-anchor="middle" x="6039" y="-3203.77" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#ffffff">srcinfo</text>
</g>
<!-- srcinfo&#45;&gt;ahriman_models_package -->
<g id="edge674" class="edge">
<title>srcinfo&#45;&gt;ahriman_models_package</title><style>.edge>path:hover{stroke-width:8}</style>
<path fill="none" stroke="black" d="M6055.19,-3188.03C6070.23,-3169.83 6089.06,-3140.12 6080,-3113.29"/>
</g>
</g>
</svg>