<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1772663274">
  <project timestamp="1772663274">
    <file name="/src/src/AbstractApp.php">
      <class name="Wikimedia\Slimapp\AbstractApp" namespace="global">
        <metrics complexity="10" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="90" coveredstatements="0" elements="95" coveredelements="0"/>
      </class>
      <line num="61" type="method" name="__construct" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="74" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="113" type="stmt" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <line num="126" type="stmt" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="129" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="142" type="stmt" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="178" type="method" name="run" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="179" type="stmt" count="0"/>
      <line num="180" type="stmt" count="0"/>
      <line num="181" type="stmt" count="0"/>
      <line num="182" type="stmt" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="194" type="method" name="redirect" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="197" type="stmt" count="0"/>
      <line num="199" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="211" type="method" name="template" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="214" type="stmt" count="0"/>
      <line num="216" type="stmt" count="0"/>
      <line num="217" type="stmt" count="0"/>
      <line num="218" type="stmt" count="0"/>
      <line num="233" type="method" name="configureHeaderMiddleware" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="235" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="239" type="stmt" count="0"/>
      <line num="240" type="stmt" count="0"/>
      <line num="241" type="stmt" count="0"/>
      <line num="243" type="stmt" count="0"/>
      <line num="245" type="stmt" count="0"/>
      <line num="248" type="stmt" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <metrics loc="252" ncloc="154" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="90" coveredstatements="0" elements="95" coveredelements="0"/>
    </file>
    <file name="/src/src/Auth/AuthManager.php">
      <class name="Wikimedia\Slimapp\Auth\AuthManager" namespace="global">
        <metrics complexity="15" methods="9" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="26" coveredstatements="0" elements="35" coveredelements="0"/>
      </class>
      <line num="45" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="53" type="method" name="getUserData" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="61" type="method" name="getUserId" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="70" type="method" name="setUser" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="78" type="method" name="isAuthenticated" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="86" type="method" name="isAnonymous" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="96" type="method" name="authenticate" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="113" type="method" name="login" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="129" type="method" name="logout" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="140" type="stmt" count="0"/>
      <line num="141" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <metrics loc="149" ncloc="76" classes="1" methods="9" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="26" coveredstatements="0" elements="35" coveredelements="0"/>
    </file>
    <file name="/src/src/Auth/Password.php">
      <class name="Wikimedia\Slimapp\Auth\Password" namespace="global">
        <metrics complexity="32" methods="8" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="87" coveredstatements="43" elements="95" coveredelements="45"/>
      </class>
      <line num="49" type="method" name="comparePasswordToHash" visibility="public" complexity="2" crap="2.06" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="55" type="stmt" count="0"/>
      <line num="58" type="stmt" count="1"/>
      <line num="72" type="method" name="encodePassword" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <line num="74" type="stmt" count="1"/>
      <line num="83" type="method" name="blowfishSalt" visibility="public" complexity="4" crap="4" count="1"/>
      <line num="85" type="stmt" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <line num="87" type="stmt" count="0"/>
      <line num="89" type="stmt" count="1"/>
      <line num="91" type="stmt" count="1"/>
      <line num="92" type="stmt" count="1"/>
      <line num="93" type="stmt" count="1"/>
      <line num="94" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="98" type="stmt" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="100" type="stmt" count="1"/>
      <line num="101" type="stmt" count="1"/>
      <line num="102" type="stmt" count="1"/>
      <line num="103" type="stmt" count="1"/>
      <line num="106" type="stmt" count="1"/>
      <line num="107" type="stmt" count="1"/>
      <line num="108" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="111" type="stmt" count="1"/>
      <line num="112" type="stmt" count="1"/>
      <line num="113" type="stmt" count="1"/>
      <line num="114" type="stmt" count="1"/>
      <line num="115" type="stmt" count="1"/>
      <line num="117" type="stmt" count="1"/>
      <line num="129" type="method" name="getBytes" visibility="public" complexity="13" crap="182" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="133" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="141" type="stmt" count="0"/>
      <line num="142" type="stmt" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="148" type="stmt" count="0"/>
      <line num="150" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="155" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="168" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="178" type="stmt" count="0"/>
      <line num="179" type="stmt" count="0"/>
      <line num="180" type="stmt" count="0"/>
      <line num="181" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="193" type="method" name="isBlowfishHash" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="220" type="method" name="randomPassword" visibility="public" complexity="3" crap="3" count="1"/>
      <line num="221" type="stmt" count="1"/>
      <line num="222" type="stmt" count="1"/>
      <line num="224" type="stmt" count="1"/>
      <line num="226" type="stmt" count="1"/>
      <line num="227" type="stmt" count="1"/>
      <line num="229" type="stmt" count="1"/>
      <line num="230" type="stmt" count="1"/>
      <line num="233" type="stmt" count="1"/>
      <line num="248" type="method" name="hashEquals" visibility="public" complexity="6" crap="11.62" count="2"/>
      <line num="249" type="stmt" count="2"/>
      <line num="250" type="stmt" count="1"/>
      <line num="252" type="stmt" count="2"/>
      <line num="253" type="stmt" count="1"/>
      <line num="256" type="stmt" count="2"/>
      <line num="257" type="stmt" count="2"/>
      <line num="262" type="stmt" count="0"/>
      <line num="263" type="stmt" count="0"/>
      <line num="264" type="stmt" count="0"/>
      <line num="267" type="stmt" count="0"/>
      <line num="268" type="stmt" count="0"/>
      <line num="269" type="stmt" count="0"/>
      <line num="272" type="stmt" count="0"/>
      <line num="278" type="method" name="__construct" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="280" type="stmt" count="0"/>
      <metrics loc="283" ncloc="175" classes="1" methods="8" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="87" coveredstatements="43" elements="95" coveredelements="45"/>
    </file>
    <file name="/src/src/Auth/UserData.php">
      <metrics loc="54" ncloc="13" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/src/src/Auth/UserManager.php">
      <metrics loc="41" ncloc="10" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/src/src/Config.php">
      <class name="Wikimedia\Slimapp\Config" namespace="global">
        <metrics complexity="8" methods="4" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="10" elements="22" coveredelements="11"/>
      </class>
      <line num="47" type="method" name="getBool" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="59" type="method" name="getStr" visibility="public" complexity="3" crap="4.68" count="2"/>
      <line num="60" type="stmt" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="67" type="stmt" count="2"/>
      <line num="75" type="method" name="getDate" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="76" type="stmt" count="1"/>
      <line num="89" type="method" name="load" visibility="public" complexity="3" crap="3.03" count="1"/>
      <line num="90" type="stmt" count="1"/>
      <line num="91" type="stmt" count="0"/>
      <line num="94" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="98" type="stmt" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="102" type="stmt" count="1"/>
      <metrics loc="107" ncloc="51" classes="1" methods="4" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="10" elements="22" coveredelements="11"/>
    </file>
    <file name="/src/src/Controller.php">
      <class name="Wikimedia\Slimapp\Controller" namespace="global">
        <metrics complexity="16" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="29" coveredstatements="0" elements="41" coveredelements="0"/>
      </class>
      <line num="67" type="method" name="__construct" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="76" type="method" name="setDao" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="84" type="method" name="setForm" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="92" type="method" name="setMailer" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="100" type="method" name="setI18nContext" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="109" type="method" name="handle" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="119" type="method" name="__invoke" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="126" type="stmt" count="0"/>
      <line num="137" type="method" name="__call" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="142" type="stmt" count="0"/>
      <line num="143" type="stmt" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="155" type="method" name="__get" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="165" type="method" name="flashGet" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="180" type="method" name="msg" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="181" type="stmt" count="0"/>
      <line num="193" type="method" name="pagination" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="196" type="stmt" count="0"/>
      <line num="197" type="stmt" count="0"/>
      <metrics loc="201" ncloc="92" classes="1" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="29" coveredstatements="0" elements="41" coveredelements="0"/>
    </file>
    <file name="/src/src/CsrfMiddleware.php">
      <class name="Wikimedia\Slimapp\CsrfMiddleware" namespace="global">
        <metrics complexity="4" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="0" elements="19" coveredelements="0"/>
      </class>
      <line num="46" type="method" name="call" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <metrics loc="75" ncloc="40" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="0" elements="19" coveredelements="0"/>
    </file>
    <file name="/src/src/Dao/AbstractDao.php">
      <class name="Wikimedia\Slimapp\Dao\AbstractDao" namespace="global">
        <metrics complexity="33" methods="15" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="99" coveredstatements="7" elements="114" coveredelements="10"/>
      </class>
      <line num="62" type="method" name="__construct" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="80" type="method" name="transactionStart" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="82" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="97" type="method" name="transactionCommit" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="113" type="method" name="transactionRollback" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="114" type="stmt" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="134" type="method" name="bind" visibility="protected" complexity="9" crap="90" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="141" type="stmt" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="148" type="stmt" count="0"/>
      <line num="149" type="stmt" count="0"/>
      <line num="150" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="177" type="method" name="fetch" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="178" type="stmt" count="0"/>
      <line num="179" type="stmt" count="0"/>
      <line num="180" type="stmt" count="0"/>
      <line num="181" type="stmt" count="0"/>
      <line num="191" type="method" name="fetchAll" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="192" type="stmt" count="0"/>
      <line num="193" type="stmt" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="196" type="stmt" count="0"/>
      <line num="211" type="method" name="fetchAllWithFound" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="212" type="stmt" count="0"/>
      <line num="213" type="stmt" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="216" type="stmt" count="0"/>
      <line num="218" type="stmt" count="0"/>
      <line num="228" type="method" name="update" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="229" type="stmt" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="232" type="stmt" count="0"/>
      <line num="233" type="stmt" count="0"/>
      <line num="234" type="stmt" count="0"/>
      <line num="236" type="stmt" count="0"/>
      <line num="237" type="stmt" count="0"/>
      <line num="238" type="stmt" count="0"/>
      <line num="239" type="stmt" count="0"/>
      <line num="240" type="stmt" count="0"/>
      <line num="241" type="stmt" count="0"/>
      <line num="242" type="stmt" count="0"/>
      <line num="243" type="stmt" count="0"/>
      <line num="244" type="stmt" count="0"/>
      <line num="255" type="method" name="insert" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="256" type="stmt" count="0"/>
      <line num="258" type="stmt" count="0"/>
      <line num="259" type="stmt" count="0"/>
      <line num="260" type="stmt" count="0"/>
      <line num="261" type="stmt" count="0"/>
      <line num="262" type="stmt" count="0"/>
      <line num="264" type="stmt" count="0"/>
      <line num="265" type="stmt" count="0"/>
      <line num="266" type="stmt" count="0"/>
      <line num="267" type="stmt" count="0"/>
      <line num="268" type="stmt" count="0"/>
      <line num="269" type="stmt" count="0"/>
      <line num="270" type="stmt" count="0"/>
      <line num="271" type="stmt" count="0"/>
      <line num="272" type="stmt" count="0"/>
      <line num="282" type="method" name="buildWhere" visibility="protected" complexity="1" crap="1" count="3"/>
      <line num="283" type="stmt" count="3"/>
      <line num="292" type="method" name="buildHaving" visibility="protected" complexity="1" crap="1" count="3"/>
      <line num="295" type="stmt" count="3"/>
      <line num="305" type="method" name="buildBooleanClause" visibility="protected" complexity="2" crap="2" count="6"/>
      <line num="308" type="stmt" count="6"/>
      <line num="309" type="stmt" count="4"/>
      <line num="310" type="stmt" count="4"/>
      <line num="311" type="stmt" count="4"/>
      <line num="313" type="stmt" count="2"/>
      <line num="324" type="method" name="concat" visibility="protected" complexity="3" crap="12" count="0"/>
      <line num="325" type="stmt" count="0"/>
      <line num="326" type="stmt" count="0"/>
      <line num="327" type="stmt" count="0"/>
      <line num="328" type="stmt" count="0"/>
      <line num="330" type="stmt" count="0"/>
      <line num="334" type="stmt" count="0"/>
      <line num="343" type="method" name="makeBindParams" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="344" type="stmt" count="0"/>
      <line num="345" type="stmt" count="0"/>
      <line num="346" type="stmt" count="0"/>
      <metrics loc="349" ncloc="196" classes="1" methods="15" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="99" coveredstatements="7" elements="114" coveredelements="10"/>
    </file>
    <file name="/src/src/Form.php">
      <class name="Wikimedia\Slimapp\Form" namespace="global">
        <metrics complexity="104" methods="59" coveredmethods="35" conditionals="0" coveredconditionals="0" statements="166" coveredstatements="133" elements="225" coveredelements="168"/>
      </class>
      <line num="79" type="method" name="__construct" visibility="public" complexity="2" crap="2" count="15"/>
      <line num="80" type="stmt" count="15"/>
      <line num="98" type="method" name="expect" visibility="public" complexity="8" crap="8.08" count="15"/>
      <line num="99" type="stmt" count="15"/>
      <line num="100" type="stmt" count="15"/>
      <line num="101" type="stmt" count="15"/>
      <line num="102" type="stmt" count="15"/>
      <line num="104" type="stmt" count="15"/>
      <line num="105" type="stmt" count="2"/>
      <line num="106" type="stmt" count="2"/>
      <line num="109" type="stmt" count="15"/>
      <line num="110" type="stmt" count="13"/>
      <line num="111" type="stmt" count="13"/>
      <line num="114" type="stmt" count="15"/>
      <line num="115" type="stmt" count="4"/>
      <line num="116" type="stmt" count="4"/>
      <line num="119" type="stmt" count="15"/>
      <line num="120" type="stmt" count="7"/>
      <line num="121" type="stmt" count="7"/>
      <line num="123" type="stmt" count="0"/>
      <line num="124" type="stmt" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <line num="127" type="stmt" count="7"/>
      <line num="130" type="stmt" count="15"/>
      <line num="131" type="stmt" count="15"/>
      <line num="132" type="stmt" count="15"/>
      <line num="133" type="stmt" count="15"/>
      <line num="134" type="stmt" count="15"/>
      <line num="135" type="stmt" count="15"/>
      <line num="136" type="stmt" count="15"/>
      <line num="138" type="stmt" count="15"/>
      <line num="146" type="method" name="expectBool" visibility="public" complexity="3" crap="3" count="2"/>
      <line num="147" type="stmt" count="2"/>
      <line num="148" type="stmt" count="2"/>
      <line num="149" type="stmt" count="2"/>
      <line num="151" type="stmt" count="2"/>
      <line num="159" type="method" name="requireBool" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="160" type="stmt" count="2"/>
      <line num="168" type="method" name="expectBoolArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="177" type="method" name="requireBoolArray" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="178" type="stmt" count="1"/>
      <line num="186" type="method" name="expectTrue" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="187" type="stmt" count="1"/>
      <line num="188" type="stmt" count="1"/>
      <line num="189" type="stmt" count="1"/>
      <line num="190" type="stmt" count="1"/>
      <line num="191" type="stmt" count="1"/>
      <line num="199" type="method" name="requireTrue" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="200" type="stmt" count="1"/>
      <line num="208" type="method" name="expectTrueArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="217" type="method" name="requireTrueArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="218" type="stmt" count="0"/>
      <line num="226" type="method" name="expectEmail" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="227" type="stmt" count="1"/>
      <line num="235" type="method" name="requireEmail" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="236" type="stmt" count="1"/>
      <line num="244" type="method" name="expectEmailArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="245" type="stmt" count="0"/>
      <line num="253" type="method" name="requireEmailArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="254" type="stmt" count="0"/>
      <line num="262" type="method" name="expectFloat" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="263" type="stmt" count="2"/>
      <line num="271" type="method" name="requireFloat" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="272" type="stmt" count="2"/>
      <line num="280" type="method" name="expectFloatArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="281" type="stmt" count="0"/>
      <line num="289" type="method" name="requireFloatArray" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="290" type="stmt" count="1"/>
      <line num="298" type="method" name="expectInt" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="299" type="stmt" count="3"/>
      <line num="307" type="method" name="requireInt" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="308" type="stmt" count="3"/>
      <line num="316" type="method" name="expectIntArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="317" type="stmt" count="0"/>
      <line num="325" type="method" name="requireIntArray" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="326" type="stmt" count="2"/>
      <line num="334" type="method" name="expectIp" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="335" type="stmt" count="1"/>
      <line num="343" type="method" name="requireIp" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="344" type="stmt" count="1"/>
      <line num="352" type="method" name="expectIpArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="353" type="stmt" count="0"/>
      <line num="361" type="method" name="requireIpArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="362" type="stmt" count="0"/>
      <line num="371" type="method" name="expectRegex" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="372" type="stmt" count="4"/>
      <line num="373" type="stmt" count="4"/>
      <line num="374" type="stmt" count="4"/>
      <line num="383" type="method" name="requireRegex" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="384" type="stmt" count="1"/>
      <line num="393" type="method" name="expectRegexArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="394" type="stmt" count="0"/>
      <line num="403" type="method" name="requireRegexArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="404" type="stmt" count="0"/>
      <line num="412" type="method" name="expectUrl" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="413" type="stmt" count="1"/>
      <line num="421" type="method" name="requireUrl" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="422" type="stmt" count="1"/>
      <line num="430" type="method" name="expectUrlArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="431" type="stmt" count="0"/>
      <line num="439" type="method" name="requireUrlArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="440" type="stmt" count="0"/>
      <line num="448" type="method" name="expectString" visibility="public" complexity="1" crap="1" count="4"/>
      <line num="449" type="stmt" count="4"/>
      <line num="457" type="method" name="requireString" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="458" type="stmt" count="3"/>
      <line num="466" type="method" name="expectStringArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="467" type="stmt" count="0"/>
      <line num="475" type="method" name="requireStringArray" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="476" type="stmt" count="1"/>
      <line num="484" type="method" name="expectAnything" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="485" type="stmt" count="3"/>
      <line num="493" type="method" name="requireAnything" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="494" type="stmt" count="0"/>
      <line num="502" type="method" name="expectAnythingArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="503" type="stmt" count="0"/>
      <line num="511" type="method" name="requireAnythingArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="512" type="stmt" count="0"/>
      <line num="521" type="method" name="expectInArray" visibility="public" complexity="4" crap="4" count="3"/>
      <line num="522" type="stmt" count="3"/>
      <line num="523" type="stmt" count="3"/>
      <line num="524" type="stmt" count="3"/>
      <line num="525" type="stmt" count="2"/>
      <line num="526" type="stmt" count="3"/>
      <line num="527" type="stmt" count="3"/>
      <line num="536" type="method" name="requireInArray" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="537" type="stmt" count="2"/>
      <line num="538" type="stmt" count="2"/>
      <line num="539" type="stmt" count="2"/>
      <line num="548" type="method" name="expectInArrayArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="549" type="stmt" count="0"/>
      <line num="550" type="stmt" count="0"/>
      <line num="551" type="stmt" count="0"/>
      <line num="560" type="method" name="requireInArrayArray" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="561" type="stmt" count="0"/>
      <line num="562" type="stmt" count="0"/>
      <line num="563" type="stmt" count="0"/>
      <line num="575" type="method" name="expectDateTime" visibility="public" complexity="6" crap="6.03" count="7"/>
      <line num="576" type="stmt" count="7"/>
      <line num="577" type="stmt" count="7"/>
      <line num="579" type="stmt" count="7"/>
      <line num="580" type="stmt" count="7"/>
      <line num="581" type="stmt" count="7"/>
      <line num="582" type="stmt" count="7"/>
      <line num="584" type="stmt" count="7"/>
      <line num="586" type="stmt" count="0"/>
      <line num="589" type="stmt" count="4"/>
      <line num="590" type="stmt" count="7"/>
      <line num="591" type="stmt" count="7"/>
      <line num="600" type="method" name="requireDateTime" visibility="public" complexity="1" crap="1" count="7"/>
      <line num="601" type="stmt" count="7"/>
      <line num="602" type="stmt" count="7"/>
      <line num="603" type="stmt" count="7"/>
      <line num="612" type="method" name="validate" visibility="public" complexity="21" crap="21.24" count="15"/>
      <line num="613" type="stmt" count="15"/>
      <line num="614" type="stmt" count="15"/>
      <line num="615" type="stmt" count="15"/>
      <line num="616" type="stmt" count="15"/>
      <line num="618" type="stmt" count="15"/>
      <line num="620" type="stmt" count="15"/>
      <line num="621" type="stmt" count="15"/>
      <line num="623" type="stmt" count="15"/>
      <line num="624" type="stmt" count="15"/>
      <line num="626" type="stmt" count="4"/>
      <line num="628" type="stmt" count="11"/>
      <line num="629" type="stmt" count="11"/>
      <line num="630" type="stmt" count="11"/>
      <line num="633" type="stmt" count="2"/>
      <line num="634" type="stmt" count="2"/>
      <line num="635" type="stmt" count="2"/>
      <line num="636" type="stmt" count="2"/>
      <line num="638" type="stmt" count="2"/>
      <line num="640" type="stmt" count="1"/>
      <line num="641" type="stmt" count="1"/>
      <line num="643" type="stmt" count="0"/>
      <line num="648" type="stmt" count="1"/>
      <line num="649" type="stmt" count="1"/>
      <line num="651" type="stmt" count="1"/>
      <line num="656" type="stmt" count="10"/>
      <line num="659" type="stmt" count="15"/>
      <line num="660" type="stmt" count="6"/>
      <line num="662" type="stmt" count="9"/>
      <line num="663" type="stmt" count="1"/>
      <line num="664" type="stmt" count="1"/>
      <line num="665" type="stmt" count="1"/>
      <line num="667" type="stmt" count="8"/>
      <line num="668" type="stmt" count="8"/>
      <line num="670" type="stmt" count="0"/>
      <line num="671" type="stmt" count="0"/>
      <line num="675" type="stmt" count="15"/>
      <line num="677" type="stmt" count="15"/>
      <line num="684" type="method" name="customValidationHook" visibility="protected" complexity="1" crap="1" count="15"/>
      <line num="685" type="stmt" count="15"/>
      <line num="691" type="method" name="get" visibility="public" complexity="3" crap="3.58" count="1"/>
      <line num="692" type="stmt" count="1"/>
      <line num="693" type="stmt" count="0"/>
      <line num="695" type="stmt" count="1"/>
      <line num="696" type="stmt" count="1"/>
      <line num="699" type="stmt" count="0"/>
      <line num="706" type="method" name="getValues" visibility="public" complexity="1" crap="1" count="15"/>
      <line num="707" type="stmt" count="15"/>
      <line num="713" type="method" name="getErrors" visibility="public" complexity="1" crap="1" count="13"/>
      <line num="714" type="stmt" count="13"/>
      <line num="720" type="method" name="hasErrors" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="721" type="stmt" count="0"/>
      <line num="729" type="method" name="urlEncode" visibility="public" complexity="4" crap="4" count="4"/>
      <line num="730" type="stmt" count="4"/>
      <line num="732" type="stmt" count="4"/>
      <line num="733" type="stmt" count="4"/>
      <line num="734" type="stmt" count="1"/>
      <line num="735" type="stmt" count="1"/>
      <line num="738" type="stmt" count="3"/>
      <line num="742" type="stmt" count="4"/>
      <line num="750" type="method" name="qsMerge" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="751" type="stmt" count="1"/>
      <line num="759" type="method" name="qsRemove" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="760" type="stmt" count="1"/>
      <line num="769" type="method" name="required" visibility="protected" complexity="1" crap="1" count="13"/>
      <line num="770" type="stmt" count="13"/>
      <line num="780" type="method" name="wantArray" visibility="protected" complexity="1" crap="1" count="2"/>
      <line num="781" type="stmt" count="2"/>
      <line num="782" type="stmt" count="2"/>
      <line num="783" type="stmt" count="2"/>
      <metrics loc="786" ncloc="425" classes="1" methods="59" coveredmethods="35" conditionals="0" coveredconditionals="0" statements="166" coveredstatements="133" elements="225" coveredelements="168"/>
    </file>
    <file name="/src/src/HeaderMiddleware.php">
      <class name="Wikimedia\Slimapp\HeaderMiddleware" namespace="global">
        <metrics complexity="5" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="0" elements="11" coveredelements="0"/>
      </class>
      <line num="50" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="57" type="method" name="call" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <metrics loc="73" ncloc="31" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="9" coveredstatements="0" elements="11" coveredelements="0"/>
    </file>
    <file name="/src/src/Mailer.php">
      <class name="Wikimedia\Slimapp\Mailer" namespace="global">
        <metrics complexity="8" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="22" coveredstatements="0" elements="25" coveredelements="0"/>
      </class>
      <line num="62" type="method" name="__construct" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="75" type="method" name="mail" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="100" type="method" name="createMailer" visibility="protected" complexity="3" crap="12" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <metrics loc="110" ncloc="59" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="22" coveredstatements="0" elements="25" coveredelements="0"/>
    </file>
    <file name="/src/src/ParsoidClient.php">
      <class name="Wikimedia\Slimapp\ParsoidClient" namespace="global">
        <metrics complexity="10" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="72" coveredstatements="0" elements="77" coveredelements="0"/>
      </class>
      <line num="62" type="method" name="__construct" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="72" type="method" name="parse" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="74" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="85" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="95" type="method" name="cacheGet" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="104" type="stmt" count="0"/>
      <line num="105" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="115" type="method" name="cachePut" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="116" type="stmt" count="0"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="120" type="stmt" count="0"/>
      <line num="121" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="130" type="method" name="fetchParse" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="131" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="133" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="136" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="140" type="stmt" count="0"/>
      <line num="141" type="stmt" count="0"/>
      <line num="142" type="stmt" count="0"/>
      <line num="143" type="stmt" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="146" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="148" type="stmt" count="0"/>
      <line num="149" type="stmt" count="0"/>
      <line num="150" type="stmt" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="155" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="159" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="162" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="167" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <metrics loc="176" ncloc="109" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="72" coveredstatements="0" elements="77" coveredelements="0"/>
    </file>
    <file name="/src/src/TwigExtension.php">
      <class name="Wikimedia\Slimapp\TwigExtension" namespace="global">
        <metrics complexity="6" methods="6" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="0" elements="19" coveredelements="0"/>
      </class>
      <line num="44" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="51" type="method" name="getName" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="58" type="method" name="getFunctions" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="67" type="method" name="getFilters" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="80" type="method" name="qsMerge" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="88" type="method" name="wikitextFilterCallback" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <metrics loc="92" ncloc="44" classes="1" methods="6" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="0" elements="19" coveredelements="0"/>
    </file>
    <metrics files="14" loc="2748" ncloc="1475" classes="12" methods="129" coveredmethods="41" conditionals="0" coveredconditionals="0" statements="649" coveredstatements="193" elements="778" coveredelements="234"/>
  </project>
</coverage>
