<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1791256714">
  <project timestamp="1791256714">
    <file name="/workspace/src/extensions/MassMessage/includes/Api/ApiEditMassMessageList.php">
      <class name="MediaWiki\MassMessage\Api\ApiEditMassMessageList" namespace="global">
        <metrics complexity="52" methods="9" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="184" coveredstatements="153" elements="193" coveredelements="158"/>
      </class>
      <line num="29" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="37" type="stmt" count="5"/>
      <line num="40" type="stmt" count="5"/>
      <line num="41" type="stmt" count="5"/>
      <line num="42" type="stmt" count="5"/>
      <line num="43" type="stmt" count="5"/>
      <line num="44" type="stmt" count="5"/>
      <line num="47" type="method" name="execute" visibility="public" complexity="33" crap="33" count="5"/>
      <line num="48" type="stmt" count="5"/>
      <line num="50" type="stmt" count="5"/>
      <line num="52" type="stmt" count="5"/>
      <line num="53" type="stmt" count="5"/>
      <line num="54" type="stmt" count="5"/>
      <line num="55" type="stmt" count="5"/>
      <line num="57" type="stmt" count="0"/>
      <line num="64" type="stmt" count="5"/>
      <line num="65" type="stmt" count="5"/>
      <line num="67" type="stmt" count="5"/>
      <line num="68" type="stmt" count="5"/>
      <line num="71" type="stmt" count="5"/>
      <line num="73" type="stmt" count="5"/>
      <line num="74" type="stmt" count="2"/>
      <line num="76" type="stmt" count="2"/>
      <line num="77" type="stmt" count="2"/>
      <line num="78" type="stmt" count="2"/>
      <line num="79" type="stmt" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="85" type="stmt" count="2"/>
      <line num="90" type="stmt" count="2"/>
      <line num="91" type="stmt" count="2"/>
      <line num="94" type="stmt" count="5"/>
      <line num="95" type="stmt" count="2"/>
      <line num="96" type="stmt" count="2"/>
      <line num="98" type="stmt" count="2"/>
      <line num="99" type="stmt" count="2"/>
      <line num="100" type="stmt" count="2"/>
      <line num="101" type="stmt" count="1"/>
      <line num="103" type="stmt" count="2"/>
      <line num="108" type="stmt" count="2"/>
      <line num="109" type="stmt" count="2"/>
      <line num="111" type="stmt" count="2"/>
      <line num="112" type="stmt" count="2"/>
      <line num="115" type="stmt" count="5"/>
      <line num="116" type="stmt" count="2"/>
      <line num="117" type="stmt" count="2"/>
      <line num="119" type="stmt" count="3"/>
      <line num="122" type="stmt" count="5"/>
      <line num="123" type="stmt" count="2"/>
      <line num="124" type="stmt" count="2"/>
      <line num="126" type="stmt" count="3"/>
      <line num="129" type="stmt" count="5"/>
      <line num="130" type="stmt" count="5"/>
      <line num="131" type="stmt" count="5"/>
      <line num="132" type="stmt" count="3"/>
      <line num="133" type="stmt" count="3"/>
      <line num="137" type="stmt" count="5"/>
      <line num="138" type="stmt" count="4"/>
      <line num="139" type="stmt" count="4"/>
      <line num="140" type="stmt" count="4"/>
      <line num="141" type="stmt" count="4"/>
      <line num="142" type="stmt" count="4"/>
      <line num="143" type="stmt" count="4"/>
      <line num="144" type="stmt" count="4"/>
      <line num="145" type="stmt" count="4"/>
      <line num="146" type="stmt" count="4"/>
      <line num="148" type="stmt" count="4"/>
      <line num="149" type="stmt" count="4"/>
      <line num="150" type="stmt" count="4"/>
      <line num="151" type="stmt" count="0"/>
      <line num="155" type="stmt" count="5"/>
      <line num="156" type="stmt" count="5"/>
      <line num="158" type="stmt" count="5"/>
      <line num="159" type="stmt" count="2"/>
      <line num="163" type="stmt" count="2"/>
      <line num="164" type="stmt" count="2"/>
      <line num="165" type="stmt" count="2"/>
      <line num="166" type="stmt" count="2"/>
      <line num="167" type="stmt" count="2"/>
      <line num="168" type="stmt" count="2"/>
      <line num="169" type="stmt" count="2"/>
      <line num="170" type="stmt" count="2"/>
      <line num="171" type="stmt" count="2"/>
      <line num="172" type="stmt" count="2"/>
      <line num="173" type="stmt" count="2"/>
      <line num="175" type="stmt" count="2"/>
      <line num="177" type="stmt" count="2"/>
      <line num="178" type="stmt" count="2"/>
      <line num="181" type="stmt" count="2"/>
      <line num="182" type="stmt" count="2"/>
      <line num="183" type="stmt" count="2"/>
      <line num="184" type="stmt" count="2"/>
      <line num="185" type="stmt" count="2"/>
      <line num="187" type="stmt" count="2"/>
      <line num="189" type="stmt" count="2"/>
      <line num="193" type="stmt" count="2"/>
      <line num="195" type="stmt" count="2"/>
      <line num="196" type="stmt" count="1"/>
      <line num="197" type="stmt" count="1"/>
      <line num="198" type="stmt" count="1"/>
      <line num="202" type="stmt" count="5"/>
      <line num="203" type="stmt" count="2"/>
      <line num="204" type="stmt" count="2"/>
      <line num="206" type="stmt" count="2"/>
      <line num="207" type="stmt" count="1"/>
      <line num="208" type="stmt" count="1"/>
      <line num="209" type="stmt" count="1"/>
      <line num="213" type="stmt" count="5"/>
      <line num="214" type="stmt" count="3"/>
      <line num="215" type="stmt" count="2"/>
      <line num="217" type="stmt" count="1"/>
      <line num="218" type="stmt" count="1"/>
      <line num="222" type="stmt" count="5"/>
      <line num="223" type="stmt" count="5"/>
      <line num="224" type="stmt" count="5"/>
      <line num="225" type="stmt" count="5"/>
      <line num="226" type="stmt" count="5"/>
      <line num="238" type="method" name="getEditSummary" visibility="protected" complexity="12" crap="38.87" count="4"/>
      <line num="239" type="stmt" count="4"/>
      <line num="240" type="stmt" count="4"/>
      <line num="243" type="stmt" count="1"/>
      <line num="244" type="stmt" count="1"/>
      <line num="245" type="stmt" count="1"/>
      <line num="246" type="stmt" count="3"/>
      <line num="247" type="stmt" count="1"/>
      <line num="248" type="stmt" count="0"/>
      <line num="251" type="stmt" count="0"/>
      <line num="252" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="254" type="stmt" count="0"/>
      <line num="255" 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="267" type="stmt" count="1"/>
      <line num="268" type="stmt" count="1"/>
      <line num="270" type="stmt" count="2"/>
      <line num="271" type="stmt" count="1"/>
      <line num="272" type="stmt" count="0"/>
      <line num="275" type="stmt" count="0"/>
      <line num="276" type="stmt" count="0"/>
      <line num="277" type="stmt" count="0"/>
      <line num="278" type="stmt" count="0"/>
      <line num="279" type="stmt" count="0"/>
      <line num="283" type="stmt" count="0"/>
      <line num="284" type="stmt" count="0"/>
      <line num="285" type="stmt" count="0"/>
      <line num="286" type="stmt" count="0"/>
      <line num="291" type="stmt" count="1"/>
      <line num="292" type="stmt" count="1"/>
      <line num="295" type="stmt" count="1"/>
      <line num="297" type="stmt" count="4"/>
      <line num="301" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="302" type="stmt" count="5"/>
      <line num="303" type="stmt" count="5"/>
      <line num="304" type="stmt" count="5"/>
      <line num="305" type="stmt" count="5"/>
      <line num="306" type="stmt" count="5"/>
      <line num="307" type="stmt" count="5"/>
      <line num="308" type="stmt" count="5"/>
      <line num="309" type="stmt" count="5"/>
      <line num="310" type="stmt" count="5"/>
      <line num="311" type="stmt" count="5"/>
      <line num="312" type="stmt" count="5"/>
      <line num="313" type="stmt" count="5"/>
      <line num="314" type="stmt" count="5"/>
      <line num="315" type="stmt" count="5"/>
      <line num="316" type="stmt" count="5"/>
      <line num="317" type="stmt" count="5"/>
      <line num="318" type="stmt" count="5"/>
      <line num="319" type="stmt" count="5"/>
      <line num="320" type="stmt" count="5"/>
      <line num="321" type="stmt" count="5"/>
      <line num="322" type="stmt" count="5"/>
      <line num="326" type="method" name="mustBePosted" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="327" type="stmt" count="5"/>
      <line num="331" type="method" name="needsToken" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="332" type="stmt" count="5"/>
      <line num="336" type="method" name="isWriteMode" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="337" type="stmt" count="5"/>
      <line num="341" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="342" type="stmt" count="0"/>
      <line num="343" type="stmt" count="0"/>
      <line num="344" type="stmt" count="0"/>
      <line num="345" type="stmt" count="0"/>
      <line num="346" type="stmt" count="0"/>
      <line num="347" type="stmt" count="0"/>
      <line num="348" type="stmt" count="0"/>
      <line num="349" type="stmt" count="0"/>
      <line num="353" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="354" type="stmt" count="0"/>
      <metrics loc="358" ncloc="312" classes="1" methods="9" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="184" coveredstatements="153" elements="193" coveredelements="158"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Api/ApiMassMessage.php">
      <class name="MediaWiki\MassMessage\Api\ApiMassMessage" namespace="global">
        <metrics complexity="8" methods="7" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="45" coveredstatements="33" elements="52" coveredelements="38"/>
      </class>
      <line num="18" type="method" name="execute" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="19" type="stmt" count="6"/>
      <line num="21" type="stmt" count="6"/>
      <line num="24" type="stmt" count="6"/>
      <line num="26" type="stmt" count="6"/>
      <line num="27" type="stmt" count="6"/>
      <line num="29" type="stmt" count="6"/>
      <line num="30" type="stmt" count="2"/>
      <line num="33" type="stmt" count="4"/>
      <line num="35" type="stmt" count="4"/>
      <line num="36" type="stmt" count="4"/>
      <line num="37" type="stmt" count="4"/>
      <line num="38" type="stmt" count="4"/>
      <line num="39" type="stmt" count="4"/>
      <line num="43" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="44" type="stmt" count="6"/>
      <line num="45" type="stmt" count="6"/>
      <line num="46" type="stmt" count="6"/>
      <line num="47" type="stmt" count="6"/>
      <line num="48" type="stmt" count="6"/>
      <line num="49" type="stmt" count="6"/>
      <line num="50" type="stmt" count="6"/>
      <line num="51" type="stmt" count="6"/>
      <line num="52" type="stmt" count="6"/>
      <line num="53" type="stmt" count="6"/>
      <line num="54" type="stmt" count="6"/>
      <line num="55" type="stmt" count="6"/>
      <line num="56" type="stmt" count="6"/>
      <line num="57" type="stmt" count="6"/>
      <line num="58" type="stmt" count="6"/>
      <line num="59" type="stmt" count="6"/>
      <line num="60" type="stmt" count="6"/>
      <line num="64" type="method" name="mustBePosted" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="65" type="stmt" count="6"/>
      <line num="69" type="method" name="needsToken" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="70" type="stmt" count="6"/>
      <line num="74" type="method" name="isWriteMode" visibility="public" complexity="1" crap="1" count="6"/>
      <line num="75" type="stmt" count="6"/>
      <line num="79" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" 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="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="96" type="method" name="getHelpUrls" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="97" type="stmt" count="0"/>
      <metrics loc="101" ncloc="85" classes="1" methods="7" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="45" coveredstatements="33" elements="52" coveredelements="38"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Api/ApiQueryMMContent.php">
      <class name="MediaWiki\MassMessage\Api\ApiQueryMMContent" namespace="global">
        <metrics complexity="9" methods="5" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="21" elements="33" coveredelements="24"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="26" type="method" name="execute" visibility="public" complexity="5" crap="5.07" count="1"/>
      <line num="27" type="stmt" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="30" type="stmt" count="0"/>
      <line num="33" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <line num="36" type="stmt" count="0"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" count="0"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="61" type="method" name="getCacheMode" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="62" type="stmt" count="1"/>
      <line num="66" type="method" name="getAllowedParams" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="67" type="stmt" count="1"/>
      <line num="71" type="method" name="getExamplesMessages" visibility="protected" complexity="1" crap="2" 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"/>
      <metrics loc="78" ncloc="67" classes="1" methods="5" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="28" coveredstatements="21" elements="33" coveredelements="24"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/CodeMirrorHooks.php">
      <class name="MediaWiki\MassMessage\CodeMirrorHooks" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="0" elements="5" coveredelements="0"/>
      </class>
      <line num="17" type="method" name="onCodeMirrorSpecialPage" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="18" type="stmt" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="20" type="stmt" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <metrics loc="25" ncloc="17" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="0" elements="5" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Content/MassMessageListContent.php">
      <class name="MediaWiki\MassMessage\Content\MassMessageListContent" namespace="global">
        <metrics complexity="29" methods="8" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="53" coveredstatements="36" elements="61" coveredelements="41"/>
      </class>
      <line num="38" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="47" type="method" name="isValid" visibility="public" complexity="7" crap="7" count="6"/>
      <line num="49" type="stmt" count="6"/>
      <line num="51" type="stmt" count="6"/>
      <line num="52" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="2"/>
      <line num="56" type="stmt" count="2"/>
      <line num="57" type="stmt" count="2"/>
      <line num="59" type="stmt" count="1"/>
      <line num="62" type="stmt" count="2"/>
      <line num="70" type="method" name="hasInvalidTargets" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="71" type="stmt" count="3"/>
      <line num="77" type="method" name="getDescription" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="78" type="stmt" count="1"/>
      <line num="79" type="stmt" count="1"/>
      <line num="85" type="method" name="getTargets" visibility="public" complexity="2" crap="2.06" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <line num="87" type="stmt" count="1"/>
      <line num="88" type="stmt" count="1"/>
      <line num="90" type="stmt" count="0"/>
      <line num="98" type="method" name="getValidTargets" visibility="public" complexity="5" crap="5" 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="104" type="stmt" count="1"/>
      <line num="106" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="117" type="method" name="getTargetStrings" visibility="public" complexity="4" crap="4" count="1"/>
      <line num="118" type="stmt" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="120" type="stmt" count="1"/>
      <line num="121" type="stmt" count="1"/>
      <line num="122" type="stmt" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="125" type="stmt" count="1"/>
      <line num="126" type="stmt" count="1"/>
      <line num="127" type="stmt" count="1"/>
      <line num="128" type="stmt" count="1"/>
      <line num="129" type="stmt" count="1"/>
      <line num="131" type="stmt" count="1"/>
      <line num="134" type="stmt" count="1"/>
      <line num="140" type="method" name="decode" visibility="protected" complexity="8" crap="72" count="0"/>
      <line num="141" type="stmt" count="0"/>
      <line num="142" 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="153" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="163" type="stmt" count="0"/>
      <metrics loc="166" ncloc="115" classes="1" methods="8" coveredmethods="5" conditionals="0" coveredconditionals="0" statements="53" coveredstatements="36" elements="61" coveredelements="41"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Content/MassMessageListContentHandler.php">
      <class name="MediaWiki\MassMessage\Content\MassMessageListContentHandler" namespace="global">
        <metrics complexity="54" methods="16" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="252" coveredstatements="57" elements="268" coveredelements="58"/>
      </class>
      <line num="39" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="46" type="method" name="makeEmptyContent" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="51" type="method" name="getContentClass" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="60" type="method" name="getSlotDiffRendererWithOptions" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="70" type="method" name="isParserCacheSupported" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="85" type="method" name="edit" visibility="public" complexity="4" crap="4.01" count="2"/>
      <line num="88" type="stmt" count="2"/>
      <line num="89" type="stmt" count="2"/>
      <line num="90" type="stmt" count="2"/>
      <line num="91" type="stmt" count="2"/>
      <line num="92" type="stmt" count="0"/>
      <line num="96" type="stmt" count="2"/>
      <line num="97" type="stmt" count="2"/>
      <line num="98" type="stmt" count="2"/>
      <line num="99" type="stmt" count="2"/>
      <line num="100" type="stmt" count="2"/>
      <line num="101" type="stmt" count="2"/>
      <line num="102" type="stmt" count="2"/>
      <line num="103" type="stmt" count="2"/>
      <line num="104" type="stmt" count="2"/>
      <line num="105" type="stmt" count="2"/>
      <line num="106" type="stmt" count="2"/>
      <line num="107" type="stmt" count="0"/>
      <line num="109" type="stmt" count="2"/>
      <line num="110" type="stmt" count="2"/>
      <line num="111" type="stmt" count="2"/>
      <line num="113" type="stmt" count="2"/>
      <line num="114" type="stmt" count="2"/>
      <line num="115" type="stmt" count="2"/>
      <line num="118" type="stmt" count="2"/>
      <line num="119" type="stmt" count="2"/>
      <line num="120" type="stmt" count="1"/>
      <line num="121" type="stmt" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="131" type="method" name="normalizeTargetArray" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="132" type="stmt" count="1"/>
      <line num="133" type="stmt" count="1"/>
      <line num="134" type="stmt" count="1"/>
      <line num="143" type="method" name="compareTargets" visibility="public" complexity="8" crap="8.12" count="6"/>
      <line num="144" type="stmt" count="6"/>
      <line num="145" type="stmt" count="0"/>
      <line num="146" type="stmt" count="6"/>
      <line num="147" type="stmt" count="1"/>
      <line num="148" type="stmt" count="5"/>
      <line num="149" type="stmt" count="5"/>
      <line num="151" type="stmt" count="1"/>
      <line num="153" type="stmt" count="4"/>
      <line num="162" type="method" name="extractTarget" visibility="public" complexity="12" crap="12" count="9"/>
      <line num="163" type="stmt" count="9"/>
      <line num="165" type="stmt" count="9"/>
      <line num="166" type="stmt" count="9"/>
      <line num="167" type="stmt" count="9"/>
      <line num="168" type="stmt" count="7"/>
      <line num="169" type="stmt" count="7"/>
      <line num="171" type="stmt" count="2"/>
      <line num="172" type="stmt" count="2"/>
      <line num="175" type="stmt" count="9"/>
      <line num="177" type="stmt" count="9"/>
      <line num="178" type="stmt" count="9"/>
      <line num="179" type="stmt" count="9"/>
      <line num="180" type="stmt" count="9"/>
      <line num="182" type="stmt" count="2"/>
      <line num="185" type="stmt" count="7"/>
      <line num="188" type="stmt" count="9"/>
      <line num="189" type="stmt" count="5"/>
      <line num="190" type="stmt" count="2"/>
      <line num="192" type="stmt" count="3"/>
      <line num="194" type="stmt" count="4"/>
      <line num="197" type="stmt" count="0"/>
      <line num="200" type="stmt" count="9"/>
      <line num="208" type="method" name="getPageLanguage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="211" type="stmt" count="0"/>
      <line num="217" type="method" name="fillParserOutput" visibility="protected" complexity="4" crap="20" count="0"/>
      <line num="223" type="stmt" count="0"/>
      <line num="225" type="stmt" count="0"/>
      <line num="226" type="stmt" count="0"/>
      <line num="227" type="stmt" count="0"/>
      <line num="229" type="stmt" count="0"/>
      <line num="230" type="stmt" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="232" type="stmt" count="0"/>
      <line num="234" type="stmt" 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="239" type="stmt" count="0"/>
      <line num="243" type="stmt" count="0"/>
      <line num="244" type="stmt" count="0"/>
      <line num="245" type="stmt" count="0"/>
      <line num="246" type="stmt" count="0"/>
      <line num="248" type="stmt" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <line num="250" type="stmt" count="0"/>
      <line num="251" type="stmt" count="0"/>
      <line num="252" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="254" type="stmt" count="0"/>
      <line num="255" 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="263" type="stmt" count="0"/>
      <line num="264" type="stmt" count="0"/>
      <line num="265" type="stmt" count="0"/>
      <line num="269" type="stmt" count="0"/>
      <line num="270" type="stmt" count="0"/>
      <line num="273" type="method" name="genTargetListItem" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="275" type="stmt" count="0"/>
      <line num="276" type="stmt" count="0"/>
      <line num="277" type="stmt" count="0"/>
      <line num="278" type="stmt" count="0"/>
      <line num="279" type="stmt" count="0"/>
      <line num="280" type="stmt" count="0"/>
      <line num="281" type="stmt" count="0"/>
      <line num="282" type="stmt" count="0"/>
      <line num="284" type="stmt" count="0"/>
      <line num="285" type="stmt" count="0"/>
      <line num="286" type="stmt" count="0"/>
      <line num="287" type="stmt" count="0"/>
      <line num="288" type="stmt" count="0"/>
      <line num="289" type="stmt" count="0"/>
      <line num="290" type="stmt" count="0"/>
      <line num="292" type="stmt" count="0"/>
      <line num="301" type="method" name="processLocalTargetBatch" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="302" type="stmt" count="0"/>
      <line num="303" type="stmt" count="0"/>
      <line num="306" type="stmt" count="0"/>
      <line num="307" type="stmt" count="0"/>
      <line num="308" type="stmt" count="0"/>
      <line num="309" type="stmt" count="0"/>
      <line num="310" type="stmt" count="0"/>
      <line num="312" type="stmt" count="0"/>
      <line num="314" type="stmt" count="0"/>
      <line num="315" type="stmt" count="0"/>
      <line num="316" type="stmt" count="0"/>
      <line num="317" type="stmt" count="0"/>
      <line num="319" type="stmt" count="0"/>
      <line num="320" type="stmt" count="0"/>
      <line num="321" type="stmt" count="0"/>
      <line num="322" type="stmt" count="0"/>
      <line num="325" type="stmt" count="0"/>
      <line num="336" type="method" name="getTargetsHtml" visibility="private" complexity="9" crap="90" count="0"/>
      <line num="337" type="stmt" count="0"/>
      <line num="339" type="stmt" count="0"/>
      <line num="340" type="stmt" count="0"/>
      <line num="342" type="stmt" count="0"/>
      <line num="345" type="stmt" count="0"/>
      <line num="346" type="stmt" count="0"/>
      <line num="347" type="stmt" count="0"/>
      <line num="348" type="stmt" count="0"/>
      <line num="352" type="stmt" count="0"/>
      <line num="353" type="stmt" count="0"/>
      <line num="354" type="stmt" count="0"/>
      <line num="355" type="stmt" count="0"/>
      <line num="356" type="stmt" count="0"/>
      <line num="357" type="stmt" count="0"/>
      <line num="358" type="stmt" count="0"/>
      <line num="360" type="stmt" count="0"/>
      <line num="364" type="stmt" count="0"/>
      <line num="365" type="stmt" count="0"/>
      <line num="366" type="stmt" count="0"/>
      <line num="367" type="stmt" count="0"/>
      <line num="368" type="stmt" count="0"/>
      <line num="369" type="stmt" count="0"/>
      <line num="370" type="stmt" count="0"/>
      <line num="371" type="stmt" count="0"/>
      <line num="372" type="stmt" count="0"/>
      <line num="373" type="stmt" count="0"/>
      <line num="376" type="stmt" count="0"/>
      <line num="378" type="stmt" count="0"/>
      <line num="379" type="stmt" count="0"/>
      <line num="380" type="stmt" count="0"/>
      <line num="381" type="stmt" count="0"/>
      <line num="382" type="stmt" count="0"/>
      <line num="384" type="stmt" count="0"/>
      <line num="385" type="stmt" count="0"/>
      <line num="386" type="stmt" count="0"/>
      <line num="389" type="stmt" count="0"/>
      <line num="390" type="stmt" count="0"/>
      <line num="391" type="stmt" count="0"/>
      <line num="392" type="stmt" count="0"/>
      <line num="393" type="stmt" count="0"/>
      <line num="395" type="stmt" count="0"/>
      <line num="397" type="stmt" count="0"/>
      <line num="401" type="stmt" count="0"/>
      <line num="411" type="method" name="getTargetsBySite" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="412" type="stmt" count="0"/>
      <line num="413" type="stmt" count="0"/>
      <line num="414" type="stmt" count="0"/>
      <line num="415" type="stmt" count="0"/>
      <line num="416" type="stmt" count="0"/>
      <line num="418" type="stmt" count="0"/>
      <line num="421" type="stmt" count="0"/>
      <line num="431" type="method" name="getAddForm" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="432" type="stmt" count="0"/>
      <line num="434" type="stmt" count="0"/>
      <line num="435" type="stmt" count="0"/>
      <line num="436" type="stmt" count="0"/>
      <line num="438" type="stmt" count="0"/>
      <line num="439" type="stmt" count="0"/>
      <line num="440" type="stmt" count="0"/>
      <line num="441" type="stmt" count="0"/>
      <line num="442" type="stmt" count="0"/>
      <line num="443" type="stmt" count="0"/>
      <line num="444" type="stmt" count="0"/>
      <line num="445" type="stmt" count="0"/>
      <line num="447" type="stmt" count="0"/>
      <line num="448" type="stmt" count="0"/>
      <line num="449" type="stmt" count="0"/>
      <line num="450" type="stmt" count="0"/>
      <line num="451" type="stmt" count="0"/>
      <line num="452" type="stmt" count="0"/>
      <line num="453" type="stmt" count="0"/>
      <line num="454" type="stmt" count="0"/>
      <line num="455" type="stmt" count="0"/>
      <line num="456" type="stmt" count="0"/>
      <line num="457" type="stmt" count="0"/>
      <line num="458" type="stmt" count="0"/>
      <line num="459" type="stmt" count="0"/>
      <line num="460" type="stmt" count="0"/>
      <line num="461" type="stmt" count="0"/>
      <line num="462" type="stmt" count="0"/>
      <line num="463" type="stmt" count="0"/>
      <line num="464" type="stmt" count="0"/>
      <line num="465" type="stmt" count="0"/>
      <line num="466" type="stmt" count="0"/>
      <line num="467" type="stmt" count="0"/>
      <line num="468" type="stmt" count="0"/>
      <line num="469" type="stmt" count="0"/>
      <line num="470" type="stmt" count="0"/>
      <line num="471" type="stmt" count="0"/>
      <line num="472" type="stmt" count="0"/>
      <line num="473" type="stmt" count="0"/>
      <line num="474" type="stmt" count="0"/>
      <line num="475" type="stmt" count="0"/>
      <line num="478" type="stmt" count="0"/>
      <line num="479" type="stmt" count="0"/>
      <line num="480" type="stmt" count="0"/>
      <line num="481" type="stmt" count="0"/>
      <line num="482" type="stmt" count="0"/>
      <line num="483" type="stmt" count="0"/>
      <line num="484" type="stmt" count="0"/>
      <line num="485" type="stmt" count="0"/>
      <line num="486" type="stmt" count="0"/>
      <line num="487" type="stmt" count="0"/>
      <line num="488" type="stmt" count="0"/>
      <line num="490" type="stmt" count="0"/>
      <line num="491" type="stmt" count="0"/>
      <line num="492" type="stmt" count="0"/>
      <line num="493" type="stmt" count="0"/>
      <line num="494" type="stmt" count="0"/>
      <line num="497" type="stmt" count="0"/>
      <line num="498" type="stmt" count="0"/>
      <line num="499" type="stmt" count="0"/>
      <line num="500" type="stmt" count="0"/>
      <line num="501" type="stmt" count="0"/>
      <line num="502" type="stmt" count="0"/>
      <line num="504" type="stmt" count="0"/>
      <line num="505" type="stmt" count="0"/>
      <metrics loc="508" ncloc="409" classes="1" methods="16" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="252" coveredstatements="57" elements="268" coveredelements="58"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Content/MassMessageListSlotDiffRenderer.php">
      <class name="MediaWiki\MassMessage\Content\MassMessageListSlotDiffRenderer" namespace="global">
        <metrics complexity="9" methods="5" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="38" coveredstatements="31" elements="43" coveredelements="32"/>
      </class>
      <line num="15" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="19" type="stmt" count="5"/>
      <line num="26" type="method" name="getDiff" visibility="public" complexity="5" crap="5.04" count="5"/>
      <line num="27" type="stmt" count="5"/>
      <line num="31" type="stmt" count="4"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="38" type="stmt" count="4"/>
      <line num="40" type="stmt" count="4"/>
      <line num="41" type="stmt" count="4"/>
      <line num="42" type="stmt" count="4"/>
      <line num="43" type="stmt" count="4"/>
      <line num="44" type="stmt" count="4"/>
      <line num="45" type="stmt" count="2"/>
      <line num="46" type="stmt" count="2"/>
      <line num="47" type="stmt" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="49" type="stmt" count="2"/>
      <line num="50" type="stmt" count="2"/>
      <line num="51" type="stmt" count="2"/>
      <line num="52" type="stmt" count="2"/>
      <line num="55" type="stmt" count="4"/>
      <line num="56" type="stmt" count="4"/>
      <line num="57" type="stmt" count="4"/>
      <line num="58" type="stmt" count="4"/>
      <line num="59" type="stmt" count="4"/>
      <line num="60" type="stmt" count="2"/>
      <line num="61" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="63" type="stmt" count="2"/>
      <line num="64" type="stmt" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <line num="66" type="stmt" count="2"/>
      <line num="67" type="stmt" count="2"/>
      <line num="69" type="stmt" count="4"/>
      <line num="75" type="method" name="getExtraCacheKeys" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="79" type="method" name="addModules" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="80" type="stmt" count="0"/>
      <line num="88" type="method" name="getTablePrefix" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <metrics loc="92" ncloc="77" classes="1" methods="5" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="38" coveredstatements="31" elements="43" coveredelements="32"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/DedupeHelper.php">
      <class name="MediaWiki\MassMessage\DedupeHelper" namespace="global">
        <metrics complexity="7" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="22" coveredstatements="18" elements="24" coveredelements="18"/>
      </class>
      <line num="37" type="method" name="getDedupeHash" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="56" type="method" name="hasRecentlyDeliveredDuplicate" visibility="public" complexity="4" crap="4.00" count="2"/>
      <line num="57" type="stmt" count="2"/>
      <line num="59" type="stmt" count="2"/>
      <line num="62" type="stmt" count="2"/>
      <line num="63" type="stmt" count="2"/>
      <line num="64" type="stmt" count="2"/>
      <line num="65" type="stmt" count="2"/>
      <line num="66" type="stmt" count="2"/>
      <line num="67" type="stmt" count="2"/>
      <line num="68" type="stmt" count="2"/>
      <line num="69" type="stmt" count="2"/>
      <line num="70" type="stmt" count="2"/>
      <line num="71" type="stmt" count="2"/>
      <line num="73" type="stmt" count="2"/>
      <line num="74" type="stmt" count="2"/>
      <line num="75" type="stmt" count="0"/>
      <line num="77" type="stmt" count="2"/>
      <line num="78" type="stmt" count="2"/>
      <line num="79" type="stmt" count="2"/>
      <line num="82" type="stmt" count="2"/>
      <metrics loc="85" ncloc="53" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="22" coveredstatements="18" elements="24" coveredelements="18"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/EchoHooks.php">
      <class name="MediaWiki\MassMessage\EchoHooks" namespace="global">
        <metrics complexity="5" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="6" coveredelements="0"/>
      </class>
      <line num="18" type="method" name="onBeforeEchoEventInsert" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <metrics loc="31" ncloc="22" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="0" elements="6" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Job/Hooks/HookRunner.php">
      <class name="MediaWiki\MassMessage\Job\Hooks\HookRunner" namespace="global">
        <metrics complexity="2" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="5" elements="7" coveredelements="7"/>
      </class>
      <line num="11" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="12" type="stmt" count="1"/>
      <line num="17" type="method" name="onMassMessageJobBeforeMessageSent" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="26" type="stmt" count="1"/>
      <line num="27" type="stmt" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <metrics loc="32" ncloc="29" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="5" coveredstatements="5" elements="7" coveredelements="7"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Job/Hooks/MassMessageJobBeforeMessageSentHook.php">
      <metrics loc="42" ncloc="19" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Job/MassMessageJob.php">
      <class name="MediaWiki\MassMessage\Job\MassMessageJob" namespace="global">
        <metrics complexity="53" methods="16" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="199" coveredstatements="34" elements="215" coveredelements="36"/>
      </class>
      <line num="47" type="method" name="__construct" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="64" 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="77" type="method" name="run" visibility="public" complexity="2" crap="6" 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="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="91" type="stmt" count="0"/>
      <line num="97" type="method" name="getUser" visibility="protected" complexity="4" crap="20" 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="103" 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="111" type="stmt" count="0"/>
      <line num="120" type="method" name="isOptedOut" visibility="public" complexity="3" crap="3" count="1"/>
      <line num="121" type="stmt" count="1"/>
      <line num="122" type="stmt" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="124" type="stmt" count="1"/>
      <line num="125" type="stmt" count="1"/>
      <line num="126" type="stmt" count="1"/>
      <line num="127" type="stmt" count="1"/>
      <line num="128" type="stmt" count="1"/>
      <line num="129" type="stmt" count="1"/>
      <line num="133" type="stmt" count="1"/>
      <line num="143" type="method" name="normalizeTitle" visibility="protected" complexity="6" crap="42" 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="150" 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="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="168" type="method" name="logLocalSkip" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="170" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="173" type="stmt" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <line num="176" type="stmt" count="0"/>
      <line num="177" type="stmt" count="0"/>
      <line num="185" type="method" name="logLocalFailure" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="186" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="188" type="stmt" count="0"/>
      <line num="189" type="stmt" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="191" type="stmt" count="0"/>
      <line num="192" type="stmt" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <line num="198" type="stmt" count="0"/>
      <line num="204" type="method" name="logLocalSubjectSectionFailure" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="206" type="stmt" count="0"/>
      <line num="207" type="stmt" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="210" type="stmt" count="0"/>
      <line num="211" type="stmt" count="0"/>
      <line num="212" type="stmt" count="0"/>
      <line num="214" type="stmt" count="0"/>
      <line num="215" type="stmt" count="0"/>
      <line num="223" type="method" name="logToDebugLog" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="224" type="stmt" count="0"/>
      <line num="225" type="stmt" count="0"/>
      <line num="226" type="stmt" count="0"/>
      <line num="227" type="stmt" count="0"/>
      <line num="228" type="stmt" count="0"/>
      <line num="235" type="method" name="sendMessage" visibility="protected" complexity="8" crap="8.57" count="8"/>
      <line num="236" type="stmt" count="8"/>
      <line num="237" type="stmt" count="8"/>
      <line num="239" type="stmt" count="0"/>
      <line num="242" type="stmt" count="8"/>
      <line num="244" type="stmt" count="8"/>
      <line num="245" type="stmt" count="0"/>
      <line num="248" type="stmt" count="8"/>
      <line num="249" type="stmt" count="8"/>
      <line num="250" type="stmt" count="0"/>
      <line num="251" type="stmt" count="0"/>
      <line num="252" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="256" type="stmt" count="8"/>
      <line num="257" type="stmt" count="8"/>
      <line num="258" type="stmt" count="8"/>
      <line num="259" type="stmt" count="8"/>
      <line num="261" type="stmt" count="8"/>
      <line num="262" type="stmt" count="8"/>
      <line num="263" type="stmt" count="2"/>
      <line num="264" type="stmt" count="2"/>
      <line num="267" type="stmt" count="8"/>
      <line num="268" type="stmt" count="8"/>
      <line num="269" type="stmt" count="8"/>
      <line num="270" type="stmt" count="8"/>
      <line num="271" type="stmt" count="8"/>
      <line num="272" type="stmt" count="8"/>
      <line num="273" type="stmt" count="8"/>
      <line num="274" type="stmt" count="8"/>
      <line num="275" type="stmt" count="8"/>
      <line num="284" type="method" name="editPage" visibility="protected" complexity="1" crap="1" count="1"/>
      <line num="285" type="stmt" count="1"/>
      <line num="293" type="method" name="addLQTThread" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="294" type="stmt" count="0"/>
      <line num="302" type="method" name="addFlowTopic" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="303" type="stmt" count="0"/>
      <line num="311" type="method" name="getPageMessageDetails" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="312" type="stmt" count="0"/>
      <line num="313" type="stmt" count="0"/>
      <line num="314" type="stmt" count="0"/>
      <line num="315" type="stmt" count="0"/>
      <line num="317" type="stmt" count="0"/>
      <line num="318" type="stmt" count="0"/>
      <line num="321" type="stmt" count="0"/>
      <line num="322" type="stmt" count="0"/>
      <line num="323" type="stmt" count="0"/>
      <line num="324" type="stmt" 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="329" type="stmt" count="0"/>
      <line num="330" type="stmt" count="0"/>
      <line num="331" type="stmt" count="0"/>
      <line num="333" type="stmt" count="0"/>
      <line num="334" type="stmt" count="0"/>
      <line num="335" type="stmt" count="0"/>
      <line num="338" type="stmt" count="0"/>
      <line num="346" type="method" name="canDeliverMessage" visibility="private" complexity="6" crap="42" count="0"/>
      <line num="347" type="stmt" count="0"/>
      <line num="348" type="stmt" count="0"/>
      <line num="350" type="stmt" count="0"/>
      <line num="356" type="stmt" count="0"/>
      <line num="357" type="stmt" count="0"/>
      <line num="358" type="stmt" count="0"/>
      <line num="359" type="stmt" count="0"/>
      <line num="360" type="stmt" count="0"/>
      <line num="362" type="stmt" count="0"/>
      <line num="363" type="stmt" count="0"/>
      <line num="365" type="stmt" count="0"/>
      <line num="366" type="stmt" count="0"/>
      <line num="370" type="stmt" count="0"/>
      <line num="385" type="method" name="deliverMessage" visibility="private" complexity="11" crap="132" count="0"/>
      <line num="394" type="stmt" count="0"/>
      <line num="395" type="stmt" count="0"/>
      <line num="397" type="stmt" count="0"/>
      <line num="398" type="stmt" count="0"/>
      <line num="399" type="stmt" count="0"/>
      <line num="400" type="stmt" count="0"/>
      <line num="401" type="stmt" count="0"/>
      <line num="402" type="stmt" count="0"/>
      <line num="404" type="stmt" count="0"/>
      <line num="405" type="stmt" count="0"/>
      <line num="406" type="stmt" count="0"/>
      <line num="408" type="stmt" count="0"/>
      <line num="409" type="stmt" count="0"/>
      <line num="410" type="stmt" count="0"/>
      <line num="411" type="stmt" count="0"/>
      <line num="412" type="stmt" count="0"/>
      <line num="413" type="stmt" count="0"/>
      <line num="414" type="stmt" count="0"/>
      <line num="415" type="stmt" count="0"/>
      <line num="416" type="stmt" count="0"/>
      <line num="420" type="stmt" count="0"/>
      <line num="425" type="stmt" count="0"/>
      <line num="426" type="stmt" count="0"/>
      <line num="427" type="stmt" count="0"/>
      <line num="431" type="stmt" count="0"/>
      <line num="432" type="stmt" count="0"/>
      <line num="434" type="stmt" count="0"/>
      <line num="435" type="stmt" count="0"/>
      <line num="436" type="stmt" count="0"/>
      <line num="439" type="stmt" count="0"/>
      <line num="440" type="stmt" count="0"/>
      <line num="441" type="stmt" count="0"/>
      <line num="442" type="stmt" count="0"/>
      <line num="443" type="stmt" count="0"/>
      <line num="444" type="stmt" count="0"/>
      <line num="445" type="stmt" count="0"/>
      <line num="447" type="stmt" count="0"/>
      <line num="448" type="stmt" count="0"/>
      <line num="450" type="stmt" count="0"/>
      <line num="453" type="stmt" count="0"/>
      <line num="454" type="stmt" count="0"/>
      <line num="455" type="stmt" count="0"/>
      <line num="457" type="stmt" count="0"/>
      <line num="458" type="stmt" count="0"/>
      <line num="459" type="stmt" count="0"/>
      <line num="461" type="stmt" count="0"/>
      <metrics loc="464" ncloc="348" classes="1" methods="16" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="199" coveredstatements="34" elements="215" coveredelements="36"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Job/MassMessageServerSideJob.php">
      <class name="MediaWiki\MassMessage\Job\MassMessageServerSideJob" namespace="global">
        <metrics complexity="10" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="36" coveredstatements="0" elements="40" coveredelements="0"/>
      </class>
      <line num="24" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="25" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="35" type="method" name="isOptedOut" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="44" type="method" name="makeText" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="54" type="method" name="editPage" visibility="protected" complexity="7" crap="56" 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="63" type="stmt" count="0"/>
      <line num="64" 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="70" type="stmt" count="0"/>
      <line num="72" type="stmt" count="0"/>
      <line num="73" 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="85" type="stmt" count="0"/>
      <line num="86" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <metrics loc="101" ncloc="76" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="36" coveredstatements="0" elements="40" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Job/MassMessageSubmitJob.php">
      <class name="MediaWiki\MassMessage\Job\MassMessageSubmitJob" namespace="global">
        <metrics complexity="6" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="12" elements="23" coveredelements="13"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="20" type="stmt" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="31" type="method" name="run" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="45" type="method" name="getJobs" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="46" type="stmt" count="3"/>
      <line num="47" type="stmt" count="3"/>
      <line num="48" type="stmt" count="3"/>
      <line num="52" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <line num="56" type="stmt" count="3"/>
      <line num="57" type="stmt" count="3"/>
      <line num="60" type="stmt" count="3"/>
      <line num="61" type="stmt" count="3"/>
      <line num="63" type="stmt" count="3"/>
      <line num="66" type="stmt" count="3"/>
      <metrics loc="69" ncloc="49" classes="1" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="20" coveredstatements="12" elements="23" coveredelements="13"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/LanguageAwareText.php">
      <class name="MediaWiki\MassMessage\LanguageAwareText" namespace="global">
        <metrics complexity="4" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="0" elements="10" coveredelements="0"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="33" type="method" name="getWikitext" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="37" type="method" name="getLanguageCode" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="41" type="method" name="getLanguageDirection" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <metrics loc="45" ncloc="33" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="0" elements="10" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Logging/MassMessageSendLogFormatter.php">
      <class name="MediaWiki\MassMessage\Logging\MassMessageSendLogFormatter" namespace="global">
        <metrics complexity="10" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="27" coveredstatements="0" elements="29" coveredelements="0"/>
      </class>
      <line num="17" type="method" name="getMessageParameters" visibility="protected" complexity="7" crap="56" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="21" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="47" type="stmt" 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="54" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="59" type="method" name="getMessageKey" visibility="protected" complexity="3" crap="12" 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="63" type="stmt" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <metrics loc="69" ncloc="59" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="27" coveredstatements="0" elements="29" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Logging/MassMessageSkipLogFormatter.php">
      <class name="MediaWiki\MassMessage\Logging\MassMessageSkipLogFormatter" namespace="global">
        <metrics complexity="2" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="11" coveredelements="0"/>
      </class>
      <line num="18" type="method" name="getMessageParameters" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="20" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <metrics loc="38" ncloc="26" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="11" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Lookup/CategorySpamlistLookup.php">
      <class name="MediaWiki\MassMessage\Lookup\CategorySpamlistLookup" namespace="global">
        <metrics complexity="4" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="12" elements="17" coveredelements="13"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="20" type="stmt" count="0"/>
      <line num="27" type="method" name="fetchTargets" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="48" type="method" name="isCachable" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <metrics loc="52" ncloc="41" classes="1" methods="3" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="14" coveredstatements="12" elements="17" coveredelements="13"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Lookup/DatabaseLookup.php">
      <class name="MediaWiki\MassMessage\Lookup\DatabaseLookup" namespace="global">
        <metrics complexity="3" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="18" elements="20" coveredelements="20"/>
      </class>
      <line num="18" type="method" name="getDatabases" visibility="public" complexity="2" crap="2" count="1"/>
      <line num="20" type="stmt" count="1"/>
      <line num="21" type="stmt" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="26" type="stmt" count="1"/>
      <line num="27" type="stmt" count="1"/>
      <line num="28" type="stmt" count="1"/>
      <line num="29" type="stmt" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <line num="32" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="45" type="method" name="getDBName" visibility="public" complexity="1" crap="1" count="5"/>
      <line num="46" type="stmt" count="5"/>
      <line num="47" type="stmt" count="5"/>
      <line num="48" type="stmt" count="5"/>
      <metrics loc="51" ncloc="38" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="18" elements="20" coveredelements="20"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Lookup/ListContentSpamlistLookup.php">
      <class name="MediaWiki\MassMessage\Lookup\ListContentSpamlistLookup" namespace="global">
        <metrics complexity="4" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="16" elements="18" coveredelements="18"/>
      </class>
      <line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="21" type="stmt" count="2"/>
      <line num="29" type="method" name="fetchTargets" visibility="public" complexity="3" crap="3" count="1"/>
      <line num="30" type="stmt" count="1"/>
      <line num="32" type="stmt" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="43" type="stmt" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <metrics loc="52" ncloc="44" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="16" elements="18" coveredelements="18"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Lookup/ParserFunctionSpamlistLookup.php">
      <class name="MediaWiki\MassMessage\Lookup\ParserFunctionSpamlistLookup" namespace="global">
        <metrics complexity="3" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="15" elements="18" coveredelements="16"/>
      </class>
      <line num="18" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="19" type="stmt" count="0"/>
      <line num="27" type="method" name="fetchTargets" visibility="public" complexity="2" crap="2" count="7"/>
      <line num="28" type="stmt" count="7"/>
      <line num="29" type="stmt" count="7"/>
      <line num="32" type="stmt" count="7"/>
      <line num="35" type="stmt" count="7"/>
      <line num="36" type="stmt" count="7"/>
      <line num="38" type="stmt" count="7"/>
      <line num="40" type="stmt" count="7"/>
      <line num="41" type="stmt" count="7"/>
      <line num="42" type="stmt" count="7"/>
      <line num="43" type="stmt" count="7"/>
      <line num="46" type="stmt" count="7"/>
      <line num="47" type="stmt" count="7"/>
      <line num="49" type="stmt" count="7"/>
      <line num="50" type="stmt" count="5"/>
      <line num="53" type="stmt" count="2"/>
      <metrics loc="57" ncloc="43" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="15" elements="18" coveredelements="16"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Lookup/SpamlistLookup.php">
      <class name="MediaWiki\MassMessage\Lookup\SpamlistLookup" namespace="global">
        <metrics complexity="17" methods="4" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="49" coveredstatements="43" elements="53" coveredelements="45"/>
      </class>
      <line num="38" type="method" name="getTargets" visibility="public" complexity="6" crap="6" count="9"/>
      <line num="39" type="stmt" count="9"/>
      <line num="40" type="stmt" count="0"/>
      <line num="43" type="stmt" count="9"/>
      <line num="44" type="stmt" count="9"/>
      <line num="45" type="stmt" count="9"/>
      <line num="46" type="stmt" count="9"/>
      <line num="47" type="stmt" count="7"/>
      <line num="49" type="stmt" count="2"/>
      <line num="51" type="stmt" count="2"/>
      <line num="53" type="stmt" count="9"/>
      <line num="54" type="stmt" count="9"/>
      <line num="56" type="stmt" count="9"/>
      <line num="58" type="stmt" count="9"/>
      <line num="59" type="stmt" count="8"/>
      <line num="60" type="stmt" count="8"/>
      <line num="61" type="stmt" count="8"/>
      <line num="62" type="stmt" count="8"/>
      <line num="63" type="stmt" count="8"/>
      <line num="64" type="stmt" count="8"/>
      <line num="65" type="stmt" count="8"/>
      <line num="66" type="stmt" count="8"/>
      <line num="67" type="stmt" count="8"/>
      <line num="68" type="stmt" count="8"/>
      <line num="69" type="stmt" count="9"/>
      <line num="79" type="method" name="factory" visibility="public" complexity="4" crap="4" count="5"/>
      <line num="80" type="stmt" count="5"/>
      <line num="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="4"/>
      <line num="83" type="stmt" count="2"/>
      <line num="84" type="stmt" count="2"/>
      <line num="85" type="stmt" count="1"/>
      <line num="87" type="stmt" count="1"/>
      <line num="96" type="method" name="isCachable" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="97" type="stmt" count="1"/>
      <line num="106" type="method" name="normalizeTargets" visibility="private" complexity="6" crap="6.92" count="6"/>
      <line num="107" type="stmt" count="6"/>
      <line num="109" type="stmt" count="6"/>
      <line num="110" type="stmt" count="6"/>
      <line num="111" type="stmt" count="6"/>
      <line num="112" type="stmt" count="4"/>
      <line num="113" type="stmt" count="4"/>
      <line num="114" type="stmt" count="0"/>
      <line num="116" type="stmt" count="4"/>
      <line num="117" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="121" type="stmt" count="4"/>
      <line num="122" type="stmt" count="4"/>
      <line num="123" type="stmt" count="4"/>
      <line num="125" type="stmt" count="0"/>
      <line num="127" type="stmt" count="4"/>
      <line num="131" type="stmt" count="6"/>
      <metrics loc="135" ncloc="91" classes="1" methods="4" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="49" coveredstatements="43" elements="53" coveredelements="45"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/MassMessage.php">
      <class name="MediaWiki\MassMessage\MassMessage" namespace="global">
        <metrics complexity="26" methods="8" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="117" coveredstatements="12" elements="125" coveredelements="13"/>
      </class>
      <line num="44" type="method" name="getMessengerUser" visibility="public" complexity="4" crap="4" count="3"/>
      <line num="45" type="stmt" count="3"/>
      <line num="46" type="stmt" count="3"/>
      <line num="47" type="stmt" count="3"/>
      <line num="49" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="56" type="stmt" count="3"/>
      <line num="57" type="stmt" count="3"/>
      <line num="58" type="stmt" count="3"/>
      <line num="61" type="stmt" count="3"/>
      <line num="62" type="stmt" count="3"/>
      <line num="65" type="stmt" count="3"/>
      <line num="74" type="method" name="processPFData" visibility="public" complexity="9" crap="90" count="0"/>
      <line num="75" 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="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="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="96" 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="105" type="stmt" count="0"/>
      <line num="115" type="method" name="parserError" visibility="public" complexity="2" crap="6" 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="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="134" type="method" name="getQueuedCount" visibility="public" complexity="1" crap="2" 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="142" type="stmt" count="0"/>
      <line num="153" type="method" name="logToWiki" visibility="public" complexity="1" crap="2" 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="166" type="stmt" count="0"/>
      <line num="168" type="stmt" count="0"/>
      <line num="169" type="stmt" count="0"/>
      <line num="180" type="method" name="submit" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="182" type="stmt" count="0"/>
      <line num="185" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="188" type="stmt" count="0"/>
      <line num="189" type="stmt" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="191" type="stmt" 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="197" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="206" type="stmt" count="0"/>
      <line num="207" type="stmt" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="210" type="stmt" count="0"/>
      <line num="211" type="stmt" count="0"/>
      <line num="212" type="stmt" count="0"/>
      <line num="215" 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="219" type="stmt" count="0"/>
      <line num="221" type="stmt" count="0"/>
      <line num="222" type="stmt" count="0"/>
      <line num="224" type="stmt" count="0"/>
      <line num="235" type="method" name="getTimestampRegex" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="236" 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="244" type="stmt" count="0"/>
      <line num="245" type="stmt" count="0"/>
      <line num="247" type="stmt" count="0"/>
      <line num="248" type="stmt" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="254" type="stmt" count="0"/>
      <line num="255" type="stmt" count="0"/>
      <line num="256" type="stmt" count="0"/>
      <line num="257" type="stmt" count="0"/>
      <line num="258" 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="265" type="stmt" count="0"/>
      <line num="266" 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="280" type="method" name="isSourceTranslationPage" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="281" type="stmt" count="0"/>
      <line num="283" type="stmt" count="0"/>
      <metrics loc="286" ncloc="206" classes="1" methods="8" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="117" coveredstatements="12" elements="125" coveredelements="13"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/MassMessageHooks.php">
      <class name="MediaWiki\MassMessage\MassMessageHooks" namespace="global">
        <metrics complexity="37" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="67" coveredstatements="0" elements="79" coveredelements="0"/>
      </class>
      <line num="44" type="method" name="onParserFirstCallInit" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="58" type="method" name="outputParserFunction" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="59" type="stmt" count="0"/>
      <line num="61" 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="69" type="stmt" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="87" type="method" name="storeDataParserFunction" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="101" type="stmt" count="0"/>
      <line num="109" type="method" name="onUserGetReservedNames" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="118" type="method" name="onAPIQuerySiteInfoStatisticsInfo" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="128" type="method" name="onSkinTemplateNavigation__Universal" visibility="public" complexity="15" crap="240" 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="134" type="stmt" count="0"/>
      <line num="135" type="stmt" count="0"/>
      <line num="136" 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="155" type="stmt" count="0"/>
      <line num="158" 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="174" type="method" name="onBeforePageDisplay" visibility="public" complexity="5" crap="30" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="176" type="stmt" count="0"/>
      <line num="177" type="stmt" count="0"/>
      <line num="178" type="stmt" count="0"/>
      <line num="179" type="stmt" count="0"/>
      <line num="181" type="stmt" count="0"/>
      <line num="197" type="method" name="onRejectParserCacheValue" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="201" type="stmt" count="0"/>
      <line num="203" type="stmt" count="0"/>
      <line num="206" type="stmt" count="0"/>
      <line num="216" type="method" name="onEmailConfirmed" visibility="public" complexity="2" crap="6" count="0"/>
      <line num="217" type="stmt" count="0"/>
      <line num="218" type="stmt" count="0"/>
      <line num="220" type="stmt" count="0"/>
      <line num="222" type="stmt" count="0"/>
      <line num="230" type="method" name="onListDefinedTags" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="231" type="stmt" count="0"/>
      <line num="239" type="method" name="onChangeTagsListActive" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="240" type="stmt" count="0"/>
      <line num="246" type="method" name="addRegisterTags" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="247" type="stmt" count="0"/>
      <metrics loc="250" ncloc="165" classes="1" methods="12" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="67" coveredstatements="0" elements="79" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/MessageBuilder.php">
      <class name="MediaWiki\MassMessage\MessageBuilder" namespace="global">
        <metrics complexity="21" methods="8" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="53" coveredstatements="43" elements="61" coveredelements="50"/>
      </class>
      <line num="22" type="method" name="stripTildes" visibility="public" complexity="4" crap="4" count="3"/>
      <line num="23" type="stmt" count="3"/>
      <line num="25" type="stmt" count="3"/>
      <line num="26" type="stmt" count="3"/>
      <line num="27" type="stmt" count="3"/>
      <line num="29" type="stmt" count="1"/>
      <line num="32" type="stmt" count="3"/>
      <line num="48" type="method" name="buildMessage" visibility="public" complexity="6" crap="12.17" count="4"/>
      <line num="55" type="stmt" count="4"/>
      <line num="56" type="stmt" count="4"/>
      <line num="58" type="stmt" count="4"/>
      <line num="59" type="stmt" count="4"/>
      <line num="63" type="stmt" count="4"/>
      <line num="65" type="stmt" count="4"/>
      <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="72" type="stmt" count="0"/>
      <line num="76" type="stmt" count="4"/>
      <line num="77" type="stmt" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="79" type="stmt" count="0"/>
      <line num="81" type="stmt" count="0"/>
      <line num="84" type="stmt" count="4"/>
      <line num="95" type="method" name="buildSubject" visibility="public" complexity="2" crap="2" count="6"/>
      <line num="100" type="stmt" count="6"/>
      <line num="101" type="stmt" count="5"/>
      <line num="102" type="stmt" count="5"/>
      <line num="103" type="stmt" count="5"/>
      <line num="104" type="stmt" count="5"/>
      <line num="105" type="stmt" count="5"/>
      <line num="107" type="stmt" count="5"/>
      <line num="110" type="stmt" count="1"/>
      <line num="120" type="method" name="buildPlaintextSubject" visibility="public" complexity="2" crap="2" count="4"/>
      <line num="121" type="stmt" count="4"/>
      <line num="122" type="stmt" count="2"/>
      <line num="125" type="stmt" count="2"/>
      <line num="134" type="method" name="sanitizeSubject" visibility="private" complexity="1" crap="1" count="4"/>
      <line num="135" type="stmt" count="4"/>
      <line num="146" type="method" name="wrapBasedOnLanguage" visibility="private" complexity="2" crap="2" count="9"/>
      <line num="151" type="stmt" count="9"/>
      <line num="154" type="stmt" count="4"/>
      <line num="156" type="stmt" count="5"/>
      <line num="166" type="method" name="needsWrapping" visibility="private" complexity="2" crap="2" count="5"/>
      <line num="167" type="stmt" count="5"/>
      <line num="176" type="method" name="wrapContentWithLanguageAttributes" visibility="private" complexity="2" crap="2" count="2"/>
      <line num="177" type="stmt" count="2"/>
      <line num="178" type="stmt" count="2"/>
      <line num="180" type="stmt" count="2"/>
      <line num="181" type="stmt" count="2"/>
      <line num="182" type="stmt" count="2"/>
      <line num="185" type="stmt" count="2"/>
      <line num="186" type="stmt" count="2"/>
      <line num="187" type="stmt" count="2"/>
      <line num="188" type="stmt" count="2"/>
      <line num="189" type="stmt" count="2"/>
      <line num="190" type="stmt" count="2"/>
      <line num="191" type="stmt" count="2"/>
      <line num="192" type="stmt" count="2"/>
      <metrics loc="195" ncloc="128" classes="1" methods="8" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="53" coveredstatements="43" elements="61" coveredelements="50"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/MessageContentFetcher/LabeledSectionContentFetcher.php">
      <class name="MediaWiki\MassMessage\MessageContentFetcher\LabeledSectionContentFetcher" namespace="global">
        <metrics complexity="7" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="24" elements="35" coveredelements="27"/>
      </class>
      <line num="22" type="method" name="getSections" visibility="public" complexity="1" crap="1" count="3"/>
      <line num="23" type="stmt" count="3"/>
      <line num="24" type="stmt" count="3"/>
      <line num="25" type="stmt" count="3"/>
      <line num="26" type="stmt" count="3"/>
      <line num="27" type="stmt" count="3"/>
      <line num="29" type="stmt" count="3"/>
      <line num="35" type="method" name="getContent" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="36" type="stmt" count="3"/>
      <line num="38" type="stmt" count="3"/>
      <line num="39" type="stmt" count="1"/>
      <line num="47" type="stmt" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="49" type="stmt" count="2"/>
      <line num="50" type="stmt" count="2"/>
      <line num="51" type="stmt" count="2"/>
      <line num="53" type="stmt" count="2"/>
      <line num="59" type="method" name="getContentWithoutTags" visibility="public" complexity="2" crap="2" count="3"/>
      <line num="60" type="stmt" count="3"/>
      <line num="62" type="stmt" count="3"/>
      <line num="63" type="stmt" count="1"/>
      <line num="66" type="stmt" count="2"/>
      <line num="67" type="stmt" count="2"/>
      <line num="68" type="stmt" count="2"/>
      <line num="69" type="stmt" count="2"/>
      <line num="70" type="stmt" count="2"/>
      <line num="72" type="stmt" count="2"/>
      <line num="82" type="method" name="getMatches" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="84" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="96" type="stmt" count="0"/>
      <metrics loc="99" ncloc="67" classes="1" methods="4" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="31" coveredstatements="24" elements="35" coveredelements="27"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/MessageContentFetcher/LocalMessageContentFetcher.php">
      <class name="MediaWiki\MassMessage\MessageContentFetcher\LocalMessageContentFetcher" namespace="global">
        <metrics complexity="9" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="23" elements="44" coveredelements="23"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="35" type="method" name="getContent" visibility="public" complexity="5" crap="5.14" count="3"/>
      <line num="36" type="stmt" count="3"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="44" type="stmt" count="2"/>
      <line num="46" type="stmt" count="2"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="67" type="stmt" count="1"/>
      <line num="68" type="stmt" count="1"/>
      <line num="69" type="stmt" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <line num="82" type="method" name="getTitle" visibility="public" complexity="3" crap="12" 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="87" type="stmt" count="0"/>
      <line num="88" type="stmt" count="0"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" 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="97" type="stmt" count="0"/>
      <metrics loc="100" ncloc="82" classes="1" methods="3" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="41" coveredstatements="23" elements="44" coveredelements="23"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/MessageContentFetcher/RemoteMessageContentFetcher.php">
      <class name="MediaWiki\MassMessage\MessageContentFetcher\RemoteMessageContentFetcher" namespace="global">
        <metrics complexity="11" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="83" coveredstatements="0" elements="87" coveredelements="0"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="28" type="method" name="getContent" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" 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="51" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" 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="63" type="stmt" count="0"/>
      <line num="64" 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="78" type="stmt" count="0"/>
      <line num="81" type="method" name="parseQueryApiResponse" visibility="private" complexity="4" crap="20" 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="126" type="stmt" count="0"/>
      <line num="128" 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="133" type="stmt" count="0"/>
      <line num="134" 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="143" type="stmt" count="0"/>
      <line num="150" type="method" name="getApiEndpoint" visibility="private" complexity="2" crap="6" count="0"/>
      <line num="151" type="stmt" count="0"/>
      <line num="153" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="156" type="stmt" count="0"/>
      <line num="157" 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="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="170" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="172" type="stmt" count="0"/>
      <line num="174" type="stmt" count="0"/>
      <line num="175" type="stmt" count="0"/>
      <line num="177" type="stmt" count="0"/>
      <metrics loc="180" ncloc="137" classes="1" methods="4" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="83" coveredstatements="0" elements="87" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/MessageSender.php">
      <class name="MediaWiki\MassMessage\MessageSender" namespace="global">
        <metrics complexity="19" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="93" coveredstatements="29" elements="98" coveredelements="29"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="45" type="method" name="editPage" visibility="public" complexity="7" crap="7.01" count="7"/>
      <line num="52" type="stmt" count="7"/>
      <line num="53" type="stmt" count="7"/>
      <line num="54" type="stmt" count="7"/>
      <line num="55" type="stmt" count="7"/>
      <line num="56" type="stmt" count="7"/>
      <line num="57" type="stmt" count="7"/>
      <line num="58" type="stmt" count="7"/>
      <line num="59" type="stmt" count="7"/>
      <line num="60" type="stmt" count="7"/>
      <line num="62" type="stmt" count="7"/>
      <line num="63" type="stmt" count="0"/>
      <line num="66" type="stmt" count="7"/>
      <line num="67" type="stmt" count="7"/>
      <line num="69" type="stmt" count="6"/>
      <line num="70" type="stmt" count="6"/>
      <line num="71" type="stmt" count="6"/>
      <line num="74" type="stmt" count="0"/>
      <line num="76" type="stmt" count="6"/>
      <line num="77" type="stmt" count="6"/>
      <line num="79" type="stmt" count="6"/>
      <line num="80" type="stmt" count="6"/>
      <line num="81" type="stmt" count="6"/>
      <line num="82" type="stmt" count="6"/>
      <line num="83" type="stmt" count="6"/>
      <line num="84" type="stmt" count="6"/>
      <line num="85" type="stmt" count="6"/>
      <line num="86" type="stmt" count="6"/>
      <line num="87" type="stmt" count="6"/>
      <line num="88" type="stmt" count="6"/>
      <line num="90" type="stmt" count="6"/>
      <line num="92" type="stmt" count="1"/>
      <line num="102" type="method" name="addLQTThread" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="111" type="stmt" count="0"/>
      <line num="112" 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="118" type="stmt" count="0"/>
      <line num="128" type="method" name="addFlowTopic" visibility="public" complexity="1" crap="2" 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="143" type="stmt" count="0"/>
      <line num="153" type="method" name="makeAPIRequest" visibility="private" complexity="9" crap="90" 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="164" 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="170" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="174" 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="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="186" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="189" type="stmt" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="192" 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="197" type="stmt" count="0"/>
      <line num="198" 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="207" type="stmt" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="210" type="stmt" count="0"/>
      <line num="212" type="stmt" count="0"/>
      <line num="214" type="stmt" count="0"/>
      <line num="218" type="stmt" count="0"/>
      <line num="221" type="stmt" count="0"/>
      <line num="222" type="stmt" count="0"/>
      <line num="223" type="stmt" count="0"/>
      <line num="224" type="stmt" count="0"/>
      <metrics loc="228" ncloc="176" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="93" coveredstatements="29" elements="98" coveredelements="29"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Notifications/SuppressMassMessageNotificationsMiddleware.php">
      <class name="MediaWiki\MassMessage\Notifications\SuppressMassMessageNotificationsMiddleware" namespace="global">
        <metrics complexity="6" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="10" elements="12" coveredelements="12"/>
      </class>
      <line num="21" type="method" name="getMessengerUser" visibility="private" complexity="2" crap="2" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="25" type="stmt" count="1"/>
      <line num="32" type="method" name="filter" visibility="protected" complexity="4" crap="4" count="1"/>
      <line num="33" type="stmt" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="36" type="stmt" count="1"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <metrics loc="46" ncloc="37" classes="1" methods="2" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="10" elements="12" coveredelements="12"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/PageMessage/PageMessageBuilder.php">
      <class name="MediaWiki\MassMessage\PageMessage\PageMessageBuilder" namespace="global">
        <metrics complexity="23" methods="6" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="73" coveredstatements="42" elements="79" coveredelements="42"/>
      </class>
      <line num="23" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="43" type="method" name="getContent" visibility="public" complexity="6" crap="6.04" count="4"/>
      <line num="49" type="stmt" count="4"/>
      <line num="50" type="stmt" count="0"/>
      <line num="53" type="stmt" count="4"/>
      <line num="54" type="stmt" count="4"/>
      <line num="55" type="stmt" count="0"/>
      <line num="59" type="stmt" count="4"/>
      <line num="60" type="stmt" count="4"/>
      <line num="61" type="stmt" count="0"/>
      <line num="64" type="stmt" count="4"/>
      <line num="65" type="stmt" count="4"/>
      <line num="66" type="stmt" count="4"/>
      <line num="68" type="stmt" count="4"/>
      <line num="71" type="stmt" count="3"/>
      <line num="72" type="stmt" count="3"/>
      <line num="73" type="stmt" count="3"/>
      <line num="74" type="stmt" count="3"/>
      <line num="75" type="stmt" count="3"/>
      <line num="76" type="stmt" count="3"/>
      <line num="77" type="stmt" count="3"/>
      <line num="80" type="stmt" count="4"/>
      <line num="81" type="stmt" count="3"/>
      <line num="82" type="stmt" count="3"/>
      <line num="83" type="stmt" count="3"/>
      <line num="84" type="stmt" count="3"/>
      <line num="85" type="stmt" count="3"/>
      <line num="86" type="stmt" count="3"/>
      <line num="87" type="stmt" count="3"/>
      <line num="90" type="stmt" count="4"/>
      <line num="104" type="method" name="getContentWithFallback" visibility="public" complexity="6" crap="6.04" count="3"/>
      <line num="112" type="stmt" count="3"/>
      <line num="113" type="stmt" count="0"/>
      <line num="117" type="stmt" count="3"/>
      <line num="118" type="stmt" count="3"/>
      <line num="119" type="stmt" count="3"/>
      <line num="120" type="stmt" count="3"/>
      <line num="122" type="stmt" count="3"/>
      <line num="123" type="stmt" count="3"/>
      <line num="124" type="stmt" count="3"/>
      <line num="125" type="stmt" count="3"/>
      <line num="126" type="stmt" count="3"/>
      <line num="128" type="stmt" count="3"/>
      <line num="129" type="stmt" count="2"/>
      <line num="133" type="stmt" count="2"/>
      <line num="134" type="stmt" count="0"/>
      <line num="139" type="stmt" count="1"/>
      <line num="140" type="stmt" count="1"/>
      <line num="141" type="stmt" count="1"/>
      <line num="144" type="stmt" count="1"/>
      <line num="155" type="method" name="parseGetSectionResponse" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="161" type="stmt" count="0"/>
      <line num="164" type="stmt" count="0"/>
      <line num="165" type="stmt" count="0"/>
      <line num="166" type="stmt" count="0"/>
      <line num="168" type="stmt" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="181" type="method" name="getPageContent" visibility="private" complexity="3" crap="12" 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="185" type="stmt" count="0"/>
      <line num="186" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="191" type="stmt" count="0"/>
      <line num="194" type="stmt" count="0"/>
      <line num="203" type="method" name="isNotFoundError" visibility="private" complexity="4" crap="20" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="206" type="stmt" count="0"/>
      <line num="207" type="stmt" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="210" type="stmt" count="0"/>
      <line num="211" type="stmt" count="0"/>
      <line num="216" type="stmt" count="0"/>
      <metrics loc="219" ncloc="164" classes="1" methods="6" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="73" coveredstatements="42" elements="79" coveredelements="42"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/PageMessage/PageMessageBuilderResult.php">
      <class name="MediaWiki\MassMessage\PageMessage\PageMessageBuilderResult" namespace="global">
        <metrics complexity="6" methods="6" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="0" elements="12" coveredelements="0"/>
      </class>
      <line num="19" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="26" type="method" name="getStatus" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="30" type="method" name="getPageMessage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="34" type="method" name="getPageSubject" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="38" type="method" name="isOK" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="42" type="method" name="getResultMessage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <metrics loc="46" ncloc="39" classes="1" methods="6" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="6" coveredstatements="0" elements="12" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/RequestProcessing/MassMessageRequest.php">
      <class name="MediaWiki\MassMessage\RequestProcessing\MassMessageRequest" namespace="global">
        <metrics complexity="11" methods="11" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="0" elements="36" coveredelements="0"/>
      </class>
      <line num="39" type="method" name="__construct" 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="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="57" type="method" name="getSpamList" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="61" type="method" name="getSubject" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="62" type="stmt" count="0"/>
      <line num="65" type="method" name="getPageMessage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="66" type="stmt" count="0"/>
      <line num="69" type="method" name="getPageMessageSection" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="73" type="method" name="getPageSubjectSection" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="74" type="stmt" count="0"/>
      <line num="77" type="method" name="getMessage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="78" type="stmt" count="0"/>
      <line num="82" type="method" name="getComment" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="83" type="stmt" count="0"/>
      <line num="86" type="method" name="hasPageMessage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="87" type="stmt" count="0"/>
      <line num="90" type="method" name="hasMessage" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="94" type="method" name="getSerializedData" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="95" 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="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="103" type="stmt" count="0"/>
      <metrics loc="106" ncloc="83" classes="1" methods="11" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="0" elements="36" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/RequestProcessing/MassMessageRequestParser.php">
      <class name="MediaWiki\MassMessage\RequestProcessing\MassMessageRequestParser" namespace="global">
        <metrics complexity="24" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="71" coveredstatements="0" elements="73" coveredelements="0"/>
      </class>
      <line num="24" type="method" name="parseRequest" visibility="public" complexity="13" crap="182" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="42" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="48" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="58" type="stmt" count="0"/>
      <line num="61" type="stmt" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="64" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="70" 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="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="90" type="stmt" count="0"/>
      <line num="91" type="stmt" count="0"/>
      <line num="93" type="stmt" count="0"/>
      <line num="94" type="stmt" count="0"/>
      <line num="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="102" type="stmt" count="0"/>
      <line num="103" type="stmt" count="0"/>
      <line num="106" type="stmt" count="0"/>
      <line num="114" type="method" name="getSpamlist" visibility="private" complexity="11" crap="132" count="0"/>
      <line num="115" type="stmt" count="0"/>
      <line num="118" type="stmt" count="0"/>
      <line num="119" type="stmt" count="0"/>
      <line num="122" type="stmt" count="0"/>
      <line num="123" type="stmt" count="0"/>
      <line num="127" type="stmt" count="0"/>
      <line num="128" type="stmt" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="132" type="stmt" count="0"/>
      <line num="134" 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="144" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <metrics loc="150" ncloc="131" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="71" coveredstatements="0" elements="73" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/ServiceWiring.php">
      <line num="21" type="stmt" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="24" type="stmt" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="32" type="stmt" count="0"/>
      <line num="33" type="stmt" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="40" type="stmt" count="0"/>
      <line num="41" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="50" type="stmt" count="0"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <metrics loc="55" ncloc="46" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="30" coveredstatements="0" elements="30" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Services.php">
      <class name="MediaWiki\MassMessage\Services" namespace="global">
        <metrics complexity="8" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="0" elements="16" coveredelements="0"/>
      </class>
      <line num="22" type="method" name="__construct" visibility="private" complexity="1" crap="2" count="0"/>
      <line num="23" type="stmt" count="0"/>
      <line num="25" type="method" name="getInstance" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="30" type="method" name="get" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="31" type="stmt" count="0"/>
      <line num="35" type="method" name="has" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="43" type="method" name="getLabeledSectionContentFetcher" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="51" type="method" name="getLocalMessageContentFetcher" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="59" type="method" name="getPageMessageBuilder" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="67" type="method" name="getRemoteMessageContentFetcher" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <metrics loc="71" ncloc="45" classes="1" methods="8" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="8" coveredstatements="0" elements="16" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Specials/SpecialCreateMassMessageList.php">
      <class name="MediaWiki\MassMessage\Specials\SpecialCreateMassMessageList" namespace="global">
        <metrics complexity="25" methods="11" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="96" coveredstatements="0" elements="107" coveredelements="0"/>
      </class>
      <line num="16" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="17" type="stmt" count="0"/>
      <line num="21" type="method" name="getRestriction" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="22" type="stmt" count="0"/>
      <line num="26" type="method" name="doesWrites" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="35" type="method" name="execute" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="43" type="method" name="getFormFields" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" type="stmt" 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="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" 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="63" 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="74" type="method" name="alterForm" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="82" type="method" name="onSubmit" visibility="public" complexity="11" crap="132" 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="90" type="stmt" count="0"/>
      <line num="92" type="stmt" count="0"/>
      <line num="95" 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="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"/>
      <line num="107" type="stmt" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="109" type="stmt" count="0"/>
      <line num="110" type="stmt" count="0"/>
      <line num="112" 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="119" type="stmt" count="0"/>
      <line num="120" 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="133" type="stmt" count="0"/>
      <line num="134" type="stmt" count="0"/>
      <line num="137" type="stmt" count="0"/>
      <line num="138" type="stmt" count="0"/>
      <line num="141" type="method" name="onSuccess" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="143" type="stmt" count="0"/>
      <line num="150" type="method" name="getContentOptions" visibility="protected" complexity="2" crap="6" 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="156" type="stmt" count="0"/>
      <line num="157" type="stmt" count="0"/>
      <line num="158" type="stmt" count="0"/>
      <line num="160" type="stmt" count="0"/>
      <line num="170" type="method" name="getTargets" visibility="protected" complexity="4" crap="20" count="0"/>
      <line num="171" type="stmt" count="0"/>
      <line num="172" 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="176" 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="182" type="stmt" count="0"/>
      <line num="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="186" type="stmt" count="0"/>
      <line num="188" type="stmt" count="0"/>
      <line num="194" type="method" name="getDisplayFormat" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="195" type="stmt" count="0"/>
      <metrics loc="198" ncloc="163" classes="1" methods="11" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="96" coveredstatements="0" elements="107" coveredelements="0"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Specials/SpecialEditMassMessageList.php">
      <class name="MediaWiki\MassMessage\Specials\SpecialEditMassMessageList" namespace="global">
        <metrics complexity="52" methods="12" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="169" coveredstatements="126" elements="181" coveredelements="128"/>
      </class>
      <line num="51" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="58" type="stmt" count="2"/>
      <line num="62" type="method" name="doesWrites" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="63" type="stmt" count="0"/>
      <line num="69" type="method" name="setParameter" visibility="protected" complexity="12" crap="39.65" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="0"/>
      <line num="73" type="stmt" count="1"/>
      <line num="75" type="stmt" count="1"/>
      <line num="76" type="stmt" count="1"/>
      <line num="77" type="stmt" count="1"/>
      <line num="79" type="stmt" count="0"/>
      <line num="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="85" type="stmt" count="0"/>
      <line num="87" type="stmt" count="1"/>
      <line num="88" type="stmt" count="1"/>
      <line num="89" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" 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="95" 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="106" type="stmt" count="1"/>
      <line num="116" type="method" name="setHeaders" visibility="public" complexity="8" crap="9.00" count="1"/>
      <line num="117" type="stmt" count="1"/>
      <line num="118" type="stmt" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="122" type="stmt" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="124" type="stmt" count="1"/>
      <line num="127" type="stmt" count="1"/>
      <line num="128" type="stmt" count="1"/>
      <line num="129" type="stmt" count="1"/>
      <line num="130" type="stmt" count="1"/>
      <line num="132" type="stmt" count="0"/>
      <line num="134" type="stmt" count="1"/>
      <line num="137" type="stmt" count="1"/>
      <line num="138" type="stmt" count="1"/>
      <line num="139" type="stmt" count="1"/>
      <line num="140" type="stmt" count="1"/>
      <line num="144" type="stmt" count="1"/>
      <line num="145" type="stmt" count="1"/>
      <line num="146" type="stmt" count="1"/>
      <line num="148" type="stmt" count="0"/>
      <line num="149" type="stmt" count="0"/>
      <line num="152" type="stmt" count="0"/>
      <line num="154" type="stmt" count="0"/>
      <line num="155" type="stmt" count="0"/>
      <line num="163" type="method" name="getFormFields" visibility="protected" complexity="6" crap="6" count="1"/>
      <line num="165" type="stmt" count="1"/>
      <line num="166" type="stmt" count="0"/>
      <line num="169" type="stmt" count="1"/>
      <line num="174" type="stmt" count="1"/>
      <line num="175" type="stmt" count="1"/>
      <line num="176" type="stmt" count="1"/>
      <line num="177" type="stmt" count="1"/>
      <line num="178" type="stmt" count="1"/>
      <line num="180" type="stmt" count="1"/>
      <line num="181" type="stmt" count="1"/>
      <line num="183" type="stmt" count="1"/>
      <line num="184" type="stmt" count="1"/>
      <line num="185" type="stmt" count="1"/>
      <line num="186" type="stmt" 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="192" type="stmt" count="1"/>
      <line num="193" type="stmt" count="1"/>
      <line num="194" type="stmt" count="1"/>
      <line num="195" type="stmt" count="1"/>
      <line num="196" type="stmt" count="1"/>
      <line num="197" type="stmt" count="1"/>
      <line num="198" type="stmt" count="1"/>
      <line num="199" type="stmt" count="1"/>
      <line num="200" type="stmt" count="1"/>
      <line num="201" type="stmt" count="1"/>
      <line num="202" type="stmt" count="1"/>
      <line num="204" type="stmt" count="1"/>
      <line num="205" type="stmt" count="1"/>
      <line num="206" type="stmt" count="1"/>
      <line num="207" type="stmt" count="1"/>
      <line num="208" type="stmt" count="1"/>
      <line num="209" type="stmt" count="1"/>
      <line num="210" type="stmt" count="1"/>
      <line num="211" type="stmt" count="1"/>
      <line num="214" type="stmt" count="1"/>
      <line num="215" type="stmt" count="1"/>
      <line num="216" type="stmt" count="1"/>
      <line num="217" type="stmt" count="1"/>
      <line num="218" type="stmt" count="1"/>
      <line num="219" type="stmt" count="1"/>
      <line num="220" type="stmt" count="1"/>
      <line num="221" type="stmt" count="1"/>
      <line num="222" type="stmt" count="1"/>
      <line num="225" type="stmt" count="1"/>
      <line num="226" type="stmt" count="1"/>
      <line num="227" type="stmt" count="1"/>
      <line num="228" type="stmt" count="1"/>
      <line num="229" type="stmt" count="1"/>
      <line num="230" type="stmt" count="1"/>
      <line num="231" type="stmt" count="1"/>
      <line num="239" type="method" name="alterForm" visibility="protected" complexity="2" crap="2.15" count="1"/>
      <line num="240" type="stmt" count="1"/>
      <line num="241" type="stmt" count="0"/>
      <line num="242" type="stmt" count="0"/>
      <line num="244" type="stmt" count="1"/>
      <line num="245" type="stmt" count="1"/>
      <line num="247" type="stmt" count="1"/>
      <line num="255" type="method" name="preHtml" visibility="protected" complexity="6" crap="8.83" count="1"/>
      <line num="256" type="stmt" count="1"/>
      <line num="258" type="stmt" count="1"/>
      <line num="260" type="stmt" count="1"/>
      <line num="261" type="stmt" count="1"/>
      <line num="263" type="stmt" count="0"/>
      <line num="265" type="stmt" count="1"/>
      <line num="268" type="stmt" count="1"/>
      <line num="269" type="stmt" count="0"/>
      <line num="270" type="stmt" count="0"/>
      <line num="271" type="stmt" count="0"/>
      <line num="275" type="stmt" count="1"/>
      <line num="276" type="stmt" count="0"/>
      <line num="280" type="stmt" count="0"/>
      <line num="282" type="stmt" count="1"/>
      <line num="290" type="method" name="onSubmit" visibility="public" complexity="9" crap="11.36" count="1"/>
      <line num="291" type="stmt" count="1"/>
      <line num="292" type="stmt" count="0"/>
      <line num="296" type="stmt" count="1"/>
      <line num="297" type="stmt" count="1"/>
      <line num="299" type="stmt" count="0"/>
      <line num="300" type="stmt" count="0"/>
      <line num="301" type="stmt" count="0"/>
      <line num="302" type="stmt" count="0"/>
      <line num="306" type="stmt" count="1"/>
      <line num="307" type="stmt" count="1"/>
      <line num="308" type="stmt" count="1"/>
      <line num="310" type="stmt" count="0"/>
      <line num="311" type="stmt" count="0"/>
      <line num="314" type="stmt" count="1"/>
      <line num="315" type="stmt" count="1"/>
      <line num="316" type="stmt" count="1"/>
      <line num="317" type="stmt" count="1"/>
      <line num="318" type="stmt" count="1"/>
      <line num="320" type="stmt" count="1"/>
      <line num="321" type="stmt" count="1"/>
      <line num="322" type="stmt" count="1"/>
      <line num="323" type="stmt" count="1"/>
      <line num="325" type="stmt" count="1"/>
      <line num="326" type="stmt" count="0"/>
      <line num="329" type="stmt" count="1"/>
      <line num="330" type="stmt" count="1"/>
      <line num="333" type="method" name="onSuccess" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="335" type="stmt" count="0"/>
      <line num="344" type="method" name="parseInput" visibility="protected" complexity="4" crap="4.05" count="1"/>
      <line num="346" type="stmt" count="1"/>
      <line num="348" type="stmt" count="1"/>
      <line num="349" type="stmt" count="1"/>
      <line num="350" type="stmt" count="1"/>
      <line num="351" type="stmt" count="1"/>
      <line num="352" type="stmt" count="1"/>
      <line num="353" type="stmt" count="0"/>
      <line num="355" type="stmt" count="1"/>
      <line num="358" type="stmt" count="1"/>
      <line num="359" type="stmt" count="1"/>
      <line num="360" type="stmt" count="1"/>
      <line num="361" type="stmt" count="1"/>
      <line num="363" type="stmt" count="0"/>
      <line num="365" type="stmt" count="1"/>
      <line num="371" type="method" name="isListed" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="372" type="stmt" count="0"/>
      <line num="378" type="method" name="getDisplayFormat" visibility="protected" complexity="1" crap="1" count="1"/>
      <line num="379" type="stmt" count="1"/>
      <metrics loc="382" ncloc="307" classes="1" methods="12" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="169" coveredstatements="126" elements="181" coveredelements="128"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/Specials/SpecialMassMessage.php">
      <class name="MediaWiki\MassMessage\Specials\SpecialMassMessage" namespace="global">
        <metrics complexity="47" methods="16" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="307" coveredstatements="26" elements="323" coveredelements="27"/>
      </class>
      <line num="48" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="59" type="method" name="getRestriction" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="60" type="stmt" count="0"/>
      <line num="64" type="method" name="doesWrites" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="65" type="stmt" count="0"/>
      <line num="69" type="method" name="execute" visibility="public" complexity="3" crap="12" count="0"/>
      <line num="70" type="stmt" count="0"/>
      <line num="71" type="stmt" count="0"/>
      <line num="73" type="stmt" count="0"/>
      <line num="75" type="stmt" count="0"/>
      <line num="76" type="stmt" count="0"/>
      <line num="79" 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="87" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="94" type="method" name="alterForm" visibility="protected" complexity="2" crap="6" count="0"/>
      <line num="95" type="stmt" count="0"/>
      <line num="96" 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="103" type="stmt" count="0"/>
      <line num="107" type="method" name="getDisplayFormat" visibility="protected" complexity="1" crap="2" count="0"/>
      <line num="108" type="stmt" count="0"/>
      <line num="112" type="method" name="onSuccess" visibility="public" complexity="2" crap="6" 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="124" type="method" name="getState" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="125" type="stmt" count="0"/>
      <line num="129" type="method" name="getStatus" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="130" type="stmt" count="0"/>
      <line num="138" type="method" name="getCount" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="139" type="stmt" count="0"/>
      <line num="143" type="method" name="getFormFields" visibility="protected" complexity="4" crap="20" count="0"/>
      <line num="144" type="stmt" count="0"/>
      <line num="145" type="stmt" count="0"/>
      <line num="147" type="stmt" count="0"/>
      <line num="149" 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="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="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="172" 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="176" type="stmt" count="0"/>
      <line num="177" 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="183" type="stmt" count="0"/>
      <line num="184" type="stmt" count="0"/>
      <line num="185" type="stmt" count="0"/>
      <line num="186" type="stmt" count="0"/>
      <line num="187" type="stmt" count="0"/>
      <line num="190" type="stmt" count="0"/>
      <line num="191" type="stmt" 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="197" type="stmt" count="0"/>
      <line num="198" type="stmt" count="0"/>
      <line num="199" type="stmt" count="0"/>
      <line num="200" type="stmt" count="0"/>
      <line num="202" type="stmt" count="0"/>
      <line num="203" type="stmt" count="0"/>
      <line num="204" type="stmt" count="0"/>
      <line num="205" type="stmt" count="0"/>
      <line num="206" type="stmt" count="0"/>
      <line num="207" type="stmt" count="0"/>
      <line num="208" type="stmt" count="0"/>
      <line num="209" type="stmt" count="0"/>
      <line num="210" type="stmt" count="0"/>
      <line num="211" type="stmt" count="0"/>
      <line num="212" type="stmt" count="0"/>
      <line num="215" 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="219" type="stmt" count="0"/>
      <line num="220" type="stmt" count="0"/>
      <line num="221" type="stmt" count="0"/>
      <line num="222" type="stmt" count="0"/>
      <line num="226" type="stmt" count="0"/>
      <line num="227" type="stmt" count="0"/>
      <line num="228" type="stmt" count="0"/>
      <line num="229" type="stmt" count="0"/>
      <line num="230" 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="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="242" type="stmt" count="0"/>
      <line num="243" type="stmt" count="0"/>
      <line num="244" type="stmt" count="0"/>
      <line num="245" type="stmt" count="0"/>
      <line num="246" type="stmt" count="0"/>
      <line num="247" type="stmt" count="0"/>
      <line num="248" type="stmt" count="0"/>
      <line num="249" type="stmt" count="0"/>
      <line num="253" type="stmt" count="0"/>
      <line num="254" type="stmt" count="0"/>
      <line num="255" type="stmt" count="0"/>
      <line num="256" type="stmt" count="0"/>
      <line num="257" type="stmt" count="0"/>
      <line num="258" type="stmt" count="0"/>
      <line num="259" type="stmt" count="0"/>
      <line num="261" type="stmt" count="0"/>
      <line num="272" type="method" name="onSubmit" visibility="public" complexity="4" crap="20" count="0"/>
      <line num="273" type="stmt" count="0"/>
      <line num="274" type="stmt" count="0"/>
      <line num="277" type="stmt" count="0"/>
      <line num="278" type="stmt" count="0"/>
      <line num="279" type="stmt" count="0"/>
      <line num="282" type="stmt" count="0"/>
      <line num="283" type="stmt" count="0"/>
      <line num="284" type="stmt" count="0"/>
      <line num="287" type="stmt" count="0"/>
      <line num="290" type="stmt" count="0"/>
      <line num="291" type="stmt" count="0"/>
      <line num="292" type="stmt" count="0"/>
      <line num="296" type="stmt" count="0"/>
      <line num="308" type="method" name="getUnclosedTags" visibility="protected" complexity="11" crap="11" count="1"/>
      <line num="310" type="stmt" count="1"/>
      <line num="311" type="stmt" count="1"/>
      <line num="314" type="stmt" count="1"/>
      <line num="315" type="stmt" count="1"/>
      <line num="318" type="stmt" count="1"/>
      <line num="319" type="stmt" count="1"/>
      <line num="324" type="stmt" count="1"/>
      <line num="325" type="stmt" count="1"/>
      <line num="328" type="stmt" count="1"/>
      <line num="329" type="stmt" count="1"/>
      <line num="330" type="stmt" count="1"/>
      <line num="331" type="stmt" count="1"/>
      <line num="332" type="stmt" count="1"/>
      <line num="334" type="stmt" count="0"/>
      <line num="338" type="stmt" count="1"/>
      <line num="339" type="stmt" count="1"/>
      <line num="340" type="stmt" count="1"/>
      <line num="342" type="stmt" count="1"/>
      <line num="346" type="stmt" count="1"/>
      <line num="347" type="stmt" count="1"/>
      <line num="348" type="stmt" count="1"/>
      <line num="349" type="stmt" count="1"/>
      <line num="350" type="stmt" count="1"/>
      <line num="351" type="stmt" count="1"/>
      <line num="354" type="stmt" count="1"/>
      <line num="363" type="method" name="preview" visibility="protected" complexity="8" crap="72" count="0"/>
      <line num="364" type="stmt" count="0"/>
      <line num="367" type="stmt" count="0"/>
      <line num="368" type="stmt" count="0"/>
      <line num="369" type="stmt" count="0"/>
      <line num="370" type="stmt" count="0"/>
      <line num="372" type="stmt" count="0"/>
      <line num="373" type="stmt" count="0"/>
      <line num="374" type="stmt" count="0"/>
      <line num="375" type="stmt" count="0"/>
      <line num="376" type="stmt" count="0"/>
      <line num="377" type="stmt" count="0"/>
      <line num="379" type="stmt" count="0"/>
      <line num="380" type="stmt" count="0"/>
      <line num="383" type="stmt" count="0"/>
      <line num="384" type="stmt" count="0"/>
      <line num="385" type="stmt" count="0"/>
      <line num="386" type="stmt" count="0"/>
      <line num="387" type="stmt" count="0"/>
      <line num="388" type="stmt" count="0"/>
      <line num="390" type="stmt" count="0"/>
      <line num="391" type="stmt" count="0"/>
      <line num="392" type="stmt" count="0"/>
      <line num="396" type="stmt" count="0"/>
      <line num="398" type="stmt" count="0"/>
      <line num="399" type="stmt" count="0"/>
      <line num="400" type="stmt" count="0"/>
      <line num="402" type="stmt" count="0"/>
      <line num="403" type="stmt" count="0"/>
      <line num="404" type="stmt" count="0"/>
      <line num="406" type="stmt" count="0"/>
      <line num="407" type="stmt" count="0"/>
      <line num="408" type="stmt" count="0"/>
      <line num="410" type="stmt" count="0"/>
      <line num="411" type="stmt" count="0"/>
      <line num="416" type="stmt" count="0"/>
      <line num="417" type="stmt" count="0"/>
      <line num="418" type="stmt" count="0"/>
      <line num="421" type="stmt" count="0"/>
      <line num="423" type="stmt" count="0"/>
      <line num="424" type="stmt" count="0"/>
      <line num="425" type="stmt" count="0"/>
      <line num="426" type="stmt" count="0"/>
      <line num="429" type="stmt" count="0"/>
      <line num="430" type="stmt" count="0"/>
      <line num="431" type="stmt" count="0"/>
      <line num="432" type="stmt" count="0"/>
      <line num="433" type="stmt" count="0"/>
      <line num="434" type="stmt" count="0"/>
      <line num="435" type="stmt" count="0"/>
      <line num="436" type="stmt" count="0"/>
      <line num="437" type="stmt" count="0"/>
      <line num="438" type="stmt" count="0"/>
      <line num="439" type="stmt" count="0"/>
      <line num="440" type="stmt" count="0"/>
      <line num="441" type="stmt" count="0"/>
      <line num="442" type="stmt" count="0"/>
      <line num="443" type="stmt" count="0"/>
      <line num="444" type="stmt" count="0"/>
      <line num="445" type="stmt" count="0"/>
      <line num="446" type="stmt" count="0"/>
      <line num="447" type="stmt" count="0"/>
      <line num="448" type="stmt" count="0"/>
      <line num="449" type="stmt" count="0"/>
      <line num="450" type="stmt" count="0"/>
      <line num="451" type="stmt" count="0"/>
      <line num="452" type="stmt" count="0"/>
      <line num="453" type="stmt" count="0"/>
      <line num="454" type="stmt" count="0"/>
      <line num="456" type="stmt" count="0"/>
      <line num="457" type="stmt" count="0"/>
      <line num="458" type="stmt" count="0"/>
      <line num="459" type="stmt" count="0"/>
      <line num="460" type="stmt" count="0"/>
      <line num="461" type="stmt" count="0"/>
      <line num="462" type="stmt" count="0"/>
      <line num="465" type="stmt" count="0"/>
      <line num="466" type="stmt" count="0"/>
      <line num="467" type="stmt" count="0"/>
      <line num="468" type="stmt" count="0"/>
      <line num="469" type="stmt" count="0"/>
      <line num="470" type="stmt" count="0"/>
      <line num="471" type="stmt" count="0"/>
      <line num="472" type="stmt" count="0"/>
      <line num="473" type="stmt" count="0"/>
      <line num="474" type="stmt" count="0"/>
      <line num="475" type="stmt" count="0"/>
      <line num="478" type="stmt" count="0"/>
      <line num="479" type="stmt" count="0"/>
      <line num="485" type="stmt" count="0"/>
      <line num="486" type="stmt" count="0"/>
      <line num="487" type="stmt" count="0"/>
      <line num="488" type="stmt" count="0"/>
      <line num="489" type="stmt" count="0"/>
      <line num="490" type="stmt" count="0"/>
      <line num="491" type="stmt" count="0"/>
      <line num="492" type="stmt" count="0"/>
      <line num="493" type="stmt" count="0"/>
      <line num="499" type="stmt" count="0"/>
      <line num="500" type="stmt" count="0"/>
      <line num="503" type="stmt" count="0"/>
      <line num="504" type="stmt" count="0"/>
      <line num="505" type="stmt" count="0"/>
      <line num="506" type="stmt" count="0"/>
      <line num="509" type="stmt" count="0"/>
      <line num="510" type="stmt" count="0"/>
      <line num="511" type="stmt" count="0"/>
      <line num="512" type="stmt" count="0"/>
      <line num="516" type="method" name="showPreviewInfo" visibility="protected" complexity="3" crap="12" count="0"/>
      <line num="517" type="stmt" count="0"/>
      <line num="518" type="stmt" count="0"/>
      <line num="519" type="stmt" count="0"/>
      <line num="520" type="stmt" count="0"/>
      <line num="521" type="stmt" count="0"/>
      <line num="523" type="stmt" count="0"/>
      <line num="526" type="stmt" count="0"/>
      <line num="527" type="stmt" count="0"/>
      <line num="528" type="stmt" count="0"/>
      <line num="529" type="stmt" count="0"/>
      <line num="530" type="stmt" count="0"/>
      <line num="531" type="stmt" count="0"/>
      <line num="532" type="stmt" count="0"/>
      <line num="533" type="stmt" count="0"/>
      <line num="534" type="stmt" count="0"/>
      <line num="535" type="stmt" count="0"/>
      <line num="536" type="stmt" count="0"/>
      <line num="537" type="stmt" count="0"/>
      <line num="538" type="stmt" count="0"/>
      <line num="540" type="stmt" count="0"/>
      <line num="549" type="method" name="getLabeledSections" visibility="private" complexity="3" crap="12" count="0"/>
      <line num="550" type="stmt" count="0"/>
      <line num="551" type="stmt" count="0"/>
      <line num="552" type="stmt" count="0"/>
      <line num="553" type="stmt" count="0"/>
      <line num="554" type="stmt" count="0"/>
      <line num="555" type="stmt" count="0"/>
      <line num="556" type="stmt" count="0"/>
      <line num="560" type="stmt" count="0"/>
      <metrics loc="563" ncloc="476" classes="1" methods="16" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="307" coveredstatements="26" elements="323" coveredelements="27"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/includes/UrlHelper.php">
      <class name="MediaWiki\MassMessage\UrlHelper" namespace="global">
        <metrics complexity="7" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="15" elements="20" coveredelements="15"/>
      </class>
      <line num="16" type="method" name="followRedirect" visibility="public" complexity="3" crap="3.03" count="1"/>
      <line num="17" type="stmt" count="1"/>
      <line num="18" type="stmt" count="1"/>
      <line num="20" type="stmt" count="1"/>
      <line num="22" type="stmt" count="1"/>
      <line num="23" type="stmt" count="1"/>
      <line num="24" type="stmt" count="1"/>
      <line num="28" type="stmt" count="0"/>
      <line num="37" type="method" name="getBaseUrl" visibility="public" complexity="4" crap="4.10" count="4"/>
      <line num="38" type="stmt" count="4"/>
      <line num="40" type="stmt" count="4"/>
      <line num="41" type="stmt" count="0"/>
      <line num="44" type="stmt" count="4"/>
      <line num="45" type="stmt" count="4"/>
      <line num="46" type="stmt" count="4"/>
      <line num="47" type="stmt" count="0"/>
      <line num="49" type="stmt" count="4"/>
      <line num="50" type="stmt" count="4"/>
      <line num="51" type="stmt" count="1"/>
      <line num="53" type="stmt" count="4"/>
      <metrics loc="56" ncloc="43" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="15" elements="20" coveredelements="15"/>
    </file>
    <file name="/workspace/src/extensions/MassMessage/maintenance/sendMessages.php">
      <class name="MediaWiki\MassMessage\SendMessages" namespace="global">
        <metrics complexity="12" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="47" coveredstatements="0" elements="49" coveredelements="0"/>
      </class>
      <line num="25" type="method" name="__construct" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="26" type="stmt" count="0"/>
      <line num="27" type="stmt" count="0"/>
      <line num="28" type="stmt" count="0"/>
      <line num="29" type="stmt" count="0"/>
      <line num="30" type="stmt" count="0"/>
      <line num="33" type="method" name="execute" visibility="public" complexity="11" crap="132" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="36" type="stmt" count="0"/>
      <line num="37" type="stmt" count="0"/>
      <line num="38" type="stmt" count="0"/>
      <line num="39" type="stmt" count="0"/>
      <line num="43" type="stmt" count="0"/>
      <line num="44" type="stmt" count="0"/>
      <line num="45" type="stmt" count="0"/>
      <line num="46" type="stmt" count="0"/>
      <line num="47" type="stmt" count="0"/>
      <line num="49" type="stmt" count="0"/>
      <line num="52" 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="64" type="stmt" count="0"/>
      <line num="67" type="stmt" count="0"/>
      <line num="68" type="stmt" count="0"/>
      <line num="70" 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="78" type="stmt" count="0"/>
      <line num="79" 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="87" type="stmt" count="0"/>
      <line num="90" type="stmt" count="0"/>
      <line num="91" 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="98" type="stmt" count="0"/>
      <line num="99" type="stmt" count="0"/>
      <line num="100" type="stmt" count="0"/>
      <metrics loc="108" ncloc="94" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="47" coveredstatements="0" elements="49" coveredelements="0"/>
    </file>
    <metrics files="41" loc="5989" ncloc="4642" classes="39" methods="221" coveredmethods="49" conditionals="0" coveredconditionals="0" statements="2392" coveredstatements="854" elements="2613" coveredelements="903"/>
  </project>
</coverage>
