Coverage report: 89%

Files Functions Classes

coverage.py v7.12.0, created at 2025-11-24 15:39 +0000

      Statements   Branches   Total
File class   coverage statements missing excluded   coverage branches partial   coverage
 / home / runner / work / tket / tket / pytket / pytket / __init__.py (no class)   87% 15 2 0   50% 2 1   82%
 / home / runner / work / tket / tket / pytket / pytket / _tket / __init__.py (no class)   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / _version.py (no class)   100% 13 0 5   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / architecture / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / __init__.py (no class)   100% 5 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / backend.py ResultHandleTypeError   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / backend.py Backend   67% 90 30 9   79% 28 4   69%
 / home / runner / work / tket / tket / pytket / pytket / backends / backend.py (no class)   100% 92 0 29   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / backend_exceptions.py CircuitNotValidError   0% 3 3 0   0% 2 0   0%
 / home / runner / work / tket / tket / pytket / pytket / backends / backend_exceptions.py CircuitNotRunError   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / backend_exceptions.py InvalidResultType   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / backend_exceptions.py (no class)   100% 7 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / backendinfo.py BackendInfo   97% 33 1 0   90% 10 1   95%
 / home / runner / work / tket / tket / pytket / pytket / backends / backendinfo.py (no class)   100% 83 0 0   100% 24 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / backendresult.py StoredResult   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / backendresult.py BackendResult   89% 219 24 0   86% 134 9   88%
 / home / runner / work / tket / tket / pytket / pytket / backends / backendresult.py (no class)   100% 59 0 0   100% 2 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / resulthandle.py ResultHandle   79% 19 4 2   50% 6 1   72%
 / home / runner / work / tket / tket / pytket / pytket / backends / resulthandle.py (no class)   100% 16 0 4   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / status.py StatusEnum   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / backends / status.py CircuitStatus   97% 35 1 0   94% 18 1   96%
 / home / runner / work / tket / tket / pytket / pytket / backends / status.py (no class)   100% 27 0 2   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / __init__.py (no class)   99% 76 1 0   90% 40 4   96%
 / home / runner / work / tket / tket / pytket / pytket / circuit / add_condition.py NonConstError   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / add_condition.py (no class)   96% 56 2 0   88% 26 3   94%
 / home / runner / work / tket / tket / pytket / pytket / circuit / clexpr.py _ExpressionConverter   100% 12 0 0   100% 8 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / clexpr.py (no class)   84% 86 14 0   75% 60 11   80%
 / home / runner / work / tket / tket / pytket / pytket / circuit / decompose_classical.py DecomposeClassicalError   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / decompose_classical.py VarHeap   86% 7 1 0   100% 0 0   86%
 / home / runner / work / tket / tket / pytket / pytket / circuit / decompose_classical.py BitHeap   100% 8 0 0   100% 2 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / decompose_classical.py RegHeap   100% 8 0 0   100% 2 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / decompose_classical.py _ClExprDecomposer   86% 74 10 0   86% 44 6   86%
 / home / runner / work / tket / tket / pytket / pytket / circuit / decompose_classical.py (no class)   82% 116 21 0   71% 42 6   79%
 / home / runner / work / tket / tket / pytket / pytket / circuit / display / __init__.py IncludeRawExtension   86% 7 1 0   50% 2 1   78%
 / home / runner / work / tket / tket / pytket / pytket / circuit / display / __init__.py RenderOptions   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / display / __init__.py CircuitDisplayConfig   100% 3 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / display / __init__.py CircuitRenderer   54% 28 13 0   70% 10 3   58%
 / home / runner / work / tket / tket / pytket / pytket / circuit / display / __init__.py (no class)   100% 64 0 0   50% 2 1   98%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py BitWiseOp   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegWiseOp   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py LogicExp   84% 134 22 0   81% 118 8   83%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py BitLogicExp   50% 6 3 0   100% 0 0   50%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegLogicExp   23% 13 10 0   100% 0 0   23%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py BinaryOp   0% 1 1 0   100% 0 0   0%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py UnaryOp   0% 1 1 0   100% 0 0   0%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py NullaryOp   0% 1 1 0   100% 0 0   0%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py And   100% 5 0 0   100% 2 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py Or   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py Xor   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py BitAnd   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py BitOr   83% 6 1 0   50% 2 1   75%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py BitXor   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py BitNot   100% 3 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py BitZero   100% 3 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py BitOne   100% 3 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegAnd   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegOr   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegXor   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegAdd   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegSub   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegMul   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegDiv   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegPow   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegLsh   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegNeg   0% 2 2 0   100% 0 0   0%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegNot   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegRsh   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py PredicateExp   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py Eq   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py Neq   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py BitEq   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py BitNeq   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegEq   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegNeq   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegLt   100% 3 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegGt   67% 3 1 0   100% 0 0   67%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegLeq   100% 3 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py RegGeq   100% 3 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit / logic_exp.py (no class)   98% 330 6 0   91% 78 5   97%
 / home / runner / work / tket / tket / pytket / pytket / circuit / named_types.py (no class)   100% 20 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / circuit_library / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / config / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / config / pytket_config.py PytketConfig   89% 9 1 0   100% 0 0   89%
 / home / runner / work / tket / tket / pytket / pytket / config / pytket_config.py PytketExtConfig   100% 9 0 1   100% 2 0   100%
 / home / runner / work / tket / tket / pytket / pytket / config / pytket_config.py (no class)   97% 38 1 1   50% 2 1   95%
 / home / runner / work / tket / tket / pytket / pytket / logging / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / mapping / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / partition / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / passes / __init__.py (no class)   100% 4 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / passes / passselector.py PassSelector   100% 17 0 0   100% 4 0   100%
 / home / runner / work / tket / tket / pytket / pytket / passes / passselector.py (no class)   100% 7 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / passes / resizeregpass.py (no class)   100% 20 0 0   100% 4 0   100%
 / home / runner / work / tket / tket / pytket / pytket / passes / script.py _PassTransformer   48% 66 34 0   100% 0 0   48%
 / home / runner / work / tket / tket / pytket / pytket / passes / script.py (no class)   100% 71 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / pauli / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / placement / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / predicates / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / __init__.py (no class)   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / grammar.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / includes / _hqslib1_decls.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / includes / _hqslib1_defs.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / includes / _hqslib1_dev_decls.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / includes / _hqslib1_dev_defs.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / includes / _qelib1_decls.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / includes / _qelib1_defs.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / includes / load_includes.py (no class)   81% 32 6 0   50% 6 1   76%
 / home / runner / work / tket / tket / pytket / pytket / qasm / qasm.py QASMParseError   100% 6 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / qasm.py QASMUnsupportedError   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / qasm.py _ParsMap   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / qasm.py _CircuitTransformer   89% 292 33 0   84% 128 8   87%
 / home / runner / work / tket / tket / pytket / pytket / qasm / qasm.py _ConditionString   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / qasm.py _LabelledStringList   100% 16 0 0   100% 4 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / qasm.py _ScratchPredicate   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / qasm / qasm.py _QasmWriter   96% 391 15 0   92% 178 15   95%
 / home / runner / work / tket / tket / pytket / pytket / qasm / qasm.py (no class)   96% 392 15 0   86% 94 13   94%
 / home / runner / work / tket / tket / pytket / pytket / quipper / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _Wire   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _ControlWire   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _Control   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _TypeAssignment_Type   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _TypeAssignment   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _Gate   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _QGate_Op   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _QGate   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _QRot_Op   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _QRot   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _QInit   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _CInit   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _QTerm   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _CTerm   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _QMeas   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _QDiscard   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _CDiscard   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _SubroutineCall   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _Comment   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _Program   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _Subroutine_Control   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _Subroutine   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _Start   100% 0 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _QuipperTransformer   81% 74 14 0   95% 38 2   86%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py _CircuitMaker   73% 198 54 0   70% 152 24   71%
 / home / runner / work / tket / tket / pytket / pytket / quipper / quipper.py (no class)   100% 123 0 0   100% 4 0   100%
 / home / runner / work / tket / tket / pytket / pytket / tableau / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / tailoring / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / transform / __init__.py (no class)   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / unit_id / __init__.py (no class)   100% 52 0 0   100% 4 0   100%
 / home / runner / work / tket / tket / pytket / pytket / utils / __init__.py (no class)   100% 11 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / utils / distribution.py EmpiricalDistribution   88% 24 3 0   67% 6 2   83%
 / home / runner / work / tket / tket / pytket / pytket / utils / distribution.py ProbabilityDistribution   90% 40 4 0   75% 16 4   86%
 / home / runner / work / tket / tket / pytket / pytket / utils / distribution.py (no class)   96% 52 2 0   75% 8 2   93%
 / home / runner / work / tket / tket / pytket / pytket / utils / expectations.py (no class)   86% 111 15 2   79% 52 7   84%
 / home / runner / work / tket / tket / pytket / pytket / utils / graph.py Graph   88% 152 18 0   90% 58 6   89%
 / home / runner / work / tket / tket / pytket / pytket / utils / graph.py (no class)   100% 15 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / utils / measurements.py (no class)   100% 25 0 0   100% 14 0   100%
 / home / runner / work / tket / tket / pytket / pytket / utils / operators.py QubitPauliOperator   90% 94 9 0   90% 48 5   90%
 / home / runner / work / tket / tket / pytket / pytket / utils / operators.py (no class)   98% 50 1 2   88% 8 1   97%
 / home / runner / work / tket / tket / pytket / pytket / utils / outcomearray.py OutcomeArray   91% 43 4 0   67% 12 4   85%
 / home / runner / work / tket / tket / pytket / pytket / utils / outcomearray.py (no class)   100% 30 0 3   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / utils / prepare.py (no class)   100% 9 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / utils / results.py BitPermuter   89% 18 2 0   80% 10 2   86%
 / home / runner / work / tket / tket / pytket / pytket / utils / results.py (no class)   89% 63 7 0   100% 4 0   90%
 / home / runner / work / tket / tket / pytket / pytket / utils / serialization / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / utils / serialization / migration.py (no class)   95% 100 5 0   88% 32 4   93%
 / home / runner / work / tket / tket / pytket / pytket / utils / spam.py SpamCorrecter   90% 120 12 0   85% 52 4   88%
 / home / runner / work / tket / tket / pytket / pytket / utils / spam.py (no class)   96% 101 4 0   94% 32 2   95%
 / home / runner / work / tket / tket / pytket / pytket / utils / stats.py (no class)   100% 4 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / utils / symbolic.py SymGateRegister   50% 4 2 0   0% 2 0   33%
 / home / runner / work / tket / tket / pytket / pytket / utils / symbolic.py (no class)   74% 162 42 0   81% 16 3   75%
 / home / runner / work / tket / tket / pytket / pytket / utils / term_sequence.py (no class)   100% 29 0 2   100% 8 0   100%
 / home / runner / work / tket / tket / pytket / pytket / wasm / __init__.py (no class)   100% 2 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / wasm / wasm.py WasmModuleHandler   87% 93 12 0   86% 66 9   87%
 / home / runner / work / tket / tket / pytket / pytket / wasm / wasm.py WasmFileHandler   100% 5 0 0   100% 2 0   100%
 / home / runner / work / tket / tket / pytket / pytket / wasm / wasm.py (no class)   100% 38 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / zx / __init__.py (no class)   100% 1 0 0   100% 0 0   100%
 / home / runner / work / tket / tket / pytket / pytket / zx / tensor_eval.py (no class)   97% 211 6 0   95% 78 4   97%
Total     91% 5292 497 62   85% 1808 189   89%

No items found using the specified filter.