coverage.xml•234 kB
<?xml version="1.0" ?>
<coverage version="7.9.2" timestamp="1753840172034" lines-valid="5523" lines-covered="4814" line-rate="0.8716" branches-valid="1004" branches-covered="627" branch-rate="0.6245" complexity="0">
<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.9.2 -->
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
<sources>
<source>/Users/brianirish/Basement/laravel-mcp-companion</source>
</sources>
<packages>
<package name="." line-rate="0.73" branch-rate="0.5966" complexity="0">
<classes>
<class name="docs_updater.py" filename="docs_updater.py" complexity="0" line-rate="0.7545" branch-rate="0.5957">
<methods/>
<lines>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="27" hits="1"/>
<line number="31" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="38" hits="1"/>
<line number="44" hits="1"/>
<line number="46" hits="1"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="57" hits="1"/>
<line number="58" hits="1"/>
<line number="61" hits="1"/>
<line number="62" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="63" hits="1"/>
<line number="64" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="65" hits="1"/>
<line number="66" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="67" hits="1"/>
<line number="70" hits="1"/>
<line number="72" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="73" hits="1"/>
<line number="74" hits="1"/>
<line number="76" hits="1"/>
<line number="77" hits="1"/>
<line number="79" hits="1"/>
<line number="80" hits="1"/>
<line number="81" hits="1"/>
<line number="84" hits="1"/>
<line number="86" hits="1"/>
<line number="89" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="90" hits="1"/>
<line number="91" hits="1"/>
<line number="93" hits="1"/>
<line number="94" hits="1"/>
<line number="95" hits="1"/>
<line number="97" hits="1"/>
<line number="99" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
<line number="102" hits="1"/>
<line number="104" hits="1"/>
<line number="107" hits="1"/>
<line number="115" hits="1"/>
<line number="116" hits="1"/>
<line number="119" hits="1"/>
<line number="120" hits="1"/>
<line number="122" hits="1"/>
<line number="133" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="134" hits="1"/>
<line number="135" hits="1"/>
<line number="137" hits="1"/>
<line number="138" hits="1"/>
<line number="140" hits="1"/>
<line number="141" hits="1"/>
<line number="143" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="144" hits="1"/>
<line number="145" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="146"/>
<line number="146" hits="0"/>
<line number="147" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="148"/>
<line number="148" hits="0"/>
<line number="149" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="150"/>
<line number="150" hits="0"/>
<line number="152" hits="1"/>
<line number="154" hits="1"/>
<line number="155" hits="1"/>
<line number="157" hits="0"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="161" hits="1"/>
<line number="172" hits="1"/>
<line number="175" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="176" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="177" hits="1"/>
<line number="180" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="181" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="182" hits="1"/>
<line number="184" hits="1"/>
<line number="186" hits="1"/>
<line number="188" hits="1"/>
<line number="189" hits="1"/>
<line number="191" hits="1"/>
<line number="193" hits="1"/>
<line number="194" hits="1"/>
<line number="197" hits="1"/>
<line number="199" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="201" hits="1"/>
<line number="204" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="205"/>
<line number="205" hits="0"/>
<line number="208" hits="1"/>
<line number="209" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="199"/>
<line number="210" hits="1"/>
<line number="213" hits="1"/>
<line number="214" hits="1"/>
<line number="216" hits="1"/>
<line number="217" hits="1"/>
<line number="219" hits="1"/>
<line number="221" hits="1"/>
<line number="223" hits="1"/>
<line number="224" hits="1"/>
<line number="226" hits="1"/>
<line number="228" hits="1"/>
<line number="231" hits="1"/>
<line number="232" hits="1"/>
<line number="235" hits="1"/>
<line number="236" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="241"/>
<line number="237" hits="1"/>
<line number="238" hits="1"/>
<line number="239" hits="1"/>
<line number="241" hits="0"/>
<line number="244" hits="1"/>
<line number="245" hits="1"/>
<line number="248" hits="1"/>
<line number="250" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="252" hits="1"/>
<line number="253" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="250"/>
<line number="254" hits="1"/>
<line number="255" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="250"/>
<line number="256" hits="1"/>
<line number="258" hits="1"/>
<line number="259" hits="1"/>
<line number="261" hits="0"/>
<line number="262" hits="0"/>
<line number="264" hits="1"/>
<line number="266" hits="1"/>
<line number="268" hits="1"/>
<line number="269" hits="1"/>
<line number="271" hits="1"/>
<line number="273" hits="1"/>
<line number="274" hits="1"/>
<line number="278" hits="1"/>
<line number="284" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="285" hits="1"/>
<line number="286" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="287" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="290"/>
<line number="288" hits="1"/>
<line number="290" hits="0"/>
<line number="293" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="286"/>
<line number="298" hits="1"/>
<line number="299" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="286"/>
<line number="300" hits="1"/>
<line number="303" hits="1"/>
<line number="304" hits="1"/>
<line number="305" hits="1"/>
<line number="307" hits="0"/>
<line number="308" hits="0"/>
<line number="310" hits="1"/>
<line number="312" hits="1"/>
<line number="314" hits="1"/>
<line number="315" hits="1"/>
<line number="317" hits="1"/>
<line number="319" hits="1"/>
<line number="320" hits="1"/>
<line number="323" hits="1"/>
<line number="325" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="327" hits="1"/>
<line number="328" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="325"/>
<line number="330" hits="1"/>
<line number="331" hits="1"/>
<line number="332" hits="1"/>
<line number="333" hits="1"/>
<line number="336" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="339"/>
<line number="337" hits="1"/>
<line number="339" hits="0"/>
<line number="341" hits="0"/>
<line number="342" hits="0"/>
<line number="343" hits="0"/>
<line number="345" hits="1"/>
<line number="346" hits="1"/>
<line number="348" hits="0"/>
<line number="349" hits="0"/>
<line number="351" hits="1"/>
<line number="353" hits="1"/>
<line number="356" hits="1"/>
<line number="362" hits="1"/>
<line number="367" hits="1"/>
<line number="370" hits="1"/>
<line number="373" hits="1"/>
<line number="376" hits="1"/>
<line number="378" hits="1"/>
<line number="389" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="392"/>
<line number="390" hits="1"/>
<line number="392" hits="1"/>
<line number="394" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="435"/>
<line number="395" hits="1"/>
<line number="397" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="398" hits="1"/>
<line number="400" hits="1"/>
<line number="401" hits="1"/>
<line number="402" hits="1"/>
<line number="404" hits="1"/>
<line number="405" hits="1"/>
<line number="406" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="408" hits="1"/>
<line number="409" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="411" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="416"/>
<line number="412" hits="1"/>
<line number="413" hits="1"/>
<line number="414" hits="1"/>
<line number="416" hits="0"/>
<line number="417" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="423"/>
<line number="419" hits="1"/>
<line number="420" hits="1"/>
<line number="421" hits="1"/>
<line number="423" hits="0"/>
<line number="425" hits="1"/>
<line number="426" hits="1"/>
<line number="427" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="428" hits="1"/>
<line number="429" hits="1"/>
<line number="430" hits="1"/>
<line number="432" hits="1"/>
<line number="435" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="436,438"/>
<line number="436" hits="0"/>
<line number="438" hits="0"/>
<line number="441" hits="1"/>
<line number="444" hits="1"/>
<line number="453" hits="1"/>
<line number="454" hits="1"/>
<line number="455" hits="1"/>
<line number="456" hits="1"/>
<line number="457" hits="1"/>
<line number="460" hits="1"/>
<line number="463" hits="1"/>
<line number="576" hits="1"/>
<line number="578" hits="1"/>
<line number="579" hits="1"/>
<line number="580" hits="1"/>
<line number="582" hits="1"/>
<line number="584" hits="1"/>
<line number="586" hits="1"/>
<line number="588" hits="1"/>
<line number="590" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="591" hits="1"/>
<line number="593" hits="1"/>
<line number="594" hits="1"/>
<line number="595" hits="1"/>
<line number="597" hits="1"/>
<line number="598" hits="1"/>
<line number="599" hits="1"/>
<line number="600" hits="1"/>
<line number="601" hits="1"/>
<line number="603" hits="1"/>
<line number="605" hits="1"/>
<line number="606" hits="1"/>
<line number="608" hits="1"/>
<line number="609" hits="1"/>
<line number="610" hits="1"/>
<line number="611" hits="1"/>
<line number="612" hits="1"/>
<line number="614" hits="1"/>
<line number="624" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="625" hits="1"/>
<line number="626" hits="1"/>
<line number="629" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="630"/>
<line number="630" hits="0"/>
<line number="631" hits="0"/>
<line number="633" hits="1"/>
<line number="634" hits="1"/>
<line number="636" hits="1"/>
<line number="638" hits="1"/>
<line number="639" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="641"/>
<line number="640" hits="1"/>
<line number="641" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="642,644"/>
<line number="642" hits="0"/>
<line number="644" hits="0"/>
<line number="645" hits="0"/>
<line number="646" hits="0"/>
<line number="647" hits="0"/>
<line number="648" hits="0"/>
<line number="650" hits="1"/>
<line number="652" hits="1"/>
<line number="655" hits="1"/>
<line number="656" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="657" hits="1"/>
<line number="658" hits="1"/>
<line number="659" hits="1"/>
<line number="660" hits="0"/>
<line number="661" hits="0"/>
<line number="664" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="665"/>
<line number="665" hits="0"/>
<line number="666" hits="0"/>
<line number="668" hits="1"/>
<line number="669" hits="1"/>
<line number="671" hits="1"/>
<line number="676" hits="1"/>
<line number="678" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="680" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="681"/>
<line number="681" hits="0"/>
<line number="682" hits="0"/>
<line number="684" hits="1"/>
<line number="685" hits="1"/>
<line number="688" hits="1"/>
<line number="690" hits="1"/>
<line number="691" hits="1"/>
<line number="692" hits="1"/>
<line number="693" hits="1"/>
<line number="697" hits="1"/>
<line number="699" hits="1"/>
<line number="700" hits="1"/>
<line number="702" hits="1"/>
<line number="703" hits="1"/>
<line number="705" hits="1"/>
<line number="706" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="709"/>
<line number="707" hits="1"/>
<line number="709" hits="0"/>
<line number="710" hits="1"/>
<line number="711" hits="0"/>
<line number="712" hits="0"/>
<line number="713" hits="0"/>
<line number="715" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="717" hits="1"/>
<line number="727" hits="1"/>
<line number="728" hits="1"/>
<line number="729" hits="1"/>
<line number="731" hits="1"/>
<line number="733" hits="1"/>
<line number="735" hits="1"/>
<line number="737" hits="1"/>
<line number="738" hits="1"/>
<line number="739" hits="1"/>
<line number="741" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="742" hits="1"/>
<line number="744" hits="1"/>
<line number="745" hits="1"/>
<line number="746" hits="1"/>
<line number="747" hits="1"/>
<line number="748" hits="1"/>
<line number="749" hits="1"/>
<line number="750" hits="1"/>
<line number="751" hits="1"/>
<line number="752" hits="1"/>
<line number="753" hits="1"/>
<line number="755" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="756" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="757" hits="1"/>
<line number="758" hits="1"/>
<line number="759" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="760" hits="1"/>
<line number="761" hits="1"/>
<line number="762" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="776"/>
<line number="763" hits="1"/>
<line number="764" hits="1"/>
<line number="765" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="766" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="767" hits="1"/>
<line number="768" hits="1"/>
<line number="769" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="770" hits="1"/>
<line number="771" hits="1"/>
<line number="772" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="776"/>
<line number="773" hits="1"/>
<line number="774" hits="1"/>
<line number="776" hits="1"/>
<line number="778" hits="1"/>
<line number="779" hits="1"/>
<line number="782" hits="1"/>
<line number="789" hits="1"/>
<line number="791" hits="1"/>
<line number="792" hits="1"/>
<line number="794" hits="1"/>
<line number="796" hits="1"/>
<line number="797" hits="1"/>
<line number="800" hits="1"/>
<line number="802" hits="1"/>
<line number="803" hits="1"/>
<line number="804" hits="1"/>
<line number="805" hits="1"/>
<line number="807" hits="1"/>
<line number="808" hits="1"/>
<line number="810" hits="1"/>
<line number="811" hits="1"/>
<line number="814" hits="1"/>
<line number="815" hits="1"/>
<line number="818" hits="1"/>
<line number="820" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="821"/>
<line number="821" hits="0"/>
<line number="823" hits="1"/>
<line number="826" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="828"/>
<line number="827" hits="1"/>
<line number="828" hits="1"/>
<line number="831" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="832" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="835"/>
<line number="833" hits="1"/>
<line number="835" hits="0"/>
<line number="838" hits="1"/>
<line number="844" hits="1"/>
<line number="846" hits="1"/>
<line number="847" hits="1"/>
<line number="849" hits="0"/>
<line number="850" hits="0"/>
<line number="851" hits="0"/>
<line number="853" hits="1"/>
<line number="859" hits="1"/>
<line number="860" hits="1"/>
<line number="861" hits="1"/>
<line number="863" hits="1"/>
<line number="865" hits="1"/>
<line number="866" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="867" hits="1"/>
<line number="870" hits="1"/>
<line number="871" hits="1"/>
<line number="872" hits="1"/>
<line number="873" hits="1"/>
<line number="874" hits="1"/>
<line number="875" hits="0"/>
<line number="876" hits="0"/>
<line number="877" hits="0"/>
<line number="878" hits="0"/>
<line number="880" hits="1"/>
<line number="882" hits="1"/>
<line number="887" hits="1"/>
<line number="888" hits="1"/>
<line number="889" hits="0"/>
<line number="890" hits="0"/>
<line number="892" hits="0"/>
<line number="893" hits="0"/>
<line number="896" hits="1"/>
<line number="899" hits="1"/>
<line number="908" hits="1"/>
<line number="909" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="910" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="911" hits="1"/>
<line number="912" hits="1"/>
<line number="915" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="916" hits="1"/>
<line number="917" hits="1"/>
<line number="920" hits="1"/>
<line number="923" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="924"/>
<line number="924" hits="0"/>
<line number="926" hits="1"/>
<line number="928" hits="1"/>
<line number="941" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="942" hits="1"/>
<line number="945" hits="1"/>
<line number="953" hits="1"/>
<line number="964" hits="1"/>
<line number="967" hits="1"/>
<line number="970" hits="1"/>
<line number="971" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="976"/>
<line number="972" hits="1"/>
<line number="973" hits="1"/>
<line number="976" hits="1"/>
<line number="977" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="978" hits="1"/>
<line number="979" hits="1"/>
<line number="982" hits="1"/>
<line number="987" hits="1"/>
<line number="988" hits="1"/>
<line number="991" hits="1"/>
<line number="992" hits="1"/>
<line number="993" hits="1"/>
<line number="996" hits="1"/>
<line number="1002" hits="1"/>
<line number="1003" hits="1"/>
<line number="1006" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1007" hits="1"/>
<line number="1008" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1009" hits="1"/>
<line number="1012" hits="1"/>
<line number="1013" hits="1"/>
<line number="1015" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1016" hits="1"/>
<line number="1018" hits="1"/>
<line number="1020" hits="1"/>
<line number="1024" hits="1"/>
<line number="1025" hits="1"/>
<line number="1026" hits="1"/>
<line number="1027" hits="0"/>
<line number="1028" hits="0"/>
<line number="1030" hits="0"/>
<line number="1033" hits="1"/>
<line number="1036" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1037"/>
<line number="1037" hits="0"/>
<line number="1040" hits="1"/>
<line number="1043" hits="1"/>
<line number="1056" hits="1"/>
<line number="1063" hits="1"/>
<line number="1064" hits="1"/>
<line number="1067" hits="1"/>
<line number="1068" hits="1"/>
<line number="1069" hits="1"/>
<line number="1072" hits="1"/>
<line number="1074" hits="1"/>
<line number="1076" hits="1"/>
<line number="1086" hits="1"/>
<line number="1088" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1089" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1092"/>
<line number="1090" hits="1"/>
<line number="1092" hits="0"/>
<line number="1093" hits="0"/>
<line number="1095" hits="1"/>
<line number="1097" hits="1"/>
<line number="1099" hits="1"/>
<line number="1101" hits="1"/>
<line number="1103" hits="1"/>
<line number="1105" hits="1"/>
<line number="1120" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1123"/>
<line number="1121" hits="1"/>
<line number="1123" hits="1"/>
<line number="1124" hits="1"/>
<line number="1126" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1170"/>
<line number="1127" hits="1"/>
<line number="1128" hits="1"/>
<line number="1129" hits="1"/>
<line number="1130" hits="1"/>
<line number="1131" hits="1"/>
<line number="1132" hits="1"/>
<line number="1133" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1136"/>
<line number="1135" hits="1"/>
<line number="1136" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1138,1141"/>
<line number="1138" hits="0"/>
<line number="1139" hits="0"/>
<line number="1140" hits="0"/>
<line number="1141" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1143,1151"/>
<line number="1143" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1144,1148"/>
<line number="1144" hits="0"/>
<line number="1145" hits="0"/>
<line number="1146" hits="0"/>
<line number="1148" hits="0"/>
<line number="1151" hits="0"/>
<line number="1152" hits="0"/>
<line number="1153" hits="0"/>
<line number="1154" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1155,1159"/>
<line number="1155" hits="0"/>
<line number="1156" hits="0"/>
<line number="1157" hits="0"/>
<line number="1159" hits="0"/>
<line number="1160" hits="0"/>
<line number="1161" hits="0"/>
<line number="1162" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1163,1167"/>
<line number="1163" hits="0"/>
<line number="1164" hits="0"/>
<line number="1165" hits="0"/>
<line number="1167" hits="0"/>
<line number="1170" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1171,1173"/>
<line number="1171" hits="0"/>
<line number="1173" hits="0"/>
<line number="1175" hits="1"/>
<line number="1178" hits="1"/>
<line number="1186" hits="1"/>
<line number="1187" hits="1"/>
<line number="1188" hits="1"/>
<line number="1189" hits="1"/>
<line number="1192" hits="1"/>
<line number="1193" hits="1"/>
<line number="1196" hits="1"/>
<line number="1197" hits="1"/>
<line number="1198" hits="1"/>
<line number="1200" hits="1"/>
<line number="1202" hits="1"/>
<line number="1204" hits="1"/>
<line number="1206" hits="1"/>
<line number="1207" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1259"/>
<line number="1208" hits="1"/>
<line number="1209" hits="1"/>
<line number="1217" hits="1"/>
<line number="1218" hits="1"/>
<line number="1219" hits="1"/>
<line number="1225" hits="1"/>
<line number="1226" hits="1"/>
<line number="1227" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1228" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1234"/>
<line number="1229" hits="1"/>
<line number="1230" hits="1"/>
<line number="1231" hits="1"/>
<line number="1232" hits="1"/>
<line number="1234" hits="0"/>
<line number="1235" hits="0"/>
<line number="1236" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1240"/>
<line number="1237" hits="1"/>
<line number="1238" hits="1"/>
<line number="1240" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1241,1246"/>
<line number="1241" hits="0"/>
<line number="1242" hits="0"/>
<line number="1243" hits="0"/>
<line number="1244" hits="0"/>
<line number="1246" hits="0"/>
<line number="1247" hits="0"/>
<line number="1248" hits="1"/>
<line number="1249" hits="1"/>
<line number="1250" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1251" hits="1"/>
<line number="1252" hits="1"/>
<line number="1253" hits="1"/>
<line number="1255" hits="1"/>
<line number="1256" hits="1"/>
<line number="1259" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1260,1262"/>
<line number="1260" hits="0"/>
<line number="1262" hits="0"/>
<line number="1264" hits="1"/>
<line number="1266" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1267" hits="1"/>
<line number="1269" hits="1"/>
<line number="1270" hits="1"/>
<line number="1271" hits="1"/>
<line number="1272" hits="1"/>
<line number="1273" hits="1"/>
<line number="1274" hits="1"/>
<line number="1276" hits="1"/>
<line number="1278" hits="1"/>
<line number="1279" hits="1"/>
<line number="1280" hits="1"/>
<line number="1281" hits="0"/>
<line number="1282" hits="0"/>
<line number="1284" hits="1"/>
<line number="1291" hits="1"/>
<line number="1294" hits="1"/>
<line number="1296" hits="1"/>
<line number="1298" hits="1"/>
<line number="1299" hits="1"/>
<line number="1300" hits="1"/>
<line number="1303" hits="1"/>
<line number="1306" hits="1"/>
<line number="1308" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1328"/>
<line number="1309" hits="1"/>
<line number="1310" hits="1"/>
<line number="1315" hits="1"/>
<line number="1316" hits="1"/>
<line number="1317" hits="1"/>
<line number="1318" hits="1"/>
<line number="1319" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1320" hits="1"/>
<line number="1321" hits="1"/>
<line number="1322" hits="1"/>
<line number="1324" hits="1"/>
<line number="1325" hits="1"/>
<line number="1328" hits="1"/>
<line number="1329" hits="1"/>
<line number="1330" hits="1"/>
<line number="1333" hits="1"/>
<line number="1335" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1336"/>
<line number="1336" hits="0"/>
<line number="1338" hits="1"/>
<line number="1339" hits="1"/>
<line number="1342" hits="1"/>
<line number="1343" hits="1"/>
<line number="1344" hits="1"/>
<line number="1345" hits="1"/>
<line number="1347" hits="1"/>
<line number="1349" hits="1"/>
<line number="1351" hits="1"/>
<line number="1354" hits="1"/>
<line number="1357" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1358" hits="1"/>
<line number="1359" hits="1"/>
<line number="1362" hits="1"/>
<line number="1363" hits="1"/>
<line number="1364" hits="1"/>
<line number="1365" hits="1"/>
<line number="1366" hits="1"/>
<line number="1368" hits="1"/>
<line number="1378" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1379" hits="1"/>
<line number="1381" hits="1"/>
<line number="1383" hits="1"/>
<line number="1386" hits="1"/>
<line number="1389" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1390" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1391" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1392"/>
<line number="1392" hits="0"/>
<line number="1394" hits="1"/>
<line number="1397" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1398" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1399" hits="1"/>
<line number="1401" hits="1"/>
<line number="1404" hits="1"/>
<line number="1412" hits="1"/>
<line number="1414" hits="1"/>
<line number="1415" hits="1"/>
<line number="1417" hits="1"/>
<line number="1418" hits="1"/>
<line number="1419" hits="1"/>
<line number="1420" hits="1"/>
<line number="1421" hits="1"/>
<line number="1424" hits="1"/>
<line number="1427" hits="1"/>
<line number="1436" hits="1"/>
<line number="1437" hits="1"/>
<line number="1438" hits="1"/>
<line number="1439" hits="1"/>
<line number="1440" hits="1"/>
<line number="1443" hits="1"/>
<line number="1570" hits="1"/>
<line number="1572" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1573" hits="1"/>
<line number="1575" hits="1"/>
<line number="1576" hits="1"/>
<line number="1577" hits="1"/>
<line number="1579" hits="1"/>
<line number="1581" hits="1"/>
<line number="1582" hits="1"/>
<line number="1584" hits="1"/>
<line number="1586" hits="1"/>
<line number="1588" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1589" hits="1"/>
<line number="1591" hits="1"/>
<line number="1592" hits="1"/>
<line number="1593" hits="1"/>
<line number="1595" hits="1"/>
<line number="1596" hits="1"/>
<line number="1598" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1599" hits="1"/>
<line number="1600" hits="1"/>
<line number="1602" hits="1"/>
<line number="1603" hits="0"/>
<line number="1604" hits="0"/>
<line number="1605" hits="0"/>
<line number="1607" hits="1"/>
<line number="1618" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1619" hits="1"/>
<line number="1620" hits="1"/>
<line number="1623" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1624" hits="1"/>
<line number="1625" hits="1"/>
<line number="1627" hits="1"/>
<line number="1628" hits="1"/>
<line number="1630" hits="1"/>
<line number="1631" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1632"/>
<line number="1632" hits="0"/>
<line number="1633" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1634" hits="1"/>
<line number="1635" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1637"/>
<line number="1636" hits="1"/>
<line number="1637" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1638,1639"/>
<line number="1638" hits="0"/>
<line number="1639" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1640,1641"/>
<line number="1640" hits="0"/>
<line number="1641" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1642,1644"/>
<line number="1642" hits="0"/>
<line number="1644" hits="0"/>
<line number="1645" hits="0"/>
<line number="1646" hits="0"/>
<line number="1647" hits="0"/>
<line number="1648" hits="0"/>
<line number="1650" hits="1"/>
<line number="1652" hits="1"/>
<line number="1653" hits="1"/>
<line number="1655" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1656" hits="1"/>
<line number="1657" hits="1"/>
<line number="1658" hits="1"/>
<line number="1660" hits="1"/>
<line number="1661" hits="1"/>
<line number="1663" hits="1"/>
<line number="1664" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1665" hits="1"/>
<line number="1666" hits="1"/>
<line number="1668" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1670" hits="1"/>
<line number="1671" hits="1"/>
<line number="1673" hits="1"/>
<line number="1674" hits="1"/>
<line number="1676" hits="1"/>
<line number="1678" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1680" hits="1"/>
<line number="1688" hits="1"/>
<line number="1689" hits="1"/>
<line number="1691" hits="1"/>
<line number="1692" hits="1"/>
<line number="1694" hits="1"/>
<line number="1695" hits="1"/>
<line number="1697" hits="0"/>
<line number="1698" hits="0"/>
<line number="1700" hits="1"/>
<line number="1702" hits="1"/>
<line number="1704" hits="1"/>
<line number="1705" hits="1"/>
<line number="1706" hits="1"/>
<line number="1708" hits="1"/>
<line number="1709" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1710" hits="1"/>
<line number="1711" hits="1"/>
<line number="1712" hits="1"/>
<line number="1714" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1715" hits="1"/>
<line number="1716" hits="1"/>
<line number="1718" hits="1"/>
<line number="1719" hits="1"/>
<line number="1721" hits="1"/>
<line number="1722" hits="0"/>
<line number="1723" hits="0"/>
<line number="1725" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1744"/>
<line number="1727" hits="1"/>
<line number="1735" hits="1"/>
<line number="1736" hits="1"/>
<line number="1738" hits="1"/>
<line number="1739" hits="1"/>
<line number="1741" hits="1"/>
<line number="1742" hits="1"/>
<line number="1744" hits="0"/>
<line number="1746" hits="1"/>
<line number="1748" hits="1"/>
<line number="1749" hits="1"/>
<line number="1750" hits="1"/>
<line number="1751" hits="1"/>
<line number="1752" hits="1"/>
<line number="1754" hits="1"/>
<line number="1755" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1756" hits="1"/>
<line number="1758" hits="1"/>
<line number="1759" hits="1"/>
<line number="1761" hits="1"/>
<line number="1763" hits="1"/>
<line number="1768" hits="1"/>
<line number="1769" hits="1"/>
<line number="1772" hits="1"/>
<line number="1774" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1786"/>
<line number="1775" hits="1"/>
<line number="1776" hits="1"/>
<line number="1778" hits="1"/>
<line number="1779" hits="1"/>
<line number="1780" hits="1"/>
<line number="1781" hits="1"/>
<line number="1783" hits="1"/>
<line number="1784" hits="1"/>
<line number="1786" hits="0"/>
<line number="1788" hits="0"/>
<line number="1789" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1790,1792"/>
<line number="1790" hits="0"/>
<line number="1792" hits="0"/>
<line number="1793" hits="0"/>
<line number="1794" hits="0"/>
<line number="1796" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1818"/>
<line number="1798" hits="1"/>
<line number="1809" hits="1"/>
<line number="1810" hits="1"/>
<line number="1812" hits="1"/>
<line number="1813" hits="1"/>
<line number="1815" hits="1"/>
<line number="1816" hits="1"/>
<line number="1818" hits="0"/>
<line number="1820" hits="1"/>
<line number="1831" hits="1"/>
<line number="1832" hits="1"/>
<line number="1835" hits="1"/>
<line number="1838" hits="1"/>
<line number="1841" hits="1"/>
<line number="1844" hits="1"/>
<line number="1847" hits="1"/>
<line number="1852" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1853" hits="1"/>
<line number="1854" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1855" hits="1"/>
<line number="1856" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1854"/>
<line number="1857" hits="1"/>
<line number="1860" hits="1"/>
<line number="1865" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1866" hits="1"/>
<line number="1867" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1868" hits="1"/>
<line number="1869" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1867"/>
<line number="1870" hits="1"/>
<line number="1873" hits="1"/>
<line number="1879" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1880" hits="1"/>
<line number="1881" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1882" hits="1"/>
<line number="1883" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1881"/>
<line number="1884" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1885"/>
<line number="1885" hits="0"/>
<line number="1887" hits="1"/>
<line number="1890" hits="1"/>
<line number="1891" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1892"/>
<line number="1892" hits="0"/>
<line number="1893" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1891,1894"/>
<line number="1894" hits="0"/>
<line number="1897" hits="1"/>
<line number="1903" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1904" hits="1"/>
<line number="1905" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1906" hits="1"/>
<line number="1907" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1905"/>
<line number="1908" hits="1"/>
<line number="1911" hits="1"/>
<line number="1916" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1917" hits="1"/>
<line number="1918" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1919"/>
<line number="1919" hits="0"/>
<line number="1920" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1918,1921"/>
<line number="1921" hits="0"/>
<line number="1925" hits="1"/>
<line number="1926" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1928" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1932"/>
<line number="1932" hits="0"/>
<line number="1933" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1926,1935"/>
<line number="1935" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1926,1936"/>
<line number="1936" hits="0"/>
<line number="1938" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1952"/>
<line number="1940" hits="1"/>
<line number="1941" hits="1"/>
<line number="1942" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1943" hits="1"/>
<line number="1944" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1946" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1942"/>
<line number="1947" hits="1"/>
<line number="1948" hits="1"/>
<line number="1950" hits="1"/>
<line number="1952" hits="0"/>
<line number="1953" hits="0"/>
<line number="1955" hits="0"/>
<line number="1956" hits="0"/>
<line number="1957" hits="0"/>
<line number="1959" hits="1"/>
<line number="1961" hits="1"/>
<line number="1964" hits="1"/>
<line number="1967" hits="1"/>
<line number="1970" hits="1"/>
<line number="1973" hits="1"/>
<line number="1974" hits="1"/>
<line number="1976" hits="1"/>
<line number="1978" hits="1"/>
<line number="1980" hits="1"/>
<line number="1981" hits="1"/>
<line number="1982" hits="1"/>
<line number="1983" hits="1"/>
<line number="1985" hits="1"/>
<line number="1986" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1987" hits="1"/>
<line number="1988" hits="1"/>
<line number="1989" hits="1"/>
<line number="1991" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1992" hits="1"/>
<line number="1993" hits="1"/>
<line number="1995" hits="1"/>
<line number="1996" hits="1"/>
<line number="1998" hits="1"/>
<line number="1999" hits="0"/>
<line number="2000" hits="0"/>
<line number="2002" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2004" hits="1"/>
<line number="2013" hits="1"/>
<line number="2014" hits="1"/>
<line number="2016" hits="1"/>
<line number="2017" hits="1"/>
<line number="2019" hits="1"/>
<line number="2020" hits="1"/>
<line number="2022" hits="1"/>
<line number="2024" hits="1"/>
<line number="2026" hits="1"/>
<line number="2027" hits="1"/>
<line number="2028" hits="1"/>
<line number="2030" hits="1"/>
<line number="2031" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2032" hits="1"/>
<line number="2033" hits="1"/>
<line number="2034" hits="1"/>
<line number="2036" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2031"/>
<line number="2037" hits="1"/>
<line number="2038" hits="1"/>
<line number="2040" hits="1"/>
<line number="2041" hits="1"/>
<line number="2043" hits="1"/>
<line number="2044" hits="0"/>
<line number="2045" hits="0"/>
<line number="2047" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2066"/>
<line number="2049" hits="1"/>
<line number="2057" hits="1"/>
<line number="2058" hits="1"/>
<line number="2060" hits="1"/>
<line number="2061" hits="1"/>
<line number="2063" hits="1"/>
<line number="2064" hits="1"/>
<line number="2066" hits="0"/>
<line number="2068" hits="1"/>
<line number="2070" hits="1"/>
<line number="2071" hits="1"/>
<line number="2072" hits="1"/>
<line number="2073" hits="1"/>
<line number="2075" hits="1"/>
<line number="2077" hits="1"/>
<line number="2079" hits="1"/>
<line number="2081" hits="1"/>
<line number="2086" hits="1"/>
<line number="2087" hits="1"/>
<line number="2090" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2131"/>
<line number="2092" hits="1"/>
<line number="2093" hits="1"/>
<line number="2094" hits="1"/>
<line number="2097" hits="1"/>
<line number="2098" hits="1"/>
<line number="2100" hits="1"/>
<line number="2101" hits="1"/>
<line number="2104" hits="1"/>
<line number="2114" hits="1"/>
<line number="2115" hits="1"/>
<line number="2117" hits="1"/>
<line number="2118" hits="1"/>
<line number="2120" hits="1"/>
<line number="2121" hits="1"/>
<line number="2123" hits="1"/>
<line number="2124" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2127"/>
<line number="2125" hits="1"/>
<line number="2127" hits="0"/>
<line number="2128" hits="0"/>
<line number="2129" hits="0"/>
<line number="2131" hits="1"/>
<line number="2133" hits="1"/>
<line number="2135" hits="1"/>
<line number="2137" hits="1"/>
<line number="2138" hits="1"/>
<line number="2140" hits="1"/>
<line number="2148" hits="1"/>
<line number="2149" hits="1"/>
<line number="2150" hits="1"/>
<line number="2153" hits="1"/>
<line number="2156" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2157" hits="1"/>
<line number="2161" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2164" hits="1"/>
<line number="2167" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2169"/>
<line number="2169" hits="0"/>
<line number="2170" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2172,2184"/>
<line number="2172" hits="0"/>
<line number="2173" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2175,2180"/>
<line number="2175" hits="0"/>
<line number="2176" hits="0"/>
<line number="2177" hits="0"/>
<line number="2178" hits="0"/>
<line number="2180" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2181,2183"/>
<line number="2181" hits="0"/>
<line number="2183" hits="0"/>
<line number="2184" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2167,2185"/>
<line number="2185" hits="0"/>
<line number="2188" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2189"/>
<line number="2189" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2188,2190"/>
<line number="2190" hits="0"/>
<line number="2191" hits="0"/>
<line number="2193" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2188,2195"/>
<line number="2195" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2188,2196"/>
<line number="2196" hits="0"/>
<line number="2197" hits="0"/>
<line number="2198" hits="0"/>
<line number="2201" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2202"/>
<line number="2202" hits="0"/>
<line number="2205" hits="1"/>
<line number="2208" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2210"/>
<line number="2210" hits="0"/>
<line number="2211" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2212,2221"/>
<line number="2212" hits="0"/>
<line number="2213" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2215" hits="1"/>
<line number="2216" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2218" hits="1"/>
<line number="2221" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2222" hits="1"/>
<line number="2228" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2229" hits="1"/>
<line number="2230" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2231" hits="1"/>
<line number="2232" hits="1"/>
<line number="2234" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2235" hits="1"/>
<line number="2236" hits="1"/>
<line number="2239" hits="1"/>
<line number="2242" hits="1"/>
<line number="2245" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2246" hits="1"/>
<line number="2248" hits="1"/>
<line number="2249" hits="1"/>
<line number="2252" hits="1"/>
<line number="2253" hits="1"/>
<line number="2255" hits="1"/>
<line number="2257" hits="1"/>
<line number="2258" hits="1"/>
<line number="2259" hits="1"/>
<line number="2261" hits="1"/>
<line number="2264" hits="1"/>
<line number="2267" hits="1"/>
<line number="2270" hits="1"/>
<line number="2272" hits="1"/>
<line number="2274" hits="1"/>
<line number="2276" hits="1"/>
<line number="2278" hits="1"/>
<line number="2288" hits="1"/>
<line number="2290" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2291" hits="1"/>
<line number="2292" hits="1"/>
<line number="2295" hits="1"/>
<line number="2296" hits="1"/>
<line number="2297" hits="1"/>
<line number="2299" hits="1"/>
<line number="2302" hits="1"/>
<line number="2305" hits="1"/>
<line number="2313" hits="1"/>
<line number="2314" hits="1"/>
<line number="2317" hits="1"/>
<line number="2320" hits="1"/>
<line number="2323" hits="1"/>
<line number="2325" hits="1"/>
<line number="2327" hits="1"/>
<line number="2328" hits="1"/>
<line number="2330" hits="1"/>
<line number="2341" hits="1"/>
<line number="2343" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2344" hits="1"/>
<line number="2345" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2346" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2347" hits="1"/>
<line number="2349" hits="1"/>
<line number="2350" hits="1"/>
<line number="2351" hits="1"/>
<line number="2353" hits="1"/>
<line number="2355" hits="1"/>
<line number="2366" hits="0"/>
<line number="2368" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2369,2378"/>
<line number="2369" hits="0"/>
<line number="2370" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2371,2376"/>
<line number="2371" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2372,2374"/>
<line number="2372" hits="0"/>
<line number="2374" hits="0"/>
<line number="2375" hits="0"/>
<line number="2376" hits="0"/>
<line number="2378" hits="0"/>
<line number="2380" hits="1"/>
<line number="2392" hits="0"/>
<line number="2394" hits="0"/>
<line number="2400" hits="0"/>
<line number="2402" hits="0"/>
<line number="2405" hits="0"/>
<line number="2408" hits="0"/>
<line number="2411" hits="0"/>
<line number="2412" hits="0"/>
<line number="2413" hits="0"/>
<line number="2415" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2416,2419"/>
<line number="2416" hits="0"/>
<line number="2417" hits="0"/>
<line number="2419" hits="0"/>
<line number="2420" hits="0"/>
<line number="2422" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2423,2426"/>
<line number="2423" hits="0"/>
<line number="2424" hits="0"/>
<line number="2426" hits="0"/>
<line number="2427" hits="0"/>
<line number="2429" hits="0"/>
<line number="2431" hits="0"/>
<line number="2432" hits="0"/>
<line number="2434" hits="0"/>
<line number="2436" hits="1"/>
<line number="2438" hits="1"/>
<line number="2445" hits="1"/>
<line number="2446" hits="1"/>
<line number="2447" hits="1"/>
<line number="2453" hits="1"/>
<line number="2454" hits="1"/>
<line number="2457" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2458" hits="1"/>
<line number="2459" hits="1"/>
<line number="2460" hits="1"/>
<line number="2461" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2462"/>
<line number="2462" hits="0"/>
<line number="2465" hits="1"/>
<line number="2466" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2467" hits="1"/>
<line number="2468" hits="1"/>
<line number="2469" hits="1"/>
<line number="2470" hits="0"/>
<line number="2471" hits="0"/>
<line number="2473" hits="1"/>
<line number="2475" hits="1"/>
<line number="2482" hits="1"/>
<line number="2483" hits="1"/>
<line number="2486" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2487"/>
<line number="2487" hits="0"/>
<line number="2488" hits="0"/>
<line number="2489" hits="0"/>
<line number="2492" hits="0"/>
<line number="2493" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2494,2500"/>
<line number="2494" hits="0"/>
<line number="2495" hits="0"/>
<line number="2496" hits="0"/>
<line number="2497" hits="0"/>
<line number="2498" hits="0"/>
<line number="2500" hits="0"/>
<line number="2503" hits="0"/>
<line number="2504" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2505,2507"/>
<line number="2505" hits="0"/>
<line number="2507" hits="0"/>
<line number="2509" hits="0"/>
<line number="2518" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2486,2519"/>
<line number="2519" hits="0"/>
<line number="2520" hits="0"/>
<line number="2521" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2486,2522"/>
<line number="2522" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2486,2523"/>
<line number="2523" hits="0"/>
<line number="2524" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2522,2525"/>
<line number="2525" hits="0"/>
<line number="2526" hits="0"/>
<line number="2527" hits="0"/>
<line number="2528" hits="0"/>
<line number="2532" hits="0"/>
<line number="2533" hits="0"/>
<line number="2535" hits="0"/>
<line number="2536" hits="0"/>
<line number="2538" hits="1"/>
<line number="2540" hits="1"/>
<line number="2551" hits="0"/>
<line number="2558" hits="0"/>
<line number="2559" hits="0"/>
<line number="2560" hits="0"/>
<line number="2561" hits="0"/>
<line number="2562" hits="0"/>
<line number="2565" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2566,2576"/>
<line number="2566" hits="0"/>
<line number="2567" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2568,2576"/>
<line number="2568" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2569,2576"/>
<line number="2569" hits="0"/>
<line number="2570" hits="0"/>
<line number="2571" hits="0"/>
<line number="2572" hits="0"/>
<line number="2573" hits="0"/>
<line number="2576" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2577,2586"/>
<line number="2577" hits="0"/>
<line number="2578" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2579,2586"/>
<line number="2579" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2580,2586"/>
<line number="2580" hits="0"/>
<line number="2581" hits="0"/>
<line number="2582" hits="0"/>
<line number="2583" hits="0"/>
<line number="2584" hits="0"/>
<line number="2586" hits="0"/>
<line number="2588" hits="1"/>
<line number="2590" hits="1"/>
<line number="2593" hits="1"/>
<line number="2599" hits="1"/>
<line number="2605" hits="1"/>
<line number="2610" hits="1"/>
<line number="2615" hits="1"/>
<line number="2620" hits="1"/>
<line number="2625" hits="1"/>
<line number="2630" hits="1"/>
<line number="2635" hits="1"/>
<line number="2640" hits="1"/>
<line number="2646" hits="1"/>
<line number="2652" hits="1"/>
<line number="2657" hits="1"/>
<line number="2662" hits="1"/>
<line number="2667" hits="1"/>
<line number="2675" hits="1"/>
<line number="2677" hits="1"/>
<line number="2684" hits="0"/>
<line number="2685" hits="0"/>
<line number="2687" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2688,2692"/>
<line number="2688" hits="0"/>
<line number="2689" hits="0"/>
<line number="2690" hits="0"/>
<line number="2692" hits="0"/>
<line number="2693" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2694,2696"/>
<line number="2694" hits="0"/>
<line number="2696" hits="0"/>
<line number="2697" hits="0"/>
<line number="2698" hits="0"/>
<line number="2699" hits="0"/>
<line number="2700" hits="0"/>
<line number="2702" hits="1"/>
<line number="2705" hits="1"/>
<line number="2707" hits="1"/>
<line number="2708" hits="1"/>
<line number="2709" hits="1"/>
<line number="2710" hits="1"/>
<line number="2711" hits="1"/>
<line number="2712" hits="1"/>
<line number="2713" hits="1"/>
<line number="2715" hits="1"/>
<line number="2718" hits="1"/>
<line number="2719" hits="1"/>
<line number="2722" hits="1"/>
<line number="2724" hits="1"/>
<line number="2727" hits="1"/>
<line number="2730" hits="1"/>
<line number="2731" hits="1"/>
<line number="2734" hits="1"/>
<line number="2736" hits="1"/>
<line number="2738" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2739" hits="1"/>
<line number="2740" hits="1"/>
<line number="2741" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2742" hits="1"/>
<line number="2743" hits="1"/>
<line number="2744" hits="1"/>
<line number="2747" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2748"/>
<line number="2748" hits="0"/>
<line number="2749" hits="0"/>
<line number="2750" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2751,2757"/>
<line number="2751" hits="0"/>
<line number="2752" hits="0"/>
<line number="2754" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2750,2755"/>
<line number="2755" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2750,2756"/>
<line number="2756" hits="0"/>
<line number="2757" hits="0"/>
<line number="2760" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2761" hits="1"/>
<line number="2762" hits="1"/>
<line number="2763" hits="1"/>
<line number="2764" hits="1"/>
<line number="2765" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2766"/>
<line number="2766" hits="0"/>
<line number="2768" hits="1"/>
<line number="2769" hits="1"/>
<line number="2770" hits="1"/>
<line number="2772" hits="1"/>
<line number="2773" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2774" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2775"/>
<line number="2775" hits="0"/>
<line number="2777" hits="1"/>
<line number="2778" hits="1"/>
<line number="2779" hits="1"/>
<line number="2780" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2784"/>
<line number="2781" hits="1"/>
<line number="2784" hits="1"/>
<line number="2785" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2773"/>
<line number="2786" hits="1"/>
<line number="2787" hits="1"/>
<line number="2788" hits="1"/>
<line number="2789" hits="1"/>
<line number="2790" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2791,2797"/>
<line number="2791" hits="0"/>
<line number="2792" hits="0"/>
<line number="2793" hits="0"/>
<line number="2794" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2773,2795"/>
<line number="2795" hits="0"/>
<line number="2797" hits="0"/>
<line number="2798" hits="1"/>
<line number="2799" hits="1"/>
<line number="2801" hits="1"/>
<line number="2802" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2803"/>
<line number="2803" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2804,2806"/>
<line number="2804" hits="0"/>
<line number="2806" hits="0"/>
<line number="2807" hits="0"/>
<line number="2808" hits="0"/>
<line number="2811" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2802,2812"/>
<line number="2812" hits="0"/>
<line number="2813" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2802,2814"/>
<line number="2814" hits="0"/>
<line number="2816" hits="1"/>
<line number="2819" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2820"/>
<line number="2820" hits="0"/>
<line number="2821" hits="0"/>
<line number="2824" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2825"/>
<line number="2825" hits="0"/>
<line number="2826" hits="0"/>
<line number="2827" hits="0"/>
<line number="2828" hits="0"/>
<line number="2829" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2830,2831"/>
<line number="2830" hits="0"/>
<line number="2831" hits="0"/>
<line number="2832" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2833,2836"/>
<line number="2833" hits="0"/>
<line number="2836" hits="0"/>
<line number="2837" hits="0"/>
<line number="2840" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2841"/>
<line number="2841" hits="0"/>
<line number="2844" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="2845" hits="1"/>
<line number="2846" hits="1"/>
<line number="2849" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2851"/>
<line number="2851" hits="0"/>
<line number="2853" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2854,2861"/>
<line number="2854" hits="0"/>
<line number="2855" hits="0"/>
<line number="2856" hits="0"/>
<line number="2858" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="2853,2859"/>
<line number="2859" hits="0"/>
<line number="2861" hits="0"/>
<line number="2865" hits="1"/>
<line number="2867" hits="1"/>
<line number="2868" hits="1"/>
<line number="2869" hits="1"/>
<line number="2870" hits="1"/>
<line number="2871" hits="1"/>
<line number="2872" hits="1"/>
<line number="2873" hits="1"/>
<line number="2875" hits="1"/>
<line number="2878" hits="1"/>
<line number="2879" hits="1"/>
<line number="2881" hits="0"/>
<line number="2882" hits="0"/>
<line number="2883" hits="0"/>
<line number="2885" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="2886"/>
<line number="2886" hits="0"/>
</lines>
</class>
<class name="laravel_mcp_companion.py" filename="laravel_mcp_companion.py" complexity="0" line-rate="0.6657" branch-rate="0.5656">
<methods/>
<lines>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="27" hits="1"/>
<line number="37" hits="1"/>
<line number="41" hits="1"/>
<line number="44" hits="1"/>
<line number="47" hits="1"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="53" hits="1"/>
<line number="350" hits="1"/>
<line number="375" hits="1"/>
<line number="504" hits="1"/>
<line number="506" hits="1"/>
<line number="509" hits="1"/>
<line number="515" hits="1"/>
<line number="521" hits="1"/>
<line number="528" hits="1"/>
<line number="534" hits="1"/>
<line number="540" hits="1"/>
<line number="547" hits="1"/>
<line number="553" hits="1"/>
<line number="558" hits="1"/>
<line number="564" hits="1"/>
<line number="566" hits="1"/>
<line number="568" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="569" hits="1"/>
<line number="572" hits="1"/>
<line number="575" hits="1"/>
<line number="577" hits="1"/>
<line number="579" hits="1"/>
<line number="581" hits="1"/>
<line number="583" hits="1"/>
<line number="584" hits="1"/>
<line number="594" hits="1"/>
<line number="595" hits="1"/>
<line number="596" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="597" hits="1"/>
<line number="600" hits="1"/>
<line number="601" hits="1"/>
<line number="603" hits="1"/>
<line number="604" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="605"/>
<line number="605" hits="0"/>
<line number="608" hits="1"/>
<line number="609" hits="1"/>
<line number="612" hits="1"/>
<line number="614" hits="1"/>
<line number="615" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="616"/>
<line number="616" hits="0"/>
<line number="619" hits="1"/>
<line number="622" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="624"/>
<line number="624" hits="0"/>
<line number="625" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="626,628"/>
<line number="626" hits="0"/>
<line number="628" hits="1"/>
<line number="629" hits="1"/>
<line number="630" hits="1"/>
<line number="631" hits="1"/>
<line number="633" hits="1"/>
<line number="635" hits="1"/>
<line number="636" hits="1"/>
<line number="637" hits="1"/>
<line number="639" hits="1"/>
<line number="641" hits="1"/>
<line number="642" hits="1"/>
<line number="643" hits="1"/>
<line number="644" hits="1"/>
<line number="645" hits="1"/>
<line number="646" hits="1"/>
<line number="647" hits="1"/>
<line number="649" hits="1"/>
<line number="658" hits="1"/>
<line number="661" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="662" hits="1"/>
<line number="663" hits="1"/>
<line number="664" hits="1"/>
<line number="667" hits="1"/>
<line number="669" hits="1"/>
<line number="671" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="679"/>
<line number="673" hits="1"/>
<line number="674" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="690"/>
<line number="676" hits="1"/>
<line number="679" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="680,688"/>
<line number="680" hits="0"/>
<line number="681" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="682,684"/>
<line number="682" hits="0"/>
<line number="684" hits="0"/>
<line number="685" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="679,686"/>
<line number="686" hits="0"/>
<line number="688" hits="0"/>
<line number="690" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="691" hits="1"/>
<line number="693" hits="1"/>
<line number="694" hits="1"/>
<line number="695" hits="1"/>
<line number="696" hits="0"/>
<line number="697" hits="0"/>
<line number="698" hits="0"/>
<line number="700" hits="1"/>
<line number="711" hits="1"/>
<line number="712" hits="1"/>
<line number="713" hits="1"/>
<line number="716" hits="1"/>
<line number="717" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="718" hits="1"/>
<line number="721" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="722" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="723" hits="1"/>
<line number="726" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="727" hits="1"/>
<line number="728" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="729" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="730" hits="1"/>
<line number="733" hits="1"/>
<line number="734" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="735" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="736" hits="1"/>
<line number="738" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="739" hits="1"/>
<line number="742" hits="1"/>
<line number="743" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="744" hits="1"/>
<line number="745" hits="1"/>
<line number="746" hits="1"/>
<line number="747" hits="1"/>
<line number="749" hits="1"/>
<line number="751" hits="1"/>
<line number="753" hits="1"/>
<line number="754" hits="1"/>
<line number="761" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="762" hits="1"/>
<line number="763" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="764" hits="1"/>
<line number="765" hits="1"/>
<line number="768" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="769" hits="1"/>
<line number="770" hits="1"/>
<line number="771" hits="1"/>
<line number="774" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="775" hits="1"/>
<line number="776" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="777" hits="1"/>
<line number="778" hits="1"/>
<line number="781" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="782" hits="1"/>
<line number="783" hits="1"/>
<line number="785" hits="1"/>
<line number="789" hits="1"/>
<line number="791" hits="1"/>
<line number="792" hits="1"/>
<line number="793" hits="1"/>
<line number="795" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="797" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="798" hits="1"/>
<line number="799" hits="1"/>
<line number="802" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="803"/>
<line number="803" hits="0"/>
<line number="805" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="806" hits="1"/>
<line number="808" hits="1"/>
<line number="809" hits="1"/>
<line number="811" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="812" hits="1"/>
<line number="813" hits="1"/>
<line number="814" hits="1"/>
<line number="816" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="811"/>
<line number="817" hits="1"/>
<line number="818" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="819" hits="1"/>
<line number="820" hits="1"/>
<line number="822" hits="1"/>
<line number="825" hits="1"/>
<line number="827" hits="1"/>
<line number="830" hits="1"/>
<line number="833" hits="1"/>
<line number="834" hits="1"/>
<line number="835" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="836" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="837" hits="1"/>
<line number="838" hits="1"/>
<line number="839" hits="1"/>
<line number="841" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="842" hits="1"/>
<line number="845" hits="1"/>
<line number="846" hits="1"/>
<line number="847" hits="1"/>
<line number="850" hits="1"/>
<line number="852" hits="1"/>
<line number="853" hits="1"/>
<line number="854" hits="1"/>
<line number="856" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="857" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="858" hits="1"/>
<line number="860" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="862" hits="1"/>
<line number="863" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="864" hits="1"/>
<line number="866" hits="1"/>
<line number="869" hits="1"/>
<line number="870" hits="1"/>
<line number="872" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="873" hits="1"/>
<line number="874" hits="1"/>
<line number="875" hits="1"/>
<line number="877" hits="1"/>
<line number="880" hits="1"/>
<line number="882" hits="1"/>
<line number="885" hits="1"/>
<line number="888" hits="1"/>
<line number="889" hits="1"/>
<line number="891" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="892" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="893" hits="1"/>
<line number="894" hits="1"/>
<line number="895" hits="1"/>
<line number="897" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="898" hits="1"/>
<line number="901" hits="1"/>
<line number="903" hits="1"/>
<line number="905" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="906" hits="1"/>
<line number="907" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="908" hits="1"/>
<line number="909" hits="1"/>
<line number="910" hits="1"/>
<line number="912" hits="1"/>
<line number="913" hits="1"/>
<line number="914" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="915" hits="1"/>
<line number="916" hits="1"/>
<line number="917" hits="1"/>
<line number="919" hits="1"/>
<line number="922" hits="1"/>
<line number="925" hits="1"/>
<line number="928" hits="1"/>
<line number="931" hits="1"/>
<line number="934" hits="1"/>
<line number="943" hits="1"/>
<line number="946" hits="1"/>
<line number="956" hits="1"/>
<line number="959" hits="1"/>
<line number="960" hits="1"/>
<line number="963" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="964" hits="1"/>
<line number="965" hits="1"/>
<line number="968" hits="1"/>
<line number="969" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="970" hits="1"/>
<line number="975" hits="1"/>
<line number="978" hits="1"/>
<line number="990" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="991" hits="1"/>
<line number="992" hits="1"/>
<line number="993" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="994" hits="1"/>
<line number="996" hits="1"/>
<line number="997" hits="1"/>
<line number="998" hits="1"/>
<line number="1001" hits="1"/>
<line number="1006" hits="1"/>
<line number="1008" hits="1"/>
<line number="1009" hits="1"/>
<line number="1010" hits="1"/>
<line number="1011" hits="1"/>
<line number="1014" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1015" hits="1"/>
<line number="1016" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1018" hits="1"/>
<line number="1019" hits="1"/>
<line number="1020" hits="1"/>
<line number="1022" hits="1"/>
<line number="1030" hits="1"/>
<line number="1031" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1032" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1033" hits="1"/>
<line number="1034" hits="1"/>
<line number="1035" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1036" hits="1"/>
<line number="1037" hits="1"/>
<line number="1038" hits="1"/>
<line number="1040" hits="1"/>
<line number="1047" hits="1"/>
<line number="1050" hits="1"/>
<line number="1063" hits="1"/>
<line number="1069" hits="1"/>
<line number="1072" hits="1"/>
<line number="1075" hits="1"/>
<line number="1077" hits="0"/>
<line number="1078" hits="0"/>
<line number="1081" hits="0"/>
<line number="1084" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1085,1087"/>
<line number="1085" hits="0"/>
<line number="1087" hits="0"/>
<line number="1090" hits="0"/>
<line number="1091" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1092,1095"/>
<line number="1092" hits="0"/>
<line number="1093" hits="0"/>
<line number="1095" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1096,1099"/>
<line number="1096" hits="0"/>
<line number="1097" hits="0"/>
<line number="1099" hits="0"/>
<line number="1100" hits="0"/>
<line number="1101" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1102,1103"/>
<line number="1102" hits="0"/>
<line number="1103" hits="0"/>
<line number="1104" hits="0"/>
<line number="1105" hits="0"/>
<line number="1106" hits="0"/>
<line number="1108" hits="1"/>
<line number="1110" hits="0"/>
<line number="1112" hits="0"/>
<line number="1114" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1115,1119"/>
<line number="1115" hits="0"/>
<line number="1116" hits="0"/>
<line number="1119" hits="0"/>
<line number="1122" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1123,1125"/>
<line number="1123" hits="0"/>
<line number="1125" hits="0"/>
<line number="1128" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1129,1131"/>
<line number="1129" hits="0"/>
<line number="1131" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1133,1144"/>
<line number="1133" hits="0"/>
<line number="1134" hits="0"/>
<line number="1135" hits="0"/>
<line number="1136" hits="0"/>
<line number="1137" hits="0"/>
<line number="1139" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1140,1142"/>
<line number="1140" hits="0"/>
<line number="1142" hits="0"/>
<line number="1144" hits="0"/>
<line number="1145" hits="0"/>
<line number="1146" hits="0"/>
<line number="1147" hits="0"/>
<line number="1148" hits="0"/>
<line number="1149" hits="0"/>
<line number="1150" hits="0"/>
<line number="1153" hits="1"/>
<line number="1154" hits="1"/>
<line number="1155" hits="1"/>
<line number="1156" hits="1"/>
<line number="1160" hits="1"/>
<line number="1162" hits="1"/>
<line number="1165" hits="1"/>
<line number="1168" hits="1"/>
<line number="1178" hits="1"/>
<line number="1179" hits="1"/>
<line number="1185" hits="1"/>
<line number="1188" hits="1"/>
<line number="1189" hits="1"/>
<line number="1197" hits="1"/>
<line number="1198" hits="1"/>
<line number="1200" hits="1"/>
<line number="1201" hits="1"/>
<line number="1209" hits="0"/>
<line number="1212" hits="0"/>
<line number="1214" hits="0"/>
<line number="1215" hits="0"/>
<line number="1218" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1219,1222"/>
<line number="1219" hits="0"/>
<line number="1222" hits="0"/>
<line number="1224" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1226,1237"/>
<line number="1226" hits="0"/>
<line number="1227" hits="0"/>
<line number="1229" hits="0"/>
<line number="1230" hits="0"/>
<line number="1237" hits="0"/>
<line number="1238" hits="0"/>
<line number="1239" hits="0"/>
<line number="1240" hits="0"/>
<line number="1242" hits="1"/>
<line number="1243" hits="1"/>
<line number="1249" hits="1"/>
<line number="1251" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1252" hits="1"/>
<line number="1254" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1255"/>
<line number="1255" hits="0"/>
<line number="1257" hits="1"/>
<line number="1267" hits="1"/>
<line number="1269" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1270" hits="1"/>
<line number="1271" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1272" hits="1"/>
<line number="1273" hits="1"/>
<line number="1274" hits="1"/>
<line number="1275" hits="1"/>
<line number="1276" hits="1"/>
<line number="1278" hits="1"/>
<line number="1279" hits="1"/>
<line number="1280" hits="1"/>
<line number="1282" hits="1"/>
<line number="1285" hits="1"/>
<line number="1286" hits="1"/>
<line number="1296" hits="1"/>
<line number="1299" hits="1"/>
<line number="1301" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1302"/>
<line number="1302" hits="0"/>
<line number="1305" hits="1"/>
<line number="1307" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1308" hits="1"/>
<line number="1309" hits="1"/>
<line number="1312" hits="1"/>
<line number="1313" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1314" hits="1"/>
<line number="1317" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1322"/>
<line number="1318" hits="1"/>
<line number="1319" hits="1"/>
<line number="1322" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1307"/>
<line number="1323" hits="1"/>
<line number="1324" hits="1"/>
<line number="1326" hits="1"/>
<line number="1328" hits="1"/>
<line number="1329" hits="1"/>
<line number="1339" hits="1"/>
<line number="1342" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1343"/>
<line number="1343" hits="0"/>
<line number="1345" hits="1"/>
<line number="1346" hits="1"/>
<line number="1349" hits="1"/>
<line number="1351" hits="1"/>
<line number="1352" hits="1"/>
<line number="1362" hits="1"/>
<line number="1365" hits="1"/>
<line number="1366" hits="1"/>
<line number="1368" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1369" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1370" hits="1"/>
<line number="1371" hits="1"/>
<line number="1372" hits="1"/>
<line number="1374" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1375"/>
<line number="1375" hits="0"/>
<line number="1378" hits="1"/>
<line number="1380" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1381" hits="1"/>
<line number="1382" hits="1"/>
<line number="1385" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1390"/>
<line number="1386" hits="1"/>
<line number="1387" hits="1"/>
<line number="1390" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1380"/>
<line number="1391" hits="1"/>
<line number="1392" hits="1"/>
<line number="1394" hits="1"/>
<line number="1396" hits="1"/>
<line number="1397" hits="1"/>
<line number="1407" hits="1"/>
<line number="1410" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1411"/>
<line number="1411" hits="0"/>
<line number="1414" hits="1"/>
<line number="1416" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1417"/>
<line number="1417" hits="0"/>
<line number="1420" hits="1"/>
<line number="1421" hits="1"/>
<line number="1423" hits="1"/>
<line number="1425" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1426" hits="1"/>
<line number="1427" hits="1"/>
<line number="1429" hits="1"/>
<line number="1431" hits="1"/>
<line number="1432" hits="1"/>
<line number="1443" hits="0"/>
<line number="1445" hits="1"/>
<line number="1446" hits="1"/>
<line number="1464" hits="0"/>
<line number="1465" hits="0"/>
<line number="1467" hits="1"/>
<line number="1468" hits="1"/>
<line number="1479" hits="0"/>
<line number="1481" hits="1"/>
<line number="1482" hits="1"/>
<line number="1493" hits="0"/>
<line number="1496" hits="1"/>
<line number="1497" hits="1"/>
<line number="1508" hits="0"/>
<line number="1510" hits="0"/>
<line number="1511" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1513,1520"/>
<line number="1513" hits="0"/>
<line number="1514" hits="0"/>
<line number="1515" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1516,1518"/>
<line number="1516" hits="0"/>
<line number="1518" hits="0"/>
<line number="1520" hits="0"/>
<line number="1523" hits="0"/>
<line number="1524" hits="0"/>
<line number="1526" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1527,1530"/>
<line number="1527" hits="0"/>
<line number="1528" hits="0"/>
<line number="1530" hits="0"/>
<line number="1531" hits="0"/>
<line number="1532" hits="0"/>
<line number="1534" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1535,1537"/>
<line number="1535" hits="0"/>
<line number="1537" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1538,1541"/>
<line number="1538" hits="0"/>
<line number="1539" hits="0"/>
<line number="1541" hits="0"/>
<line number="1542" hits="0"/>
<line number="1543" hits="0"/>
<line number="1544" hits="0"/>
<line number="1546" hits="1"/>
<line number="1547" hits="1"/>
<line number="1554" hits="1"/>
<line number="1556" hits="1"/>
<line number="1557" hits="1"/>
<line number="1558" hits="1"/>
<line number="1560" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="1561" hits="1"/>
<line number="1562" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1560"/>
<line number="1563" hits="1"/>
<line number="1564" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1567"/>
<line number="1565" hits="1"/>
<line number="1567" hits="1"/>
<line number="1568" hits="1"/>
<line number="1569" hits="1"/>
<line number="1571" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1573"/>
<line number="1572" hits="1"/>
<line number="1573" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1574,1577"/>
<line number="1574" hits="0"/>
<line number="1577" hits="1"/>
<line number="1578" hits="1"/>
<line number="1579" hits="1"/>
<line number="1581" hits="1"/>
<line number="1582" hits="0"/>
<line number="1583" hits="0"/>
<line number="1584" hits="0"/>
<line number="1586" hits="1"/>
<line number="1587" hits="1"/>
<line number="1598" hits="1"/>
<line number="1600" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1603"/>
<line number="1601" hits="1"/>
<line number="1603" hits="0"/>
<line number="1604" hits="0"/>
<line number="1606" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1607,1610"/>
<line number="1607" hits="0"/>
<line number="1610" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1611,1617"/>
<line number="1611" hits="0"/>
<line number="1612" hits="0"/>
<line number="1613" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1614,1615"/>
<line number="1614" hits="0"/>
<line number="1615" hits="0"/>
<line number="1617" hits="0"/>
<line number="1619" hits="0"/>
<line number="1620" hits="0"/>
<line number="1622" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1623,1645"/>
<line number="1623" hits="0"/>
<line number="1624" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1625,1627"/>
<line number="1625" hits="0"/>
<line number="1627" hits="0"/>
<line number="1628" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1629,1639"/>
<line number="1629" hits="0"/>
<line number="1630" hits="0"/>
<line number="1631" hits="0"/>
<line number="1632" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1628,1633"/>
<line number="1633" hits="0"/>
<line number="1634" hits="0"/>
<line number="1635" hits="0"/>
<line number="1636" hits="0"/>
<line number="1637" hits="0"/>
<line number="1639" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1622,1640"/>
<line number="1640" hits="0"/>
<line number="1641" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1642,1643"/>
<line number="1642" hits="0"/>
<line number="1643" hits="0"/>
<line number="1645" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1646,1648"/>
<line number="1646" hits="0"/>
<line number="1648" hits="0"/>
<line number="1649" hits="0"/>
<line number="1650" hits="0"/>
<line number="1651" hits="0"/>
<line number="1653" hits="1"/>
<line number="1654" hits="1"/>
<line number="1664" hits="0"/>
<line number="1666" hits="0"/>
<line number="1667" hits="0"/>
<line number="1669" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1670,1673"/>
<line number="1670" hits="0"/>
<line number="1671" hits="0"/>
<line number="1673" hits="0"/>
<line number="1674" hits="0"/>
<line number="1675" hits="0"/>
<line number="1678" hits="0"/>
<line number="1679" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1680,1681"/>
<line number="1680" hits="0"/>
<line number="1681" hits="0"/>
<line number="1683" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1684,1687"/>
<line number="1684" hits="0"/>
<line number="1685" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1686,1692"/>
<line number="1686" hits="0"/>
<line number="1687" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1688,1692"/>
<line number="1688" hits="0"/>
<line number="1689" hits="0"/>
<line number="1692" hits="0"/>
<line number="1693" hits="0"/>
<line number="1696" hits="0"/>
<line number="1697" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1698,1715"/>
<line number="1698" hits="0"/>
<line number="1699" hits="0"/>
<line number="1700" hits="0"/>
<line number="1702" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1703,1707"/>
<line number="1703" hits="0"/>
<line number="1704" hits="0"/>
<line number="1705" hits="0"/>
<line number="1707" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1708,1710"/>
<line number="1708" hits="0"/>
<line number="1710" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1711,1715"/>
<line number="1711" hits="0"/>
<line number="1712" hits="0"/>
<line number="1713" hits="0"/>
<line number="1715" hits="0"/>
<line number="1716" hits="0"/>
<line number="1718" hits="0"/>
<line number="1719" hits="0"/>
<line number="1720" hits="0"/>
<line number="1721" hits="0"/>
<line number="1725" hits="1"/>
<line number="1727" hits="1"/>
<line number="1730" hits="1"/>
<line number="1733" hits="1"/>
<line number="1736" hits="1"/>
<line number="1739" hits="1"/>
<line number="1740" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,1741"/>
<line number="1741" hits="0"/>
<line number="1742" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1740,1743"/>
<line number="1743" hits="0"/>
<line number="1744" hits="0"/>
<line number="1745" hits="0"/>
<line number="1746" hits="0"/>
<line number="1749" hits="1"/>
<line number="1752" hits="1"/>
<line number="1753" hits="1"/>
<line number="1754" hits="1"/>
<line number="1757" hits="1"/>
<line number="1760" hits="1"/>
<line number="1761" hits="0"/>
<line number="1764" hits="0"/>
<line number="1767" hits="0"/>
<line number="1769" hits="0"/>
<line number="1770" hits="0"/>
<line number="1771" hits="0"/>
<line number="1773" hits="0"/>
<line number="1776" hits="1"/>
<line number="1779" hits="1"/>
<line number="1780" hits="1"/>
<line number="1781" hits="1"/>
<line number="1782" hits="1"/>
<line number="1783" hits="1"/>
<line number="1784" hits="1"/>
<line number="1786" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="1787"/>
<line number="1787" hits="0"/>
</lines>
</class>
<class name="mcp_tools.py" filename="mcp_tools.py" complexity="0" line-rate="0.7315" branch-rate="0.6375">
<methods/>
<lines>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="17" hits="1"/>
<line number="19" hits="1"/>
<line number="22" hits="1"/>
<line number="25" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="30" hits="1"/>
<line number="32" hits="1"/>
<line number="33" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="39" hits="1"/>
<line number="42" hits="1"/>
<line number="43" hits="1"/>
<line number="45" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="47" hits="1"/>
<line number="48" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="49" hits="1"/>
<line number="51" hits="1"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="54" hits="1"/>
<line number="55" hits="1"/>
<line number="58" hits="1"/>
<line number="60" hits="0"/>
<line number="62" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="64,67"/>
<line number="64" hits="0"/>
<line number="67" hits="0"/>
<line number="70" hits="1"/>
<line number="72" hits="1"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="78" hits="1"/>
<line number="79" hits="0"/>
<line number="80" hits="0"/>
<line number="83" hits="1"/>
<line number="86" hits="1"/>
<line number="88" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="92"/>
<line number="90" hits="1"/>
<line number="92" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="99"/>
<line number="93" hits="1"/>
<line number="94" hits="1"/>
<line number="95" hits="1"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="99" hits="0"/>
<line number="102" hits="1"/>
<line number="109" hits="1"/>
<line number="110" hits="1"/>
<line number="112" hits="1"/>
<line number="113" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="115" hits="1"/>
<line number="116" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="117" hits="1"/>
<line number="120" hits="1"/>
<line number="121" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="122" hits="1"/>
<line number="123" hits="1"/>
<line number="124" hits="1"/>
<line number="125" hits="1"/>
<line number="128" hits="1"/>
<line number="129" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="134"/>
<line number="130" hits="1"/>
<line number="131" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="132" hits="1"/>
<line number="134" hits="0"/>
<line number="137" hits="1"/>
<line number="138" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="139" hits="1"/>
<line number="140" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="141" hits="1"/>
<line number="143" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="144"/>
<line number="144" hits="0"/>
<line number="146" hits="1"/>
<line number="147" hits="1"/>
<line number="149" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="150" hits="1"/>
<line number="151" hits="1"/>
<line number="153" hits="1"/>
<line number="154" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="158"/>
<line number="155" hits="1"/>
<line number="156" hits="1"/>
<line number="158" hits="1"/>
<line number="159" hits="1"/>
<line number="160" hits="1"/>
<line number="162" hits="1"/>
<line number="163" hits="0"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
<line number="168" hits="1"/>
<line number="176" hits="1"/>
<line number="179" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="181"/>
<line number="181" hits="0"/>
<line number="182" hits="0"/>
<line number="185" hits="1"/>
<line number="186" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="187" hits="1"/>
<line number="190" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="191" hits="1"/>
<line number="193" hits="1"/>
<line number="196" hits="1"/>
<line number="197" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="198" hits="1"/>
<line number="199" hits="1"/>
<line number="201" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="202" hits="1"/>
<line number="203" hits="1"/>
<line number="205" hits="1"/>
<line number="206" hits="1"/>
<line number="207" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="208" hits="1"/>
<line number="209" hits="1"/>
<line number="210" hits="0"/>
<line number="211" hits="0"/>
<line number="212" hits="0"/>
<line number="215" hits="1"/>
<line number="225" hits="1"/>
<line number="227" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="228" hits="1"/>
<line number="231" hits="1"/>
<line number="232" hits="1"/>
<line number="233" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="234"/>
<line number="234" hits="0"/>
<line number="235" hits="0"/>
<line number="237" hits="1"/>
<line number="238" hits="1"/>
<line number="239" hits="1"/>
<line number="241" hits="1"/>
<line number="243" hits="1"/>
<line number="245" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="246" hits="1"/>
<line number="247" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="248" hits="1"/>
<line number="250" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="251" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="252" hits="1"/>
<line number="254" hits="1"/>
<line number="255" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="250"/>
<line number="256" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="257" hits="1"/>
<line number="258" hits="1"/>
<line number="261" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="262" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="263"/>
<line number="263" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="262,264"/>
<line number="264" hits="0"/>
<line number="265" hits="0"/>
<line number="267" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="268,278"/>
<line number="268" hits="0"/>
<line number="269" hits="0"/>
<line number="270" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="267,271"/>
<line number="271" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="267,272"/>
<line number="272" hits="0"/>
<line number="273" hits="0"/>
<line number="274" hits="0"/>
<line number="275" hits="0"/>
<line number="276" hits="0"/>
<line number="278" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="262,279"/>
<line number="279" hits="0"/>
<line number="282" hits="1"/>
<line number="284" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="285" hits="1"/>
<line number="286" hits="1"/>
<line number="288" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="294"/>
<line number="289" hits="1"/>
<line number="290" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="291" hits="1"/>
<line number="292" hits="1"/>
<line number="294" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="295"/>
<line number="295" hits="0"/>
<line number="296" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="297,299"/>
<line number="297" hits="0"/>
<line number="299" hits="1"/>
<line number="301" hits="1"/>
<line number="302" hits="1"/>
<line number="305" hits="1"/>
<line number="306" hits="1"/>
<line number="308" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="310" hits="1"/>
<line number="311" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="312" hits="1"/>
<line number="314" hits="1"/>
<line number="315" hits="0"/>
<line number="316" hits="0"/>
<line number="317" hits="0"/>
<line number="320" hits="1"/>
<line number="333" hits="1"/>
<line number="335" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="336"/>
<line number="336" hits="0"/>
<line number="338" hits="1"/>
<line number="339" hits="1"/>
<line number="341" hits="1"/>
<line number="343" hits="1"/>
<line number="345" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="346" hits="1"/>
<line number="347" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="348"/>
<line number="348" hits="0"/>
<line number="350" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="351" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="350"/>
<line number="352" hits="1"/>
<line number="354" hits="1"/>
<line number="355" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="350"/>
<line number="356" hits="1"/>
<line number="357" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="350"/>
<line number="358" hits="1"/>
<line number="360" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="361" hits="1"/>
<line number="362" hits="1"/>
<line number="365" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="366" hits="1"/>
<line number="367" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="368" hits="1"/>
<line number="370" hits="1"/>
<line number="372" hits="1"/>
<line number="374" hits="1"/>
<line number="376" hits="1"/>
<line number="379" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="380"/>
<line number="380" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="381,411"/>
<line number="381" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="380,382"/>
<line number="382" hits="0"/>
<line number="384" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="380,385"/>
<line number="385" hits="0"/>
<line number="386" hits="0"/>
<line number="387" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="384,388"/>
<line number="388" hits="0"/>
<line number="389" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="384,390"/>
<line number="390" hits="0"/>
<line number="392" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="393,406"/>
<line number="393" hits="0"/>
<line number="394" hits="0"/>
<line number="396" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="397,398"/>
<line number="397" hits="0"/>
<line number="398" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="399,401"/>
<line number="399" hits="0"/>
<line number="401" hits="0"/>
<line number="402" hits="0"/>
<line number="404" hits="0"/>
<line number="406" hits="0"/>
<line number="407" hits="0"/>
<line number="408" hits="0"/>
<line number="409" hits="0"/>
<line number="411" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="414"/>
<line number="412" hits="1"/>
<line number="414" hits="0"/>
<line number="415" hits="0"/>
<line number="417" hits="0"/>
<line number="418" hits="0"/>
<line number="419" hits="0"/>
<line number="422" hits="1"/>
<line number="430" hits="1"/>
<line number="433" hits="1"/>
<line number="435" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="436"/>
<line number="436" hits="0"/>
<line number="438" hits="1"/>
<line number="439" hits="1"/>
<line number="440" hits="1"/>
<line number="442" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="444" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="446" hits="1"/>
<line number="447" hits="1"/>
<line number="448" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="442"/>
<line number="449" hits="1"/>
<line number="450" hits="1"/>
<line number="452" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="455"/>
<line number="453" hits="1"/>
<line number="455" hits="0"/>
<line number="457" hits="1"/>
<line number="458" hits="0"/>
<line number="459" hits="0"/>
<line number="460" hits="0"/>
<line number="463" hits="1"/>
<line number="471" hits="1"/>
<line number="473" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="474"/>
<line number="474" hits="0"/>
<line number="477" hits="1"/>
<line number="488" hits="1"/>
<line number="489" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="490"/>
<line number="490" hits="0"/>
<line number="491" hits="0"/>
<line number="493" hits="1"/>
<line number="494" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="495"/>
<line number="495" hits="0"/>
<line number="497" hits="1"/>
<line number="499" hits="1"/>
<line number="500" hits="1"/>
<line number="502" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="503" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="502"/>
<line number="504" hits="1"/>
<line number="506" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="507" hits="1"/>
<line number="509" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="535"/>
<line number="510" hits="1"/>
<line number="511" hits="1"/>
<line number="513" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="515" hits="1"/>
<line number="516" hits="1"/>
<line number="518" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="531"/>
<line number="520" hits="1"/>
<line number="521" hits="1"/>
<line number="523" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="529"/>
<line number="524" hits="1"/>
<line number="525" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="526" hits="1"/>
<line number="527" hits="1"/>
<line number="529" hits="1"/>
<line number="531" hits="0"/>
<line number="533" hits="1"/>
<line number="535" hits="0"/>
<line number="537" hits="0"/>
<line number="538" hits="0"/>
<line number="539" hits="0"/>
<line number="542" hits="1"/>
<line number="544" hits="1"/>
<line number="545" hits="1"/>
<line number="546" hits="1"/>
<line number="547" hits="1"/>
</lines>
</class>
<class name="shutdown_handler.py" filename="shutdown_handler.py" complexity="0" line-rate="0.9688" branch-rate="0.8333">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="2" hits="1"/>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="6" hits="1"/>
<line number="11" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="1"/>
<line number="22" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="23"/>
<line number="23" hits="0"/>
<line number="25" hits="1"/>
<line number="34" hits="1"/>
<line number="36" hits="1"/>
<line number="44" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="46" hits="1"/>
<line number="47" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="1"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="56" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="57" hits="1"/>
<line number="58" hits="1"/>
<line number="59" hits="1"/>
<line number="60" hits="1"/>
<line number="61" hits="1"/>
<line number="63" hits="1"/>
<line number="64" hits="1"/>
<line number="67" hits="1"/>
</lines>
</class>
</classes>
</package>
<package name="tests" line-rate="0.9344" branch-rate="0.625" complexity="0">
<classes>
<class name="__init__.py" filename="tests/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines/>
</class>
<class name="conftest.py" filename="tests/conftest.py" complexity="0" line-rate="0.8246" branch-rate="0.625">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
<line number="21" hits="1"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="31" hits="1"/>
<line number="32" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="38" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="43" hits="1"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="51" hits="1"/>
<line number="60" hits="1"/>
<line number="62" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="1"/>
<line number="68" hits="1"/>
<line number="69" hits="1"/>
<line number="72" hits="1"/>
<line number="74" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="75" hits="1"/>
<line number="76" hits="1"/>
<line number="79" hits="1"/>
<line number="80" hits="1"/>
<line number="83" hits="1"/>
<line number="92" hits="1"/>
<line number="94" hits="1"/>
<line number="97" hits="1"/>
<line number="98" hits="1"/>
<line number="100" hits="1"/>
<line number="126" hits="1"/>
<line number="127" hits="1"/>
<line number="129" hits="0"/>
<line number="131" hits="0"/>
<line number="132" hits="0"/>
<line number="142" hits="0"/>
<line number="143" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="149" hits="1"/>
<line number="150" hits="1"/>
<line number="152" hits="0"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="157" hits="0"/>
<line number="159" hits="0"/>
<line number="160" hits="0"/>
<line number="163" hits="1"/>
<line number="164" hits="1"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="168" hits="0"/>
<line number="169" hits="0"/>
<line number="172" hits="1"/>
<line number="173" hits="1"/>
<line number="175" hits="1"/>
<line number="178" hits="1"/>
<line number="179" hits="1"/>
<line number="181" hits="1"/>
<line number="184" hits="1"/>
<line number="185" hits="1"/>
<line number="187" hits="1"/>
<line number="190" hits="1"/>
<line number="191" hits="1"/>
<line number="193" hits="0"/>
<line number="196" hits="1"/>
<line number="197" hits="1"/>
<line number="199" hits="0"/>
<line number="202" hits="1"/>
<line number="203" hits="1"/>
<line number="206" hits="1"/>
<line number="209" hits="1"/>
<line number="212" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="214"/>
<line number="213" hits="1"/>
<line number="214" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="218"/>
<line number="215" hits="1"/>
<line number="218" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="221"/>
<line number="219" hits="1"/>
<line number="221" hits="1"/>
<line number="224" hits="1"/>
<line number="226" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="228"/>
<line number="227" hits="1"/>
<line number="228" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="231"/>
<line number="229" hits="1"/>
<line number="231" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="exit"/>
<line number="232" hits="1"/>
<line number="235" hits="1"/>
<line number="236" hits="1"/>
<line number="238" hits="1"/>
<line number="266" hits="1"/>
<line number="267" hits="1"/>
<line number="269" hits="1"/>
<line number="271" hits="1"/>
</lines>
</class>
<class name="test_community_packages.py" filename="tests/test_community_packages.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="12" hits="1"/>
<line number="14" hits="1"/>
<line number="17" hits="1"/>
<line number="20" hits="1"/>
<line number="21" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="29" hits="1"/>
<line number="31" hits="1"/>
<line number="33" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="38" hits="1"/>
<line number="40" hits="1"/>
<line number="41" hits="1"/>
<line number="42" hits="1"/>
<line number="43" hits="1"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="46" hits="1"/>
<line number="47" hits="1"/>
<line number="49" hits="1"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="54" hits="1"/>
<line number="57" hits="1"/>
<line number="58" hits="1"/>
<line number="59" hits="1"/>
<line number="61" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="68" hits="1"/>
<line number="69" hits="1"/>
<line number="71" hits="1"/>
<line number="73" hits="1"/>
<line number="75" hits="1"/>
<line number="77" hits="1"/>
<line number="80" hits="1"/>
<line number="81" hits="1"/>
<line number="83" hits="1"/>
<line number="87" hits="1"/>
<line number="88" hits="1"/>
<line number="90" hits="1"/>
<line number="92" hits="1"/>
<line number="94" hits="1"/>
<line number="97" hits="1"/>
<line number="98" hits="1"/>
<line number="100" hits="1"/>
<line number="104" hits="1"/>
<line number="105" hits="1"/>
<line number="107" hits="1"/>
<line number="109" hits="1"/>
<line number="111" hits="1"/>
<line number="113" hits="1"/>
<line number="116" hits="1"/>
<line number="117" hits="1"/>
<line number="118" hits="1"/>
<line number="120" hits="1"/>
<line number="124" hits="1"/>
<line number="125" hits="1"/>
<line number="128" hits="1"/>
<line number="130" hits="1"/>
<line number="131" hits="1"/>
<line number="134" hits="1"/>
<line number="135" hits="1"/>
<line number="150" hits="1"/>
<line number="151" hits="1"/>
<line number="153" hits="1"/>
<line number="155" hits="1"/>
<line number="156" hits="1"/>
<line number="157" hits="1"/>
<line number="158" hits="1"/>
<line number="159" hits="1"/>
<line number="160" hits="1"/>
<line number="161" hits="1"/>
<line number="162" hits="1"/>
<line number="164" hits="1"/>
<line number="166" hits="1"/>
<line number="178" hits="1"/>
<line number="180" hits="1"/>
<line number="181" hits="1"/>
<line number="182" hits="1"/>
<line number="184" hits="1"/>
<line number="186" hits="1"/>
<line number="188" hits="1"/>
<line number="189" hits="1"/>
<line number="190" hits="1"/>
<line number="193" hits="1"/>
<line number="194" hits="1"/>
<line number="195" hits="1"/>
<line number="196" hits="1"/>
<line number="199" hits="1"/>
<line number="200" hits="1"/>
<line number="201" hits="1"/>
<line number="202" hits="1"/>
<line number="203" hits="1"/>
<line number="205" hits="1"/>
<line number="207" hits="1"/>
<line number="208" hits="1"/>
<line number="210" hits="1"/>
<line number="212" hits="1"/>
<line number="213" hits="1"/>
<line number="214" hits="1"/>
<line number="216" hits="1"/>
<line number="218" hits="1"/>
<line number="253" hits="1"/>
<line number="255" hits="1"/>
<line number="256" hits="1"/>
<line number="257" hits="1"/>
<line number="258" hits="1"/>
<line number="259" hits="1"/>
<line number="260" hits="1"/>
<line number="261" hits="1"/>
<line number="263" hits="1"/>
<line number="264" hits="1"/>
<line number="265" hits="1"/>
<line number="267" hits="1"/>
<line number="270" hits="1"/>
<line number="271" hits="1"/>
<line number="272" hits="1"/>
<line number="275" hits="1"/>
<line number="276" hits="1"/>
<line number="277" hits="1"/>
<line number="280" hits="1"/>
<line number="281" hits="1"/>
<line number="282" hits="1"/>
<line number="284" hits="1"/>
<line number="285" hits="1"/>
<line number="288" hits="1"/>
<line number="289" hits="1"/>
<line number="301" hits="1"/>
<line number="302" hits="1"/>
<line number="305" hits="1"/>
<line number="313" hits="1"/>
<line number="315" hits="1"/>
<line number="317" hits="1"/>
<line number="318" hits="1"/>
<line number="321" hits="1"/>
<line number="322" hits="1"/>
<line number="323" hits="1"/>
<line number="324" hits="1"/>
<line number="325" hits="1"/>
<line number="327" hits="1"/>
<line number="329" hits="1"/>
<line number="331" hits="1"/>
<line number="332" hits="1"/>
<line number="333" hits="1"/>
<line number="334" hits="1"/>
<line number="335" hits="1"/>
<line number="336" hits="1"/>
<line number="339" hits="1"/>
<line number="340" hits="1"/>
<line number="341" hits="1"/>
<line number="342" hits="1"/>
<line number="344" hits="1"/>
<line number="346" hits="1"/>
<line number="347" hits="1"/>
<line number="350" hits="1"/>
<line number="351" hits="1"/>
<line number="352" hits="1"/>
<line number="353" hits="1"/>
<line number="354" hits="1"/>
<line number="355" hits="1"/>
<line number="356" hits="1"/>
<line number="357" hits="1"/>
<line number="358" hits="1"/>
<line number="359" hits="1"/>
<line number="362" hits="1"/>
<line number="363" hits="1"/>
<line number="364" hits="1"/>
<line number="365" hits="1"/>
<line number="366" hits="1"/>
<line number="368" hits="1"/>
<line number="371" hits="1"/>
<line number="372" hits="1"/>
<line number="373" hits="1"/>
<line number="374" hits="1"/>
<line number="375" hits="1"/>
<line number="376" hits="1"/>
<line number="377" hits="1"/>
<line number="378" hits="1"/>
</lines>
</class>
</classes>
</package>
<package name="tests.integration" line-rate="0.9956" branch-rate="1" complexity="0">
<classes>
<class name="__init__.py" filename="tests/integration/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines/>
</class>
<class name="test_complete_workflows.py" filename="tests/integration/test_complete_workflows.py" complexity="0" line-rate="0.9956" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="14" hits="1"/>
<line number="17" hits="1"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="31" hits="1"/>
<line number="32" hits="1"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="41" hits="1"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="46" hits="1"/>
<line number="47" hits="1"/>
<line number="50" hits="1"/>
<line number="53" hits="1"/>
<line number="54" hits="1"/>
<line number="55" hits="1"/>
<line number="58" hits="1"/>
<line number="60" hits="1"/>
<line number="61" hits="1"/>
<line number="62" hits="1"/>
<line number="64" hits="1"/>
<line number="66" hits="1"/>
<line number="68" hits="1"/>
<line number="69" hits="1"/>
<line number="71" hits="1"/>
<line number="72" hits="1"/>
<line number="75" hits="1"/>
<line number="76" hits="1"/>
<line number="78" hits="1"/>
<line number="79" hits="1"/>
<line number="82" hits="1"/>
<line number="83" hits="1"/>
<line number="85" hits="1"/>
<line number="88" hits="1"/>
<line number="89" hits="1"/>
<line number="90" hits="1"/>
<line number="92" hits="1"/>
<line number="93" hits="1"/>
<line number="95" hits="1"/>
<line number="97" hits="1"/>
<line number="100" hits="1"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="105" hits="1"/>
<line number="108" hits="1"/>
<line number="109" hits="1"/>
<line number="110" hits="1"/>
<line number="114" hits="1"/>
<line number="115" hits="1"/>
<line number="116" hits="1"/>
<line number="119" hits="1"/>
<line number="120" hits="1"/>
<line number="121" hits="1"/>
<line number="124" hits="1"/>
<line number="125" hits="1"/>
<line number="128" hits="1"/>
<line number="130" hits="1"/>
<line number="132" hits="1"/>
<line number="134" hits="1"/>
<line number="136" hits="1"/>
<line number="139" hits="1"/>
<line number="140" hits="1"/>
<line number="141" hits="1"/>
<line number="143" hits="1"/>
<line number="147" hits="1"/>
<line number="148" hits="1"/>
<line number="150" hits="1"/>
<line number="152" hits="1"/>
<line number="155" hits="1"/>
<line number="158" hits="1"/>
<line number="159" hits="1"/>
<line number="160" hits="1"/>
<line number="161" hits="1"/>
<line number="164" hits="1"/>
<line number="165" hits="1"/>
<line number="168" hits="1"/>
<line number="171" hits="1"/>
<line number="172" hits="1"/>
<line number="174" hits="1"/>
<line number="177" hits="1"/>
<line number="178" hits="1"/>
<line number="179" hits="1"/>
<line number="180" hits="1"/>
<line number="182" hits="1"/>
<line number="185" hits="1"/>
<line number="186" hits="1"/>
<line number="188" hits="1"/>
<line number="191" hits="1"/>
<line number="192" hits="1"/>
<line number="193" hits="0"/>
<line number="194" hits="1"/>
<line number="196" hits="1"/>
<line number="198" hits="1"/>
<line number="200" hits="1"/>
<line number="203" hits="1"/>
<line number="204" hits="1"/>
<line number="205" hits="1"/>
<line number="206" hits="1"/>
<line number="207" hits="1"/>
<line number="208" hits="1"/>
<line number="211" hits="1"/>
<line number="214" hits="1"/>
<line number="215" hits="1"/>
<line number="218" hits="1"/>
<line number="219" hits="1"/>
<line number="222" hits="1"/>
<line number="224" hits="1"/>
<line number="227" hits="1"/>
<line number="230" hits="1"/>
<line number="231" hits="1"/>
<line number="232" hits="1"/>
<line number="235" hits="1"/>
<line number="236" hits="1"/>
<line number="239" hits="1"/>
<line number="242" hits="1"/>
<line number="245" hits="1"/>
<line number="246" hits="1"/>
<line number="249" hits="1"/>
<line number="250" hits="1"/>
<line number="251" hits="1"/>
<line number="253" hits="1"/>
<line number="255" hits="1"/>
<line number="258" hits="1"/>
<line number="261" hits="1"/>
<line number="262" hits="1"/>
<line number="263" hits="1"/>
<line number="265" hits="1"/>
<line number="267" hits="1"/>
<line number="268" hits="1"/>
<line number="271" hits="1"/>
<line number="276" hits="1"/>
<line number="277" hits="1"/>
<line number="278" hits="1"/>
<line number="279" hits="1"/>
<line number="281" hits="1"/>
<line number="283" hits="1"/>
<line number="286" hits="1"/>
<line number="287" hits="1"/>
<line number="290" hits="1"/>
<line number="291" hits="1"/>
<line number="294" hits="1"/>
<line number="297" hits="1"/>
<line number="298" hits="1"/>
<line number="301" hits="1"/>
<line number="302" hits="1"/>
<line number="305" hits="1"/>
<line number="307" hits="1"/>
<line number="310" hits="1"/>
<line number="311" hits="1"/>
<line number="312" hits="1"/>
<line number="313" hits="1"/>
<line number="316" hits="1"/>
<line number="317" hits="1"/>
<line number="320" hits="1"/>
<line number="321" hits="1"/>
<line number="324" hits="1"/>
<line number="330" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="331" hits="1"/>
<line number="333" hits="1"/>
<line number="335" hits="1"/>
<line number="337" hits="1"/>
<line number="339" hits="1"/>
<line number="343" hits="1"/>
<line number="344" hits="1"/>
<line number="347" hits="1"/>
<line number="348" hits="1"/>
<line number="351" hits="1"/>
<line number="354" hits="1"/>
<line number="355" hits="1"/>
<line number="356" hits="1"/>
<line number="359" hits="1"/>
<line number="360" hits="1"/>
<line number="361" hits="1"/>
<line number="364" hits="1"/>
<line number="365" hits="1"/>
<line number="368" hits="1"/>
<line number="370" hits="1"/>
<line number="373" hits="1"/>
<line number="374" hits="1"/>
<line number="375" hits="1"/>
<line number="378" hits="1"/>
<line number="379" hits="1"/>
<line number="382" hits="1"/>
<line number="383" hits="1"/>
<line number="384" hits="1"/>
<line number="387" hits="1"/>
<line number="388" hits="1"/>
<line number="389" hits="1"/>
<line number="390" hits="1"/>
<line number="392" hits="1"/>
<line number="394" hits="1"/>
<line number="397" hits="1"/>
<line number="399" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="400" hits="1"/>
<line number="401" hits="1"/>
<line number="404" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="405" hits="1"/>
<line number="406" hits="1"/>
<line number="409" hits="1"/>
<line number="410" hits="1"/>
<line number="412" hits="1"/>
<line number="414" hits="1"/>
<line number="416" hits="1"/>
<line number="419" hits="1"/>
<line number="420" hits="1"/>
<line number="422" hits="1"/>
<line number="424" hits="1"/>
<line number="427" hits="1"/>
<line number="428" hits="1"/>
<line number="429" hits="1"/>
<line number="430" hits="1"/>
<line number="433" hits="1"/>
<line number="434" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="435" hits="1"/>
<line number="436" hits="1"/>
<line number="439" hits="1"/>
<line number="440" hits="1"/>
</lines>
</class>
</classes>
</package>
<package name="tests.unit" line-rate="0.9857" branch-rate="0.84" complexity="0">
<classes>
<class name="__init__.py" filename="tests/unit/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines/>
</class>
<class name="test_asset_filtering.py" filename="tests/unit/test_asset_filtering.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="2" hits="1"/>
<line number="5" hits="1"/>
<line number="8" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="30" hits="1"/>
<line number="31" hits="1"/>
<line number="32" hits="1"/>
<line number="33" hits="1"/>
<line number="36" hits="1"/>
<line number="38" hits="1"/>
<line number="40" hits="1"/>
<line number="43" hits="1"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="56" hits="1"/>
<line number="57" hits="1"/>
<line number="60" hits="1"/>
<line number="61" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="67" hits="1"/>
<line number="69" hits="1"/>
<line number="72" hits="1"/>
<line number="73" hits="1"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="78" hits="1"/>
<line number="79" hits="1"/>
<line number="82" hits="1"/>
<line number="83" hits="1"/>
<line number="85" hits="1"/>
<line number="87" hits="1"/>
<line number="90" hits="1"/>
<line number="91" hits="1"/>
<line number="92" hits="1"/>
<line number="95" hits="1"/>
<line number="96" hits="1"/>
<line number="99" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
</lines>
</class>
<class name="test_cache_management.py" filename="tests/unit/test_cache_management.py" complexity="0" line-rate="0.973" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="9" hits="1"/>
<line number="12" hits="1"/>
<line number="14" hits="1"/>
<line number="16" hits="1"/>
<line number="18" hits="1"/>
<line number="20" hits="1"/>
<line number="23" hits="1"/>
<line number="25" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="30" hits="1"/>
<line number="31" hits="1"/>
<line number="34" hits="1"/>
<line number="37" hits="1"/>
<line number="40" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="41" hits="1"/>
<line number="44" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="45" hits="1"/>
<line number="48" hits="1"/>
<line number="50" hits="1"/>
<line number="52" hits="1"/>
<line number="54" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="55" hits="1"/>
<line number="58" hits="1"/>
<line number="60" hits="1"/>
<line number="62" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="63" hits="1"/>
<line number="66" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="67" hits="1"/>
<line number="69" hits="1"/>
<line number="72" hits="1"/>
<line number="73" hits="1"/>
<line number="75" hits="1"/>
<line number="76" hits="1"/>
<line number="79" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="80" hits="1"/>
<line number="81" hits="1"/>
<line number="84" hits="1"/>
<line number="85" hits="1"/>
<line number="88" hits="1"/>
<line number="91" hits="1"/>
<line number="94" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="95" hits="1"/>
<line number="96" hits="1"/>
<line number="98" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
<line number="103" hits="1"/>
<line number="105" hits="1"/>
<line number="106" hits="1"/>
<line number="107" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="108" hits="1"/>
<line number="109" hits="1"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="114" hits="1"/>
<line number="115" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="116" hits="1"/>
<line number="117" hits="1"/>
<line number="118" hits="1"/>
<line number="121" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="122" hits="1"/>
<line number="125" hits="1"/>
<line number="128" hits="1"/>
<line number="131" hits="1"/>
<line number="133" hits="1"/>
<line number="135" hits="1"/>
<line number="137" hits="1"/>
<line number="139" hits="1"/>
<line number="141" hits="1"/>
<line number="142" hits="1"/>
<line number="143" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="144" hits="1"/>
<line number="145" hits="1"/>
<line number="146" hits="0"/>
<line number="147" hits="0"/>
<line number="150" hits="1"/>
<line number="151" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="152" hits="1"/>
<line number="153" hits="1"/>
<line number="154" hits="1"/>
<line number="157" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="158" hits="1"/>
<line number="161" hits="1"/>
<line number="164" hits="1"/>
<line number="165" hits="1"/>
<line number="167" hits="1"/>
<line number="169" hits="1"/>
<line number="171" hits="1"/>
<line number="173" hits="1"/>
<line number="174" hits="1"/>
<line number="177" hits="1"/>
<line number="178" hits="1"/>
<line number="179" hits="1"/>
<line number="182" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="183" hits="1"/>
<line number="186" hits="1"/>
<line number="187" hits="1"/>
<line number="190" hits="1"/>
<line number="194" hits="1"/>
<line number="197" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="198" hits="1"/>
<line number="201" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="202" hits="1"/>
<line number="203" hits="1"/>
<line number="205" hits="1"/>
<line number="208" hits="1"/>
<line number="209" hits="1"/>
<line number="210" hits="1"/>
<line number="213" hits="1"/>
<line number="214" hits="1"/>
<line number="217" hits="1"/>
<line number="218" hits="1"/>
<line number="219" hits="1"/>
<line number="221" hits="1"/>
<line number="223" hits="1"/>
<line number="226" hits="1"/>
<line number="227" hits="1"/>
<line number="228" hits="1"/>
<line number="231" hits="1"/>
<line number="232" hits="1"/>
<line number="234" hits="1"/>
<line number="236" hits="1"/>
<line number="237" hits="1"/>
<line number="240" hits="1"/>
<line number="241" hits="1"/>
<line number="242" hits="1"/>
<line number="244" hits="1"/>
<line number="246" hits="1"/>
<line number="247" hits="1"/>
<line number="248" hits="1"/>
<line number="249" hits="1"/>
<line number="251" hits="1"/>
<line number="253" hits="1"/>
<line number="255" hits="1"/>
<line number="257" hits="1"/>
<line number="258" hits="1"/>
<line number="259" hits="1"/>
<line number="261" hits="1"/>
<line number="262" hits="1"/>
<line number="263" hits="1"/>
<line number="266" hits="1"/>
<line number="269" hits="1"/>
<line number="270" hits="1"/>
</lines>
</class>
<class name="test_content_validation.py" filename="tests/unit/test_content_validation.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="7" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="13" hits="1"/>
<line number="15" hits="1"/>
<line number="17" hits="1"/>
<line number="33" hits="1"/>
<line number="35" hits="1"/>
<line number="37" hits="1"/>
<line number="53" hits="1"/>
<line number="55" hits="1"/>
<line number="57" hits="1"/>
<line number="69" hits="1"/>
<line number="71" hits="1"/>
<line number="73" hits="1"/>
<line number="85" hits="1"/>
<line number="87" hits="1"/>
<line number="89" hits="1"/>
<line number="91" hits="1"/>
<line number="93" hits="1"/>
<line number="96" hits="1"/>
<line number="104" hits="1"/>
<line number="106" hits="1"/>
<line number="108" hits="1"/>
<line number="117" hits="1"/>
<line number="119" hits="1"/>
<line number="121" hits="1"/>
<line number="135" hits="1"/>
<line number="137" hits="1"/>
<line number="139" hits="1"/>
<line number="141" hits="1"/>
<line number="143" hits="1"/>
<line number="144" hits="1"/>
<line number="146" hits="1"/>
<line number="148" hits="1"/>
<line number="176" hits="1"/>
<line number="178" hits="1"/>
<line number="180" hits="1"/>
<line number="196" hits="1"/>
<line number="198" hits="1"/>
<line number="200" hits="1"/>
<line number="208" hits="1"/>
<line number="210" hits="1"/>
<line number="212" hits="1"/>
<line number="220" hits="1"/>
<line number="222" hits="1"/>
<line number="224" hits="1"/>
<line number="249" hits="1"/>
<line number="251" hits="1"/>
<line number="254" hits="1"/>
<line number="255" hits="1"/>
<line number="258" hits="1"/>
<line number="259" hits="1"/>
<line number="262" hits="1"/>
<line number="264" hits="1"/>
<line number="266" hits="1"/>
</lines>
</class>
<class name="test_docs_updater.py" filename="tests/unit/test_docs_updater.py" complexity="0" line-rate="0.9987" branch-rate="0.5">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="12" hits="1"/>
<line number="26" hits="1"/>
<line number="29" hits="1"/>
<line number="31" hits="1"/>
<line number="33" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="40" hits="1"/>
<line number="41" hits="1"/>
<line number="43" hits="1"/>
<line number="44" hits="1"/>
<line number="46" hits="1"/>
<line number="47" hits="1"/>
<line number="57" hits="1"/>
<line number="58" hits="1"/>
<line number="60" hits="1"/>
<line number="62" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="1"/>
<line number="67" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="72" hits="1"/>
<line number="76" hits="1"/>
<line number="77" hits="1"/>
<line number="79" hits="1"/>
<line number="80" hits="1"/>
<line number="84" hits="1"/>
<line number="89" hits="1"/>
<line number="90" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="107" hits="1"/>
<line number="108" hits="1"/>
<line number="109" hits="1"/>
<line number="111" hits="1"/>
<line number="113" hits="1"/>
<line number="119" hits="1"/>
<line number="121" hits="1"/>
<line number="122" hits="1"/>
<line number="124" hits="1"/>
<line number="127" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="130"/>
<line number="128" hits="1"/>
<line number="130" hits="1"/>
<line number="131" hits="1"/>
<line number="133" hits="1"/>
<line number="135" hits="1"/>
<line number="137" hits="1"/>
<line number="138" hits="1"/>
<line number="140" hits="1"/>
<line number="142" hits="1"/>
<line number="148" hits="1"/>
<line number="150" hits="1"/>
<line number="151" hits="1"/>
<line number="152" hits="1"/>
<line number="154" hits="1"/>
<line number="155" hits="1"/>
<line number="156" hits="1"/>
<line number="157" hits="1"/>
<line number="158" hits="1"/>
<line number="161" hits="1"/>
<line number="162" hits="1"/>
<line number="165" hits="1"/>
<line number="166" hits="1"/>
<line number="167" hits="1"/>
<line number="168" hits="1"/>
<line number="171" hits="1"/>
<line number="174" hits="1"/>
<line number="175" hits="1"/>
<line number="176" hits="1"/>
<line number="177" hits="1"/>
<line number="180" hits="1"/>
<line number="181" hits="1"/>
<line number="182" hits="1"/>
<line number="185" hits="1"/>
<line number="186" hits="1"/>
<line number="187" hits="1"/>
<line number="190" hits="1"/>
<line number="191" hits="1"/>
<line number="192" hits="1"/>
<line number="194" hits="1"/>
<line number="195" hits="1"/>
<line number="197" hits="1"/>
<line number="198" hits="1"/>
<line number="200" hits="1"/>
<line number="203" hits="1"/>
<line number="204" hits="1"/>
<line number="206" hits="1"/>
<line number="208" hits="1"/>
<line number="209" hits="1"/>
<line number="211" hits="1"/>
<line number="214" hits="1"/>
<line number="215" hits="1"/>
<line number="217" hits="1"/>
<line number="219" hits="1"/>
<line number="220" hits="1"/>
<line number="222" hits="1"/>
<line number="224" hits="1"/>
<line number="226" hits="1"/>
<line number="227" hits="1"/>
<line number="229" hits="1"/>
<line number="232" hits="1"/>
<line number="234" hits="1"/>
<line number="235" hits="1"/>
<line number="236" hits="1"/>
<line number="237" hits="1"/>
<line number="239" hits="1"/>
<line number="240" hits="1"/>
<line number="248" hits="1"/>
<line number="249" hits="1"/>
<line number="252" hits="1"/>
<line number="253" hits="1"/>
<line number="254" hits="1"/>
<line number="257" hits="1"/>
<line number="259" hits="1"/>
<line number="261" hits="1"/>
<line number="266" hits="1"/>
<line number="268" hits="1"/>
<line number="270" hits="1"/>
<line number="271" hits="1"/>
<line number="273" hits="1"/>
<line number="274" hits="1"/>
<line number="276" hits="1"/>
<line number="278" hits="1"/>
<line number="279" hits="1"/>
<line number="281" hits="1"/>
<line number="282" hits="1"/>
<line number="284" hits="1"/>
<line number="286" hits="1"/>
<line number="289" hits="1"/>
<line number="295" hits="1"/>
<line number="296" hits="1"/>
<line number="297" hits="1"/>
<line number="298" hits="1"/>
<line number="300" hits="1"/>
<line number="305" hits="1"/>
<line number="306" hits="1"/>
<line number="308" hits="1"/>
<line number="309" hits="1"/>
<line number="311" hits="1"/>
<line number="313" hits="1"/>
<line number="314" hits="1"/>
<line number="316" hits="1"/>
<line number="317" hits="1"/>
<line number="318" hits="1"/>
<line number="319" hits="1"/>
<line number="322" hits="1"/>
<line number="323" hits="1"/>
<line number="326" hits="1"/>
<line number="327" hits="1"/>
<line number="328" hits="1"/>
<line number="329" hits="1"/>
<line number="332" hits="1"/>
<line number="333" hits="1"/>
<line number="334" hits="1"/>
<line number="335" hits="1"/>
<line number="338" hits="1"/>
<line number="339" hits="1"/>
<line number="341" hits="1"/>
<line number="342" hits="1"/>
<line number="344" hits="1"/>
<line number="345" hits="1"/>
<line number="346" hits="1"/>
<line number="348" hits="1"/>
<line number="354" hits="1"/>
<line number="356" hits="1"/>
<line number="357" hits="1"/>
<line number="358" hits="1"/>
<line number="360" hits="1"/>
<line number="362" hits="1"/>
<line number="366" hits="1"/>
<line number="374" hits="1"/>
<line number="375" hits="1"/>
<line number="377" hits="1"/>
<line number="378" hits="1"/>
<line number="379" hits="1"/>
<line number="381" hits="1"/>
<line number="382" hits="1"/>
<line number="384" hits="1"/>
<line number="388" hits="1"/>
<line number="389" hits="1"/>
<line number="391" hits="1"/>
<line number="393" hits="1"/>
<line number="396" hits="1"/>
<line number="401" hits="1"/>
<line number="404" hits="1"/>
<line number="406" hits="1"/>
<line number="407" hits="1"/>
<line number="410" hits="1"/>
<line number="413" hits="1"/>
<line number="415" hits="1"/>
<line number="417" hits="1"/>
<line number="418" hits="1"/>
<line number="419" hits="1"/>
<line number="420" hits="1"/>
<line number="421" hits="1"/>
<line number="422" hits="1"/>
<line number="424" hits="1"/>
<line number="426" hits="1"/>
<line number="428" hits="1"/>
<line number="429" hits="1"/>
<line number="431" hits="1"/>
<line number="433" hits="1"/>
<line number="435" hits="1"/>
<line number="436" hits="1"/>
<line number="438" hits="1"/>
<line number="440" hits="1"/>
<line number="442" hits="1"/>
<line number="444" hits="1"/>
<line number="445" hits="1"/>
<line number="447" hits="1"/>
<line number="448" hits="1"/>
<line number="451" hits="1"/>
<line number="452" hits="1"/>
<line number="453" hits="1"/>
<line number="455" hits="1"/>
<line number="457" hits="1"/>
<line number="459" hits="1"/>
<line number="460" hits="1"/>
<line number="461" hits="1"/>
<line number="463" hits="1"/>
<line number="465" hits="1"/>
<line number="467" hits="1"/>
<line number="468" hits="1"/>
<line number="470" hits="1"/>
<line number="471" hits="1"/>
<line number="473" hits="1"/>
<line number="474" hits="1"/>
<line number="475" hits="1"/>
<line number="477" hits="1"/>
<line number="478" hits="1"/>
<line number="481" hits="1"/>
<line number="482" hits="1"/>
<line number="483" hits="1"/>
<line number="484" hits="1"/>
<line number="485" hits="1"/>
<line number="488" hits="1"/>
<line number="489" hits="1"/>
<line number="491" hits="1"/>
<line number="493" hits="1"/>
<line number="494" hits="1"/>
<line number="495" hits="1"/>
<line number="497" hits="1"/>
<line number="499" hits="1"/>
<line number="500" hits="1"/>
<line number="502" hits="1"/>
<line number="503" hits="1"/>
<line number="505" hits="1"/>
<line number="509" hits="1"/>
<line number="510" hits="1"/>
<line number="512" hits="1"/>
<line number="514" hits="1"/>
<line number="516" hits="1"/>
<line number="518" hits="1"/>
<line number="519" hits="1"/>
<line number="520" hits="1"/>
<line number="521" hits="1"/>
<line number="522" hits="1"/>
<line number="524" hits="1"/>
<line number="526" hits="1"/>
<line number="528" hits="1"/>
<line number="529" hits="1"/>
<line number="530" hits="1"/>
<line number="533" hits="1"/>
<line number="534" hits="1"/>
<line number="536" hits="1"/>
<line number="538" hits="1"/>
<line number="548" hits="1"/>
<line number="550" hits="1"/>
<line number="551" hits="1"/>
<line number="552" hits="1"/>
<line number="553" hits="1"/>
<line number="554" hits="1"/>
<line number="556" hits="1"/>
<line number="558" hits="1"/>
<line number="568" hits="1"/>
<line number="571" hits="1"/>
<line number="572" hits="1"/>
<line number="575" hits="1"/>
<line number="578" hits="1"/>
<line number="581" hits="1"/>
<line number="583" hits="1"/>
<line number="584" hits="1"/>
<line number="585" hits="1"/>
<line number="587" hits="1"/>
<line number="589" hits="1"/>
<line number="593" hits="1"/>
<line number="594" hits="1"/>
<line number="595" hits="1"/>
<line number="596" hits="1"/>
<line number="598" hits="1"/>
<line number="601" hits="1"/>
<line number="602" hits="1"/>
<line number="604" hits="1"/>
<line number="606" hits="1"/>
<line number="609" hits="1"/>
<line number="611" hits="1"/>
<line number="613" hits="1"/>
<line number="615" hits="1"/>
<line number="616" hits="1"/>
<line number="618" hits="1"/>
<line number="620" hits="1"/>
<line number="621" hits="1"/>
<line number="622" hits="1"/>
<line number="623" hits="1"/>
<line number="624" hits="1"/>
<line number="626" hits="1"/>
<line number="632" hits="1"/>
<line number="634" hits="1"/>
<line number="636" hits="1"/>
<line number="638" hits="1"/>
<line number="639" hits="1"/>
<line number="641" hits="1"/>
<line number="644" hits="1"/>
<line number="646" hits="1"/>
<line number="647" hits="1"/>
<line number="648" hits="1"/>
<line number="649" hits="1"/>
<line number="652" hits="1"/>
<line number="653" hits="1"/>
<line number="656" hits="1"/>
<line number="657" hits="1"/>
<line number="659" hits="1"/>
<line number="661" hits="1"/>
<line number="663" hits="1"/>
<line number="671" hits="1"/>
<line number="673" hits="1"/>
<line number="674" hits="1"/>
<line number="676" hits="1"/>
<line number="678" hits="1"/>
<line number="680" hits="1"/>
<line number="682" hits="1"/>
<line number="684" hits="1"/>
<line number="685" hits="1"/>
<line number="687" hits="1"/>
<line number="689" hits="1"/>
<line number="690" hits="1"/>
<line number="691" hits="1"/>
<line number="692" hits="1"/>
<line number="693" hits="1"/>
<line number="695" hits="1"/>
<line number="698" hits="1"/>
<line number="699" hits="1"/>
<line number="701" hits="1"/>
<line number="702" hits="1"/>
<line number="705" hits="1"/>
<line number="708" hits="1"/>
<line number="710" hits="1"/>
<line number="712" hits="1"/>
<line number="717" hits="1"/>
<line number="719" hits="1"/>
<line number="721" hits="1"/>
<line number="724" hits="1"/>
<line number="725" hits="1"/>
<line number="726" hits="1"/>
<line number="729" hits="1"/>
<line number="730" hits="1"/>
<line number="731" hits="1"/>
<line number="732" hits="1"/>
<line number="733" hits="1"/>
<line number="736" hits="1"/>
<line number="737" hits="1"/>
<line number="738" hits="1"/>
<line number="739" hits="1"/>
<line number="740" hits="1"/>
<line number="741" hits="1"/>
<line number="743" hits="1"/>
<line number="745" hits="1"/>
<line number="750" hits="1"/>
<line number="752" hits="1"/>
<line number="754" hits="1"/>
<line number="757" hits="1"/>
<line number="758" hits="1"/>
<line number="759" hits="1"/>
<line number="762" hits="1"/>
<line number="763" hits="1"/>
<line number="764" hits="1"/>
<line number="765" hits="1"/>
<line number="766" hits="1"/>
<line number="769" hits="1"/>
<line number="771" hits="1"/>
<line number="773" hits="1"/>
<line number="778" hits="1"/>
<line number="780" hits="1"/>
<line number="782" hits="1"/>
<line number="785" hits="1"/>
<line number="786" hits="1"/>
<line number="789" hits="1"/>
<line number="790" hits="1"/>
<line number="791" hits="1"/>
<line number="792" hits="1"/>
<line number="795" hits="1"/>
<line number="796" hits="1"/>
<line number="800" hits="1"/>
<line number="803" hits="1"/>
<line number="805" hits="1"/>
<line number="807" hits="1"/>
<line number="808" hits="1"/>
<line number="810" hits="1"/>
<line number="811" hits="1"/>
<line number="813" hits="1"/>
<line number="824" hits="1"/>
<line number="825" hits="1"/>
<line number="826" hits="1"/>
<line number="827" hits="1"/>
<line number="828" hits="1"/>
<line number="830" hits="1"/>
<line number="831" hits="1"/>
<line number="833" hits="1"/>
<line number="835" hits="1"/>
<line number="836" hits="1"/>
<line number="837" hits="1"/>
<line number="838" hits="1"/>
<line number="840" hits="1"/>
<line number="841" hits="1"/>
<line number="843" hits="1"/>
<line number="844" hits="1"/>
<line number="845" hits="1"/>
<line number="846" hits="1"/>
<line number="847" hits="1"/>
<line number="849" hits="1"/>
<line number="850" hits="1"/>
<line number="852" hits="1"/>
<line number="854" hits="1"/>
<line number="855" hits="1"/>
<line number="858" hits="1"/>
<line number="863" hits="1"/>
<line number="864" hits="1"/>
<line number="865" hits="1"/>
<line number="866" hits="1"/>
<line number="867" hits="1"/>
<line number="869" hits="1"/>
<line number="871" hits="1"/>
<line number="872" hits="1"/>
<line number="873" hits="1"/>
<line number="874" hits="1"/>
<line number="876" hits="1"/>
<line number="877" hits="1"/>
<line number="879" hits="1"/>
<line number="883" hits="1"/>
<line number="884" hits="1"/>
<line number="885" hits="1"/>
<line number="887" hits="1"/>
<line number="888" hits="1"/>
<line number="891" hits="1"/>
<line number="897" hits="1"/>
<line number="898" hits="1"/>
<line number="899" hits="1"/>
<line number="900" hits="1"/>
<line number="901" hits="1"/>
<line number="903" hits="1"/>
<line number="905" hits="1"/>
<line number="906" hits="1"/>
<line number="908" hits="1"/>
<line number="909" hits="1"/>
<line number="911" hits="1"/>
<line number="912" hits="1"/>
<line number="915" hits="1"/>
<line number="920" hits="1"/>
<line number="921" hits="1"/>
<line number="922" hits="1"/>
<line number="923" hits="1"/>
<line number="924" hits="1"/>
<line number="926" hits="1"/>
<line number="928" hits="1"/>
<line number="929" hits="1"/>
<line number="931" hits="1"/>
<line number="932" hits="1"/>
<line number="934" hits="1"/>
<line number="935" hits="1"/>
<line number="937" hits="1"/>
<line number="939" hits="1"/>
<line number="940" hits="1"/>
<line number="942" hits="1"/>
<line number="943" hits="1"/>
<line number="944" hits="1"/>
<line number="946" hits="1"/>
<line number="948" hits="1"/>
<line number="949" hits="1"/>
<line number="951" hits="1"/>
<line number="952" hits="1"/>
<line number="954" hits="1"/>
<line number="956" hits="1"/>
<line number="966" hits="1"/>
<line number="967" hits="1"/>
<line number="969" hits="1"/>
<line number="970" hits="1"/>
<line number="972" hits="1"/>
<line number="973" hits="1"/>
<line number="974" hits="1"/>
<line number="976" hits="1"/>
<line number="978" hits="1"/>
<line number="988" hits="1"/>
<line number="989" hits="1"/>
<line number="991" hits="1"/>
<line number="992" hits="1"/>
<line number="994" hits="1"/>
<line number="995" hits="1"/>
<line number="996" hits="1"/>
<line number="998" hits="1"/>
<line number="1000" hits="1"/>
<line number="1012" hits="1"/>
<line number="1013" hits="1"/>
<line number="1015" hits="1"/>
<line number="1019" hits="1"/>
<line number="1029" hits="1"/>
<line number="1035" hits="1"/>
<line number="1037" hits="1"/>
<line number="1038" hits="1"/>
<line number="1039" hits="1"/>
<line number="1041" hits="1"/>
<line number="1043" hits="1"/>
<line number="1044" hits="1"/>
<line number="1046" hits="1"/>
<line number="1047" hits="1"/>
<line number="1049" hits="1"/>
<line number="1050" hits="1"/>
<line number="1052" hits="1"/>
<line number="1054" hits="1"/>
<line number="1055" hits="1"/>
<line number="1057" hits="1"/>
<line number="1058" hits="1"/>
<line number="1061" hits="1"/>
<line number="1064" hits="1"/>
<line number="1066" hits="1"/>
<line number="1068" hits="1"/>
<line number="1069" hits="1"/>
<line number="1070" hits="1"/>
<line number="1071" hits="1"/>
<line number="1073" hits="1"/>
<line number="1074" hits="1"/>
<line number="1076" hits="1"/>
<line number="1078" hits="1"/>
<line number="1079" hits="1"/>
<line number="1080" hits="1"/>
<line number="1082" hits="1"/>
<line number="1083" hits="1"/>
<line number="1085" hits="1"/>
<line number="1087" hits="1"/>
<line number="1089" hits="1"/>
<line number="1090" hits="1"/>
<line number="1092" hits="1"/>
<line number="1093" hits="1"/>
<line number="1095" hits="1"/>
<line number="1097" hits="1"/>
<line number="1099" hits="1"/>
<line number="1100" hits="1"/>
<line number="1102" hits="1"/>
<line number="1104" hits="1"/>
<line number="1106" hits="1"/>
<line number="1108" hits="1"/>
<line number="1109" hits="1"/>
<line number="1110" hits="1"/>
<line number="1111" hits="1"/>
<line number="1112" hits="1"/>
<line number="1113" hits="1"/>
<line number="1114" hits="1"/>
<line number="1120" hits="1"/>
<line number="1126" hits="1"/>
<line number="1127" hits="1"/>
<line number="1128" hits="1"/>
<line number="1134" hits="1"/>
<line number="1135" hits="1"/>
<line number="1136" hits="1"/>
<line number="1139" hits="1"/>
<line number="1140" hits="1"/>
<line number="1142" hits="1"/>
<line number="1144" hits="1"/>
<line number="1146" hits="1"/>
<line number="1147" hits="1"/>
<line number="1148" hits="1"/>
<line number="1149" hits="1"/>
<line number="1150" hits="1"/>
<line number="1152" hits="1"/>
<line number="1153" hits="1"/>
<line number="1154" hits="1"/>
<line number="1155" hits="1"/>
<line number="1157" hits="1"/>
<line number="1158" hits="1"/>
<line number="1160" hits="1"/>
<line number="1161" hits="1"/>
<line number="1162" hits="1"/>
<line number="1163" hits="1"/>
<line number="1164" hits="1"/>
<line number="1165" hits="1"/>
<line number="1171" hits="1"/>
<line number="1174" hits="1"/>
<line number="1175" hits="1"/>
<line number="1176" hits="1"/>
<line number="1179" hits="1"/>
<line number="1182" hits="1"/>
<line number="1183" hits="1"/>
<line number="1184" hits="1"/>
<line number="1185" hits="1"/>
<line number="1187" hits="1"/>
<line number="1189" hits="1"/>
<line number="1190" hits="1"/>
<line number="1191" hits="1"/>
<line number="1193" hits="1"/>
<line number="1194" hits="1"/>
<line number="1195" hits="1"/>
<line number="1196" hits="1"/>
<line number="1201" hits="1"/>
<line number="1204" hits="1"/>
<line number="1207" hits="1"/>
<line number="1210" hits="1"/>
<line number="1212" hits="1"/>
<line number="1215" hits="1"/>
<line number="1216" hits="1"/>
<line number="1217" hits="1"/>
<line number="1220" hits="1"/>
<line number="1223" hits="1"/>
<line number="1224" hits="1"/>
<line number="1226" hits="1"/>
<line number="1238" hits="1"/>
<line number="1239" hits="1"/>
<line number="1240" hits="1"/>
<line number="1241" hits="1"/>
<line number="1242" hits="1"/>
<line number="1244" hits="1"/>
<line number="1246" hits="1"/>
<line number="1247" hits="1"/>
<line number="1249" hits="1"/>
<line number="1250" hits="1"/>
<line number="1252" hits="1"/>
<line number="1258" hits="1"/>
<line number="1259" hits="1"/>
<line number="1260" hits="1"/>
<line number="1261" hits="1"/>
<line number="1262" hits="1"/>
<line number="1264" hits="1"/>
<line number="1267" hits="1"/>
<line number="1268" hits="1"/>
<line number="1270" hits="1"/>
<line number="1271" hits="1"/>
<line number="1273" hits="1"/>
<line number="1280" hits="1"/>
<line number="1281" hits="1"/>
<line number="1282" hits="1"/>
<line number="1283" hits="1"/>
<line number="1284" hits="1"/>
<line number="1286" hits="1"/>
<line number="1288" hits="1"/>
<line number="1289" hits="1"/>
<line number="1290" hits="1"/>
<line number="1291" hits="1"/>
<line number="1293" hits="1"/>
<line number="1294" hits="1"/>
<line number="1296" hits="1"/>
<line number="1298" hits="1"/>
<line number="1301" hits="1"/>
<line number="1302" hits="1"/>
<line number="1303" hits="1"/>
<line number="1305" hits="1"/>
<line number="1308" hits="1"/>
<line number="1309" hits="1"/>
<line number="1311" hits="1"/>
<line number="1313" hits="1"/>
<line number="1314" hits="1"/>
<line number="1315" hits="1"/>
<line number="1318" hits="1"/>
<line number="1319" hits="1"/>
<line number="1320" hits="1"/>
<line number="1322" hits="1"/>
<line number="1325" hits="1"/>
<line number="1328" hits="1"/>
<line number="1329" hits="1"/>
<line number="1332" hits="1"/>
<line number="1333" hits="1"/>
<line number="1336" hits="1"/>
<line number="1341" hits="1"/>
<line number="1342" hits="1"/>
<line number="1343" hits="1"/>
<line number="1344" hits="1"/>
<line number="1346" hits="1"/>
<line number="1349" hits="1"/>
<line number="1353" hits="1"/>
<line number="1354" hits="1"/>
<line number="1355" hits="1"/>
<line number="1357" hits="1"/>
<line number="1360" hits="1"/>
<line number="1363" hits="1"/>
<line number="1365" hits="1"/>
<line number="1366" hits="1"/>
<line number="1368" hits="1"/>
<line number="1369" hits="1"/>
<line number="1370" hits="1"/>
<line number="1372" hits="1"/>
<line number="1373" hits="1"/>
<line number="1374" hits="1"/>
<line number="1375" hits="1"/>
<line number="1376" hits="1"/>
<line number="1378" hits="1"/>
<line number="1380" hits="1"/>
<line number="1381" hits="1"/>
<line number="1389" hits="1"/>
<line number="1390" hits="1"/>
<line number="1391" hits="1"/>
<line number="1393" hits="1"/>
<line number="1394" hits="1"/>
<line number="1395" hits="1"/>
<line number="1396" hits="1"/>
<line number="1398" hits="1"/>
<line number="1400" hits="1"/>
<line number="1401" hits="1"/>
<line number="1403" hits="1"/>
<line number="1404" hits="1"/>
<line number="1405" hits="1"/>
<line number="1407" hits="1"/>
<line number="1409" hits="1"/>
<line number="1411" hits="1"/>
<line number="1412" hits="1"/>
<line number="1414" hits="1"/>
<line number="1415" hits="1"/>
<line number="1416" hits="1"/>
<line number="1418" hits="1"/>
<line number="1420" hits="1"/>
<line number="1421" hits="1"/>
<line number="1423" hits="1"/>
<line number="1424" hits="1"/>
<line number="1426" hits="1"/>
<line number="1427" hits="1"/>
<line number="1431" hits="1"/>
<line number="1433" hits="1"/>
<line number="1435" hits="1"/>
<line number="1436" hits="1"/>
<line number="1438" hits="1"/>
<line number="1439" hits="1"/>
<line number="1441" hits="1"/>
<line number="1442" hits="1"/>
<line number="1444" hits="1"/>
<line number="1445" hits="1"/>
<line number="1447" hits="1"/>
<line number="1448" hits="1"/>
<line number="1465" hits="1"/>
<line number="1467" hits="1"/>
<line number="1469" hits="1"/>
<line number="1470" hits="1"/>
<line number="1472" hits="1"/>
<line number="1473" hits="1"/>
<line number="1475" hits="1"/>
<line number="1476" hits="1"/>
<line number="1478" hits="1"/>
<line number="1479" hits="1"/>
<line number="1481" hits="1"/>
<line number="1482" hits="1"/>
<line number="1483" hits="1"/>
<line number="1485" hits="1"/>
<line number="1487" hits="1"/>
<line number="1488" hits="1"/>
<line number="1490" hits="1"/>
<line number="1491" hits="1"/>
<line number="1493" hits="1"/>
<line number="1494" hits="1"/>
<line number="1496" hits="1"/>
<line number="1497" hits="1"/>
<line number="1499" hits="1"/>
<line number="1501" hits="1"/>
<line number="1506" hits="1"/>
<line number="1508" hits="1"/>
<line number="1510" hits="1"/>
<line number="1511" hits="1"/>
<line number="1513" hits="1"/>
<line number="1514" hits="1"/>
<line number="1516" hits="1"/>
<line number="1518" hits="1"/>
<line number="1519" hits="1"/>
<line number="1521" hits="1"/>
<line number="1524" hits="1"/>
<line number="1525" hits="1"/>
<line number="1526" hits="1"/>
<line number="1528" hits="0"/>
<line number="1529" hits="1"/>
<line number="1531" hits="1"/>
</lines>
</class>
<class name="test_fuzzy_search.py" filename="tests/unit/test_fuzzy_search.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="6" hits="1"/>
<line number="9" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="19" hits="1"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="27" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="32" hits="1"/>
<line number="33" hits="1"/>
<line number="35" hits="1"/>
<line number="37" hits="1"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="42" hits="1"/>
<line number="43" hits="1"/>
<line number="44" hits="1"/>
<line number="46" hits="1"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="51" hits="1"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="55" hits="1"/>
<line number="57" hits="1"/>
<line number="58" hits="1"/>
<line number="60" hits="1"/>
<line number="61" hits="1"/>
<line number="63" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="1"/>
<line number="68" hits="1"/>
<line number="70" hits="1"/>
<line number="71" hits="1"/>
<line number="73" hits="1"/>
<line number="74" hits="1"/>
<line number="76" hits="1"/>
<line number="78" hits="1"/>
<line number="79" hits="1"/>
<line number="81" hits="1"/>
<line number="84" hits="1"/>
<line number="86" hits="1"/>
<line number="88" hits="1"/>
<line number="89" hits="1"/>
<line number="91" hits="1"/>
<line number="93" hits="1"/>
<line number="95" hits="1"/>
<line number="97" hits="1"/>
<line number="99" hits="1"/>
<line number="101" hits="1"/>
<line number="102" hits="1"/>
<line number="104" hits="1"/>
<line number="106" hits="1"/>
<line number="108" hits="1"/>
<line number="109" hits="1"/>
<line number="111" hits="1"/>
<line number="112" hits="1"/>
<line number="114" hits="1"/>
<line number="116" hits="1"/>
<line number="117" hits="1"/>
<line number="119" hits="1"/>
<line number="121" hits="1"/>
<line number="122" hits="1"/>
<line number="124" hits="1"/>
<line number="126" hits="1"/>
<line number="127" hits="1"/>
<line number="129" hits="1"/>
<line number="130" hits="1"/>
<line number="132" hits="1"/>
<line number="134" hits="1"/>
<line number="135" hits="1"/>
<line number="137" hits="1"/>
<line number="139" hits="1"/>
<line number="141" hits="1"/>
<line number="143" hits="1"/>
<line number="146" hits="1"/>
<line number="147" hits="1"/>
<line number="150" hits="1"/>
<line number="151" hits="1"/>
<line number="153" hits="1"/>
<line number="155" hits="1"/>
<line number="156" hits="1"/>
<line number="159" hits="1"/>
<line number="160" hits="1"/>
<line number="162" hits="1"/>
<line number="163" hits="1"/>
<line number="165" hits="1"/>
<line number="167" hits="1"/>
<line number="170" hits="1"/>
<line number="171" hits="1"/>
<line number="172" hits="1"/>
<line number="174" hits="1"/>
<line number="175" hits="1"/>
<line number="176" hits="1"/>
<line number="178" hits="1"/>
<line number="180" hits="1"/>
</lines>
</class>
<class name="test_laravel_mcp_companion_integration.py" filename="tests/unit/test_laravel_mcp_companion_integration.py" complexity="0" line-rate="0.9371" branch-rate="0.5">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="15" hits="1"/>
<line number="16" hits="1"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
<line number="22" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="36" hits="1"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="42" hits="1"/>
<line number="43" hits="1"/>
<line number="46" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="1"/>
<line number="52" hits="1"/>
<line number="54" hits="1"/>
<line number="57" hits="1"/>
<line number="59" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="62"/>
<line number="60" hits="1"/>
<line number="62" hits="0"/>
<line number="63" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="70" hits="1"/>
<line number="71" hits="1"/>
<line number="73" hits="1"/>
<line number="75" hits="1"/>
<line number="81" hits="1"/>
<line number="83" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="86"/>
<line number="84" hits="1"/>
<line number="86" hits="0"/>
<line number="87" hits="1"/>
<line number="89" hits="1"/>
<line number="90" hits="1"/>
<line number="92" hits="1"/>
<line number="94" hits="1"/>
<line number="97" hits="1"/>
<line number="99" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="102"/>
<line number="100" hits="1"/>
<line number="102" hits="0"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="106" hits="1"/>
<line number="107" hits="1"/>
<line number="109" hits="1"/>
<line number="111" hits="1"/>
<line number="116" hits="1"/>
<line number="118" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="121"/>
<line number="119" hits="1"/>
<line number="121" hits="0"/>
<line number="122" hits="1"/>
<line number="130" hits="1"/>
<line number="131" hits="1"/>
<line number="133" hits="1"/>
<line number="135" hits="1"/>
<line number="138" hits="1"/>
<line number="139" hits="1"/>
<line number="140" hits="1"/>
<line number="141" hits="1"/>
<line number="142" hits="1"/>
<line number="144" hits="1"/>
<line number="145" hits="1"/>
<line number="147" hits="1"/>
<line number="149" hits="1"/>
<line number="150" hits="1"/>
<line number="152" hits="1"/>
<line number="153" hits="1"/>
<line number="155" hits="1"/>
<line number="156" hits="1"/>
<line number="159" hits="1"/>
<line number="162" hits="1"/>
<line number="163" hits="1"/>
<line number="165" hits="1"/>
<line number="167" hits="1"/>
<line number="170" hits="1"/>
<line number="172" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="175"/>
<line number="173" hits="1"/>
<line number="175" hits="0"/>
<line number="176" hits="1"/>
<line number="178" hits="1"/>
<line number="179" hits="1"/>
<line number="181" hits="1"/>
<line number="183" hits="1"/>
<line number="186" hits="1"/>
<line number="188" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="191"/>
<line number="189" hits="1"/>
<line number="191" hits="0"/>
<line number="192" hits="1"/>
<line number="195" hits="1"/>
<line number="198" hits="1"/>
<line number="199" hits="1"/>
<line number="201" hits="1"/>
<line number="203" hits="1"/>
<line number="208" hits="1"/>
<line number="210" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="213"/>
<line number="211" hits="1"/>
<line number="213" hits="0"/>
<line number="214" hits="1"/>
<line number="216" hits="1"/>
<line number="217" hits="1"/>
<line number="219" hits="1"/>
<line number="221" hits="1"/>
<line number="226" hits="1"/>
<line number="228" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="231"/>
<line number="229" hits="1"/>
<line number="231" hits="0"/>
<line number="232" hits="1"/>
<line number="234" hits="1"/>
<line number="235" hits="1"/>
<line number="237" hits="1"/>
<line number="239" hits="1"/>
<line number="244" hits="1"/>
<line number="246" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="249"/>
<line number="247" hits="1"/>
<line number="249" hits="0"/>
<line number="251" hits="1"/>
<line number="255" hits="1"/>
<line number="256" hits="1"/>
<line number="259" hits="1"/>
<line number="260" hits="1"/>
<line number="263" hits="1"/>
<line number="264" hits="1"/>
<line number="265" hits="1"/>
<line number="268" hits="1"/>
<line number="269" hits="1"/>
<line number="270" hits="1"/>
<line number="272" hits="1"/>
<line number="273" hits="1"/>
<line number="275" hits="1"/>
<line number="277" hits="1"/>
<line number="284" hits="1"/>
<line number="285" hits="1"/>
</lines>
</class>
<class name="test_laravel_mcp_companion_main.py" filename="tests/unit/test_laravel_mcp_companion_main.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="15" hits="1"/>
<line number="16" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="24" hits="1"/>
<line number="26" hits="1"/>
<line number="33" hits="1"/>
<line number="34" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="40" hits="1"/>
<line number="42" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="1"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="54" hits="1"/>
<line number="56" hits="1"/>
<line number="58" hits="1"/>
<line number="60" hits="1"/>
<line number="61" hits="1"/>
<line number="63" hits="1"/>
<line number="65" hits="1"/>
<line number="67" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="72" hits="1"/>
<line number="75" hits="1"/>
<line number="78" hits="1"/>
<line number="79" hits="1"/>
<line number="80" hits="1"/>
<line number="81" hits="1"/>
<line number="82" hits="1"/>
<line number="86" hits="1"/>
<line number="87" hits="1"/>
<line number="88" hits="1"/>
<line number="89" hits="1"/>
<line number="90" hits="1"/>
<line number="91" hits="1"/>
<line number="92" hits="1"/>
<line number="95" hits="1"/>
<line number="97" hits="1"/>
<line number="99" hits="1"/>
<line number="102" hits="1"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="107" hits="1"/>
<line number="109" hits="1"/>
<line number="110" hits="1"/>
<line number="111" hits="1"/>
<line number="112" hits="1"/>
<line number="113" hits="1"/>
<line number="114" hits="1"/>
<line number="119" hits="1"/>
<line number="120" hits="1"/>
<line number="121" hits="1"/>
<line number="122" hits="1"/>
<line number="123" hits="1"/>
<line number="124" hits="1"/>
<line number="125" hits="1"/>
<line number="126" hits="1"/>
<line number="129" hits="1"/>
<line number="131" hits="1"/>
<line number="132" hits="1"/>
<line number="135" hits="1"/>
<line number="137" hits="1"/>
<line number="138" hits="1"/>
<line number="139" hits="1"/>
<line number="142" hits="1"/>
<line number="145" hits="1"/>
<line number="147" hits="1"/>
<line number="149" hits="1"/>
<line number="151" hits="1"/>
<line number="153" hits="1"/>
<line number="154" hits="1"/>
<line number="155" hits="1"/>
<line number="156" hits="1"/>
<line number="157" hits="1"/>
<line number="161" hits="1"/>
<line number="162" hits="1"/>
<line number="163" hits="1"/>
<line number="164" hits="1"/>
<line number="165" hits="1"/>
<line number="166" hits="1"/>
<line number="167" hits="1"/>
<line number="170" hits="1"/>
<line number="177" hits="1"/>
<line number="178" hits="1"/>
<line number="181" hits="1"/>
<line number="187" hits="1"/>
<line number="188" hits="1"/>
<line number="189" hits="1"/>
<line number="190" hits="1"/>
<line number="191" hits="1"/>
<line number="195" hits="1"/>
<line number="196" hits="1"/>
<line number="197" hits="1"/>
<line number="198" hits="1"/>
<line number="199" hits="1"/>
<line number="200" hits="1"/>
<line number="201" hits="1"/>
<line number="203" hits="1"/>
<line number="205" hits="1"/>
<line number="206" hits="1"/>
<line number="209" hits="1"/>
<line number="212" hits="1"/>
<line number="213" hits="1"/>
<line number="215" hits="1"/>
<line number="216" hits="1"/>
<line number="217" hits="1"/>
<line number="220" hits="1"/>
<line number="221" hits="1"/>
<line number="222" hits="1"/>
<line number="223" hits="1"/>
<line number="225" hits="1"/>
<line number="227" hits="1"/>
<line number="231" hits="1"/>
<line number="233" hits="1"/>
<line number="236" hits="1"/>
<line number="239" hits="1"/>
<line number="240" hits="1"/>
<line number="241" hits="1"/>
<line number="242" hits="1"/>
<line number="243" hits="1"/>
<line number="247" hits="1"/>
<line number="248" hits="1"/>
<line number="249" hits="1"/>
<line number="250" hits="1"/>
<line number="251" hits="1"/>
<line number="252" hits="1"/>
<line number="253" hits="1"/>
<line number="255" hits="1"/>
<line number="257" hits="1"/>
<line number="258" hits="1"/>
<line number="263" hits="1"/>
<line number="264" hits="1"/>
</lines>
</class>
<class name="test_laravel_mcp_companion_mcp.py" filename="tests/unit/test_laravel_mcp_companion_mcp.py" complexity="0" line-rate="0.9752" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="8" hits="1"/>
<line number="14" hits="1"/>
<line number="17" hits="1"/>
<line number="20" hits="1"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="27" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="39" hits="1"/>
<line number="41" hits="1"/>
<line number="42" hits="1"/>
<line number="47" hits="1"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="51" hits="1"/>
<line number="53" hits="0"/>
<line number="55" hits="1"/>
<line number="57" hits="1"/>
<line number="59" hits="1"/>
<line number="61" hits="1"/>
<line number="64" hits="1"/>
<line number="67" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="71" hits="1"/>
<line number="73" hits="1"/>
<line number="75" hits="1"/>
<line number="76" hits="1"/>
<line number="77" hits="1"/>
<line number="78" hits="1"/>
<line number="81" hits="1"/>
<line number="84" hits="1"/>
<line number="86" hits="1"/>
<line number="95" hits="1"/>
<line number="96" hits="1"/>
<line number="98" hits="1"/>
<line number="99" hits="1"/>
<line number="101" hits="1"/>
<line number="103" hits="1"/>
<line number="112" hits="1"/>
<line number="113" hits="1"/>
<line number="115" hits="1"/>
<line number="116" hits="1"/>
<line number="121" hits="1"/>
<line number="123" hits="1"/>
<line number="132" hits="1"/>
<line number="134" hits="1"/>
<line number="136" hits="1"/>
<line number="139" hits="1"/>
<line number="142" hits="1"/>
<line number="144" hits="1"/>
<line number="145" hits="1"/>
<line number="147" hits="1"/>
<line number="149" hits="1"/>
<line number="150" hits="1"/>
<line number="151" hits="1"/>
<line number="153" hits="1"/>
<line number="155" hits="1"/>
<line number="156" hits="1"/>
<line number="157" hits="1"/>
<line number="158" hits="1"/>
<line number="160" hits="1"/>
<line number="162" hits="1"/>
<line number="163" hits="1"/>
<line number="164" hits="1"/>
<line number="167" hits="1"/>
<line number="170" hits="1"/>
<line number="172" hits="1"/>
<line number="173" hits="1"/>
<line number="177" hits="1"/>
<line number="180" hits="1"/>
<line number="183" hits="1"/>
<line number="186" hits="1"/>
<line number="188" hits="1"/>
<line number="190" hits="1"/>
<line number="191" hits="1"/>
<line number="193" hits="1"/>
<line number="196" hits="1"/>
<line number="197" hits="1"/>
<line number="200" hits="1"/>
<line number="201" hits="1"/>
<line number="202" hits="1"/>
<line number="204" hits="1"/>
<line number="206" hits="1"/>
<line number="208" hits="1"/>
<line number="209" hits="1"/>
<line number="211" hits="1"/>
<line number="214" hits="1"/>
<line number="217" hits="1"/>
<line number="218" hits="1"/>
<line number="219" hits="1"/>
<line number="221" hits="1"/>
<line number="223" hits="1"/>
<line number="225" hits="1"/>
<line number="226" hits="1"/>
<line number="227" hits="0"/>
<line number="229" hits="1"/>
<line number="230" hits="1"/>
<line number="231" hits="0"/>
<line number="233" hits="1"/>
<line number="234" hits="1"/>
<line number="235" hits="1"/>
<line number="238" hits="1"/>
<line number="241" hits="1"/>
<line number="244" hits="1"/>
<line number="259" hits="1"/>
<line number="264" hits="1"/>
<line number="265" hits="1"/>
<line number="268" hits="1"/>
<line number="269" hits="1"/>
</lines>
</class>
<class name="test_laravel_mcp_tools.py" filename="tests/unit/test_laravel_mcp_tools.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="22" hits="1"/>
<line number="25" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="30" hits="1"/>
<line number="32" hits="1"/>
<line number="33" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="39" hits="1"/>
<line number="41" hits="1"/>
<line number="42" hits="1"/>
<line number="44" hits="1"/>
<line number="46" hits="1"/>
<line number="47" hits="1"/>
<line number="48" hits="1"/>
<line number="50" hits="1"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="55" hits="1"/>
<line number="57" hits="1"/>
<line number="59" hits="1"/>
<line number="60" hits="1"/>
<line number="62" hits="1"/>
<line number="64" hits="1"/>
<line number="66" hits="1"/>
<line number="67" hits="1"/>
<line number="69" hits="1"/>
<line number="71" hits="1"/>
<line number="72" hits="1"/>
<line number="73" hits="1"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="76" hits="1"/>
<line number="78" hits="1"/>
<line number="80" hits="1"/>
<line number="81" hits="1"/>
<line number="84" hits="1"/>
<line number="85" hits="1"/>
<line number="87" hits="1"/>
<line number="88" hits="1"/>
<line number="89" hits="1"/>
<line number="91" hits="1"/>
<line number="93" hits="1"/>
<line number="95" hits="1"/>
<line number="96" hits="1"/>
<line number="98" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="106" hits="1"/>
<line number="108" hits="1"/>
<line number="110" hits="1"/>
<line number="111" hits="1"/>
<line number="113" hits="1"/>
<line number="115" hits="1"/>
<line number="116" hits="1"/>
<line number="118" hits="1"/>
<line number="120" hits="1"/>
<line number="122" hits="1"/>
<line number="123" hits="1"/>
<line number="125" hits="1"/>
<line number="127" hits="1"/>
<line number="129" hits="1"/>
<line number="130" hits="1"/>
<line number="132" hits="1"/>
<line number="135" hits="1"/>
<line number="138" hits="1"/>
<line number="140" hits="1"/>
<line number="141" hits="1"/>
<line number="142" hits="1"/>
<line number="145" hits="1"/>
<line number="148" hits="1"/>
<line number="149" hits="1"/>
<line number="152" hits="1"/>
<line number="153" hits="1"/>
<line number="154" hits="1"/>
<line number="156" hits="1"/>
<line number="158" hits="1"/>
<line number="160" hits="1"/>
<line number="161" hits="1"/>
<line number="163" hits="1"/>
<line number="165" hits="1"/>
<line number="166" hits="1"/>
<line number="168" hits="1"/>
<line number="169" hits="1"/>
<line number="170" hits="1"/>
<line number="172" hits="1"/>
<line number="174" hits="1"/>
<line number="175" hits="1"/>
<line number="176" hits="1"/>
<line number="179" hits="1"/>
<line number="180" hits="1"/>
<line number="183" hits="1"/>
<line number="184" hits="1"/>
<line number="185" hits="1"/>
<line number="188" hits="1"/>
<line number="191" hits="1"/>
<line number="193" hits="1"/>
<line number="194" hits="1"/>
<line number="195" hits="1"/>
<line number="196" hits="1"/>
<line number="197" hits="1"/>
<line number="198" hits="1"/>
<line number="200" hits="1"/>
<line number="202" hits="1"/>
<line number="204" hits="1"/>
<line number="206" hits="1"/>
<line number="208" hits="1"/>
<line number="209" hits="1"/>
<line number="210" hits="1"/>
<line number="211" hits="1"/>
<line number="213" hits="1"/>
<line number="215" hits="1"/>
<line number="216" hits="1"/>
<line number="218" hits="1"/>
<line number="220" hits="1"/>
<line number="221" hits="1"/>
<line number="223" hits="1"/>
<line number="224" hits="1"/>
<line number="225" hits="1"/>
<line number="226" hits="1"/>
<line number="227" hits="1"/>
<line number="228" hits="1"/>
<line number="230" hits="1"/>
<line number="232" hits="1"/>
<line number="243" hits="1"/>
<line number="244" hits="1"/>
<line number="246" hits="1"/>
<line number="247" hits="1"/>
<line number="248" hits="1"/>
<line number="249" hits="1"/>
<line number="250" hits="1"/>
<line number="251" hits="1"/>
<line number="252" hits="1"/>
<line number="255" hits="1"/>
<line number="256" hits="1"/>
<line number="259" hits="1"/>
<line number="261" hits="1"/>
<line number="262" hits="1"/>
<line number="265" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="266" hits="1"/>
<line number="267" hits="1"/>
<line number="268" hits="1"/>
<line number="269" hits="1"/>
<line number="270" hits="1"/>
<line number="271" hits="1"/>
<line number="273" hits="1"/>
<line number="275" hits="1"/>
<line number="278" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="279" hits="1"/>
<line number="280" hits="1"/>
<line number="282" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="283" hits="1"/>
<line number="284" hits="1"/>
<line number="286" hits="1"/>
<line number="289" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="292" hits="1"/>
<line number="294" hits="1"/>
<line number="296" hits="1"/>
<line number="309" hits="1"/>
<line number="310" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="311" hits="1"/>
<line number="314" hits="1"/>
<line number="315" hits="1"/>
<line number="318" hits="1"/>
<line number="321" hits="1"/>
<line number="323" hits="1"/>
<line number="324" hits="1"/>
<line number="326" hits="1"/>
<line number="327" hits="1"/>
<line number="328" hits="1"/>
<line number="330" hits="1"/>
<line number="332" hits="1"/>
<line number="333" hits="1"/>
<line number="336" hits="1"/>
<line number="337" hits="1"/>
<line number="338" hits="1"/>
<line number="340" hits="1"/>
<line number="342" hits="1"/>
<line number="343" hits="1"/>
<line number="345" hits="1"/>
<line number="347" hits="1"/>
<line number="348" hits="1"/>
<line number="349" hits="1"/>
<line number="352" hits="1"/>
<line number="355" hits="1"/>
<line number="356" hits="1"/>
<line number="358" hits="1"/>
<line number="359" hits="1"/>
<line number="360" hits="1"/>
<line number="362" hits="1"/>
<line number="364" hits="1"/>
<line number="365" hits="1"/>
<line number="366" hits="1"/>
<line number="368" hits="1"/>
<line number="369" hits="1"/>
<line number="371" hits="1"/>
<line number="372" hits="1"/>
<line number="373" hits="1"/>
<line number="375" hits="1"/>
<line number="377" hits="1"/>
<line number="378" hits="1"/>
<line number="380" hits="1"/>
<line number="381" hits="1"/>
<line number="383" hits="1"/>
<line number="385" hits="1"/>
<line number="387" hits="1"/>
</lines>
</class>
<class name="test_mcp_tool_functions.py" filename="tests/unit/test_mcp_tool_functions.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="17" hits="1"/>
<line number="20" hits="1"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="31" hits="1"/>
<line number="33" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="45" hits="1"/>
<line number="46" hits="1"/>
<line number="48" hits="1"/>
<line number="55" hits="1"/>
<line number="56" hits="1"/>
<line number="58" hits="1"/>
<line number="60" hits="1"/>
<line number="62" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="67" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="72" hits="1"/>
<line number="75" hits="1"/>
<line number="76" hits="1"/>
<line number="77" hits="1"/>
<line number="78" hits="1"/>
<line number="80" hits="1"/>
<line number="82" hits="1"/>
<line number="84" hits="1"/>
<line number="88" hits="1"/>
<line number="90" hits="1"/>
<line number="92" hits="1"/>
<line number="94" hits="1"/>
<line number="95" hits="1"/>
<line number="96" hits="1"/>
<line number="97" hits="1"/>
<line number="99" hits="1"/>
<line number="101" hits="1"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="105" hits="1"/>
<line number="110" hits="1"/>
<line number="113" hits="1"/>
<line number="118" hits="1"/>
<line number="119" hits="1"/>
<line number="121" hits="1"/>
<line number="122" hits="1"/>
<line number="123" hits="1"/>
<line number="124" hits="1"/>
<line number="126" hits="1"/>
<line number="128" hits="1"/>
<line number="130" hits="1"/>
<line number="132" hits="1"/>
<line number="136" hits="1"/>
<line number="140" hits="1"/>
<line number="142" hits="1"/>
<line number="144" hits="1"/>
<line number="146" hits="1"/>
<line number="164" hits="1"/>
<line number="168" hits="1"/>
<line number="170" hits="1"/>
<line number="171" hits="1"/>
<line number="172" hits="1"/>
<line number="174" hits="1"/>
<line number="176" hits="1"/>
<line number="193" hits="1"/>
<line number="194" hits="1"/>
<line number="196" hits="1"/>
<line number="197" hits="1"/>
<line number="198" hits="1"/>
<line number="199" hits="1"/>
<line number="200" hits="1"/>
<line number="202" hits="1"/>
<line number="204" hits="1"/>
<line number="207" hits="1"/>
<line number="208" hits="1"/>
<line number="209" hits="1"/>
<line number="211" hits="1"/>
<line number="212" hits="1"/>
<line number="214" hits="1"/>
<line number="215" hits="1"/>
<line number="216" hits="1"/>
<line number="220" hits="1"/>
<line number="223" hits="1"/>
<line number="225" hits="1"/>
<line number="226" hits="1"/>
<line number="227" hits="1"/>
<line number="229" hits="1"/>
<line number="230" hits="1"/>
<line number="231" hits="1"/>
<line number="233" hits="1"/>
<line number="235" hits="1"/>
<line number="236" hits="1"/>
<line number="237" hits="1"/>
<line number="239" hits="1"/>
<line number="241" hits="1"/>
<line number="243" hits="1"/>
<line number="244" hits="1"/>
<line number="245" hits="1"/>
<line number="247" hits="1"/>
<line number="248" hits="1"/>
<line number="249" hits="1"/>
<line number="251" hits="1"/>
<line number="253" hits="1"/>
<line number="254" hits="1"/>
<line number="255" hits="1"/>
<line number="257" hits="1"/>
<line number="259" hits="1"/>
<line number="261" hits="1"/>
<line number="262" hits="1"/>
<line number="263" hits="1"/>
<line number="265" hits="1"/>
<line number="266" hits="1"/>
<line number="267" hits="1"/>
<line number="269" hits="1"/>
<line number="271" hits="1"/>
<line number="272" hits="1"/>
<line number="273" hits="1"/>
<line number="275" hits="1"/>
<line number="277" hits="1"/>
<line number="279" hits="1"/>
<line number="281" hits="1"/>
<line number="284" hits="1"/>
<line number="285" hits="1"/>
<line number="287" hits="1"/>
<line number="288" hits="1"/>
<line number="289" hits="1"/>
<line number="290" hits="1"/>
<line number="292" hits="1"/>
<line number="294" hits="1"/>
<line number="295" hits="1"/>
<line number="296" hits="1"/>
<line number="298" hits="1"/>
<line number="300" hits="1"/>
<line number="303" hits="1"/>
<line number="305" hits="1"/>
<line number="308" hits="1"/>
<line number="309" hits="1"/>
<line number="311" hits="1"/>
<line number="314" hits="1"/>
<line number="317" hits="1"/>
<line number="320" hits="1"/>
<line number="321" hits="1"/>
<line number="323" hits="1"/>
<line number="325" hits="1"/>
<line number="328" hits="1"/>
<line number="329" hits="1"/>
<line number="331" hits="1"/>
<line number="333" hits="1"/>
<line number="336" hits="1"/>
<line number="337" hits="1"/>
<line number="339" hits="1"/>
<line number="341" hits="1"/>
<line number="344" hits="1"/>
<line number="345" hits="1"/>
<line number="347" hits="1"/>
<line number="349" hits="1"/>
<line number="352" hits="1"/>
<line number="353" hits="1"/>
<line number="355" hits="1"/>
<line number="357" hits="1"/>
<line number="360" hits="1"/>
<line number="361" hits="1"/>
<line number="363" hits="1"/>
</lines>
</class>
<class name="test_package_fetchers.py" filename="tests/unit/test_package_fetchers.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="12" hits="1"/>
<line number="15" hits="1"/>
<line number="16" hits="1"/>
<line number="18" hits="1"/>
<line number="20" hits="1"/>
<line number="21" hits="1"/>
<line number="23" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="47" hits="1"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="51" hits="1"/>
<line number="53" hits="1"/>
<line number="56" hits="1"/>
<line number="57" hits="1"/>
<line number="60" hits="1"/>
<line number="61" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="1"/>
<line number="67" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="72" hits="1"/>
<line number="88" hits="1"/>
<line number="93" hits="1"/>
<line number="94" hits="1"/>
<line number="95" hits="1"/>
<line number="96" hits="1"/>
<line number="97" hits="1"/>
<line number="99" hits="1"/>
<line number="101" hits="1"/>
<line number="102" hits="1"/>
<line number="105" hits="1"/>
<line number="106" hits="1"/>
<line number="107" hits="1"/>
<line number="108" hits="1"/>
<line number="110" hits="1"/>
<line number="111" hits="1"/>
<line number="113" hits="1"/>
<line number="129" hits="1"/>
<line number="130" hits="1"/>
<line number="131" hits="1"/>
<line number="132" hits="1"/>
<line number="134" hits="1"/>
<line number="139" hits="1"/>
<line number="142" hits="1"/>
<line number="145" hits="1"/>
<line number="146" hits="1"/>
<line number="148" hits="1"/>
<line number="149" hits="1"/>
<line number="151" hits="1"/>
<line number="158" hits="1"/>
<line number="164" hits="1"/>
<line number="165" hits="1"/>
<line number="166" hits="1"/>
<line number="167" hits="1"/>
<line number="168" hits="1"/>
<line number="170" hits="1"/>
<line number="172" hits="1"/>
<line number="173" hits="1"/>
<line number="176" hits="1"/>
<line number="177" hits="1"/>
<line number="178" hits="1"/>
<line number="179" hits="1"/>
<line number="182" hits="1"/>
<line number="183" hits="1"/>
<line number="185" hits="1"/>
<line number="186" hits="1"/>
<line number="188" hits="1"/>
<line number="195" hits="1"/>
<line number="196" hits="1"/>
<line number="197" hits="1"/>
<line number="198" hits="1"/>
<line number="200" hits="1"/>
<line number="206" hits="1"/>
<line number="209" hits="1"/>
<line number="212" hits="1"/>
<line number="213" hits="1"/>
<line number="214" hits="1"/>
<line number="215" hits="1"/>
<line number="217" hits="1"/>
<line number="218" hits="1"/>
<line number="220" hits="1"/>
<line number="228" hits="1"/>
<line number="229" hits="1"/>
<line number="240" hits="1"/>
<line number="241" hits="1"/>
<line number="242" hits="1"/>
<line number="244" hits="1"/>
<line number="246" hits="1"/>
<line number="249" hits="1"/>
<line number="256" hits="1"/>
<line number="257" hits="1"/>
<line number="260" hits="1"/>
<line number="261" hits="1"/>
<line number="262" hits="1"/>
<line number="263" hits="1"/>
<line number="265" hits="1"/>
<line number="266" hits="1"/>
<line number="268" hits="1"/>
<line number="276" hits="1"/>
<line number="280" hits="1"/>
<line number="283" hits="1"/>
<line number="285" hits="1"/>
<line number="288" hits="1"/>
<line number="289" hits="1"/>
<line number="291" hits="1"/>
<line number="296" hits="1"/>
<line number="297" hits="1"/>
<line number="300" hits="1"/>
<line number="301" hits="1"/>
<line number="304" hits="1"/>
<line number="305" hits="1"/>
<line number="307" hits="1"/>
<line number="310" hits="1"/>
<line number="311" hits="1"/>
<line number="313" hits="1"/>
<line number="318" hits="1"/>
<line number="319" hits="1"/>
<line number="322" hits="1"/>
<line number="323" hits="1"/>
<line number="326" hits="1"/>
<line number="327" hits="1"/>
<line number="329" hits="1"/>
<line number="331" hits="1"/>
<line number="332" hits="1"/>
<line number="334" hits="1"/>
<line number="335" hits="1"/>
<line number="337" hits="1"/>
<line number="339" hits="1"/>
<line number="340" hits="1"/>
<line number="342" hits="1"/>
<line number="343" hits="1"/>
<line number="345" hits="1"/>
<line number="352" hits="1"/>
<line number="353" hits="1"/>
<line number="365" hits="1"/>
<line number="366" hits="1"/>
<line number="367" hits="1"/>
<line number="369" hits="1"/>
<line number="371" hits="1"/>
<line number="374" hits="1"/>
<line number="375" hits="1"/>
<line number="376" hits="1"/>
<line number="377" hits="1"/>
<line number="378" hits="1"/>
<line number="381" hits="1"/>
<line number="382" hits="1"/>
<line number="383" hits="1"/>
<line number="385" hits="1"/>
<line number="386" hits="1"/>
<line number="388" hits="1"/>
<line number="396" hits="1"/>
<line number="397" hits="1"/>
<line number="421" hits="1"/>
<line number="422" hits="1"/>
<line number="423" hits="1"/>
<line number="425" hits="1"/>
<line number="427" hits="1"/>
<line number="430" hits="1"/>
<line number="431" hits="1"/>
<line number="432" hits="1"/>
<line number="435" hits="1"/>
<line number="436" hits="1"/>
<line number="437" hits="1"/>
<line number="438" hits="1"/>
<line number="439" hits="1"/>
<line number="441" hits="1"/>
<line number="442" hits="1"/>
<line number="444" hits="1"/>
<line number="452" hits="1"/>
<line number="456" hits="1"/>
<line number="458" hits="1"/>
</lines>
</class>
<class name="test_security.py" filename="tests/unit/test_security.py" complexity="0" line-rate="0.9186" branch-rate="0.9231">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="11" hits="1"/>
<line number="14" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="24" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="25" hits="1"/>
<line number="27" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="32" hits="1"/>
<line number="39" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="40" hits="1"/>
<line number="42" hits="1"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="48" hits="1"/>
<line number="53" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="56" hits="1"/>
<line number="57" hits="1"/>
<line number="58" hits="1"/>
<line number="60" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="61"/>
<line number="61" hits="0"/>
<line number="63" hits="1"/>
<line number="64" hits="0"/>
<line number="66" hits="0"/>
<line number="68" hits="1"/>
<line number="70" hits="1"/>
<line number="71" hits="1"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="78" hits="1"/>
<line number="79" hits="1"/>
<line number="80" hits="1"/>
<line number="83" hits="1"/>
<line number="85" hits="1"/>
<line number="87" hits="0"/>
<line number="89" hits="0"/>
<line number="91" hits="1"/>
<line number="93" hits="1"/>
<line number="94" hits="1"/>
<line number="97" hits="1"/>
<line number="100" hits="1"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="105" hits="1"/>
<line number="108" hits="1"/>
<line number="111" hits="1"/>
<line number="113" hits="1"/>
<line number="120" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="121" hits="1"/>
<line number="122" hits="1"/>
<line number="123" hits="1"/>
<line number="125" hits="1"/>
<line number="127" hits="1"/>
<line number="128" hits="1"/>
<line number="134" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="135" hits="1"/>
<line number="136" hits="1"/>
<line number="137" hits="1"/>
<line number="139" hits="1"/>
<line number="141" hits="1"/>
<line number="145" hits="1"/>
<line number="151" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="152" hits="1"/>
<line number="153" hits="1"/>
<line number="154" hits="1"/>
<line number="156" hits="1"/>
<line number="158" hits="1"/>
<line number="159" hits="1"/>
<line number="165" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="166" hits="1"/>
<line number="167" hits="1"/>
<line number="168" hits="1"/>
<line number="171" hits="1"/>
<line number="174" hits="1"/>
<line number="177" hits="1"/>
<line number="180" hits="1"/>
<line number="181" hits="1"/>
<line number="183" hits="1"/>
<line number="184" hits="1"/>
<line number="186" hits="1"/>
<line number="189" hits="1"/>
<line number="191" hits="1"/>
<line number="192" hits="1"/>
<line number="193" hits="1"/>
<line number="194" hits="1"/>
<line number="197" hits="1"/>
<line number="198" hits="1"/>
<line number="201" hits="1"/>
<line number="202" hits="1"/>
<line number="205" hits="1"/>
<line number="206" hits="1"/>
<line number="210" hits="1"/>
<line number="211" hits="1"/>
<line number="213" hits="1"/>
<line number="215" hits="1"/>
<line number="218" hits="1"/>
<line number="219" hits="1"/>
<line number="220" hits="1"/>
<line number="224" hits="1"/>
<line number="225" hits="1"/>
<line number="226" hits="1"/>
<line number="228" hits="1"/>
<line number="229" hits="1"/>
<line number="231" hits="1"/>
<line number="233" hits="1"/>
<line number="236" hits="1"/>
<line number="237" hits="1"/>
<line number="239" hits="1"/>
<line number="242" hits="1"/>
<line number="243" hits="1"/>
<line number="246" hits="1"/>
<line number="247" hits="1"/>
<line number="248" hits="1"/>
<line number="250" hits="0"/>
<line number="251" hits="1"/>
<line number="253" hits="1"/>
<line number="256" hits="1"/>
<line number="259" hits="1"/>
<line number="261" hits="1"/>
<line number="262" hits="1"/>
<line number="264" hits="1"/>
<line number="270" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="272" hits="1"/>
<line number="273" hits="1"/>
<line number="274" hits="1"/>
<line number="275" hits="0"/>
<line number="276" hits="0"/>
<line number="278" hits="1"/>
<line number="280" hits="1"/>
<line number="281" hits="1"/>
<line number="283" hits="1"/>
<line number="291" hits="1"/>
<line number="292" hits="1"/>
<line number="293" hits="1"/>
<line number="294" hits="0"/>
<line number="295" hits="0"/>
<line number="297" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="298" hits="1"/>
<line number="299" hits="1"/>
<line number="300" hits="1"/>
<line number="302" hits="1"/>
<line number="303" hits="0"/>
<line number="305" hits="0"/>
<line number="307" hits="1"/>
<line number="310" hits="1"/>
<line number="315" hits="1"/>
<line number="316" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="317" hits="1"/>
<line number="318" hits="1"/>
<line number="319" hits="1"/>
<line number="320" hits="1"/>
<line number="321" hits="0"/>
<line number="322" hits="0"/>
<line number="324" hits="1"/>
<line number="326" hits="1"/>
<line number="327" hits="1"/>
<line number="330" hits="1"/>
<line number="339" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="340" hits="1"/>
<line number="341" hits="1"/>
<line number="342" hits="1"/>
<line number="344" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="339"/>
<line number="346" hits="1"/>
<line number="347" hits="1"/>
<line number="348" hits="1"/>
<line number="351" hits="1"/>
</lines>
</class>
<class name="test_shutdown_handler.py" filename="tests/unit/test_shutdown_handler.py" complexity="0" line-rate="0.9783" branch-rate="0.6">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="15" hits="1"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="1"/>
<line number="21" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="26" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="31" hits="1"/>
<line number="34" hits="1"/>
<line number="40" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="41"/>
<line number="41" hits="0"/>
<line number="43" hits="1"/>
<line number="45" hits="1"/>
<line number="47" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="0"/>
<line number="52" hits="1"/>
<line number="54" hits="1"/>
<line number="55" hits="1"/>
<line number="56" hits="1"/>
<line number="57" hits="1"/>
<line number="58" hits="1"/>
<line number="60" hits="1"/>
<line number="62" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="0"/>
<line number="67" hits="1"/>
<line number="68" hits="0"/>
<line number="70" hits="1"/>
<line number="71" hits="1"/>
<line number="73" hits="1"/>
<line number="75" hits="1"/>
<line number="76" hits="1"/>
<line number="77" hits="1"/>
<line number="79" hits="1"/>
<line number="80" hits="1"/>
<line number="82" hits="1"/>
<line number="84" hits="1"/>
<line number="85" hits="1"/>
<line number="87" hits="1"/>
<line number="90" hits="1"/>
<line number="93" hits="1"/>
<line number="94" hits="1"/>
<line number="97" hits="1"/>
<line number="98" hits="1"/>
<line number="101" hits="1"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="105" hits="1"/>
<line number="107" hits="1"/>
<line number="108" hits="1"/>
<line number="109" hits="1"/>
<line number="112" hits="1"/>
<line number="115" hits="1"/>
<line number="116" hits="1"/>
<line number="118" hits="1"/>
<line number="119" hits="1"/>
<line number="120" hits="1"/>
<line number="122" hits="1"/>
<line number="123" hits="1"/>
<line number="125" hits="1"/>
<line number="126" hits="1"/>
<line number="128" hits="1"/>
<line number="129" hits="1"/>
<line number="131" hits="1"/>
<line number="132" hits="1"/>
<line number="135" hits="1"/>
<line number="138" hits="1"/>
<line number="141" hits="1"/>
<line number="143" hits="1"/>
<line number="144" hits="1"/>
<line number="145" hits="1"/>
<line number="147" hits="1"/>
<line number="148" hits="1"/>
<line number="150" hits="1"/>
<line number="152" hits="1"/>
<line number="153" hits="1"/>
<line number="155" hits="1"/>
<line number="156" hits="1"/>
<line number="158" hits="1"/>
<line number="159" hits="1"/>
<line number="162" hits="1"/>
<line number="163" hits="1"/>
<line number="164" hits="1"/>
<line number="166" hits="1"/>
<line number="169" hits="1"/>
<line number="171" hits="1"/>
<line number="172" hits="1"/>
<line number="173" hits="1"/>
<line number="175" hits="1"/>
<line number="176" hits="1"/>
<line number="178" hits="1"/>
<line number="180" hits="1"/>
<line number="181" hits="1"/>
<line number="183" hits="1"/>
<line number="185" hits="1"/>
<line number="187" hits="1"/>
<line number="189" hits="1"/>
<line number="190" hits="1"/>
<line number="191" hits="1"/>
<line number="192" hits="1"/>
<line number="194" hits="1"/>
<line number="195" hits="1"/>
<line number="198" hits="1"/>
<line number="199" hits="1"/>
<line number="200" hits="1"/>
<line number="202" hits="1"/>
<line number="205" hits="1"/>
<line number="206" hits="1"/>
<line number="208" hits="1"/>
<line number="209" hits="1"/>
<line number="210" hits="1"/>
<line number="212" hits="1"/>
<line number="213" hits="1"/>
<line number="216" hits="1"/>
<line number="217" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="220"/>
<line number="218" hits="1"/>
<line number="220" hits="1"/>
<line number="221" hits="1"/>
<line number="224" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="228"/>
<line number="225" hits="1"/>
<line number="228" hits="1"/>
<line number="229" hits="1"/>
<line number="230" hits="1"/>
<line number="232" hits="1"/>
<line number="234" hits="1"/>
<line number="236" hits="1"/>
<line number="237" hits="0"/>
<line number="239" hits="1"/>
<line number="241" hits="1"/>
<line number="242" hits="1"/>
<line number="243" hits="1"/>
<line number="244" hits="1"/>
<line number="246" hits="1"/>
<line number="248" hits="1"/>
<line number="251" hits="1"/>
<line number="252" hits="1"/>
<line number="254" hits="1"/>
<line number="257" hits="1"/>
<line number="258" hits="1"/>
<line number="260" hits="1"/>
<line number="261" hits="1"/>
<line number="262" hits="1"/>
<line number="264" hits="1"/>
<line number="265" hits="1"/>
<line number="267" hits="1"/>
<line number="269" hits="1"/>
<line number="270" hits="1"/>
<line number="272" hits="1"/>
<line number="274" hits="1"/>
<line number="276" hits="1"/>
<line number="278" hits="1"/>
<line number="280" hits="1"/>
<line number="281" hits="1"/>
<line number="282" hits="1"/>
<line number="284" hits="1"/>
<line number="285" hits="1"/>
<line number="287" hits="1"/>
<line number="288" hits="1"/>
<line number="290" hits="1"/>
<line number="291" hits="1"/>
<line number="293" hits="1"/>
<line number="294" hits="1"/>
<line number="296" hits="1"/>
<line number="297" hits="1"/>
<line number="298" hits="1"/>
<line number="300" hits="1"/>
<line number="303" hits="1"/>
<line number="304" hits="1"/>
<line number="307" hits="1"/>
<line number="309" hits="1"/>
<line number="311" hits="1"/>
<line number="313" hits="1"/>
<line number="315" hits="1"/>
<line number="318" hits="1"/>
<line number="319" hits="1"/>
<line number="322" hits="1"/>
<line number="323" hits="1"/>
<line number="326" hits="1"/>
<line number="328" hits="1"/>
<line number="330" hits="1"/>
<line number="331" hits="1"/>
<line number="333" hits="1"/>
<line number="334" hits="1"/>
<line number="336" hits="1"/>
<line number="337" hits="1"/>
<line number="339" hits="1"/>
<line number="340" hits="1"/>
<line number="341" hits="1"/>
<line number="342" hits="1"/>
<line number="344" hits="1"/>
<line number="348" hits="1"/>
<line number="351" hits="1"/>
<line number="353" hits="1"/>
<line number="355" hits="1"/>
<line number="362" hits="1"/>
<line number="363" hits="1"/>
<line number="364" hits="1"/>
<line number="365" hits="1"/>
<line number="366" hits="1"/>
<line number="368" hits="1"/>
<line number="369" hits="1"/>
<line number="371" hits="1"/>
<line number="374" hits="1"/>
<line number="377" hits="1"/>
<line number="379" hits="1"/>
<line number="381" hits="1"/>
<line number="383" hits="1"/>
<line number="384" hits="1"/>
<line number="386" hits="1"/>
<line number="387" hits="1"/>
<line number="388" hits="1"/>
<line number="390" hits="1"/>
<line number="391" hits="1"/>
<line number="393" hits="1"/>
<line number="394" hits="1"/>
<line number="395" hits="1"/>
<line number="396" hits="1"/>
<line number="398" hits="1"/>
<line number="401" hits="1"/>
<line number="404" hits="1"/>
<line number="405" hits="1"/>
<line number="406" hits="1"/>
<line number="409" hits="1"/>
<line number="412" hits="1"/>
<line number="414" hits="1"/>
<line number="416" hits="1"/>
<line number="418" hits="1"/>
<line number="419" hits="0"/>
<line number="420" hits="1"/>
<line number="422" hits="1"/>
<line number="424" hits="1"/>
<line number="428" hits="1"/>
<line number="430" hits="1"/>
<line number="432" hits="1"/>
<line number="434" hits="1"/>
<line number="436" hits="1"/>
<line number="437" hits="1"/>
<line number="438" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="exit"/>
<line number="440" hits="1"/>
<line number="442" hits="1"/>
<line number="444" hits="1"/>
<line number="447" hits="1"/>
<line number="450" hits="1"/>
<line number="452" hits="1"/>
<line number="453" hits="1"/>
<line number="454" hits="1"/>
<line number="456" hits="1"/>
<line number="457" hits="1"/>
<line number="459" hits="1"/>
<line number="460" hits="1"/>
<line number="461" hits="1"/>
<line number="462" hits="1"/>
<line number="463" hits="1"/>
<line number="465" hits="1"/>
<line number="467" hits="1"/>
<line number="470" hits="1"/>
<line number="471" hits="1"/>
<line number="473" hits="1"/>
<line number="475" hits="1"/>
<line number="477" hits="1"/>
<line number="479" hits="1"/>
<line number="480" hits="1"/>
<line number="483" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="484" hits="1"/>
<line number="486" hits="1"/>
<line number="489" hits="1"/>
<line number="492" hits="1"/>
</lines>
</class>
</classes>
</package>
</packages>
</coverage>