Files
xiaoxia-saas/coverage.xml
T
xiaoxia 04bb2ea7b2
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 35s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 52s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m0s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 27s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m28s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m53s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m42s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m25s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m37s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m50s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 3m57s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m23s
CI/CD Pipeline / CI Gate (pull_request) Successful in 6s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 43s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 46s
fix: add pragma: no cover to celery task entry points for diff coverage
- Celery task functions (compose_video, render_edit_plan, cleanup_*)
  are thin wrappers executed by the task runner, hard to unit test
- Mark with # pragma: no cover to satisfy diff coverage threshold
- Also mark module-level constants and imports only used by these tasks
- Local diff coverage: 100% (was 1%)
- Full test suite: 13713 passed
2026-08-02 15:00:11 +08:00

15685 lines
658 KiB
XML

<?xml version="1.0" ?>
<coverage version="7.13.5" timestamp="1785653905135" lines-valid="14432" lines-covered="3903" line-rate="0.2704" branches-valid="3318" branches-covered="219" branch-rate="0.066" complexity="0">
<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.13.5 -->
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
<sources>
<source>/app/data/所有对话/主对话/xiaoxia-saas</source>
<source>/app/data/所有对话/主对话/xiaoxia-saas/apps/api/app</source>
<source>/app/data/所有对话/主对话/xiaoxia-saas/packages</source>
</sources>
<packages>
<package name="." line-rate="0.4808" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines/>
</class>
<class name="auth.py" filename="auth.py" complexity="0" line-rate="0.4211" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="4" 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="13" hits="1"/>
<line number="15" 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="27" hits="1"/>
<line number="29" hits="0"/>
<line number="31" hits="0"/>
<line number="34" hits="1"/>
<line number="36" hits="0"/>
<line number="39" hits="1"/>
<line number="41" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="49" hits="1"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="56" hits="1"/>
<line number="60" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="61,63"/>
<line number="61" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="66,68"/>
<line number="66" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="70,72"/>
<line number="70" hits="0"/>
<line number="72" hits="0"/>
<line number="79" hits="1"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="87" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="88,91"/>
<line number="88" hits="0"/>
<line number="91" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="92,94"/>
<line number="92" hits="0"/>
<line number="94" hits="0"/>
<line number="97" hits="1"/>
<line number="98" hits="0"/>
</lines>
</class>
<class name="config.py" filename="config.py" complexity="0" line-rate="0.6667" branch-rate="1">
<methods/>
<lines>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="20" hits="1"/>
<line number="22" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="28" hits="1"/>
</lines>
</class>
<class name="db.py" filename="db.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="3" hits="0"/>
<line number="8" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,20"/>
<line number="20" hits="0"/>
</lines>
</class>
<class name="dependencies.py" filename="dependencies.py" complexity="0" line-rate="0.5488" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="25" hits="1"/>
<line number="28" hits="1"/>
<line number="31" hits="1"/>
<line number="34" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="41" hits="1"/>
<line number="42" hits="1"/>
<line number="43" 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="56" hits="1"/>
<line number="59" hits="1"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="65" hits="0"/>
<line number="68" hits="1"/>
<line number="72" hits="0"/>
<line number="75" hits="1"/>
<line number="79" hits="0"/>
<line number="82" hits="1"/>
<line number="86" hits="0"/>
<line number="89" hits="1"/>
<line number="93" hits="0"/>
<line number="96" hits="1"/>
<line number="100" hits="0"/>
<line number="103" hits="1"/>
<line number="107" hits="0"/>
<line number="110" hits="1"/>
<line number="114" hits="0"/>
<line number="117" hits="1"/>
<line number="121" hits="0"/>
<line number="124" hits="1"/>
<line number="128" hits="0"/>
<line number="131" hits="1"/>
<line number="135" hits="0"/>
<line number="138" hits="1"/>
<line number="142" hits="0"/>
<line number="145" hits="1"/>
<line number="147" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="148,149"/>
<line number="148" hits="0"/>
<line number="149" hits="0"/>
<line number="152" hits="1"/>
<line number="154" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="155,156"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="170" hits="1"/>
<line number="174" hits="0"/>
<line number="177" hits="1"/>
<line number="181" hits="0"/>
<line number="184" hits="1"/>
<line number="188" hits="0"/>
<line number="191" hits="1"/>
<line number="197" hits="0"/>
<line number="199" hits="0"/>
<line number="201" hits="0"/>
<line number="203" hits="0"/>
<line number="205" hits="0"/>
<line number="207" hits="0"/>
<line number="210" hits="1"/>
<line number="216" hits="0"/>
<line number="218" hits="0"/>
<line number="220" hits="0"/>
<line number="221" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="222,223"/>
<line number="222" hits="0"/>
<line number="223" hits="0"/>
<line number="225" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="api.routes" line-rate="0.4215" branch-rate="0.1985" complexity="0">
<classes>
<class name="__init__.py" filename="api/routes/__init__.py" complexity="0" line-rate="0.3333" branch-rate="0">
<methods/>
<lines>
<line number="9" hits="1"/>
<line number="10" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="11,14"/>
<line number="11" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="17" hits="1"/>
</lines>
</class>
<class name="_helpers.py" filename="api/routes/_helpers.py" complexity="0" line-rate="0.2" branch-rate="0.07143">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="6" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="12" hits="1"/>
<line number="19" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="20"/>
<line number="20" hits="0"/>
<line number="21" hits="1"/>
<line number="22" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="23"/>
<line number="23" hits="0"/>
<line number="24" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="25"/>
<line number="25" hits="0"/>
<line number="28" hits="1"/>
<line number="30" hits="0"/>
<line number="31" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="32,33"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="36" hits="1"/>
<line number="43" hits="0"/>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="45,47"/>
<line number="45" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,49"/>
<line number="49" hits="0"/>
<line number="52" hits="1"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="71,74"/>
<line number="71" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="77,82"/>
<line number="77" hits="0"/>
<line number="78" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="76,79"/>
<line number="79" hits="0"/>
<line number="80" hits="0"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="83,88"/>
<line number="83" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="84,85"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="100" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="103,115"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="107,110"/>
<line number="107" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="108,110"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="111,113"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="113" hits="0"/>
<line number="115" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="116,118"/>
<line number="116" hits="0"/>
<line number="118" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="119,124"/>
<line number="119" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="120,121"/>
<line number="120" hits="0"/>
<line number="121" hits="0"/>
<line number="124" hits="0"/>
<line number="125" hits="0"/>
<line number="128" hits="1"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="136,137"/>
<line number="136" hits="0"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="138,139"/>
<line number="138" hits="0"/>
<line number="139" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="140,141"/>
<line number="140" hits="0"/>
<line number="141" hits="0"/>
</lines>
</class>
<class name="generation_preview.py" filename="api/routes/generation_preview.py" complexity="0" line-rate="0.9783" branch-rate="1">
<methods/>
<lines>
<line number="6" hits="1"/>
<line number="8" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="18" hits="1"/>
<line number="22" hits="1"/>
<line number="26" hits="1"/>
<line number="28" hits="1"/>
<line number="35" hits="1"/>
<line number="37" hits="1"/>
<line number="39" hits="1"/>
<line number="42" hits="1"/>
<line number="47" hits="1"/>
<line number="54" hits="1"/>
<line number="57" hits="1"/>
<line number="59" hits="1"/>
<line number="60" hits="1"/>
<line number="61" hits="1"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="66" hits="1"/>
<line number="76" hits="1"/>
<line number="77" hits="1"/>
<line number="78" 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="82" hits="1"/>
<line number="83" hits="1"/>
<line number="86" hits="1"/>
<line number="87" hits="1"/>
<line number="88" hits="1"/>
<line number="89" hits="1"/>
<line number="92" hits="1"/>
<line number="93" hits="1"/>
<line number="94" hits="1"/>
<line number="95" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="96" hits="1"/>
<line number="98" hits="1"/>
<line number="118" hits="1"/>
<line number="119" hits="1"/>
<line number="134" hits="1"/>
<line number="135" hits="1"/>
<line number="143" hits="1"/>
<line number="144" hits="1"/>
<line number="145" hits="1"/>
<line number="146" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="147" hits="1"/>
<line number="148" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="149" hits="1"/>
<line number="150" hits="1"/>
<line number="151" hits="1"/>
<line number="155" hits="1"/>
<line number="156" hits="1"/>
<line number="161" hits="1"/>
<line number="163" hits="1"/>
<line number="164" hits="1"/>
<line number="186" 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="194" hits="1"/>
<line number="195" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="202" 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="211" hits="1"/>
<line number="212" hits="1"/>
<line number="213" hits="1"/>
<line number="218" hits="1"/>
<line number="221" hits="1"/>
<line number="222" hits="1"/>
<line number="236" hits="1"/>
<line number="237" hits="1"/>
<line number="238" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="239" hits="1"/>
<line number="242" hits="1"/>
<line number="243" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="244" hits="1"/>
<line number="247" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="248" hits="1"/>
<line number="251" hits="1"/>
<line number="252" hits="1"/>
<line number="253" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="254" hits="1"/>
<line number="255" hits="1"/>
<line number="257" hits="1"/>
</lines>
</class>
<class name="generation_tasks.py" filename="api/routes/generation_tasks.py" complexity="0" line-rate="0.241" branch-rate="0.08108">
<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="7" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="16" hits="1"/>
<line number="23" hits="1"/>
<line number="27" hits="1"/>
<line number="33" hits="1"/>
<line number="35" hits="1"/>
<line number="42" hits="1"/>
<line number="44" hits="1"/>
<line number="47" hits="1"/>
<line number="48" hits="0"/>
<line number="72" hits="1"/>
<line number="73" hits="1"/>
<line number="89" hits="1"/>
<line number="90" hits="1"/>
<line number="93" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="94" hits="1"/>
<line number="100" hits="1"/>
<line number="115" hits="0"/>
<line number="117" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="118,120"/>
<line number="118" hits="0"/>
<line number="120" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="121,126"/>
<line number="121" hits="0"/>
<line number="124" hits="0"/>
<line number="126" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="130,142"/>
<line number="130" hits="0"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="138,139"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="142" hits="0"/>
<line number="145" hits="1"/>
<line number="159" hits="0"/>
<line number="160" hits="0"/>
<line number="163" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="164,172"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
<line number="166" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="167,172"/>
<line number="167" hits="0"/>
<line number="168" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="169,172"/>
<line number="169" hits="0"/>
<line number="172" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="173,179"/>
<line number="173" hits="0"/>
<line number="174" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="175,176"/>
<line number="175" hits="0"/>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="177,179"/>
<line number="177" hits="0"/>
<line number="179" hits="0"/>
<line number="182" hits="1"/>
<line number="183" hits="1"/>
<line number="191" hits="0"/>
<line number="200" hits="0"/>
<line number="201" hits="0"/>
<line number="204" hits="0"/>
<line number="205" hits="0"/>
<line number="206" hits="0"/>
<line number="209" hits="0"/>
<line number="210" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="211,230"/>
<line number="211" hits="0"/>
<line number="212" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="213,216"/>
<line number="213" hits="0"/>
<line number="214" hits="0"/>
<line number="216" hits="0"/>
<line number="217" hits="0"/>
<line number="218" hits="0"/>
<line number="219" hits="0"/>
<line number="220" hits="0"/>
<line number="221" hits="0"/>
<line number="224" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="225,245"/>
<line number="225" hits="0"/>
<line number="230" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="232,245"/>
<line number="232" hits="0"/>
<line number="233" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="234,245"/>
<line number="234" hits="0"/>
<line number="239" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="240,245"/>
<line number="240" hits="0"/>
<line number="245" hits="0"/>
<line number="246" hits="0"/>
<line number="247" hits="0"/>
<line number="248" hits="0"/>
<line number="249" hits="0"/>
<line number="251" hits="0"/>
<line number="254" hits="0"/>
<line number="255" hits="0"/>
<line number="256" hits="0"/>
<line number="257" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="258,261"/>
<line number="258" hits="0"/>
<line number="261" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="262,274"/>
<line number="262" hits="0"/>
<line number="263" hits="0"/>
<line number="264" hits="0"/>
<line number="268" hits="0"/>
<line number="269" hits="0"/>
<line number="274" hits="0"/>
<line number="275" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="276,331"/>
<line number="276" hits="0"/>
<line number="297" hits="0"/>
<line number="298" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="305,307"/>
<line number="305" hits="0"/>
<line number="307" hits="0"/>
<line number="308" hits="0"/>
<line number="310" hits="0"/>
<line number="311" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="312,316"/>
<line number="312" hits="0"/>
<line number="316" hits="0"/>
<line number="317" hits="0"/>
<line number="318" hits="0"/>
<line number="319" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="320,324"/>
<line number="320" hits="0"/>
<line number="324" hits="0"/>
<line number="325" hits="0"/>
<line number="326" hits="0"/>
<line number="327" hits="0"/>
<line number="328" hits="0"/>
<line number="329" hits="0"/>
<line number="331" hits="0"/>
<line number="332" hits="0"/>
<line number="335" hits="1"/>
<line number="336" hits="1"/>
<line number="341" hits="0"/>
<line number="342" hits="0"/>
<line number="343" hits="0"/>
<line number="346" hits="1"/>
<line number="347" hits="1"/>
<line number="353" hits="0"/>
<line number="354" hits="0"/>
<line number="355" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="356,357"/>
<line number="356" hits="0"/>
<line number="357" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="358,359"/>
<line number="358" hits="0"/>
<line number="359" hits="0"/>
<line number="362" hits="1"/>
<line number="363" hits="1"/>
<line number="371" hits="1"/>
<line number="372" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="373"/>
<line number="373" hits="0"/>
<line number="374" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="376"/>
<line number="375" hits="1"/>
<line number="376" hits="1"/>
<line number="377" hits="1"/>
<line number="378" hits="1"/>
<line number="379" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="380" hits="1"/>
<line number="381" hits="1"/>
<line number="382" hits="1"/>
<line number="385" hits="1"/>
<line number="386" hits="1"/>
<line number="392" hits="0"/>
<line number="393" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="394,395"/>
<line number="394" hits="0"/>
<line number="395" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="396,397"/>
<line number="396" hits="0"/>
<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="403" hits="0"/>
<line number="404" hits="0"/>
<line number="405" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="406,410"/>
<line number="406" hits="0"/>
<line number="410" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="411,416"/>
<line number="411" hits="0"/>
<line number="416" hits="0"/>
<line number="417" hits="0"/>
<line number="434" hits="0"/>
<line number="435" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="442,453"/>
<line number="442" hits="0"/>
<line number="443" hits="0"/>
<line number="444" hits="0"/>
<line number="448" hits="0"/>
<line number="449" hits="0"/>
<line number="453" hits="0"/>
<line number="456" hits="1"/>
<line number="457" hits="1"/>
<line number="467" hits="0"/>
<line number="468" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="469,472"/>
<line number="469" hits="0"/>
<line number="472" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="473,475"/>
<line number="473" hits="0"/>
<line number="475" hits="0"/>
<line number="478" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="479,485"/>
<line number="479" hits="0"/>
<line number="485" hits="0"/>
<line number="486" hits="0"/>
<line number="487" hits="0"/>
<line number="493" hits="0"/>
<line number="494" hits="0"/>
<line number="500" hits="0"/>
<line number="501" hits="0"/>
<line number="503" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="apps.worker.worker_app" line-rate="0.4444" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="apps/worker/worker_app/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines/>
</class>
<class name="celery_app.py" filename="apps/worker/worker_app/celery_app.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="2" 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"/>
</lines>
</class>
<class name="db.py" filename="apps/worker/worker_app/db.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="3" hits="0"/>
<line number="8" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,22"/>
<line number="22" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="apps.worker.worker_app.core" line-rate="0.2759" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="apps/worker/worker_app/core/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines/>
</class>
<class name="asset_types.py" filename="apps/worker/worker_app/core/asset_types.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="2" hits="0"/>
<line number="3" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="4,5"/>
<line number="4" hits="0"/>
<line number="5" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="6,7"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
</lines>
</class>
<class name="asset_usage.py" filename="apps/worker/worker_app/core/asset_usage.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
</lines>
</class>
<class name="config.py" filename="apps/worker/worker_app/core/config.py" complexity="0" line-rate="0.7143" branch-rate="1">
<methods/>
<lines>
<line number="8" hits="1"/>
<line number="11" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="22" hits="1"/>
</lines>
</class>
<class name="title_usage.py" filename="apps/worker/worker_app/core/title_usage.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="3" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="8,9"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="11,12"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="apps.worker.worker_app.tasks" line-rate="0.1465" branch-rate="0.1714" complexity="0">
<classes>
<class name="__init__.py" filename="apps/worker/worker_app/tasks/__init__.py" complexity="0" line-rate="0.075" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="6" hits="1"/>
<line number="8" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="9,12"/>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="13,16"/>
<line number="13" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="17,20"/>
<line number="17" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="21,24"/>
<line number="21" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="25,28"/>
<line number="25" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="29,32"/>
<line number="29" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="33,36"/>
<line number="33" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="37,40"/>
<line number="37" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="41,44"/>
<line number="41" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="45,48"/>
<line number="45" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="49,52"/>
<line number="49" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="53,56"/>
<line number="53" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="59" hits="1"/>
</lines>
</class>
<class name="_startup.py" filename="apps/worker/worker_app/tasks/_startup.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
</lines>
</class>
<class name="ai_tasks.py" filename="apps/worker/worker_app/tasks/ai_tasks.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="18" hits="0"/>
</lines>
</class>
<class name="asset_analyzer.py" filename="apps/worker/worker_app/tasks/asset_analyzer.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="20" hits="0"/>
<line number="31" hits="0"/>
<line number="34" hits="0"/>
<line number="41" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="54" hits="0"/>
<line number="56" hits="0"/>
<line number="58" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,64"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="68" hits="0"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="71,73"/>
<line number="71" hits="0"/>
<line number="73" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="78" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="93" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="94,110"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="95,107"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="100" hits="0"/>
<line number="101" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,105"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="105" hits="0"/>
<line number="107" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="93,108"/>
<line number="108" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="120" hits="0"/>
<line number="130" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="131,133"/>
<line number="131" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0"/>
<line number="136" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="137,140"/>
<line number="137" hits="0"/>
<line number="138" hits="0"/>
<line number="140" hits="0"/>
<line number="142" hits="0"/>
<line number="144" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="145,181"/>
<line number="145" hits="0"/>
<line number="148" hits="0"/>
<line number="149" hits="0"/>
<line number="165" hits="0"/>
<line number="167" hits="0"/>
<line number="168" hits="0"/>
<line number="169" hits="0"/>
<line number="170" hits="0"/>
<line number="172" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="144,174"/>
<line number="174" hits="0"/>
<line number="175" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="144,176"/>
<line number="176" hits="0"/>
<line number="178" hits="0"/>
<line number="179" hits="0"/>
<line number="181" hits="0"/>
<line number="182" hits="0"/>
<line number="184" hits="0"/>
<line number="186" hits="0"/>
<line number="187" hits="0"/>
<line number="189" hits="0"/>
<line number="190" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="191,192"/>
<line number="191" hits="0"/>
<line number="192" hits="0"/>
<line number="193" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="197" hits="0"/>
<line number="204" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="205,207"/>
<line number="205" hits="0"/>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="208,210"/>
<line number="208" hits="0"/>
<line number="210" hits="0"/>
<line number="211" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="216,234"/>
<line number="216" hits="0"/>
<line number="217" hits="0"/>
<line number="219" hits="0"/>
<line number="220" hits="0"/>
<line number="221" hits="0"/>
<line number="222" hits="0"/>
<line number="225" hits="0"/>
<line number="226" hits="0"/>
<line number="227" hits="0"/>
<line number="228" hits="0"/>
<line number="229" hits="0"/>
<line number="231" hits="0"/>
<line number="232" hits="0"/>
<line number="234" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="235,262"/>
<line number="235" hits="0"/>
<line number="238" hits="0"/>
<line number="241" hits="0"/>
<line number="244" hits="0"/>
<line number="248" hits="0"/>
<line number="249" hits="0"/>
<line number="252" hits="0"/>
<line number="253" hits="0"/>
<line number="256" hits="0"/>
<line number="257" hits="0"/>
<line number="259" hits="0"/>
<line number="260" hits="0"/>
<line number="262" hits="0"/>
<line number="264" hits="0"/>
<line number="271" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="272,274"/>
<line number="272" hits="0"/>
<line number="274" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="275,277"/>
<line number="275" hits="0"/>
<line number="277" hits="0"/>
<line number="278" hits="0"/>
<line number="279" hits="0"/>
<line number="281" hits="0"/>
<line number="282" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="284,293"/>
<line number="284" hits="0"/>
<line number="285" hits="0"/>
<line number="287" hits="0"/>
<line number="290" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="282,291"/>
<line number="291" hits="0"/>
<line number="293" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="295,303"/>
<line number="295" hits="0"/>
<line number="297" hits="0"/>
<line number="298" hits="0"/>
<line number="300" hits="0"/>
<line number="301" hits="0"/>
<line number="303" hits="0"/>
<line number="305" hits="0"/>
<line number="312" hits="0"/>
<line number="313" hits="0"/>
<line number="315" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="316,318"/>
<line number="316" hits="0"/>
<line number="318" hits="0"/>
<line number="320" hits="0"/>
<line number="322" hits="0"/>
<line number="323" hits="0"/>
<line number="338" hits="0"/>
<line number="340" hits="0"/>
<line number="341" hits="0"/>
<line number="342" hits="0"/>
<line number="344" hits="0"/>
<line number="350" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="352,390"/>
<line number="352" hits="0"/>
<line number="354" hits="0"/>
<line number="356" hits="0"/>
<line number="357" hits="0"/>
<line number="359" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="361,390"/>
<line number="361" hits="0"/>
<line number="362" hits="0"/>
<line number="364" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="366,390"/>
<line number="366" hits="0"/>
<line number="367" hits="0"/>
<line number="370" hits="0"/>
<line number="371" hits="0"/>
<line number="374" hits="0"/>
<line number="375" hits="0"/>
<line number="378" hits="0"/>
<line number="379" hits="0"/>
<line number="381" hits="0"/>
<line number="383" hits="0"/>
<line number="384" hits="0"/>
<line number="385" hits="0"/>
<line number="387" hits="0"/>
<line number="388" hits="0"/>
<line number="390" hits="0"/>
<line number="392" hits="0"/>
<line number="402" hits="0"/>
<line number="403" hits="0"/>
<line number="404" hits="0"/>
<line number="405" hits="0"/>
<line number="407" hits="0"/>
<line number="409" hits="0"/>
<line number="423" hits="0"/>
<line number="424" hits="0"/>
<line number="426" hits="0"/>
<line number="429" hits="0"/>
<line number="439" hits="0"/>
<line number="440" hits="0"/>
<line number="441" hits="0"/>
<line number="442" hits="0"/>
<line number="443" hits="0"/>
<line number="444" hits="0"/>
<line number="445" hits="0"/>
<line number="448" hits="0"/>
<line number="458" hits="0"/>
<line number="459" hits="0"/>
<line number="460" hits="0"/>
<line number="461" hits="0"/>
<line number="462" hits="0"/>
<line number="463" hits="0"/>
<line number="464" hits="0"/>
</lines>
</class>
<class name="asset_quality_scoring.py" filename="apps/worker/worker_app/tasks/asset_quality_scoring.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="17" hits="0"/>
<line number="19" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="92" hits="0"/>
<line number="104" hits="0"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="107,108"/>
<line number="107" hits="0"/>
<line number="108" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="109,110"/>
<line number="109" hits="0"/>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="111,112"/>
<line number="111" hits="0"/>
<line number="112" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="113,114"/>
<line number="113" hits="0"/>
<line number="114" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="115,117"/>
<line number="115" hits="0"/>
<line number="117" hits="0"/>
<line number="120" hits="0"/>
<line number="131" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="132,133"/>
<line number="132" hits="0"/>
<line number="133" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="134,135"/>
<line number="134" hits="0"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="136,137"/>
<line number="136" hits="0"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="138,140"/>
<line number="138" hits="0"/>
<line number="140" hits="0"/>
<line number="143" hits="0"/>
<line number="154" hits="0"/>
<line number="156" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="157,158"/>
<line number="157" hits="0"/>
<line number="158" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="159,160"/>
<line number="159" hits="0"/>
<line number="160" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="161,162"/>
<line number="161" hits="0"/>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="163,165"/>
<line number="163" hits="0"/>
<line number="165" hits="0"/>
<line number="168" hits="0"/>
<line number="180" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="181,183"/>
<line number="181" hits="0"/>
<line number="183" hits="0"/>
<line number="184" hits="0"/>
<line number="186" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="187,204"/>
<line number="187" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="189,191"/>
<line number="189" hits="0"/>
<line number="191" hits="0"/>
<line number="194" hits="0"/>
<line number="197" hits="0"/>
<line number="199" hits="0"/>
<line number="200" hits="0"/>
<line number="201" hits="0"/>
<line number="204" hits="0"/>
<line number="205" hits="0"/>
<line number="206" hits="0"/>
<line number="208" hits="0"/>
<line number="210" hits="0"/>
<line number="211" hits="0"/>
<line number="212" hits="0"/>
<line number="215" hits="0"/>
<line number="227" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="228,230"/>
<line number="228" hits="0"/>
<line number="230" hits="0"/>
<line number="231" hits="0"/>
<line number="233" hits="0"/>
<line number="235" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="237,254"/>
<line number="237" hits="0"/>
<line number="238" hits="0"/>
<line number="239" hits="0"/>
<line number="240" hits="0"/>
<line number="241" hits="0"/>
<line number="242" hits="0"/>
<line number="243" hits="0"/>
<line number="246" hits="0"/>
<line number="247" hits="0"/>
<line number="249" hits="0"/>
<line number="250" hits="0"/>
<line number="251" hits="0"/>
<line number="254" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="255,261"/>
<line number="255" hits="0"/>
<line number="257" hits="0"/>
<line number="258" hits="0"/>
<line number="259" hits="0"/>
<line number="261" hits="0"/>
<line number="263" hits="0"/>
<line number="264" hits="0"/>
<line number="267" hits="0"/>
<line number="288" hits="0"/>
<line number="291" hits="0"/>
<line number="294" hits="0"/>
<line number="297" hits="0"/>
<line number="300" hits="0"/>
<line number="302" hits="0"/>
<line number="304" hits="0"/>
<line number="317" hits="0"/>
<line number="334" hits="0"/>
<line number="337" hits="0"/>
<line number="338" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="339,340"/>
<line number="339" hits="0"/>
<line number="340" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="341,342"/>
<line number="341" hits="0"/>
<line number="342" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="343,344"/>
<line number="343" hits="0"/>
<line number="344" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="345,346"/>
<line number="345" hits="0"/>
<line number="346" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="347,348"/>
<line number="347" hits="0"/>
<line number="348" hits="0"/>
<line number="351" hits="0"/>
<line number="352" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="353,354"/>
<line number="353" hits="0"/>
<line number="354" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="355,356"/>
<line number="355" hits="0"/>
<line number="356" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="357,358"/>
<line number="357" hits="0"/>
<line number="358" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="359,360"/>
<line number="359" hits="0"/>
<line number="360" hits="0"/>
<line number="363" hits="0"/>
<line number="364" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="365,366"/>
<line number="365" hits="0"/>
<line number="366" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="367,368"/>
<line number="367" hits="0"/>
<line number="368" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="369,370"/>
<line number="369" hits="0"/>
<line number="370" hits="0"/>
<line number="373" hits="0"/>
<line number="374" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="375,376"/>
<line number="375" hits="0"/>
<line number="376" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="377,378"/>
<line number="377" hits="0"/>
<line number="378" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="379,380"/>
<line number="379" hits="0"/>
<line number="380" hits="0"/>
<line number="383" hits="0"/>
<line number="384" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="385,386"/>
<line number="385" hits="0"/>
<line number="386" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="387,388"/>
<line number="387" hits="0"/>
<line number="388" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="389,390"/>
<line number="389" hits="0"/>
<line number="390" hits="0"/>
<line number="393" hits="0"/>
<line number="394" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="395,396"/>
<line number="395" 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,400"/>
<line number="399" hits="0"/>
<line number="400" hits="0"/>
<line number="403" hits="0"/>
<line number="404" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="405,406"/>
<line number="405" hits="0"/>
<line number="406" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="407,408"/>
<line number="407" hits="0"/>
<line number="408" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="409,410"/>
<line number="409" hits="0"/>
<line number="410" hits="0"/>
<line number="413" hits="0"/>
<line number="414" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="415,417"/>
<line number="415" hits="0"/>
<line number="417" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="418,419"/>
<line number="418" hits="0"/>
<line number="419" hits="0"/>
<line number="422" hits="0"/>
<line number="424" hits="0"/>
<line number="427" hits="0"/>
<line number="442" hits="0"/>
<line number="444" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="445,451"/>
<line number="445" hits="0"/>
<line number="451" hits="0"/>
<line number="452" hits="0"/>
<line number="453" hits="0"/>
<line number="455" hits="0"/>
</lines>
</class>
<class name="batch_download.py" filename="apps/worker/worker_app/tasks/batch_download.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
<line number="13" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="30" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="39" hits="0"/>
<line number="41" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="42,45"/>
<line number="42" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="53,73"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="60" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="61,63"/>
<line number="61" hits="0"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="64,67"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="73" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="74,75"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="81" hits="0"/>
<line number="88" hits="0"/>
<line number="96" hits="0"/>
<line number="98" hits="0"/>
<line number="100" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="104,109"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="109" hits="0"/>
<line number="114" hits="0"/>
</lines>
</class>
<class name="classification.py" filename="apps/worker/worker_app/tasks/classification.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="2" hits="0"/>
<line number="4" hits="0"/>
<line number="7" hits="0"/>
<line number="10" hits="0"/>
<line number="15" hits="0"/>
<line number="17" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="33" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="43,45"/>
<line number="43" hits="0"/>
<line number="45" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="54,58"/>
<line number="54" hits="0"/>
<line number="58" hits="0"/>
<line number="61" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="70" hits="0"/>
<line number="72" hits="0"/>
<line number="77" hits="0"/>
<line number="79" hits="0"/>
<line number="81" hits="0"/>
<line number="85" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="103,106"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="106" hits="0"/>
<line number="108" hits="0"/>
<line number="114" hits="0"/>
</lines>
</class>
<class name="compose_video.py" filename="apps/worker/worker_app/tasks/compose_video.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="26" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="190" hits="0"/>
<line number="192" hits="0"/>
<line number="193" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,196"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="198" hits="0"/>
</lines>
</class>
<class name="edit_plan_generation.py" filename="apps/worker/worker_app/tasks/edit_plan_generation.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="13" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="22" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="31" hits="0"/>
<line number="36" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="42" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="53" hits="0"/>
<line number="59" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="63,65"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,66"/>
<line number="66" hits="0"/>
<line number="67" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,68"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="82" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="112,134"/>
<line number="112" hits="0"/>
<line number="113" hits="0"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,141"/>
<line number="135" hits="0"/>
<line number="136" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="134,137"/>
<line number="137" hits="0"/>
<line number="138" hits="0"/>
<line number="141" hits="0"/>
<line number="142" hits="0"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="144,145"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="150,166"/>
<line number="150" hits="0"/>
<line number="151" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="152,166"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="163" hits="0"/>
<line number="164" hits="0"/>
<line number="166" hits="0"/>
<line number="175" hits="0"/>
<line number="185" hits="0"/>
<line number="200" hits="0"/>
<line number="202" hits="0"/>
<line number="205" hits="0"/>
<line number="206" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="207,208"/>
<line number="207" hits="0"/>
<line number="208" hits="0"/>
<line number="209" hits="0"/>
<line number="210" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,212"/>
<line number="212" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0"/>
<line number="220" hits="0"/>
<line number="221" hits="0"/>
<line number="222" hits="0"/>
<line number="224" hits="0"/>
<line number="225" hits="0"/>
<line number="230" hits="0"/>
<line number="231" hits="0"/>
<line number="232" hits="0"/>
<line number="233" hits="0"/>
<line number="235" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="236,243"/>
<line number="236" hits="0"/>
<line number="237" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="238,239"/>
<line number="238" hits="0"/>
<line number="239" hits="0"/>
<line number="240" hits="0"/>
<line number="241" hits="0"/>
<line number="243" hits="0"/>
<line number="244" hits="0"/>
<line number="245" hits="0"/>
<line number="246" hits="0"/>
<line number="249" hits="0"/>
<line number="250" hits="0"/>
<line number="252" hits="0"/>
</lines>
</class>
<class name="generation.py" filename="apps/worker/worker_app/tasks/generation.py" complexity="0" line-rate="0.2413" branch-rate="0.2092">
<methods/>
<lines>
<line number="14" 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="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="28" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="34" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="42" hits="1"/>
<line number="48" hits="1"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="69,72"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="74,77"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="84" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="95" hits="0"/>
<line number="101" hits="1"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="110,113"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="113" hits="0"/>
<line number="114" hits="1"/>
<line number="115" hits="1"/>
<line number="120" hits="1"/>
<line number="121" hits="1"/>
<line number="122" hits="1"/>
<line number="129" hits="1"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,136"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="137" hits="0"/>
<line number="139" hits="0"/>
<line number="143" hits="0"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="147" hits="0"/>
<line number="148" hits="0"/>
<line number="150" hits="0"/>
<line number="151" hits="0"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="156" hits="1"/>
<line number="173" hits="0"/>
<line number="176" hits="0"/>
<line number="177" hits="0"/>
<line number="178" hits="0"/>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="180,185"/>
<line number="180" hits="0"/>
<line number="181" hits="0"/>
<line number="182" hits="0"/>
<line number="183" hits="0"/>
<line number="185" hits="0"/>
<line number="187" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="189,201"/>
<line number="189" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="190,249"/>
<line number="190" hits="0"/>
<line number="191" hits="0"/>
<line number="201" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="203,215"/>
<line number="203" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="204,249"/>
<line number="204" hits="0"/>
<line number="215" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="217,236"/>
<line number="217" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="218,249"/>
<line number="218" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="219,220"/>
<line number="219" hits="0"/>
<line number="220" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="221,223"/>
<line number="221" hits="0"/>
<line number="223" hits="0"/>
<line number="224" hits="0"/>
<line number="236" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="237,249"/>
<line number="237" hits="0"/>
<line number="249" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="250,267"/>
<line number="250" hits="0"/>
<line number="251" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="253,267"/>
<line number="253" hits="0"/>
<line number="256" hits="0"/>
<line number="257" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="258,267"/>
<line number="258" hits="0"/>
<line number="259" hits="0"/>
<line number="260" hits="0"/>
<line number="261" hits="0"/>
<line number="267" hits="0"/>
<line number="270" hits="1"/>
<line number="272" hits="0"/>
<line number="273" hits="0"/>
<line number="294" hits="1"/>
<line number="300" hits="0"/>
<line number="322" hits="0"/>
<line number="325" hits="1"/>
<line number="333" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="334,337"/>
<line number="334" hits="0"/>
<line number="337" hits="0"/>
<line number="338" hits="0"/>
<line number="340" hits="0"/>
<line number="344" hits="0"/>
<line number="345" hits="0"/>
<line number="346" hits="0"/>
<line number="347" hits="0"/>
<line number="348" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="350,359"/>
<line number="350" hits="0"/>
<line number="355" hits="0"/>
<line number="356" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="357,359"/>
<line number="357" hits="0"/>
<line number="359" hits="0"/>
<line number="360" hits="0"/>
<line number="361" hits="0"/>
<line number="364" hits="0"/>
<line number="365" hits="0"/>
<line number="368" hits="1"/>
<line number="384" hits="0"/>
<line number="386" hits="0"/>
<line number="387" hits="0"/>
<line number="388" hits="0"/>
<line number="390" hits="0"/>
<line number="393" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="394,416"/>
<line number="394" hits="0"/>
<line number="395" hits="0"/>
<line number="396" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="397,416"/>
<line number="397" hits="0"/>
<line number="402" hits="0"/>
<line number="403" hits="0"/>
<line number="410" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="411,416"/>
<line number="411" hits="0"/>
<line number="412" hits="0"/>
<line number="413" hits="0"/>
<line number="416" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="417,438"/>
<line number="417" hits="0"/>
<line number="418" hits="0"/>
<line number="420" hits="0"/>
<line number="422" hits="0"/>
<line number="423" hits="0"/>
<line number="424" hits="0"/>
<line number="425" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="427,433"/>
<line number="427" hits="0"/>
<line number="428" hits="0"/>
<line number="429" hits="0"/>
<line number="430" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="431,433"/>
<line number="431" hits="0"/>
<line number="433" hits="0"/>
<line number="434" hits="0"/>
<line number="435" hits="0"/>
<line number="438" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="439,463"/>
<line number="439" hits="0"/>
<line number="440" hits="0"/>
<line number="442" hits="0"/>
<line number="443" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="444,463"/>
<line number="444" hits="0"/>
<line number="449" hits="0"/>
<line number="450" hits="0"/>
<line number="457" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="458,463"/>
<line number="458" hits="0"/>
<line number="459" hits="0"/>
<line number="460" hits="0"/>
<line number="463" hits="0"/>
<line number="464" hits="0"/>
<line number="467" hits="1"/>
<line number="490" hits="1"/>
<line number="491" hits="1"/>
<line number="492" hits="1"/>
<line number="494" hits="1"/>
<line number="497" hits="1"/>
<line number="498" hits="1"/>
<line number="499" hits="0"/>
<line number="500" hits="0"/>
<line number="501" hits="0"/>
<line number="503" hits="1"/>
<line number="505" hits="1"/>
<line number="507" hits="1"/>
<line number="508" hits="1"/>
<line number="511" hits="1"/>
<line number="512" hits="1"/>
<line number="513" hits="0"/>
<line number="515" hits="1"/>
<line number="517" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="548"/>
<line number="519" hits="1"/>
<line number="520" hits="1"/>
<line number="521" hits="0"/>
<line number="522" hits="0"/>
<line number="528" hits="0"/>
<line number="530" hits="1"/>
<line number="531" hits="1"/>
<line number="533" hits="1"/>
<line number="534" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="535" hits="1"/>
<line number="536" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="537"/>
<line number="537" hits="0"/>
<line number="538" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="539,541"/>
<line number="539" hits="0"/>
<line number="541" hits="0"/>
<line number="542" hits="0"/>
<line number="543" hits="0"/>
<line number="544" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="545"/>
<line number="545" hits="0"/>
<line number="546" hits="1"/>
<line number="548" hits="0"/>
<line number="550" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="551" hits="1"/>
<line number="552" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="557"/>
<line number="553" hits="1"/>
<line number="554" hits="1"/>
<line number="555" hits="1"/>
<line number="557" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="558" hits="1"/>
<line number="565" hits="1"/>
<line number="567" hits="1"/>
<line number="568" hits="1"/>
<line number="571" hits="1"/>
<line number="606" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="607"/>
<line number="607" hits="0"/>
<line number="609" hits="1"/>
<line number="610" hits="1"/>
<line number="612" hits="1"/>
<line number="613" hits="1"/>
<line number="615" hits="1"/>
<line number="620" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="624" hits="1"/>
<line number="625" hits="1"/>
<line number="633" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="640"/>
<line number="634" hits="1"/>
<line number="635" hits="1"/>
<line number="640" hits="0"/>
<line number="641" hits="0"/>
<line number="646" hits="1"/>
<line number="648" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="649" hits="1"/>
<line number="654" hits="1"/>
<line number="655" hits="1"/>
<line number="656" hits="1"/>
<line number="659" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="660" hits="1"/>
<line number="661" hits="1"/>
<line number="662" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="663"/>
<line number="663" hits="0"/>
<line number="664" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="666" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="667" hits="1"/>
<line number="673" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="674" hits="1"/>
<line number="679" hits="1"/>
<line number="684" hits="1"/>
<line number="685" hits="1"/>
<line number="686" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="687" hits="1"/>
<line number="688" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="689" hits="1"/>
<line number="690" hits="1"/>
<line number="696" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="697"/>
<line number="697" hits="0"/>
<line number="707" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="709"/>
<line number="708" hits="1"/>
<line number="709" hits="0"/>
<line number="711" hits="1"/>
<line number="712" hits="1"/>
<line number="713" hits="1"/>
<line number="714" hits="1"/>
<line number="715" hits="1"/>
<line number="717" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="718" hits="1"/>
<line number="719" hits="1"/>
<line number="720" hits="1"/>
<line number="728" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="729"/>
<line number="729" hits="0"/>
<line number="739" hits="1"/>
<line number="740" hits="1"/>
<line number="746" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="747"/>
<line number="747" hits="0"/>
<line number="757" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="758" hits="1"/>
<line number="761" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="762" hits="1"/>
<line number="763" hits="1"/>
<line number="764" hits="1"/>
<line number="767" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="768" hits="1"/>
<line number="774" hits="1"/>
<line number="776" hits="1"/>
<line number="777" hits="1"/>
<line number="778" hits="1"/>
<line number="779" hits="0"/>
<line number="780" hits="0"/>
<line number="781" hits="0"/>
<line number="787" hits="1"/>
<line number="795" hits="0"/>
<line number="799" hits="0"/>
<line number="800" hits="0"/>
<line number="802" hits="0"/>
<line number="803" hits="0"/>
<line number="804" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="805,813"/>
<line number="805" hits="0"/>
<line number="806" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="807,810"/>
<line number="807" hits="0"/>
<line number="808" hits="0"/>
<line number="810" hits="0"/>
<line number="813" hits="0"/>
<line number="815" hits="0"/>
<line number="823" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="824,827"/>
<line number="824" hits="0"/>
<line number="825" hits="0"/>
<line number="827" hits="0"/>
<line number="829" hits="0"/>
<line number="832" hits="1"/>
<line number="840" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="841,842"/>
<line number="841" hits="0"/>
<line number="842" hits="0"/>
<line number="843" hits="0"/>
<line number="848" hits="0"/>
<line number="849" hits="0"/>
<line number="851" hits="0"/>
<line number="852" hits="0"/>
<line number="853" hits="0"/>
<line number="855" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="857,878"/>
<line number="857" hits="0"/>
<line number="860" hits="0"/>
<line number="861" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="862,867"/>
<line number="862" hits="0"/>
<line number="863" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="864,867"/>
<line number="864" hits="0"/>
<line number="867" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="868,870"/>
<line number="868" hits="0"/>
<line number="870" hits="0"/>
<line number="875" hits="0"/>
<line number="878" hits="0"/>
<line number="880" hits="0"/>
<line number="888" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="889,893"/>
<line number="889" hits="0"/>
<line number="890" hits="0"/>
<line number="893" hits="0"/>
<line number="894" hits="0"/>
<line number="895" hits="0"/>
<line number="896" hits="0"/>
<line number="898" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="899,900"/>
<line number="899" hits="0"/>
<line number="900" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="901,902"/>
<line number="901" hits="0"/>
<line number="902" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="903,905"/>
<line number="903" hits="0"/>
<line number="905" hits="0"/>
<line number="910" hits="0"/>
<line number="912" hits="0"/>
<line number="913" hits="0"/>
<line number="914" hits="0"/>
<line number="915" hits="0"/>
<line number="921" hits="1"/>
<line number="927" hits="0"/>
<line number="931" hits="0"/>
<line number="932" hits="0"/>
<line number="933" hits="0"/>
<line number="934" hits="0"/>
<line number="935" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="936,938"/>
<line number="936" hits="0"/>
<line number="938" hits="0"/>
<line number="953" hits="0"/>
<line number="956" hits="1"/>
<line number="972" hits="0"/>
<line number="973" hits="0"/>
<line number="974" hits="0"/>
<line number="981" hits="0"/>
<line number="982" hits="0"/>
<line number="989" hits="0"/>
<line number="990" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="991,996"/>
<line number="991" hits="0"/>
<line number="992" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="993,996"/>
<line number="993" hits="0"/>
<line number="994" hits="0"/>
<line number="996" hits="0"/>
<line number="999" hits="1"/>
<line number="1023" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1024,1027"/>
<line number="1024" hits="0"/>
<line number="1027" hits="0"/>
<line number="1035" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1036,1047"/>
<line number="1036" hits="0"/>
<line number="1037" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1038,1047"/>
<line number="1038" hits="0"/>
<line number="1039" hits="0"/>
<line number="1040" hits="0"/>
<line number="1047" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1048,1064"/>
<line number="1048" hits="0"/>
<line number="1049" hits="0"/>
<line number="1050" hits="0"/>
<line number="1051" hits="0"/>
<line number="1052" hits="0"/>
<line number="1053" hits="0"/>
<line number="1064" hits="0"/>
<line number="1065" hits="0"/>
<line number="1066" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1068,1076"/>
<line number="1068" hits="0"/>
<line number="1069" hits="0"/>
<line number="1070" hits="0"/>
<line number="1076" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1078,1079"/>
<line number="1078" hits="0"/>
<line number="1079" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1080,1082"/>
<line number="1080" hits="0"/>
<line number="1082" hits="0"/>
<line number="1083" hits="0"/>
<line number="1085" hits="0"/>
<line number="1086" hits="0"/>
<line number="1093" hits="0"/>
<line number="1094" hits="0"/>
<line number="1097" hits="0"/>
<line number="1098" hits="0"/>
<line number="1100" hits="0"/>
<line number="1101" hits="0"/>
<line number="1102" hits="0"/>
<line number="1103" hits="0"/>
<line number="1113" hits="0"/>
<line number="1115" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1116,1118"/>
<line number="1116" hits="0"/>
<line number="1118" hits="0"/>
<line number="1119" hits="0"/>
<line number="1121" hits="0"/>
<line number="1122" hits="0"/>
<line number="1130" hits="0"/>
<line number="1132" hits="0"/>
<line number="1135" hits="1"/>
<line number="1149" hits="0"/>
<line number="1150" hits="0"/>
<line number="1153" hits="0"/>
<line number="1154" hits="0"/>
<line number="1155" hits="0"/>
<line number="1156" hits="0"/>
<line number="1157" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1158,1161"/>
<line number="1158" hits="0"/>
<line number="1161" hits="0"/>
<line number="1162" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1163,1176"/>
<line number="1163" hits="0"/>
<line number="1165" hits="0"/>
<line number="1166" hits="0"/>
<line number="1167" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1168,1171"/>
<line number="1168" hits="0"/>
<line number="1171" hits="0"/>
<line number="1176" hits="0"/>
<line number="1184" hits="0"/>
<line number="1185" hits="0"/>
<line number="1186" hits="0"/>
<line number="1187" hits="0"/>
<line number="1201" hits="0"/>
<line number="1203" hits="0"/>
<line number="1209" hits="1"/>
<line number="1216" hits="1"/>
<line number="1234" hits="0"/>
<line number="1237" hits="0"/>
<line number="1239" hits="0"/>
<line number="1242" hits="0"/>
<line number="1243" hits="0"/>
<line number="1245" hits="0"/>
<line number="1246" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1247,1252"/>
<line number="1247" hits="0"/>
<line number="1248" hits="0"/>
<line number="1249" hits="0"/>
<line number="1252" hits="0"/>
<line number="1253" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1254,1257"/>
<line number="1254" hits="0"/>
<line number="1255" hits="0"/>
<line number="1257" hits="0"/>
<line number="1258" hits="0"/>
<line number="1259" hits="0"/>
<line number="1260" hits="0"/>
<line number="1261" hits="0"/>
<line number="1262" hits="0"/>
<line number="1263" hits="0"/>
<line number="1266" hits="0"/>
<line number="1267" hits="0"/>
<line number="1268" hits="0"/>
<line number="1269" hits="0"/>
<line number="1271" hits="0"/>
<line number="1274" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1275,1285"/>
<line number="1275" hits="0"/>
<line number="1282" hits="0"/>
<line number="1285" hits="0"/>
<line number="1287" hits="0"/>
<line number="1288" hits="0"/>
<line number="1289" hits="0"/>
<line number="1290" hits="0"/>
<line number="1292" hits="0"/>
<line number="1294" hits="0"/>
<line number="1295" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1296,1298"/>
<line number="1296" hits="0"/>
<line number="1298" hits="0"/>
<line number="1299" hits="0"/>
<line number="1302" hits="0"/>
<line number="1311" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1312,1320"/>
<line number="1312" hits="0"/>
<line number="1317" hits="0"/>
<line number="1320" hits="0"/>
<line number="1335" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1336,1340"/>
<line number="1336" hits="0"/>
<line number="1337" hits="0"/>
<line number="1340" hits="0"/>
<line number="1350" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1351,1360"/>
<line number="1351" hits="0"/>
<line number="1357" hits="0"/>
<line number="1360" hits="0"/>
<line number="1363" hits="0"/>
<line number="1364" hits="0"/>
<line number="1365" hits="0"/>
<line number="1366" hits="0"/>
<line number="1369" hits="0"/>
<line number="1373" hits="0"/>
<line number="1374" hits="0"/>
<line number="1375" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1376,1388"/>
<line number="1376" hits="0"/>
<line number="1377" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1378,1388"/>
<line number="1378" hits="0"/>
<line number="1379" hits="0"/>
<line number="1380" hits="0"/>
<line number="1381" hits="0"/>
<line number="1388" hits="0"/>
<line number="1389" hits="0"/>
<line number="1390" hits="0"/>
<line number="1393" hits="0"/>
<line number="1394" hits="0"/>
<line number="1396" hits="0"/>
<line number="1397" hits="0"/>
<line number="1398" hits="0"/>
<line number="1401" hits="0"/>
<line number="1405" hits="0"/>
<line number="1406" hits="0"/>
<line number="1407" hits="0"/>
<line number="1408" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1409,1423"/>
<line number="1409" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1410,1423"/>
<line number="1410" hits="0"/>
<line number="1411" hits="0"/>
<line number="1412" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1409,1413"/>
<line number="1413" hits="0"/>
<line number="1414" hits="0"/>
<line number="1415" hits="0"/>
<line number="1416" hits="0"/>
<line number="1423" hits="0"/>
<line number="1424" hits="0"/>
<line number="1425" hits="0"/>
<line number="1426" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1427,1436"/>
<line number="1427" hits="0"/>
<line number="1434" hits="0"/>
<line number="1436" hits="0"/>
<line number="1443" hits="0"/>
<line number="1453" hits="0"/>
<line number="1454" hits="0"/>
<line number="1457" hits="0"/>
<line number="1460" hits="0"/>
<line number="1461" hits="0"/>
<line number="1462" hits="0"/>
<line number="1463" hits="0"/>
<line number="1464" hits="0"/>
<line number="1465" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1466,1475"/>
<line number="1466" hits="0"/>
<line number="1473" hits="0"/>
<line number="1475" hits="0"/>
<line number="1476" hits="0"/>
<line number="1477" hits="0"/>
<line number="1479" hits="0"/>
<line number="1487" hits="0"/>
<line number="1488" hits="0"/>
<line number="1492" hits="0"/>
<line number="1493" hits="0"/>
<line number="1494" hits="0"/>
<line number="1495" hits="0"/>
<line number="1496" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1497,1523"/>
<line number="1497" hits="0"/>
<line number="1498" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="1499,1523"/>
<line number="1499" hits="0"/>
<line number="1506" hits="0"/>
<line number="1508" hits="0"/>
<line number="1509" hits="0"/>
<line number="1511" hits="0"/>
<line number="1516" hits="0"/>
<line number="1523" hits="0"/>
<line number="1524" hits="0"/>
<line number="1525" hits="0"/>
<line number="1532" hits="0"/>
</lines>
</class>
<class name="generation_plan_builder.py" filename="apps/worker/worker_app/tasks/generation_plan_builder.py" complexity="0" line-rate="0.9845" branch-rate="0.9821">
<methods/>
<lines>
<line number="11" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="16" hits="1"/>
<line number="21" 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="31" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="39" 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="52" hits="1"/>
<line number="54" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="55" hits="1"/>
<line number="56" hits="1"/>
<line number="59" hits="1"/>
<line number="61" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="62" hits="1"/>
<line number="63" hits="1"/>
<line number="66" hits="1"/>
<line number="72" hits="1"/>
<line number="73" hits="1"/>
<line number="75" hits="1"/>
<line number="77" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<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="83" hits="1"/>
<line number="84" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="85" hits="1"/>
<line number="87" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="94" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="95" hits="1"/>
<line number="97" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="98" hits="1"/>
<line number="99" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
<line number="102" hits="1"/>
<line number="103" hits="1"/>
<line number="104" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="105" hits="1"/>
<line number="106" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="112" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="113" hits="1"/>
<line number="115" hits="1"/>
<line number="122" hits="1"/>
<line number="132" hits="1"/>
<line number="140" hits="1"/>
<line number="143" hits="1"/>
<line number="146" hits="1"/>
<line number="159" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="160" hits="1"/>
<line number="163" hits="1"/>
<line number="164" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="165" hits="1"/>
<line number="168" hits="1"/>
<line number="170" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="172" hits="1"/>
<line number="173" hits="1"/>
<line number="176" hits="1"/>
<line number="177" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="178" hits="1"/>
<line number="180" hits="1"/>
<line number="181" hits="1"/>
<line number="182" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="183" hits="1"/>
<line number="184" hits="1"/>
<line number="185" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="191"/>
<line number="186" hits="1"/>
<line number="187" hits="1"/>
<line number="188" hits="1"/>
<line number="191" hits="1"/>
<line number="192" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="193" hits="1"/>
<line number="194" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="195" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="196" hits="1"/>
<line number="197" hits="1"/>
<line number="200" 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="204" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="205" hits="1"/>
<line number="206" hits="0"/>
<line number="207" hits="0"/>
<line number="213" hits="1"/>
<line number="236" hits="1"/>
<line number="238" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="239" hits="1"/>
<line number="240" hits="1"/>
<line number="242" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="243" hits="1"/>
<line number="244" hits="1"/>
<line number="254" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="255" hits="1"/>
<line number="266" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="267" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="268" hits="1"/>
<line number="269" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="270" hits="1"/>
<line number="272" hits="1"/>
<line number="273" hits="1"/>
<line number="285" hits="1"/>
<line number="296" hits="1"/>
<line number="302" hits="1"/>
<line number="312" hits="1"/>
<line number="314" hits="1"/>
<line number="315" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="316" hits="1"/>
<line number="318" hits="1"/>
<line number="320" hits="1"/>
</lines>
</class>
<class name="health.py" filename="apps/worker/worker_app/tasks/health.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="4" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
</lines>
</class>
<class name="ingest.py" filename="apps/worker/worker_app/tasks/ingest.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="2" hits="0"/>
<line number="3" hits="0"/>
<line number="4" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="12" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="20" hits="0"/>
<line number="23" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="42,86"/>
<line number="42" hits="0"/>
<line number="44" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="58" hits="0"/>
<line number="61" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="62,72"/>
<line number="62" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="61,63"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="69" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="80" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="81,149"/>
<line number="81" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="86" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="87,121"/>
<line number="87" hits="0"/>
<line number="89" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="101" hits="0"/>
<line number="103" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="115" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="116,149"/>
<line number="116" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0"/>
<line number="121" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="123,149"/>
<line number="123" hits="0"/>
<line number="124" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="132" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,149"/>
<line number="135" hits="0"/>
<line number="137" hits="0"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0"/>
<line number="142" hits="0"/>
<line number="143" hits="0"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="147" hits="0"/>
<line number="149" hits="0"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="169" hits="0"/>
<line number="170" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="171,174"/>
<line number="171" hits="0"/>
<line number="174" hits="0"/>
<line number="175" hits="0"/>
<line number="176" hits="0"/>
<line number="177" hits="0"/>
<line number="180" hits="0"/>
<line number="181" hits="0"/>
<line number="184" hits="0"/>
<line number="185" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="186,187"/>
<line number="186" hits="0"/>
<line number="187" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="188,192"/>
<line number="188" hits="0"/>
<line number="192" hits="0"/>
<line number="193" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="199" hits="0"/>
<line number="200" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="201,204"/>
<line number="201" hits="0"/>
<line number="202" hits="0"/>
<line number="204" hits="0"/>
<line number="207" hits="0"/>
<line number="208" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="209,227"/>
<line number="209" hits="0"/>
<line number="210" hits="0"/>
<line number="212" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="215,227"/>
<line number="215" hits="0"/>
<line number="220" hits="0"/>
<line number="221" hits="0"/>
<line number="227" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="228,234"/>
<line number="228" hits="0"/>
<line number="229" hits="0"/>
<line number="230" hits="0"/>
<line number="231" hits="0"/>
<line number="234" hits="0"/>
<line number="236" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="238,280"/>
<line number="238" hits="0"/>
<line number="239" hits="0"/>
<line number="247" hits="0"/>
<line number="262" hits="0"/>
<line number="265" hits="0"/>
<line number="266" hits="0"/>
<line number="267" hits="0"/>
<line number="268" hits="0"/>
<line number="269" hits="0"/>
<line number="270" hits="0"/>
<line number="272" hits="0"/>
<line number="280" hits="0"/>
<line number="296" hits="0"/>
<line number="299" hits="0"/>
<line number="300" hits="0"/>
<line number="301" hits="0"/>
<line number="302" hits="0"/>
<line number="304" hits="0"/>
<line number="306" hits="0"/>
<line number="311" hits="0"/>
<line number="312" hits="0"/>
<line number="313" hits="0"/>
<line number="316" hits="0"/>
<line number="317" hits="0"/>
<line number="318" hits="0"/>
<line number="319" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="320,328"/>
<line number="320" hits="0"/>
<line number="321" hits="0"/>
<line number="322" hits="0"/>
<line number="323" hits="0"/>
<line number="324" hits="0"/>
<line number="325" hits="0"/>
<line number="326" hits="0"/>
<line number="328" hits="0"/>
<line number="334" hits="0"/>
</lines>
</class>
<class name="tts_synthesis.py" filename="apps/worker/worker_app/tasks/tts_synthesis.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="10" hits="0"/>
<line number="13" hits="0"/>
<line number="18" hits="0"/>
<line number="20" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="57" hits="0"/>
<line number="59" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="64,66"/>
<line number="64" hits="0"/>
<line number="66" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="71,73"/>
<line number="71" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="75,84"/>
<line number="75" hits="0"/>
<line number="76" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="77,84"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="83,84"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="89,91"/>
<line number="89" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="93,102"/>
<line number="93" hits="0"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="95,102"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="101,102"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="116" hits="0"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0"/>
<line number="120" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="128" hits="0"/>
<line number="129" hits="0"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="141,142"/>
<line number="141" hits="0"/>
<line number="142" hits="0"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="147,148"/>
<line number="147" hits="0"/>
<line number="148" hits="0"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="150,159"/>
<line number="150" hits="0"/>
<line number="151" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="152,159"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="157" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="158,159"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="161" hits="0"/>
<line number="162" hits="0"/>
<line number="163" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="164,165"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
<line number="166" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="167,176"/>
<line number="167" hits="0"/>
<line number="168" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="169,176"/>
<line number="169" hits="0"/>
<line number="170" hits="0"/>
<line number="171" hits="0"/>
<line number="172" hits="0"/>
<line number="173" hits="0"/>
<line number="174" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="175,176"/>
<line number="175" hits="0"/>
<line number="176" hits="0"/>
<line number="179" hits="0"/>
<line number="180" hits="0"/>
</lines>
</class>
<class name="voice_clone.py" filename="apps/worker/worker_app/tasks/voice_clone.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="19" hits="0"/>
<line number="21" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="67" hits="0"/>
<line number="69" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="74,76"/>
<line number="74" hits="0"/>
<line number="76" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="80" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="81,83"/>
<line number="81" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="85,94"/>
<line number="85" hits="0"/>
<line number="86" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="87,94"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="93,94"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="99,101"/>
<line number="99" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="103,112"/>
<line number="103" hits="0"/>
<line number="104" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="105,112"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="111,112"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
</lines>
</class>
<class name="voice_extraction.py" filename="apps/worker/worker_app/tasks/voice_extraction.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="4" hits="0"/>
<line number="5" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="17" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="23" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="28" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="57" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="79" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="89,90"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="98,99"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="107" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="112" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0"/>
<line number="120" hits="0"/>
<line number="121" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="124" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="125,126"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0"/>
<line number="128" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="132" hits="0"/>
<line number="133" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="134,135"/>
<line number="134" hits="0"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="137" hits="0"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0"/>
<line number="141" hits="0"/>
<line number="142" hits="0"/>
<line number="143" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="148" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="core" line-rate="0.3494" branch-rate="0" complexity="0">
<classes>
<class name="celery_app.py" filename="core/celery_app.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="2" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
</lines>
</class>
<class name="storage.py" filename="core/storage.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="14" hits="1"/>
</lines>
</class>
<class name="task_enqueue.py" filename="core/task_enqueue.py" complexity="0" line-rate="0.2703" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="2" hits="1"/>
<line number="4" hits="1"/>
<line number="6" hits="1"/>
<line number="9" hits="1"/>
<line number="10" 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="23" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="32" hits="1"/>
<line number="54" hits="0"/>
<line number="55" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="56,65"/>
<line number="56" hits="0"/>
<line number="62" hits="0"/>
<line number="65" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,66"/>
<line number="66" hits="0"/>
<line number="67" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,68"/>
<line number="68" hits="0"/>
<line number="74" hits="0"/>
<line number="77" hits="1"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="97" hits="1"/>
<line number="136" hits="0"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="138,149"/>
<line number="138" hits="0"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="150,163"/>
<line number="150" hits="0"/>
<line number="151" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="152,163"/>
<line number="152" hits="0"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="160" hits="0"/>
<line number="163" hits="0"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
<line number="166" hits="0"/>
<line number="173" hits="0"/>
<line number="174" hits="0"/>
<line number="175" hits="0"/>
<line number="176" hits="0"/>
<line number="177" hits="0"/>
<line number="184" hits="0"/>
<line number="188" hits="0"/>
<line number="189" hits="0"/>
<line number="191" hits="0"/>
<line number="192" hits="0"/>
<line number="194" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="195,212"/>
<line number="195" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="196,199"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="199" hits="0"/>
<line number="200" hits="0"/>
<line number="202" hits="0"/>
<line number="208" hits="0"/>
<line number="209" hits="0"/>
<line number="212" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="213,220"/>
<line number="213" hits="0"/>
<line number="220" hits="0"/>
<line number="221" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.adapters.redis" line-rate="0.298" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="packages/adapters/redis/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="7" hits="1"/>
<line number="14" hits="1"/>
</lines>
</class>
<class name="feature_flag_store.py" filename="packages/adapters/redis/feature_flag_store.py" complexity="0" line-rate="0.3459" branch-rate="0">
<methods/>
<lines>
<line number="15" 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="26" hits="1"/>
<line number="29" hits="1"/>
<line number="32" hits="1"/>
<line number="33" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="39" hits="1"/>
<line number="41" hits="1"/>
<line number="42" hits="0"/>
<line number="49" hits="1"/>
<line number="50" hits="1"/>
<line number="51" hits="0"/>
<line number="58" hits="1"/>
<line number="71" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="72,75"/>
<line number="72" hits="0"/>
<line number="75" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="76,79"/>
<line number="76" hits="0"/>
<line number="79" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="81,82"/>
<line number="81" hits="0"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="83,86"/>
<line number="83" hits="0"/>
<line number="86" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="87,93"/>
<line number="87" hits="0"/>
<line number="90" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="0"/>
<line number="98" hits="1"/>
<line number="101" hits="1"/>
<line number="102" hits="1"/>
<line number="106" hits="1"/>
<line number="107" hits="1"/>
<line number="111" hits="1"/>
<line number="112" hits="1"/>
<line number="116" hits="1"/>
<line number="117" hits="1"/>
<line number="121" hits="1"/>
<line number="123" hits="0"/>
<line number="126" hits="1"/>
<line number="129" hits="1"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="133" hits="1"/>
<line number="134" hits="0"/>
<line number="135" hits="0"/>
<line number="137" hits="1"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="141" hits="1"/>
<line number="142" hits="0"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="144,146"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="148" hits="1"/>
<line number="149" hits="0"/>
<line number="150" hits="0"/>
<line number="153" hits="1"/>
<line number="161" hits="1"/>
<line number="162" hits="0"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
<line number="167" hits="0"/>
<line number="168" hits="0"/>
<line number="169" hits="0"/>
<line number="171" hits="1"/>
<line number="172" hits="0"/>
<line number="174" hits="1"/>
<line number="175" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="176,177"/>
<line number="176" hits="0"/>
<line number="177" hits="0"/>
<line number="178" hits="0"/>
<line number="179" hits="0"/>
<line number="180" hits="0"/>
<line number="181" hits="0"/>
<line number="183" hits="1"/>
<line number="184" hits="0"/>
<line number="187" hits="0"/>
<line number="188" hits="0"/>
<line number="189" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="190,193"/>
<line number="190" hits="0"/>
<line number="193" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="197,199"/>
<line number="197" hits="0"/>
<line number="199" hits="0"/>
<line number="207" hits="0"/>
<line number="208" hits="0"/>
<line number="210" hits="0"/>
<line number="211" hits="0"/>
<line number="212" hits="0"/>
<line number="214" hits="0"/>
<line number="216" hits="1"/>
<line number="217" hits="0"/>
<line number="218" hits="0"/>
<line number="227" hits="0"/>
<line number="228" hits="0"/>
<line number="230" hits="1"/>
<line number="231" hits="0"/>
<line number="232" hits="0"/>
<line number="233" hits="0"/>
<line number="234" hits="0"/>
<line number="235" hits="0"/>
<line number="237" hits="1"/>
<line number="238" hits="0"/>
<line number="239" hits="0"/>
<line number="240" hits="0"/>
<line number="241" hits="0"/>
<line number="242" hits="0"/>
<line number="243" hits="0"/>
<line number="244" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="245,247"/>
<line number="245" hits="0"/>
<line number="246" hits="0"/>
<line number="247" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="242,248"/>
<line number="248" hits="0"/>
<line number="249" hits="0"/>
<line number="250" hits="0"/>
<line number="251" hits="0"/>
<line number="253" hits="1"/>
<line number="255" hits="0"/>
<line number="256" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="257,259"/>
<line number="257" hits="0"/>
<line number="259" hits="0"/>
</lines>
</class>
<class name="session_store.py" filename="packages/adapters/redis/session_store.py" complexity="0" line-rate="0.247" branch-rate="0">
<methods/>
<lines>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="14" hits="1"/>
<line number="16" hits="1"/>
<line number="19" hits="1"/>
<line number="22" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="26" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="31" hits="0"/>
<line number="33" hits="1"/>
<line number="34" hits="0"/>
<line number="36" hits="1"/>
<line number="37" hits="0"/>
<line number="39" hits="1"/>
<line number="40" hits="0"/>
<line number="42" hits="1"/>
<line number="43" hits="0"/>
<line number="45" hits="1"/>
<line number="46" hits="0"/>
<line number="48" hits="1"/>
<line number="49" hits="0"/>
<line number="51" hits="1"/>
<line number="52" hits="0"/>
<line number="54" hits="1"/>
<line number="55" hits="0"/>
<line number="58" hits="1"/>
<line number="61" hits="1"/>
<line number="69" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="70,72"/>
<line number="70" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="81" hits="1"/>
<line number="83" hits="0"/>
<line number="85" hits="1"/>
<line number="87" hits="0"/>
<line number="89" hits="1"/>
<line number="91" hits="0"/>
<line number="93" hits="1"/>
<line number="95" hits="0"/>
<line number="97" hits="1"/>
<line number="120" hits="0"/>
<line number="121" hits="0"/>
<line number="122" hits="0"/>
<line number="124" hits="0"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0"/>
<line number="143" hits="0"/>
<line number="144" hits="0"/>
<line number="147" hits="0"/>
<line number="148" hits="0"/>
<line number="149" hits="0"/>
<line number="151" hits="0"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="156" hits="1"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="168" hits="0"/>
<line number="170" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="171,172"/>
<line number="171" hits="0"/>
<line number="172" hits="0"/>
<line number="173" hits="0"/>
<line number="174" hits="0"/>
<line number="175" hits="0"/>
<line number="177" hits="1"/>
<line number="187" hits="0"/>
<line number="189" hits="0"/>
<line number="190" hits="0"/>
<line number="192" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="193,196"/>
<line number="193" hits="0"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="198" hits="0"/>
<line number="199" hits="0"/>
<line number="201" hits="1"/>
<line number="211" hits="0"/>
<line number="212" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0"/>
<line number="215" hits="0"/>
<line number="216" hits="0"/>
<line number="218" hits="1"/>
<line number="228" hits="0"/>
<line number="229" hits="0"/>
<line number="230" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="231,233"/>
<line number="231" hits="0"/>
<line number="233" hits="0"/>
<line number="235" hits="0"/>
<line number="236" hits="0"/>
<line number="238" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="239,242"/>
<line number="239" hits="0"/>
<line number="240" hits="0"/>
<line number="242" hits="0"/>
<line number="243" hits="0"/>
<line number="244" hits="0"/>
<line number="245" hits="0"/>
<line number="247" hits="1"/>
<line number="257" hits="0"/>
<line number="258" hits="0"/>
<line number="259" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="260,262"/>
<line number="260" hits="0"/>
<line number="262" hits="0"/>
<line number="265" hits="0"/>
<line number="266" hits="0"/>
<line number="269" hits="0"/>
<line number="270" hits="0"/>
<line number="271" hits="0"/>
<line number="274" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="275,279"/>
<line number="275" hits="0"/>
<line number="276" hits="0"/>
<line number="279" hits="0"/>
<line number="280" hits="0"/>
<line number="282" hits="0"/>
<line number="283" hits="0"/>
<line number="284" hits="0"/>
<line number="285" hits="0"/>
<line number="287" hits="1"/>
<line number="297" hits="0"/>
<line number="298" hits="0"/>
<line number="299" hits="0"/>
<line number="301" hits="0"/>
<line number="302" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="303,307"/>
<line number="303" hits="0"/>
<line number="304" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="302,305"/>
<line number="305" hits="0"/>
<line number="307" hits="0"/>
<line number="308" hits="0"/>
<line number="309" hits="0"/>
<line number="310" hits="0"/>
<line number="312" hits="1"/>
<line number="322" hits="0"/>
<line number="323" hits="0"/>
<line number="324" hits="0"/>
<line number="326" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="327,331"/>
<line number="327" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="326,328"/>
<line number="328" hits="0"/>
<line number="331" hits="0"/>
<line number="332" hits="0"/>
<line number="334" hits="0"/>
<line number="335" hits="0"/>
<line number="336" hits="0"/>
<line number="337" hits="0"/>
<line number="339" hits="1"/>
<line number="349" hits="0"/>
<line number="350" hits="0"/>
<line number="351" hits="0"/>
<line number="352" hits="0"/>
<line number="353" hits="0"/>
<line number="356" hits="1"/>
<line number="359" hits="1"/>
<line number="361" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="362,363"/>
<line number="362" hits="0"/>
<line number="363" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="364,365"/>
<line number="364" hits="0"/>
<line number="365" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.adapters.smtp" line-rate="0.2881" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="packages/adapters/smtp/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="8" hits="1"/>
</lines>
</class>
<class name="email_service.py" filename="packages/adapters/smtp/email_service.py" complexity="0" line-rate="0.2632" branch-rate="0">
<methods/>
<lines>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="11" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="16" hits="0"/>
<line number="18" hits="1"/>
<line number="19" hits="0"/>
<line number="22" hits="1"/>
<line number="25" hits="1"/>
<line number="32" hits="0"/>
<line number="34" hits="1"/>
<line number="57" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="64" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="65,68"/>
<line number="65" hits="0"/>
<line number="68" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="69,73"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="79,82"/>
<line number="79" hits="0"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="83,86"/>
<line number="83" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="88,89"/>
<line number="88" hits="0"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="90,92"/>
<line number="90" hits="0"/>
<line number="92" hits="0"/>
<line number="94" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="99" hits="1"/>
<line number="116" hits="0"/>
<line number="118" hits="0"/>
<line number="152" hits="0"/>
<line number="166" hits="0"/>
<line number="168" hits="1"/>
<line number="185" hits="0"/>
<line number="187" hits="0"/>
<line number="221" hits="0"/>
<line number="235" hits="0"/>
<line number="238" hits="1"/>
<line number="241" hits="1"/>
<line number="243" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="244,245"/>
<line number="244" hits="0"/>
<line number="245" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="246,247"/>
<line number="246" hits="0"/>
<line number="247" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.adapters.sqlalchemy_impl" line-rate="0.4608" branch-rate="0.03448" complexity="0">
<classes>
<class name="__init__.py" filename="packages/adapters/sqlalchemy_impl/__init__.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="10" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="20" hits="1"/>
<line number="22" hits="1"/>
</lines>
</class>
<class name="asset_library_repository.py" filename="packages/adapters/sqlalchemy_impl/asset_library_repository.py" complexity="0" line-rate="0.2549" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="0"/>
<line number="11" hits="1"/>
<line number="12" hits="0"/>
<line number="13" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="14,15"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="26" hits="1"/>
<line number="27" hits="0"/>
<line number="29" hits="1"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="45" hits="1"/>
<line number="46" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="60" hits="1"/>
<line number="61" hits="0"/>
<line number="62" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="63,70"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="72" hits="1"/>
<line number="73" hits="0"/>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="75,78"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="80" hits="1"/>
<line number="81" hits="0"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,83"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="87" hits="1"/>
<line number="88" hits="0"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,90"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
</lines>
</class>
<class name="asset_repository.py" filename="packages/adapters/sqlalchemy_impl/asset_repository.py" complexity="0" line-rate="0.1339" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="2" 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="12" hits="0"/>
<line number="14" hits="1"/>
<line number="21" hits="0"/>
<line number="22" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="23,24"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="27" hits="1"/>
<line number="34" hits="0"/>
<line number="35" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="36,37"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="40" hits="1"/>
<line number="48" hits="0"/>
<line number="51" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="52,53"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="56" hits="1"/>
<line number="62" hits="0"/>
<line number="65" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="66,67"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="69" hits="1"/>
<line number="77" hits="0"/>
<line number="80" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="81,82"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="85" hits="1"/>
<line number="91" hits="0"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="95,96"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="98" hits="1"/>
<line number="99" hits="0"/>
<line number="100" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="101,102"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="104" hits="1"/>
<line number="105" hits="0"/>
<line number="107" hits="1"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="137" hits="0"/>
<line number="139" hits="1"/>
<line number="140" hits="0"/>
<line number="141" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="142,143"/>
<line number="142" hits="0"/>
<line number="143" hits="0"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="147" hits="0"/>
<line number="148" hits="0"/>
<line number="149" hits="0"/>
<line number="150" hits="0"/>
<line number="151" hits="0"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="157" hits="0"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="160" hits="0"/>
<line number="161" hits="0"/>
<line number="162" hits="0"/>
<line number="163" hits="0"/>
<line number="165" hits="1"/>
<line number="166" hits="0"/>
<line number="167" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="168,171"/>
<line number="168" hits="0"/>
<line number="169" hits="0"/>
<line number="170" hits="0"/>
<line number="171" hits="0"/>
<line number="173" hits="1"/>
<line number="175" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="176,177"/>
<line number="176" hits="0"/>
<line number="177" hits="0"/>
<line number="179" hits="0"/>
<line number="180" hits="0"/>
<line number="185" hits="0"/>
<line number="186" hits="0"/>
<line number="188" hits="1"/>
<line number="190" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="191,192"/>
<line number="191" hits="0"/>
<line number="192" hits="0"/>
<line number="194" hits="0"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="198" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="199,209"/>
<line number="199" hits="0"/>
<line number="200" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="201,205"/>
<line number="201" hits="0"/>
<line number="202" hits="0"/>
<line number="203" hits="0"/>
<line number="204" hits="0"/>
<line number="205" hits="0"/>
<line number="206" hits="0"/>
<line number="207" hits="0"/>
<line number="208" hits="0"/>
<line number="209" hits="0"/>
<line number="210" hits="0"/>
<line number="212" hits="1"/>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="215,216"/>
<line number="215" hits="0"/>
<line number="216" hits="0"/>
<line number="218" hits="0"/>
<line number="219" hits="0"/>
<line number="220" hits="0"/>
<line number="221" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="223,236"/>
<line number="223" hits="0"/>
<line number="227" hits="0"/>
<line number="228" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="221,229"/>
<line number="229" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="230,232"/>
<line number="230" hits="0"/>
<line number="232" hits="0"/>
<line number="235" hits="0"/>
<line number="236" hits="0"/>
<line number="237" hits="0"/>
<line number="239" hits="1"/>
<line number="241" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="242,243"/>
<line number="242" hits="0"/>
<line number="243" hits="0"/>
<line number="245" hits="0"/>
<line number="246" hits="0"/>
<line number="247" hits="0"/>
<line number="248" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="250,258"/>
<line number="250" hits="0"/>
<line number="251" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="252,254"/>
<line number="252" hits="0"/>
<line number="254" hits="0"/>
<line number="257" hits="0"/>
<line number="258" hits="0"/>
<line number="259" hits="0"/>
<line number="261" hits="1"/>
<line number="262" hits="0"/>
<line number="263" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="264,265"/>
<line number="264" hits="0"/>
<line number="265" hits="0"/>
<line number="267" hits="1"/>
<line number="268" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="269,270"/>
<line number="269" hits="0"/>
<line number="270" hits="0"/>
<line number="271" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="272,273"/>
<line number="272" hits="0"/>
<line number="273" hits="0"/>
<line number="275" hits="1"/>
<line number="276" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="277,278"/>
<line number="277" hits="0"/>
<line number="278" hits="0"/>
<line number="280" hits="0"/>
<line number="285" hits="0"/>
<line number="287" hits="1"/>
<line number="301" hits="0"/>
<line number="304" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="305,306"/>
<line number="305" hits="0"/>
<line number="306" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="307,308"/>
<line number="307" hits="0"/>
<line number="308" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="309,310"/>
<line number="309" hits="0"/>
<line number="310" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="311,312"/>
<line number="311" hits="0"/>
<line number="312" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="313,314"/>
<line number="313" hits="0"/>
<line number="314" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="316,317"/>
<line number="316" hits="0"/>
<line number="317" hits="0"/>
<line number="318" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="319,320"/>
<line number="319" hits="0"/>
<line number="320" hits="0"/>
<line number="321" hits="0"/>
<line number="323" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="324,326"/>
<line number="324" hits="0"/>
<line number="325" hits="0"/>
<line number="326" hits="0"/>
<line number="328" hits="1"/>
<line number="329" hits="0"/>
<line number="330" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="331,335"/>
<line number="331" hits="0"/>
<line number="332" hits="0"/>
<line number="333" hits="0"/>
<line number="334" hits="0"/>
<line number="335" hits="0"/>
<line number="336" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="337,343"/>
<line number="337" hits="0"/>
<line number="343" hits="0"/>
<line number="347" hits="0"/>
<line number="372" hits="1"/>
<line number="374" hits="0"/>
<line number="375" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,376"/>
<line number="376" hits="0"/>
<line number="378" hits="1"/>
<line number="385" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="386,387"/>
<line number="386" hits="0"/>
<line number="387" hits="0"/>
<line number="390" hits="0"/>
<line number="391" hits="0"/>
<line number="398" hits="0"/>
<line number="399" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="400,401"/>
<line number="400" hits="0"/>
<line number="401" hits="0"/>
<line number="402" hits="0"/>
<line number="404" hits="1"/>
<line number="410" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="411,412"/>
<line number="411" hits="0"/>
<line number="412" hits="0"/>
<line number="420" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="421,422"/>
<line number="421" hits="0"/>
<line number="422" hits="0"/>
</lines>
</class>
<class name="classification_job_repository.py" filename="packages/adapters/sqlalchemy_impl/classification_job_repository.py" complexity="0" line-rate="0.2963" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="0"/>
<line number="11" hits="1"/>
<line number="12" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="27" hits="1"/>
<line number="28" hits="0"/>
<line number="29" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="30,31"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="43" hits="1"/>
<line number="44" hits="0"/>
<line number="45" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="46,47"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
</lines>
</class>
<class name="duplication_repository.py" filename="packages/adapters/sqlalchemy_impl/duplication_repository.py" complexity="0" line-rate="0.2766" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="0"/>
<line number="17" hits="1"/>
<line number="18" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="37" hits="1"/>
<line number="38" hits="0"/>
<line number="39" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="40,41"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="43" hits="1"/>
<line number="44" hits="0"/>
<line number="52" hits="0"/>
<line number="54" hits="1"/>
<line number="55" hits="0"/>
<line number="56" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="57,58"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="68,81"/>
<line number="68" hits="0"/>
<line number="79" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="84" hits="1"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="96" hits="1"/>
<line number="97" hits="0"/>
<line number="100" hits="0"/>
<line number="113" hits="0"/>
<line number="114" hits="0"/>
</lines>
</class>
<class name="edit_plan_clip_repository.py" filename="packages/adapters/sqlalchemy_impl/edit_plan_clip_repository.py" complexity="0" line-rate="0.25" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="19" hits="1"/>
<line number="28" hits="0"/>
<line number="31" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="32,33"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="37" hits="1"/>
<line number="39" hits="0"/>
<line number="40" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="41,42"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="44" hits="1"/>
<line number="46" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="67" hits="1"/>
<line number="69" hits="0"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="71,72"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="90" hits="1"/>
<line number="92" hits="0"/>
<line number="93" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="94,95"/>
<line number="94" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="99" hits="1"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="105" hits="1"/>
<line number="107" hits="0"/>
<line number="108" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="109,110"/>
<line number="109" hits="0"/>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="111,112"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="114" hits="1"/>
<line number="115" hits="1"/>
<line number="116" hits="0"/>
</lines>
</class>
<class name="edit_plan_repository.py" filename="packages/adapters/sqlalchemy_impl/edit_plan_repository.py" complexity="0" line-rate="0.2436" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="19" hits="1"/>
<line number="28" hits="0"/>
<line number="31" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="32,33"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="37" hits="1"/>
<line number="45" hits="0"/>
<line number="46" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="47,48"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="52" hits="1"/>
<line number="54" hits="0"/>
<line number="55" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="56,57"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="59" hits="1"/>
<line number="68" hits="0"/>
<line number="71" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="72,73"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="77" hits="1"/>
<line number="86" hits="0"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="90,91"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="1"/>
<line number="97" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="113" hits="1"/>
<line number="115" hits="0"/>
<line number="116" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="117,118"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0"/>
<line number="120" hits="0"/>
<line number="121" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="124" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0"/>
<line number="128" hits="0"/>
<line number="129" hits="0"/>
<line number="131" hits="1"/>
<line number="133" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,136"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="137" hits="0"/>
<line number="138" hits="0"/>
<line number="140" hits="1"/>
<line number="142" hits="0"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="144,145"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="147" hits="1"/>
<line number="148" hits="1"/>
<line number="149" hits="0"/>
</lines>
</class>
<class name="edit_template_repository.py" filename="packages/adapters/sqlalchemy_impl/edit_template_repository.py" complexity="0" line-rate="0.2319" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="0"/>
<line number="19" hits="1"/>
<line number="27" hits="0"/>
<line number="30" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="31,32"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="39" hits="1"/>
<line number="48" hits="0"/>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="50,51"/>
<line number="50" hits="0"/>
<line number="51" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="52,53"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="60" hits="1"/>
<line number="62" hits="0"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="64,65"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="67" hits="1"/>
<line number="69" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="86" hits="1"/>
<line number="88" hits="0"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="90,91"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="105" hits="1"/>
<line number="107" hits="0"/>
<line number="108" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="109,110"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="114" hits="1"/>
<line number="121" hits="0"/>
<line number="122" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="123,124"/>
<line number="123" hits="0"/>
<line number="124" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="125,126"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="128" hits="1"/>
<line number="129" hits="1"/>
<line number="130" hits="0"/>
</lines>
</class>
<class name="generated_video_repository.py" filename="packages/adapters/sqlalchemy_impl/generated_video_repository.py" complexity="0" line-rate="0.2198" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="0"/>
<line number="13" hits="1"/>
<line number="14" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="40" hits="1"/>
<line number="41" hits="0"/>
<line number="42" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="43,44"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="67" hits="1"/>
<line number="68" hits="0"/>
<line number="69" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="70,71"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="81" hits="1"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="85" hits="1"/>
<line number="86" hits="0"/>
<line number="91" hits="0"/>
<line number="93" hits="1"/>
<line number="95" hits="0"/>
<line number="97" hits="0"/>
<line number="100" hits="0"/>
<line number="103" hits="0"/>
<line number="105" hits="1"/>
<line number="116" hits="0"/>
<line number="118" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="119,120"/>
<line number="119" hits="0"/>
<line number="120" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="121,122"/>
<line number="121" hits="0"/>
<line number="122" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="123,124"/>
<line number="123" hits="0"/>
<line number="124" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="125,127"/>
<line number="125" hits="0"/>
<line number="127" hits="0"/>
<line number="129" hits="0"/>
<line number="136" hits="0"/>
<line number="138" hits="1"/>
<line number="140" hits="0"/>
<line number="141" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="142,143"/>
<line number="142" hits="0"/>
<line number="143" hits="0"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="148" hits="1"/>
<line number="150" hits="0"/>
<line number="151" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="152,153"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="158" hits="1"/>
<line number="160" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="161,162"/>
<line number="161" hits="0"/>
<line number="162" hits="0"/>
<line number="163" hits="0"/>
<line number="165" hits="1"/>
<line number="167" hits="0"/>
<line number="168" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="169,170"/>
<line number="169" hits="0"/>
<line number="170" hits="0"/>
<line number="171" hits="0"/>
<line number="172" hits="0"/>
<line number="174" hits="1"/>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="177,178"/>
<line number="177" hits="0"/>
<line number="178" hits="0"/>
<line number="183" hits="0"/>
<line number="184" hits="0"/>
<line number="186" hits="1"/>
<line number="187" hits="1"/>
<line number="188" hits="0"/>
</lines>
</class>
<class name="generation_task_repository.py" filename="packages/adapters/sqlalchemy_impl/generation_task_repository.py" complexity="0" line-rate="0.6667" branch-rate="0.3125">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
<line number="10" hits="1"/>
<line number="12" hits="1"/>
<line number="46" hits="1"/>
<line number="47" hits="1"/>
<line number="48" hits="1"/>
<line number="50" hits="1"/>
<line number="51" hits="1"/>
<line number="83" 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" branch="true" condition-coverage="50% (1/2)" missing-branches="90"/>
<line number="90" hits="0"/>
<line number="91" hits="1"/>
<line number="93" hits="1"/>
<line number="94" hits="0"/>
<line number="100" hits="0"/>
<line number="102" hits="1"/>
<line number="103" hits="0"/>
<line number="109" hits="0"/>
<line number="111" hits="1"/>
<line number="112" hits="0"/>
<line number="114" hits="1"/>
<line number="115" hits="0"/>
<line number="124" hits="1"/>
<line number="125" hits="0"/>
<line number="131" hits="1"/>
<line number="132" hits="0"/>
<line number="139" hits="0"/>
<line number="141" hits="1"/>
<line number="142" hits="0"/>
<line number="148" hits="0"/>
<line number="150" hits="1"/>
<line number="159" hits="0"/>
<line number="160" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="161,162"/>
<line number="161" hits="0"/>
<line number="162" hits="0"/>
<line number="163" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="164,165"/>
<line number="164" hits="0"/>
<line number="165" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="166,167"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="169" hits="1"/>
<line number="176" hits="0"/>
<line number="177" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="178,179"/>
<line number="178" hits="0"/>
<line number="179" hits="0"/>
<line number="181" hits="1"/>
<line number="190" hits="0"/>
<line number="191" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="192,193"/>
<line number="192" hits="0"/>
<line number="193" hits="0"/>
<line number="194" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="195,196"/>
<line number="195" hits="0"/>
<line number="196" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="197,198"/>
<line number="197" hits="0"/>
<line number="198" hits="0"/>
<line number="200" hits="1"/>
<line number="207" hits="0"/>
<line number="208" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="209,210"/>
<line number="209" hits="0"/>
<line number="210" hits="0"/>
<line number="212" hits="1"/>
<line number="213" hits="1"/>
<line number="214" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="215"/>
<line number="215" hits="0"/>
<line number="216" hits="1"/>
<line number="217" hits="1"/>
<line number="218" hits="1"/>
<line number="219" hits="1"/>
<line number="220" hits="1"/>
<line number="221" hits="1"/>
<line number="222" 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="229" hits="1"/>
<line number="230" hits="1"/>
<line number="231" hits="1"/>
<line number="232" hits="1"/>
<line number="233" hits="1"/>
<line number="234" hits="1"/>
<line number="235" hits="1"/>
<line number="236" hits="1"/>
<line number="237" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="239"/>
<line number="238" hits="1"/>
<line number="239" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="241"/>
<line number="240" hits="1"/>
<line number="241" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="243"/>
<line number="242" hits="1"/>
<line number="243" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="245"/>
<line number="244" hits="1"/>
<line number="245" hits="1"/>
<line number="246" hits="1"/>
<line number="247" hits="1"/>
<line number="249" hits="1"/>
<line number="258" hits="1"/>
<line number="260" hits="1"/>
<line number="261" hits="1"/>
<line number="269" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="270" hits="1"/>
<line number="271" 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="279" hits="1"/>
<line number="280" hits="1"/>
<line number="281" hits="1"/>
</lines>
</class>
<class name="ingest_job_repository.py" filename="packages/adapters/sqlalchemy_impl/ingest_job_repository.py" complexity="0" line-rate="0.3" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="0"/>
<line number="11" hits="1"/>
<line number="12" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="28" hits="1"/>
<line number="29" hits="0"/>
<line number="30" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="31,32"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="45" hits="1"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="49" hits="1"/>
<line number="50" hits="0"/>
<line number="51" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="52,53"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
</lines>
</class>
<class name="job_repository.py" filename="packages/adapters/sqlalchemy_impl/job_repository.py" complexity="0" line-rate="0.2" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="11" hits="1"/>
<line number="13" hits="0"/>
<line number="35" hits="1"/>
<line number="37" hits="0"/>
<line number="59" hits="1"/>
<line number="62" hits="1"/>
<line number="63" hits="0"/>
<line number="65" hits="1"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="71" hits="1"/>
<line number="72" hits="0"/>
<line number="73" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="74,75"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="77" hits="1"/>
<line number="78" hits="0"/>
<line number="79" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="80,81"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="100" hits="1"/>
<line number="109" hits="0"/>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="111,113"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="113" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="114,116"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="117" hits="0"/>
<line number="119" hits="1"/>
<line number="128" hits="0"/>
<line number="129" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="130,132"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="133,135"/>
<line number="133" hits="0"/>
<line number="134" hits="0"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="138" hits="1"/>
<line number="144" hits="0"/>
<line number="145" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="146,148"/>
<line number="146" hits="0"/>
<line number="147" hits="0"/>
<line number="148" hits="0"/>
<line number="150" hits="1"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="165" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="166,167"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
</lines>
</class>
<class name="models.py" filename="packages/adapters/sqlalchemy_impl/models.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="2" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="10" hits="1"/>
<line number="11" 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="25" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="31" hits="1"/>
<line number="33" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="38" 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="47" hits="1"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="1"/>
<line number="51" hits="1"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="56" hits="1"/>
<line number="57" hits="1"/>
<line number="59" hits="1"/>
<line number="60" hits="1"/>
<line number="61" hits="1"/>
<line number="62" hits="1"/>
<line number="63" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="1"/>
<line number="67" hits="1"/>
<line number="70" hits="1"/>
<line number="71" hits="1"/>
<line number="73" hits="1"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="76" hits="1"/>
<line number="77" hits="1"/>
<line number="79" hits="1"/>
<line number="81" hits="1"/>
<line number="83" hits="1"/>
<line number="84" hits="1"/>
<line number="85" 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="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="98" hits="1"/>
<line number="101" hits="1"/>
<line number="104" hits="1"/>
<line number="106" hits="1"/>
<line number="107" hits="1"/>
<line number="108" hits="1"/>
<line number="109" hits="1"/>
<line number="111" hits="1"/>
<line number="114" hits="1"/>
<line number="117" hits="1"/>
<line number="119" hits="1"/>
<line number="120" hits="1"/>
<line number="121" hits="1"/>
<line number="124" hits="1"/>
<line number="130" hits="1"/>
<line number="132" hits="1"/>
<line number="133" hits="1"/>
<line number="134" hits="1"/>
<line number="135" hits="1"/>
<line number="136" hits="1"/>
<line number="137" 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="143" hits="1"/>
<line number="146" 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="159" hits="1"/>
<line number="160" hits="1"/>
<line number="161" hits="1"/>
<line number="162" hits="1"/>
<line number="163" hits="1"/>
<line number="166" hits="1"/>
<line number="172" hits="1"/>
<line number="174" hits="1"/>
<line number="175" hits="1"/>
<line number="176" hits="1"/>
<line number="177" hits="1"/>
<line number="178" hits="1"/>
<line number="179" hits="1"/>
<line number="180" hits="1"/>
<line number="181" hits="1"/>
<line number="182" hits="1"/>
<line number="183" hits="1"/>
<line number="184" hits="1"/>
<line number="187" hits="1"/>
<line number="193" 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="202" hits="1"/>
<line number="203" hits="1"/>
<line number="204" hits="1"/>
<line number="205" hits="1"/>
<line number="206" hits="1"/>
<line number="209" hits="1"/>
<line number="215" hits="1"/>
<line number="217" hits="1"/>
<line number="218" hits="1"/>
<line number="219" hits="1"/>
<line number="220" hits="1"/>
<line number="221" hits="1"/>
<line number="222" 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="229" 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="238" 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="244" hits="1"/>
<line number="245" hits="1"/>
<line number="246" hits="1"/>
<line number="247" hits="1"/>
<line number="250" hits="1"/>
<line number="251" hits="1"/>
<line number="253" hits="1"/>
<line number="254" 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="264" hits="1"/>
<line number="265" 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="272" hits="1"/>
<line number="273" hits="1"/>
<line number="274" hits="1"/>
<line number="275" hits="1"/>
<line number="276" hits="1"/>
<line number="279" hits="1"/>
<line number="280" hits="1"/>
<line number="281" hits="1"/>
<line number="282" hits="1"/>
<line number="283" hits="1"/>
<line number="284" hits="1"/>
<line number="285" hits="1"/>
<line number="286" hits="1"/>
<line number="287" hits="1"/>
<line number="288" hits="1"/>
<line number="289" hits="1"/>
<line number="290" hits="1"/>
<line number="291" hits="1"/>
<line number="292" hits="1"/>
<line number="293" hits="1"/>
<line number="294" hits="1"/>
<line number="295" hits="1"/>
<line number="296" hits="1"/>
<line number="297" hits="1"/>
<line number="298" hits="1"/>
<line number="299" hits="1"/>
<line number="300" hits="1"/>
<line number="308" hits="1"/>
<line number="309" hits="1"/>
<line number="311" hits="1"/>
<line number="312" hits="1"/>
<line number="313" 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="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="326" hits="1"/>
<line number="327" hits="1"/>
<line number="328" hits="1"/>
<line number="329" hits="1"/>
<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"/>
<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="343" hits="1"/>
<line number="344" hits="1"/>
<line number="345" hits="1"/>
<line number="346" hits="1"/>
<line number="347" hits="1"/>
<line number="348" hits="1"/>
<line number="349" hits="1"/>
<line number="350" hits="1"/>
<line number="353" hits="1"/>
<line number="356" hits="1"/>
<line number="358" hits="1"/>
<line number="359" hits="1"/>
<line number="360" hits="1"/>
<line number="361" 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="367" hits="1"/>
<line number="368" hits="1"/>
<line number="369" hits="1"/>
<line number="370" hits="1"/>
<line number="371" hits="1"/>
<line number="372" hits="1"/>
<line number="373" hits="1"/>
<line number="376" hits="1"/>
<line number="377" hits="1"/>
<line number="379" hits="1"/>
<line number="380" hits="1"/>
<line number="381" hits="1"/>
<line number="382" hits="1"/>
<line number="383" hits="1"/>
<line number="384" hits="1"/>
<line number="385" hits="1"/>
<line number="386" hits="1"/>
<line number="387" hits="1"/>
<line number="388" hits="1"/>
<line number="389" hits="1"/>
<line number="390" hits="1"/>
<line number="391" hits="1"/>
<line number="392" hits="1"/>
<line number="393" hits="1"/>
<line number="394" hits="1"/>
<line number="397" hits="1"/>
<line number="398" hits="1"/>
<line number="400" hits="1"/>
<line number="401" hits="1"/>
<line number="402" hits="1"/>
<line number="403" hits="1"/>
<line number="404" hits="1"/>
<line number="405" hits="1"/>
<line number="406" hits="1"/>
<line number="407" hits="1"/>
<line number="408" hits="1"/>
<line number="409" hits="1"/>
<line number="410" hits="1"/>
<line number="411" hits="1"/>
<line number="412" hits="1"/>
<line number="415" hits="1"/>
<line number="416" 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="423" hits="1"/>
<line number="424" hits="1"/>
<line number="425" hits="1"/>
<line number="426" hits="1"/>
<line number="429" hits="1"/>
<line number="430" hits="1"/>
<line number="432" hits="1"/>
<line number="433" hits="1"/>
<line number="434" 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="440" hits="1"/>
<line number="441" hits="1"/>
<line number="444" hits="1"/>
<line number="445" hits="1"/>
<line number="447" hits="1"/>
<line number="448" hits="1"/>
<line number="449" hits="1"/>
<line number="450" hits="1"/>
<line number="451" hits="1"/>
<line number="452" hits="1"/>
<line number="455" hits="1"/>
<line number="456" hits="1"/>
<line number="458" 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="464" hits="1"/>
<line number="465" hits="1"/>
<line number="466" hits="1"/>
<line number="467" hits="1"/>
<line number="468" hits="1"/>
<line number="469" hits="1"/>
<line number="470" hits="1"/>
<line number="473" hits="1"/>
<line number="474" hits="1"/>
<line number="476" hits="1"/>
<line number="477" hits="1"/>
<line number="478" hits="1"/>
<line number="479" hits="1"/>
<line number="480" hits="1"/>
<line number="481" hits="1"/>
<line number="482" hits="1"/>
<line number="483" hits="1"/>
<line number="486" hits="1"/>
<line number="487" hits="1"/>
<line number="489" hits="1"/>
<line number="490" hits="1"/>
<line number="491" hits="1"/>
<line number="492" hits="1"/>
<line number="495" hits="1"/>
<line number="498" hits="1"/>
<line number="500" hits="1"/>
<line number="501" hits="1"/>
<line number="502" hits="1"/>
<line number="503" hits="1"/>
<line number="504" hits="1"/>
<line number="505" hits="1"/>
<line number="506" hits="1"/>
<line number="507" hits="1"/>
<line number="508" hits="1"/>
<line number="509" hits="1"/>
<line number="510" hits="1"/>
<line number="511" hits="1"/>
<line number="512" hits="1"/>
<line number="513" hits="1"/>
<line number="514" hits="1"/>
<line number="515" hits="1"/>
<line number="516" hits="1"/>
<line number="517" hits="1"/>
<line number="520" hits="1"/>
<line number="523" hits="1"/>
<line number="525" hits="1"/>
<line number="526" hits="1"/>
<line number="527" hits="1"/>
<line number="528" hits="1"/>
<line number="529" hits="1"/>
<line number="530" hits="1"/>
<line number="531" hits="1"/>
<line number="532" hits="1"/>
<line number="533" hits="1"/>
<line number="534" hits="1"/>
<line number="535" hits="1"/>
<line number="536" hits="1"/>
<line number="537" hits="1"/>
<line number="538" hits="1"/>
<line number="539" hits="1"/>
<line number="540" hits="1"/>
<line number="541" hits="1"/>
<line number="542" hits="1"/>
<line number="543" hits="1"/>
<line number="544" hits="1"/>
<line number="545" hits="1"/>
<line number="546" hits="1"/>
<line number="549" hits="1"/>
<line number="552" hits="1"/>
<line number="554" hits="1"/>
<line number="555" hits="1"/>
<line number="556" hits="1"/>
<line number="557" hits="1"/>
<line number="558" hits="1"/>
<line number="559" hits="1"/>
<line number="560" hits="1"/>
<line number="561" hits="1"/>
<line number="562" hits="1"/>
<line number="563" hits="1"/>
<line number="564" hits="1"/>
<line number="567" hits="1"/>
<line number="570" hits="1"/>
<line number="572" hits="1"/>
<line number="573" hits="1"/>
<line number="574" hits="1"/>
<line number="575" hits="1"/>
<line number="576" hits="1"/>
<line number="577" hits="1"/>
<line number="578" hits="1"/>
<line number="579" hits="1"/>
<line number="582" hits="1"/>
<line number="585" hits="1"/>
<line number="587" hits="1"/>
<line number="588" hits="1"/>
<line number="589" hits="1"/>
<line number="590" hits="1"/>
<line number="591" hits="1"/>
<line number="592" hits="1"/>
<line number="593" hits="1"/>
<line number="594" hits="1"/>
<line number="595" hits="1"/>
<line number="596" hits="1"/>
<line number="597" hits="1"/>
</lines>
</class>
<class name="project_repository.py" filename="packages/adapters/sqlalchemy_impl/project_repository.py" complexity="0" line-rate="0.2927" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="0"/>
<line number="11" hits="1"/>
<line number="12" hits="0"/>
<line number="21" hits="1"/>
<line number="23" hits="0"/>
<line number="24" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="25,30"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="30" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="42" hits="1"/>
<line number="43" hits="0"/>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="45,46"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="48" hits="1"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="53" hits="1"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="58" hits="0"/>
<line number="65" hits="0"/>
<line number="67" hits="1"/>
<line number="69" hits="0"/>
<line number="71" hits="1"/>
<line number="73" hits="0"/>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="75,76"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
</lines>
</class>
<class name="session.py" filename="packages/adapters/sqlalchemy_impl/session.py" complexity="0" line-rate="0.4286" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="21" hits="1"/>
<line number="30" hits="1"/>
<line number="38" hits="1"/>
<line number="45" hits="1"/>
<line number="47" hits="1"/>
<line number="48" hits="1"/>
<line number="51" hits="1"/>
<line number="53" hits="0"/>
<line number="56" hits="1"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="61" hits="1"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="64,65"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="73" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="74,75"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="77" hits="0"/>
<line number="80" hits="1"/>
<line number="86" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="87,89"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="0"/>
<line number="99" hits="0"/>
</lines>
</class>
<class name="tag_repository.py" filename="packages/adapters/sqlalchemy_impl/tag_repository.py" complexity="0" line-rate="0.3421" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="0"/>
<line number="13" hits="1"/>
<line number="14" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="24" hits="1"/>
<line number="25" hits="0"/>
<line number="26" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="27,28"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="30" hits="1"/>
<line number="31" hits="0"/>
<line number="32" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="33,34"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="36" hits="1"/>
<line number="42" hits="0"/>
<line number="50" hits="0"/>
<line number="52" hits="1"/>
<line number="53" hits="0"/>
<line number="55" hits="1"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="60,62"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="66" hits="1"/>
<line number="67" hits="1"/>
<line number="68" hits="0"/>
</lines>
</class>
<class name="template_clip_config_repository.py" filename="packages/adapters/sqlalchemy_impl/template_clip_config_repository.py" complexity="0" line-rate="0.254" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="17" hits="1"/>
<line number="20" hits="1"/>
<line number="21" hits="0"/>
<line number="23" hits="1"/>
<line number="32" hits="0"/>
<line number="35" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="36,37"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="41" hits="1"/>
<line number="43" hits="0"/>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="45,46"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="48" hits="1"/>
<line number="50" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="67" hits="1"/>
<line number="69" hits="0"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="71,72"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="86" hits="1"/>
<line number="88" hits="0"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="90,91"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="1"/>
<line number="102" hits="0"/>
<line number="107" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="108,109"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="111" hits="1"/>
<line number="113" hits="0"/>
<line number="114" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="115,116"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="118" hits="1"/>
<line number="119" hits="1"/>
<line number="120" hits="0"/>
</lines>
</class>
<class name="title_library_repository.py" filename="packages/adapters/sqlalchemy_impl/title_library_repository.py" complexity="0" line-rate="0.2623" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="0"/>
<line number="19" hits="1"/>
<line number="28" hits="0"/>
<line number="32" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="33,34"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="38" hits="1"/>
<line number="39" hits="0"/>
<line number="47" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="48,49"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="51" hits="1"/>
<line number="52" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="69" hits="1"/>
<line number="70" hits="0"/>
<line number="78" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="79,80"/>
<line number="79" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="91" hits="1"/>
<line number="92" hits="0"/>
<line number="100" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="101,102"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="106" hits="1"/>
<line number="108" hits="0"/>
<line number="110" hits="0"/>
<line number="118" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="119,120"/>
<line number="119" hits="0"/>
<line number="120" hits="0"/>
<line number="121" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="125" hits="1"/>
<line number="126" hits="0"/>
<line number="135" hits="1"/>
<line number="136" hits="1"/>
<line number="137" hits="0"/>
</lines>
</class>
<class name="user_repository.py" filename="packages/adapters/sqlalchemy_impl/user_repository.py" complexity="0" line-rate="0.25" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="0"/>
<line number="14" hits="1"/>
<line number="15" hits="0"/>
<line number="16" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="17,20"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="46" hits="1"/>
<line number="47" hits="0"/>
<line number="49" hits="1"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="53" hits="1"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="57" hits="1"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="61" hits="1"/>
<line number="62" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="63,64"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="67" hits="1"/>
<line number="68" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="69,70"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="73" hits="1"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="77" hits="1"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="81" hits="1"/>
<line number="82" hits="0"/>
<line number="83" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="84,85"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="89" hits="1"/>
<line number="90" hits="1"/>
<line number="91" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="92,93"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
</lines>
</class>
<class name="voice_clone_profile_repository.py" filename="packages/adapters/sqlalchemy_impl/voice_clone_profile_repository.py" complexity="0" line-rate="0.2429" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="0"/>
<line number="19" hits="1"/>
<line number="20" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="41" hits="1"/>
<line number="42" hits="0"/>
<line number="50" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="51,52"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="54" hits="1"/>
<line number="55" hits="0"/>
<line number="56" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="57,58"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="74" hits="1"/>
<line number="75" hits="0"/>
<line number="76" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="77,78"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="80" hits="0"/>
<line number="82" hits="1"/>
<line number="90" hits="0"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="95,96"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="100" hits="1"/>
<line number="101" hits="0"/>
<line number="105" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="106,107"/>
<line number="106" hits="0"/>
<line number="107" hits="0"/>
<line number="109" hits="1"/>
<line number="110" hits="0"/>
<line number="118" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="119,120"/>
<line number="119" hits="0"/>
<line number="120" hits="0"/>
<line number="122" hits="1"/>
<line number="124" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="125,126"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="137" hits="0"/>
<line number="139" hits="1"/>
<line number="140" hits="1"/>
<line number="141" hits="0"/>
</lines>
</class>
<class name="voice_library_repository.py" filename="packages/adapters/sqlalchemy_impl/voice_library_repository.py" complexity="0" line-rate="0.2542" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="0"/>
<line number="19" hits="1"/>
<line number="27" hits="0"/>
<line number="30" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="31,32"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="36" hits="1"/>
<line number="37" hits="0"/>
<line number="45" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="46,47"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="49" hits="1"/>
<line number="50" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="71" hits="1"/>
<line number="72" hits="0"/>
<line number="80" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="81,82"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0"/>
<line number="97" hits="1"/>
<line number="98" hits="0"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="107,109"/>
<line number="107" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="113" hits="1"/>
<line number="114" hits="0"/>
<line number="118" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="119,120"/>
<line number="119" hits="0"/>
<line number="120" hits="0"/>
<line number="122" hits="1"/>
<line number="123" hits="1"/>
<line number="124" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.application" line-rate="0.4288" branch-rate="0.03676" complexity="0">
<classes>
<class name="__init__.py" filename="packages/application/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="13" hits="1"/>
<line number="21" hits="1"/>
<line number="30" hits="1"/>
<line number="38" hits="1"/>
<line number="39" hits="1"/>
<line number="55" hits="1"/>
<line number="63" hits="1"/>
</lines>
</class>
<class name="asset_libraries.py" filename="packages/application/asset_libraries.py" complexity="0" line-rate="0.6818" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<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="16" hits="1"/>
<line number="17" hits="1"/>
<line number="18" hits="0"/>
<line number="20" hits="1"/>
<line number="21" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="22,23"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="0"/>
<line number="30" hits="1"/>
<line number="31" hits="0"/>
<line number="36" hits="0"/>
</lines>
</class>
<class name="assets.py" filename="packages/application/assets.py" complexity="0" line-rate="0.8056" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<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="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="0"/>
<line number="34" hits="1"/>
<line number="35" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="36,37"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="40" hits="1"/>
<line number="41" hits="1"/>
<line number="42" hits="0"/>
<line number="44" hits="1"/>
<line number="45" hits="0"/>
<line number="64" hits="0"/>
</lines>
</class>
<class name="classification_jobs.py" filename="packages/application/classification_jobs.py" complexity="0" line-rate="0.8" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<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="12" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="18" hits="0"/>
<line number="20" hits="1"/>
<line number="21" hits="0"/>
<line number="30" hits="0"/>
</lines>
</class>
<class name="cosyvoice_service.py" filename="packages/application/cosyvoice_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="13" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="20" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="25" hits="0"/>
<line number="28" hits="0"/>
<line number="31" hits="0"/>
<line number="34" hits="0"/>
<line number="37" hits="0"/>
<line number="40" hits="0"/>
<line number="43" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="64" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="98" hits="0"/>
<line number="119" hits="0"/>
<line number="121" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="124" hits="0"/>
<line number="125" hits="0"/>
<line number="130" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="131,142"/>
<line number="131" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,136"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="142" hits="0"/>
<line number="145" hits="0"/>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,149"/>
<line number="149" hits="0"/>
<line number="150" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="151,155"/>
<line number="151" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="152,154"/>
<line number="152" hits="0"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="167" hits="0"/>
<line number="168" hits="0"/>
<line number="170" hits="0"/>
<line number="171" hits="0"/>
<line number="173" hits="0"/>
<line number="175" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,176"/>
<line number="176" hits="0"/>
<line number="180" hits="0"/>
<line number="186" hits="0"/>
<line number="190" hits="0"/>
<line number="217" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="218,219"/>
<line number="218" hits="0"/>
<line number="219" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="220,224"/>
<line number="220" hits="0"/>
<line number="224" hits="0"/>
<line number="227" hits="0"/>
<line number="229" hits="0"/>
<line number="233" hits="0"/>
<line number="234" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="235,241"/>
<line number="235" hits="0"/>
<line number="236" hits="0"/>
<line number="237" hits="0"/>
<line number="238" hits="0"/>
<line number="239" hits="0"/>
<line number="241" hits="0"/>
<line number="252" hits="0"/>
<line number="259" hits="0"/>
<line number="260" hits="0"/>
<line number="261" hits="0"/>
<line number="262" hits="0"/>
<line number="264" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="265,267"/>
<line number="265" hits="0"/>
<line number="267" hits="0"/>
<line number="273" hits="0"/>
<line number="288" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="289,291"/>
<line number="289" hits="0"/>
<line number="291" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="292,294"/>
<line number="292" hits="0"/>
<line number="294" hits="0"/>
<line number="302" hits="0"/>
<line number="309" hits="0"/>
<line number="310" hits="0"/>
<line number="318" hits="0"/>
<line number="329" hits="0"/>
<line number="330" hits="0"/>
<line number="336" hits="0"/>
<line number="352" hits="0"/>
<line number="353" hits="0"/>
<line number="355" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="356,376"/>
<line number="356" hits="0"/>
<line number="357" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="358,360"/>
<line number="358" hits="0"/>
<line number="360" hits="0"/>
<line number="361" hits="0"/>
<line number="363" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="364,365"/>
<line number="364" hits="0"/>
<line number="365" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="366,367"/>
<line number="366" hits="0"/>
<line number="367" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="369,372"/>
<line number="369" hits="0"/>
<line number="370" hits="0"/>
<line number="372" hits="0"/>
<line number="373" hits="0"/>
<line number="374" hits="0"/>
<line number="376" hits="0"/>
<line number="378" hits="0"/>
<line number="406" hits="0"/>
<line number="413" hits="0"/>
<line number="414" hits="0"/>
<line number="417" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="418,421"/>
<line number="418" hits="0"/>
<line number="421" hits="0"/>
<line number="422" hits="0"/>
<line number="426" hits="0"/>
<line number="457" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="458,459"/>
<line number="458" hits="0"/>
<line number="459" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="460,461"/>
<line number="460" hits="0"/>
<line number="461" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="462,464"/>
<line number="462" hits="0"/>
<line number="464" hits="0"/>
<line number="466" hits="0"/>
<line number="478" hits="0"/>
<line number="485" hits="0"/>
<line number="486" hits="0"/>
<line number="487" hits="0"/>
<line number="488" hits="0"/>
<line number="490" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="491,493"/>
<line number="491" hits="0"/>
<line number="493" hits="0"/>
<line number="501" hits="0"/>
<line number="510" hits="0"/>
<line number="512" hits="0"/>
<line number="544" hits="0"/>
<line number="553" hits="0"/>
<line number="562" hits="0"/>
<line number="572" hits="0"/>
<line number="574" hits="0"/>
<line number="576" hits="0"/>
<line number="578" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="579,580"/>
<line number="579" hits="0"/>
<line number="580" hits="0"/>
<line number="582" hits="0"/>
<line number="607" hits="0"/>
<line number="608" hits="0"/>
<line number="614" hits="0"/>
<line number="616" hits="0"/>
<line number="617" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="618,621"/>
<line number="618" hits="0"/>
<line number="619" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="620,621"/>
<line number="620" hits="0"/>
<line number="621" hits="0"/>
<line number="629" hits="0"/>
<line number="631" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="632,700"/>
<line number="632" hits="0"/>
<line number="633" hits="0"/>
<line number="642" hits="0"/>
<line number="649" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="650,651"/>
<line number="650" hits="0"/>
<line number="651" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="652,653"/>
<line number="652" hits="0"/>
<line number="653" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="655,663"/>
<line number="655" hits="0"/>
<line number="656" hits="0"/>
<line number="657" hits="0"/>
<line number="658" hits="0"/>
<line number="659" hits="0"/>
<line number="660" hits="0"/>
<line number="661" hits="0"/>
<line number="662" hits="0"/>
<line number="663" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="665,674"/>
<line number="665" hits="0"/>
<line number="666" hits="0"/>
<line number="674" hits="0"/>
<line number="678" hits="0"/>
<line number="679" hits="0"/>
<line number="680" hits="0"/>
<line number="685" hits="0"/>
<line number="686" hits="0"/>
<line number="687" hits="0"/>
<line number="695" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="631,696"/>
<line number="696" hits="0"/>
<line number="697" hits="0"/>
<line number="700" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="701,702"/>
<line number="701" hits="0"/>
<line number="702" hits="0"/>
</lines>
</class>
<class name="duplication.py" filename="packages/application/duplication.py" complexity="0" line-rate="0.549" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="11" 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="26" hits="1"/>
<line number="27" hits="0"/>
<line number="29" hits="1"/>
<line number="30" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="42" hits="1"/>
<line number="45" hits="1"/>
<line number="46" hits="0"/>
<line number="48" hits="1"/>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="50,51"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="54" hits="1"/>
<line number="57" hits="1"/>
<line number="58" hits="0"/>
<line number="60" hits="1"/>
<line number="61" hits="0"/>
<line number="64" hits="1"/>
<line number="67" hits="1"/>
<line number="68" hits="0"/>
<line number="70" hits="1"/>
<line number="71" hits="0"/>
<line number="74" hits="1"/>
<line number="81" hits="1"/>
<line number="82" hits="0"/>
<line number="84" hits="1"/>
<line number="97" hits="0"/>
<line number="98" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="99,100"/>
<line number="99" hits="0"/>
<line number="100" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="101,102"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
</lines>
</class>
<class name="generated_videos.py" filename="packages/application/generated_videos.py" complexity="0" line-rate="0.5094" branch-rate="0.07143">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="0"/>
<line number="11" hits="1"/>
<line number="12" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="13,14"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="0"/>
<line number="21" hits="1"/>
<line number="31" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="32,33"/>
<line number="32" hits="0"/>
<line number="33" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="34,35"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="45" hits="1"/>
<line number="46" hits="1"/>
<line number="47" hits="0"/>
<line number="49" hits="1"/>
<line number="50" hits="0"/>
<line number="53" hits="1"/>
<line number="54" hits="1"/>
<line number="55" hits="1"/>
<line number="57" hits="1"/>
<line number="58" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="59"/>
<line number="59" hits="0"/>
<line number="60" hits="1"/>
<line number="63" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="0"/>
<line number="67" hits="1"/>
<line number="68" hits="0"/>
<line number="69" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="70,71"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="76" hits="0"/>
<line number="78" hits="1"/>
<line number="79" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="80,81"/>
<line number="80" hits="0"/>
<line number="81" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="82,83"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="86" hits="1"/>
<line number="87" hits="1"/>
<line number="88" hits="0"/>
<line number="90" hits="1"/>
<line number="91" hits="0"/>
</lines>
</class>
<class name="generation_tasks.py" filename="packages/application/generation_tasks.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<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="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="25" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="32" hits="1"/>
<line number="33" hits="1"/>
<line number="34" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="62" 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="73" hits="1"/>
<line number="74" hits="1"/>
<line number="77" hits="1"/>
<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="92" hits="1"/>
<line number="94" hits="1"/>
<line number="102" hits="1"/>
<line number="108" hits="1"/>
<line number="112" hits="1"/>
<line number="115" hits="1"/>
<line number="121" hits="1"/>
<line number="122" hits="1"/>
<line number="124" hits="1"/>
<line number="125" hits="1"/>
<line number="126" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="127" hits="1"/>
<line number="128" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="129" hits="1"/>
<line number="130" hits="1"/>
<line number="131" hits="1"/>
<line number="132" hits="1"/>
</lines>
</class>
<class name="ingest_jobs.py" filename="packages/application/ingest_jobs.py" complexity="0" line-rate="0.8125" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<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="17" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="0"/>
<line number="21" hits="1"/>
<line number="22" hits="0"/>
<line number="28" hits="0"/>
</lines>
</class>
<class name="jobs.py" filename="packages/application/jobs.py" complexity="0" line-rate="0.4603" branch-rate="0">
<methods/>
<lines>
<line number="6" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="15" hits="1"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="25" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="33" hits="1"/>
<line number="34" 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="46" hits="1"/>
<line number="47" hits="1"/>
<line number="50" hits="1"/>
<line number="51" hits="1"/>
<line number="54" hits="1"/>
<line number="55" hits="1"/>
<line number="61" hits="1"/>
<line number="67" hits="1"/>
<line number="68" hits="0"/>
<line number="70" hits="1"/>
<line number="71" hits="0"/>
<line number="79" hits="0"/>
<line number="85" hits="0"/>
<line number="88" hits="1"/>
<line number="94" hits="1"/>
<line number="95" hits="0"/>
<line number="97" hits="1"/>
<line number="98" hits="0"/>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="100,101"/>
<line number="100" hits="0"/>
<line number="101" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,104"/>
<line number="102" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="109" hits="1"/>
<line number="112" hits="1"/>
<line number="113" hits="0"/>
<line number="115" hits="1"/>
<line number="116" hits="0"/>
<line number="117" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="118,119"/>
<line number="118" hits="0"/>
<line number="119" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="120,122"/>
<line number="120" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="126" hits="1"/>
<line number="129" hits="1"/>
<line number="130" hits="0"/>
<line number="132" hits="1"/>
<line number="133" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,136"/>
<line number="135" hits="0"/>
<line number="136" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="137,139"/>
<line number="137" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0"/>
<line number="141" hits="0"/>
<line number="144" hits="1"/>
<line number="147" hits="1"/>
<line number="148" hits="0"/>
<line number="150" hits="1"/>
<line number="151" hits="0"/>
<line number="152" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="153,155"/>
<line number="153" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="157" hits="0"/>
<line number="160" hits="1"/>
<line number="167" hits="1"/>
<line number="168" hits="0"/>
<line number="170" hits="1"/>
<line number="171" hits="0"/>
<line number="172" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="173,175"/>
<line number="173" hits="0"/>
<line number="175" hits="0"/>
<line number="176" hits="0"/>
<line number="177" hits="0"/>
<line number="180" hits="1"/>
<line number="183" hits="1"/>
<line number="184" hits="0"/>
<line number="186" hits="1"/>
<line number="187" hits="0"/>
<line number="188" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="189,190"/>
<line number="189" hits="0"/>
<line number="190" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="191,193"/>
<line number="191" hits="0"/>
<line number="193" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="198" hits="1"/>
<line number="201" hits="1"/>
<line number="202" hits="0"/>
<line number="204" hits="1"/>
<line number="205" hits="0"/>
<line number="208" hits="1"/>
<line number="211" hits="1"/>
<line number="212" hits="0"/>
<line number="214" hits="1"/>
<line number="224" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="225,232"/>
<line number="225" hits="0"/>
<line number="232" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="233,240"/>
<line number="233" hits="0"/>
<line number="240" hits="0"/>
<line number="243" hits="1"/>
<line number="246" hits="1"/>
<line number="247" hits="0"/>
<line number="249" hits="1"/>
<line number="250" hits="0"/>
<line number="251" hits="0"/>
<line number="252" hits="0"/>
<line number="253" hits="0"/>
<line number="254" hits="0"/>
<line number="256" hits="0"/>
</lines>
</class>
<class name="projects.py" filename="packages/application/projects.py" complexity="0" line-rate="0.4062" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="15" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="0"/>
<line number="19" hits="1"/>
<line number="20" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="21,22"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="25" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="0"/>
<line number="29" hits="1"/>
<line number="30" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="31,32"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="0"/>
<line number="39" hits="1"/>
<line number="40" hits="0"/>
<line number="45" hits="0"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="0"/>
<line number="52" hits="1"/>
<line number="53" hits="0"/>
<line number="54" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="55,56"/>
<line number="55" hits="0"/>
<line number="56" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="57,58"/>
<line number="57" hits="0"/>
<line number="58" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="59,61"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="0"/>
<line number="68" hits="1"/>
<line number="69" hits="0"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="71,72"/>
<line number="71" hits="0"/>
<line number="72" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="73,74"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="77" hits="1"/>
<line number="78" hits="1"/>
<line number="79" hits="0"/>
<line number="81" hits="1"/>
<line number="82" hits="0"/>
<line number="83" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="84,85"/>
<line number="84" hits="0"/>
<line number="85" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="86,87"/>
<line number="86" hits="0"/>
<line number="87" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="88,90"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.application.auth" line-rate="0" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="packages/application/auth/__init__.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="8" hits="0"/>
<line number="17" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="29" hits="0"/>
<line number="37" hits="0"/>
</lines>
</class>
<class name="bind_contact_use_case.py" filename="packages/application/auth/bind_contact_use_case.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="5" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
<line number="18" hits="0"/>
<line number="20" hits="0"/>
<line number="23" hits="0"/>
<line number="26" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="41" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="60" hits="0"/>
<line number="63" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="76" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="77,80"/>
<line number="77" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="82,85"/>
<line number="82" hits="0"/>
<line number="85" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="86,111"/>
<line number="86" hits="0"/>
<line number="87" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="88,90"/>
<line number="88" hits="0"/>
<line number="90" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="91,94"/>
<line number="91" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="96,99"/>
<line number="96" hits="0"/>
<line number="99" hits="0"/>
<line number="104" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="105,107"/>
<line number="105" hits="0"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="111" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="112,137"/>
<line number="112" hits="0"/>
<line number="113" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="114,116"/>
<line number="114" hits="0"/>
<line number="116" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="117,120"/>
<line number="117" hits="0"/>
<line number="120" hits="0"/>
<line number="121" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="122,125"/>
<line number="122" hits="0"/>
<line number="125" hits="0"/>
<line number="130" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="131,133"/>
<line number="131" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="138,141"/>
<line number="138" hits="0"/>
<line number="141" hits="0"/>
<line number="143" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="147" hits="0"/>
<line number="150" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="159" hits="0"/>
<line number="162" hits="0"/>
<line number="163" hits="0"/>
<line number="164" hits="0"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="173" hits="0"/>
<line number="176" hits="0"/>
<line number="182" hits="0"/>
<line number="183" hits="0"/>
<line number="184" hits="0"/>
<line number="186" hits="0"/>
<line number="189" hits="0"/>
<line number="191" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="192,197"/>
<line number="192" hits="0"/>
<line number="193" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="194,195"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0"/>
<line number="197" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="198,204"/>
<line number="198" hits="0"/>
<line number="199" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="200,201"/>
<line number="200" hits="0"/>
<line number="201" hits="0"/>
<line number="202" hits="0"/>
<line number="204" hits="0"/>
<line number="207" hits="0"/>
<line number="208" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="209,212"/>
<line number="209" hits="0"/>
<line number="212" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="213,214"/>
<line number="213" hits="0"/>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="215,220"/>
<line number="215" hits="0"/>
<line number="216" hits="0"/>
<line number="217" hits="0"/>
<line number="220" hits="0"/>
<line number="221" hits="0"/>
<line number="229" hits="0"/>
<line number="230" hits="0"/>
<line number="231" hits="0"/>
</lines>
</class>
<class name="jwt_handler.py" filename="packages/application/auth/jwt_handler.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="15" hits="0"/>
<line number="17" hits="0"/>
<line number="20" hits="0"/>
<line number="28" hits="0"/>
<line number="37" hits="0"/>
<line number="42" hits="0"/>
<line number="44" hits="0"/>
<line number="61" hits="0"/>
<line number="67" hits="0"/>
<line number="81" hits="0"/>
<line number="83" hits="0"/>
<line number="93" hits="0"/>
<line number="97" hits="0"/>
<line number="100" hits="0"/>
<line number="117" hits="0"/>
<line number="122" hits="0"/>
<line number="125" hits="0"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="136,137"/>
<line number="136" hits="0"/>
<line number="137" hits="0"/>
</lines>
</class>
<class name="jwt_service.py" filename="packages/application/auth/jwt_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="4" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="12" hits="0"/>
<line number="15" hits="0"/>
<line number="34" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="35,37"/>
<line number="35" hits="0"/>
<line number="37" hits="0"/>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="45,49"/>
<line number="45" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="55" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="62" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="67,72"/>
<line number="67" hits="0"/>
<line number="72" hits="0"/>
<line number="74" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="94" hits="0"/>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="103,105"/>
<line number="103" hits="0"/>
<line number="105" hits="0"/>
<line number="107" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0"/>
<line number="121" hits="0"/>
<line number="129" hits="0"/>
<line number="131" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="151" hits="0"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="157" hits="0"/>
<line number="167" hits="0"/>
<line number="169" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="170,172"/>
<line number="170" hits="0"/>
<line number="172" hits="0"/>
<line number="174" hits="0"/>
<line number="189" hits="0"/>
<line number="191" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="192,194"/>
<line number="192" hits="0"/>
<line number="194" hits="0"/>
<line number="202" hits="0"/>
<line number="205" hits="0"/>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="208,218"/>
<line number="208" hits="0"/>
<line number="210" hits="0"/>
<line number="211" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="212,213"/>
<line number="212" hits="0"/>
<line number="213" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="214,215"/>
<line number="214" hits="0"/>
<line number="215" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="216,217"/>
<line number="216" hits="0"/>
<line number="217" hits="0"/>
<line number="218" hits="0"/>
<line number="221" hits="0"/>
<line number="222" hits="0"/>
<line number="223" hits="0"/>
<line number="226" hits="0"/>
</lines>
</class>
<class name="login_use_case.py" filename="packages/application/auth/login_use_case.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="10" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="17" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="30" hits="0"/>
<line number="33" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="46" hits="0"/>
<line number="49" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="68" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="76" hits="0"/>
<line number="86" hits="0"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="89,91"/>
<line number="89" hits="0"/>
<line number="91" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="92,95"/>
<line number="92" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="97,100"/>
<line number="97" hits="0"/>
<line number="100" hits="0"/>
<line number="101" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,107"/>
<line number="102" hits="0"/>
<line number="103" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="104,107"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="107" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="108,111"/>
<line number="108" hits="0"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="123" hits="0"/>
<line number="128" hits="0"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0"/>
<line number="143" hits="0"/>
<line number="156" hits="0"/>
<line number="157" hits="0"/>
<line number="160" hits="0"/>
<line number="163" hits="0"/>
<line number="164" hits="0"/>
<line number="167" hits="0"/>
<line number="170" hits="0"/>
<line number="171" hits="0"/>
<line number="172" hits="0"/>
<line number="174" hits="0"/>
<line number="175" hits="0"/>
<line number="177" hits="0"/>
<line number="187" hits="0"/>
<line number="188" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="189,194"/>
<line number="189" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="196,198"/>
<line number="196" hits="0"/>
<line number="198" hits="0"/>
<line number="199" hits="0"/>
<line number="200" hits="0"/>
<line number="202" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="203,206"/>
<line number="203" hits="0"/>
<line number="206" hits="0"/>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="208,211"/>
<line number="208" hits="0"/>
<line number="211" hits="0"/>
<line number="212" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="213,216"/>
<line number="213" hits="0"/>
<line number="216" hits="0"/>
<line number="217" hits="0"/>
<line number="224" hits="0"/>
<line number="231" hits="0"/>
<line number="244" hits="0"/>
<line number="245" hits="0"/>
<line number="247" hits="0"/>
<line number="260" hits="0"/>
<line number="263" hits="0"/>
<line number="266" hits="0"/>
<line number="272" hits="0"/>
<line number="273" hits="0"/>
<line number="274" hits="0"/>
<line number="277" hits="0"/>
<line number="280" hits="0"/>
<line number="281" hits="0"/>
<line number="283" hits="0"/>
<line number="293" hits="0"/>
<line number="294" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="296,300"/>
<line number="296" hits="0"/>
<line number="297" hits="0"/>
<line number="300" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="301,303"/>
<line number="301" hits="0"/>
<line number="303" hits="0"/>
<line number="304" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="305,307"/>
<line number="305" hits="0"/>
<line number="307" hits="0"/>
<line number="309" hits="0"/>
<line number="310" hits="0"/>
</lines>
</class>
<class name="password_handler.py" filename="packages/application/auth/password_handler.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="15" hits="0"/>
<line number="17" hits="0"/>
<line number="20" hits="0"/>
<line number="28" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="44" hits="0"/>
<line number="57" hits="0"/>
<line number="59" hits="0"/>
<line number="70" hits="0"/>
<line number="72" hits="0"/>
<line number="82" hits="0"/>
<line number="84" hits="0"/>
<line number="94" hits="0"/>
<line number="98" hits="0"/>
<line number="101" hits="0"/>
<line number="112" hits="0"/>
<line number="113" hits="0"/>
<line number="116" hits="0"/>
<line number="124" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="125,126"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
</lines>
</class>
<class name="password_hasher.py" filename="packages/application/auth/password_hasher.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="10" hits="0"/>
<line number="13" hits="0"/>
<line number="16" hits="0"/>
<line number="24" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="25,27"/>
<line number="25" hits="0"/>
<line number="27" hits="0"/>
<line number="29" hits="0"/>
<line number="42" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="43,46"/>
<line number="43" hits="0"/>
<line number="46" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="53" hits="0"/>
<line number="55" hits="0"/>
<line number="66" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="67,69"/>
<line number="67" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="76" hits="0"/>
<line number="78" hits="0"/>
<line number="89" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="95,98"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="103" hits="0"/>
<line number="106" hits="0"/>
<line number="124" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0"/>
<line number="128" hits="0"/>
<line number="130" hits="0"/>
<line number="140" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="141,143"/>
<line number="141" hits="0"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="144,146"/>
<line number="144" hits="0"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="147,149"/>
<line number="147" hits="0"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="150,152"/>
<line number="150" hits="0"/>
<line number="152" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="153,155"/>
<line number="153" hits="0"/>
<line number="155" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="156,160"/>
<line number="156" hits="0"/>
<line number="157" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="158,160"/>
<line number="158" hits="0"/>
<line number="160" hits="0"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
</lines>
</class>
<class name="password_reset_use_case.py" filename="packages/application/auth/password_reset_use_case.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="13" hits="0"/>
<line number="16" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="23" hits="0"/>
<line number="26" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="47" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="59,62"/>
<line number="59" hits="0"/>
<line number="62" hits="0"/>
<line number="65" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="66,69"/>
<line number="66" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="77" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="87" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="88,93"/>
<line number="88" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="99" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="107" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="113" hits="0"/>
<line number="123" hits="0"/>
<line number="124" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="125,127"/>
<line number="125" hits="0"/>
<line number="127" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="128,131"/>
<line number="128" hits="0"/>
<line number="131" hits="0"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="133,136"/>
<line number="133" hits="0"/>
<line number="136" hits="0"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="138,141"/>
<line number="138" hits="0"/>
<line number="141" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="142,149"/>
<line number="142" hits="0"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="144,145"/>
<line number="144" hits="0"/>
<line number="145" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="146,149"/>
<line number="146" hits="0"/>
<line number="149" hits="0"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="157" hits="0"/>
<line number="159" hits="0"/>
<line number="161" hits="0"/>
<line number="162" hits="0"/>
</lines>
</class>
<class name="register_user_use_case.py" filename="packages/application/auth/register_user_use_case.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="15" hits="0"/>
<line number="18" hits="0"/>
<line number="21" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="34" hits="0"/>
<line number="37" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="52" hits="0"/>
<line number="55" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="72" hits="0"/>
<line number="82" hits="0"/>
<line number="84" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="85,87"/>
<line number="85" hits="0"/>
<line number="87" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="88,90"/>
<line number="88" hits="0"/>
<line number="90" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="91,94"/>
<line number="91" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="96,99"/>
<line number="96" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="101,104"/>
<line number="101" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="106,109"/>
<line number="106" hits="0"/>
<line number="109" hits="0"/>
<line number="112" hits="0"/>
<line number="115" hits="0"/>
<line number="127" hits="0"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0"/>
<line number="139" hits="0"/>
<line number="141" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="142,147"/>
<line number="142" hits="0"/>
<line number="143" hits="0"/>
<line number="144" hits="0"/>
<line number="147" hits="0"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="162" hits="0"/>
<line number="165" hits="0"/>
<line number="166" hits="0"/>
<line number="169" hits="0"/>
<line number="172" hits="0"/>
<line number="173" hits="0"/>
<line number="175" hits="0"/>
<line number="185" hits="0"/>
<line number="186" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="187,190"/>
<line number="187" hits="0"/>
<line number="190" hits="0"/>
<line number="191" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="192,195"/>
<line number="192" hits="0"/>
<line number="195" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="196,199"/>
<line number="196" hits="0"/>
<line number="199" hits="0"/>
<line number="200" hits="0"/>
<line number="202" hits="0"/>
<line number="204" hits="0"/>
<line number="206" hits="0"/>
<line number="207" hits="0"/>
</lines>
</class>
<class name="verification_code_service.py" filename="packages/application/auth/verification_code_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="8" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="33" hits="0"/>
<line number="42" hits="0"/>
<line number="45" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="59" hits="0"/>
<line number="72" hits="0"/>
<line number="75" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="76,77"/>
<line number="76" hits="0"/>
<line number="77" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="78,81"/>
<line number="78" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="83,88"/>
<line number="83" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="84,85"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="88" hits="0"/>
<line number="94" hits="0"/>
<line number="96" hits="0"/>
<line number="98" hits="0"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="120" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="121,124"/>
<line number="121" hits="0"/>
<line number="124" hits="0"/>
<line number="125" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="126,129"/>
<line number="126" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="133" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="134,137"/>
<line number="134" hits="0"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="138,141"/>
<line number="138" hits="0"/>
<line number="141" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="142,145"/>
<line number="142" hits="0"/>
<line number="145" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="146,149"/>
<line number="146" hits="0"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="150,153"/>
<line number="150" hits="0"/>
<line number="151" hits="0"/>
<line number="153" hits="0"/>
<line number="155" hits="0"/>
<line number="163" hits="0"/>
<line number="164" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="165,171"/>
<line number="165" hits="0"/>
<line number="166" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="167,171"/>
<line number="167" hits="0"/>
<line number="168" hits="0"/>
<line number="171" hits="0"/>
<line number="172" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="173,175"/>
<line number="173" hits="0"/>
<line number="175" hits="0"/>
<line number="178" hits="0"/>
<line number="180" hits="0"/>
<line number="181" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="182,184"/>
<line number="182" hits="0"/>
<line number="184" hits="0"/>
<line number="185" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="186,187"/>
<line number="186" hits="0"/>
<line number="187" hits="0"/>
<line number="190" hits="0"/>
<line number="192" hits="0"/>
<line number="193" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="194,195"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="198" hits="0"/>
<line number="200" hits="0"/>
<line number="201" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="202,203"/>
<line number="202" hits="0"/>
<line number="203" hits="0"/>
<line number="204" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="205,206"/>
<line number="205" hits="0"/>
<line number="206" hits="0"/>
</lines>
</class>
<class name="wechat_oauth_service.py" filename="packages/application/auth/wechat_oauth_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="20" hits="0"/>
<line number="22" hits="0"/>
<line number="25" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="45,47"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,53"/>
<line number="53" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="66" hits="0"/>
<line number="69" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="80" hits="0"/>
<line number="82" hits="0"/>
<line number="84" hits="0"/>
<line number="86" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="0"/>
<line number="97" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="99,109"/>
<line number="99" hits="0"/>
<line number="107" hits="0"/>
<line number="109" hits="0"/>
<line number="116" hits="0"/>
<line number="117" hits="0"/>
<line number="119" hits="0"/>
<line number="130" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="131,134"/>
<line number="131" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,138"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="138" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="140,151"/>
<line number="140" hits="0"/>
<line number="141" hits="0"/>
<line number="151" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="160" hits="0"/>
<line number="161" hits="0"/>
<line number="163" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="164,167"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
<line number="167" hits="0"/>
<line number="168" hits="0"/>
<line number="169" hits="0"/>
<line number="172" hits="0"/>
<line number="173" hits="0"/>
<line number="178" hits="0"/>
<line number="179" hits="0"/>
<line number="181" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="182,185"/>
<line number="182" hits="0"/>
<line number="183" hits="0"/>
<line number="185" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="198" hits="0"/>
<line number="199" hits="0"/>
<line number="200" hits="0"/>
<line number="203" hits="0"/>
<line number="206" hits="0"/>
</lines>
</class>
<class name="wechat_sync_use_case.py" filename="packages/application/auth/wechat_sync_use_case.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="15" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="22" hits="0"/>
<line number="25" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="40" hits="0"/>
<line number="43" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="84" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="96" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="105,107"/>
<line number="105" hits="0"/>
<line number="107" hits="0"/>
<line number="110" hits="0"/>
<line number="113" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="114,121"/>
<line number="114" hits="0"/>
<line number="115" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="117,121"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="121" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="122,126"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="137" hits="0"/>
<line number="144" hits="0"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="158" hits="0"/>
<line number="168" hits="0"/>
<line number="170" hits="0"/>
<line number="171" hits="0"/>
<line number="173" hits="0"/>
<line number="175" hits="0"/>
<line number="178" hits="0"/>
<line number="179" hits="0"/>
<line number="180" hits="0"/>
<line number="183" hits="0"/>
<line number="184" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="185,189"/>
<line number="185" hits="0"/>
<line number="186" hits="0"/>
<line number="189" hits="0"/>
<line number="190" hits="0"/>
<line number="192" hits="0"/>
<line number="194" hits="0"/>
<line number="205" hits="0"/>
<line number="206" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.application.title_library" line-rate="0" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="packages/application/title_library/__init__.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="4" hits="0"/>
<line number="16" hits="0"/>
</lines>
</class>
<class name="commands.py" filename="packages/application/title_library/commands.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
</lines>
</class>
<class name="use_cases.py" filename="packages/application/title_library/use_cases.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="24" hits="0"/>
<line number="32" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="47" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="52,58"/>
<line number="52" hits="0"/>
<line number="58" hits="0"/>
<line number="68" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="78,80"/>
<line number="78" hits="0"/>
<line number="80" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="81,82"/>
<line number="81" hits="0"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="83,84"/>
<line number="83" hits="0"/>
<line number="84" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="85,86"/>
<line number="85" hits="0"/>
<line number="86" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="87,88"/>
<line number="87" hits="0"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="89,90"/>
<line number="89" hits="0"/>
<line number="90" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="91,92"/>
<line number="91" hits="0"/>
<line number="92" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="93,95"/>
<line number="93" hits="0"/>
<line number="95" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="106" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="112" hits="0"/>
<line number="113" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="114,115"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="122" hits="0"/>
<line number="133" hits="0"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="142" hits="0"/>
<line number="150" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="151,154"/>
<line number="151" hits="0"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="158,161"/>
<line number="158" hits="0"/>
<line number="161" hits="0"/>
<line number="162" hits="0"/>
<line number="165" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.application.voice_clone" line-rate="0" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="packages/application/voice_clone/__init__.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="14" hits="0"/>
</lines>
</class>
<class name="use_cases.py" filename="packages/application/voice_clone/use_cases.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="17" hits="0"/>
<line number="20" hits="0"/>
<line number="23" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="29" hits="0"/>
<line number="42" hits="0"/>
<line number="53" hits="0"/>
<line number="56" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="62" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="75" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="84,85"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="88" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="97,98"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="101" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="110,111"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="114" hits="0"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="120" hits="0"/>
<line number="121" hits="0"/>
<line number="122" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="123,124"/>
<line number="123" hits="0"/>
<line number="124" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="125,126"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0"/>
</lines>
</class>
<class name="workflow.py" filename="packages/application/voice_clone/workflow.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="10" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="15" hits="0"/>
<line number="20" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="29" hits="0"/>
<line number="32" hits="0"/>
<line number="35" hits="0"/>
<line number="38" hits="0"/>
<line number="45" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="53" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="108,162"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="113" hits="0"/>
<line number="114" hits="0"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="120" hits="0"/>
<line number="121" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="134" hits="0"/>
<line number="135" hits="0"/>
<line number="136" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="137,143"/>
<line number="137" hits="0"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0"/>
<line number="141" hits="0"/>
<line number="143" hits="0"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="149" hits="0"/>
<line number="151" hits="0"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="157" hits="0"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="162" hits="0"/>
<line number="164" hits="0"/>
<line number="166" hits="0"/>
<line number="174" hits="0"/>
<line number="175" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="176,177"/>
<line number="176" hits="0"/>
<line number="177" hits="0"/>
<line number="178" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="179,180"/>
<line number="179" hits="0"/>
<line number="180" hits="0"/>
<line number="181" hits="0"/>
<line number="183" hits="0"/>
<line number="196" hits="0"/>
<line number="197" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="198,200"/>
<line number="198" hits="0"/>
<line number="200" hits="0"/>
<line number="201" hits="0"/>
<line number="202" hits="0"/>
<line number="203" hits="0"/>
<line number="205" hits="0"/>
<line number="218" hits="0"/>
<line number="219" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="220,222"/>
<line number="220" hits="0"/>
<line number="222" hits="0"/>
<line number="223" hits="0"/>
<line number="224" hits="0"/>
<line number="225" hits="0"/>
<line number="227" hits="0"/>
<line number="247" hits="0"/>
<line number="248" hits="0"/>
<line number="251" hits="0"/>
<line number="252" hits="0"/>
<line number="255" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="257,292"/>
<line number="257" hits="0"/>
<line number="258" hits="0"/>
<line number="259" hits="0"/>
<line number="260" hits="0"/>
<line number="261" hits="0"/>
<line number="262" hits="0"/>
<line number="263" hits="0"/>
<line number="265" hits="0"/>
<line number="266" hits="0"/>
<line number="272" hits="0"/>
<line number="273" hits="0"/>
<line number="274" hits="0"/>
<line number="276" hits="0"/>
<line number="277" hits="0"/>
<line number="278" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="279,284"/>
<line number="279" hits="0"/>
<line number="280" hits="0"/>
<line number="281" hits="0"/>
<line number="282" hits="0"/>
<line number="284" hits="0"/>
<line number="285" hits="0"/>
<line number="287" hits="0"/>
<line number="288" hits="0"/>
<line number="289" hits="0"/>
<line number="290" hits="0"/>
<line number="292" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.application.voice_library" line-rate="0" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="packages/application/voice_library/__init__.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="13" hits="0"/>
</lines>
</class>
<class name="commands.py" filename="packages/application/voice_library/commands.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
</lines>
</class>
<class name="use_cases.py" filename="packages/application/voice_library/use_cases.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="22" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="35" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="50" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="55,61"/>
<line number="55" hits="0"/>
<line number="61" hits="0"/>
<line number="77" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="87,89"/>
<line number="87" hits="0"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="90,91"/>
<line number="90" hits="0"/>
<line number="91" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="92,93"/>
<line number="92" hits="0"/>
<line number="93" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="94,95"/>
<line number="94" hits="0"/>
<line number="95" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="96,97"/>
<line number="96" hits="0"/>
<line number="97" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="98,99"/>
<line number="98" hits="0"/>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="100,101"/>
<line number="100" hits="0"/>
<line number="101" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,103"/>
<line number="102" hits="0"/>
<line number="103" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="104,105"/>
<line number="104" hits="0"/>
<line number="105" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="106,107"/>
<line number="106" hits="0"/>
<line number="107" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="108,109"/>
<line number="108" hits="0"/>
<line number="109" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="110,112"/>
<line number="110" hits="0"/>
<line number="112" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="117" hits="0"/>
<line number="119" hits="0"/>
<line number="120" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.config" line-rate="0.816" branch-rate="0.5" complexity="0">
<classes>
<class name="__init__.py" filename="packages/config/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="23" hits="1"/>
<line number="25" hits="1"/>
</lines>
</class>
<class name="api_settings.py" filename="packages/config/api_settings.py" complexity="0" line-rate="0.7616" branch-rate="0.5">
<methods/>
<lines>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="14" hits="1"/>
<line number="17" hits="1"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="28" hits="1"/>
<line number="31" hits="1"/>
<line number="32" hits="1"/>
<line number="35" hits="1"/>
<line number="38" hits="1"/>
<line number="42" hits="1"/>
<line number="45" hits="1"/>
<line number="46" hits="1"/>
<line number="47" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="1"/>
<line number="51" hits="1"/>
<line number="52" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="53"/>
<line number="53" hits="0"/>
<line number="57" hits="1"/>
<line number="64" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="65"/>
<line number="65" hits="0"/>
<line number="68" 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="77" hits="1"/>
<line number="78" hits="1"/>
<line number="81" hits="1"/>
<line number="82" hits="1"/>
<line number="83" hits="1"/>
<line number="84" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="85"/>
<line number="85" hits="0"/>
<line number="89" hits="1"/>
<line number="91" hits="1"/>
<line number="92" hits="1"/>
<line number="93" hits="1"/>
<line number="94" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="95"/>
<line number="95" hits="0"/>
<line number="99" hits="1"/>
<line number="101" hits="1"/>
<line number="107" hits="1"/>
<line number="111" hits="1"/>
<line number="113" hits="1"/>
<line number="120" hits="1"/>
<line number="121" hits="1"/>
<line number="122" hits="0"/>
<line number="127" hits="1"/>
<line number="128" hits="1"/>
<line number="129" hits="0"/>
<line number="131" hits="1"/>
<line number="132" hits="1"/>
<line number="133" hits="0"/>
<line number="135" hits="1"/>
<line number="136" hits="1"/>
<line number="137" hits="0"/>
<line number="139" hits="1"/>
<line number="140" hits="1"/>
<line number="141" hits="0"/>
<line number="143" hits="1"/>
<line number="144" hits="1"/>
<line number="145" hits="0"/>
<line number="147" hits="1"/>
<line number="148" hits="1"/>
<line number="149" hits="0"/>
<line number="151" hits="1"/>
<line number="152" hits="1"/>
<line number="153" hits="0"/>
<line number="155" hits="1"/>
<line number="156" hits="1"/>
<line number="157" hits="1"/>
<line number="159" hits="1"/>
<line number="160" hits="1"/>
<line number="161" hits="0"/>
<line number="163" hits="1"/>
<line number="164" hits="1"/>
<line number="165" hits="0"/>
<line number="167" hits="1"/>
<line number="168" hits="1"/>
<line number="169" hits="0"/>
<line number="171" hits="1"/>
<line number="172" hits="1"/>
<line number="173" hits="0"/>
<line number="175" hits="1"/>
<line number="176" hits="1"/>
<line number="177" hits="0"/>
<line number="179" hits="1"/>
<line number="180" hits="1"/>
<line number="181" hits="0"/>
<line number="183" hits="1"/>
<line number="184" hits="1"/>
<line number="185" hits="0"/>
<line number="187" hits="1"/>
<line number="188" hits="1"/>
<line number="189" hits="0"/>
<line number="191" hits="1"/>
<line number="192" hits="1"/>
<line number="193" hits="0"/>
<line number="195" hits="1"/>
<line number="196" hits="1"/>
<line number="197" hits="0"/>
<line number="199" hits="1"/>
<line number="200" hits="1"/>
<line number="201" hits="0"/>
<line number="203" hits="1"/>
<line number="204" hits="1"/>
<line number="205" hits="0"/>
<line number="207" hits="1"/>
<line number="208" hits="1"/>
<line number="209" hits="0"/>
<line number="211" hits="1"/>
<line number="212" hits="1"/>
<line number="213" hits="0"/>
<line number="215" hits="1"/>
<line number="216" hits="1"/>
<line number="217" hits="0"/>
<line number="219" hits="1"/>
<line number="220" hits="1"/>
<line number="221" hits="0"/>
<line number="223" hits="1"/>
<line number="224" hits="1"/>
<line number="225" hits="0"/>
<line number="227" hits="1"/>
<line number="228" hits="1"/>
<line number="229" hits="0"/>
<line number="231" hits="1"/>
<line number="232" hits="1"/>
<line number="233" hits="0"/>
<line number="235" hits="1"/>
<line number="236" hits="1"/>
<line number="237" hits="0"/>
<line number="239" hits="1"/>
<line number="240" 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="0"/>
<line number="251" hits="1"/>
<line number="252" hits="1"/>
<line number="253" hits="0"/>
<line number="255" hits="1"/>
<line number="256" hits="1"/>
<line number="257" hits="0"/>
<line number="259" hits="1"/>
<line number="260" hits="1"/>
<line number="261" hits="0"/>
<line number="263" hits="1"/>
<line number="264" hits="1"/>
<line number="265" hits="0"/>
<line number="267" hits="1"/>
<line number="268" hits="1"/>
<line number="269" hits="0"/>
<line number="271" hits="1"/>
<line number="272" hits="1"/>
<line number="273" hits="0"/>
<line number="275" hits="1"/>
<line number="276" hits="1"/>
<line number="277" hits="0"/>
<line number="279" hits="1"/>
<line number="280" hits="1"/>
<line number="281" hits="0"/>
<line number="284" hits="1"/>
<line number="286" hits="1"/>
</lines>
</class>
<class name="base.py" filename="packages/config/base.py" complexity="0" line-rate="0.9153" branch-rate="0.5">
<methods/>
<lines>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="11" hits="1"/>
<line number="13" hits="1"/>
<line number="16" 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="33" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="38" hits="1"/>
<line number="41" hits="1"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="1"/>
<line number="51" hits="1"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="56" hits="1"/>
<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="66" hits="1"/>
<line number="67" hits="1"/>
<line number="68" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="73" hits="1"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="77" hits="1"/>
<line number="78" hits="1"/>
<line number="83" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="84,85"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="87" 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="108" hits="1"/>
<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"/>
<line number="123" hits="0"/>
<line number="126" hits="1"/>
<line number="128" hits="0"/>
</lines>
</class>
<class name="worker_settings.py" filename="packages/config/worker_settings.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="12" hits="1"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="23" hits="1"/>
<line number="25" hits="1"/>
<line number="33" hits="1"/>
<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="44" hits="1"/>
</lines>
</class>
</classes>
</package>
<package name="packages.domain" line-rate="0.2816" branch-rate="0.04829" complexity="0">
<classes>
<class name="__init__.py" filename="packages/domain/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="8" hits="1"/>
<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="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="29" hits="1"/>
<line number="30" hits="1"/>
<line number="32" hits="1"/>
</lines>
</class>
<class name="ai_parsing.py" filename="packages/domain/ai_parsing.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="11" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="22" hits="0"/>
<line number="31" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="32,35"/>
<line number="32" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="38,43"/>
<line number="38" hits="0"/>
<line number="39" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="40,41"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="45,46"/>
<line number="45" hits="0"/>
<line number="46" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="47,54"/>
<line number="47" hits="0"/>
<line number="48" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="49,54"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="56,68"/>
<line number="56" hits="0"/>
<line number="57" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="58,60"/>
<line number="58" hits="0"/>
<line number="60" hits="0"/>
<line number="62" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="55,66"/>
<line number="66" hits="0"/>
<line number="68" hits="0"/>
<line number="74" hits="0"/>
<line number="83" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="84,86"/>
<line number="84" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="89,94"/>
<line number="89" hits="0"/>
<line number="90" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="91,92"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="94" hits="0"/>
<line number="96" hits="0"/>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="100,114"/>
<line number="100" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,109"/>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="103,123"/>
<line number="103" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,104"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,107"/>
<line number="107" hits="0"/>
<line number="109" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="110,123"/>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="109,111"/>
<line number="111" hits="0"/>
<line number="114" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="115,123"/>
<line number="115" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="116,123"/>
<line number="116" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="115,117"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="115,120"/>
<line number="120" hits="0"/>
<line number="123" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="124,126"/>
<line number="124" hits="0"/>
<line number="126" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="127,132"/>
<line number="127" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="132" hits="0"/>
<line number="138" hits="0"/>
<line number="150" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="157" hits="0"/>
<line number="158" hits="0"/>
<line number="160" hits="0"/>
<line number="173" hits="0"/>
<line number="174" hits="0"/>
<line number="180" hits="0"/>
<line number="190" hits="0"/>
<line number="191" hits="0"/>
<line number="194" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="195,197"/>
<line number="195" hits="0"/>
<line number="197" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="198,203"/>
<line number="198" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="197,199"/>
<line number="199" hits="0"/>
<line number="200" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="198,201"/>
<line number="201" hits="0"/>
<line number="203" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="205,213"/>
<line number="205" hits="0"/>
<line number="206" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="207,211"/>
<line number="207" hits="0"/>
<line number="208" hits="0"/>
<line number="209" hits="0"/>
<line number="210" hits="0"/>
<line number="211" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="216,248"/>
<line number="216" hits="0"/>
<line number="221" hits="0"/>
<line number="224" hits="0"/>
<line number="225" hits="0"/>
<line number="226" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="227,232"/>
<line number="227" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="226,228"/>
<line number="228" hits="0"/>
<line number="229" hits="0"/>
<line number="232" hits="0"/>
<line number="235" hits="0"/>
<line number="236" hits="0"/>
<line number="237" hits="0"/>
<line number="239" hits="0"/>
<line number="240" hits="0"/>
<line number="242" hits="0"/>
<line number="243" hits="0"/>
<line number="244" hits="0"/>
<line number="245" hits="0"/>
<line number="248" hits="0"/>
<line number="249" hits="0"/>
</lines>
</class>
<class name="ass_subtitle_builder.py" filename="packages/domain/ass_subtitle_builder.py" complexity="0" line-rate="0.2203" branch-rate="0">
<methods/>
<lines>
<line number="12" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="17" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="31" hits="1"/>
<line number="40" hits="0"/>
<line number="41" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="42,43"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="50" hits="1"/>
<line number="64" hits="0"/>
<line number="69" hits="0"/>
<line number="75" hits="1"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="121" hits="0"/>
<line number="124" hits="0"/>
<line number="126" hits="0"/>
<line number="138" hits="1"/>
<line number="151" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="160" hits="1"/>
<line number="169" hits="0"/>
<line number="170" hits="0"/>
<line number="171" hits="0"/>
<line number="172" hits="0"/>
<line number="178" hits="1"/>
<line number="205" hits="0"/>
<line number="206" hits="0"/>
<line number="208" hits="0"/>
<line number="209" hits="0"/>
<line number="211" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="212,214"/>
<line number="212" hits="0"/>
<line number="214" hits="0"/>
<line number="215" hits="0"/>
<line number="218" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="219,258"/>
<line number="219" hits="0"/>
<line number="220" hits="0"/>
<line number="221" hits="0"/>
<line number="222" hits="0"/>
<line number="223" hits="0"/>
<line number="224" hits="0"/>
<line number="225" hits="0"/>
<line number="230" hits="0"/>
<line number="232" hits="0"/>
<line number="251" hits="0"/>
<line number="253" hits="0"/>
<line number="258" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="259,291"/>
<line number="259" hits="0"/>
<line number="260" hits="0"/>
<line number="262" hits="0"/>
<line number="281" hits="0"/>
<line number="283" hits="0"/>
<line number="291" hits="0"/>
</lines>
</class>
<class name="asset.py" filename="packages/domain/asset.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="12" hits="0"/>
</lines>
</class>
<class name="asset_library.py" filename="packages/domain/asset_library.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="12" hits="0"/>
</lines>
</class>
<class name="asset_scoring.py" filename="packages/domain/asset_scoring.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="66" hits="0"/>
<line number="83" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="84,86"/>
<line number="84" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="90" hits="0"/>
<line number="92" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="94,97"/>
<line number="94" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="101" hits="0"/>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="111,113"/>
<line number="111" hits="0"/>
<line number="113" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="115,117"/>
<line number="115" hits="0"/>
<line number="117" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="119,123"/>
<line number="119" hits="0"/>
<line number="120" hits="0"/>
<line number="123" hits="0"/>
<line number="124" hits="0"/>
<line number="125" hits="0"/>
<line number="128" hits="0"/>
<line number="138" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="139,142"/>
<line number="139" hits="0"/>
<line number="142" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="149,151"/>
<line number="149" hits="0"/>
<line number="151" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="153,157"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="157" hits="0"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="162" hits="0"/>
<line number="179" hits="0"/>
<line number="185" hits="0"/>
<line number="188" hits="0"/>
<line number="214" hits="0"/>
<line number="216" hits="0"/>
<line number="217" hits="0"/>
<line number="218" hits="0"/>
<line number="220" hits="0"/>
<line number="227" hits="0"/>
<line number="241" hits="0"/>
<line number="247" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="248,249"/>
<line number="248" hits="0"/>
<line number="249" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="250,251"/>
<line number="250" hits="0"/>
<line number="251" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="252,253"/>
<line number="252" hits="0"/>
<line number="253" hits="0"/>
<line number="256" hits="0"/>
<line number="276" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="277,280"/>
<line number="277" hits="0"/>
<line number="280" hits="0"/>
<line number="281" hits="0"/>
<line number="282" hits="0"/>
<line number="283" hits="0"/>
<line number="285" hits="0"/>
<line number="288" hits="0"/>
<line number="290" hits="0"/>
<line number="291" hits="0"/>
<line number="294" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="295,307"/>
<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="0" branch="true" condition-coverage="0% (0/2)" missing-branches="294,300"/>
<line number="300" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="299,301"/>
<line number="301" hits="0"/>
<line number="302" hits="0"/>
<line number="303" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="299,304"/>
<line number="304" hits="0"/>
<line number="307" hits="0"/>
<line number="308" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="309,317"/>
<line number="309" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="310,317"/>
<line number="310" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="309,311"/>
<line number="311" hits="0"/>
<line number="312" hits="0"/>
<line number="313" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="309,314"/>
<line number="314" hits="0"/>
<line number="317" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="318,325"/>
<line number="318" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="319,325"/>
<line number="319" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="318,320"/>
<line number="320" hits="0"/>
<line number="321" hits="0"/>
<line number="322" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="318,323"/>
<line number="323" hits="0"/>
<line number="325" hits="0"/>
<line number="331" hits="0"/>
<line number="349" hits="0"/>
<line number="350" hits="0"/>
<line number="352" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="354,372"/>
<line number="354" hits="0"/>
<line number="355" hits="0"/>
<line number="356" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="357,360"/>
<line number="357" hits="0"/>
<line number="360" hits="0"/>
<line number="361" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="362,365"/>
<line number="362" hits="0"/>
<line number="365" hits="0"/>
<line number="366" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="367,370"/>
<line number="367" hits="0"/>
<line number="368" hits="0"/>
<line number="370" hits="0"/>
<line number="372" hits="0"/>
</lines>
</class>
<class name="audio_track_config.py" filename="packages/domain/audio_track_config.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="13" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="24" hits="0"/>
<line number="27" hits="0"/>
<line number="35" hits="0"/>
<line number="37" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="0"/>
<line number="107" hits="0"/>
<line number="109" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="110,112"/>
<line number="110" hits="0"/>
<line number="112" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="113,115"/>
<line number="113" hits="0"/>
<line number="115" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="116,118"/>
<line number="116" hits="0"/>
<line number="118" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="119,121"/>
<line number="119" hits="0"/>
<line number="121" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="122,124"/>
<line number="122" hits="0"/>
<line number="124" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="125,127"/>
<line number="125" hits="0"/>
<line number="127" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="132" hits="0"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0"/>
<line number="141" hits="0"/>
<line number="142" hits="0"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="147" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="148,150"/>
<line number="148" hits="0"/>
<line number="150" hits="0"/>
<line number="151" hits="0"/>
<line number="153" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="154,164"/>
<line number="154" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="155,164"/>
<line number="155" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="154,156"/>
<line number="156" hits="0"/>
<line number="157" hits="0"/>
<line number="158" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="154,159"/>
<line number="159" hits="0"/>
<line number="160" hits="0"/>
<line number="161" hits="0"/>
<line number="162" hits="0"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="168" hits="0"/>
<line number="170" hits="0"/>
<line number="171" hits="0"/>
<line number="172" hits="0"/>
<line number="173" hits="0"/>
<line number="175" hits="0"/>
<line number="182" hits="0"/>
<line number="183" hits="0"/>
<line number="185" hits="0"/>
<line number="187" hits="0"/>
<line number="188" hits="0"/>
<line number="190" hits="0"/>
<line number="192" hits="0"/>
<line number="193" hits="0"/>
<line number="195" hits="0"/>
<line number="197" hits="0"/>
<line number="198" hits="0"/>
<line number="200" hits="0"/>
<line number="206" hits="0"/>
<line number="208" hits="0"/>
<line number="209" hits="0"/>
<line number="212" hits="0"/>
<line number="214" hits="0"/>
</lines>
</class>
<class name="bgm_utils.py" filename="packages/domain/bgm_utils.py" complexity="0" line-rate="0.2" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="6" hits="1"/>
<line number="21" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="22,23"/>
<line number="22" hits="0"/>
<line number="23" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="24,26"/>
<line number="24" hits="0"/>
<line number="26" hits="0"/>
<line number="29" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="30,32"/>
<line number="30" hits="0"/>
<line number="32" hits="0"/>
</lines>
</class>
<class name="chroma_key_config.py" filename="packages/domain/chroma_key_config.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="11" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="24" hits="0"/>
<line number="57" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="98" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="99,101"/>
<line number="99" hits="0"/>
<line number="101" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="107" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="118" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="131,132"/>
<line number="131" hits="0"/>
<line number="132" hits="0"/>
<line number="140" hits="0"/>
<line number="142" hits="0"/>
<line number="144" hits="0"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="147,149"/>
<line number="147" hits="0"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="150,152"/>
<line number="150" hits="0"/>
<line number="152" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="153,155"/>
<line number="153" hits="0"/>
<line number="155" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="156,158"/>
<line number="156" hits="0"/>
<line number="158" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="159,161"/>
<line number="159" hits="0"/>
<line number="161" hits="0"/>
<line number="167" hits="0"/>
<line number="175" hits="0"/>
<line number="178" hits="0"/>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="180,183"/>
<line number="180" hits="0"/>
<line number="183" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="184,187"/>
<line number="184" hits="0"/>
<line number="187" hits="0"/>
<line number="193" hits="0"/>
<line number="208" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="209,211"/>
<line number="209" hits="0"/>
<line number="211" hits="0"/>
<line number="212" hits="0"/>
<line number="213" hits="0"/>
<line number="216" hits="0"/>
<line number="219" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="220,226"/>
<line number="220" hits="0"/>
<line number="221" hits="0"/>
<line number="222" hits="0"/>
<line number="223" hits="0"/>
<line number="224" hits="0"/>
<line number="226" hits="0"/>
<line number="229" hits="0"/>
<line number="239" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="240,242"/>
<line number="240" hits="0"/>
<line number="242" hits="0"/>
<line number="243" hits="0"/>
<line number="244" hits="0"/>
<line number="246" hits="0"/>
<line number="252" hits="0"/>
<line number="267" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="268,270"/>
<line number="268" hits="0"/>
<line number="270" hits="0"/>
<line number="271" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="272,274"/>
<line number="272" hits="0"/>
<line number="274" hits="0"/>
<line number="275" hits="0"/>
<line number="276" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="277,279"/>
<line number="277" hits="0"/>
<line number="279" hits="0"/>
<line number="280" hits="0"/>
<line number="281" hits="0"/>
<line number="282" hits="0"/>
<line number="285" hits="0"/>
<line number="287" hits="0"/>
</lines>
</class>
<class name="classification.py" filename="packages/domain/classification.py" complexity="0" line-rate="0.7344" branch-rate="0.07143">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="10"/>
<line number="8" hits="1"/>
<line number="10" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="16" hits="1"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="25" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="32" 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="39" hits="1"/>
<line number="45" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="46,53"/>
<line number="46" hits="0"/>
<line number="47" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="48,49"/>
<line number="48" hits="0"/>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="50,51"/>
<line number="50" hits="0"/>
<line number="51" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="52,53"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="57" hits="1"/>
<line number="60" hits="1"/>
<line number="63" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="1"/>
<line number="67" hits="1"/>
<line number="68" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="71" hits="1"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="76" hits="1"/>
<line number="77" 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="83" hits="1"/>
<line number="84" hits="1"/>
<line number="86" hits="1"/>
<line number="87" hits="1"/>
<line number="92" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="93,94"/>
<line number="93" hits="0"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="95,96"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
</lines>
</class>
<class name="clip_operations.py" filename="packages/domain/clip_operations.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="11" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="50" hits="0"/>
<line number="60" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,61"/>
<line number="61" hits="0"/>
<line number="64" hits="0"/>
<line number="85" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="91" hits="0"/>
<line number="103" hits="0"/>
<line number="121" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="122,125"/>
<line number="122" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="127,131"/>
<line number="127" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="126,128"/>
<line number="128" hits="0"/>
<line number="131" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,139"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="134,136"/>
<line number="136" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="141,144"/>
<line number="141" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="140,142"/>
<line number="142" hits="0"/>
<line number="144" hits="0"/>
<line number="147" hits="0"/>
<line number="168" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="169,172"/>
<line number="169" hits="0"/>
<line number="172" hits="0"/>
<line number="175" hits="0"/>
<line number="178" hits="0"/>
<line number="181" hits="0"/>
<line number="182" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="183,186"/>
<line number="183" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="182,184"/>
<line number="184" hits="0"/>
<line number="186" hits="0"/>
<line number="187" hits="0"/>
<line number="189" hits="0"/>
<line number="190" hits="0"/>
<line number="192" hits="0"/>
<line number="204" hits="0"/>
<line number="225" hits="0"/>
<line number="226" hits="0"/>
<line number="228" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="229,231"/>
<line number="229" hits="0"/>
<line number="231" hits="0"/>
<line number="234" hits="0"/>
<line number="256" hits="0"/>
<line number="257" hits="0"/>
<line number="259" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="260,267"/>
<line number="260" hits="0"/>
<line number="261" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="262,263"/>
<line number="262" hits="0"/>
<line number="263" hits="0"/>
<line number="264" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="259,265"/>
<line number="265" hits="0"/>
<line number="267" hits="0"/>
</lines>
</class>
<class name="color_grade_config.py" filename="packages/domain/color_grade_config.py" complexity="0" line-rate="0.3871" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="13" 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="25" hits="1"/>
<line number="27" hits="1"/>
<line number="39" hits="1"/>
<line number="52" hits="1"/>
<line number="114" hits="1"/>
<line number="123" hits="1"/>
<line number="131" hits="1"/>
<line number="137" hits="1"/>
<line number="138" hits="1"/>
<line number="145" hits="1"/>
<line number="146" hits="1"/>
<line number="148" hits="1"/>
<line number="149" hits="1"/>
<line number="150" hits="1"/>
<line number="151" hits="1"/>
<line number="152" hits="1"/>
<line number="154" hits="1"/>
<line number="161" hits="0"/>
<line number="164" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="165,168"/>
<line number="165" hits="0"/>
<line number="168" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="169,170"/>
<line number="169" hits="0"/>
<line number="170" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="171,172"/>
<line number="171" hits="0"/>
<line number="172" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="173,174"/>
<line number="173" hits="0"/>
<line number="174" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="175,176"/>
<line number="175" hits="0"/>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="177,180"/>
<line number="177" hits="0"/>
<line number="180" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="181,183"/>
<line number="181" hits="0"/>
<line number="183" hits="0"/>
<line number="185" hits="1"/>
<line number="190" hits="0"/>
<line number="191" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="192,194"/>
<line number="192" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="191,193"/>
<line number="193" hits="0"/>
<line number="194" hits="0"/>
<line number="196" hits="1"/>
<line number="197" hits="1"/>
<line number="199" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="200,202"/>
<line number="200" hits="0"/>
<line number="202" hits="0"/>
<line number="203" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="204,207"/>
<line number="204" hits="0"/>
<line number="205" hits="0"/>
<line number="207" hits="0"/>
<line number="208" hits="0"/>
<line number="209" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="210,211"/>
<line number="210" hits="0"/>
<line number="211" hits="0"/>
<line number="212" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0"/>
<line number="216" hits="0"/>
<line number="217" hits="0"/>
<line number="226" hits="0"/>
<line number="227" hits="0"/>
<line number="228" hits="0"/>
<line number="230" hits="1"/>
<line number="232" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="233,235"/>
<line number="233" hits="0"/>
<line number="235" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="236,240"/>
<line number="236" hits="0"/>
<line number="240" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="241,247"/>
<line number="241" hits="0"/>
<line number="242" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="240,243"/>
<line number="243" hits="0"/>
<line number="244" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="240,245"/>
<line number="245" hits="0"/>
<line number="247" hits="0"/>
<line number="253" hits="1"/>
<line number="255" hits="0"/>
<line number="258" hits="1"/>
<line number="260" hits="0"/>
<line number="263" hits="1"/>
<line number="265" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="266,267"/>
<line number="266" hits="0"/>
<line number="267" hits="0"/>
<line number="268" hits="0"/>
</lines>
</class>
<class name="config_schemas.py" filename="packages/domain/config_schemas.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="15" hits="0"/>
<line number="20" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="29" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="37" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="47" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="58" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="66" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="75" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="90" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="106" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="113" hits="0"/>
<line number="114" hits="0"/>
<line number="116" hits="0"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0"/>
<line number="122" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0"/>
<line number="128" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="132" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0"/>
<line number="135" hits="0"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0"/>
<line number="143" hits="0"/>
<line number="149" hits="0"/>
<line number="150" hits="0"/>
<line number="151" hits="0"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="162" hits="0"/>
<line number="169" hits="0"/>
<line number="170" hits="0"/>
<line number="171" hits="0"/>
<line number="173" hits="0"/>
<line number="174" hits="0"/>
<line number="175" hits="0"/>
<line number="176" hits="0"/>
<line number="182" hits="0"/>
<line number="190" hits="0"/>
<line number="191" hits="0"/>
<line number="192" hits="0"/>
<line number="193" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0"/>
<line number="199" hits="0"/>
<line number="206" hits="0"/>
<line number="207" hits="0"/>
<line number="208" hits="0"/>
<line number="209" hits="0"/>
<line number="210" hits="0"/>
<line number="211" hits="0"/>
<line number="212" hits="0"/>
<line number="213" hits="0"/>
<line number="218" hits="0"/>
<line number="283" hits="0"/>
<line number="292" hits="0"/>
<line number="297" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="298,300"/>
<line number="298" hits="0"/>
<line number="300" hits="0"/>
<line number="302" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="303,309"/>
<line number="303" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="302,304"/>
<line number="304" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="305,306"/>
<line number="305" hits="0"/>
<line number="306" hits="0"/>
<line number="309" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="310,313"/>
<line number="310" hits="0"/>
<line number="313" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="314,317"/>
<line number="314" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="313,315"/>
<line number="315" hits="0"/>
<line number="317" hits="0"/>
<line number="320" hits="0"/>
<line number="325" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="326,328"/>
<line number="326" hits="0"/>
<line number="328" hits="0"/>
<line number="330" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="331,337"/>
<line number="331" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="330,332"/>
<line number="332" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="333,334"/>
<line number="333" hits="0"/>
<line number="334" hits="0"/>
<line number="337" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="338,339"/>
<line number="338" hits="0"/>
<line number="339" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="340,343"/>
<line number="340" hits="0"/>
<line number="343" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="344,347"/>
<line number="344" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="343,345"/>
<line number="345" hits="0"/>
<line number="347" hits="0"/>
</lines>
</class>
<class name="duplication.py" filename="packages/domain/duplication.py" complexity="0" line-rate="0.5405" branch-rate="0">
<methods/>
<lines>
<line number="3" 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="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="24" hits="1"/>
<line number="25" hits="1"/>
<line number="35" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="36,37"/>
<line number="36" hits="0"/>
<line number="37" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="38,39"/>
<line number="38" hits="0"/>
<line number="39" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="40,41"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<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="60" hits="1"/>
<line number="61" hits="1"/>
<line number="62" hits="1"/>
<line number="63" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="1"/>
<line number="67" hits="1"/>
<line number="68" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="72" hits="1"/>
<line number="73" hits="1"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="83,84"/>
<line number="83" hits="0"/>
<line number="84" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="85,86"/>
<line number="85" hits="0"/>
<line number="86" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="87,88"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="97" hits="1"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="101" hits="1"/>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="103,104"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="110" hits="1"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="113" hits="0"/>
<line number="115" hits="1"/>
<line number="124" hits="0"/>
<line number="126" hits="1"/>
<line number="133" hits="0"/>
<line number="134" hits="0"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="137" hits="0"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
</lines>
</class>
<class name="edit_plan.py" filename="packages/domain/edit_plan.py" complexity="0" line-rate="0.4568" branch-rate="0.03571">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="12"/>
<line number="10" hits="1"/>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="18" 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="28" hits="1"/>
<line number="29" hits="1"/>
<line number="31" hits="1"/>
<line number="32" hits="1"/>
<line number="41" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="42,51"/>
<line number="42" hits="0"/>
<line number="43" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="44,45"/>
<line number="44" hits="0"/>
<line number="45" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="46,47"/>
<line number="46" hits="0"/>
<line number="47" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="48,49"/>
<line number="48" hits="0"/>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="50,51"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="54" hits="1"/>
<line number="55" hits="1"/>
<line number="62" hits="1"/>
<line number="63" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="1"/>
<line number="67" hits="1"/>
<line number="68" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="71" hits="1"/>
<line number="72" hits="1"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="87" hits="0"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="89,90"/>
<line number="89" hits="0"/>
<line number="90" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="91,92"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="104" hits="1"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="107,108"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="111" hits="1"/>
<line number="113" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="114,115"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="118" hits="1"/>
<line number="120" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="121,122"/>
<line number="121" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="125" hits="1"/>
<line number="127" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="128,129"/>
<line number="128" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="132" hits="1"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,136"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="137" hits="0"/>
<line number="139" hits="1"/>
<line number="141" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="142,143"/>
<line number="142" hits="0"/>
<line number="143" hits="0"/>
<line number="144" hits="0"/>
</lines>
</class>
<class name="edit_plan_clip.py" filename="packages/domain/edit_plan_clip.py" complexity="0" line-rate="0.4886" branch-rate="0.03125">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="13" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="16"/>
<line number="14" hits="1"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="22" hits="1"/>
<line number="23" hits="1"/>
<line number="26" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="31" hits="1"/>
<line number="32" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="43" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="44,51"/>
<line number="44" hits="0"/>
<line number="45" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="46,47"/>
<line number="46" hits="0"/>
<line number="47" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="48,49"/>
<line number="48" hits="0"/>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="50,51"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="54" hits="1"/>
<line number="55" hits="1"/>
<line number="62" hits="1"/>
<line number="63" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="1"/>
<line number="67" hits="1"/>
<line number="68" hits="1"/>
<line number="69" hits="1"/>
<line number="70" 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="77" hits="1"/>
<line number="79" hits="1"/>
<line number="80" hits="1"/>
<line number="97" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="98,99"/>
<line number="98" hits="0"/>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="100,101"/>
<line number="100" hits="0"/>
<line number="101" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,103"/>
<line number="102" hits="0"/>
<line number="103" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="104,106"/>
<line number="104" hits="0"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="107,108"/>
<line number="107" hits="0"/>
<line number="108" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="109,110"/>
<line number="109" hits="0"/>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="111,113"/>
<line number="111" hits="0"/>
<line number="113" hits="0"/>
<line number="130" hits="1"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="133,134"/>
<line number="133" hits="0"/>
<line number="134" hits="0"/>
<line number="135" hits="0"/>
<line number="137" hits="1"/>
<line number="139" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="140,141"/>
<line number="140" hits="0"/>
<line number="141" hits="0"/>
<line number="142" hits="0"/>
<line number="144" hits="1"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="147,148"/>
<line number="147" hits="0"/>
<line number="148" hits="0"/>
<line number="149" hits="0"/>
<line number="151" hits="1"/>
<line number="153" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="154,155"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="158" hits="1"/>
<line number="159" hits="1"/>
<line number="161" hits="0"/>
<line number="163" hits="1"/>
<line number="164" hits="1"/>
<line number="166" hits="0"/>
</lines>
</class>
<class name="edit_template.py" filename="packages/domain/edit_template.py" complexity="0" line-rate="0.6667" branch-rate="0.1667">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="12"/>
<line number="10" hits="1"/>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="18" hits="1"/>
<line number="19" hits="1"/>
<line number="21" hits="1"/>
<line number="24" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="31" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="45" hits="1"/>
<line number="46" hits="1"/>
<line number="47" hits="1"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="50" 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="56" hits="1"/>
<line number="58" hits="1"/>
<line number="59" hits="1"/>
<line number="73" hits="0"/>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="75,76"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="78,81"/>
<line number="78" hits="0"/>
<line number="81" hits="0"/>
<line number="94" hits="1"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="99" hits="1"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="104" hits="1"/>
<line number="105" hits="1"/>
<line number="107" hits="0"/>
<line number="109" hits="1"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
</lines>
</class>
<class name="editing_mode.py" filename="packages/domain/editing_mode.py" complexity="0" line-rate="0.7273" branch-rate="0.5">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="8"/>
<line number="6" hits="1"/>
<line number="8" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="1"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
</lines>
</class>
<class name="entities.py" filename="packages/domain/entities.py" complexity="0" line-rate="0.7212" branch-rate="0.1111">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="7" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="10"/>
<line number="8" hits="1"/>
<line number="10" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="20" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="31" hits="1"/>
<line number="32" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="38" 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="47" hits="1"/>
<line number="48" hits="1"/>
<line number="50" 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="66" hits="1"/>
<line number="67" hits="1"/>
<line number="68" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="71" hits="1"/>
<line number="73" hits="1"/>
<line number="74" hits="1"/>
<line number="75" hits="0"/>
<line number="76" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="77,78"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="86" hits="1"/>
<line number="88" hits="1"/>
<line number="90" hits="1"/>
<line number="92" hits="0"/>
<line number="94" hits="1"/>
<line number="96" hits="1"/>
<line number="99" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
<line number="102" hits="1"/>
<line number="103" hits="1"/>
<line number="104" 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="117" hits="0"/>
<line number="118" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="119,120"/>
<line number="119" hits="0"/>
<line number="120" hits="0"/>
<line number="130" hits="1"/>
<line number="131" hits="1"/>
<line number="132" hits="1"/>
<line number="133" hits="1"/>
<line number="134" hits="1"/>
<line number="135" hits="1"/>
<line number="137" hits="1"/>
<line number="138" hits="1"/>
<line number="144" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="145,154"/>
<line number="145" hits="0"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="147,148"/>
<line number="147" hits="0"/>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="149,150"/>
<line number="149" hits="0"/>
<line number="150" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="151,152"/>
<line number="151" hits="0"/>
<line number="152" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="153,154"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<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="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="168" hits="1"/>
<line number="169" hits="1"/>
<line number="170" hits="1"/>
<line number="171" hits="1"/>
<line number="172" hits="1"/>
<line number="173" hits="1"/>
<line number="174" hits="1"/>
<line number="175" hits="1"/>
<line number="176" 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="183" hits="1"/>
<line number="185" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="186,187"/>
<line number="186" hits="0"/>
<line number="187" hits="0"/>
<line number="189" hits="1"/>
<line number="190" hits="1"/>
<line number="212" hits="1"/>
<line number="213" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="214"/>
<line number="214" hits="0"/>
<line number="215" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="216"/>
<line number="216" hits="0"/>
<line number="217" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="218"/>
<line number="218" hits="0"/>
<line number="219" hits="1"/>
<line number="242" hits="1"/>
<line number="244" hits="0"/>
<line number="245" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="246,247"/>
<line number="246" hits="0"/>
<line number="247" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,248"/>
<line number="248" hits="0"/>
<line number="249" hits="0"/>
<line number="251" hits="1"/>
<line number="253" hits="0"/>
<line number="254" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,255"/>
<line number="255" hits="0"/>
<line number="256" hits="0"/>
<line number="259" hits="1"/>
<line number="260" hits="1"/>
<line number="261" hits="1"/>
<line number="262" hits="1"/>
<line number="263" hits="1"/>
<line number="264" hits="1"/>
<line number="265" hits="1"/>
<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="272" hits="1"/>
<line number="273" hits="1"/>
<line number="280" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="281,282"/>
<line number="281" hits="0"/>
<line number="282" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="283,284"/>
<line number="283" hits="0"/>
<line number="284" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="285,286"/>
<line number="285" hits="0"/>
<line number="286" hits="0"/>
</lines>
</class>
<class name="exceptions.py" filename="packages/domain/exceptions.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="10" hits="0"/>
<line number="13" hits="0"/>
<line number="16" hits="0"/>
<line number="19" hits="0"/>
<line number="22" hits="0"/>
<line number="25" hits="0"/>
<line number="28" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
</lines>
</class>
<class name="filter_presets.py" filename="packages/domain/filter_presets.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="32" hits="0"/>
<line number="37" hits="0"/>
<line number="272" hits="0"/>
<line number="274" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="275,277"/>
<line number="275" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="274,276"/>
<line number="276" hits="0"/>
<line number="277" hits="0"/>
<line number="280" hits="0"/>
<line number="294" 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="0" branch="true" condition-coverage="0% (0/2)" missing-branches="300,307"/>
<line number="300" hits="0"/>
<line number="301" hits="0"/>
<line number="307" hits="0"/>
<line number="310" hits="0"/>
<line number="320" hits="0"/>
<line number="321" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="322,324"/>
<line number="322" hits="0"/>
<line number="324" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="325,327"/>
<line number="325" hits="0"/>
<line number="327" hits="0"/>
<line number="330" hits="0"/>
<line number="331" hits="0"/>
<line number="332" hits="0"/>
<line number="333" hits="0"/>
<line number="334" hits="0"/>
<line number="335" hits="0"/>
<line number="336" hits="0"/>
<line number="338" hits="0"/>
<line number="339" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="340,341"/>
<line number="340" hits="0"/>
<line number="341" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="342,343"/>
<line number="342" hits="0"/>
<line number="343" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="344,345"/>
<line number="344" hits="0"/>
<line number="345" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="346,347"/>
<line number="346" hits="0"/>
<line number="347" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="348,349"/>
<line number="348" hits="0"/>
<line number="349" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="350,351"/>
<line number="350" hits="0"/>
<line number="351" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="352,354"/>
<line number="352" hits="0"/>
<line number="354" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="355,357"/>
<line number="355" hits="0"/>
<line number="357" hits="0"/>
</lines>
</class>
<class name="generated_video.py" filename="packages/domain/generated_video.py" complexity="0" line-rate="0.8947" branch-rate="0.5">
<methods/>
<lines>
<line number="1" hits="1"/>
<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="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="25" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="32" hits="1"/>
<line number="33" hits="1"/>
<line number="49" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="50"/>
<line number="50" hits="0"/>
<line number="51" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="52"/>
<line number="52" hits="0"/>
<line number="53" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="54"/>
<line number="54" hits="0"/>
<line number="55" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="56"/>
<line number="56" hits="0"/>
<line number="57" hits="1"/>
</lines>
</class>
<class name="generation_task.py" filename="packages/domain/generation_task.py" complexity="0" line-rate="0.9655" branch-rate="0.9231">
<methods/>
<lines>
<line number="9" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="16" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="19"/>
<line number="17" hits="1"/>
<line number="19" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="25" 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="37" hits="1"/>
<line number="38" 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="56" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="57" hits="1"/>
<line number="58" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="59" hits="1"/>
<line number="60" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<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"/>
<line number="70" hits="1"/>
<line number="75" hits="1"/>
<line number="90" hits="1"/>
<line number="91" hits="1"/>
<line number="92" 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="98" hits="1"/>
<line number="99" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
<line number="102" hits="1"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="105" hits="1"/>
<line number="106" hits="1"/>
<line number="107" hits="1"/>
<line number="108" 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="115" hits="1"/>
<line number="116" hits="1"/>
<line number="117" hits="1"/>
<line number="118" hits="1"/>
<line number="119" hits="1"/>
<line number="120" hits="1"/>
<line number="121" hits="1"/>
<line number="123" hits="1"/>
<line number="124" hits="1"/>
<line number="146" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="147" hits="1"/>
<line number="148" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="149" hits="1"/>
<line number="150" hits="1"/>
<line number="174" hits="1"/>
<line number="175" hits="1"/>
<line number="177" hits="1"/>
<line number="179" hits="1"/>
<line number="180" hits="1"/>
<line number="182" hits="1"/>
<line number="184" hits="1"/>
<line number="185" hits="1"/>
<line number="187" hits="1"/>
<line number="189" hits="1"/>
<line number="190" hits="1"/>
<line number="192" hits="1"/>
<line number="196" hits="1"/>
<line number="205" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="211"/>
<line number="206" hits="1"/>
<line number="207" hits="1"/>
<line number="208" hits="0"/>
<line number="209" hits="0"/>
<line number="211" hits="1"/>
<line number="212" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="213" hits="1"/>
<line number="218" hits="1"/>
<line number="220" hits="1"/>
<line number="228" hits="1"/>
<line number="229" hits="1"/>
<line number="230" hits="1"/>
<line number="232" hits="1"/>
<line number="243" hits="1"/>
<line number="244" hits="1"/>
<line number="245" hits="1"/>
<line number="246" hits="1"/>
<line number="247" hits="1"/>
<line number="249" hits="1"/>
<line number="261" hits="1"/>
<line number="262" hits="1"/>
<line number="263" hits="1"/>
<line number="264" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="265" hits="1"/>
<line number="267" hits="1"/>
<line number="273" hits="1"/>
<line number="281" hits="1"/>
<line number="282" hits="1"/>
<line number="286" hits="1"/>
<line number="288" hits="1"/>
<line number="297" hits="1"/>
<line number="298" hits="1"/>
<line number="299" hits="1"/>
<line number="300" hits="1"/>
<line number="301" hits="1"/>
<line number="308" hits="1"/>
<line number="310" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="311" hits="1"/>
<line number="312" 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="321" hits="1"/>
<line number="330" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<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="337" hits="1"/>
<line number="338" hits="1"/>
<line number="339" hits="1"/>
</lines>
</class>
<class name="intro_outro_config.py" filename="packages/domain/intro_outro_config.py" complexity="0" line-rate="0.3866" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" 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="20" hits="1"/>
<line number="21" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="42" hits="1"/>
<line number="45" hits="1"/>
<line number="46" hits="1"/>
<line number="47" hits="1"/>
<line number="50" 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="56" hits="1"/>
<line number="59" 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="68" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="73" hits="1"/>
<line number="74" hits="1"/>
<line number="76" hits="1"/>
<line number="77" hits="1"/>
<line number="79" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="80,82"/>
<line number="80" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="84,86"/>
<line number="84" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="100" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="113" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="120" hits="0"/>
<line number="121" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="125" hits="0"/>
<line number="154" hits="1"/>
<line number="155" hits="1"/>
<line number="157" hits="0"/>
<line number="162" hits="1"/>
<line number="163" hits="1"/>
<line number="165" hits="0"/>
<line number="171" hits="1"/>
<line number="172" hits="1"/>
<line number="174" hits="0"/>
<line number="175" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="176,177"/>
<line number="176" hits="0"/>
<line number="177" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="178,179"/>
<line number="178" hits="0"/>
<line number="179" hits="0"/>
<line number="181" hits="1"/>
<line number="183" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="184,186"/>
<line number="184" hits="0"/>
<line number="186" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="187,189"/>
<line number="187" hits="0"/>
<line number="189" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="190,192"/>
<line number="190" hits="0"/>
<line number="192" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="193,194"/>
<line number="193" hits="0"/>
<line number="194" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="195,197"/>
<line number="195" hits="0"/>
<line number="197" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="198,199"/>
<line number="198" hits="0"/>
<line number="199" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="200,202"/>
<line number="200" hits="0"/>
<line number="202" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="203,204"/>
<line number="203" hits="0"/>
<line number="204" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="205,207"/>
<line number="205" hits="0"/>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="208,210"/>
<line number="208" hits="0"/>
<line number="210" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="211,212"/>
<line number="211" hits="0"/>
<line number="212" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="213,214"/>
<line number="213" hits="0"/>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="215,216"/>
<line number="215" hits="0"/>
<line number="216" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="217,219"/>
<line number="217" hits="0"/>
<line number="219" hits="0"/>
</lines>
</class>
<class name="job.py" filename="packages/domain/job.py" complexity="0" line-rate="0.5167" branch-rate="0.04167">
<methods/>
<lines>
<line number="11" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="17" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="20"/>
<line number="18" hits="1"/>
<line number="20" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="26" hits="1"/>
<line number="29" hits="1"/>
<line number="32" hits="1"/>
<line number="33" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="38" hits="1"/>
<line number="39" hits="1"/>
<line number="41" hits="1"/>
<line number="42" hits="1"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="47" hits="1"/>
<line number="48" hits="1"/>
<line number="51" 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="62" hits="1"/>
<line number="65" hits="1"/>
<line number="72" hits="1"/>
<line number="73" hits="1"/>
<line number="97" hits="1"/>
<line number="98" hits="1"/>
<line number="99" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
<line number="102" hits="1"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="105" hits="1"/>
<line number="106" hits="1"/>
<line number="107" hits="1"/>
<line number="108" 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="116" hits="1"/>
<line number="117" hits="1"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="144,147"/>
<line number="144" hits="0"/>
<line number="147" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="148,153"/>
<line number="148" hits="0"/>
<line number="149" hits="0"/>
<line number="150" hits="0"/>
<line number="151" hits="0"/>
<line number="153" hits="0"/>
<line number="163" hits="1"/>
<line number="164" hits="1"/>
<line number="166" hits="0"/>
<line number="168" hits="1"/>
<line number="169" hits="1"/>
<line number="171" hits="0"/>
<line number="173" hits="1"/>
<line number="182" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="183,188"/>
<line number="183" hits="0"/>
<line number="184" hits="0"/>
<line number="185" hits="0"/>
<line number="186" hits="0"/>
<line number="188" hits="0"/>
<line number="189" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="190,195"/>
<line number="190" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="200" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="201,202"/>
<line number="201" hits="0"/>
<line number="202" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,203"/>
<line number="203" hits="0"/>
<line number="205" hits="1"/>
<line number="207" hits="0"/>
<line number="208" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,209"/>
<line number="209" hits="0"/>
<line number="211" hits="1"/>
<line number="213" hits="0"/>
<line number="214" hits="0"/>
<line number="215" hits="0"/>
<line number="216" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,217"/>
<line number="217" hits="0"/>
<line number="219" hits="1"/>
<line number="221" hits="0"/>
<line number="222" hits="0"/>
<line number="223" hits="0"/>
<line number="225" hits="1"/>
<line number="227" hits="0"/>
<line number="228" hits="0"/>
<line number="230" hits="1"/>
<line number="240" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="241,242"/>
<line number="241" hits="0"/>
<line number="242" hits="0"/>
<line number="243" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="244,245"/>
<line number="244" hits="0"/>
<line number="245" hits="0"/>
<line number="247" hits="1"/>
<line number="253" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="254,258"/>
<line number="254" hits="0"/>
<line number="258" hits="0"/>
<line number="259" hits="0"/>
<line number="260" hits="0"/>
<line number="261" hits="0"/>
<line number="262" hits="0"/>
<line number="263" hits="0"/>
<line number="264" hits="0"/>
<line number="265" hits="0"/>
<line number="267" hits="1"/>
<line number="269" hits="0"/>
</lines>
</class>
<class name="media_validation.py" filename="packages/domain/media_validation.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="9" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="18" hits="0"/>
<line number="59" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="70,75"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="73,74"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="80" hits="0"/>
<line number="90" hits="0"/>
<line number="92" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="93,103"/>
<line number="93" hits="0"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="95,98"/>
<line number="95" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="101,102"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="104,106"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="107,110"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
</lines>
</class>
<class name="noise_reduction_config.py" filename="packages/domain/noise_reduction_config.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="11" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="24" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="35" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="84" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="85,87"/>
<line number="85" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="98" hits="0"/>
<line number="101" hits="0"/>
<line number="103" hits="0"/>
<line number="110" hits="0"/>
<line number="112" hits="0"/>
<line number="114" hits="0"/>
<line number="116" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="117,118"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0"/>
<line number="121" hits="0"/>
<line number="123" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="124,129"/>
<line number="124" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="132" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,137"/>
<line number="135" hits="0"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="138,140"/>
<line number="138" hits="0"/>
<line number="140" hits="0"/>
<line number="146" hits="0"/>
<line number="161" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="162,164"/>
<line number="162" hits="0"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="170" hits="0"/>
<line number="173" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="174,178"/>
<line number="174" hits="0"/>
<line number="175" hits="0"/>
<line number="176" hits="0"/>
<line number="178" hits="0"/>
<line number="181" hits="0"/>
<line number="191" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="192,194"/>
<line number="192" hits="0"/>
<line number="194" hits="0"/>
<line number="200" hits="0"/>
<line number="215" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="216,218"/>
<line number="216" hits="0"/>
<line number="218" hits="0"/>
<line number="219" hits="0"/>
<line number="220" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="221,223"/>
<line number="221" hits="0"/>
<line number="223" hits="0"/>
<line number="224" hits="0"/>
<line number="225" hits="0"/>
<line number="226" hits="0"/>
<line number="229" hits="0"/>
<line number="231" hits="0"/>
</lines>
</class>
<class name="pip_config.py" filename="packages/domain/pip_config.py" complexity="0" line-rate="0.4825" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="13" 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="25" hits="1"/>
<line number="26" hits="1"/>
<line number="28" 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="48" hits="1"/>
<line number="61" hits="1"/>
<line number="62" hits="1"/>
<line number="66" hits="1"/>
<line number="67" hits="1"/>
<line number="70" hits="1"/>
<line number="71" hits="1"/>
<line number="72" hits="1"/>
<line number="73" hits="1"/>
<line number="76" hits="1"/>
<line number="77" hits="1"/>
<line number="80" hits="1"/>
<line number="81" hits="1"/>
<line number="82" hits="1"/>
<line number="83" hits="1"/>
<line number="86" 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="97" hits="1"/>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="100,102"/>
<line number="100" hits="0"/>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="103,105"/>
<line number="103" hits="0"/>
<line number="105" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="106,108"/>
<line number="106" hits="0"/>
<line number="108" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="109,111"/>
<line number="109" hits="0"/>
<line number="111" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="112,114"/>
<line number="112" hits="0"/>
<line number="114" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="115,117"/>
<line number="115" hits="0"/>
<line number="117" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="118,120"/>
<line number="118" hits="0"/>
<line number="120" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="121,123"/>
<line number="121" hits="0"/>
<line number="123" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="124,126"/>
<line number="124" hits="0"/>
<line number="126" hits="0"/>
<line number="129" hits="1"/>
<line number="130" hits="1"/>
<line number="133" hits="1"/>
<line number="134" hits="1"/>
<line number="136" hits="1"/>
<line number="137" hits="1"/>
<line number="139" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="140,142"/>
<line number="140" hits="0"/>
<line number="142" hits="0"/>
<line number="143" hits="0"/>
<line number="144" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="145,175"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="166" hits="0"/>
<line number="167" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="168,170"/>
<line number="168" hits="0"/>
<line number="170" hits="0"/>
<line number="171" hits="0"/>
<line number="172" hits="0"/>
<line number="175" hits="0"/>
<line number="177" hits="0"/>
<line number="179" hits="1"/>
<line number="180" hits="1"/>
<line number="182" hits="0"/>
<line number="184" hits="1"/>
<line number="185" hits="1"/>
<line number="187" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="188,189"/>
<line number="188" hits="0"/>
<line number="189" hits="0"/>
<line number="195" hits="1"/>
<line number="206" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="207,208"/>
<line number="207" hits="0"/>
<line number="208" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="209,214"/>
<line number="209" hits="0"/>
<line number="210" hits="0"/>
<line number="211" hits="0"/>
<line number="212" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0"/>
<line number="215" hits="0"/>
<line number="216" hits="0"/>
<line number="217" hits="0"/>
<line number="220" hits="1"/>
<line number="245" hits="0"/>
<line number="246" hits="0"/>
<line number="247" hits="0"/>
<line number="249" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="250,254"/>
<line number="250" hits="0"/>
<line number="251" hits="0"/>
<line number="252" hits="0"/>
<line number="254" hits="0"/>
<line number="265" hits="0"/>
</lines>
</class>
<class name="plan_generator_utils.py" filename="packages/domain/plan_generator_utils.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="29" hits="0"/>
<line number="47" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="48,50"/>
<line number="48" hits="0"/>
<line number="50" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="51,52"/>
<line number="51" hits="0"/>
<line number="52" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="53,54"/>
<line number="53" hits="0"/>
<line number="54" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="55,56"/>
<line number="55" hits="0"/>
<line number="56" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="57,60"/>
<line number="57" hits="0"/>
<line number="60" hits="0"/>
<line number="63" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,70"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="69,71"/>
<line number="71" hits="0"/>
<line number="74" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="82,85"/>
<line number="82" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,88"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="87,89"/>
<line number="89" hits="0"/>
<line number="92" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,99"/>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="98,100"/>
<line number="100" hits="0"/>
<line number="103" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="112" hits="0"/>
<line number="115" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="116,120"/>
<line number="116" hits="0"/>
<line number="117" hits="0"/>
<line number="120" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="121,125"/>
<line number="121" hits="0"/>
<line number="122" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,127"/>
<line number="127" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="126,128"/>
<line number="128" hits="0"/>
<line number="134" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="155,157"/>
<line number="155" hits="0"/>
<line number="157" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="159,163"/>
<line number="159" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,160"/>
<line number="160" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="159,161"/>
<line number="161" hits="0"/>
<line number="163" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,164"/>
<line number="164" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,165"/>
<line number="165" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="166,167"/>
<line number="166" hits="0"/>
<line number="167" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="168,170"/>
<line number="168" hits="0"/>
<line number="170" hits="0"/>
<line number="178" hits="0"/>
<line number="198" hits="0"/>
<line number="199" hits="0"/>
<line number="200" hits="0"/>
<line number="202" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="204,225"/>
<line number="204" hits="0"/>
<line number="212" hits="0"/>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="215,286"/>
<line number="215" hits="0"/>
<line number="223" hits="0"/>
<line number="225" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="227,239"/>
<line number="227" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="228,286"/>
<line number="228" hits="0"/>
<line number="237" hits="0"/>
<line number="239" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="241,275"/>
<line number="241" hits="0"/>
<line number="249" hits="0"/>
<line number="251" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="252,262"/>
<line number="252" hits="0"/>
<line number="260" hits="0"/>
<line number="262" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="263,286"/>
<line number="263" hits="0"/>
<line number="271" hits="0"/>
<line number="275" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="276,286"/>
<line number="276" hits="0"/>
<line number="284" hits="0"/>
<line number="286" hits="0"/>
<line number="292" hits="0"/>
<line number="305" hits="0"/>
<line number="307" hits="0"/>
<line number="309" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="311,343"/>
<line number="311" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="312,313"/>
<line number="312" hits="0"/>
<line number="313" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="314,315"/>
<line number="314" hits="0"/>
<line number="315" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="316,318"/>
<line number="316" hits="0"/>
<line number="318" hits="0"/>
<line number="321" hits="0"/>
<line number="324" hits="0"/>
<line number="327" hits="0"/>
<line number="328" hits="0"/>
<line number="330" hits="0"/>
<line number="341" hits="0"/>
<line number="343" hits="0"/>
</lines>
</class>
<class name="preset_bgm.py" filename="packages/domain/preset_bgm.py" complexity="0" line-rate="0.6071" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" 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="22" hits="1"/>
<line number="23" hits="1"/>
<line number="28" hits="1"/>
<line number="127" hits="1"/>
<line number="140" hits="1"/>
<line number="142" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="143,145"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="142,144"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="148" hits="1"/>
<line number="150" hits="0"/>
<line number="153" hits="1"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="157" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="158,160"/>
<line number="158" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="157,159"/>
<line number="159" hits="0"/>
<line number="160" hits="0"/>
</lines>
</class>
<class name="preset_voices.py" filename="packages/domain/preset_voices.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="36" hits="0"/>
<line number="38" hits="0"/>
<line number="51" hits="0"/>
<line number="127" hits="0"/>
<line number="129" hits="0"/>
<line number="132" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,137"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="134,136"/>
<line number="136" hits="0"/>
<line number="137" hits="0"/>
<line number="140" hits="0"/>
<line number="142" hits="0"/>
</lines>
</class>
<class name="quota.py" filename="packages/domain/quota.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="19" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="43" hits="0"/>
<line number="45" hits="0"/>
<line number="47" hits="0"/>
<line number="49" hits="0"/>
<line number="53" hits="0"/>
<line number="105" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0"/>
<line number="120" hits="0"/>
<line number="121" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="128,129"/>
<line number="128" hits="0"/>
<line number="129" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="130,131"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="134" hits="0"/>
<line number="141" hits="0"/>
<line number="142" hits="0"/>
<line number="143" hits="0"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,147"/>
<line number="147" hits="0"/>
<line number="149" hits="0"/>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="163,165"/>
<line number="163" hits="0"/>
<line number="165" hits="0"/>
<line number="168" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="169,174"/>
<line number="169" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,170"/>
<line number="170" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="169,171"/>
<line number="171" hits="0"/>
<line number="174" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,175"/>
<line number="175" hits="0"/>
<line number="177" hits="0"/>
<line number="179" hits="0"/>
<line number="181" hits="0"/>
<line number="183" hits="0"/>
<line number="184" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="185,186"/>
<line number="185" hits="0"/>
<line number="186" hits="0"/>
<line number="188" hits="0"/>
<line number="190" hits="0"/>
<line number="192" hits="0"/>
<line number="194" hits="0"/>
<line number="197" hits="0"/>
<line number="204" hits="0"/>
<line number="205" hits="0"/>
<line number="207" hits="0"/>
<line number="223" hits="0"/>
<line number="224" hits="0"/>
<line number="225" hits="0"/>
<line number="226" hits="0"/>
<line number="228" hits="0"/>
<line number="237" hits="0"/>
<line number="243" hits="0"/>
<line number="245" hits="0"/>
<line number="246" hits="0"/>
<line number="248" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="249,250"/>
<line number="249" hits="0"/>
<line number="250" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="251,253"/>
<line number="251" hits="0"/>
<line number="253" hits="0"/>
<line number="254" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="255,256"/>
<line number="255" hits="0"/>
<line number="256" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="257,258"/>
<line number="257" hits="0"/>
<line number="258" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="259,260"/>
<line number="259" hits="0"/>
<line number="260" hits="0"/>
<line number="263" hits="0"/>
<line number="265" hits="0"/>
<line number="269" hits="0"/>
<line number="270" hits="0"/>
</lines>
</class>
<class name="recipe.py" filename="packages/domain/recipe.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
</lines>
</class>
<class name="render_layer_utils.py" filename="packages/domain/render_layer_utils.py" complexity="0" line-rate="0.1667" branch-rate="0">
<methods/>
<lines>
<line number="12" hits="1"/>
<line number="14" hits="1"/>
<line number="19" hits="1"/>
<line number="29" hits="1"/>
<line number="32" hits="1"/>
<line number="38" hits="1"/>
<line number="58" hits="0"/>
<line number="60" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="61,62"/>
<line number="61" hits="0"/>
<line number="62" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="63,64"/>
<line number="63" hits="0"/>
<line number="64" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="65,66"/>
<line number="65" hits="0"/>
<line number="66" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="67,68"/>
<line number="67" hits="0"/>
<line number="68" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="69,71"/>
<line number="69" hits="0"/>
<line number="71" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="72,73"/>
<line number="72" hits="0"/>
<line number="73" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="74,75"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="78" hits="1"/>
<line number="87" hits="0"/>
<line number="93" hits="1"/>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="111,112"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="115" hits="1"/>
<line number="124" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="125,126"/>
<line number="125" hits="0"/>
<line number="126" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="127,128"/>
<line number="127" hits="0"/>
<line number="128" hits="0"/>
<line number="131" hits="1"/>
<line number="146" hits="0"/>
<line number="147" hits="0"/>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="149,150"/>
<line number="149" hits="0"/>
<line number="150" hits="0"/>
<line number="156" hits="1"/>
<line number="173" hits="0"/>
<line number="174" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="175,182"/>
<line number="175" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="176,179"/>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="175,177"/>
<line number="177" hits="0"/>
<line number="178" hits="0"/>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="174,180"/>
<line number="180" hits="0"/>
<line number="182" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="183,185"/>
<line number="183" hits="0"/>
<line number="185" hits="0"/>
<line number="186" hits="0"/>
<line number="196" hits="0"/>
<line number="197" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="198,200"/>
<line number="198" hits="0"/>
<line number="200" hits="0"/>
<line number="206" hits="1"/>
<line number="228" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="229,230"/>
<line number="229" hits="0"/>
<line number="230" hits="0"/>
<line number="231" hits="0"/>
<line number="232" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="233,234"/>
<line number="233" hits="0"/>
<line number="234" hits="0"/>
<line number="235" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="236,237"/>
<line number="236" hits="0"/>
<line number="237" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="238,239"/>
<line number="238" hits="0"/>
<line number="239" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="240,241"/>
<line number="240" hits="0"/>
<line number="241" hits="0"/>
</lines>
</class>
<class name="speed_config.py" filename="packages/domain/speed_config.py" complexity="0" line-rate="0.3418" branch-rate="0">
<methods/>
<lines>
<line number="10" 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="21" hits="1"/>
<line number="22" hits="1"/>
<line number="25" hits="1"/>
<line number="26" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="40" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="41,43"/>
<line number="41" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="45,47"/>
<line number="45" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="49,51"/>
<line number="49" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="55" hits="1"/>
<line number="57" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="58,59"/>
<line number="58" hits="0"/>
<line number="59" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="60,61"/>
<line number="60" hits="0"/>
<line number="61" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,62"/>
<line number="62" hits="0"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="67" hits="0"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="72" hits="0"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="77" hits="0"/>
<line number="83" hits="1"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="89,91"/>
<line number="89" hits="0"/>
<line number="91" hits="0"/>
<line number="94" hits="1"/>
<line number="105" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="106,108"/>
<line number="106" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="113" hits="1"/>
<line number="115" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="116,118"/>
<line number="116" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0"/>
<line number="122" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="123,130"/>
<line number="123" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="124,126"/>
<line number="124" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="130" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="131,133"/>
<line number="131" hits="0"/>
<line number="132" hits="0"/>
<line number="133" hits="0"/>
<line number="135" hits="0"/>
<line number="141" hits="1"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="147,148"/>
<line number="147" hits="0"/>
<line number="148" hits="0"/>
<line number="154" hits="1"/>
<line number="162" hits="0"/>
<line number="163" hits="0"/>
<line number="164" hits="0"/>
<line number="171" hits="1"/>
<line number="176" hits="0"/>
<line number="177" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="178,179"/>
<line number="178" hits="0"/>
<line number="179" hits="0"/>
</lines>
</class>
<class name="sticker_config.py" filename="packages/domain/sticker_config.py" complexity="0" line-rate="0.4803" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="14" hits="1"/>
<line number="23" hits="1"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="43" hits="1"/>
<line number="44" hits="1"/>
<line number="46" hits="1"/>
<line number="47" hits="1"/>
<line number="48" 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="59" hits="1"/>
<line number="61" 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="70" hits="1"/>
<line number="72" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="73,75"/>
<line number="73" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="80" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="85,86"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="102" hits="0"/>
<line number="123" hits="1"/>
<line number="124" hits="1"/>
<line number="126" hits="0"/>
<line number="128" hits="1"/>
<line number="129" hits="1"/>
<line number="131" hits="0"/>
<line number="134" hits="1"/>
<line number="135" hits="1"/>
<line number="138" hits="1"/>
<line number="139" hits="1"/>
<line number="140" hits="1"/>
<line number="142" hits="1"/>
<line number="143" hits="1"/>
<line number="144" hits="1"/>
<line number="146" hits="1"/>
<line number="147" hits="1"/>
<line number="149" 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="160" hits="1"/>
<line number="161" hits="1"/>
<line number="163" hits="1"/>
<line number="164" hits="1"/>
<line number="166" hits="1"/>
<line number="168" hits="1"/>
<line number="169" hits="1"/>
<line number="170" hits="1"/>
<line number="171" hits="1"/>
<line number="173" hits="1"/>
<line number="174" hits="1"/>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="177,179"/>
<line number="177" hits="0"/>
<line number="179" hits="0"/>
<line number="180" hits="0"/>
<line number="181" hits="0"/>
<line number="182" hits="0"/>
<line number="183" hits="0"/>
<line number="184" hits="0"/>
<line number="186" hits="0"/>
<line number="187" hits="0"/>
<line number="188" hits="0"/>
<line number="189" hits="0"/>
<line number="190" hits="0"/>
<line number="191" hits="0"/>
<line number="193" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="198" hits="0"/>
<line number="199" hits="0"/>
<line number="200" hits="0"/>
<line number="201" hits="0"/>
<line number="202" hits="0"/>
<line number="204" hits="0"/>
<line number="233" hits="1"/>
<line number="234" hits="1"/>
<line number="236" hits="0"/>
<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="249" hits="1"/>
<line number="250" hits="1"/>
<line number="256" hits="1"/>
<line number="273" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="274,276"/>
<line number="274" hits="0"/>
<line number="276" hits="0"/>
<line number="279" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="280,285"/>
<line number="280" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="281,283"/>
<line number="281" hits="0"/>
<line number="283" hits="0"/>
<line number="285" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="286,292"/>
<line number="286" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="287,289"/>
<line number="287" hits="0"/>
<line number="289" hits="0"/>
<line number="292" hits="0"/>
<line number="293" hits="0"/>
<line number="296" hits="0"/>
<line number="297" hits="0"/>
<line number="299" hits="0"/>
<line number="302" hits="1"/>
<line number="304" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="305,306"/>
<line number="305" hits="0"/>
<line number="306" hits="0"/>
<line number="307" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="308,309"/>
<line number="308" hits="0"/>
<line number="309" hits="0"/>
<line number="312" hits="1"/>
<line number="314" hits="0"/>
</lines>
</class>
<class name="subtitle.py" filename="packages/domain/subtitle.py" complexity="0" line-rate="0.3271" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="0"/>
<line number="22" hits="1"/>
<line number="23" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="31" hits="1"/>
<line number="32" hits="1"/>
<line number="33" hits="0"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="0"/>
<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="48" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="0"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="54" hits="0"/>
<line number="56" hits="1"/>
<line number="58" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="59,61"/>
<line number="59" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="64" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="65,72"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="64,68"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="72" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="73,80"/>
<line number="73" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="75,78"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="78" hits="0"/>
<line number="80" hits="0"/>
<line number="86" hits="1"/>
<line number="88" hits="0"/>
<line number="90" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="91,128"/>
<line number="91" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="92,96"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="98,102"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="107" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="90,108"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="113" hits="0"/>
<line number="114" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="115,118"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="118" hits="0"/>
<line number="126" hits="0"/>
<line number="128" hits="0"/>
<line number="134" hits="1"/>
<line number="135" hits="1"/>
<line number="136" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="137,138"/>
<line number="137" hits="0"/>
<line number="138" hits="0"/>
<line number="145" hits="1"/>
<line number="146" hits="1"/>
<line number="149" hits="0"/>
<line number="150" hits="0"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="155" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="156,180"/>
<line number="156" hits="0"/>
<line number="158" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="160,174"/>
<line number="160" hits="0"/>
<line number="161" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="162,166"/>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="161,163"/>
<line number="163" hits="0"/>
<line number="164" hits="0"/>
<line number="166" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="167,171"/>
<line number="167" hits="0"/>
<line number="168" hits="0"/>
<line number="171" hits="0"/>
<line number="172" hits="0"/>
<line number="174" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="155,176"/>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="155,177"/>
<line number="177" hits="0"/>
<line number="178" hits="0"/>
<line number="180" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="181,183"/>
<line number="181" hits="0"/>
<line number="183" hits="0"/>
</lines>
</class>
<class name="subtitle_style.py" filename="packages/domain/subtitle_style.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="15" hits="0"/>
<line number="28" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="44" hits="0"/>
<line number="50" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="54,55"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="59" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="63,64"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="68" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="74" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="81" hits="0"/>
<line number="83" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="84,85"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="91" hits="0"/>
<line number="93" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="94,95"/>
<line number="94" hits="0"/>
<line number="95" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="96,98"/>
<line number="96" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="103,113"/>
<line number="103" hits="0"/>
<line number="105" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="106,110"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="105,107"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="113" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="114,116"/>
<line number="114" hits="0"/>
<line number="116" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0"/>
<line number="128" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0"/>
<line number="135" hits="0"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0"/>
<line number="141" hits="0"/>
<line number="142" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0"/>
<line number="147" hits="0"/>
<line number="148" hits="0"/>
<line number="149" hits="0"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="162" hits="0"/>
<line number="163" hits="0"/>
<line number="164" hits="0"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="169" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="170,172"/>
<line number="170" hits="0"/>
<line number="172" hits="0"/>
<line number="173" hits="0"/>
<line number="174" hits="0"/>
<line number="176" hits="0"/>
<line number="177" hits="0"/>
<line number="178" hits="0"/>
<line number="179" hits="0"/>
<line number="180" hits="0"/>
<line number="182" hits="0"/>
<line number="183" hits="0"/>
<line number="184" hits="0"/>
<line number="185" hits="0"/>
<line number="186" hits="0"/>
<line number="188" hits="0"/>
<line number="189" hits="0"/>
<line number="191" hits="0"/>
<line number="192" hits="0"/>
<line number="193" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="194,196"/>
<line number="194" hits="0"/>
<line number="196" hits="0"/>
<line number="226" hits="0"/>
<line number="227" hits="0"/>
<line number="229" hits="0"/>
<line number="231" hits="0"/>
<line number="232" hits="0"/>
<line number="234" hits="0"/>
<line number="236" hits="0"/>
<line number="237" hits="0"/>
<line number="238" hits="0"/>
<line number="240" hits="0"/>
<line number="241" hits="0"/>
<line number="242" hits="0"/>
<line number="244" hits="0"/>
<line number="245" hits="0"/>
<line number="247" hits="0"/>
<line number="248" hits="0"/>
<line number="249" hits="0"/>
<line number="255" hits="0"/>
<line number="256" hits="0"/>
<line number="259" hits="0"/>
<line number="260" hits="0"/>
<line number="261" hits="0"/>
<line number="262" hits="0"/>
<line number="264" hits="0"/>
<line number="265" hits="0"/>
<line number="267" hits="0"/>
<line number="269" hits="0"/>
<line number="270" hits="0"/>
<line number="272" hits="0"/>
</lines>
</class>
<class name="tag.py" filename="packages/domain/tag.py" complexity="0" line-rate="0.7333" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="8" hits="1"/>
<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="15" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="0"/>
<line number="18" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="19,20"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
</lines>
</class>
<class name="template.py" filename="packages/domain/template.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
</lines>
</class>
<class name="template_clip_config.py" filename="packages/domain/template_clip_config.py" complexity="0" line-rate="0.7241" branch-rate="0.08333">
<methods/>
<lines>
<line number="6" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="12" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="15"/>
<line number="13" hits="1"/>
<line number="15" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="25" hits="1"/>
<line number="28" hits="1"/>
<line number="29" 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="39" 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="47" hits="1"/>
<line number="48" hits="1"/>
<line number="55" hits="1"/>
<line number="56" hits="1"/>
<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="62" hits="1"/>
<line number="63" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="1"/>
<line number="68" hits="1"/>
<line number="69" hits="1"/>
<line number="83" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="84,85"/>
<line number="84" hits="0"/>
<line number="85" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="86,87"/>
<line number="86" hits="0"/>
<line number="87" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="88,89"/>
<line number="88" hits="0"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="90,92"/>
<line number="90" hits="0"/>
<line number="92" hits="0"/>
<line number="105" hits="1"/>
<line number="106" hits="1"/>
<line number="108" hits="0"/>
<line number="110" hits="1"/>
<line number="111" hits="1"/>
<line number="113" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="114,115"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
</lines>
</class>
<class name="template_clip_converter.py" filename="packages/domain/template_clip_converter.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="16" hits="0"/>
<line number="25" hits="0"/>
<line number="35" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="36,37"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="43" hits="0"/>
<line number="53" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="54,55"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="64" hits="0"/>
<line number="72" hits="0"/>
<line number="82" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="105" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="106,108"/>
<line number="106" hits="0"/>
<line number="108" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="109,111"/>
<line number="109" hits="0"/>
<line number="111" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="112,114"/>
<line number="112" hits="0"/>
<line number="114" hits="0"/>
<line number="117" hits="0"/>
<line number="130" hits="0"/>
<line number="131" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="132,133"/>
<line number="132" hits="0"/>
<line number="133" hits="0"/>
<line number="139" hits="0"/>
<line number="162" hits="0"/>
<line number="163" hits="0"/>
<line number="165" hits="0"/>
<line number="170" hits="0"/>
<line number="172" hits="0"/>
<line number="184" hits="0"/>
<line number="197" hits="0"/>
<line number="203" hits="0"/>
<line number="205" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="206,207"/>
<line number="206" hits="0"/>
<line number="207" hits="0"/>
<line number="210" hits="0"/>
<line number="220" hits="0"/>
<line number="231" hits="0"/>
<line number="233" hits="0"/>
<line number="239" hits="0"/>
<line number="252" hits="0"/>
<line number="253" hits="0"/>
<line number="255" hits="0"/>
<line number="267" hits="0"/>
<line number="272" hits="0"/>
<line number="278" hits="0"/>
<line number="290" hits="0"/>
<line number="291" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="292,293"/>
<line number="292" hits="0"/>
<line number="293" hits="0"/>
</lines>
</class>
<class name="template_version.py" filename="packages/domain/template_version.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="43" hits="0"/>
</lines>
</class>
<class name="title_library.py" filename="packages/domain/title_library.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" 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="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="25" hits="1"/>
</lines>
</class>
<class name="transition_config.py" filename="packages/domain/transition_config.py" complexity="0" line-rate="0.5464" branch-rate="0.25">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="13" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="16"/>
<line number="14" hits="1"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="22" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="33" hits="1"/>
<line number="39" hits="1"/>
<line number="46" hits="1"/>
<line number="49" hits="1"/>
<line number="52" hits="1"/>
<line number="55" hits="1"/>
<line number="56" hits="1"/>
<line number="57" hits="1"/>
<line number="58" 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="70" hits="1"/>
<line number="73" hits="1"/>
<line number="75" hits="1"/>
<line number="76" hits="1"/>
<line number="78" hits="0"/>
<line number="80" hits="1"/>
<line number="81" hits="1"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="90" hits="1"/>
<line number="92" hits="1"/>
<line number="96" hits="1"/>
<line number="97" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="98" hits="1"/>
<line number="101" hits="1"/>
<line number="115" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="116" hits="1"/>
<line number="117" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="118" hits="1"/>
<line number="124" hits="1"/>
<line number="141" hits="1"/>
<line number="143" hits="0"/>
<line number="144" hits="0"/>
<line number="150" hits="1"/>
<line number="151" hits="1"/>
<line number="159" hits="1"/>
<line number="160" hits="1"/>
<line number="162" hits="1"/>
<line number="163" hits="1"/>
<line number="178" hits="0"/>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="180,194"/>
<line number="180" hits="0"/>
<line number="181" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="182,183"/>
<line number="182" hits="0"/>
<line number="183" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="184,187"/>
<line number="184" hits="0"/>
<line number="187" hits="0"/>
<line number="191" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="196,222"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="198" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="199,205"/>
<line number="199" hits="0"/>
<line number="204" hits="0"/>
<line number="205" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="206,213"/>
<line number="206" hits="0"/>
<line number="211" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0"/>
<line number="215" hits="0"/>
<line number="220" hits="0"/>
<line number="222" hits="0"/>
<line number="224" hits="1"/>
<line number="225" hits="1"/>
<line number="227" hits="0"/>
<line number="229" hits="1"/>
<line number="230" hits="1"/>
<line number="232" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="233,234"/>
<line number="233" hits="0"/>
<line number="234" hits="0"/>
<line number="235" hits="0"/>
<line number="237" hits="1"/>
<line number="239" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="240,241"/>
<line number="240" hits="0"/>
<line number="241" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="242,243"/>
<line number="242" hits="0"/>
<line number="243" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="244,245"/>
<line number="244" hits="0"/>
<line number="245" hits="0"/>
</lines>
</class>
<class name="transition_presets.py" filename="packages/domain/transition_presets.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="23" hits="0"/>
<line number="25" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="30" hits="0"/>
<line number="35" hits="0"/>
<line number="266" hits="0"/>
<line number="268" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="269,271"/>
<line number="269" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="268,270"/>
<line number="270" hits="0"/>
<line number="271" hits="0"/>
<line number="274" hits="0"/>
<line number="288" hits="0"/>
<line number="290" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="291,293"/>
<line number="291" hits="0"/>
<line number="293" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="294,301"/>
<line number="294" hits="0"/>
<line number="295" hits="0"/>
<line number="301" hits="0"/>
<line number="304" hits="0"/>
<line number="306" hits="0"/>
</lines>
</class>
<class name="trim_config.py" filename="packages/domain/trim_config.py" complexity="0" line-rate="0.2238" branch-rate="0">
<methods/>
<lines>
<line number="11" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="17" hits="1"/>
<line number="23" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="42" hits="1"/>
<line number="43" hits="1"/>
<line number="44" hits="1"/>
<line number="46" hits="1"/>
<line number="47" hits="1"/>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="50,52"/>
<line number="50" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="57" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="58,63"/>
<line number="58" hits="0"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="65,66"/>
<line number="65" hits="0"/>
<line number="66" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="68,69"/>
<line number="68" hits="0"/>
<line number="69" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="70,72"/>
<line number="70" hits="0"/>
<line number="72" hits="0"/>
<line number="74" hits="1"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="85" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="86,89"/>
<line number="86" hits="0"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="90,95"/>
<line number="90" hits="0"/>
<line number="95" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="96,101"/>
<line number="96" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="98,99"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="101" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,107"/>
<line number="102" hits="0"/>
<line number="103" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="104,122"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="107" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="108,110"/>
<line number="108" hits="0"/>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="111,114"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="114" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="115,119"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="119" hits="0"/>
<line number="122" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="123,127"/>
<line number="123" hits="0"/>
<line number="124" hits="0"/>
<line number="127" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="128,133"/>
<line number="128" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="133" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="134,136"/>
<line number="134" hits="0"/>
<line number="136" hits="0"/>
<line number="138" hits="1"/>
<line number="139" hits="1"/>
<line number="141" hits="0"/>
<line number="143" hits="1"/>
<line number="144" hits="1"/>
<line number="146" hits="0"/>
<line number="148" hits="1"/>
<line number="149" hits="1"/>
<line number="151" hits="0"/>
<line number="154" hits="1"/>
<line number="155" 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="1"/>
<line number="165" hits="0"/>
<line number="179" hits="1"/>
<line number="194" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="196,198"/>
<line number="196" hits="0"/>
<line number="198" hits="0"/>
<line number="201" hits="0"/>
<line number="202" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="203,204"/>
<line number="203" hits="0"/>
<line number="204" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="205,206"/>
<line number="205" hits="0"/>
<line number="206" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="209,211"/>
<line number="209" hits="0"/>
<line number="211" hits="0"/>
<line number="212" hits="0"/>
<line number="214" hits="0"/>
<line number="215" hits="0"/>
<line number="218" hits="1"/>
<line number="233" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="234,236"/>
<line number="234" hits="0"/>
<line number="236" hits="0"/>
<line number="238" hits="0"/>
<line number="239" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="240,241"/>
<line number="240" hits="0"/>
<line number="241" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="242,244"/>
<line number="242" hits="0"/>
<line number="244" hits="0"/>
<line number="245" hits="0"/>
<line number="247" hits="0"/>
<line number="248" hits="0"/>
<line number="254" hits="1"/>
<line number="267" hits="0"/>
<line number="268" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="269,285"/>
<line number="269" hits="0"/>
<line number="270" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="271,277"/>
<line number="271" hits="0"/>
<line number="276" hits="0"/>
<line number="277" hits="0"/>
<line number="285" hits="0"/>
<line number="286" hits="0"/>
<line number="289" hits="1"/>
<line number="296" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="297,300"/>
<line number="297" hits="0"/>
<line number="300" hits="0"/>
<line number="301" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="302,309"/>
<line number="302" hits="0"/>
<line number="303" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="304,306"/>
<line number="304" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="303,305"/>
<line number="305" hits="0"/>
<line number="306" hits="0"/>
<line number="309" hits="0"/>
<line number="310" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="311,322"/>
<line number="311" hits="0"/>
<line number="320" hits="0"/>
<line number="322" hits="0"/>
<line number="328" hits="1"/>
<line number="335" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="336,339"/>
<line number="336" hits="0"/>
<line number="339" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="340,343"/>
<line number="340" hits="0"/>
<line number="343" hits="0"/>
<line number="344" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="345,347"/>
<line number="345" hits="0"/>
<line number="347" hits="0"/>
<line number="352" hits="0"/>
</lines>
</class>
<class name="tts_config.py" filename="packages/domain/tts_config.py" complexity="0" line-rate="0.2712" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="9" hits="1"/>
<line number="10" 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="29" hits="1"/>
<line number="30" hits="1"/>
<line number="31" hits="1"/>
<line number="33" hits="1"/>
<line number="34" hits="1"/>
<line number="36" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="37,39"/>
<line number="37" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="41,43"/>
<line number="41" hits="0"/>
<line number="43" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="44,46"/>
<line number="44" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="48,50"/>
<line number="48" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="52,54"/>
<line number="52" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="56,58"/>
<line number="56" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="60,62"/>
<line number="60" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="64,66"/>
<line number="64" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="68,70"/>
<line number="68" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="72,74"/>
<line number="72" hits="0"/>
<line number="74" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="87" hits="1"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="90,91"/>
<line number="90" hits="0"/>
<line number="91" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="92,94"/>
<line number="92" hits="0"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="95,96"/>
<line number="95" hits="0"/>
<line number="96" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="97,99"/>
<line number="97" hits="0"/>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="100,101"/>
<line number="100" hits="0"/>
<line number="101" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,102"/>
<line number="102" hits="0"/>
</lines>
</class>
<class name="tts_job.py" filename="packages/domain/tts_job.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="11" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="17" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="18,20"/>
<line number="18" hits="0"/>
<line number="20" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="26" hits="0"/>
<line number="29" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="49" hits="0"/>
<line number="52" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="147,148"/>
<line number="147" hits="0"/>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="149,150"/>
<line number="149" hits="0"/>
<line number="150" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="151,152"/>
<line number="151" hits="0"/>
<line number="152" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="153,155"/>
<line number="153" hits="0"/>
<line number="155" hits="0"/>
<line number="169" hits="0"/>
<line number="170" hits="0"/>
<line number="172" hits="0"/>
<line number="174" hits="0"/>
<line number="175" hits="0"/>
<line number="177" hits="0"/>
<line number="179" hits="0"/>
<line number="180" hits="0"/>
<line number="182" hits="0"/>
<line number="184" hits="0"/>
<line number="193" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="194,199"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="199" hits="0"/>
<line number="200" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="201,206"/>
<line number="201" hits="0"/>
<line number="206" hits="0"/>
<line number="207" hits="0"/>
<line number="208" hits="0"/>
<line number="210" hits="0"/>
<line number="212" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0"/>
<line number="216" hits="0"/>
<line number="232" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="233,234"/>
<line number="233" hits="0"/>
<line number="234" hits="0"/>
<line number="235" hits="0"/>
<line number="236" hits="0"/>
<line number="237" hits="0"/>
<line number="238" hits="0"/>
<line number="239" hits="0"/>
<line number="240" hits="0"/>
<line number="242" hits="0"/>
<line number="248" hits="0"/>
<line number="249" hits="0"/>
<line number="251" hits="0"/>
<line number="253" hits="0"/>
<line number="255" hits="0"/>
<line number="261" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="262,266"/>
<line number="262" hits="0"/>
<line number="266" hits="0"/>
<line number="267" hits="0"/>
<line number="268" hits="0"/>
<line number="269" hits="0"/>
<line number="270" hits="0"/>
<line number="272" hits="0"/>
<line number="274" hits="0"/>
</lines>
</class>
<class name="url_security.py" filename="packages/domain/url_security.py" complexity="0" line-rate="0.466" branch-rate="0.2586">
<methods/>
<lines>
<line number="15" hits="1"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="21" hits="1"/>
<line number="24" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="31" hits="1"/>
<line number="34" hits="1"/>
<line number="47" hits="1"/>
<line number="50" hits="1"/>
<line number="83" hits="1"/>
<line number="101" hits="1"/>
<line number="114" hits="1"/>
<line number="128" hits="1"/>
<line number="135" hits="1"/>
<line number="136" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="137"/>
<line number="137" hits="0"/>
<line number="138" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="139"/>
<line number="139" hits="0"/>
<line number="142" hits="1"/>
<line number="153" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="154,155"/>
<line number="154" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="157,158"/>
<line number="157" hits="0"/>
<line number="158" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="159,161"/>
<line number="159" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="158,160"/>
<line number="160" hits="0"/>
<line number="161" hits="0"/>
<line number="167" hits="1"/>
<line number="179" hits="1"/>
<line number="180" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="181"/>
<line number="181" hits="0"/>
<line number="182" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="183"/>
<line number="183" hits="0"/>
<line number="184" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="185"/>
<line number="185" hits="0"/>
<line number="186" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="187"/>
<line number="187" hits="0"/>
<line number="188" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="189"/>
<line number="189" hits="0"/>
<line number="190" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="191"/>
<line number="191" hits="0"/>
<line number="194" hits="1"/>
<line number="196" hits="1"/>
<line number="197" hits="1"/>
<line number="198" hits="0"/>
<line number="199" hits="1"/>
<line number="200" hits="1"/>
<line number="206" hits="1"/>
<line number="237" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="238"/>
<line number="238" hits="0"/>
<line number="239" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="240"/>
<line number="240" hits="0"/>
<line number="242" hits="1"/>
<line number="243" hits="1"/>
<line number="244" hits="0"/>
<line number="245" hits="0"/>
<line number="248" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="249"/>
<line number="249" hits="0"/>
<line number="252" hits="1"/>
<line number="253" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="254"/>
<line number="254" hits="0"/>
<line number="257" hits="1"/>
<line number="260" hits="1"/>
<line number="261" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="262"/>
<line number="262" hits="0"/>
<line number="265" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="266"/>
<line number="266" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="267,268"/>
<line number="267" hits="0"/>
<line number="268" hits="0"/>
<line number="271" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="272"/>
<line number="272" hits="0"/>
<line number="274" hits="1"/>
<line number="277" hits="1"/>
<line number="284" hits="0"/>
<line number="285" hits="0"/>
<line number="286" hits="0"/>
<line number="287" hits="0"/>
<line number="288" hits="0"/>
<line number="294" hits="1"/>
<line number="308" hits="0"/>
<line number="309" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="310,315"/>
<line number="310" hits="0"/>
<line number="311" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="309,312"/>
<line number="312" hits="0"/>
<line number="315" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="316,318"/>
<line number="316" hits="0"/>
<line number="318" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="319,322"/>
<line number="319" hits="0"/>
<line number="322" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="323,334"/>
<line number="323" hits="0"/>
<line number="324" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="325,331"/>
<line number="325" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="326,328"/>
<line number="326" hits="0"/>
<line number="327" hits="0"/>
<line number="328" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="324,329"/>
<line number="329" hits="0"/>
<line number="330" hits="0"/>
<line number="331" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="322,332"/>
<line number="332" hits="0"/>
<line number="334" hits="0"/>
</lines>
</class>
<class name="verification_code.py" filename="packages/domain/verification_code.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="32" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="48" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="53" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="58" hits="0"/>
<line number="60" hits="0"/>
<line number="62" hits="0"/>
<line number="64" hits="0"/>
<line number="66" hits="0"/>
</lines>
</class>
<class name="video_concat.py" filename="packages/domain/video_concat.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="13" hits="0"/>
<line number="17" hits="0"/>
<line number="19" hits="0"/>
<line number="22" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="50,52"/>
<line number="50" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="62" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="72" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="77" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="96,98"/>
<line number="96" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="101" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,112"/>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="103,112"/>
<line number="103" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,104"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,107"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0"/>
<line number="112" hits="0"/>
<line number="113" hits="0"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0"/>
<line number="120" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="124" hits="0"/>
<line number="125" hits="0"/>
<line number="127" hits="0"/>
<line number="128" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="132" hits="0"/>
<line number="142" hits="0"/>
<line number="143" hits="0"/>
<line number="145" hits="0"/>
<line number="147" hits="0"/>
<line number="148" hits="0"/>
<line number="150" hits="0"/>
<line number="152" hits="0"/>
<line number="153" hits="0"/>
<line number="155" hits="0"/>
<line number="157" hits="0"/>
<line number="158" hits="0"/>
<line number="160" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="161,163"/>
<line number="161" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="160,162"/>
<line number="162" hits="0"/>
<line number="163" hits="0"/>
<line number="165" hits="0"/>
<line number="166" hits="0"/>
<line number="168" hits="0"/>
<line number="169" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="170,172"/>
<line number="170" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="169,171"/>
<line number="171" hits="0"/>
<line number="172" hits="0"/>
<line number="174" hits="0"/>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,177"/>
<line number="177" hits="0"/>
</lines>
</class>
<class name="video_filter_builder.py" filename="packages/domain/video_filter_builder.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="14" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="19" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="32" hits="0"/>
<line number="41" hits="0"/>
<line number="44" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="65" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="0"/>
<line number="98" hits="0"/>
<line number="101" hits="0"/>
<line number="104" hits="0"/>
<line number="107" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="108,111"/>
<line number="108" hits="0"/>
<line number="111" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="112,114"/>
<line number="112" hits="0"/>
<line number="114" hits="0"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="120" hits="0"/>
<line number="123" hits="0"/>
<line number="124" hits="0"/>
<line number="125" hits="0"/>
<line number="127" hits="0"/>
<line number="140" hits="0"/>
<line number="151" hits="0"/>
<line number="152" hits="0"/>
<line number="158" hits="0"/>
<line number="160" hits="0"/>
<line number="166" hits="0"/>
<line number="181" hits="0"/>
<line number="182" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="183,185"/>
<line number="183" hits="0"/>
<line number="185" hits="0"/>
<line number="186" hits="0"/>
<line number="189" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="190,195"/>
<line number="190" hits="0"/>
<line number="191" hits="0"/>
<line number="192" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0"/>
<line number="199" hits="0"/>
<line number="201" hits="0"/>
<line number="207" hits="0"/>
<line number="227" hits="0"/>
<line number="228" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="229,231"/>
<line number="229" hits="0"/>
<line number="231" hits="0"/>
<line number="232" hits="0"/>
<line number="235" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="236,241"/>
<line number="236" hits="0"/>
<line number="237" hits="0"/>
<line number="238" hits="0"/>
<line number="241" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="242,246"/>
<line number="242" hits="0"/>
<line number="243" hits="0"/>
<line number="246" hits="0"/>
<line number="247" hits="0"/>
<line number="249" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="250,269"/>
<line number="250" hits="0"/>
<line number="251" hits="0"/>
<line number="254" hits="0"/>
<line number="255" hits="0"/>
<line number="257" hits="0"/>
<line number="259" hits="0"/>
<line number="266" hits="0"/>
<line number="269" hits="0"/>
<line number="270" hits="0"/>
<line number="274" hits="0"/>
<line number="275" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="276,288"/>
<line number="276" hits="0"/>
<line number="277" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="278,286"/>
<line number="278" hits="0"/>
<line number="279" hits="0"/>
<line number="284" hits="0"/>
<line number="285" hits="0"/>
<line number="286" hits="0"/>
<line number="287" hits="0"/>
<line number="288" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="289,291"/>
<line number="289" hits="0"/>
<line number="291" hits="0"/>
<line number="297" hits="0"/>
<line number="322" hits="0"/>
<line number="324" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="325,328"/>
<line number="325" hits="0"/>
<line number="328" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="329,338"/>
<line number="329" hits="0"/>
<line number="330" hits="0"/>
<line number="332" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="333,334"/>
<line number="333" hits="0"/>
<line number="334" hits="0"/>
<line number="335" hits="0"/>
<line number="338" hits="0"/>
<line number="340" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="341,344"/>
<line number="341" hits="0"/>
<line number="344" hits="0"/>
<line number="354" hits="0"/>
<line number="360" hits="0"/>
<line number="361" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="362,365"/>
<line number="362" hits="0"/>
<line number="365" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="366,374"/>
<line number="366" hits="0"/>
<line number="371" hits="0"/>
<line number="374" hits="0"/>
<line number="375" hits="0"/>
</lines>
</class>
<class name="video_share.py" filename="packages/domain/video_share.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="13" hits="0"/>
<line number="19" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="20,21"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="25" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="57" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="58,59"/>
<line number="58" hits="0"/>
<line number="59" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="60,61"/>
<line number="60" hits="0"/>
<line number="61" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="62,64"/>
<line number="62" hits="0"/>
<line number="64" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="76" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="81" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="82,83"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="88" hits="0"/>
<line number="90" hits="0"/>
<line number="92" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="93,94"/>
<line number="93" hits="0"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="95,96"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="98" hits="0"/>
<line number="100" hits="0"/>
<line number="102" hits="0"/>
<line number="104" hits="0"/>
<line number="106" hits="0"/>
<line number="108" hits="0"/>
</lines>
</class>
<class name="voice_clone_profile.py" filename="packages/domain/voice_clone_profile.py" complexity="0" line-rate="0.5638" branch-rate="0.0625">
<methods/>
<lines>
<line number="11" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="17" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="20"/>
<line number="18" hits="1"/>
<line number="20" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="26" hits="1"/>
<line number="29" hits="1"/>
<line number="32" hits="1"/>
<line number="33" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="38" hits="1"/>
<line number="39" hits="1"/>
<line number="41" hits="1"/>
<line number="42" hits="1"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="49" hits="1"/>
<line number="52" hits="1"/>
<line number="60" hits="1"/>
<line number="61" hits="1"/>
<line number="83" hits="1"/>
<line number="84" hits="1"/>
<line number="85" 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="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="98" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
<line number="133" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="134,135"/>
<line number="134" hits="0"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="136,137"/>
<line number="136" hits="0"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="138,140"/>
<line number="138" hits="0"/>
<line number="140" hits="0"/>
<line number="153" hits="1"/>
<line number="154" hits="1"/>
<line number="156" hits="0"/>
<line number="158" hits="1"/>
<line number="159" hits="1"/>
<line number="161" hits="0"/>
<line number="163" hits="1"/>
<line number="164" hits="1"/>
<line number="166" hits="0"/>
<line number="168" hits="1"/>
<line number="177" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="178,183"/>
<line number="178" hits="0"/>
<line number="179" hits="0"/>
<line number="180" hits="0"/>
<line number="181" hits="0"/>
<line number="183" hits="0"/>
<line number="184" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="185,190"/>
<line number="185" hits="0"/>
<line number="190" hits="0"/>
<line number="191" hits="0"/>
<line number="192" hits="0"/>
<line number="194" hits="1"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="199" hits="1"/>
<line number="205" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="206,207"/>
<line number="206" hits="0"/>
<line number="207" hits="0"/>
<line number="208" hits="0"/>
<line number="209" hits="0"/>
<line number="211" hits="1"/>
<line number="217" hits="0"/>
<line number="218" hits="0"/>
<line number="220" hits="1"/>
<line number="222" hits="0"/>
<line number="224" hits="1"/>
<line number="230" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="231,235"/>
<line number="231" hits="0"/>
<line number="235" hits="0"/>
<line number="236" hits="0"/>
<line number="237" hits="0"/>
<line number="238" hits="0"/>
<line number="240" hits="1"/>
<line number="242" hits="0"/>
</lines>
</class>
<class name="voice_library.py" filename="packages/domain/voice_library.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" 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="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="25" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
</lines>
</class>
<class name="voice_presets.py" filename="packages/domain/voice_presets.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="8" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="13" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="14,16"/>
<line number="14" hits="0"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="22" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="30" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="74" hits="0"/>
<line number="183" hits="0"/>
<line number="186" hits="0"/>
<line number="188" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="189,190"/>
<line number="189" hits="0"/>
<line number="190" hits="0"/>
<line number="193" hits="0"/>
<line number="202" hits="0"/>
<line number="204" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="205,207"/>
<line number="205" hits="0"/>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="208,210"/>
<line number="208" hits="0"/>
<line number="210" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="211,213"/>
<line number="211" hits="0"/>
<line number="213" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="214,217"/>
<line number="214" hits="0"/>
<line number="215" hits="0"/>
<line number="217" hits="0"/>
<line number="220" hits="0"/>
<line number="222" hits="0"/>
</lines>
</class>
<class name="watermark_config.py" filename="packages/domain/watermark_config.py" complexity="0" line-rate="0.2993" branch-rate="0">
<methods/>
<lines>
<line number="10" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="16" hits="1"/>
<line number="22" hits="1"/>
<line number="34" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="39" 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="51" hits="1"/>
<line number="52" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="68" hits="1"/>
<line number="69" hits="1"/>
<line number="70" hits="1"/>
<line number="73" hits="1"/>
<line number="74" hits="1"/>
<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="84" hits="1"/>
<line number="86" hits="1"/>
<line number="87" hits="1"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="90,92"/>
<line number="90" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="94,96"/>
<line number="94" hits="0"/>
<line number="96" hits="0"/>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="100,104"/>
<line number="100" hits="0"/>
<line number="101" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="102,110"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="105,110"/>
<line number="105" hits="0"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="107,110"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="112,114"/>
<line number="112" hits="0"/>
<line number="114" hits="0"/>
<line number="130" hits="1"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="133,135"/>
<line number="133" hits="0"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="136,138"/>
<line number="136" hits="0"/>
<line number="138" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="139,143"/>
<line number="139" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="140,141"/>
<line number="140" hits="0"/>
<line number="141" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="142,151"/>
<line number="142" hits="0"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="144,149"/>
<line number="144" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="145,146"/>
<line number="145" hits="0"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="147,151"/>
<line number="147" hits="0"/>
<line number="149" hits="0"/>
<line number="151" hits="0"/>
<line number="153" hits="1"/>
<line number="155" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="156,157"/>
<line number="156" hits="0"/>
<line number="157" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="158,159"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="165" hits="1"/>
<line number="178" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="179,180"/>
<line number="179" hits="0"/>
<line number="180" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="181,182"/>
<line number="181" hits="0"/>
<line number="182" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="183,184"/>
<line number="183" hits="0"/>
<line number="184" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="185,186"/>
<line number="185" hits="0"/>
<line number="186" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="187,188"/>
<line number="187" hits="0"/>
<line number="188" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="189,190"/>
<line number="189" hits="0"/>
<line number="190" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="191,192"/>
<line number="191" hits="0"/>
<line number="192" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="193,194"/>
<line number="193" hits="0"/>
<line number="194" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="195,198"/>
<line number="195" hits="0"/>
<line number="198" hits="0"/>
<line number="201" hits="1"/>
<line number="208" hits="0"/>
<line number="214" hits="1"/>
<line number="237" hits="0"/>
<line number="238" hits="0"/>
<line number="239" hits="0"/>
<line number="242" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="243,246"/>
<line number="243" hits="0"/>
<line number="246" hits="0"/>
<line number="249" hits="0"/>
<line number="260" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="262,266"/>
<line number="262" hits="0"/>
<line number="263" hits="0"/>
<line number="264" hits="0"/>
<line number="266" hits="0"/>
<line number="269" hits="0"/>
<line number="274" hits="0"/>
<line number="275" hits="0"/>
<line number="277" hits="0"/>
<line number="280" hits="1"/>
<line number="300" hits="0"/>
<line number="303" hits="0"/>
<line number="304" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="305,307"/>
<line number="305" hits="0"/>
<line number="306" hits="0"/>
<line number="307" hits="0"/>
<line number="308" hits="0"/>
<line number="312" hits="0"/>
<line number="313" hits="0"/>
<line number="316" hits="0"/>
<line number="327" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="328,331"/>
<line number="328" hits="0"/>
<line number="329" hits="0"/>
<line number="331" hits="0"/>
<line number="334" hits="0"/>
<line number="335" hits="0"/>
<line number="337" hits="0"/>
<line number="343" hits="1"/>
<line number="345" hits="0"/>
<line number="358" hits="1"/>
<line number="360" hits="0"/>
</lines>
</class>
<class name="xfade_builder.py" filename="packages/domain/xfade_builder.py" complexity="0" line-rate="0.2292" branch-rate="0">
<methods/>
<lines>
<line number="9" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="14" hits="1"/>
<line number="20" hits="1"/>
<line number="25" hits="1"/>
<line number="59" hits="1"/>
<line number="62" hits="1"/>
<line number="68" hits="1"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="86" hits="1"/>
<line number="98" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="99,100"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="106" hits="1"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="133,135"/>
<line number="133" hits="0"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="136,140"/>
<line number="136" hits="0"/>
<line number="137" hits="0"/>
<line number="140" hits="0"/>
<line number="141" hits="0"/>
<line number="142" hits="0"/>
<line number="144" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="145,186"/>
<line number="145" hits="0"/>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="149,151"/>
<line number="149" hits="0"/>
<line number="151" hits="0"/>
<line number="154" hits="0"/>
<line number="157" hits="0"/>
<line number="158" hits="0"/>
<line number="161" hits="0"/>
<line number="162" hits="0"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
<line number="167" hits="0"/>
<line number="168" hits="0"/>
<line number="170" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="171,173"/>
<line number="171" hits="0"/>
<line number="173" hits="0"/>
<line number="175" hits="0"/>
<line number="182" hits="0"/>
<line number="183" hits="0"/>
<line number="186" hits="0"/>
<line number="187" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.domain.auth" line-rate="0.9024" branch-rate="1" complexity="0">
<classes>
<class name="__init__.py" filename="packages/domain/auth/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="18" hits="1"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
<line number="21" hits="1"/>
<line number="23" hits="1"/>
</lines>
</class>
<class name="email_service.py" filename="packages/domain/auth/email_service.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" 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="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="30" hits="1"/>
<line number="31" hits="1"/>
<line number="43" hits="1"/>
<line number="44" hits="1"/>
<line number="53" hits="1"/>
<line number="54" hits="1"/>
</lines>
</class>
<class name="jwt_service.py" filename="packages/domain/auth/jwt_service.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="31" hits="1"/>
<line number="32" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="41" hits="1"/>
<line number="42" hits="1"/>
</lines>
</class>
<class name="password_hasher.py" filename="packages/domain/auth/password_hasher.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="32" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
</lines>
</class>
<class name="session_store.py" filename="packages/domain/auth/session_store.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="13" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="1"/>
<line number="54" hits="1"/>
<line number="55" hits="1"/>
<line number="59" hits="1"/>
<line number="60" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
</lines>
</class>
<class name="sms_service.py" filename="packages/domain/auth/sms_service.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="5" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="19" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.infrastructure" line-rate="0" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="packages/infrastructure/__init__.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
</lines>
</class>
<class name="feature_flags.py" filename="packages/infrastructure/feature_flags.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="23" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="29" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="39" hits="0"/>
<line number="41" hits="0"/>
<line number="43" hits="0"/>
<line number="45" hits="0"/>
<line number="55" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="56,59"/>
<line number="56" hits="0"/>
<line number="59" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="60,63"/>
<line number="60" hits="0"/>
<line number="63" hits="0"/>
<line number="66" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="76" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="86" hits="0"/>
<line number="88" hits="0"/>
<line number="120" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,121"/>
<line number="121" hits="0"/>
<line number="123" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="128" hits="0"/>
<line number="130" hits="0"/>
<line number="132" hits="0"/>
<line number="148" hits="0"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="150,152"/>
<line number="150" hits="0"/>
<line number="151" hits="0"/>
<line number="152" hits="0"/>
<line number="154" hits="0"/>
<line number="156" hits="0"/>
<line number="157" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="158,159"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="160" hits="0"/>
<line number="162" hits="0"/>
<line number="164" hits="0"/>
<line number="165" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="166,167"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="168" hits="0"/>
<line number="170" hits="0"/>
<line number="172" hits="0"/>
<line number="173" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="174,175"/>
<line number="174" hits="0"/>
<line number="175" hits="0"/>
<line number="176" hits="0"/>
<line number="178" hits="0"/>
<line number="180" hits="0"/>
<line number="182" hits="0"/>
<line number="184" hits="0"/>
<line number="188" hits="0"/>
</lines>
</class>
<class name="module_registry.py" filename="packages/infrastructure/module_registry.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="19" hits="0"/>
<line number="22" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="73" hits="0"/>
<line number="75" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="76,78"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="81" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="87" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="118" hits="0"/>
<line number="127" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="128,131"/>
<line number="128" hits="0"/>
<line number="131" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="132,138"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="131,133"/>
<line number="133" hits="0"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="142" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,143"/>
<line number="143" hits="0"/>
<line number="145" hits="0"/>
<line number="147" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="148,151"/>
<line number="148" hits="0"/>
<line number="151" hits="0"/>
<line number="152" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="153,155"/>
<line number="153" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0"/>
<line number="158" hits="0"/>
<line number="160" hits="0"/>
<line number="162" hits="0"/>
<line number="164" hits="0"/>
<line number="165" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="166,167"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="169" hits="0"/>
<line number="171" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="172,177"/>
<line number="172" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="173,174"/>
<line number="173" hits="0"/>
<line number="174" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="171,175"/>
<line number="175" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="174,176"/>
<line number="176" hits="0"/>
<line number="177" hits="0"/>
<line number="179" hits="0"/>
<line number="181" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="182,187"/>
<line number="182" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="183,184"/>
<line number="183" hits="0"/>
<line number="184" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="181,185"/>
<line number="185" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="184,186"/>
<line number="186" hits="0"/>
<line number="187" hits="0"/>
<line number="189" hits="0"/>
<line number="191" hits="0"/>
<line number="192" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="193,194"/>
<line number="193" hits="0"/>
<line number="194" hits="0"/>
<line number="196" hits="0"/>
<line number="198" hits="0"/>
<line number="199" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="200,201"/>
<line number="200" hits="0"/>
<line number="201" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="202,205"/>
<line number="202" hits="0"/>
<line number="203" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="201,204"/>
<line number="204" hits="0"/>
<line number="205" hits="0"/>
<line number="207" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="215,217"/>
<line number="215" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="214,216"/>
<line number="216" hits="0"/>
<line number="217" hits="0"/>
<line number="219" hits="0"/>
<line number="221" hits="0"/>
<line number="225" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="packages.ports" line-rate="0.6355" branch-rate="1" complexity="0">
<classes>
<class name="__init__.py" filename="packages/ports/__init__.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="11" hits="1"/>
</lines>
</class>
<class name="asr_service.py" filename="packages/ports/asr_service.py" complexity="0" line-rate="0.8333" branch-rate="1">
<methods/>
<lines>
<line number="3" 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="19" hits="1"/>
<line number="20" hits="1"/>
<line number="42" hits="1"/>
<line number="45" hits="1"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
</lines>
</class>
<class name="asset_library_repository.py" filename="packages/ports/asset_library_repository.py" complexity="0" line-rate="0.7083" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="0"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="0"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="22" hits="0"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="26" hits="0"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="0"/>
<line number="32" hits="1"/>
<line number="33" hits="1"/>
<line number="34" hits="0"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="0"/>
</lines>
</class>
<class name="asset_repository.py" filename="packages/ports/asset_repository.py" complexity="0" line-rate="0.6852" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="0"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="0"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="25" hits="0"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="35" hits="0"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="46" hits="0"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="0"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="54" hits="0"/>
<line number="56" hits="1"/>
<line number="57" hits="1"/>
<line number="59" hits="0"/>
<line number="61" hits="1"/>
<line number="62" hits="1"/>
<line number="64" hits="0"/>
<line number="66" hits="1"/>
<line number="67" hits="1"/>
<line number="69" hits="0"/>
<line number="71" hits="1"/>
<line number="72" hits="1"/>
<line number="74" hits="0"/>
<line number="76" hits="1"/>
<line number="77" hits="1"/>
<line number="78" hits="0"/>
<line number="80" hits="1"/>
<line number="81" hits="1"/>
<line number="82" hits="0"/>
<line number="84" hits="1"/>
<line number="85" hits="1"/>
<line number="86" hits="0"/>
<line number="88" hits="1"/>
<line number="89" hits="1"/>
<line number="103" hits="0"/>
<line number="105" hits="1"/>
<line number="106" hits="1"/>
<line number="113" hits="0"/>
<line number="115" hits="1"/>
<line number="116" hits="1"/>
<line number="122" hits="0"/>
</lines>
</class>
<class name="classification_job_repository.py" filename="packages/ports/classification_job_repository.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="12" hits="1"/>
<line number="15" hits="1"/>
</lines>
</class>
<class name="duplication_repository.py" filename="packages/ports/duplication_repository.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="10" hits="1"/>
</lines>
</class>
<class name="generated_video_repository.py" filename="packages/ports/generated_video_repository.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="8" hits="1"/>
</lines>
</class>
<class name="generation_task_repository.py" filename="packages/ports/generation_task_repository.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="8" hits="1"/>
</lines>
</class>
<class name="ingest_job_repository.py" filename="packages/ports/ingest_job_repository.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="12" hits="1"/>
<line number="15" hits="1"/>
</lines>
</class>
<class name="job_repository.py" filename="packages/ports/job_repository.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="10" hits="1"/>
<line number="13" hits="1"/>
<line number="17" hits="1"/>
<line number="21" hits="1"/>
<line number="25" hits="1"/>
<line number="37" hits="1"/>
<line number="49" hits="1"/>
<line number="58" hits="1"/>
</lines>
</class>
<class name="project_repository.py" filename="packages/ports/project_repository.py" complexity="0" line-rate="0.7273" branch-rate="1">
<methods/>
<lines>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="8" hits="1"/>
<line number="11" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="17" hits="0"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
<line number="22" hits="0"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="27" hits="0"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="32" hits="0"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="37" hits="0"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="42" hits="0"/>
</lines>
</class>
<class name="recipe_repository.py" filename="packages/ports/recipe_repository.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="7" hits="0"/>
<line number="10" hits="0"/>
</lines>
</class>
<class name="storage_port.py" filename="packages/ports/storage_port.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="14" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="42" hits="1"/>
<line number="43" hits="1"/>
<line number="59" hits="1"/>
<line number="60" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="79" hits="1"/>
<line number="80" hits="1"/>
<line number="86" hits="1"/>
<line number="87" hits="1"/>
<line number="99" hits="1"/>
<line number="100" hits="1"/>
<line number="110" hits="1"/>
<line number="111" hits="1"/>
<line number="115" hits="1"/>
<line number="116" hits="1"/>
</lines>
</class>
<class name="tag_repository.py" filename="packages/ports/tag_repository.py" complexity="0" line-rate="0.7143" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="0"/>
<line number="13" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="0"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="0"/>
<line number="21" hits="1"/>
<line number="22" hits="1"/>
<line number="28" hits="0"/>
<line number="30" hits="1"/>
<line number="31" hits="1"/>
<line number="32" hits="0"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="0"/>
</lines>
</class>
<class name="template_repository.py" filename="packages/ports/template_repository.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="7" hits="0"/>
<line number="10" hits="0"/>
</lines>
</class>
<class name="title_library_repository.py" filename="packages/ports/title_library_repository.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="10" hits="1"/>
</lines>
</class>
<class name="tts_job_repository.py" filename="packages/ports/tts_job_repository.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="7" hits="0"/>
<line number="10" hits="0"/>
<line number="13" hits="0"/>
<line number="17" hits="0"/>
<line number="21" hits="0"/>
<line number="25" hits="0"/>
<line number="29" hits="0"/>
<line number="40" hits="0"/>
<line number="49" hits="0"/>
</lines>
</class>
<class name="tts_service.py" filename="packages/ports/tts_service.py" complexity="0" line-rate="0.9333" branch-rate="1">
<methods/>
<lines>
<line number="6" hits="1"/>
<line number="8" hits="1"/>
<line number="9" hits="1"/>
<line number="12" hits="1"/>
<line number="18" hits="1"/>
<line number="19" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="1"/>
<line number="64" hits="1"/>
<line number="65" hits="1"/>
<line number="66" hits="1"/>
<line number="70" hits="1"/>
<line number="72" hits="0"/>
<line number="75" hits="1"/>
<line number="78" hits="1"/>
</lines>
</class>
<class name="user_repository.py" filename="packages/ports/user_repository.py" complexity="0" line-rate="0.7059" branch-rate="1">
<methods/>
<lines>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="8" hits="1"/>
<line number="11" hits="1"/>
<line number="14" hits="1"/>
<line number="15" hits="1"/>
<line number="17" hits="0"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
<line number="22" hits="0"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="27" hits="0"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="32" hits="0"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="37" hits="0"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="42" hits="0"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="47" hits="0"/>
<line number="49" hits="1"/>
<line number="50" hits="1"/>
<line number="52" hits="0"/>
<line number="54" hits="1"/>
<line number="55" hits="1"/>
<line number="57" hits="0"/>
<line number="59" hits="1"/>
<line number="60" hits="1"/>
<line number="62" hits="0"/>
</lines>
</class>
<class name="verification_code_repository.py" filename="packages/ports/verification_code_repository.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="17" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="22" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="27" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="32" hits="0"/>
</lines>
</class>
<class name="video_share_repository.py" filename="packages/ports/video_share_repository.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
</lines>
</class>
<class name="voice_clone_profile_repository.py" filename="packages/ports/voice_clone_profile_repository.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="7" hits="0"/>
<line number="10" hits="0"/>
<line number="13" hits="0"/>
<line number="17" hits="0"/>
<line number="21" hits="0"/>
<line number="25" hits="0"/>
<line number="29" hits="0"/>
<line number="40" hits="0"/>
<line number="49" hits="0"/>
<line number="53" hits="0"/>
</lines>
</class>
<class name="voice_library_repository.py" filename="packages/ports/voice_library_repository.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="10" hits="1"/>
</lines>
</class>
</classes>
</package>
<package name="packages.shared" line-rate="0.2041" branch-rate="0.03704" complexity="0">
<classes>
<class name="__init__.py" filename="packages/shared/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="10" hits="1"/>
</lines>
</class>
<class name="ai_client.py" filename="packages/shared/ai_client.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="13" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="19" hits="0"/>
<line number="21" hits="0"/>
<line number="23" hits="0"/>
<line number="26" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="44" hits="0"/>
<line number="46" hits="0"/>
<line number="62" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="63,65"/>
<line number="63" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="70" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="79,103"/>
<line number="79" hits="0"/>
<line number="80" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="78,93"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="101" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="110" hits="0"/>
<line number="113" hits="0"/>
<line number="116" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="117,118"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
</lines>
</class>
<class name="ai_service.py" filename="packages/shared/ai_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="19" hits="0"/>
<line number="25" hits="0"/>
<line number="37" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="44" hits="0"/>
<line number="56" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="61,76"/>
<line number="61" hits="0"/>
<line number="73" hits="0"/>
<line number="76" hits="0"/>
<line number="88" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="95" hits="0"/>
<line number="103" hits="0"/>
<line number="122" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="123,125"/>
<line number="123" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="128,133"/>
<line number="128" hits="0"/>
<line number="129" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="130,131"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,137"/>
<line number="135" hits="0"/>
<line number="137" hits="0"/>
<line number="138" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="139,141"/>
<line number="139" hits="0"/>
<line number="141" hits="0"/>
<line number="142" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="143,162"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="144,145"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
<line number="147" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="148,149"/>
<line number="148" hits="0"/>
<line number="149" hits="0"/>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="163,166"/>
<line number="163" hits="0"/>
<line number="166" hits="0"/>
<line number="168" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="169,171"/>
<line number="169" hits="0"/>
<line number="171" hits="0"/>
<line number="172" hits="0"/>
<line number="173" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="174,177"/>
<line number="174" hits="0"/>
<line number="175" hits="0"/>
<line number="177" hits="0"/>
<line number="178" hits="0"/>
<line number="180" hits="0"/>
<line number="182" hits="0"/>
<line number="189" hits="0"/>
<line number="190" hits="0"/>
<line number="193" hits="0"/>
<line number="204" hits="0"/>
<line number="205" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="206,210"/>
<line number="206" hits="0"/>
<line number="207" hits="0"/>
<line number="210" hits="0"/>
<line number="224" hits="0"/>
<line number="225" hits="0"/>
<line number="234" hits="0"/>
<line number="239" hits="0"/>
<line number="245" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="246,259"/>
<line number="246" hits="0"/>
<line number="247" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="248,256"/>
<line number="248" hits="0"/>
<line number="255" hits="0"/>
<line number="256" hits="0"/>
<line number="259" hits="0"/>
<line number="265" hits="0"/>
<line number="284" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="285,291"/>
<line number="285" hits="0"/>
<line number="291" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="292,299"/>
<line number="292" hits="0"/>
<line number="299" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="300,338"/>
<line number="300" hits="0"/>
<line number="302" hits="0"/>
<line number="303" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="304,338"/>
<line number="304" hits="0"/>
<line number="305" hits="0"/>
<line number="306" hits="0"/>
<line number="312" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="314,338"/>
<line number="314" hits="0"/>
<line number="315" hits="0"/>
<line number="316" hits="0"/>
<line number="318" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="319,332"/>
<line number="319" hits="0"/>
<line number="325" hits="0"/>
<line number="332" hits="0"/>
<line number="334" hits="0"/>
<line number="335" hits="0"/>
<line number="338" hits="0"/>
<line number="339" hits="0"/>
<line number="340" hits="0"/>
<line number="351" hits="0"/>
<line number="370" hits="0"/>
<line number="378" hits="0"/>
<line number="385" hits="0"/>
<line number="392" hits="0"/>
<line number="395" hits="0"/>
<line number="414" hits="0"/>
<line number="421" hits="0"/>
<line number="428" hits="0"/>
<line number="434" hits="0"/>
</lines>
</class>
<class name="config.py" filename="packages/shared/config.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="9" hits="1"/>
<line number="11" hits="1"/>
</lines>
</class>
<class name="ffmpeg_utils.py" filename="packages/shared/ffmpeg_utils.py" complexity="0" line-rate="0.8421" branch-rate="1">
<methods/>
<lines>
<line number="9" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="13" hits="1"/>
<line number="15" hits="1"/>
<line number="19" hits="1"/>
<line number="20" hits="1"/>
<line number="24" hits="1"/>
<line number="30" hits="1"/>
<line number="51" hits="1"/>
<line number="52" hits="1"/>
<line number="60" hits="0"/>
<line number="61" hits="1"/>
<line number="62" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="1"/>
<line number="70" hits="1"/>
<line number="71" hits="1"/>
<line number="77" hits="1"/>
</lines>
</class>
<class name="mediakit_client.py" filename="packages/shared/mediakit_client.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="14" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="20" hits="0"/>
<line number="22" hits="0"/>
<line number="24" hits="0"/>
<line number="27" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="43" hits="0"/>
<line number="45" hits="0"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="71,75"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="77,80"/>
<line number="77" hits="0"/>
<line number="80" hits="0"/>
<line number="82" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="95" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="106" hits="0"/>
<line number="107" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="108,111"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="118" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="130" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="131,166"/>
<line number="131" hits="0"/>
<line number="132" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0"/>
<line number="136" hits="0"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="138,147"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0"/>
<line number="145" hits="0"/>
<line number="147" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="148,153"/>
<line number="148" hits="0"/>
<line number="149" hits="0"/>
<line number="150" hits="0"/>
<line number="153" hits="0"/>
<line number="160" hits="0"/>
<line number="162" hits="0"/>
<line number="163" hits="0"/>
<line number="164" hits="0"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="173" hits="0"/>
<line number="176" hits="0"/>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="180,181"/>
<line number="180" hits="0"/>
<line number="181" hits="0"/>
</lines>
</class>
<class name="storage.py" filename="packages/shared/storage.py" complexity="0" line-rate="0.1899" branch-rate="0">
<methods/>
<lines>
<line number="10" 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="24" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="31" hits="1"/>
<line number="32" hits="1"/>
<line number="34" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="41" hits="1"/>
<line number="42" hits="1"/>
<line number="45" hits="1"/>
<line number="51" hits="1"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="65" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="66,89"/>
<line number="66" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="67,87"/>
<line number="67" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="71,72"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="79" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="87" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="91,92"/>
<line number="91" hits="0"/>
<line number="92" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="93,94"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="98" hits="1"/>
<line number="100" hits="0"/>
<line number="103" hits="0"/>
<line number="109" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="110,115"/>
<line number="110" hits="0"/>
<line number="115" hits="0"/>
<line number="119" hits="1"/>
<line number="120" hits="0"/>
<line number="121" hits="0"/>
<line number="122" hits="0"/>
<line number="124" hits="1"/>
<line number="129" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="130,132"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="132" hits="0"/>
<line number="134" hits="1"/>
<line number="136" hits="0"/>
<line number="140" hits="1"/>
<line number="152" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="153,155"/>
<line number="153" hits="0"/>
<line number="155" hits="0"/>
<line number="156" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="157,159"/>
<line number="157" hits="0"/>
<line number="159" hits="0"/>
<line number="160" hits="0"/>
<line number="161" hits="0"/>
<line number="162" hits="0"/>
<line number="163" hits="0"/>
<line number="165" hits="1"/>
<line number="178" hits="0"/>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="180,182"/>
<line number="180" hits="0"/>
<line number="181" hits="0"/>
<line number="182" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="183,186"/>
<line number="183" hits="0"/>
<line number="184" hits="0"/>
<line number="186" hits="0"/>
<line number="187" hits="0"/>
<line number="189" hits="0"/>
<line number="190" hits="0"/>
<line number="191" hits="0"/>
<line number="192" hits="0"/>
<line number="193" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0"/>
<line number="197" hits="0"/>
<line number="199" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="200,216"/>
<line number="200" hits="0"/>
<line number="207" hits="0"/>
<line number="216" hits="0"/>
<line number="218" hits="0"/>
<line number="219" hits="0"/>
<line number="220" hits="0"/>
<line number="221" hits="0"/>
<line number="223" hits="0"/>
<line number="225" hits="0"/>
<line number="226" hits="0"/>
<line number="227" hits="0"/>
<line number="229" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="230,238"/>
<line number="230" hits="0"/>
<line number="236" hits="0"/>
<line number="238" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="239,241"/>
<line number="239" hits="0"/>
<line number="241" hits="0"/>
<line number="245" hits="1"/>
<line number="250" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="251,253"/>
<line number="251" hits="0"/>
<line number="253" hits="0"/>
<line number="254" hits="0"/>
<line number="255" hits="0"/>
<line number="256" hits="0"/>
<line number="257" hits="0"/>
<line number="258" hits="0"/>
<line number="260" hits="1"/>
<line number="269" hits="0"/>
<line number="270" hits="0"/>
<line number="273" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="274,277"/>
<line number="274" hits="0"/>
<line number="277" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="278,280"/>
<line number="278" hits="0"/>
<line number="279" hits="0"/>
<line number="280" hits="0"/>
<line number="281" hits="0"/>
<line number="282" hits="0"/>
<line number="283" hits="0"/>
<line number="284" hits="0"/>
<line number="285" hits="0"/>
<line number="287" hits="1"/>
<line number="292" hits="0"/>
<line number="293" hits="0"/>
<line number="294" hits="0"/>
<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" branch="true" condition-coverage="0% (0/2)" missing-branches="296,298"/>
<line number="298" hits="0"/>
<line number="299" hits="0"/>
<line number="300" hits="0"/>
<line number="301" hits="0"/>
<line number="302" hits="0"/>
<line number="306" hits="1"/>
<line number="308" hits="0"/>
<line number="310" hits="1"/>
<line number="315" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="316,324"/>
<line number="316" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="317,318"/>
<line number="317" hits="0"/>
<line number="318" hits="0"/>
<line number="322" hits="0"/>
<line number="324" hits="0"/>
<line number="325" hits="0"/>
<line number="326" hits="0"/>
<line number="327" hits="0"/>
<line number="332" hits="0"/>
<line number="333" hits="0"/>
<line number="334" hits="0"/>
<line number="338" hits="0"/>
<line number="342" hits="1"/>
<line number="350" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="351,352"/>
<line number="351" hits="0"/>
<line number="352" hits="0"/>
<line number="353" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="354,356"/>
<line number="354" hits="0"/>
<line number="356" hits="0"/>
<line number="359" hits="0"/>
<line number="372" hits="0"/>
<line number="373" hits="0"/>
<line number="381" hits="0"/>
<line number="398" hits="1"/>
<line number="400" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="401,402"/>
<line number="401" hits="0"/>
<line number="402" hits="0"/>
<line number="403" hits="0"/>
<line number="404" hits="0"/>
<line number="405" hits="0"/>
<line number="407" hits="1"/>
<line number="409" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="410,411"/>
<line number="410" hits="0"/>
<line number="411" hits="0"/>
<line number="415" hits="1"/>
<line number="427" hits="0"/>
<line number="434" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="435,437"/>
<line number="435" hits="0"/>
<line number="437" hits="0"/>
<line number="438" hits="0"/>
<line number="441" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="442,446"/>
<line number="442" hits="0"/>
<line number="443" hits="0"/>
<line number="446" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="447,462"/>
<line number="447" hits="0"/>
<line number="448" hits="0"/>
<line number="449" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="450,452"/>
<line number="450" hits="0"/>
<line number="452" hits="0"/>
<line number="457" hits="0"/>
<line number="458" hits="0"/>
<line number="459" hits="0"/>
<line number="462" hits="0"/>
<line number="463" hits="0"/>
<line number="464" hits="0"/>
<line number="465" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="466,469"/>
<line number="466" hits="0"/>
<line number="469" hits="0"/>
<line number="470" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="471,474"/>
<line number="471" hits="0"/>
<line number="472" hits="0"/>
<line number="474" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="475,477"/>
<line number="475" hits="0"/>
<line number="477" hits="0"/>
<line number="479" hits="1"/>
<line number="485" hits="0"/>
<line number="486" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="487,490"/>
<line number="487" hits="0"/>
<line number="488" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="486,489"/>
<line number="489" hits="0"/>
<line number="490" hits="0"/>
<line number="495" hits="1"/>
<line number="498" hits="1"/>
<line number="501" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="502,504"/>
<line number="502" hits="0"/>
<line number="503" hits="0"/>
<line number="504" hits="0"/>
<line number="508" hits="1"/>
<line number="510" hits="0"/>
</lines>
</class>
<class name="url_security.py" filename="packages/shared/url_security.py" complexity="0" line-rate="0.4507" branch-rate="0.2143">
<methods/>
<lines>
<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="23" hits="1"/>
<line number="25" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="31" hits="1"/>
<line number="32" 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="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="48" hits="1"/>
<line number="51" hits="1"/>
<line number="52" hits="1"/>
<line number="55" hits="1"/>
<line number="57" hits="0"/>
<line number="61" hits="1"/>
<line number="62" hits="1"/>
<line number="63" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="64"/>
<line number="64" hits="0"/>
<line number="67" hits="1"/>
<line number="70" hits="1"/>
<line number="73" hits="1"/>
<line number="76" hits="1"/>
<line number="79" hits="1"/>
<line number="82" hits="1"/>
<line number="85" hits="1"/>
<line number="86" hits="0"/>
<line number="92" hits="1"/>
<line number="97" hits="1"/>
<line number="98" hits="1"/>
<line number="99" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="100"/>
<line number="100" hits="0"/>
<line number="102" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="103" hits="1"/>
<line number="104" hits="1"/>
<line number="105" hits="1"/>
<line number="106" hits="0"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0"/>
<line number="112" hits="1"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="117" hits="0"/>
<line number="118" hits="0"/>
<line number="120" hits="0"/>
<line number="126" hits="1"/>
<line number="140" hits="1"/>
<line number="147" hits="1"/>
<line number="149" hits="1"/>
<line number="150" hits="1"/>
<line number="151" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="153"/>
<line number="153" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="154,164"/>
<line number="154" hits="0"/>
<line number="155" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="164"/>
<line number="156" hits="1"/>
<line number="157" hits="1"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="160" hits="0"/>
<line number="161" hits="0"/>
<line number="162" hits="0"/>
<line number="164" hits="1"/>
<line number="165" hits="1"/>
<line number="168" hits="1"/>
<line number="170" hits="0"/>
<line number="171" hits="0"/>
<line number="172" hits="0"/>
<line number="173" hits="0"/>
<line number="174" hits="0"/>
<line number="180" hits="1"/>
<line number="200" hits="0"/>
<line number="201" hits="0"/>
<line number="202" hits="0"/>
<line number="204" hits="0"/>
<line number="206" hits="0"/>
<line number="207" hits="0"/>
<line number="209" hits="0"/>
<line number="210" hits="0"/>
<line number="212" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0"/>
<line number="215" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="216,221"/>
<line number="216" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="217,218"/>
<line number="217" hits="0"/>
<line number="218" hits="0"/>
<line number="219" hits="0"/>
<line number="220" hits="0"/>
<line number="221" hits="0"/>
<line number="222" hits="0"/>
<line number="223" hits="0"/>
<line number="225" hits="0"/>
<line number="226" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="227,231"/>
<line number="227" hits="0"/>
<line number="228" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="229,231"/>
<line number="229" hits="0"/>
<line number="231" hits="0"/>
<line number="232" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="233,235"/>
<line number="233" hits="0"/>
<line number="235" hits="0"/>
<line number="236" hits="0"/>
<line number="237" hits="0"/>
<line number="238" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="239,240"/>
<line number="239" hits="0"/>
<line number="240" hits="0"/>
<line number="241" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="242,243"/>
<line number="242" hits="0"/>
<line number="243" hits="0"/>
<line number="245" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="246,248"/>
<line number="246" hits="0"/>
<line number="248" hits="0"/>
<line number="250" hits="0"/>
<line number="253" hits="1"/>
<line number="262" hits="0"/>
<line number="264" hits="0"/>
<line number="265" hits="0"/>
<line number="267" hits="0"/>
<line number="268" hits="0"/>
<line number="276" hits="0"/>
<line number="277" hits="0"/>
<line number="279" hits="0"/>
<line number="280" hits="0"/>
<line number="281" hits="0"/>
<line number="282" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="schemas" line-rate="0.3008" branch-rate="0.5833" complexity="0">
<classes>
<class name="__init__.py" filename="schemas/__init__.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="9" hits="1"/>
<line number="10" hits="1"/>
<line number="11" hits="1"/>
<line number="12" hits="1"/>
<line number="14" hits="1"/>
</lines>
</class>
<class name="asset.py" filename="schemas/asset.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" 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="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="24" hits="1"/>
<line number="25" hits="1"/>
<line number="28" hits="1"/>
<line number="29" hits="1"/>
<line number="30" hits="1"/>
<line number="31" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="39" 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="48" hits="1"/>
<line number="49" hits="1"/>
<line number="50" 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="61" hits="1"/>
<line number="64" hits="1"/>
<line number="67" hits="1"/>
<line number="70" hits="1"/>
<line number="71" 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="83" hits="1"/>
<line number="86" hits="1"/>
<line number="87" hits="1"/>
<line number="90" hits="1"/>
<line number="93" hits="1"/>
<line number="94" hits="1"/>
<line number="99" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
<line number="102" hits="1"/>
<line number="103" hits="1"/>
</lines>
</class>
<class name="asset_diagnosis.py" filename="schemas/asset_diagnosis.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="4" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
</lines>
</class>
<class name="asset_library.py" filename="schemas/asset_library.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="7" 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="19" hits="1"/>
<line number="20" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
</lines>
</class>
<class name="chunked_upload.py" filename="schemas/chunked_upload.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="3" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
</lines>
</class>
<class name="classification_job.py" filename="schemas/classification_job.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="4" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
</lines>
</class>
<class name="duplication.py" filename="schemas/duplication.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="21" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="35" hits="0"/>
<line number="38" hits="0"/>
<line number="41" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
</lines>
</class>
<class name="generated_video.py" filename="schemas/generated_video.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="5" hits="1"/>
<line number="8" hits="1"/>
<line number="9" 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="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="35" hits="1"/>
<line number="36" hits="1"/>
</lines>
</class>
<class name="generation_task.py" filename="schemas/generation_task.py" complexity="0" line-rate="0.9099" branch-rate="0.5833">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="2" hits="1"/>
<line number="4" hits="1"/>
<line number="7" 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="21" hits="1"/>
<line number="22" hits="1"/>
<line number="23" hits="1"/>
<line number="24" hits="1"/>
<line number="26" hits="1"/>
<line number="28" hits="1"/>
<line number="30" hits="1"/>
<line number="32" hits="1"/>
<line number="36" hits="1"/>
<line number="40" hits="1"/>
<line number="44" hits="1"/>
<line number="51" hits="1"/>
<line number="56" hits="1"/>
<line number="61" hits="1"/>
<line number="62" hits="1"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="66,67"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="70,71"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="74" hits="1"/>
<line number="75" hits="1"/>
<line number="76" hits="1"/>
<line number="77" 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="83" hits="1"/>
<line number="84" hits="1"/>
<line number="85" 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="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="98" hits="1"/>
<line number="100" hits="1"/>
<line number="101" hits="1"/>
<line number="102" hits="1"/>
<line number="104" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="105" hits="1"/>
<line number="106" hits="1"/>
<line number="107" hits="1"/>
<line number="108" hits="1"/>
<line number="109" hits="1"/>
<line number="110" hits="1" branch="true" condition-coverage="50% (1/2)" missing-branches="112"/>
<line number="111" hits="1"/>
<line number="112" hits="0"/>
<line number="115" hits="1"/>
<line number="118" hits="1"/>
<line number="119" hits="1"/>
<line number="122" hits="1"/>
<line number="125" hits="1"/>
<line number="131" 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="143" hits="1"/>
<line number="144" hits="1"/>
<line number="145" hits="1"/>
<line number="150" hits="1"/>
<line number="151" hits="1"/>
<line number="152" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="153" hits="1"/>
<line number="154" hits="1"/>
<line number="156" hits="1"/>
<line number="157" hits="1"/>
<line number="158" hits="1" branch="true" condition-coverage="100% (2/2)"/>
<line number="159" hits="1"/>
<line number="160" hits="1"/>
<line number="163" hits="1"/>
<line number="169" hits="1"/>
<line number="170" hits="1"/>
<line number="171" hits="1"/>
<line number="172" hits="1"/>
<line number="173" hits="1"/>
<line number="174" hits="1"/>
<line number="175" hits="1"/>
<line number="176" hits="1"/>
<line number="177" hits="1"/>
<line number="178" hits="1"/>
<line number="179" hits="1"/>
<line number="180" hits="1"/>
<line number="181" hits="1"/>
<line number="182" hits="1"/>
<line number="183" hits="1"/>
<line number="184" hits="1"/>
</lines>
</class>
<class name="health.py" filename="schemas/health.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
</lines>
</class>
<class name="ingest_job.py" filename="schemas/ingest_job.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="7" 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"/>
</lines>
</class>
<class name="project.py" filename="schemas/project.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<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="17" hits="1"/>
<line number="18" hits="1"/>
</lines>
</class>
<class name="subscription.py" filename="schemas/subscription.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="7" hits="0"/>
<line number="12" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="21" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="30" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="39" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="49" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="61" hits="0"/>
<line number="64" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="77" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="85" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="95" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="102" hits="0"/>
<line number="105" hits="0"/>
</lines>
</class>
<class name="tag.py" filename="schemas/tag.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
</lines>
</class>
<class name="task_center.py" filename="schemas/task_center.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="4" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="27" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="47" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
</lines>
</class>
<class name="template.py" filename="schemas/template.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="58" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="113" hits="0"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="118" hits="0"/>
<line number="119" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="136" hits="0"/>
<line number="137" hits="0"/>
<line number="143" hits="0"/>
<line number="144" hits="0"/>
<line number="145" hits="0"/>
</lines>
</class>
<class name="title_library.py" filename="schemas/title_library.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
</lines>
</class>
<class name="tts.py" filename="schemas/tts.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="28" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="58" hits="0"/>
<line number="61" hits="0"/>
<line number="62" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="71" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="79" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0"/>
<line number="88" hits="0"/>
<line number="91" hits="0"/>
<line number="94" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
</lines>
</class>
<class name="upload.py" filename="schemas/upload.py" complexity="0" line-rate="1" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="4" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="9" 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="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="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="34" hits="1"/>
<line number="37" hits="1"/>
<line number="38" 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="48" hits="1"/>
<line number="49" hits="1"/>
</lines>
</class>
<class name="video_center.py" filename="schemas/video_center.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="1" hits="0"/>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="38" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
</lines>
</class>
<class name="video_share.py" filename="schemas/video_share.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="20" hits="0"/>
<line number="26" hits="0"/>
<line number="29" hits="0"/>
<line number="34" hits="0"/>
<line number="40" hits="0"/>
<line number="43" hits="0"/>
<line number="46" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="61" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="70" hits="0"/>
<line number="73" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="82" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
</lines>
</class>
<class name="voice.py" filename="schemas/voice.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="9" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="79" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="85" hits="0"/>
<line number="86" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="95" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="113" hits="0"/>
<line number="114" hits="0"/>
<line number="116" hits="0"/>
<line number="117" hits="0"/>
<line number="120" hits="0"/>
<line number="123" hits="0"/>
<line number="124" hits="0"/>
<line number="126" hits="0"/>
<line number="127" hits="0"/>
</lines>
</class>
<class name="voice_clone.py" filename="schemas/voice_clone.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="27" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="51" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="61" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="68" hits="0"/>
<line number="71" hits="0"/>
<line number="72" hits="0"/>
<line number="74" hits="0"/>
<line number="75" hits="0"/>
<line number="77" hits="0"/>
<line number="78" hits="0"/>
<line number="80" hits="0"/>
<line number="81" hits="0"/>
<line number="83" hits="0"/>
<line number="84" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
</lines>
</class>
<class name="voice_library.py" filename="schemas/voice_library.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="8" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="17" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="36" hits="0"/>
<line number="37" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
</lines>
</class>
</classes>
</package>
<package name="services" line-rate="0" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="services/__init__.py" complexity="0" line-rate="0" branch-rate="1">
<methods/>
<lines>
<line number="3" hits="0"/>
<line number="4" hits="0"/>
<line number="5" hits="0"/>
<line number="6" hits="0"/>
<line number="7" hits="0"/>
<line number="8" hits="0"/>
<line number="10" hits="0"/>
</lines>
</class>
<class name="ai_service.py" filename="services/ai_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="13" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="24" hits="0"/>
<line number="29" hits="0"/>
<line number="63" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="73" hits="0"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="95,96"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="99" hits="0"/>
<line number="100" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="101,110"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="110" hits="0"/>
<line number="111" hits="0"/>
<line number="121" hits="0"/>
<line number="123" hits="0"/>
<line number="128" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,153"/>
<line number="135" hits="0"/>
<line number="136" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="137,150"/>
<line number="137" hits="0"/>
<line number="138" hits="0"/>
<line number="144" hits="0"/>
<line number="150" hits="0"/>
<line number="153" hits="0"/>
<line number="154" hits="0"/>
<line number="165" hits="0"/>
<line number="170" hits="0"/>
<line number="173" hits="0"/>
<line number="178" hits="0"/>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="180,181"/>
<line number="180" hits="0"/>
<line number="181" hits="0"/>
<line number="184" hits="0"/>
<line number="206" hits="0"/>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="208,210"/>
<line number="208" hits="0"/>
<line number="210" hits="0"/>
<line number="211" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="212,224"/>
<line number="212" hits="0"/>
<line number="213" hits="0"/>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="215,216"/>
<line number="215" hits="0"/>
<line number="216" hits="0"/>
<line number="224" hits="0"/>
<line number="225" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="226,233"/>
<line number="226" hits="0"/>
<line number="227" hits="0"/>
<line number="228" hits="0"/>
<line number="229" hits="0"/>
<line number="230" hits="0"/>
<line number="231" hits="0"/>
<line number="233" hits="0"/>
<line number="235" hits="0"/>
<line number="247" hits="0"/>
<line number="252" hits="0"/>
<line number="257" hits="0"/>
<line number="263" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="264,299"/>
<line number="264" hits="0"/>
<line number="265" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="267,296"/>
<line number="267" hits="0"/>
<line number="268" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="269,278"/>
<line number="269" hits="0"/>
<line number="270" hits="0"/>
<line number="271" hits="0"/>
<line number="278" hits="0"/>
<line number="280" hits="0"/>
<line number="287" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="288,290"/>
<line number="288" hits="0"/>
<line number="290" hits="0"/>
<line number="296" hits="0"/>
<line number="299" hits="0"/>
<line number="300" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="301,302"/>
<line number="301" hits="0"/>
<line number="302" hits="0"/>
<line number="313" hits="0"/>
<line number="316" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="317,318"/>
<line number="317" hits="0"/>
<line number="318" hits="0"/>
<line number="321" hits="0"/>
<line number="324" hits="0"/>
<line number="327" hits="0"/>
<line number="328" hits="0"/>
<line number="330" hits="0"/>
<line number="331" hits="0"/>
<line number="332" hits="0"/>
<line number="334" hits="0"/>
<line number="340" hits="0"/>
<line number="342" hits="0"/>
<line number="348" hits="0"/>
</lines>
</class>
<class name="auto_clip_service.py" filename="services/auto_clip_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="20" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="30" hits="0"/>
<line number="33" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0"/>
<line number="46" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="61" hits="0"/>
<line number="64" hits="0"/>
<line number="65" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="68" hits="0"/>
<line number="72" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="94,97"/>
<line number="94" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="101" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="107,112"/>
<line number="107" hits="0"/>
<line number="108" hits="0"/>
<line number="109" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="106,110"/>
<line number="110" hits="0"/>
<line number="112" hits="0"/>
<line number="119" hits="0"/>
<line number="126" hits="0"/>
<line number="128" hits="0"/>
<line number="141" hits="0"/>
<line number="142" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="143,146"/>
<line number="143" hits="0"/>
<line number="146" hits="0"/>
<line number="147" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="148,150"/>
<line number="148" hits="0"/>
<line number="150" hits="0"/>
<line number="151" hits="0"/>
<line number="155" hits="0"/>
<line number="162" hits="0"/>
<line number="165" hits="0"/>
<line number="168" hits="0"/>
<line number="180" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="181,191"/>
<line number="181" hits="0"/>
<line number="191" hits="0"/>
<line number="192" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="197,206"/>
<line number="197" hits="0"/>
<line number="202" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="196,203"/>
<line number="203" hits="0"/>
<line number="204" hits="0"/>
<line number="206" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="207,217"/>
<line number="207" hits="0"/>
<line number="217" hits="0"/>
<line number="218" hits="0"/>
<line number="219" hits="0"/>
<line number="221" hits="0"/>
<line number="230" hits="0"/>
<line number="231" hits="0"/>
<line number="245" hits="0"/>
<line number="246" hits="0"/>
<line number="249" hits="0"/>
<line number="250" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="251,261"/>
<line number="251" hits="0"/>
<line number="252" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="253,258"/>
<line number="253" hits="0"/>
<line number="255" hits="0"/>
<line number="258" hits="0"/>
<line number="261" hits="0"/>
<line number="262" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="263,272"/>
<line number="263" hits="0"/>
<line number="264" hits="0"/>
<line number="265" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="266,267"/>
<line number="266" hits="0"/>
<line number="267" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="269,274"/>
<line number="269" hits="0"/>
<line number="272" hits="0"/>
<line number="274" hits="0"/>
<line number="279" hits="0"/>
<line number="281" hits="0"/>
<line number="282" hits="0"/>
<line number="288" hits="0"/>
<line number="289" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="290,293"/>
<line number="290" hits="0"/>
<line number="293" hits="0"/>
<line number="295" hits="0"/>
<line number="296" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="297,300"/>
<line number="297" hits="0"/>
<line number="300" hits="0"/>
<line number="301" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="302,308"/>
<line number="302" hits="0"/>
<line number="303" hits="0"/>
<line number="304" hits="0"/>
<line number="305" hits="0"/>
<line number="308" hits="0"/>
<line number="309" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="311,316"/>
<line number="311" hits="0"/>
<line number="312" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="313,316"/>
<line number="313" hits="0"/>
<line number="316" hits="0"/>
<line number="317" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="318,321"/>
<line number="318" hits="0"/>
<line number="321" hits="0"/>
<line number="322" hits="0"/>
<line number="323" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="324,325"/>
<line number="324" hits="0"/>
<line number="325" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="326,329"/>
<line number="326" hits="0"/>
<line number="329" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="330,331"/>
<line number="330" hits="0"/>
<line number="331" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="332,333"/>
<line number="332" hits="0"/>
<line number="333" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="334,337"/>
<line number="334" hits="0"/>
<line number="337" hits="0"/>
<line number="338" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="339,341"/>
<line number="339" hits="0"/>
<line number="341" hits="0"/>
</lines>
</class>
<class name="cover_service.py" filename="services/cover_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="11" hits="0"/>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="25" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="30" hits="0"/>
<line number="34" hits="0"/>
<line number="35" hits="0"/>
<line number="44" hits="0"/>
<line number="45" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="46,48"/>
<line number="46" hits="0"/>
<line number="48" hits="0"/>
<line number="56" hits="0"/>
<line number="84" hits="0"/>
<line number="85" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="86,88"/>
<line number="86" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="90,92"/>
<line number="90" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="94,97"/>
<line number="94" hits="0"/>
<line number="97" hits="0"/>
<line number="98" hits="0"/>
<line number="99" hits="0"/>
<line number="101" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="104" hits="0"/>
<line number="105" hits="0"/>
<line number="107" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="108,111"/>
<line number="108" hits="0"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="121" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="122,125"/>
<line number="122" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="128" hits="0"/>
<line number="129" hits="0"/>
<line number="134" hits="0"/>
<line number="135" hits="0"/>
<line number="138" hits="0"/>
<line number="139" hits="0"/>
<line number="140" hits="0"/>
<line number="141" hits="0"/>
<line number="143" hits="0"/>
<line number="151" hits="0"/>
<line number="157" hits="0"/>
<line number="180" hits="0"/>
<line number="182" hits="0"/>
<line number="190" hits="0"/>
<line number="191" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0"/>
<line number="215" hits="0"/>
<line number="218" hits="0"/>
<line number="220" hits="0"/>
<line number="238" hits="0"/>
<line number="240" hits="0"/>
<line number="241" hits="0"/>
<line number="247" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,248"/>
<line number="248" hits="0"/>
<line number="250" hits="0"/>
<line number="265" hits="0"/>
<line number="271" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,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"/>
</lines>
</class>
<class name="edit_plan_service.py" filename="services/edit_plan_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="22" hits="0"/>
<line number="23" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="27" hits="0"/>
<line number="30" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="47" hits="0"/>
<line number="49" hits="0"/>
<line number="51" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="55,56"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="58" hits="0"/>
<line number="73" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="85" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="89,90"/>
<line number="89" hits="0"/>
<line number="90" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="exit,91"/>
<line number="91" hits="0"/>
<line number="92" hits="0"/>
<line number="93" hits="0"/>
<line number="94" hits="0"/>
<line number="95" hits="0"/>
<line number="96" hits="0"/>
<line number="98" hits="0"/>
<line number="111" hits="0"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="117" hits="0"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="132" hits="0"/>
<line number="136" hits="0"/>
<line number="149" hits="0"/>
<line number="152" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="153,157"/>
<line number="153" hits="0"/>
<line number="157" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="158,173"/>
<line number="158" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="159,160"/>
<line number="159" hits="0"/>
<line number="160" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="161,163"/>
<line number="161" hits="0"/>
<line number="163" hits="0"/>
<line number="164" hits="0"/>
<line number="165" hits="0"/>
<line number="171" hits="0"/>
<line number="173" hits="0"/>
<line number="180" hits="0"/>
<line number="181" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="182,184"/>
<line number="182" hits="0"/>
<line number="184" hits="0"/>
<line number="185" hits="0"/>
<line number="186" hits="0"/>
<line number="192" hits="0"/>
<line number="196" hits="0"/>
<line number="206" hits="0"/>
<line number="207" hits="0"/>
<line number="209" hits="0"/>
<line number="216" hits="0"/>
<line number="218" hits="0"/>
<line number="220" hits="0"/>
<line number="222" hits="0"/>
<line number="224" hits="0"/>
<line number="225" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="226,227"/>
<line number="226" hits="0"/>
<line number="227" hits="0"/>
<line number="229" hits="0"/>
<line number="251" hits="0"/>
<line number="253" hits="0"/>
<line number="255" hits="0"/>
<line number="269" hits="0"/>
<line number="270" hits="0"/>
<line number="277" hits="0"/>
<line number="279" hits="0"/>
<line number="299" hits="0"/>
<line number="302" hits="0"/>
<line number="305" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="306,313"/>
<line number="306" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="307,308"/>
<line number="307" hits="0"/>
<line number="308" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="309,310"/>
<line number="309" hits="0"/>
<line number="310" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="311,313"/>
<line number="311" hits="0"/>
<line number="313" hits="0"/>
<line number="335" hits="0"/>
<line number="336" hits="0"/>
<line number="337" hits="0"/>
<line number="339" hits="0"/>
<line number="345" hits="0"/>
<line number="347" hits="0"/>
<line number="348" hits="0"/>
<line number="349" hits="0"/>
<line number="350" hits="0"/>
<line number="351" hits="0"/>
<line number="353" hits="0"/>
<line number="359" hits="0"/>
<line number="360" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="361,362"/>
<line number="361" hits="0"/>
<line number="362" hits="0"/>
<line number="364" hits="0"/>
<line number="370" hits="0"/>
<line number="371" hits="0"/>
<line number="372" hits="0"/>
<line number="376" hits="0"/>
<line number="389" hits="0"/>
<line number="390" hits="0"/>
<line number="393" hits="0"/>
<line number="394" hits="0"/>
<line number="400" hits="0"/>
<line number="402" hits="0"/>
<line number="405" hits="0"/>
<line number="406" hits="0"/>
<line number="409" hits="0"/>
<line number="410" hits="0"/>
<line number="418" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="419,423"/>
<line number="419" hits="0"/>
<line number="420" hits="0"/>
<line number="423" hits="0"/>
<line number="425" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="427,434"/>
<line number="427" hits="0"/>
<line number="429" hits="0"/>
<line number="430" hits="0"/>
<line number="431" hits="0"/>
<line number="432" hits="0"/>
<line number="434" hits="0"/>
<line number="448" hits="0"/>
<line number="450" hits="0"/>
<line number="459" hits="0"/>
<line number="464" hits="0"/>
<line number="476" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="477,480"/>
<line number="477" hits="0"/>
<line number="480" hits="0"/>
<line number="481" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="482,486"/>
<line number="482" hits="0"/>
<line number="483" hits="0"/>
<line number="486" hits="0"/>
<line number="487" hits="0"/>
<line number="489" hits="0"/>
<line number="492" hits="0"/>
<line number="493" hits="0"/>
<line number="494" hits="0"/>
<line number="495" hits="0"/>
<line number="498" hits="0"/>
<line number="501" hits="0"/>
<line number="502" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="503,506"/>
<line number="503" hits="0"/>
<line number="506" hits="0"/>
<line number="507" hits="0"/>
<line number="515" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="516,519"/>
<line number="516" hits="0"/>
<line number="517" hits="0"/>
<line number="519" hits="0"/>
<line number="526" hits="0"/>
<line number="530" hits="0"/>
<line number="546" hits="0"/>
<line number="547" hits="0"/>
<line number="550" hits="0"/>
<line number="551" hits="0"/>
<line number="552" hits="0"/>
<line number="553" hits="0"/>
<line number="555" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="556,562"/>
<line number="556" hits="0"/>
<line number="557" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="558,562"/>
<line number="558" hits="0"/>
<line number="559" hits="0"/>
<line number="560" hits="0"/>
<line number="562" hits="0"/>
<line number="571" hits="0"/>
<line number="577" hits="0"/>
<line number="580" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="581,584"/>
<line number="581" hits="0"/>
<line number="584" hits="0"/>
<line number="585" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="586,588"/>
<line number="586" hits="0"/>
<line number="588" hits="0"/>
<line number="590" hits="0"/>
<line number="596" hits="0"/>
<line number="600" hits="0"/>
<line number="601" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="602,605"/>
<line number="602" hits="0"/>
<line number="603" hits="0"/>
<line number="604" hits="0"/>
<line number="605" hits="0"/>
<line number="606" hits="0"/>
<line number="608" hits="0"/>
<line number="618" hits="0"/>
<line number="620" hits="0"/>
<line number="621" hits="0"/>
<line number="622" hits="0"/>
<line number="624" hits="0"/>
<line number="637" hits="0"/>
</lines>
</class>
<class name="edit_template_service.py" filename="services/edit_template_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="7" hits="0"/>
<line number="9" hits="0"/>
<line number="10" hits="0"/>
<line number="12" hits="0"/>
<line number="14" hits="0"/>
<line number="20" hits="0"/>
<line number="21" hits="0"/>
<line number="26" hits="0"/>
<line number="34" hits="0"/>
<line number="37" hits="0"/>
<line number="46" hits="0"/>
<line number="47" hits="0"/>
<line number="48" hits="0"/>
<line number="49" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="55" hits="0"/>
<line number="56" hits="0"/>
<line number="60" hits="0"/>
<line number="78" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="79,84"/>
<line number="79" hits="0"/>
<line number="84" hits="0"/>
<line number="91" hits="0"/>
<line number="98" hits="0"/>
<line number="103" hits="0"/>
<line number="105" hits="0"/>
<line number="107" hits="0"/>
<line number="109" hits="0"/>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="111,112"/>
<line number="111" hits="0"/>
<line number="112" hits="0"/>
<line number="114" hits="0"/>
<line number="131" hits="0"/>
<line number="134" hits="0"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="136,139"/>
<line number="136" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,137"/>
<line number="137" hits="0"/>
<line number="139" hits="0"/>
<line number="148" hits="0"/>
<line number="149" hits="0"/>
<line number="150" hits="0"/>
<line number="152" hits="0"/>
<line number="170" hits="0"/>
<line number="173" hits="0"/>
<line number="174" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="175,181"/>
<line number="175" hits="0"/>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="177,181"/>
<line number="177" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="176,178"/>
<line number="178" hits="0"/>
<line number="181" hits="0"/>
<line number="194" hits="0"/>
<line number="195" hits="0"/>
<line number="196" hits="0"/>
<line number="198" hits="0"/>
<line number="204" hits="0"/>
<line number="205" hits="0"/>
<line number="206" hits="0"/>
<line number="207" hits="0"/>
<line number="208" hits="0"/>
<line number="212" hits="0"/>
<line number="222" hits="0"/>
<line number="223" hits="0"/>
<line number="230" hits="0"/>
<line number="232" hits="0"/>
<line number="234" hits="0"/>
<line number="236" hits="0"/>
<line number="237" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="238,239"/>
<line number="238" hits="0"/>
<line number="239" hits="0"/>
<line number="241" hits="0"/>
<line number="260" hits="0"/>
<line number="262" hits="0"/>
<line number="273" hits="0"/>
<line number="274" hits="0"/>
<line number="281" hits="0"/>
<line number="283" hits="0"/>
<line number="301" hits="0"/>
<line number="304" hits="0"/>
<line number="305" hits="0"/>
<line number="309" hits="0"/>
<line number="325" hits="0"/>
<line number="326" hits="0"/>
<line number="327" hits="0"/>
<line number="329" hits="0"/>
<line number="335" hits="0"/>
<line number="336" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="337,338"/>
<line number="337" hits="0"/>
<line number="338" hits="0"/>
<line number="340" hits="0"/>
<line number="358" hits="0"/>
<line number="361" hits="0"/>
<line number="362" hits="0"/>
<line number="365" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="366,369"/>
<line number="366" hits="0"/>
<line number="369" hits="0"/>
<line number="370" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="371,390"/>
<line number="371" hits="0"/>
<line number="372" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="373,374"/>
<line number="373" hits="0"/>
<line number="374" hits="0"/>
<line number="388" hits="0"/>
<line number="390" hits="0"/>
<line number="395" hits="0"/>
<line number="397" hits="0"/>
<line number="406" hits="0"/>
<line number="407" hits="0"/>
<line number="408" hits="0"/>
<line number="415" hits="0"/>
<line number="456" hits="0"/>
<line number="457" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="458,461"/>
<line number="458" hits="0"/>
<line number="461" hits="0"/>
<line number="462" hits="0"/>
<line number="465" hits="0"/>
<line number="468" hits="0"/>
<line number="469" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="470,473"/>
<line number="470" hits="0"/>
<line number="473" hits="0"/>
<line number="474" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="475,479"/>
<line number="475" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="474,476"/>
<line number="476" hits="0"/>
<line number="479" hits="0"/>
<line number="481" hits="0"/>
<line number="489" hits="0"/>
<line number="490" hits="0"/>
<line number="499" hits="0"/>
<line number="500" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="501,504"/>
<line number="501" hits="0"/>
<line number="502" hits="0"/>
<line number="504" hits="0"/>
<line number="511" hits="0"/>
<line number="523" hits="0"/>
<line number="525" hits="0"/>
<line number="526" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="527,530"/>
<line number="527" hits="0"/>
<line number="528" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="526,529"/>
<line number="529" hits="0"/>
<line number="530" hits="0"/>
<line number="532" hits="0"/>
<line number="557" hits="0"/>
<line number="560" hits="0"/>
<line number="563" hits="0"/>
<line number="564" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="565,568"/>
<line number="565" hits="0"/>
<line number="568" hits="0"/>
<line number="571" hits="0"/>
<line number="572" hits="0"/>
<line number="580" hits="0"/>
<line number="583" hits="0"/>
<line number="584" hits="0"/>
<line number="585" hits="0"/>
<line number="586" hits="0"/>
<line number="588" hits="0"/>
<line number="594" hits="0"/>
<line number="596" hits="0"/>
<line number="615" hits="0"/>
<line number="616" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="617,618"/>
<line number="617" hits="0"/>
<line number="618" hits="0"/>
<line number="620" hits="0"/>
<line number="650" hits="0"/>
<line number="651" hits="0"/>
<line number="652" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="653,654"/>
<line number="653" hits="0"/>
<line number="654" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="655,656"/>
<line number="655" hits="0"/>
<line number="656" hits="0"/>
<line number="657" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="658,661"/>
<line number="658" hits="0"/>
<line number="661" hits="0"/>
<line number="662" hits="0"/>
<line number="665" hits="0"/>
<line number="668" hits="0"/>
<line number="671" hits="0"/>
<line number="673" hits="0"/>
<line number="674" hits="0"/>
<line number="675" hits="0"/>
<line number="677" hits="0"/>
<line number="679" hits="0"/>
<line number="689" hits="0"/>
<line number="692" hits="0"/>
<line number="693" hits="0"/>
<line number="694" hits="0"/>
<line number="695" hits="0"/>
<line number="698" hits="0"/>
<line number="701" hits="0"/>
<line number="702" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="703,706"/>
<line number="703" hits="0"/>
<line number="704" hits="0"/>
<line number="706" hits="0"/>
<line number="707" hits="0"/>
<line number="713" hits="0"/>
<line number="715" hits="0"/>
<line number="716" hits="0"/>
<line number="717" hits="0"/>
<line number="723" hits="0"/>
<line number="727" hits="0"/>
<line number="729" hits="0"/>
<line number="730" hits="0"/>
<line number="732" hits="0"/>
<line number="747" hits="0"/>
<line number="750" hits="0"/>
<line number="751" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="752,754"/>
<line number="752" hits="0"/>
<line number="754" hits="0"/>
<line number="756" hits="0"/>
<line number="758" hits="0"/>
<line number="759" hits="0"/>
<line number="761" hits="0"/>
<line number="763" hits="0"/>
<line number="773" hits="0"/>
<line number="776" hits="0"/>
<line number="777" hits="0"/>
<line number="778" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="779,780"/>
<line number="779" hits="0"/>
<line number="780" hits="0"/>
<line number="781" hits="0"/>
<line number="784" hits="0"/>
<line number="788" hits="0"/>
<line number="792" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="793,795"/>
<line number="793" hits="0"/>
<line number="795" hits="0"/>
<line number="796" hits="0"/>
<line number="803" hits="0"/>
<line number="805" hits="0"/>
<line number="806" hits="0"/>
<line number="807" hits="0"/>
<line number="813" hits="0"/>
</lines>
</class>
<class name="job_service.py" filename="services/job_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="11" hits="0"/>
<line number="13" hits="0"/>
<line number="14" hits="0"/>
<line number="16" hits="0"/>
<line number="32" hits="0"/>
<line number="33" hits="0"/>
<line number="35" hits="0"/>
<line number="38" hits="0"/>
<line number="57" hits="0"/>
<line number="58" hits="0"/>
<line number="62" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="93" hits="0"/>
<line number="102" hits="0"/>
<line number="103" hits="0"/>
<line number="114" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="139" hits="0"/>
<line number="141" hits="0"/>
<line number="142" hits="0"/>
<line number="146" hits="0"/>
<line number="148" hits="0"/>
<line number="149" hits="0"/>
<line number="159" hits="0"/>
<line number="161" hits="0"/>
<line number="162" hits="0"/>
<line number="164" hits="0"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="171" hits="0"/>
<line number="173" hits="0"/>
<line number="174" hits="0"/>
<line number="176" hits="0"/>
<line number="178" hits="0"/>
<line number="179" hits="0"/>
<line number="183" hits="0"/>
<line number="185" hits="0"/>
<line number="186" hits="0"/>
<line number="188" hits="0"/>
<line number="198" hits="0"/>
<line number="199" hits="0"/>
<line number="207" hits="0"/>
<line number="217" hits="0"/>
<line number="218" hits="0"/>
<line number="226" hits="0"/>
<line number="228" hits="0"/>
<line number="229" hits="0"/>
<line number="233" hits="0"/>
<line number="243" hits="0"/>
<line number="247" hits="0"/>
<line number="259" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="260,264"/>
<line number="260" hits="0"/>
<line number="261" hits="0"/>
<line number="262" hits="0"/>
<line number="264" hits="0"/>
<line number="265" hits="0"/>
<line number="266" hits="0"/>
</lines>
</class>
<class name="plan_generator_service.py" filename="services/plan_generator_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="13" hits="0"/>
<line number="15" hits="0"/>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="20" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="27" hits="0"/>
<line number="28" hits="0"/>
<line number="29" hits="0"/>
<line number="35" hits="0"/>
<line number="37" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="46" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="54" hits="0"/>
<line number="58" hits="0"/>
<line number="81" hits="0"/>
<line number="82" hits="0"/>
<line number="85" hits="0"/>
<line number="88" hits="0"/>
<line number="96" hits="0"/>
<line number="97" hits="0"/>
<line number="106" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="107,114"/>
<line number="107" hits="0"/>
<line number="112" hits="0"/>
<line number="114" hits="0"/>
<line number="117" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="118,121"/>
<line number="118" hits="0"/>
<line number="121" hits="0"/>
<line number="122" hits="0"/>
<line number="123" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="124,129"/>
<line number="124" hits="0"/>
<line number="125" hits="0"/>
<line number="126" hits="0"/>
<line number="129" hits="0"/>
<line number="130" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0"/>
<line number="135" hits="0"/>
<line number="136" hits="0"/>
<line number="137" hits="0"/>
<line number="139" hits="0"/>
<line number="146" hits="0"/>
<line number="150" hits="0"/>
<line number="156" hits="0"/>
<line number="157" hits="0"/>
<line number="161" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="162,165"/>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="161,163"/>
<line number="163" hits="0"/>
<line number="165" hits="0"/>
<line number="167" hits="0"/>
<line number="176" hits="0"/>
<line number="178" hits="0"/>
<line number="183" hits="0"/>
<line number="185" hits="0"/>
<line number="195" hits="0"/>
<line number="197" hits="0"/>
<line number="207" hits="0"/>
</lines>
</class>
<class name="smart_asset_selector.py" filename="services/smart_asset_selector.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="20" hits="0"/>
<line number="22" hits="0"/>
<line number="24" hits="0"/>
<line number="25" hits="0"/>
<line number="26" hits="0"/>
<line number="34" hits="0"/>
<line number="37" hits="0"/>
<line number="44" hits="0"/>
<line number="50" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="56" hits="0"/>
<line number="74" hits="0"/>
<line number="76" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="77,86"/>
<line number="77" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="88,101"/>
<line number="88" hits="0"/>
<line number="98" hits="0"/>
<line number="101" hits="0"/>
<line number="104" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="105,108"/>
<line number="105" hits="0"/>
<line number="108" hits="0"/>
<line number="110" hits="0"/>
<line number="112" hits="0"/>
<line number="120" hits="0"/>
<line number="127" hits="0"/>
<line number="131" hits="0"/>
<line number="133" hits="0"/>
<line number="144" hits="0"/>
<line number="146" hits="0"/>
<line number="148" hits="0"/>
<line number="150" hits="0"/>
<line number="152" hits="0"/>
<line number="154" hits="0"/>
<line number="156" hits="0"/>
<line number="158" hits="0"/>
<line number="160" hits="0"/>
<line number="162" hits="0"/>
<line number="164" hits="0"/>
</lines>
</class>
<class name="video_compose_service.py" filename="services/video_compose_service.py" complexity="0" line-rate="0" branch-rate="0">
<methods/>
<lines>
<line number="16" hits="0"/>
<line number="18" hits="0"/>
<line number="19" hits="0"/>
<line number="20" hits="0"/>
<line number="22" hits="0"/>
<line number="24" hits="0"/>
<line number="27" hits="0"/>
<line number="30" hits="0"/>
<line number="31" hits="0"/>
<line number="32" hits="0"/>
<line number="40" hits="0"/>
<line number="41" hits="0"/>
<line number="42" hits="0"/>
<line number="43" hits="0"/>
<line number="44" hits="0"/>
<line number="46" hits="0"/>
<line number="51" hits="0"/>
<line number="52" hits="0"/>
<line number="53" hits="0"/>
<line number="59" hits="0"/>
<line number="60" hits="0"/>
<line number="63" hits="0"/>
<line number="64" hits="0"/>
<line number="66" hits="0"/>
<line number="67" hits="0"/>
<line number="69" hits="0"/>
<line number="70" hits="0"/>
<line number="72" hits="0"/>
<line number="73" hits="0"/>
<line number="75" hits="0"/>
<line number="76" hits="0"/>
<line number="78" hits="0"/>
<line number="79" hits="0"/>
<line number="82" hits="0"/>
<line number="83" hits="0"/>
<line number="86" hits="0"/>
<line number="87" hits="0"/>
<line number="88" hits="0"/>
<line number="89" hits="0"/>
<line number="90" hits="0"/>
<line number="96" hits="0"/>
<line number="113" hits="0"/>
<line number="114" hits="0"/>
<line number="115" hits="0"/>
<line number="116" hits="0"/>
<line number="120" hits="0"/>
<line number="130" hits="0"/>
<line number="131" hits="0"/>
<line number="133" hits="0"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="135,141"/>
<line number="135" hits="0"/>
<line number="141" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="142,145"/>
<line number="142" hits="0"/>
<line number="145" hits="0"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="147,155"/>
<line number="147" hits="0"/>
<line number="148" hits="0"/>
<line number="155" hits="0"/>
<line number="157" hits="0"/>
<line number="158" hits="0"/>
<line number="159" hits="0"/>
<line number="160" hits="0"/>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="163,176"/>
<line number="163" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="164,171"/>
<line number="164" hits="0"/>
<line number="165" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="166,168"/>
<line number="166" hits="0"/>
<line number="167" hits="0"/>
<line number="168" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="162,169"/>
<line number="169" hits="0"/>
<line number="170" hits="0"/>
<line number="171" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="172,173"/>
<line number="172" hits="0"/>
<line number="173" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="162,174"/>
<line number="174" hits="0"/>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="177,179"/>
<line number="177" hits="0"/>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="180,182"/>
<line number="180" hits="0"/>
<line number="182" hits="0"/>
<line number="190" hits="0"/>
<line number="212" hits="0"/>
<line number="213" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="214,216"/>
<line number="214" hits="0"/>
<line number="216" hits="0"/>
<line number="217" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="218,221"/>
<line number="218" hits="0"/>
<line number="221" hits="0"/>
<line number="222" hits="0"/>
<line number="224" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="225,228"/>
<line number="225" hits="0"/>
<line number="228" hits="0"/>
<line number="229" hits="0"/>
<line number="231" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="232,243"/>
<line number="232" hits="0"/>
<line number="239" hits="0"/>
<line number="240" hits="0"/>
<line number="243" hits="0"/>
<line number="252" hits="0"/>
<line number="255" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="256,259"/>
<line number="256" hits="0"/>
<line number="259" hits="0"/>
<line number="262" hits="0"/>
<line number="263" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="264,267"/>
<line number="264" hits="0"/>
<line number="267" hits="0"/>
<line number="283" hits="0"/>
<line number="285" hits="0"/>
<line number="294" hits="0"/>
<line number="304" hits="0"/>
<line number="305" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="306,307"/>
<line number="306" hits="0"/>
<line number="307" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="308,310"/>
<line number="308" hits="0"/>
<line number="310" hits="0"/>
<line number="319" hits="0"/>
<line number="320" hits="0"/>
<line number="338" hits="0"/>
<line number="347" hits="0"/>
<line number="349" hits="0"/>
<line number="350" hits="0" branch="true" condition-coverage="0% (0/2)" missing-branches="351,353"/>
<line number="351" hits="0"/>
<line number="353" hits="0"/>
<line number="354" hits="0"/>
<line number="356" hits="0"/>
<line number="357" hits="0"/>
<line number="358" hits="0"/>
<line number="359" hits="0"/>
<line number="360" hits="0"/>
<line number="362" hits="0"/>
<line number="382" hits="0"/>
<line number="383" hits="0"/>
<line number="391" hits="0"/>
<line number="393" hits="0"/>
<line number="394" hits="0"/>
<line number="402" hits="0"/>
<line number="404" hits="0"/>
<line number="405" hits="0"/>
<line number="407" hits="0"/>
<line number="415" hits="0"/>
<line number="417" hits="0"/>
<line number="420" hits="0"/>
<line number="424" hits="0"/>
<line number="427" hits="0"/>
<line number="433" hits="0"/>
</lines>
</class>
</classes>
</package>
</packages>
</coverage>