diff --git a/BROWSER_README.md b/BROWSER_README.md new file mode 100644 index 0000000..f102d68 --- /dev/null +++ b/BROWSER_README.md @@ -0,0 +1,143 @@ +# pyWebLayout HTML Browser + +A simple HTML browser built using the pyWebLayout library components from `pyWebLayout/io/` and `pyWebLayout/concrete/`. + +## Features + +This browser demonstrates the capabilities of pyWebLayout by implementing: + +### Rendering Components +- **Text rendering** with various formatting (bold, italic, underline) +- **Headers** (H1-H6) with proper sizing and styling +- **Links** (clickable, with external browser opening for external URLs) +- **Images** (local files and web URLs with error handling) +- **Layout containers** for proper element positioning +- **Basic HTML parsing** and element conversion + +### User Interface +- **Navigation controls**: Back, Forward, Refresh buttons +- **Address bar**: Enter URLs or file paths +- **File browser**: Open local HTML files +- **Scrollable content area** with both vertical and horizontal scrollbars +- **Mouse interaction**: Clickable links with hover effects +- **Status bar**: Shows current operation status + +## Usage + +### Starting the Browser +```bash +python html_browser.py +``` + +### Loading Content + +1. **Load the test page**: The browser starts with a welcome page showing various features +2. **Open local files**: Click "Open File" to browse and select HTML files +3. **Enter URLs**: Type URLs in the address bar and press Enter or click "Go" +4. **Navigate**: Use back/forward buttons to navigate through history + +### Test Files + +- `test_page.html` - A comprehensive test page demonstrating all supported features including: + - Text formatting (bold, italic, underline) + - Headers of all levels (H1-H6) + - Links (both internal and external) + - Images (includes the sample image from tests/data/) + - Line breaks and paragraphs + +## Architecture + +### HTML Parser (`HTMLParser` class) +- Simple regex-based HTML tokenizer +- Converts HTML elements to pyWebLayout abstract objects +- Handles font styling with a font stack for nested formatting +- Supports basic HTML tags: h1-h6, b, strong, i, em, u, a, img, br, p, div, span + +### Browser Window (`BrowserWindow` class) +- Tkinter-based GUI with navigation controls +- Canvas-based rendering of pyWebLayout Page objects +- Mouse event handling for interactive elements +- Navigation history management +- File and URL loading capabilities + +### pyWebLayout Integration + +The browser uses these pyWebLayout components: + +#### From `pyWebLayout/concrete/`: +- `Page` - Top-level container for web page content +- `Container` - Layout management for multiple elements +- `Box` - Basic rectangular container with positioning +- `Text` - Text rendering with font styling +- `RenderableImage` - Image loading and display with scaling +- `RenderableLink` - Interactive link elements +- `RenderableButton` - Interactive button elements + +#### From `pyWebLayout/abstract/`: +- `Link` - Abstract link representation with types (internal, external, API, function) +- `Image` - Abstract image representation with dimensions and loading +- Font and styling classes for text appearance + +#### From `pyWebLayout/style/`: +- `Font` - Font management with size, weight, style, and decoration +- `FontWeight`, `FontStyle`, `TextDecoration` - Typography enums +- `Alignment` - Layout positioning options + +## Supported HTML Features + +### Text Elements +- `

` to `

` - Headers with appropriate sizing +- `

` - Paragraphs with spacing +- ``, `` - Bold text +- ``, `` - Italic text +- `` - Underlined text +- `
` - Line breaks + +### Interactive Elements +- `` - Links (opens external URLs in system browser) + +### Media Elements +- `...` - Images with scaling + +### Container Elements +- `

`, `` - Generic containers (parsed but not specially styled) + +## Example Usage + +```python +# Start the browser +from html_browser import BrowserWindow + +browser = BrowserWindow() +browser.run() +``` + +## Limitations + +This is a demonstration browser with simplified HTML parsing: +- No CSS support (styling is done through pyWebLayout components) +- No JavaScript execution +- Limited HTML tag support +- No form submission (forms can be rendered but not submitted) +- No advanced layout features (flexbox, grid, etc.) + +## Dependencies + +- `tkinter` - GUI framework (usually included with Python) +- `PIL` (Pillow) - Image processing +- `requests` - HTTP requests for web URLs +- `pyWebLayout` - The core layout and rendering library + +## Testing + +Load `test_page.html` to see all supported features in action: +1. Run the browser: `python html_browser.py` +2. Click "Open File" and select `test_page.html` +3. Explore the different text formatting, links, and image rendering + +The test page includes: +- Various header levels +- Text formatting examples +- Clickable links (try the Google link!) +- A sample image from the test data +- Mixed content demonstrations diff --git a/coverage-docs.svg b/coverage-docs.svg index 4ed4f3a..255d17c 100644 --- a/coverage-docs.svg +++ b/coverage-docs.svg @@ -1,5 +1,5 @@ - interrogate: 94.6% + interrogate: 92.0% @@ -12,8 +12,8 @@ interrogate interrogate - 94.6% - 94.6% + 92.0% + 92.0% diff --git a/coverage-summary.txt b/coverage-summary.txt index e66d0d5..11378e3 100644 --- a/coverage-summary.txt +++ b/coverage-summary.txt @@ -1 +1 @@ -41.1% \ No newline at end of file +57.0% \ No newline at end of file diff --git a/coverage.json b/coverage.json index d2284ba..65a7a62 100644 --- a/coverage.json +++ b/coverage.json @@ -1 +1 @@ -{"meta": {"format": 3, "version": "7.8.2", "timestamp": "2025-06-07T18:31:10.155161", "branch_coverage": true, "show_contexts": false}, "files": {"pyWebLayout/__init__.py": {"executed_lines": [1, 11, 14, 17, 20, 27, 30, 31, 32, 35, 39], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 11, 14, 17, 20, 27, 30, 31, 32, 35, 39], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 11, 14, 17, 20, 27, 30, 31, 32, 35, 39], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/abstract/__init__.py": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/abstract/block.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 33, 40, 41, 43, 44, 46, 48, 49, 51, 53, 54, 56, 59, 60, 64, 71, 72, 73, 74, 76, 77, 109, 110, 114, 115, 119, 126, 128, 145, 154, 167, 174, 175, 177, 187, 188, 190, 192, 194, 197, 198, 199, 200, 201, 202, 203, 204, 207, 208, 213, 221, 222, 223, 225, 226, 259, 260, 262, 264, 265, 267, 270, 271, 275, 282, 283, 284, 286, 287, 319, 320, 324, 325, 329, 336, 337, 339, 351, 364, 371, 372, 375, 376, 380, 387, 388, 389, 391, 392, 417, 418, 420, 422, 423, 425, 427, 434, 436, 443, 444, 446, 447, 449, 452, 453, 454, 455, 456, 459, 460, 464, 472, 473, 474, 475, 477, 478, 511, 512, 514, 516, 517, 519, 521, 522, 526, 527, 531, 538, 539, 541, 554, 561, 562, 564, 565, 567, 570, 571, 575, 583, 584, 585, 586, 588, 589, 622, 623, 625, 627, 628, 630, 632, 633, 637, 638, 642, 649, 650, 652, 664, 677, 684, 685, 688, 689, 693, 703, 704, 705, 706, 707, 708, 710, 711, 745, 746, 748, 750, 751, 755, 756, 758, 760, 761, 765, 766, 768, 770, 771, 775, 776, 780, 781, 785, 792, 793, 795, 807, 820, 831, 832, 836, 843, 844, 845, 847, 848, 879, 880, 884, 885, 889, 896, 897, 899, 914, 924, 925, 927, 930, 931, 935, 943, 944, 945, 946, 947, 948, 950, 951, 984, 985, 987, 989, 990, 994, 995, 999, 1000, 1004, 1012, 1014, 1015, 1016, 1017, 1019, 1021, 1034, 1041, 1042, 1044, 1051, 1052, 1054, 1061, 1062, 1064, 1071, 1072, 1073, 1074, 1075, 1076, 1078, 1079, 1081, 1089, 1090, 1094, 1104, 1105, 1106, 1107, 1108, 1110, 1111, 1140, 1141, 1143, 1145, 1146, 1148, 1150, 1151, 1153, 1155, 1156, 1158, 1160, 1161, 1163, 1165, 1166, 1168, 1170, 1171, 1173, 1175, 1176, 1178, 1180, 1187, 1189, 1196, 1197, 1198, 1200, 1212, 1215, 1218, 1219, 1220, 1222, 1226, 1228, 1238, 1239, 1241, 1255, 1257, 1259, 1261, 1262, 1264, 1265, 1267, 1268, 1271, 1272, 1275, 1277, 1288, 1289, 1291, 1292, 1294, 1295, 1297, 1298, 1301, 1304, 1306, 1309, 1310, 1313, 1315, 1317, 1322, 1324, 1332, 1334, 1335, 1338, 1339, 1341, 1352, 1353, 1354, 1357, 1358, 1359, 1361, 1370, 1371, 1374, 1375, 1376, 1380, 1383, 1384, 1388, 1390, 1392, 1393], "summary": {"covered_lines": 384, "num_statements": 516, "percent_covered": 68.84984025559105, "percent_covered_display": "69", "missing_lines": 132, "excluded_lines": 123, "num_branches": 110, "num_partial_branches": 7, "covered_branches": 47, "missing_branches": 63}, "missing_lines": [93, 94, 95, 96, 99, 102, 103, 105, 107, 112, 117, 143, 152, 165, 184, 185, 243, 244, 245, 246, 249, 252, 253, 255, 257, 303, 304, 305, 306, 309, 312, 313, 315, 317, 322, 327, 349, 362, 407, 410, 411, 413, 415, 495, 496, 497, 498, 501, 504, 505, 507, 509, 524, 529, 552, 606, 607, 608, 609, 612, 615, 616, 618, 620, 635, 640, 662, 675, 731, 732, 735, 738, 739, 741, 743, 753, 763, 773, 778, 783, 805, 818, 827, 828, 865, 866, 869, 872, 873, 875, 877, 882, 887, 912, 921, 922, 968, 969, 970, 971, 974, 977, 978, 980, 982, 992, 997, 1002, 1032, 1130, 1133, 1134, 1136, 1138, 1213, 1223, 1224, 1269, 1270, 1273, 1274, 1318, 1319, 1320, 1321, 1377, 1378, 1407, 1410, 1411, 1413, 1415], "excluded_lines": [12, 28, 34, 45, 50, 55, 60, 65, 78, 111, 116, 120, 129, 146, 155, 168, 178, 189, 198, 208, 214, 227, 261, 266, 271, 276, 288, 321, 326, 330, 340, 352, 365, 376, 381, 393, 419, 424, 428, 437, 448, 453, 460, 465, 479, 513, 518, 523, 528, 532, 542, 555, 566, 571, 576, 590, 624, 629, 634, 639, 643, 653, 665, 678, 689, 694, 713, 747, 752, 757, 762, 767, 772, 777, 782, 786, 796, 808, 821, 832, 837, 849, 881, 886, 890, 900, 915, 926, 931, 936, 952, 986, 991, 996, 1001, 1005, 1022, 1035, 1045, 1055, 1065, 1080, 1090, 1095, 1113, 1142, 1147, 1152, 1157, 1162, 1167, 1172, 1177, 1181, 1190, 1202, 1229, 1242, 1278, 1325, 1384, 1389, 1394], "executed_branches": [[174, -167], [174, 175], [371, -364], [371, 372], [443, -436], [443, 444], [561, -554], [561, 562], [684, -677], [684, 685], [1014, 1015], [1014, 1016], [1016, 1017], [1016, 1019], [1041, -1034], [1041, 1042], [1051, -1044], [1051, 1052], [1061, -1054], [1061, 1062], [1071, 1072], [1071, 1073], [1073, 1074], [1073, 1075], [1075, -1064], [1075, 1076], [1196, 1197], [1196, 1198], [1212, 1215], [1218, 1219], [1222, 1226], [1288, 1289], [1288, 1291], [1295, 1297], [1295, 1301], [1309, 1310], [1309, 1313], [1317, 1322], [1334, 1335], [1334, 1338], [1339, 1341], [1352, 1353], [1357, 1358], [1357, 1361], [1370, 1371], [1374, 1375], [1374, 1380]], "missing_branches": [[93, 94], [93, 95], [95, 96], [95, 99], [102, 103], [102, 105], [184, -177], [184, 185], [243, 244], [243, 245], [245, 246], [245, 249], [252, 253], [252, 255], [303, 304], [303, 305], [305, 306], [305, 309], [312, 313], [312, 315], [410, 411], [410, 413], [495, 496], [495, 497], [497, 498], [497, 501], [504, 505], [504, 507], [606, 607], [606, 608], [608, 609], [608, 612], [615, 616], [615, 618], [731, 732], [731, 735], [738, 739], [738, 741], [827, -820], [827, 828], [865, 866], [865, 869], [872, 873], [872, 875], [921, -914], [921, 922], [968, 969], [968, 970], [970, 971], [970, 974], [977, 978], [977, 980], [1133, 1134], [1133, 1136], [1212, 1213], [1218, 1222], [1222, 1223], [1317, 1318], [1339, 1361], [1352, 1357], [1370, 1374], [1410, 1411], [1410, 1413]], "functions": {"Block.__init__": {"executed_lines": [40, 41], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [34], "executed_branches": [], "missing_branches": []}, "Block.block_type": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [45], "executed_branches": [], "missing_branches": []}, "Block.parent": {"executed_lines": [56], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [55], "executed_branches": [], "missing_branches": []}, "Paragraph.__init__": {"executed_lines": [71, 72, 73, 74], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [65], "executed_branches": [], "missing_branches": []}, "Paragraph.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [93, 94, 95, 96, 99, 102, 103, 105, 107], "excluded_lines": [78], "executed_branches": [], "missing_branches": [[93, 94], [93, 95], [95, 96], [95, 99], [102, 103], [102, 105]]}, "Paragraph.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [117], "excluded_lines": [116], "executed_branches": [], "missing_branches": []}, "Paragraph.add_word": {"executed_lines": [126], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [120], "executed_branches": [], "missing_branches": []}, "Paragraph.create_word": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [143], "excluded_lines": [129], "executed_branches": [], "missing_branches": []}, "Paragraph.add_span": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [152], "excluded_lines": [146], "executed_branches": [], "missing_branches": []}, "Paragraph.create_span": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [165], "excluded_lines": [155], "executed_branches": [], "missing_branches": []}, "Paragraph.words": {"executed_lines": [174, 175], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [168], "executed_branches": [[174, -167], [174, 175]], "missing_branches": []}, "Paragraph.spans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [184, 185], "excluded_lines": [178], "executed_branches": [], "missing_branches": [[184, -177], [184, 185]]}, "Paragraph.word_count": {"executed_lines": [190], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [189], "executed_branches": [], "missing_branches": []}, "Paragraph.__len__": {"executed_lines": [194], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Heading.__init__": {"executed_lines": [221, 222, 223], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [214], "executed_branches": [], "missing_branches": []}, "Heading.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [243, 244, 245, 246, 249, 252, 253, 255, 257], "excluded_lines": [227], "executed_branches": [], "missing_branches": [[243, 244], [243, 245], [245, 246], [245, 249], [252, 253], [252, 255]]}, "Heading.level": {"executed_lines": [267], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [266], "executed_branches": [], "missing_branches": []}, "Quote.__init__": {"executed_lines": [282, 283, 284], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [276], "executed_branches": [], "missing_branches": []}, "Quote.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [303, 304, 305, 306, 309, 312, 313, 315, 317], "excluded_lines": [288], "executed_branches": [], "missing_branches": [[303, 304], [303, 305], [305, 306], [305, 309], [312, 313], [312, 315]]}, "Quote.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [327], "excluded_lines": [326], "executed_branches": [], "missing_branches": []}, "Quote.add_block": {"executed_lines": [336, 337], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [330], "executed_branches": [], "missing_branches": []}, "Quote.create_paragraph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [349], "excluded_lines": [340], "executed_branches": [], "missing_branches": []}, "Quote.create_heading": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [362], "excluded_lines": [352], "executed_branches": [], "missing_branches": []}, "Quote.blocks": {"executed_lines": [371, 372], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [365], "executed_branches": [[371, -364], [371, 372]], "missing_branches": []}, "CodeBlock.__init__": {"executed_lines": [387, 388, 389], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [381], "executed_branches": [], "missing_branches": []}, "CodeBlock.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [407, 410, 411, 413, 415], "excluded_lines": [393], "executed_branches": [], "missing_branches": [[410, 411], [410, 413]]}, "CodeBlock.language": {"executed_lines": [425], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [424], "executed_branches": [], "missing_branches": []}, "CodeBlock.add_line": {"executed_lines": [434], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [428], "executed_branches": [], "missing_branches": []}, "CodeBlock.lines": {"executed_lines": [443, 444], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [437], "executed_branches": [[443, -436], [443, 444]], "missing_branches": []}, "CodeBlock.line_count": {"executed_lines": [449], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [448], "executed_branches": [], "missing_branches": []}, "HList.__init__": {"executed_lines": [472, 473, 474, 475], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [465], "executed_branches": [], "missing_branches": []}, "HList.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [495, 496, 497, 498, 501, 504, 505, 507, 509], "excluded_lines": [479], "executed_branches": [], "missing_branches": [[495, 496], [495, 497], [497, 498], [497, 501], [504, 505], [504, 507]]}, "HList.style": {"executed_lines": [519], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [518], "executed_branches": [], "missing_branches": []}, "HList.default_style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [529], "excluded_lines": [528], "executed_branches": [], "missing_branches": []}, "HList.add_item": {"executed_lines": [538, 539], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [532], "executed_branches": [], "missing_branches": []}, "HList.create_item": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [552], "excluded_lines": [542], "executed_branches": [], "missing_branches": []}, "HList.items": {"executed_lines": [561, 562], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [555], "executed_branches": [[561, -554], [561, 562]], "missing_branches": []}, "HList.item_count": {"executed_lines": [567], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [566], "executed_branches": [], "missing_branches": []}, "ListItem.__init__": {"executed_lines": [583, 584, 585, 586], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [576], "executed_branches": [], "missing_branches": []}, "ListItem.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [606, 607, 608, 609, 612, 615, 616, 618, 620], "excluded_lines": [590], "executed_branches": [], "missing_branches": [[606, 607], [606, 608], [608, 609], [608, 612], [615, 616], [615, 618]]}, "ListItem.term": {"executed_lines": [630], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [629], "executed_branches": [], "missing_branches": []}, "ListItem.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [640], "excluded_lines": [639], "executed_branches": [], "missing_branches": []}, "ListItem.add_block": {"executed_lines": [649, 650], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [643], "executed_branches": [], "missing_branches": []}, "ListItem.create_paragraph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [662], "excluded_lines": [653], "executed_branches": [], "missing_branches": []}, "ListItem.create_heading": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [675], "excluded_lines": [665], "executed_branches": [], "missing_branches": []}, "ListItem.blocks": {"executed_lines": [684, 685], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [678], "executed_branches": [[684, -677], [684, 685]], "missing_branches": []}, "TableCell.__init__": {"executed_lines": [703, 704, 705, 706, 707, 708], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [694], "executed_branches": [], "missing_branches": []}, "TableCell.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [731, 732, 735, 738, 739, 741, 743], "excluded_lines": [713], "executed_branches": [], "missing_branches": [[731, 732], [731, 735], [738, 739], [738, 741]]}, "TableCell.is_header": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [753], "excluded_lines": [752], "executed_branches": [], "missing_branches": []}, "TableCell.colspan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [763], "excluded_lines": [762], "executed_branches": [], "missing_branches": []}, "TableCell.rowspan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [773], "excluded_lines": [772], "executed_branches": [], "missing_branches": []}, "TableCell.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [783], "excluded_lines": [782], "executed_branches": [], "missing_branches": []}, "TableCell.add_block": {"executed_lines": [792, 793], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [786], "executed_branches": [], "missing_branches": []}, "TableCell.create_paragraph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [805], "excluded_lines": [796], "executed_branches": [], "missing_branches": []}, "TableCell.create_heading": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [818], "excluded_lines": [808], "executed_branches": [], "missing_branches": []}, "TableCell.blocks": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [827, 828], "excluded_lines": [821], "executed_branches": [], "missing_branches": [[827, -820], [827, 828]]}, "TableRow.__init__": {"executed_lines": [843, 844, 845], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [837], "executed_branches": [], "missing_branches": []}, "TableRow.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [865, 866, 869, 872, 873, 875, 877], "excluded_lines": [849], "executed_branches": [], "missing_branches": [[865, 866], [865, 869], [872, 873], [872, 875]]}, "TableRow.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [887], "excluded_lines": [886], "executed_branches": [], "missing_branches": []}, "TableRow.add_cell": {"executed_lines": [896, 897], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [890], "executed_branches": [], "missing_branches": []}, "TableRow.create_cell": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [912], "excluded_lines": [900], "executed_branches": [], "missing_branches": []}, "TableRow.cells": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [921, 922], "excluded_lines": [915], "executed_branches": [], "missing_branches": [[921, -914], [921, 922]]}, "TableRow.cell_count": {"executed_lines": [927], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [926], "executed_branches": [], "missing_branches": []}, "Table.__init__": {"executed_lines": [943, 944, 945, 946, 947, 948], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [936], "executed_branches": [], "missing_branches": []}, "Table.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [968, 969, 970, 971, 974, 977, 978, 980, 982], "excluded_lines": [952], "executed_branches": [], "missing_branches": [[968, 969], [968, 970], [970, 971], [970, 974], [977, 978], [977, 980]]}, "Table.caption": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [992], "excluded_lines": [991], "executed_branches": [], "missing_branches": []}, "Table.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [1002], "excluded_lines": [1001], "executed_branches": [], "missing_branches": []}, "Table.add_row": {"executed_lines": [1012, 1014, 1015, 1016, 1017, 1019], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1005], "executed_branches": [[1014, 1015], [1014, 1016], [1016, 1017], [1016, 1019]], "missing_branches": []}, "Table.create_row": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [1032], "excluded_lines": [1022], "executed_branches": [], "missing_branches": []}, "Table.header_rows": {"executed_lines": [1041, 1042], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1035], "executed_branches": [[1041, -1034], [1041, 1042]], "missing_branches": []}, "Table.body_rows": {"executed_lines": [1051, 1052], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1045], "executed_branches": [[1051, -1044], [1051, 1052]], "missing_branches": []}, "Table.footer_rows": {"executed_lines": [1061, 1062], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1055], "executed_branches": [[1061, -1054], [1061, 1062]], "missing_branches": []}, "Table.all_rows": {"executed_lines": [1071, 1072, 1073, 1074, 1075, 1076], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1065], "executed_branches": [[1071, 1072], [1071, 1073], [1073, 1074], [1073, 1075], [1075, -1064], [1075, 1076]], "missing_branches": []}, "Table.row_count": {"executed_lines": [1081], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1080], "executed_branches": [], "missing_branches": []}, "Image.__init__": {"executed_lines": [1104, 1105, 1106, 1107, 1108], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1095], "executed_branches": [], "missing_branches": []}, "Image.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [1130, 1133, 1134, 1136, 1138], "excluded_lines": [1113], "executed_branches": [], "missing_branches": [[1133, 1134], [1133, 1136]]}, "Image.source": {"executed_lines": [1148], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1147], "executed_branches": [], "missing_branches": []}, "Image.alt_text": {"executed_lines": [1158], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1157], "executed_branches": [], "missing_branches": []}, "Image.width": {"executed_lines": [1168], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1167], "executed_branches": [], "missing_branches": []}, "Image.height": {"executed_lines": [1178], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1177], "executed_branches": [], "missing_branches": []}, "Image.get_dimensions": {"executed_lines": [1187], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1181], "executed_branches": [], "missing_branches": []}, "Image.get_aspect_ratio": {"executed_lines": [1196, 1197, 1198], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1190], "executed_branches": [[1196, 1197], [1196, 1198]], "missing_branches": []}, "Image.calculate_scaled_dimensions": {"executed_lines": [1212, 1215, 1218, 1219, 1220, 1222, 1226], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 3, "covered_branches": 3, "missing_branches": 3}, "missing_lines": [1213, 1223, 1224], "excluded_lines": [1202], "executed_branches": [[1212, 1215], [1218, 1219], [1222, 1226]], "missing_branches": [[1212, 1213], [1218, 1222], [1222, 1223]]}, "Image._is_url": {"executed_lines": [1238, 1239], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1229], "executed_branches": [], "missing_branches": []}, "Image._download_to_temp": {"executed_lines": [1255, 1257, 1259, 1261, 1262, 1264, 1265, 1267, 1268, 1271, 1272, 1275], "summary": {"covered_lines": 12, "num_statements": 16, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 4, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [1269, 1270, 1273, 1274], "excluded_lines": [1242], "executed_branches": [], "missing_branches": []}, "Image.load_image_data": {"executed_lines": [1288, 1289, 1291, 1292, 1294, 1295, 1297, 1298, 1301, 1304, 1306, 1309, 1310, 1313, 1315, 1317, 1322], "summary": {"covered_lines": 17, "num_statements": 21, "percent_covered": 82.75862068965517, "percent_covered_display": "83", "missing_lines": 4, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 1, "covered_branches": 7, "missing_branches": 1}, "missing_lines": [1318, 1319, 1320, 1321], "excluded_lines": [1278], "executed_branches": [[1288, 1289], [1288, 1291], [1295, 1297], [1295, 1301], [1309, 1310], [1309, 1313], [1317, 1322]], "missing_branches": [[1317, 1318]]}, "Image.get_image_info": {"executed_lines": [1332, 1334, 1335, 1338, 1339, 1341, 1352, 1353, 1354, 1357, 1358, 1359, 1361, 1370, 1371, 1374, 1375, 1376, 1380], "summary": {"covered_lines": 19, "num_statements": 21, "percent_covered": 84.84848484848484, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 1, "num_branches": 12, "num_partial_branches": 3, "covered_branches": 9, "missing_branches": 3}, "missing_lines": [1377, 1378], "excluded_lines": [1325], "executed_branches": [[1334, 1335], [1334, 1338], [1339, 1341], [1352, 1353], [1357, 1358], [1357, 1361], [1370, 1371], [1374, 1375], [1374, 1380]], "missing_branches": [[1339, 1361], [1352, 1357], [1370, 1374]]}, "HorizontalRule.__init__": {"executed_lines": [1390], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1389], "executed_branches": [], "missing_branches": []}, "HorizontalRule.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [1407, 1410, 1411, 1413, 1415], "excluded_lines": [1394], "executed_branches": [], "missing_branches": [[1410, 1411], [1410, 1413]]}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 33, 43, 44, 48, 49, 53, 54, 59, 60, 64, 76, 77, 109, 110, 114, 115, 119, 128, 145, 154, 167, 177, 187, 188, 192, 197, 198, 199, 200, 201, 202, 203, 204, 207, 208, 213, 225, 226, 259, 260, 264, 265, 270, 271, 275, 286, 287, 319, 320, 324, 325, 329, 339, 351, 364, 375, 376, 380, 391, 392, 417, 418, 422, 423, 427, 436, 446, 447, 452, 453, 454, 455, 456, 459, 460, 464, 477, 478, 511, 512, 516, 517, 521, 522, 526, 527, 531, 541, 554, 564, 565, 570, 571, 575, 588, 589, 622, 623, 627, 628, 632, 633, 637, 638, 642, 652, 664, 677, 688, 689, 693, 710, 711, 745, 746, 750, 751, 755, 756, 760, 761, 765, 766, 770, 771, 775, 776, 780, 781, 785, 795, 807, 820, 831, 832, 836, 847, 848, 879, 880, 884, 885, 889, 899, 914, 924, 925, 930, 931, 935, 950, 951, 984, 985, 989, 990, 994, 995, 999, 1000, 1004, 1021, 1034, 1044, 1054, 1064, 1078, 1079, 1089, 1090, 1094, 1110, 1111, 1140, 1141, 1145, 1146, 1150, 1151, 1155, 1156, 1160, 1161, 1165, 1166, 1170, 1171, 1175, 1176, 1180, 1189, 1200, 1228, 1241, 1277, 1324, 1383, 1384, 1388, 1392, 1393], "summary": {"covered_lines": 210, "num_statements": 210, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [12, 28, 60, 198, 208, 271, 376, 453, 460, 571, 689, 832, 931, 1090, 1384], "executed_branches": [], "missing_branches": []}}, "classes": {"BlockType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Block": {"executed_lines": [40, 41, 46, 51, 56], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [34, 45, 50, 55], "executed_branches": [], "missing_branches": []}, "Paragraph": {"executed_lines": [71, 72, 73, 74, 126, 174, 175, 190, 194], "summary": {"covered_lines": 9, "num_statements": 25, "percent_covered": 31.428571428571427, "percent_covered_display": "31", "missing_lines": 16, "excluded_lines": 11, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 8}, "missing_lines": [93, 94, 95, 96, 99, 102, 103, 105, 107, 112, 117, 143, 152, 165, 184, 185], "excluded_lines": [65, 78, 111, 116, 120, 129, 146, 155, 168, 178, 189], "executed_branches": [[174, -167], [174, 175]], "missing_branches": [[93, 94], [93, 95], [95, 96], [95, 99], [102, 103], [102, 105], [184, -177], [184, 185]]}, "HeadingLevel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Heading": {"executed_lines": [221, 222, 223, 262, 267], "summary": {"covered_lines": 5, "num_statements": 14, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 9, "excluded_lines": 4, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [243, 244, 245, 246, 249, 252, 253, 255, 257], "excluded_lines": [214, 227, 261, 266], "executed_branches": [], "missing_branches": [[243, 244], [243, 245], [245, 246], [245, 249], [252, 253], [252, 255]]}, "Quote": {"executed_lines": [282, 283, 284, 336, 337, 371, 372], "summary": {"covered_lines": 7, "num_statements": 20, "percent_covered": 32.142857142857146, "percent_covered_display": "32", "missing_lines": 13, "excluded_lines": 8, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 6}, "missing_lines": [303, 304, 305, 306, 309, 312, 313, 315, 317, 322, 327, 349, 362], "excluded_lines": [276, 288, 321, 326, 330, 340, 352, 365], "executed_branches": [[371, -364], [371, 372]], "missing_branches": [[303, 304], [303, 305], [305, 306], [305, 309], [312, 313], [312, 315]]}, "CodeBlock": {"executed_lines": [387, 388, 389, 420, 425, 434, 443, 444, 449], "summary": {"covered_lines": 9, "num_statements": 14, "percent_covered": 61.111111111111114, "percent_covered_display": "61", "missing_lines": 5, "excluded_lines": 7, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 2}, "missing_lines": [407, 410, 411, 413, 415], "excluded_lines": [381, 393, 419, 424, 428, 437, 448], "executed_branches": [[443, -436], [443, 444]], "missing_branches": [[410, 411], [410, 413]]}, "ListStyle": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "HList": {"executed_lines": [472, 473, 474, 475, 514, 519, 538, 539, 561, 562, 567], "summary": {"covered_lines": 11, "num_statements": 23, "percent_covered": 41.935483870967744, "percent_covered_display": "42", "missing_lines": 12, "excluded_lines": 10, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 6}, "missing_lines": [495, 496, 497, 498, 501, 504, 505, 507, 509, 524, 529, 552], "excluded_lines": [465, 479, 513, 518, 523, 528, 532, 542, 555, 566], "executed_branches": [[561, -554], [561, 562]], "missing_branches": [[495, 496], [495, 497], [497, 498], [497, 501], [504, 505], [504, 507]]}, "ListItem": {"executed_lines": [583, 584, 585, 586, 625, 630, 649, 650, 684, 685], "summary": {"covered_lines": 10, "num_statements": 23, "percent_covered": 38.70967741935484, "percent_covered_display": "39", "missing_lines": 13, "excluded_lines": 10, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 6}, "missing_lines": [606, 607, 608, 609, 612, 615, 616, 618, 620, 635, 640, 662, 675], "excluded_lines": [576, 590, 624, 629, 634, 639, 643, 653, 665, 678], "executed_branches": [[684, -677], [684, 685]], "missing_branches": [[606, 607], [606, 608], [608, 609], [608, 612], [615, 616], [615, 618]]}, "TableCell": {"executed_lines": [703, 704, 705, 706, 707, 708, 748, 758, 768, 792, 793], "summary": {"covered_lines": 11, "num_statements": 27, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 16, "excluded_lines": 14, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [731, 732, 735, 738, 739, 741, 743, 753, 763, 773, 778, 783, 805, 818, 827, 828], "excluded_lines": [694, 713, 747, 752, 757, 762, 767, 772, 777, 782, 786, 796, 808, 821], "executed_branches": [], "missing_branches": [[731, 732], [731, 735], [738, 739], [738, 741], [827, -820], [827, 828]]}, "TableRow": {"executed_lines": [843, 844, 845, 896, 897, 927], "summary": {"covered_lines": 6, "num_statements": 18, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 12, "excluded_lines": 8, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [865, 866, 869, 872, 873, 875, 877, 882, 887, 912, 921, 922], "excluded_lines": [837, 849, 881, 886, 890, 900, 915, 926], "executed_branches": [], "missing_branches": [[865, 866], [865, 869], [872, 873], [872, 875], [921, -914], [921, 922]]}, "Table": {"executed_lines": [943, 944, 945, 946, 947, 948, 987, 1012, 1014, 1015, 1016, 1017, 1019, 1041, 1042, 1051, 1052, 1061, 1062, 1071, 1072, 1073, 1074, 1075, 1076, 1081], "summary": {"covered_lines": 26, "num_statements": 39, "percent_covered": 68.85245901639344, "percent_covered_display": "69", "missing_lines": 13, "excluded_lines": 13, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 16, "missing_branches": 6}, "missing_lines": [968, 969, 970, 971, 974, 977, 978, 980, 982, 992, 997, 1002, 1032], "excluded_lines": [936, 952, 986, 991, 996, 1001, 1005, 1022, 1035, 1045, 1055, 1065, 1080], "executed_branches": [[1014, 1015], [1014, 1016], [1016, 1017], [1016, 1019], [1041, -1034], [1041, 1042], [1051, -1044], [1051, 1052], [1061, -1054], [1061, 1062], [1071, 1072], [1071, 1073], [1073, 1074], [1073, 1075], [1075, -1064], [1075, 1076]], "missing_branches": [[968, 969], [968, 970], [970, 971], [970, 974], [977, 978], [977, 980]]}, "Image": {"executed_lines": [1104, 1105, 1106, 1107, 1108, 1143, 1148, 1153, 1158, 1163, 1168, 1173, 1178, 1187, 1196, 1197, 1198, 1212, 1215, 1218, 1219, 1220, 1222, 1226, 1238, 1239, 1255, 1257, 1259, 1261, 1262, 1264, 1265, 1267, 1268, 1271, 1272, 1275, 1288, 1289, 1291, 1292, 1294, 1295, 1297, 1298, 1301, 1304, 1306, 1309, 1310, 1313, 1315, 1317, 1322, 1332, 1334, 1335, 1338, 1339, 1341, 1352, 1353, 1354, 1357, 1358, 1359, 1361, 1370, 1371, 1374, 1375, 1376, 1380], "summary": {"covered_lines": 74, "num_statements": 92, "percent_covered": 77.8688524590164, "percent_covered_display": "78", "missing_lines": 18, "excluded_lines": 17, "num_branches": 30, "num_partial_branches": 7, "covered_branches": 21, "missing_branches": 9}, "missing_lines": [1130, 1133, 1134, 1136, 1138, 1213, 1223, 1224, 1269, 1270, 1273, 1274, 1318, 1319, 1320, 1321, 1377, 1378], "excluded_lines": [1095, 1113, 1142, 1147, 1152, 1157, 1162, 1167, 1172, 1177, 1181, 1190, 1202, 1229, 1242, 1278, 1325], "executed_branches": [[1196, 1197], [1196, 1198], [1212, 1215], [1218, 1219], [1222, 1226], [1288, 1289], [1288, 1291], [1295, 1297], [1295, 1301], [1309, 1310], [1309, 1313], [1317, 1322], [1334, 1335], [1334, 1338], [1339, 1341], [1352, 1353], [1357, 1358], [1357, 1361], [1370, 1371], [1374, 1375], [1374, 1380]], "missing_branches": [[1133, 1134], [1133, 1136], [1212, 1213], [1218, 1222], [1222, 1223], [1317, 1318], [1339, 1361], [1352, 1357], [1370, 1374]]}, "HorizontalRule": {"executed_lines": [1390], "summary": {"covered_lines": 1, "num_statements": 6, "percent_covered": 12.5, "percent_covered_display": "12", "missing_lines": 5, "excluded_lines": 2, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [1407, 1410, 1411, 1413, 1415], "excluded_lines": [1389, 1394], "executed_branches": [], "missing_branches": [[1410, 1411], [1410, 1413]]}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 33, 43, 44, 48, 49, 53, 54, 59, 60, 64, 76, 77, 109, 110, 114, 115, 119, 128, 145, 154, 167, 177, 187, 188, 192, 197, 198, 199, 200, 201, 202, 203, 204, 207, 208, 213, 225, 226, 259, 260, 264, 265, 270, 271, 275, 286, 287, 319, 320, 324, 325, 329, 339, 351, 364, 375, 376, 380, 391, 392, 417, 418, 422, 423, 427, 436, 446, 447, 452, 453, 454, 455, 456, 459, 460, 464, 477, 478, 511, 512, 516, 517, 521, 522, 526, 527, 531, 541, 554, 564, 565, 570, 571, 575, 588, 589, 622, 623, 627, 628, 632, 633, 637, 638, 642, 652, 664, 677, 688, 689, 693, 710, 711, 745, 746, 750, 751, 755, 756, 760, 761, 765, 766, 770, 771, 775, 776, 780, 781, 785, 795, 807, 820, 831, 832, 836, 847, 848, 879, 880, 884, 885, 889, 899, 914, 924, 925, 930, 931, 935, 950, 951, 984, 985, 989, 990, 994, 995, 999, 1000, 1004, 1021, 1034, 1044, 1054, 1064, 1078, 1079, 1089, 1090, 1094, 1110, 1111, 1140, 1141, 1145, 1146, 1150, 1151, 1155, 1156, 1160, 1161, 1165, 1166, 1170, 1171, 1175, 1176, 1180, 1189, 1200, 1228, 1241, 1277, 1324, 1383, 1384, 1388, 1392, 1393], "summary": {"covered_lines": 210, "num_statements": 210, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [12, 28, 60, 198, 208, 271, 376, 453, 460, 571, 689, 832, 931, 1090, 1384], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/abstract/document.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 30, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 52, 53, 55, 57, 58, 62, 63, 67, 74, 76, 92, 109, 125, 133, 135, 145, 147, 155, 157, 167, 169, 177, 179, 189, 191, 198, 200, 207, 209, 216, 218, 225, 227, 237, 239, 240, 241, 242, 245, 247, 250, 251, 253, 260, 261, 263, 270, 272, 273, 275, 276, 277, 278, 281, 282, 284, 287, 288, 293, 302, 303, 304, 305, 306, 308, 309, 311, 313, 314, 316, 318, 319, 321, 323, 324, 326, 328, 329, 333, 334, 338, 345, 347, 363, 380, 388, 390, 400, 403, 404, 409, 420, 421, 423, 424, 426, 427, 429, 431, 438, 440, 452, 453, 454, 455, 456, 458, 465, 467, 474, 476, 483, 484, 485, 486, 488], "summary": {"covered_lines": 144, "num_statements": 173, "percent_covered": 79.51219512195122, "percent_covered_display": "80", "missing_lines": 29, "excluded_lines": 44, "num_branches": 32, "num_partial_branches": 3, "covered_branches": 19, "missing_branches": 13}, "missing_lines": [60, 65, 86, 87, 88, 89, 90, 103, 104, 105, 106, 107, 121, 122, 123, 246, 248, 331, 336, 357, 358, 359, 360, 361, 374, 375, 376, 377, 378], "excluded_lines": [10, 25, 31, 54, 59, 64, 68, 77, 93, 110, 126, 136, 148, 158, 170, 180, 192, 201, 210, 219, 228, 254, 264, 288, 294, 310, 315, 320, 325, 330, 335, 339, 348, 364, 381, 391, 404, 411, 428, 432, 441, 459, 468, 477], "executed_branches": [[48, 49], [48, 50], [240, -239], [240, 241], [241, 242], [241, 245], [245, 247], [247, 240], [273, 275], [273, 284], [276, 277], [276, 278], [423, -409], [423, 424], [452, 453], [484, 485], [484, 488], [485, 484], [485, 486]], "missing_branches": [[86, 87], [86, 88], [103, 104], [103, 105], [121, 122], [121, 123], [245, 246], [247, 248], [357, 358], [357, 359], [374, 375], [374, 376], [452, 454]], "functions": {"Document.__init__": {"executed_lines": [39, 40, 41, 42, 43, 44, 45, 48, 49, 50], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [31], "executed_branches": [[48, 49], [48, 50]], "missing_branches": []}, "Document.blocks": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [54], "executed_branches": [], "missing_branches": []}, "Document.default_style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [65], "excluded_lines": [64], "executed_branches": [], "missing_branches": []}, "Document.add_block": {"executed_lines": [74], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [68], "executed_branches": [], "missing_branches": []}, "Document.create_paragraph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [86, 87, 88, 89, 90], "excluded_lines": [77], "executed_branches": [], "missing_branches": [[86, 87], [86, 88]]}, "Document.create_heading": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [103, 104, 105, 106, 107], "excluded_lines": [93], "executed_branches": [], "missing_branches": [[103, 104], [103, 105]]}, "Document.create_chapter": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [121, 122, 123], "excluded_lines": [110], "executed_branches": [], "missing_branches": [[121, 122], [121, 123]]}, "Document.set_metadata": {"executed_lines": [133], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [126], "executed_branches": [], "missing_branches": []}, "Document.get_metadata": {"executed_lines": [145], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [136], "executed_branches": [], "missing_branches": []}, "Document.add_anchor": {"executed_lines": [155], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [148], "executed_branches": [], "missing_branches": []}, "Document.get_anchor": {"executed_lines": [167], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [158], "executed_branches": [], "missing_branches": []}, "Document.add_resource": {"executed_lines": [177], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [170], "executed_branches": [], "missing_branches": []}, "Document.get_resource": {"executed_lines": [189], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [180], "executed_branches": [], "missing_branches": []}, "Document.add_stylesheet": {"executed_lines": [198], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [192], "executed_branches": [], "missing_branches": []}, "Document.add_script": {"executed_lines": [207], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [201], "executed_branches": [], "missing_branches": []}, "Document.get_title": {"executed_lines": [216], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [210], "executed_branches": [], "missing_branches": []}, "Document.set_title": {"executed_lines": [225], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [219], "executed_branches": [], "missing_branches": []}, "Document.find_blocks_by_type": {"executed_lines": [237, 239, 250, 251], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [228], "executed_branches": [], "missing_branches": []}, "Document.find_blocks_by_type._find_recursive": {"executed_lines": [240, 241, 242, 245, 247], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 2, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 2, "covered_branches": 6, "missing_branches": 2}, "missing_lines": [246, 248], "excluded_lines": [], "executed_branches": [[240, -239], [240, 241], [241, 242], [241, 245], [245, 247], [247, 240]], "missing_branches": [[245, 246], [247, 248]]}, "Document.find_headings": {"executed_lines": [260, 261], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [254], "executed_branches": [], "missing_branches": []}, "Document.generate_table_of_contents": {"executed_lines": [270, 272, 273, 275, 276, 277, 278, 281, 282, 284], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [264], "executed_branches": [[273, 275], [273, 284], [276, 277], [276, 278]], "missing_branches": []}, "Chapter.__init__": {"executed_lines": [302, 303, 304, 305, 306], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [294], "executed_branches": [], "missing_branches": []}, "Chapter.title": {"executed_lines": [316], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [315], "executed_branches": [], "missing_branches": []}, "Chapter.level": {"executed_lines": [321], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [320], "executed_branches": [], "missing_branches": []}, "Chapter.blocks": {"executed_lines": [326], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [325], "executed_branches": [], "missing_branches": []}, "Chapter.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [336], "excluded_lines": [335], "executed_branches": [], "missing_branches": []}, "Chapter.add_block": {"executed_lines": [345], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [339], "executed_branches": [], "missing_branches": []}, "Chapter.create_paragraph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [357, 358, 359, 360, 361], "excluded_lines": [348], "executed_branches": [], "missing_branches": [[357, 358], [357, 359]]}, "Chapter.create_heading": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [374, 375, 376, 377, 378], "excluded_lines": [364], "executed_branches": [], "missing_branches": [[374, 375], [374, 376]]}, "Chapter.set_metadata": {"executed_lines": [388], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [381], "executed_branches": [], "missing_branches": []}, "Chapter.get_metadata": {"executed_lines": [400], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [391], "executed_branches": [], "missing_branches": []}, "Book.__init__": {"executed_lines": [420, 421, 423, 424], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [411], "executed_branches": [[423, -409], [423, 424]], "missing_branches": []}, "Book.chapters": {"executed_lines": [429], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [428], "executed_branches": [], "missing_branches": []}, "Book.add_chapter": {"executed_lines": [438], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [432], "executed_branches": [], "missing_branches": []}, "Book.create_chapter": {"executed_lines": [452, 453, 454, 455, 456], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [441], "executed_branches": [[452, 453]], "missing_branches": [[452, 454]]}, "Book.get_author": {"executed_lines": [465], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [459], "executed_branches": [], "missing_branches": []}, "Book.set_author": {"executed_lines": [474], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [468], "executed_branches": [], "missing_branches": []}, "Book.generate_table_of_contents": {"executed_lines": [483, 484, 485, 486, 488], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [477], "executed_branches": [[484, 485], [484, 488], [485, 484], [485, 486]], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 30, 52, 53, 57, 58, 62, 63, 67, 76, 92, 109, 125, 135, 147, 157, 169, 179, 191, 200, 209, 218, 227, 253, 263, 287, 288, 293, 308, 309, 313, 314, 318, 319, 323, 324, 328, 329, 333, 334, 338, 347, 363, 380, 390, 403, 404, 409, 426, 427, 431, 440, 458, 467, 476], "summary": {"covered_lines": 71, "num_statements": 71, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [10, 25, 288, 404], "executed_branches": [], "missing_branches": []}}, "classes": {"MetadataType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Document": {"executed_lines": [39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 55, 74, 133, 145, 155, 167, 177, 189, 198, 207, 216, 225, 237, 239, 240, 241, 242, 245, 247, 250, 251, 260, 261, 270, 272, 273, 275, 276, 277, 278, 281, 282, 284], "summary": {"covered_lines": 43, "num_statements": 60, "percent_covered": 68.75, "percent_covered_display": "69", "missing_lines": 17, "excluded_lines": 21, "num_branches": 20, "num_partial_branches": 2, "covered_branches": 12, "missing_branches": 8}, "missing_lines": [60, 65, 86, 87, 88, 89, 90, 103, 104, 105, 106, 107, 121, 122, 123, 246, 248], "excluded_lines": [31, 54, 59, 64, 68, 77, 93, 110, 126, 136, 148, 158, 170, 180, 192, 201, 210, 219, 228, 254, 264], "executed_branches": [[48, 49], [48, 50], [240, -239], [240, 241], [241, 242], [241, 245], [245, 247], [247, 240], [273, 275], [273, 284], [276, 277], [276, 278]], "missing_branches": [[86, 87], [86, 88], [103, 104], [103, 105], [121, 122], [121, 123], [245, 246], [247, 248]]}, "Chapter": {"executed_lines": [302, 303, 304, 305, 306, 311, 316, 321, 326, 345, 388, 400], "summary": {"covered_lines": 12, "num_statements": 24, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 12, "excluded_lines": 12, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [331, 336, 357, 358, 359, 360, 361, 374, 375, 376, 377, 378], "excluded_lines": [294, 310, 315, 320, 325, 330, 335, 339, 348, 364, 381, 391], "executed_branches": [], "missing_branches": [[357, 358], [357, 359], [374, 375], [374, 376]]}, "Book": {"executed_lines": [420, 421, 423, 424, 429, 438, 452, 453, 454, 455, 456, 465, 474, 483, 484, 485, 486, 488], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 96.15384615384616, "percent_covered_display": "96", "missing_lines": 0, "excluded_lines": 7, "num_branches": 8, "num_partial_branches": 1, "covered_branches": 7, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [411, 428, 432, 441, 459, 468, 477], "executed_branches": [[423, -409], [423, 424], [452, 453], [484, 485], [484, 488], [485, 484], [485, 486]], "missing_branches": [[452, 454]]}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 30, 52, 53, 57, 58, 62, 63, 67, 76, 92, 109, 125, 135, 147, 157, 169, 179, 191, 200, 209, 218, 227, 253, 263, 287, 288, 293, 308, 309, 313, 314, 318, 319, 323, 324, 328, 329, 333, 334, 338, 347, 363, 380, 390, 403, 404, 409, 426, 427, 431, 440, 458, 467, 476], "summary": {"covered_lines": 71, "num_statements": 71, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [10, 25, 288, 404], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/abstract/functional.py": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 15, 16, 22, 38, 39, 40, 41, 42, 44, 45, 47, 49, 50, 52, 54, 55, 57, 59, 60, 62, 64, 74, 75, 79, 82, 83, 88, 102, 103, 104, 105, 107, 108, 110, 112, 113, 115, 117, 118, 120, 122, 123, 125, 127, 128, 130, 132, 139, 140, 141, 144, 145, 150, 162, 163, 164, 165, 167, 168, 170, 172, 173, 175, 177, 184, 185, 187, 197, 199, 206, 208, 215, 217, 218, 220, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 241, 242, 246, 264, 265, 266, 267, 268, 269, 270, 272, 273, 275, 277, 278, 280, 282, 283, 285, 287, 288, 290, 292, 293, 295, 297, 298, 300, 302, 303, 305, 307, 308, 310, 312, 313, 315], "summary": {"covered_lines": 132, "num_statements": 132, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 36, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 16, 28, 46, 51, 56, 61, 65, 83, 93, 109, 114, 119, 124, 129, 133, 145, 154, 169, 174, 178, 188, 200, 209, 224, 242, 253, 274, 279, 284, 289, 294, 299, 304, 309, 314], "executed_branches": [[74, 75], [74, 79], [139, 140], [139, 141], [217, 218], [217, 220]], "missing_branches": [], "functions": {"Link.__init__": {"executed_lines": [38, 39, 40, 41, 42], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [28], "executed_branches": [], "missing_branches": []}, "Link.location": {"executed_lines": [47], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [46], "executed_branches": [], "missing_branches": []}, "Link.link_type": {"executed_lines": [52], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [51], "executed_branches": [], "missing_branches": []}, "Link.params": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [56], "executed_branches": [], "missing_branches": []}, "Link.title": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [61], "executed_branches": [], "missing_branches": []}, "Link.execute": {"executed_lines": [74, 75, 79], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [65], "executed_branches": [[74, 75], [74, 79]], "missing_branches": []}, "Button.__init__": {"executed_lines": [102, 103, 104, 105], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [93], "executed_branches": [], "missing_branches": []}, "Button.label": {"executed_lines": [115], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [114], "executed_branches": [], "missing_branches": []}, "Button.enabled": {"executed_lines": [125], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [124], "executed_branches": [], "missing_branches": []}, "Button.params": {"executed_lines": [130], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [129], "executed_branches": [], "missing_branches": []}, "Button.execute": {"executed_lines": [139, 140, 141], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [133], "executed_branches": [[139, 140], [139, 141]], "missing_branches": []}, "Form.__init__": {"executed_lines": [162, 163, 164, 165], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [154], "executed_branches": [], "missing_branches": []}, "Form.form_id": {"executed_lines": [170], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [169], "executed_branches": [], "missing_branches": []}, "Form.action": {"executed_lines": [175], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [174], "executed_branches": [], "missing_branches": []}, "Form.add_field": {"executed_lines": [184, 185], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [178], "executed_branches": [], "missing_branches": []}, "Form.get_field": {"executed_lines": [197], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [188], "executed_branches": [], "missing_branches": []}, "Form.get_values": {"executed_lines": [206], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [200], "executed_branches": [], "missing_branches": []}, "Form.execute": {"executed_lines": [215, 217, 218, 220], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [209], "executed_branches": [[217, 218], [217, 220]], "missing_branches": []}, "FormField.__init__": {"executed_lines": [264, 265, 266, 267, 268, 269, 270], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [253], "executed_branches": [], "missing_branches": []}, "FormField.name": {"executed_lines": [275], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [274], "executed_branches": [], "missing_branches": []}, "FormField.field_type": {"executed_lines": [280], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [279], "executed_branches": [], "missing_branches": []}, "FormField.label": {"executed_lines": [285], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [284], "executed_branches": [], "missing_branches": []}, "FormField.value": {"executed_lines": [295], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [294], "executed_branches": [], "missing_branches": []}, "FormField.required": {"executed_lines": [300], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [299], "executed_branches": [], "missing_branches": []}, "FormField.options": {"executed_lines": [305], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [304], "executed_branches": [], "missing_branches": []}, "FormField.form": {"executed_lines": [315], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [314], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 15, 16, 22, 44, 45, 49, 50, 54, 55, 59, 60, 64, 82, 83, 88, 107, 108, 112, 113, 117, 118, 122, 123, 127, 128, 132, 144, 145, 150, 167, 168, 172, 173, 177, 187, 199, 208, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 241, 242, 246, 272, 273, 277, 278, 282, 283, 287, 288, 292, 293, 297, 298, 302, 303, 307, 308, 312, 313], "summary": {"covered_lines": 78, "num_statements": 78, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 16, 83, 145, 224, 242], "executed_branches": [], "missing_branches": []}}, "classes": {"LinkType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Link": {"executed_lines": [38, 39, 40, 41, 42, 47, 52, 57, 62, 74, 75, 79], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [28, 46, 51, 56, 61, 65], "executed_branches": [[74, 75], [74, 79]], "missing_branches": []}, "Button": {"executed_lines": [102, 103, 104, 105, 110, 115, 120, 125, 130, 139, 140, 141], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 7, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [93, 109, 114, 119, 124, 129, 133], "executed_branches": [[139, 140], [139, 141]], "missing_branches": []}, "Form": {"executed_lines": [162, 163, 164, 165, 170, 175, 184, 185, 197, 206, 215, 217, 218, 220], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 7, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [154, 169, 174, 178, 188, 200, 209], "executed_branches": [[217, 218], [217, 220]], "missing_branches": []}, "FormFieldType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "FormField": {"executed_lines": [264, 265, 266, 267, 268, 269, 270, 275, 280, 285, 290, 295, 300, 305, 310, 315], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [253, 274, 279, 284, 289, 294, 299, 304, 309, 314], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 15, 16, 22, 44, 45, 49, 50, 54, 55, 59, 60, 64, 82, 83, 88, 107, 108, 112, 113, 117, 118, 122, 123, 127, 128, 132, 144, 145, 150, 167, 168, 172, 173, 177, 187, 199, 208, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 241, 242, 246, 272, 273, 277, 278, 282, 283, 287, 288, 292, 293, 297, 298, 302, 303, 307, 308, 312, 313], "summary": {"covered_lines": 78, "num_statements": 78, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 16, 83, 145, 224, 242], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/abstract/inline.py": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 15, 25, 26, 27, 28, 29, 30, 32, 33, 56, 57, 58, 60, 63, 64, 67, 68, 70, 71, 73, 75, 76, 77, 78, 81, 84, 85, 88, 90, 91, 92, 94, 96, 97, 99, 104, 105, 108, 111, 113, 115, 117, 118, 120, 122, 123, 125, 127, 128, 130, 132, 133, 135, 137, 138, 140, 142, 143, 145, 147, 149, 151, 162, 163, 166, 167, 169, 180, 181, 184, 187, 188, 191, 194, 195, 197, 198, 200, 202, 204, 217, 218, 220, 222, 229, 232, 233, 238, 246, 247, 248, 250, 251, 268, 269, 270, 272, 275, 276, 279, 282, 283, 285, 287, 289, 290, 292, 294, 295, 297, 299, 300, 302, 304, 315, 318, 321, 322, 325, 327, 330, 331, 337, 340, 341, 342, 344, 345, 347, 349, 350, 352, 354, 355, 357, 359, 360, 371, 374, 375, 376, 377, 378, 380, 383, 385], "summary": {"covered_lines": 150, "num_statements": 150, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 28, "num_branches": 44, "num_partial_branches": 0, "covered_branches": 44, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [9, 16, 35, 119, 124, 129, 134, 139, 144, 148, 152, 170, 201, 205, 223, 233, 239, 252, 291, 296, 301, 305, 331, 338, 346, 351, 356, 361], "executed_branches": [[56, 57], [56, 63], [57, 58], [57, 60], [63, 64], [63, 67], [68, 70], [68, 71], [71, 73], [71, 81], [75, 76], [75, 81], [84, 85], [84, 88], [88, 90], [88, 113], [94, 96], [94, 111], [97, 99], [97, 104], [104, 105], [104, 108], [187, 188], [187, 191], [194, 195], [194, 197], [217, 218], [217, 220], [268, 269], [268, 275], [269, 270], [269, 272], [275, 276], [275, 279], [282, 283], [282, 285], [321, 322], [321, 325], [374, 375], [374, 376], [376, 377], [376, 378], [378, 380], [378, 383]], "missing_branches": [], "functions": {"Word.__init__": {"executed_lines": [25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [16], "executed_branches": [], "missing_branches": []}, "Word.create_and_add_to": {"executed_lines": [56, 57, 58, 60, 63, 64, 67, 68, 70, 71, 73, 75, 76, 77, 78, 81, 84, 85, 88, 90, 91, 92, 94, 96, 97, 99, 104, 105, 108, 111, 113, 115], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 22, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [35], "executed_branches": [[56, 57], [56, 63], [57, 58], [57, 60], [63, 64], [63, 67], [68, 70], [68, 71], [71, 73], [71, 81], [75, 76], [75, 81], [84, 85], [84, 88], [88, 90], [88, 113], [94, 96], [94, 111], [97, 99], [97, 104], [104, 105], [104, 108]], "missing_branches": []}, "Word.text": {"executed_lines": [120], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [119], "executed_branches": [], "missing_branches": []}, "Word.style": {"executed_lines": [125], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [124], "executed_branches": [], "missing_branches": []}, "Word.background": {"executed_lines": [130], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [129], "executed_branches": [], "missing_branches": []}, "Word.previous": {"executed_lines": [135], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [134], "executed_branches": [], "missing_branches": []}, "Word.next": {"executed_lines": [140], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [139], "executed_branches": [], "missing_branches": []}, "Word.hyphenated_parts": {"executed_lines": [145], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [144], "executed_branches": [], "missing_branches": []}, "Word.add_next": {"executed_lines": [149], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [148], "executed_branches": [], "missing_branches": []}, "Word.can_hyphenate": {"executed_lines": [162, 163, 166, 167], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [152], "executed_branches": [], "missing_branches": []}, "Word.hyphenate": {"executed_lines": [180, 181, 184, 187, 188, 191, 194, 195, 197, 198], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [170], "executed_branches": [[187, 188], [187, 191], [194, 195], [194, 197]], "missing_branches": []}, "Word.dehyphenate": {"executed_lines": [202], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [201], "executed_branches": [], "missing_branches": []}, "Word.get_hyphenated_part": {"executed_lines": [217, 218, 220], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [205], "executed_branches": [[217, 218], [217, 220]], "missing_branches": []}, "Word.get_hyphenated_part_count": {"executed_lines": [229], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [223], "executed_branches": [], "missing_branches": []}, "FormattedSpan.__init__": {"executed_lines": [246, 247, 248], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [239], "executed_branches": [], "missing_branches": []}, "FormattedSpan.create_and_add_to": {"executed_lines": [268, 269, 270, 272, 275, 276, 279, 282, 283, 285, 287], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 8, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [252], "executed_branches": [[268, 269], [268, 275], [269, 270], [269, 272], [275, 276], [275, 279], [282, 283], [282, 285]], "missing_branches": []}, "FormattedSpan.style": {"executed_lines": [292], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [291], "executed_branches": [], "missing_branches": []}, "FormattedSpan.background": {"executed_lines": [297], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [296], "executed_branches": [], "missing_branches": []}, "FormattedSpan.words": {"executed_lines": [302], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [301], "executed_branches": [], "missing_branches": []}, "FormattedSpan.add_word": {"executed_lines": [315, 318, 321, 322, 325, 327], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [305], "executed_branches": [[321, 322], [321, 325]], "missing_branches": []}, "LineBreak.__init__": {"executed_lines": [340, 341, 342], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [338], "executed_branches": [], "missing_branches": []}, "LineBreak.block_type": {"executed_lines": [347], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [346], "executed_branches": [], "missing_branches": []}, "LineBreak.parent": {"executed_lines": [357], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [356], "executed_branches": [], "missing_branches": []}, "LineBreak.create_and_add_to": {"executed_lines": [371, 374, 375, 376, 377, 378, 380, 383, 385], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [361], "executed_branches": [[374, 375], [374, 376], [376, 377], [376, 378], [378, 380], [378, 383]], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 15, 32, 33, 117, 118, 122, 123, 127, 128, 132, 133, 137, 138, 142, 143, 147, 151, 169, 200, 204, 222, 232, 233, 238, 250, 251, 289, 290, 294, 295, 299, 300, 304, 330, 331, 337, 344, 345, 349, 350, 354, 355, 359, 360], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [9, 233, 331], "executed_branches": [], "missing_branches": []}}, "classes": {"Word": {"executed_lines": [25, 26, 27, 28, 29, 30, 56, 57, 58, 60, 63, 64, 67, 68, 70, 71, 73, 75, 76, 77, 78, 81, 84, 85, 88, 90, 91, 92, 94, 96, 97, 99, 104, 105, 108, 111, 113, 115, 120, 125, 130, 135, 140, 145, 149, 162, 163, 166, 167, 180, 181, 184, 187, 188, 191, 194, 195, 197, 198, 202, 217, 218, 220, 229], "summary": {"covered_lines": 64, "num_statements": 64, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 14, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 28, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [16, 35, 119, 124, 129, 134, 139, 144, 148, 152, 170, 201, 205, 223], "executed_branches": [[56, 57], [56, 63], [57, 58], [57, 60], [63, 64], [63, 67], [68, 70], [68, 71], [71, 73], [71, 81], [75, 76], [75, 81], [84, 85], [84, 88], [88, 90], [88, 113], [94, 96], [94, 111], [97, 99], [97, 104], [104, 105], [104, 108], [187, 188], [187, 191], [194, 195], [194, 197], [217, 218], [217, 220]], "missing_branches": []}, "FormattedSpan": {"executed_lines": [246, 247, 248, 268, 269, 270, 272, 275, 276, 279, 282, 283, 285, 287, 292, 297, 302, 315, 318, 321, 322, 325, 327], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 10, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [239, 252, 291, 296, 301, 305], "executed_branches": [[268, 269], [268, 275], [269, 270], [269, 272], [275, 276], [275, 279], [282, 283], [282, 285], [321, 322], [321, 325]], "missing_branches": []}, "LineBreak": {"executed_lines": [340, 341, 342, 347, 352, 357, 371, 374, 375, 376, 377, 378, 380, 383, 385], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 5, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [338, 346, 351, 356, 361], "executed_branches": [[374, 375], [374, 376], [376, 377], [376, 378], [378, 380], [378, 383]], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 15, 32, 33, 117, 118, 122, 123, 127, 128, 132, 133, 137, 138, 142, 143, 147, 151, 169, 200, 204, 222, 232, 233, 238, 250, 251, 289, 290, 294, 295, 299, 300, 304, 330, 331, 337, 344, 345, 349, 350, 354, 355, 359, 360], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [9, 233, 331], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/__init__.py": {"executed_lines": [1, 2, 3, 4, 5], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/box.py": {"executed_lines": [1, 2, 4, 5, 7, 9, 22, 26], "summary": {"covered_lines": 8, "num_statements": 38, "percent_covered": 15.384615384615385, "percent_covered_display": "15", "missing_lines": 30, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 24, 28, 29, 32, 35, 36, 39, 40, 43, 44, 45, 46, 48, 51, 52, 53, 54, 56, 59, 61], "excluded_lines": [], "executed_branches": [], "missing_branches": [[15, 16], [15, 18], [28, 29], [28, 32], [35, 36], [35, 61], [43, 44], [43, 45], [45, 46], [45, 48], [51, 52], [51, 53], [53, 54], [53, 56]], "functions": {"Box.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [10, 11, 12, 13, 14, 15, 16, 18, 19, 20], "excluded_lines": [], "executed_branches": [], "missing_branches": [[15, 16], [15, 18]]}, "Box.in_shape": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [24], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Box.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [28, 29, 32, 35, 36, 39, 40, 43, 44, 45, 46, 48, 51, 52, 53, 54, 56, 59, 61], "excluded_lines": [], "executed_branches": [], "missing_branches": [[28, 29], [28, 32], [35, 36], [35, 61], [43, 44], [43, 45], [45, 46], [45, 48], [51, 52], [51, 53], [53, 54], [53, 56]]}, "": {"executed_lines": [1, 2, 4, 5, 7, 9, 22, 26], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"Box": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 30, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 30, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 24, 28, 29, 32, 35, 36, 39, 40, 43, 44, 45, 46, 48, 51, 52, 53, 54, 56, 59, 61], "excluded_lines": [], "executed_branches": [], "missing_branches": [[15, 16], [15, 18], [28, 29], [28, 32], [35, 36], [35, 61], [43, 44], [43, 45], [45, 46], [45, 48], [51, 52], [51, 53], [53, 54], [53, 56]]}, "": {"executed_lines": [1, 2, 4, 5, 7, 9, 22, 26], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/functional.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 13, 14, 18, 69, 70, 74, 103, 107, 117, 118, 122, 165, 166, 170, 218, 222, 226, 236, 237, 241, 284, 295, 316, 331, 358, 381, 382, 386, 438, 504, 508, 538], "summary": {"covered_lines": 37, "num_statements": 222, "percent_covered": 12.847222222222221, "percent_covered_display": "13", "missing_lines": 185, "excluded_lines": 26, "num_branches": 66, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 66}, "missing_lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 47, 50, 51, 52, 58, 59, 62, 65, 66, 67, 72, 82, 83, 86, 87, 90, 93, 96, 98, 99, 101, 105, 109, 110, 113, 141, 144, 145, 146, 152, 153, 156, 159, 160, 161, 162, 163, 168, 178, 179, 182, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 196, 199, 200, 201, 204, 209, 210, 211, 214, 216, 220, 224, 228, 229, 232, 260, 261, 264, 265, 268, 269, 270, 271, 274, 275, 278, 281, 282, 287, 288, 289, 292, 293, 298, 304, 305, 308, 309, 312, 314, 318, 321, 322, 323, 326, 328, 329, 339, 342, 345, 346, 347, 348, 351, 352, 353, 354, 356, 369, 371, 374, 375, 376, 378, 403, 406, 407, 410, 411, 413, 416, 417, 418, 419, 421, 424, 425, 427, 430, 433, 434, 435, 436, 446, 447, 450, 451, 454, 455, 458, 459, 462, 464, 465, 467, 470, 471, 473, 474, 477, 483, 484, 485, 488, 489, 492, 493, 496, 497, 500, 502, 506, 519, 520, 523, 525, 526, 528, 531, 533, 534, 536, 540, 541, 544], "excluded_lines": [14, 21, 71, 75, 104, 108, 118, 126, 167, 171, 219, 223, 227, 237, 245, 285, 296, 317, 332, 359, 382, 389, 439, 505, 509, 539], "executed_branches": [], "missing_branches": [[37, 38], [37, 39], [39, 40], [39, 41], [41, 42], [41, 43], [43, 44], [43, 47], [50, 51], [50, 58], [58, 59], [58, 62], [96, 98], [96, 101], [144, 145], [144, 152], [152, 153], [152, 156], [182, 184], [182, 187], [187, 189], [187, 192], [192, 194], [192, 199], [260, 261], [260, 264], [281, -241], [281, 282], [287, 288], [287, 292], [308, 309], [308, 312], [321, 322], [321, 326], [326, -316], [326, 328], [345, 346], [345, 351], [351, 352], [351, 356], [369, 371], [369, 374], [374, 375], [374, 378], [375, 374], [375, 376], [406, 407], [406, 430], [410, 411], [410, 413], [416, 417], [416, 418], [418, 419], [418, 421], [464, 465], [464, 467], [473, 474], [473, 477], [483, 484], [483, 502], [488, 489], [488, 492], [525, 526], [525, 528], [531, 533], [531, 536]], "functions": {"RenderableLink.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 1, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 47, 50, 51, 52, 58, 59, 62, 65, 66, 67], "excluded_lines": [21], "executed_branches": [], "missing_branches": [[37, 38], [37, 39], [39, 40], [39, 41], [41, 42], [41, 43], [43, 44], [43, 47], [50, 51], [50, 58], [58, 59], [58, 62]]}, "RenderableLink.link": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [72], "excluded_lines": [71], "executed_branches": [], "missing_branches": []}, "RenderableLink.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [82, 83, 86, 87, 90, 93, 96, 98, 99, 101], "excluded_lines": [75], "executed_branches": [], "missing_branches": [[96, 98], [96, 101]]}, "RenderableLink.set_hovered": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [105], "excluded_lines": [104], "executed_branches": [], "missing_branches": []}, "RenderableLink.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [109, 110, 113], "excluded_lines": [108], "executed_branches": [], "missing_branches": []}, "RenderableButton.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [141, 144, 145, 146, 152, 153, 156, 159, 160, 161, 162, 163], "excluded_lines": [126], "executed_branches": [], "missing_branches": [[144, 145], [144, 152], [152, 153], [152, 156]]}, "RenderableButton.button": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [168], "excluded_lines": [167], "executed_branches": [], "missing_branches": []}, "RenderableButton.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [178, 179, 182, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 196, 199, 200, 201, 204, 209, 210, 211, 214, 216], "excluded_lines": [171], "executed_branches": [], "missing_branches": [[182, 184], [182, 187], [187, 189], [187, 192], [192, 194], [192, 199]]}, "RenderableButton.set_pressed": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [220], "excluded_lines": [219], "executed_branches": [], "missing_branches": []}, "RenderableButton.set_hovered": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [224], "excluded_lines": [223], "executed_branches": [], "missing_branches": []}, "RenderableButton.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [228, 229, 232], "excluded_lines": [227], "executed_branches": [], "missing_branches": []}, "RenderableForm.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [260, 261, 264, 265, 268, 269, 270, 271, 274, 275, 278, 281, 282], "excluded_lines": [245], "executed_branches": [], "missing_branches": [[260, 261], [260, 264], [281, -241], [281, 282]]}, "RenderableForm._create_form_elements": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [287, 288, 289, 292, 293], "excluded_lines": [285], "executed_branches": [], "missing_branches": [[287, 288], [287, 292]]}, "RenderableForm._calculate_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [298, 304, 305, 308, 309, 312, 314], "excluded_lines": [296], "executed_branches": [], "missing_branches": [[308, 309], [308, 312]]}, "RenderableForm.layout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [318, 321, 322, 323, 326, 328, 329], "excluded_lines": [317], "executed_branches": [], "missing_branches": [[321, 322], [321, 326], [326, -316], [326, 328]]}, "RenderableForm.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [339, 342, 345, 346, 347, 348, 351, 352, 353, 354, 356], "excluded_lines": [332], "executed_branches": [], "missing_branches": [[345, 346], [345, 351], [351, 352], [351, 356]]}, "RenderableForm.handle_click": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [369, 371, 374, 375, 376, 378], "excluded_lines": [359], "executed_branches": [], "missing_branches": [[369, 371], [369, 374], [374, 375], [374, 378], [375, 374], [375, 376]]}, "RenderableFormField.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [403, 406, 407, 410, 411, 413, 416, 417, 418, 419, 421, 424, 425, 427, 430, 433, 434, 435, 436], "excluded_lines": [389], "executed_branches": [], "missing_branches": [[406, 407], [406, 430], [410, 411], [410, 413], [416, 417], [416, 418], [418, 419], [418, 421]]}, "RenderableFormField.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 28, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 28, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [446, 447, 450, 451, 454, 455, 458, 459, 462, 464, 465, 467, 470, 471, 473, 474, 477, 483, 484, 485, 488, 489, 492, 493, 496, 497, 500, 502], "excluded_lines": [439], "executed_branches": [], "missing_branches": [[464, 465], [464, 467], [473, 474], [473, 477], [483, 484], [483, 502], [488, 489], [488, 492]]}, "RenderableFormField.set_focused": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [506], "excluded_lines": [505], "executed_branches": [], "missing_branches": []}, "RenderableFormField.handle_click": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [519, 520, 523, 525, 526, 528, 531, 533, 534, 536], "excluded_lines": [509], "executed_branches": [], "missing_branches": [[525, 526], [525, 528], [531, 533], [531, 536]]}, "RenderableFormField.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [540, 541, 544], "excluded_lines": [539], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 13, 14, 18, 69, 70, 74, 103, 107, 117, 118, 122, 165, 166, 170, 218, 222, 226, 236, 237, 241, 284, 295, 316, 331, 358, 381, 382, 386, 438, 504, 508, 538], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [14, 118, 237, 382], "executed_branches": [], "missing_branches": []}}, "classes": {"RenderableLink": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 34, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 34, "excluded_lines": 5, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 47, 50, 51, 52, 58, 59, 62, 65, 66, 67, 72, 82, 83, 86, 87, 90, 93, 96, 98, 99, 101, 105, 109, 110, 113], "excluded_lines": [21, 71, 75, 104, 108], "executed_branches": [], "missing_branches": [[37, 38], [37, 39], [39, 40], [39, 41], [41, 42], [41, 43], [43, 44], [43, 47], [50, 51], [50, 58], [58, 59], [58, 62], [96, 98], [96, 101]]}, "RenderableButton": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 41, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 41, "excluded_lines": 6, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [141, 144, 145, 146, 152, 153, 156, 159, 160, 161, 162, 163, 168, 178, 179, 182, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 196, 199, 200, 201, 204, 209, 210, 211, 214, 216, 220, 224, 228, 229, 232], "excluded_lines": [126, 167, 171, 219, 223, 227], "executed_branches": [], "missing_branches": [[144, 145], [144, 152], [152, 153], [152, 156], [182, 184], [182, 187], [187, 189], [187, 192], [192, 194], [192, 199]]}, "RenderableForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 49, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 49, "excluded_lines": 6, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 22}, "missing_lines": [260, 261, 264, 265, 268, 269, 270, 271, 274, 275, 278, 281, 282, 287, 288, 289, 292, 293, 298, 304, 305, 308, 309, 312, 314, 318, 321, 322, 323, 326, 328, 329, 339, 342, 345, 346, 347, 348, 351, 352, 353, 354, 356, 369, 371, 374, 375, 376, 378], "excluded_lines": [245, 285, 296, 317, 332, 359], "executed_branches": [], "missing_branches": [[260, 261], [260, 264], [281, -241], [281, 282], [287, 288], [287, 292], [308, 309], [308, 312], [321, 322], [321, 326], [326, -316], [326, 328], [345, 346], [345, 351], [351, 352], [351, 356], [369, 371], [369, 374], [374, 375], [374, 378], [375, 374], [375, 376]]}, "RenderableFormField": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 61, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 61, "excluded_lines": 5, "num_branches": 20, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 20}, "missing_lines": [403, 406, 407, 410, 411, 413, 416, 417, 418, 419, 421, 424, 425, 427, 430, 433, 434, 435, 436, 446, 447, 450, 451, 454, 455, 458, 459, 462, 464, 465, 467, 470, 471, 473, 474, 477, 483, 484, 485, 488, 489, 492, 493, 496, 497, 500, 502, 506, 519, 520, 523, 525, 526, 528, 531, 533, 534, 536, 540, 541, 544], "excluded_lines": [389, 439, 505, 509, 539], "executed_branches": [], "missing_branches": [[406, 407], [406, 430], [410, 411], [410, 413], [416, 417], [416, 418], [418, 419], [418, 421], [464, 465], [464, 467], [473, 474], [473, 477], [483, 484], [483, 502], [488, 489], [488, 492], [525, 526], [525, 528], [531, 533], [531, 536]]}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 13, 14, 18, 69, 70, 74, 103, 107, 117, 118, 122, 165, 166, 170, 218, 222, 226, 236, 237, 241, 284, 295, 316, 331, 358, 381, 382, 386, 438, 504, 508, 538], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [14, 118, 237, 382], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/image.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 17, 50, 81, 126, 162, 226], "summary": {"covered_lines": 15, "num_statements": 109, "percent_covered": 10.48951048951049, "percent_covered_display": "10", "missing_lines": 94, "excluded_lines": 7, "num_branches": 34, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 34}, "missing_lines": [36, 37, 38, 41, 44, 45, 48, 52, 53, 56, 58, 59, 60, 62, 63, 64, 66, 67, 68, 69, 71, 72, 73, 75, 77, 78, 79, 89, 91, 93, 96, 97, 100, 101, 102, 103, 105, 108, 109, 110, 111, 113, 116, 117, 119, 122, 124, 133, 134, 137, 140, 143, 144, 147, 150, 151, 154, 155, 158, 160, 169, 172, 175, 176, 179, 180, 182, 185, 188, 189, 190, 192, 193, 194, 195, 197, 198, 200, 201, 203, 204, 207, 208, 209, 210, 211, 214, 217, 220, 222, 224, 228, 229, 232], "excluded_lines": [13, 21, 51, 82, 127, 163, 227], "executed_branches": [], "missing_branches": [[44, 45], [44, 48], [56, 58], [56, 60], [60, 62], [60, 75], [67, 68], [67, 71], [91, 93], [91, 122], [100, 101], [100, 102], [102, 103], [102, 105], [108, 109], [108, 110], [110, 111], [110, 113], [116, 117], [116, 119], [133, 134], [133, 137], [154, 155], [154, 158], [179, -162], [179, 180], [192, 193], [192, 203], [197, 198], [197, 200], [203, 204], [203, 207], [208, -162], [208, 209]], "functions": {"RenderableImage.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [36, 37, 38, 41, 44, 45, 48], "excluded_lines": [21], "executed_branches": [], "missing_branches": [[44, 45], [44, 48]]}, "RenderableImage._load_image": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [52, 53, 56, 58, 59, 60, 62, 63, 64, 66, 67, 68, 69, 71, 72, 73, 75, 77, 78, 79], "excluded_lines": [51], "executed_branches": [], "missing_branches": [[56, 58], [56, 60], [60, 62], [60, 75], [67, 68], [67, 71]]}, "RenderableImage.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 1, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [89, 91, 93, 96, 97, 100, 101, 102, 103, 105, 108, 109, 110, 111, 113, 116, 117, 119, 122, 124], "excluded_lines": [82], "executed_branches": [], "missing_branches": [[91, 93], [91, 122], [100, 101], [100, 102], [102, 103], [102, 105], [108, 109], [108, 110], [110, 111], [110, 113], [116, 117], [116, 119]]}, "RenderableImage._resize_image": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [133, 134, 137, 140, 143, 144, 147, 150, 151, 154, 155, 158, 160], "excluded_lines": [127], "executed_branches": [], "missing_branches": [[133, 134], [133, 137], [154, 155], [154, 158]]}, "RenderableImage._draw_error_placeholder": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [169, 172, 175, 176, 179, 180, 182, 185, 188, 189, 190, 192, 193, 194, 195, 197, 198, 200, 201, 203, 204, 207, 208, 209, 210, 211, 214, 217, 220, 222, 224], "excluded_lines": [163], "executed_branches": [], "missing_branches": [[179, -162], [179, 180], [192, 193], [192, 203], [197, 198], [197, 200], [203, 204], [203, 207], [208, -162], [208, 209]]}, "RenderableImage.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [228, 229, 232], "excluded_lines": [227], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 17, 50, 81, 126, 162, 226], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [13], "executed_branches": [], "missing_branches": []}}, "classes": {"RenderableImage": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 94, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 94, "excluded_lines": 6, "num_branches": 34, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 34}, "missing_lines": [36, 37, 38, 41, 44, 45, 48, 52, 53, 56, 58, 59, 60, 62, 63, 64, 66, 67, 68, 69, 71, 72, 73, 75, 77, 78, 79, 89, 91, 93, 96, 97, 100, 101, 102, 103, 105, 108, 109, 110, 111, 113, 116, 117, 119, 122, 124, 133, 134, 137, 140, 143, 144, 147, 150, 151, 154, 155, 158, 160, 169, 172, 175, 176, 179, 180, 182, 185, 188, 189, 190, 192, 193, 194, 195, 197, 198, 200, 201, 203, 204, 207, 208, 209, 210, 211, 214, 217, 220, 222, 224, 228, 229, 232], "excluded_lines": [21, 51, 82, 127, 163, 227], "executed_branches": [], "missing_branches": [[44, 45], [44, 48], [56, 58], [56, 60], [60, 62], [60, 75], [67, 68], [67, 71], [91, 93], [91, 122], [100, 101], [100, 102], [102, 103], [102, 105], [108, 109], [108, 110], [110, 111], [110, 113], [116, 117], [116, 119], [133, 134], [133, 137], [154, 155], [154, 158], [179, -162], [179, 180], [192, 193], [192, 203], [197, 198], [197, 200], [203, 204], [203, 207], [208, -162], [208, 209]]}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 17, 50, 81, 126, 162, 226], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [13], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/page.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 10, 11, 14, 39, 44, 111, 131, 132, 135, 155], "summary": {"covered_lines": 14, "num_statements": 77, "percent_covered": 12.612612612612613, "percent_covered_display": "13", "missing_lines": 63, "excluded_lines": 8, "num_branches": 34, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 34}, "missing_lines": [33, 34, 35, 36, 37, 41, 42, 46, 47, 50, 51, 52, 55, 56, 57, 60, 61, 62, 63, 66, 67, 68, 69, 71, 74, 77, 80, 81, 84, 85, 88, 89, 90, 91, 94, 95, 96, 97, 99, 102, 105, 108, 109, 114, 117, 120, 121, 122, 124, 126, 128, 144, 153, 158, 161, 164, 165, 166, 168, 170, 171, 173, 175], "excluded_lines": [11, 18, 40, 45, 112, 132, 136, 156], "executed_branches": [], "missing_branches": [[46, 47], [46, 50], [55, 56], [55, 84], [61, -44], [61, 62], [62, 61], [62, 63], [66, 67], [66, 68], [68, 69], [68, 71], [80, 61], [80, 81], [89, -44], [89, 90], [90, 89], [90, 91], [94, 95], [94, 96], [96, 97], [96, 99], [108, 89], [108, 109], [120, 121], [120, 128], [121, 120], [121, 122], [164, 165], [164, 175], [165, 164], [165, 166], [170, 171], [170, 173]], "functions": {"Container.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [33, 34, 35, 36, 37], "excluded_lines": [18], "executed_branches": [], "missing_branches": []}, "Container.add_child": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [41, 42], "excluded_lines": [40], "executed_branches": [], "missing_branches": []}, "Container.layout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 1, "num_branches": 24, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 24}, "missing_lines": [46, 47, 50, 51, 52, 55, 56, 57, 60, 61, 62, 63, 66, 67, 68, 69, 71, 74, 77, 80, 81, 84, 85, 88, 89, 90, 91, 94, 95, 96, 97, 99, 102, 105, 108, 109], "excluded_lines": [45], "executed_branches": [], "missing_branches": [[46, 47], [46, 50], [55, 56], [55, 84], [61, -44], [61, 62], [62, 61], [62, 63], [66, 67], [66, 68], [68, 69], [68, 71], [80, 61], [80, 81], [89, -44], [89, 90], [90, 89], [90, 91], [94, 95], [94, 96], [96, 97], [96, 99], [108, 89], [108, 109]]}, "Container.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [114, 117, 120, 121, 122, 124, 126, 128], "excluded_lines": [112], "executed_branches": [], "missing_branches": [[120, 121], [120, 128], [121, 120], [121, 122]]}, "Page.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [144, 153], "excluded_lines": [136], "executed_branches": [], "missing_branches": []}, "Page.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [158, 161, 164, 165, 166, 168, 170, 171, 173, 175], "excluded_lines": [156], "executed_branches": [], "missing_branches": [[164, 165], [164, 175], [165, 164], [165, 166], [170, 171], [170, 173]]}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 10, 11, 14, 39, 44, 111, 131, 132, 135, 155], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [11, 132], "executed_branches": [], "missing_branches": []}}, "classes": {"Container": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 51, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 51, "excluded_lines": 4, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [33, 34, 35, 36, 37, 41, 42, 46, 47, 50, 51, 52, 55, 56, 57, 60, 61, 62, 63, 66, 67, 68, 69, 71, 74, 77, 80, 81, 84, 85, 88, 89, 90, 91, 94, 95, 96, 97, 99, 102, 105, 108, 109, 114, 117, 120, 121, 122, 124, 126, 128], "excluded_lines": [18, 40, 45, 112], "executed_branches": [], "missing_branches": [[46, 47], [46, 50], [55, 56], [55, 84], [61, -44], [61, 62], [62, 61], [62, 63], [66, 67], [66, 68], [68, 69], [68, 71], [80, 61], [80, 81], [89, -44], [89, 90], [90, 89], [90, 91], [94, 95], [94, 96], [96, 97], [96, 99], [108, 89], [108, 109], [120, 121], [120, 128], [121, 120], [121, 122]]}, "Page": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 2, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [144, 153, 158, 161, 164, 165, 166, 168, 170, 171, 173, 175], "excluded_lines": [136, 156], "executed_branches": [], "missing_branches": [[164, 165], [164, 175], [165, 164], [165, 166], [170, 171], [170, 173]]}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 10, 11, 14, 39, 44, 111, 131, 132, 135, 155], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [11, 132], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/text.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 18, 37, 54, 55, 59, 60, 64, 65, 69, 70, 74, 75, 79, 80, 84, 85, 89, 93, 97, 111, 134, 138, 146, 147, 152, 168, 184, 201, 202, 206, 207, 211, 215, 233, 234, 238, 239, 243, 253, 275, 301, 302, 306, 333, 334, 338, 342, 399], "summary": {"covered_lines": 56, "num_statements": 210, "percent_covered": 21.705426356589147, "percent_covered_display": "22", "missing_lines": 154, "excluded_lines": 35, "num_branches": 48, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 48}, "missing_lines": [26, 27, 28, 29, 30, 31, 32, 35, 40, 44, 45, 46, 47, 48, 49, 51, 52, 57, 62, 67, 72, 77, 82, 87, 91, 95, 99, 101, 102, 105, 107, 108, 119, 120, 123, 124, 127, 130, 132, 136, 140, 141, 144, 159, 160, 161, 162, 163, 166, 171, 173, 175, 176, 179, 182, 186, 187, 188, 191, 192, 193, 197, 198, 199, 204, 209, 213, 228, 229, 231, 236, 241, 245, 248, 249, 250, 251, 261, 262, 265, 267, 268, 269, 270, 271, 273, 277, 280, 281, 283, 286, 287, 288, 289, 292, 293, 294, 296, 298, 324, 325, 326, 327, 328, 330, 331, 336, 340, 353, 354, 357, 360, 363, 364, 367, 370, 371, 372, 373, 376, 378, 381, 382, 384, 385, 386, 388, 389, 392, 394, 397, 407, 410, 411, 414, 417, 418, 420, 421, 423, 426, 428, 431, 432, 433, 434, 436, 439, 442, 444, 447, 450, 453, 455], "excluded_lines": [13, 19, 38, 56, 61, 66, 71, 76, 81, 86, 90, 94, 98, 112, 135, 139, 147, 153, 169, 185, 203, 208, 212, 216, 235, 240, 244, 254, 276, 302, 309, 335, 339, 343, 400], "executed_branches": [], "missing_branches": [[99, 101], [99, 105], [105, -97], [105, 107], [123, 124], [123, 127], [173, 175], [173, 179], [175, 176], [175, 182], [186, 187], [186, 191], [191, 192], [191, 197], [228, 229], [228, 231], [249, -243], [249, 250], [261, 262], [261, 265], [268, 269], [268, 273], [281, 283], [281, 286], [287, 288], [287, 298], [289, 292], [289, 296], [353, 354], [353, 357], [370, 371], [370, 376], [376, 378], [376, 397], [382, 384], [382, 397], [410, 411], [410, 414], [420, 421], [420, 428], [421, 423], [421, 426], [431, 432], [431, 433], [433, 434], [433, 436], [442, 444], [442, 455]], "functions": {"Text.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [26, 27, 28, 29, 30, 31, 32, 35], "excluded_lines": [19], "executed_branches": [], "missing_branches": []}, "Text._calculate_dimensions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [40, 44, 45, 46, 47, 48, 49, 51, 52], "excluded_lines": [38], "executed_branches": [], "missing_branches": []}, "Text.text": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [57], "excluded_lines": [56], "executed_branches": [], "missing_branches": []}, "Text.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [62], "excluded_lines": [61], "executed_branches": [], "missing_branches": []}, "Text.line": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [72], "excluded_lines": [71], "executed_branches": [], "missing_branches": []}, "Text.width": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [77], "excluded_lines": [76], "executed_branches": [], "missing_branches": []}, "Text.height": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [82], "excluded_lines": [81], "executed_branches": [], "missing_branches": []}, "Text.size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [87], "excluded_lines": [86], "executed_branches": [], "missing_branches": []}, "Text.set_origin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [91], "excluded_lines": [90], "executed_branches": [], "missing_branches": []}, "Text.add_to_line": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [95], "excluded_lines": [94], "executed_branches": [], "missing_branches": []}, "Text._apply_decoration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [99, 101, 102, 105, 107, 108], "excluded_lines": [98], "executed_branches": [], "missing_branches": [[99, 101], [99, 105], [105, -97], [105, 107]]}, "Text.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [119, 120, 123, 124, 127, 130, 132], "excluded_lines": [112], "executed_branches": [], "missing_branches": [[123, 124], [123, 127]]}, "Text.get_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [136], "excluded_lines": [135], "executed_branches": [], "missing_branches": []}, "Text.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [140, 141, 144], "excluded_lines": [139], "executed_branches": [], "missing_branches": []}, "RenderableWord.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [159, 160, 161, 162, 163, 166], "excluded_lines": [153], "executed_branches": [], "missing_branches": []}, "RenderableWord._initialize_text_parts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [171, 173, 175, 176, 179, 182], "excluded_lines": [169], "executed_branches": [], "missing_branches": [[173, 175], [173, 179], [175, 176], [175, 182]]}, "RenderableWord._recalculate_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [186, 187, 188, 191, 192, 193, 197, 198, 199], "excluded_lines": [185], "executed_branches": [], "missing_branches": [[186, 187], [186, 191], [191, 192], [191, 197]]}, "RenderableWord.word": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [204], "excluded_lines": [203], "executed_branches": [], "missing_branches": []}, "RenderableWord.text_parts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [209], "excluded_lines": [208], "executed_branches": [], "missing_branches": []}, "RenderableWord.update_from_word": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [213], "excluded_lines": [212], "executed_branches": [], "missing_branches": []}, "RenderableWord.get_part_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [228, 229, 231], "excluded_lines": [216], "executed_branches": [], "missing_branches": [[228, 229], [228, 231]]}, "RenderableWord.width": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [236], "excluded_lines": [235], "executed_branches": [], "missing_branches": []}, "RenderableWord.height": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [241], "excluded_lines": [240], "executed_branches": [], "missing_branches": []}, "RenderableWord.set_origin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [245, 248, 249, 250, 251], "excluded_lines": [244], "executed_branches": [], "missing_branches": [[249, -243], [249, 250]]}, "RenderableWord.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [261, 262, 265, 267, 268, 269, 270, 271, 273], "excluded_lines": [254], "executed_branches": [], "missing_branches": [[261, 262], [261, 265], [268, 269], [268, 273]]}, "RenderableWord.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [277, 280, 281, 283, 286, 287, 288, 289, 292, 293, 294, 296, 298], "excluded_lines": [276], "executed_branches": [], "missing_branches": [[281, 283], [281, 286], [287, 288], [287, 298], [289, 292], [289, 296]]}, "Line.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [324, 325, 326, 327, 328, 330, 331], "excluded_lines": [309], "executed_branches": [], "missing_branches": []}, "Line.renderable_words": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [336], "excluded_lines": [335], "executed_branches": [], "missing_branches": []}, "Line.set_next": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [340], "excluded_lines": [339], "executed_branches": [], "missing_branches": []}, "Line.add_word": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [353, 354, 357, 360, 363, 364, 367, 370, 371, 372, 373, 376, 378, 381, 382, 384, 385, 386, 388, 389, 392, 394, 397], "excluded_lines": [343], "executed_branches": [], "missing_branches": [[353, 354], [353, 357], [370, 371], [370, 376], [376, 378], [376, 397], [382, 384], [382, 397]]}, "Line.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 1, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [407, 410, 411, 414, 417, 418, 420, 421, 423, 426, 428, 431, 432, 433, 434, 436, 439, 442, 444, 447, 450, 453, 455], "excluded_lines": [400], "executed_branches": [], "missing_branches": [[410, 411], [410, 414], [420, 421], [420, 428], [421, 423], [421, 426], [431, 432], [431, 433], [433, 434], [433, 436], [442, 444], [442, 455]]}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 18, 37, 54, 55, 59, 60, 64, 65, 69, 70, 74, 75, 79, 80, 84, 85, 89, 93, 97, 111, 134, 138, 146, 147, 152, 168, 184, 201, 202, 206, 207, 211, 215, 233, 234, 238, 239, 243, 253, 275, 301, 302, 306, 333, 334, 338, 342, 399], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [13, 147, 302], "executed_branches": [], "missing_branches": []}}, "classes": {"Text": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 43, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 43, "excluded_lines": 15, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [26, 27, 28, 29, 30, 31, 32, 35, 40, 44, 45, 46, 47, 48, 49, 51, 52, 57, 62, 67, 72, 77, 82, 87, 91, 95, 99, 101, 102, 105, 107, 108, 119, 120, 123, 124, 127, 130, 132, 136, 140, 141, 144], "excluded_lines": [19, 38, 56, 61, 66, 71, 76, 81, 86, 90, 94, 98, 112, 135, 139], "executed_branches": [], "missing_branches": [[99, 101], [99, 105], [105, -97], [105, 107], [123, 124], [123, 127]]}, "RenderableWord": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 56, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 56, "excluded_lines": 12, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 22}, "missing_lines": [159, 160, 161, 162, 163, 166, 171, 173, 175, 176, 179, 182, 186, 187, 188, 191, 192, 193, 197, 198, 199, 204, 209, 213, 228, 229, 231, 236, 241, 245, 248, 249, 250, 251, 261, 262, 265, 267, 268, 269, 270, 271, 273, 277, 280, 281, 283, 286, 287, 288, 289, 292, 293, 294, 296, 298], "excluded_lines": [153, 169, 185, 203, 208, 212, 216, 235, 240, 244, 254, 276], "executed_branches": [], "missing_branches": [[173, 175], [173, 179], [175, 176], [175, 182], [186, 187], [186, 191], [191, 192], [191, 197], [228, 229], [228, 231], [249, -243], [249, 250], [261, 262], [261, 265], [268, 269], [268, 273], [281, 283], [281, 286], [287, 288], [287, 298], [289, 292], [289, 296]]}, "Line": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 55, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 55, "excluded_lines": 5, "num_branches": 20, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 20}, "missing_lines": [324, 325, 326, 327, 328, 330, 331, 336, 340, 353, 354, 357, 360, 363, 364, 367, 370, 371, 372, 373, 376, 378, 381, 382, 384, 385, 386, 388, 389, 392, 394, 397, 407, 410, 411, 414, 417, 418, 420, 421, 423, 426, 428, 431, 432, 433, 434, 436, 439, 442, 444, 447, 450, 453, 455], "excluded_lines": [309, 335, 339, 343, 400], "executed_branches": [], "missing_branches": [[353, 354], [353, 357], [370, 371], [370, 376], [376, 378], [376, 397], [382, 384], [382, 397], [410, 411], [410, 414], [420, 421], [420, 428], [421, 423], [421, 426], [431, 432], [431, 433], [433, 434], [433, 436], [442, 444], [442, 455]]}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 18, 37, 54, 55, 59, 60, 64, 65, 69, 70, 74, 75, 79, 80, 84, 85, 89, 93, 97, 111, 134, 138, 146, 147, 152, 168, 184, 201, 202, 206, 207, 211, 215, 233, 234, 238, 239, 243, 253, 275, 301, 302, 306, 333, 334, 338, 342, 399], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [13, 147, 302], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/core/__init__.py": {"executed_lines": [1, 8], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 8], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 8], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/core/base.py": {"executed_lines": [1, 2, 4, 7, 8, 12, 21, 22, 26, 33, 35, 49, 50, 54, 61, 63], "summary": {"covered_lines": 13, "num_statements": 19, "percent_covered": 61.904761904761905, "percent_covered_display": "62", "missing_lines": 6, "excluded_lines": 8, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [19, 45, 46, 47, 59, 67], "excluded_lines": [8, 13, 22, 27, 36, 50, 55, 64], "executed_branches": [], "missing_branches": [[45, 46], [45, 47]], "functions": {"Renderable.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [19], "excluded_lines": [13], "executed_branches": [], "missing_branches": []}, "Interactable.__init__": {"executed_lines": [33], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [27], "executed_branches": [], "missing_branches": []}, "Interactable.interact": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [45, 46, 47], "excluded_lines": [36], "executed_branches": [], "missing_branches": [[45, 46], [45, 47]]}, "Layoutable.layout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [59], "excluded_lines": [55], "executed_branches": [], "missing_branches": []}, "Queriable.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [67], "excluded_lines": [64], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 12, 21, 22, 26, 35, 49, 50, 54, 61, 63], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 22, 50], "executed_branches": [], "missing_branches": []}}, "classes": {"Renderable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [19], "excluded_lines": [13], "executed_branches": [], "missing_branches": []}, "Interactable": {"executed_lines": [33], "summary": {"covered_lines": 1, "num_statements": 4, "percent_covered": 16.666666666666668, "percent_covered_display": "17", "missing_lines": 3, "excluded_lines": 2, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [45, 46, 47], "excluded_lines": [27, 36], "executed_branches": [], "missing_branches": [[45, 46], [45, 47]]}, "Layoutable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [59], "excluded_lines": [55], "executed_branches": [], "missing_branches": []}, "Queriable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [67], "excluded_lines": [64], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 12, 21, 22, 26, 35, 49, 50, 54, 61, 63], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 22, 50], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/io/__init__.py": {"executed_lines": [1, 14, 15, 16, 19, 20, 23, 24, 27, 30, 33, 62, 67], "summary": {"covered_lines": 12, "num_statements": 29, "percent_covered": 32.432432432432435, "percent_covered_display": "32", "missing_lines": 17, "excluded_lines": 4, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [45, 46, 47, 48, 50, 53, 54, 55, 56, 57, 58, 60, 64, 65, 69, 70, 71], "excluded_lines": [1, 34, 63, 68], "executed_branches": [], "missing_branches": [[45, 46], [45, 48], [48, 50], [48, 53], [55, 56], [55, 60], [69, 70], [69, 71]], "functions": {"read_document": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [45, 46, 47, 48, 50, 53, 54, 55, 56, 57, 58, 60], "excluded_lines": [34], "executed_branches": [], "missing_branches": [[45, 46], [45, 48], [48, 50], [48, 53], [55, 56], [55, 60]]}, "_is_html_source": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [64, 65], "excluded_lines": [63], "executed_branches": [], "missing_branches": []}, "_is_epub_source": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [69, 70, 71], "excluded_lines": [68], "executed_branches": [], "missing_branches": [[69, 70], [69, 71]]}, "": {"executed_lines": [1, 14, 15, 16, 19, 20, 23, 24, 27, 30, 33, 62, 67], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 14, 15, 16, 19, 20, 23, 24, 27, 30, 33, 62, 67], "summary": {"covered_lines": 12, "num_statements": 29, "percent_covered": 32.432432432432435, "percent_covered_display": "32", "missing_lines": 17, "excluded_lines": 4, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [45, 46, 47, 48, 50, 53, 54, 55, 56, 57, 58, 60, 64, 65, 69, 70, 71], "excluded_lines": [1, 34, 63, 68], "executed_branches": [], "missing_branches": [[45, 46], [45, 48], [48, 50], [48, 53], [55, 56], [55, 60], [69, 70], [69, 71]]}}}, "pyWebLayout/io/readers/__init__.py": {"executed_lines": [1, 9, 12, 13, 14, 18, 19, 21], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 9, 12, 13, 14, 18, 19, 21], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 9, 12, 13, 14, 18, 19, 21], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/io/readers/base.py": {"executed_lines": [1, 8, 9, 10, 13, 14, 20, 25, 26, 38, 39, 52, 62, 76, 77, 83, 84, 98, 99, 105, 106, 120, 121, 127, 128, 142, 143, 149, 150, 164, 165, 172, 180, 184, 188, 192, 196], "summary": {"covered_lines": 30, "num_statements": 60, "percent_covered": 44.11764705882353, "percent_covered_display": "44", "missing_lines": 30, "excluded_lines": 22, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [22, 23, 36, 50, 60, 73, 95, 117, 139, 161, 174, 175, 176, 177, 178, 182, 186, 190, 194, 208, 211, 214, 215, 218, 219, 222, 223, 226, 227, 229], "excluded_lines": [1, 14, 21, 27, 40, 53, 63, 77, 85, 99, 107, 121, 129, 143, 151, 165, 173, 181, 185, 189, 193, 197], "executed_branches": [], "missing_branches": [[214, 215], [214, 218], [218, 219], [218, 222], [222, 223], [222, 226], [226, 227], [226, 229]], "functions": {"BaseReader.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [22, 23], "excluded_lines": [21], "executed_branches": [], "missing_branches": []}, "BaseReader.can_read": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [36], "excluded_lines": [27], "executed_branches": [], "missing_branches": []}, "BaseReader.read": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [50], "excluded_lines": [40], "executed_branches": [], "missing_branches": []}, "BaseReader.set_option": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [60], "excluded_lines": [53], "executed_branches": [], "missing_branches": []}, "BaseReader.get_option": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [73], "excluded_lines": [63], "executed_branches": [], "missing_branches": []}, "MetadataReader.extract_metadata": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [95], "excluded_lines": [85], "executed_branches": [], "missing_branches": []}, "StructureReader.extract_structure": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [117], "excluded_lines": [107], "executed_branches": [], "missing_branches": []}, "ContentReader.extract_content": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [139], "excluded_lines": [129], "executed_branches": [], "missing_branches": []}, "ResourceReader.extract_resources": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [161], "excluded_lines": [151], "executed_branches": [], "missing_branches": []}, "CompositeReader.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [174, 175, 176, 177, 178], "excluded_lines": [173], "executed_branches": [], "missing_branches": []}, "CompositeReader.set_metadata_reader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [182], "excluded_lines": [181], "executed_branches": [], "missing_branches": []}, "CompositeReader.set_structure_reader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [186], "excluded_lines": [185], "executed_branches": [], "missing_branches": []}, "CompositeReader.set_content_reader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [190], "excluded_lines": [189], "executed_branches": [], "missing_branches": []}, "CompositeReader.set_resource_reader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [194], "excluded_lines": [193], "executed_branches": [], "missing_branches": []}, "CompositeReader.read": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [208, 211, 214, 215, 218, 219, 222, 223, 226, 227, 229], "excluded_lines": [197], "executed_branches": [], "missing_branches": [[214, 215], [214, 218], [218, 219], [218, 222], [222, 223], [222, 226], [226, 227], [226, 229]]}, "": {"executed_lines": [1, 8, 9, 10, 13, 14, 20, 25, 26, 38, 39, 52, 62, 76, 77, 83, 84, 98, 99, 105, 106, 120, 121, 127, 128, 142, 143, 149, 150, 164, 165, 172, 180, 184, 188, 192, 196], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 7, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 14, 77, 99, 121, 143, 165], "executed_branches": [], "missing_branches": []}}, "classes": {"BaseReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 5, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [22, 23, 36, 50, 60, 73], "excluded_lines": [21, 27, 40, 53, 63], "executed_branches": [], "missing_branches": []}, "MetadataReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [95], "excluded_lines": [85], "executed_branches": [], "missing_branches": []}, "StructureReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [117], "excluded_lines": [107], "executed_branches": [], "missing_branches": []}, "ContentReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [139], "excluded_lines": [129], "executed_branches": [], "missing_branches": []}, "ResourceReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [161], "excluded_lines": [151], "executed_branches": [], "missing_branches": []}, "CompositeReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 6, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [174, 175, 176, 177, 178, 182, 186, 190, 194, 208, 211, 214, 215, 218, 219, 222, 223, 226, 227, 229], "excluded_lines": [173, 181, 185, 189, 193, 197], "executed_branches": [], "missing_branches": [[214, 215], [214, 218], [218, 219], [218, 222], [222, 223], [222, 226], [226, 227], [226, 229]]}, "": {"executed_lines": [1, 8, 9, 10, 13, 14, 20, 25, 26, 38, 39, 52, 62, 76, 77, 83, 84, 98, 99, 105, 106, 120, 121, 127, 128, 142, 143, 149, 150, 164, 165, 172, 180, 184, 188, 192, 196], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 7, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 14, 77, 99, 121, 143, 165], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/io/readers/epub_metadata.py": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 18, 25, 26, 33, 39, 72, 78, 90, 117, 140, 215, 242, 286, 296, 311, 320], "summary": {"covered_lines": 22, "num_statements": 155, "percent_covered": 9.12863070539419, "percent_covered_display": "9", "missing_lines": 133, "excluded_lines": 15, "num_branches": 86, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 86}, "missing_lines": [35, 36, 37, 51, 53, 55, 58, 60, 61, 64, 66, 70, 74, 75, 76, 85, 87, 88, 93, 95, 96, 97, 98, 101, 102, 103, 104, 105, 106, 107, 108, 111, 112, 113, 114, 115, 119, 120, 122, 123, 124, 127, 128, 129, 132, 135, 137, 138, 147, 165, 166, 168, 169, 171, 172, 173, 176, 177, 179, 180, 181, 184, 185, 186, 188, 190, 191, 192, 195, 196, 197, 199, 201, 202, 203, 207, 208, 209, 210, 212, 213, 223, 225, 226, 227, 229, 230, 233, 235, 236, 237, 239, 240, 250, 261, 262, 263, 266, 267, 269, 272, 274, 277, 278, 279, 282, 288, 289, 290, 291, 292, 293, 294, 304, 305, 306, 309, 318, 327, 328, 330, 331, 334, 335, 338, 341, 342, 343, 346, 347, 348, 350, 352], "excluded_lines": [1, 26, 34, 40, 73, 79, 91, 118, 141, 216, 243, 287, 297, 312, 321], "executed_branches": [], "missing_branches": [[60, 61], [60, 64], [95, 96], [95, 111], [101, 102], [101, 111], [103, 101], [103, 104], [105, 101], [105, 106], [111, -90], [111, 112], [112, 111], [112, 113], [113, 112], [113, 114], [119, 120], [119, 122], [128, 129], [128, 132], [165, -140], [165, 166], [168, 165], [168, 169], [169, 171], [169, 207], [172, 165], [172, 173], [177, 179], [177, 188], [180, 181], [180, 184], [185, 165], [185, 186], [188, 190], [188, 199], [191, 192], [191, 195], [196, 165], [196, 197], [199, 165], [199, 201], [202, 165], [202, 203], [208, 209], [208, 212], [209, 208], [209, 210], [212, 165], [212, 213], [225, 226], [225, 233], [229, 225], [229, 230], [235, -215], [235, 236], [236, 235], [236, 237], [237, 236], [237, 239], [261, 262], [261, 277], [262, 261], [262, 263], [266, 267], [266, 274], [267, 269], [267, 272], [278, 279], [278, 282], [288, -286], [288, 289], [304, 305], [304, 309], [305, 304], [305, 306], [330, 331], [330, 352], [331, 334], [331, 338], [334, 335], [334, 352], [342, 343], [342, 346], [347, 348], [347, 350]], "functions": {"EPUBMetadataReader.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [35, 36, 37], "excluded_lines": [34], "executed_branches": [], "missing_branches": []}, "EPUBMetadataReader.extract_metadata": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [51, 53, 55, 58, 60, 61, 64, 66, 70], "excluded_lines": [40], "executed_branches": [], "missing_branches": [[60, 61], [60, 64]]}, "EPUBMetadataReader._reset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [74, 75, 76], "excluded_lines": [73], "executed_branches": [], "missing_branches": []}, "EPUBMetadataReader._extract_epub": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [85, 87, 88], "excluded_lines": [79], "executed_branches": [], "missing_branches": []}, "EPUBMetadataReader._find_package_document": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 18, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 18, "excluded_lines": 1, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [93, 95, 96, 97, 98, 101, 102, 103, 104, 105, 106, 107, 108, 111, 112, 113, 114, 115], "excluded_lines": [91], "executed_branches": [], "missing_branches": [[95, 96], [95, 111], [101, 102], [101, 111], [103, 101], [103, 104], [105, 101], [105, 106], [111, -90], [111, 112], [112, 111], [112, 113], [113, 112], [113, 114]]}, "EPUBMetadataReader._parse_package_metadata": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [119, 120, 122, 123, 124, 127, 128, 129, 132, 135, 137, 138], "excluded_lines": [118], "executed_branches": [], "missing_branches": [[119, 120], [119, 122], [128, 129], [128, 132]]}, "EPUBMetadataReader._parse_dublin_core": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 33, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 33, "excluded_lines": 1, "num_branches": 30, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 30}, "missing_lines": [147, 165, 166, 168, 169, 171, 172, 173, 176, 177, 179, 180, 181, 184, 185, 186, 188, 190, 191, 192, 195, 196, 197, 199, 201, 202, 203, 207, 208, 209, 210, 212, 213], "excluded_lines": [141], "executed_branches": [], "missing_branches": [[165, -140], [165, 166], [168, 165], [168, 169], [169, 171], [169, 207], [172, 165], [172, 173], [177, 179], [177, 188], [180, 181], [180, 184], [185, 165], [185, 186], [188, 190], [188, 199], [191, 192], [191, 195], [196, 165], [196, 197], [199, 165], [199, 201], [202, 165], [202, 203], [208, 209], [208, 212], [209, 208], [209, 210], [212, 165], [212, 213]]}, "EPUBMetadataReader._parse_opf_metadata": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [223, 225, 226, 227, 229, 230, 233, 235, 236, 237, 239, 240], "excluded_lines": [216], "executed_branches": [], "missing_branches": [[225, 226], [225, 233], [229, 225], [229, 230], [235, -215], [235, 236], [236, 235], [236, 237], [237, 236], [237, 239]]}, "EPUBMetadataReader._populate_document": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [250, 261, 262, 263, 266, 267, 269, 272, 274, 277, 278, 279, 282], "excluded_lines": [243], "executed_branches": [], "missing_branches": [[261, 262], [261, 277], [262, 261], [262, 263], [266, 267], [266, 274], [267, 269], [267, 272], [278, 279], [278, 282]]}, "EPUBMetadataReader._cleanup": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [288, 289, 290, 291, 292, 293, 294], "excluded_lines": [287], "executed_branches": [], "missing_branches": [[288, -286], [288, 289]]}, "EPUBMetadataReader.get_unique_identifier": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [304, 305, 306, 309], "excluded_lines": [297], "executed_branches": [], "missing_branches": [[304, 305], [304, 309], [305, 304], [305, 306]]}, "EPUBMetadataReader.get_cover_id": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [318], "excluded_lines": [312], "executed_branches": [], "missing_branches": []}, "EPUBMetadataReader.get_creators": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [327, 328, 330, 331, 334, 335, 338, 341, 342, 343, 346, 347, 348, 350, 352], "excluded_lines": [321], "executed_branches": [], "missing_branches": [[330, 331], [330, 352], [331, 334], [331, 338], [334, 335], [334, 352], [342, 343], [342, 346], [347, 348], [347, 350]]}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 18, 25, 26, 33, 39, 72, 78, 90, 117, 140, 215, 242, 286, 296, 311, 320], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 26], "executed_branches": [], "missing_branches": []}}, "classes": {"EPUBMetadataReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 133, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 133, "excluded_lines": 13, "num_branches": 86, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 86}, "missing_lines": [35, 36, 37, 51, 53, 55, 58, 60, 61, 64, 66, 70, 74, 75, 76, 85, 87, 88, 93, 95, 96, 97, 98, 101, 102, 103, 104, 105, 106, 107, 108, 111, 112, 113, 114, 115, 119, 120, 122, 123, 124, 127, 128, 129, 132, 135, 137, 138, 147, 165, 166, 168, 169, 171, 172, 173, 176, 177, 179, 180, 181, 184, 185, 186, 188, 190, 191, 192, 195, 196, 197, 199, 201, 202, 203, 207, 208, 209, 210, 212, 213, 223, 225, 226, 227, 229, 230, 233, 235, 236, 237, 239, 240, 250, 261, 262, 263, 266, 267, 269, 272, 274, 277, 278, 279, 282, 288, 289, 290, 291, 292, 293, 294, 304, 305, 306, 309, 318, 327, 328, 330, 331, 334, 335, 338, 341, 342, 343, 346, 347, 348, 350, 352], "excluded_lines": [34, 40, 73, 79, 91, 118, 141, 216, 243, 287, 297, 312, 321], "executed_branches": [], "missing_branches": [[60, 61], [60, 64], [95, 96], [95, 111], [101, 102], [101, 111], [103, 101], [103, 104], [105, 101], [105, 106], [111, -90], [111, 112], [112, 111], [112, 113], [113, 112], [113, 114], [119, 120], [119, 122], [128, 129], [128, 132], [165, -140], [165, 166], [168, 165], [168, 169], [169, 171], [169, 207], [172, 165], [172, 173], [177, 179], [177, 188], [180, 181], [180, 184], [185, 165], [185, 186], [188, 190], [188, 199], [191, 192], [191, 195], [196, 165], [196, 197], [199, 165], [199, 201], [202, 165], [202, 203], [208, 209], [208, 212], [209, 208], [209, 210], [212, 165], [212, 213], [225, 226], [225, 233], [229, 225], [229, 230], [235, -215], [235, 236], [236, 235], [236, 237], [237, 236], [237, 239], [261, 262], [261, 277], [262, 261], [262, 263], [266, 267], [266, 274], [267, 269], [267, 272], [278, 279], [278, 282], [288, -286], [288, 289], [304, 305], [304, 309], [305, 304], [305, 306], [330, 331], [330, 352], [331, 334], [331, 338], [334, 335], [334, 352], [342, 343], [342, 346], [347, 348], [347, 350]]}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 18, 25, 26, 33, 39, 72, 78, 90, 117, 140, 215, 242, 286, 296, 311, 320], "summary": {"covered_lines": 22, "num_statements": 22, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 26], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/io/readers/epub_reader.py": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 16, 17, 21, 30, 31, 38, 54, 86, 113, 141, 182, 211, 234, 262, 302, 329, 392], "summary": {"covered_lines": 23, "num_statements": 203, "percent_covered": 7.44336569579288, "percent_covered_display": "7", "missing_lines": 180, "excluded_lines": 14, "num_branches": 106, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 106}, "missing_lines": [45, 46, 47, 48, 49, 50, 51, 52, 61, 63, 64, 67, 70, 73, 76, 78, 82, 83, 84, 88, 89, 92, 93, 94, 95, 98, 99, 100, 101, 102, 105, 106, 107, 108, 111, 116, 117, 118, 119, 120, 121, 122, 123, 125, 126, 129, 130, 133, 136, 139, 149, 150, 151, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180, 190, 191, 192, 195, 196, 197, 198, 200, 202, 203, 205, 219, 220, 221, 224, 225, 226, 229, 230, 231, 232, 236, 238, 239, 240, 241, 242, 243, 244, 246, 248, 251, 252, 255, 256, 257, 260, 270, 272, 273, 276, 277, 278, 281, 282, 285, 294, 295, 297, 300, 305, 306, 308, 309, 311, 312, 314, 315, 317, 318, 320, 321, 323, 324, 326, 327, 332, 334, 335, 336, 338, 339, 340, 343, 344, 346, 349, 350, 351, 353, 354, 355, 358, 359, 360, 363, 366, 368, 369, 372, 373, 376, 377, 379, 380, 382, 383, 384, 385, 387, 388, 389, 402, 403], "excluded_lines": [1, 31, 39, 55, 87, 114, 142, 183, 212, 235, 263, 303, 330, 393], "executed_branches": [], "missing_branches": [[93, 94], [93, 105], [98, 99], [98, 105], [100, 98], [100, 101], [105, 106], [105, 111], [106, 105], [106, 107], [117, 118], [117, 125], [118, 119], [118, 122], [119, 118], [119, 120], [122, 117], [122, 123], [125, 126], [125, 129], [150, 151], [150, 154], [154, -141], [154, 155], [155, 154], [155, 157], [160, 161], [160, 162], [162, 163], [162, 164], [164, 165], [164, 166], [166, 167], [166, 168], [168, 169], [168, 172], [169, 170], [169, 171], [172, 173], [172, 174], [174, 175], [174, 176], [176, 177], [176, 180], [191, 192], [191, 195], [195, -182], [195, 196], [200, 195], [200, 202], [220, 221], [220, 224], [225, 226], [225, 229], [229, -211], [229, 230], [231, 229], [231, 232], [236, 238], [236, 246], [238, 239], [238, 246], [239, 240], [239, 243], [240, 239], [240, 241], [243, 238], [243, 244], [246, 248], [246, 251], [256, 257], [256, 260], [270, -262], [270, 272], [294, 295], [294, 297], [305, 306], [305, 308], [308, 309], [308, 311], [311, 312], [311, 314], [314, 315], [314, 317], [317, 318], [317, 320], [320, 321], [320, 323], [323, 324], [323, 326], [326, -302], [326, 327], [335, -334], [335, 336], [336, 338], [336, 343], [343, 335], [343, 344], [349, -329], [349, 350], [350, 351], [350, 353], [359, 360], [359, 363], [376, 349], [376, 377]], "functions": {"EPUBReader.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [45, 46, 47, 48, 49, 50, 51, 52], "excluded_lines": [39], "executed_branches": [], "missing_branches": []}, "EPUBReader.read": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [61, 63, 64, 67, 70, 73, 76, 78, 82, 83, 84], "excluded_lines": [55], "executed_branches": [], "missing_branches": []}, "EPUBReader._extract_epub": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [88, 89, 92, 93, 94, 95, 98, 99, 100, 101, 102, 105, 106, 107, 108, 111], "excluded_lines": [87], "executed_branches": [], "missing_branches": [[93, 94], [93, 105], [98, 99], [98, 105], [100, 98], [100, 101], [105, 106], [105, 111], [106, 105], [106, 107]]}, "EPUBReader._parse_package_document": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [116, 117, 118, 119, 120, 121, 122, 123, 125, 126, 129, 130, 133, 136, 139], "excluded_lines": [114], "executed_branches": [], "missing_branches": [[117, 118], [117, 125], [118, 119], [118, 122], [119, 118], [119, 120], [122, 117], [122, 123], [125, 126], [125, 129]]}, "EPUBReader._parse_metadata": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 26, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 26, "excluded_lines": 1, "num_branches": 24, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 24}, "missing_lines": [149, 150, 151, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180], "excluded_lines": [142], "executed_branches": [], "missing_branches": [[150, 151], [150, 154], [154, -141], [154, 155], [155, 154], [155, 157], [160, 161], [160, 162], [162, 163], [162, 164], [164, 165], [164, 166], [166, 167], [166, 168], [168, 169], [168, 172], [169, 170], [169, 171], [172, 173], [172, 174], [174, 175], [174, 176], [176, 177], [176, 180]]}, "EPUBReader._parse_manifest": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [190, 191, 192, 195, 196, 197, 198, 200, 202, 203, 205], "excluded_lines": [183], "executed_branches": [], "missing_branches": [[191, 192], [191, 195], [195, -182], [195, 196], [200, 195], [200, 202]]}, "EPUBReader._parse_spine": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [219, 220, 221, 224, 225, 226, 229, 230, 231, 232], "excluded_lines": [212], "executed_branches": [], "missing_branches": [[220, 221], [220, 224], [225, 226], [225, 229], [229, -211], [229, 230], [231, 229], [231, 232]]}, "EPUBReader._parse_toc": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 1, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [236, 238, 239, 240, 241, 242, 243, 244, 246, 248, 251, 252, 255, 256, 257, 260], "excluded_lines": [235], "executed_branches": [], "missing_branches": [[236, 238], [236, 246], [238, 239], [238, 246], [239, 240], [239, 243], [240, 239], [240, 241], [243, 238], [243, 244], [246, 248], [246, 251], [256, 257], [256, 260]]}, "EPUBReader._parse_nav_points": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [270, 272, 273, 276, 277, 278, 281, 282, 285, 294, 295, 297, 300], "excluded_lines": [263], "executed_branches": [], "missing_branches": [[270, -262], [270, 272], [294, 295], [294, 297]]}, "EPUBReader._create_book": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 16, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 16, "excluded_lines": 1, "num_branches": 16, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 16}, "missing_lines": [305, 306, 308, 309, 311, 312, 314, 315, 317, 318, 320, 321, 323, 324, 326, 327], "excluded_lines": [303], "executed_branches": [], "missing_branches": [[305, 306], [305, 308], [308, 309], [308, 311], [311, 312], [311, 314], [314, 315], [314, 317], [317, 318], [317, 320], [320, 321], [320, 323], [323, 324], [323, 326], [326, -302], [326, 327]]}, "EPUBReader._add_chapters": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 29, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 29, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [332, 334, 346, 349, 350, 351, 353, 354, 355, 358, 359, 360, 363, 366, 368, 369, 372, 373, 376, 377, 379, 380, 382, 383, 384, 385, 387, 388, 389], "excluded_lines": [330], "executed_branches": [], "missing_branches": [[349, -329], [349, 350], [350, 351], [350, 353], [359, 360], [359, 363], [376, 349], [376, 377]]}, "EPUBReader._add_chapters.add_to_toc_map": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [335, 336, 338, 339, 340, 343, 344], "excluded_lines": [], "executed_branches": [], "missing_branches": [[335, -334], [335, 336], [336, 338], [336, 343], [343, 335], [343, 344]]}, "read_epub": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [402, 403], "excluded_lines": [393], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 16, 17, 21, 30, 31, 38, 54, 86, 113, 141, 182, 211, 234, 262, 302, 329, 392], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 31], "executed_branches": [], "missing_branches": []}}, "classes": {"EPUBReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 178, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 178, "excluded_lines": 11, "num_branches": 106, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 106}, "missing_lines": [45, 46, 47, 48, 49, 50, 51, 52, 61, 63, 64, 67, 70, 73, 76, 78, 82, 83, 84, 88, 89, 92, 93, 94, 95, 98, 99, 100, 101, 102, 105, 106, 107, 108, 111, 116, 117, 118, 119, 120, 121, 122, 123, 125, 126, 129, 130, 133, 136, 139, 149, 150, 151, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180, 190, 191, 192, 195, 196, 197, 198, 200, 202, 203, 205, 219, 220, 221, 224, 225, 226, 229, 230, 231, 232, 236, 238, 239, 240, 241, 242, 243, 244, 246, 248, 251, 252, 255, 256, 257, 260, 270, 272, 273, 276, 277, 278, 281, 282, 285, 294, 295, 297, 300, 305, 306, 308, 309, 311, 312, 314, 315, 317, 318, 320, 321, 323, 324, 326, 327, 332, 334, 335, 336, 338, 339, 340, 343, 344, 346, 349, 350, 351, 353, 354, 355, 358, 359, 360, 363, 366, 368, 369, 372, 373, 376, 377, 379, 380, 382, 383, 384, 385, 387, 388, 389], "excluded_lines": [39, 55, 87, 114, 142, 183, 212, 235, 263, 303, 330], "executed_branches": [], "missing_branches": [[93, 94], [93, 105], [98, 99], [98, 105], [100, 98], [100, 101], [105, 106], [105, 111], [106, 105], [106, 107], [117, 118], [117, 125], [118, 119], [118, 122], [119, 118], [119, 120], [122, 117], [122, 123], [125, 126], [125, 129], [150, 151], [150, 154], [154, -141], [154, 155], [155, 154], [155, 157], [160, 161], [160, 162], [162, 163], [162, 164], [164, 165], [164, 166], [166, 167], [166, 168], [168, 169], [168, 172], [169, 170], [169, 171], [172, 173], [172, 174], [174, 175], [174, 176], [176, 177], [176, 180], [191, 192], [191, 195], [195, -182], [195, 196], [200, 195], [200, 202], [220, 221], [220, 224], [225, 226], [225, 229], [229, -211], [229, 230], [231, 229], [231, 232], [236, 238], [236, 246], [238, 239], [238, 246], [239, 240], [239, 243], [240, 239], [240, 241], [243, 238], [243, 244], [246, 248], [246, 251], [256, 257], [256, 260], [270, -262], [270, 272], [294, 295], [294, 297], [305, 306], [305, 308], [308, 309], [308, 311], [311, 312], [311, 314], [314, 315], [314, 317], [317, 318], [317, 320], [320, 321], [320, 323], [323, 324], [323, 326], [326, -302], [326, 327], [335, -334], [335, 336], [336, 338], [336, 343], [343, 335], [343, 344], [349, -329], [349, 350], [350, 351], [350, 353], [359, 360], [359, 363], [376, 349], [376, 377]]}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 16, 17, 21, 30, 31, 38, 54, 86, 113, 141, 182, 211, 234, 262, 302, 329, 392], "summary": {"covered_lines": 23, "num_statements": 25, "percent_covered": 92.0, "percent_covered_display": "92", "missing_lines": 2, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [402, 403], "excluded_lines": [1, 31, 393], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/io/readers/html.py": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 26, 32, 65, 113, 141, 156, 174], "summary": {"covered_lines": 16, "num_statements": 64, "percent_covered": 18.6046511627907, "percent_covered_display": "19", "missing_lines": 48, "excluded_lines": 9, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 22}, "missing_lines": [28, 29, 30, 42, 44, 45, 48, 49, 53, 55, 56, 57, 60, 61, 63, 82, 83, 84, 85, 86, 89, 92, 93, 96, 99, 100, 103, 104, 105, 108, 109, 111, 124, 126, 128, 130, 131, 132, 135, 138, 152, 153, 167, 168, 170, 171, 185, 186], "excluded_lines": [1, 19, 27, 33, 66, 114, 142, 157, 175], "executed_branches": [], "missing_branches": [[42, 44], [42, 53], [44, 45], [44, 48], [53, 55], [53, 63], [92, 93], [92, 96], [99, 100], [99, 103], [104, 105], [104, 108], [108, 109], [108, 111], [124, 126], [124, 128], [128, 130], [128, 138], [130, 131], [130, 135], [167, 168], [167, 170]], "functions": {"HTMLReader.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [28, 29, 30], "excluded_lines": [27], "executed_branches": [], "missing_branches": []}, "HTMLReader.can_read": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [42, 44, 45, 48, 49, 53, 55, 56, 57, 60, 61, 63], "excluded_lines": [33], "executed_branches": [], "missing_branches": [[42, 44], [42, 53], [44, 45], [44, 48], [53, 55], [53, 63]]}, "HTMLReader.read": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [82, 83, 84, 85, 86, 89, 92, 93, 96, 99, 100, 103, 104, 105, 108, 109, 111], "excluded_lines": [66], "executed_branches": [], "missing_branches": [[92, 93], [92, 96], [99, 100], [99, 103], [104, 105], [104, 108], [108, 109], [108, 111]]}, "HTMLReader._read_html_content": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [124, 126, 128, 130, 131, 132, 135, 138], "excluded_lines": [114], "executed_branches": [], "missing_branches": [[124, 126], [124, 128], [128, 130], [128, 138], [130, 131], [130, 135]]}, "read_html": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [152, 153], "excluded_lines": [142], "executed_branches": [], "missing_branches": []}, "read_html_file": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [167, 168, 170, 171], "excluded_lines": [157], "executed_branches": [], "missing_branches": [[167, 168], [167, 170]]}, "parse_html_string": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [185, 186], "excluded_lines": [175], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 26, 32, 65, 113, 141, 156, 174], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 19], "executed_branches": [], "missing_branches": []}}, "classes": {"HTMLReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 40, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 40, "excluded_lines": 4, "num_branches": 20, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 20}, "missing_lines": [28, 29, 30, 42, 44, 45, 48, 49, 53, 55, 56, 57, 60, 61, 63, 82, 83, 84, 85, 86, 89, 92, 93, 96, 99, 100, 103, 104, 105, 108, 109, 111, 124, 126, 128, 130, 131, 132, 135, 138], "excluded_lines": [27, 33, 66, 114], "executed_branches": [], "missing_branches": [[42, 44], [42, 53], [44, 45], [44, 48], [53, 55], [53, 63], [92, 93], [92, 96], [99, 100], [99, 103], [104, 105], [104, 108], [108, 109], [108, 111], [124, 126], [124, 128], [128, 130], [128, 138], [130, 131], [130, 135]]}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 26, 32, 65, 113, 141, 156, 174], "summary": {"covered_lines": 16, "num_statements": 24, "percent_covered": 61.53846153846154, "percent_covered_display": "62", "missing_lines": 8, "excluded_lines": 5, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [152, 153, 167, 168, 170, 171, 185, 186], "excluded_lines": [1, 19, 142, 157, 175], "executed_branches": [], "missing_branches": [[167, 168], [167, 170]]}}}, "pyWebLayout/io/readers/html_extraction.py": {"executed_lines": [1, 9, 10, 11, 12, 13, 29, 32, 33, 38, 39, 40, 41, 42, 43, 45, 47, 49, 53, 55, 57, 59, 61, 63, 65, 67, 69, 72, 82, 92, 103, 104, 107, 110, 111, 112, 117, 118, 121, 122, 123, 124, 125, 128, 129, 132, 133, 135, 138, 148, 149, 150, 151, 152, 153, 156, 171, 188, 189, 190, 191, 192, 193, 194, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 223, 224, 225, 226, 230, 237, 246, 248, 249, 256, 257, 258, 259, 260, 261, 262, 263, 267, 279, 292, 298, 301, 312, 314, 315, 317, 318, 319, 320, 321, 322, 323, 325, 346, 347, 348, 362, 365, 378, 379, 380, 387, 389, 390, 391, 392, 393, 396, 398, 399, 400, 401, 402, 403, 404, 405, 407, 408, 411, 413, 422, 423, 424, 425, 426, 427, 430, 432, 433, 434, 435, 436, 437, 438, 442, 443, 446, 448, 449, 452, 453, 454, 456, 459, 462, 466, 469, 471, 472, 473, 474, 475, 476, 477, 478, 481, 483, 484, 485, 486, 487, 488, 489, 490, 493, 495, 497, 498, 499, 500, 501, 507, 509, 510, 511, 512, 513, 514, 515, 516, 518, 521, 523, 524, 525, 528, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 542, 543, 544, 545, 546, 548, 551, 553, 554, 555, 556, 557, 558, 559, 560, 563, 565, 566, 567, 570, 571, 572, 573, 574, 580, 582, 583, 584, 585, 586, 587, 588, 589, 591, 594, 596, 597, 598, 601, 602, 603, 604, 605, 611, 612, 613, 614, 615, 616, 617, 618, 619, 621, 624, 626, 629, 635, 637, 638, 641, 642, 643, 644, 645, 646, 650, 653, 655, 658, 664, 727, 740, 741, 742, 745, 747, 748, 749, 750, 751, 752, 753, 755, 757], "summary": {"covered_lines": 293, "num_statements": 353, "percent_covered": 75.13416815742397, "percent_covered_display": "75", "missing_lines": 60, "excluded_lines": 34, "num_branches": 206, "num_partial_branches": 35, "covered_branches": 127, "missing_branches": 79}, "missing_lines": [211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 227, 228, 231, 232, 233, 234, 235, 238, 239, 240, 241, 242, 243, 244, 264, 265, 293, 294, 295, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 439, 440, 463, 502, 503, 504, 506, 526, 575, 576, 577, 579, 606, 607, 608, 610, 632, 647, 648, 660], "excluded_lines": [1, 33, 46, 52, 56, 60, 64, 68, 73, 93, 139, 159, 282, 302, 368, 388, 397, 412, 431, 447, 460, 470, 482, 494, 522, 552, 564, 595, 625, 630, 636, 654, 659, 730], "executed_branches": [[111, 112], [111, 118], [122, 123], [122, 125], [149, 150], [149, 153], [150, 149], [150, 151], [197, 198], [197, 209], [199, 200], [199, 201], [201, 202], [201, 203], [203, 204], [203, 205], [205, 206], [205, 209], [209, 223], [223, 224], [223, 230], [225, 226], [230, 237], [237, 246], [246, 248], [246, 267], [256, 257], [256, 258], [258, 259], [292, 298], [314, 315], [314, 362], [315, 317], [315, 323], [318, 314], [318, 319], [320, 314], [320, 321], [321, 322], [323, 325], [325, 346], [391, 392], [391, 393], [399, 400], [399, 408], [400, 399], [400, 401], [403, 404], [404, 405], [404, 407], [425, 426], [425, 427], [433, 434], [433, 443], [434, 433], [434, 435], [437, 438], [438, 442], [453, 454], [453, 456], [462, 466], [472, 473], [472, 478], [473, 472], [473, 474], [476, 477], [484, 485], [484, 490], [485, 486], [488, 489], [497, 498], [497, 518], [498, 499], [498, 507], [501, 497], [507, 509], [510, 511], [513, 514], [513, 516], [514, 515], [525, 528], [531, 532], [531, 548], [532, 531], [532, 533], [533, 534], [533, 538], [536, 537], [538, 539], [542, 531], [542, 543], [545, 546], [554, 555], [554, 560], [555, 554], [555, 556], [558, 559], [570, 571], [570, 591], [571, 572], [571, 580], [574, 570], [580, 582], [583, 584], [586, 587], [586, 589], [587, 588], [601, 602], [601, 621], [602, 603], [602, 611], [605, 601], [611, 612], [613, 614], [616, 617], [616, 619], [617, 618], [643, 644], [645, 646], [747, 748], [747, 757], [748, 747], [748, 749], [751, 747], [751, 752], [752, 753], [752, 755]], "missing_branches": [[209, 211], [212, 213], [212, 217], [217, 218], [217, 223], [225, 227], [227, 228], [227, 230], [230, 231], [232, 233], [232, 234], [234, 235], [234, 237], [237, 238], [239, 240], [239, 241], [241, 242], [241, 243], [243, 244], [243, 246], [258, 267], [292, 293], [294, 295], [294, 298], [321, 320], [323, 314], [325, 351], [353, 354], [353, 358], [354, 314], [354, 355], [355, 354], [355, 356], [356, 354], [356, 357], [358, 314], [358, 359], [359, 314], [359, 360], [403, 399], [437, 433], [438, 439], [439, 433], [439, 440], [462, 463], [476, 472], [485, 484], [488, 484], [501, 502], [502, 503], [502, 506], [503, 497], [503, 504], [507, 497], [510, 497], [514, 513], [525, 526], [536, 531], [538, 531], [545, 542], [558, 554], [574, 575], [575, 576], [575, 579], [576, 570], [576, 577], [580, 570], [583, 570], [587, 586], [605, 606], [606, 607], [606, 610], [607, 601], [607, 608], [611, 601], [613, 601], [617, 616], [643, 645], [645, 650]], "functions": {"StyleContext.with_font": {"executed_lines": [47], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [46], "executed_branches": [], "missing_branches": []}, "StyleContext.with_background": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [52], "executed_branches": [], "missing_branches": []}, "StyleContext.with_css_classes": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [56], "executed_branches": [], "missing_branches": []}, "StyleContext.with_css_styles": {"executed_lines": [61], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [60], "executed_branches": [], "missing_branches": []}, "StyleContext.with_attributes": {"executed_lines": [65], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [64], "executed_branches": [], "missing_branches": []}, "StyleContext.push_element": {"executed_lines": [69], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [68], "executed_branches": [], "missing_branches": []}, "create_base_context": {"executed_lines": [82], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [73], "executed_branches": [], "missing_branches": []}, "apply_element_styling": {"executed_lines": [103, 104, 107, 110, 111, 112, 117, 118, 121, 122, 123, 124, 125, 128, 129, 132, 133, 135], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [93], "executed_branches": [[111, 112], [111, 118], [122, 123], [122, 125]], "missing_branches": []}, "parse_inline_styles": {"executed_lines": [148, 149, 150, 151, 152, 153], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [139], "executed_branches": [[149, 150], [149, 153], [150, 149], [150, 151]], "missing_branches": []}, "apply_element_font_styles": {"executed_lines": [171, 188, 189, 190, 191, 192, 193, 194, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 223, 224, 225, 226, 230, 237, 246, 248, 249, 256, 257, 258, 259, 260, 261, 262, 263, 267], "summary": {"covered_lines": 37, "num_statements": 64, "percent_covered": 54.716981132075475, "percent_covered_display": "55", "missing_lines": 27, "excluded_lines": 1, "num_branches": 42, "num_partial_branches": 5, "covered_branches": 21, "missing_branches": 21}, "missing_lines": [211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 227, 228, 231, 232, 233, 234, 235, 238, 239, 240, 241, 242, 243, 244, 264, 265], "excluded_lines": [159], "executed_branches": [[197, 198], [197, 209], [199, 200], [199, 201], [201, 202], [201, 203], [203, 204], [203, 205], [205, 206], [205, 209], [209, 223], [223, 224], [223, 230], [225, 226], [230, 237], [237, 246], [246, 248], [246, 267], [256, 257], [256, 258], [258, 259]], "missing_branches": [[209, 211], [212, 213], [212, 217], [217, 218], [217, 223], [225, 227], [227, 228], [227, 230], [230, 231], [232, 233], [232, 234], [234, 235], [234, 237], [237, 238], [239, 240], [239, 241], [241, 242], [241, 243], [243, 244], [243, 246], [258, 267]]}, "apply_background_styles": {"executed_lines": [292, 298], "summary": {"covered_lines": 2, "num_statements": 5, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 3, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 3}, "missing_lines": [293, 294, 295], "excluded_lines": [282], "executed_branches": [[292, 298]], "missing_branches": [[292, 293], [294, 295], [294, 298]]}, "extract_text_content": {"executed_lines": [312, 314, 315, 317, 318, 319, 320, 321, 322, 323, 325, 346, 347, 348, 362], "summary": {"covered_lines": 15, "num_statements": 25, "percent_covered": 50.98039215686274, "percent_covered_display": "51", "missing_lines": 10, "excluded_lines": 1, "num_branches": 26, "num_partial_branches": 3, "covered_branches": 11, "missing_branches": 15}, "missing_lines": [351, 352, 353, 354, 355, 356, 357, 358, 359, 360], "excluded_lines": [302], "executed_branches": [[314, 315], [314, 362], [315, 317], [315, 323], [318, 314], [318, 319], [320, 314], [320, 321], [321, 322], [323, 325], [325, 346]], "missing_branches": [[321, 320], [323, 314], [325, 351], [353, 354], [353, 358], [354, 314], [354, 355], [355, 354], [355, 356], [356, 354], [356, 357], [358, 314], [358, 359], [359, 314], [359, 360]]}, "process_element": {"executed_lines": [378, 379, 380], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [368], "executed_branches": [], "missing_branches": []}, "paragraph_handler": {"executed_lines": [389, 390, 391, 392, 393], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [388], "executed_branches": [[391, 392], [391, 393]], "missing_branches": []}, "div_handler": {"executed_lines": [398, 399, 400, 401, 402, 403, 404, 405, 407, 408], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 0, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 1, "covered_branches": 7, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [397], "executed_branches": [[399, 400], [399, 408], [400, 399], [400, 401], [403, 404], [404, 405], [404, 407]], "missing_branches": [[403, 399]]}, "heading_handler": {"executed_lines": [413, 422, 423, 424, 425, 426, 427], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [412], "executed_branches": [[425, 426], [425, 427]], "missing_branches": []}, "blockquote_handler": {"executed_lines": [432, 433, 434, 435, 436, 437, 438, 442, 443], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 2, "covered_branches": 6, "missing_branches": 4}, "missing_lines": [439, 440], "excluded_lines": [431], "executed_branches": [[433, 434], [433, 443], [434, 433], [434, 435], [437, 438], [438, 442]], "missing_branches": [[437, 433], [438, 439], [439, 433], [439, 440]]}, "preformatted_handler": {"executed_lines": [448, 449, 452, 453, 454, 456], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [447], "executed_branches": [[453, 454], [453, 456]], "missing_branches": []}, "code_handler": {"executed_lines": [462, 466], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 1, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 1}, "missing_lines": [463], "excluded_lines": [460], "executed_branches": [[462, 466]], "missing_branches": [[462, 463]]}, "unordered_list_handler": {"executed_lines": [471, 472, 473, 474, 475, 476, 477, 478], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 0, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 1, "covered_branches": 5, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [470], "executed_branches": [[472, 473], [472, 478], [473, 472], [473, 474], [476, 477]], "missing_branches": [[476, 472]]}, "ordered_list_handler": {"executed_lines": [483, 484, 485, 486, 487, 488, 489, 490], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 0, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 2, "covered_branches": 4, "missing_branches": 2}, "missing_lines": [], "excluded_lines": [482], "executed_branches": [[484, 485], [484, 490], [485, 486], [488, 489]], "missing_branches": [[485, 484], [488, 484]]}, "list_item_handler": {"executed_lines": [495, 497, 498, 499, 500, 501, 507, 509, 510, 511, 512, 513, 514, 515, 516, 518], "summary": {"covered_lines": 16, "num_statements": 20, "percent_covered": 68.42105263157895, "percent_covered_display": "68", "missing_lines": 4, "excluded_lines": 1, "num_branches": 18, "num_partial_branches": 4, "covered_branches": 10, "missing_branches": 8}, "missing_lines": [502, 503, 504, 506], "excluded_lines": [494], "executed_branches": [[497, 498], [497, 518], [498, 499], [498, 507], [501, 497], [507, 509], [510, 511], [513, 514], [513, 516], [514, 515]], "missing_branches": [[501, 502], [502, 503], [502, 506], [503, 497], [503, 504], [507, 497], [510, 497], [514, 513]]}, "table_handler": {"executed_lines": [523, 524, 525, 528, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 542, 543, 544, 545, 546, 548], "summary": {"covered_lines": 20, "num_statements": 21, "percent_covered": 86.48648648648648, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 1, "num_branches": 16, "num_partial_branches": 4, "covered_branches": 12, "missing_branches": 4}, "missing_lines": [526], "excluded_lines": [522], "executed_branches": [[525, 528], [531, 532], [531, 548], [532, 531], [532, 533], [533, 534], [533, 538], [536, 537], [538, 539], [542, 531], [542, 543], [545, 546]], "missing_branches": [[525, 526], [536, 531], [538, 531], [545, 542]]}, "table_row_handler": {"executed_lines": [553, 554, 555, 556, 557, 558, 559, 560], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 0, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 1, "covered_branches": 5, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [552], "executed_branches": [[554, 555], [554, 560], [555, 554], [555, 556], [558, 559]], "missing_branches": [[558, 554]]}, "table_cell_handler": {"executed_lines": [565, 566, 567, 570, 571, 572, 573, 574, 580, 582, 583, 584, 585, 586, 587, 588, 589, 591], "summary": {"covered_lines": 18, "num_statements": 22, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 4, "excluded_lines": 1, "num_branches": 18, "num_partial_branches": 4, "covered_branches": 10, "missing_branches": 8}, "missing_lines": [575, 576, 577, 579], "excluded_lines": [564], "executed_branches": [[570, 571], [570, 591], [571, 572], [571, 580], [574, 570], [580, 582], [583, 584], [586, 587], [586, 589], [587, 588]], "missing_branches": [[574, 575], [575, 576], [575, 579], [576, 570], [576, 577], [580, 570], [583, 570], [587, 586]]}, "table_header_cell_handler": {"executed_lines": [596, 597, 598, 601, 602, 603, 604, 605, 611, 612, 613, 614, 615, 616, 617, 618, 619, 621], "summary": {"covered_lines": 18, "num_statements": 22, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 4, "excluded_lines": 1, "num_branches": 18, "num_partial_branches": 4, "covered_branches": 10, "missing_branches": 8}, "missing_lines": [606, 607, 608, 610], "excluded_lines": [595], "executed_branches": [[601, 602], [601, 621], [602, 603], [602, 611], [605, 601], [611, 612], [613, 614], [616, 617], [616, 619], [617, 618]], "missing_branches": [[605, 606], [606, 607], [606, 610], [607, 601], [607, 608], [611, 601], [613, 601], [617, 616]]}, "horizontal_rule_handler": {"executed_lines": [626], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [625], "executed_branches": [], "missing_branches": []}, "line_break_handler": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [632], "excluded_lines": [630], "executed_branches": [], "missing_branches": []}, "image_handler": {"executed_lines": [637, 638, 641, 642, 643, 644, 645, 646, 650], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 2, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 2, "covered_branches": 2, "missing_branches": 2}, "missing_lines": [647, 648], "excluded_lines": [636], "executed_branches": [[643, 644], [645, 646]], "missing_branches": [[643, 645], [645, 650]]}, "ignore_handler": {"executed_lines": [655], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [654], "executed_branches": [], "missing_branches": []}, "generic_handler": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [660], "excluded_lines": [659], "executed_branches": [], "missing_branches": []}, "parse_html_string": {"executed_lines": [740, 741, 742, 745, 747, 748, 749, 750, 751, 752, 753, 755, 757], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 8, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [730], "executed_branches": [[747, 748], [747, 757], [748, 747], [748, 749], [751, 747], [751, 752], [752, 753], [752, 755]], "missing_branches": []}, "": {"executed_lines": [1, 9, 10, 11, 12, 13, 29, 32, 33, 38, 39, 40, 41, 42, 43, 45, 49, 55, 59, 63, 67, 72, 92, 138, 156, 279, 301, 365, 387, 396, 411, 430, 446, 459, 469, 481, 493, 521, 551, 563, 594, 624, 629, 635, 653, 658, 664, 727], "summary": {"covered_lines": 46, "num_statements": 46, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 33], "executed_branches": [], "missing_branches": []}}, "classes": {"StyleContext": {"executed_lines": [47, 53, 57, 61, 65, 69], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [46, 52, 56, 60, 64, 68], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 9, 10, 11, 12, 13, 29, 32, 33, 38, 39, 40, 41, 42, 43, 45, 49, 55, 59, 63, 67, 72, 82, 92, 103, 104, 107, 110, 111, 112, 117, 118, 121, 122, 123, 124, 125, 128, 129, 132, 133, 135, 138, 148, 149, 150, 151, 152, 153, 156, 171, 188, 189, 190, 191, 192, 193, 194, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 223, 224, 225, 226, 230, 237, 246, 248, 249, 256, 257, 258, 259, 260, 261, 262, 263, 267, 279, 292, 298, 301, 312, 314, 315, 317, 318, 319, 320, 321, 322, 323, 325, 346, 347, 348, 362, 365, 378, 379, 380, 387, 389, 390, 391, 392, 393, 396, 398, 399, 400, 401, 402, 403, 404, 405, 407, 408, 411, 413, 422, 423, 424, 425, 426, 427, 430, 432, 433, 434, 435, 436, 437, 438, 442, 443, 446, 448, 449, 452, 453, 454, 456, 459, 462, 466, 469, 471, 472, 473, 474, 475, 476, 477, 478, 481, 483, 484, 485, 486, 487, 488, 489, 490, 493, 495, 497, 498, 499, 500, 501, 507, 509, 510, 511, 512, 513, 514, 515, 516, 518, 521, 523, 524, 525, 528, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 542, 543, 544, 545, 546, 548, 551, 553, 554, 555, 556, 557, 558, 559, 560, 563, 565, 566, 567, 570, 571, 572, 573, 574, 580, 582, 583, 584, 585, 586, 587, 588, 589, 591, 594, 596, 597, 598, 601, 602, 603, 604, 605, 611, 612, 613, 614, 615, 616, 617, 618, 619, 621, 624, 626, 629, 635, 637, 638, 641, 642, 643, 644, 645, 646, 650, 653, 655, 658, 664, 727, 740, 741, 742, 745, 747, 748, 749, 750, 751, 752, 753, 755, 757], "summary": {"covered_lines": 287, "num_statements": 347, "percent_covered": 74.86437613019892, "percent_covered_display": "75", "missing_lines": 60, "excluded_lines": 28, "num_branches": 206, "num_partial_branches": 35, "covered_branches": 127, "missing_branches": 79}, "missing_lines": [211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 227, 228, 231, 232, 233, 234, 235, 238, 239, 240, 241, 242, 243, 244, 264, 265, 293, 294, 295, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 439, 440, 463, 502, 503, 504, 506, 526, 575, 576, 577, 579, 606, 607, 608, 610, 632, 647, 648, 660], "excluded_lines": [1, 33, 73, 93, 139, 159, 282, 302, 368, 388, 397, 412, 431, 447, 460, 470, 482, 494, 522, 552, 564, 595, 625, 630, 636, 654, 659, 730], "executed_branches": [[111, 112], [111, 118], [122, 123], [122, 125], [149, 150], [149, 153], [150, 149], [150, 151], [197, 198], [197, 209], [199, 200], [199, 201], [201, 202], [201, 203], [203, 204], [203, 205], [205, 206], [205, 209], [209, 223], [223, 224], [223, 230], [225, 226], [230, 237], [237, 246], [246, 248], [246, 267], [256, 257], [256, 258], [258, 259], [292, 298], [314, 315], [314, 362], [315, 317], [315, 323], [318, 314], [318, 319], [320, 314], [320, 321], [321, 322], [323, 325], [325, 346], [391, 392], [391, 393], [399, 400], [399, 408], [400, 399], [400, 401], [403, 404], [404, 405], [404, 407], [425, 426], [425, 427], [433, 434], [433, 443], [434, 433], [434, 435], [437, 438], [438, 442], [453, 454], [453, 456], [462, 466], [472, 473], [472, 478], [473, 472], [473, 474], [476, 477], [484, 485], [484, 490], [485, 486], [488, 489], [497, 498], [497, 518], [498, 499], [498, 507], [501, 497], [507, 509], [510, 511], [513, 514], [513, 516], [514, 515], [525, 528], [531, 532], [531, 548], [532, 531], [532, 533], [533, 534], [533, 538], [536, 537], [538, 539], [542, 531], [542, 543], [545, 546], [554, 555], [554, 560], [555, 554], [555, 556], [558, 559], [570, 571], [570, 591], [571, 572], [571, 580], [574, 570], [580, 582], [583, 584], [586, 587], [586, 589], [587, 588], [601, 602], [601, 621], [602, 603], [602, 611], [605, 601], [611, 612], [613, 614], [616, 617], [616, 619], [617, 618], [643, 644], [645, 646], [747, 748], [747, 757], [748, 747], [748, 749], [751, 747], [751, 752], [752, 753], [752, 755]], "missing_branches": [[209, 211], [212, 213], [212, 217], [217, 218], [217, 223], [225, 227], [227, 228], [227, 230], [230, 231], [232, 233], [232, 234], [234, 235], [234, 237], [237, 238], [239, 240], [239, 241], [241, 242], [241, 243], [243, 244], [243, 246], [258, 267], [292, 293], [294, 295], [294, 298], [321, 320], [323, 314], [325, 351], [353, 354], [353, 358], [354, 314], [354, 355], [355, 354], [355, 356], [356, 354], [356, 357], [358, 314], [358, 359], [359, 314], [359, 360], [403, 399], [437, 433], [438, 439], [439, 433], [439, 440], [462, 463], [476, 472], [485, 484], [488, 484], [501, 502], [502, 503], [502, 506], [503, 497], [503, 504], [507, 497], [510, 497], [514, 513], [525, 526], [536, 531], [538, 531], [545, 542], [558, 554], [574, 575], [575, 576], [575, 579], [576, 570], [576, 577], [580, 570], [583, 570], [587, 586], [605, 606], [606, 607], [606, 610], [607, 601], [607, 608], [611, 601], [613, 601], [617, 616], [643, 645], [645, 650]]}}}, "pyWebLayout/io/readers/html_metadata.py": {"executed_lines": [1, 8, 9, 10, 11, 14, 15, 22, 30, 71, 79, 92, 123, 138, 153, 187, 234, 262, 286, 310, 314, 323, 345, 359, 371, 400], "summary": {"covered_lines": 24, "num_statements": 204, "percent_covered": 7.142857142857143, "percent_covered_display": "7", "missing_lines": 180, "excluded_lines": 21, "num_branches": 132, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 132}, "missing_lines": [24, 25, 26, 27, 28, 42, 45, 48, 51, 54, 57, 60, 63, 73, 74, 75, 76, 77, 87, 88, 90, 100, 102, 103, 106, 107, 110, 111, 114, 115, 116, 119, 120, 121, 131, 133, 134, 135, 136, 146, 148, 149, 150, 151, 161, 163, 164, 165, 166, 167, 170, 171, 172, 173, 174, 175, 177, 178, 179, 180, 181, 182, 183, 185, 195, 196, 197, 200, 201, 202, 205, 206, 207, 210, 211, 212, 215, 216, 217, 220, 221, 222, 225, 226, 227, 230, 231, 232, 239, 240, 243, 244, 247, 248, 249, 250, 251, 252, 255, 256, 257, 260, 267, 268, 271, 272, 275, 276, 279, 280, 281, 282, 284, 289, 290, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 308, 312, 317, 318, 321, 326, 327, 330, 331, 334, 335, 336, 337, 338, 339, 340, 341, 343, 348, 349, 350, 351, 352, 353, 354, 355, 357, 362, 363, 364, 365, 366, 367, 369, 381, 384, 386, 387, 388, 389, 392, 393, 394, 395, 396, 398, 411, 414, 423, 424, 426], "excluded_lines": [1, 15, 23, 31, 72, 80, 93, 124, 139, 154, 188, 235, 263, 287, 311, 315, 324, 346, 360, 372, 401], "executed_branches": [], "missing_branches": [[88, -79], [88, 90], [102, -92], [102, 103], [110, 111], [110, 114], [115, 116], [115, 119], [120, 102], [120, 121], [133, -123], [133, 134], [148, -138], [148, 149], [163, -153], [163, 164], [170, 171], [170, 175], [172, 173], [172, 174], [175, 163], [175, 177], [177, 163], [177, 178], [178, 177], [178, 179], [180, 181], [180, 182], [196, 197], [196, 200], [201, 202], [201, 205], [206, 207], [206, 210], [211, 212], [211, 215], [216, 217], [216, 220], [221, 222], [221, 225], [226, 227], [226, 230], [231, -187], [231, 232], [239, 240], [239, 243], [243, 244], [243, 247], [247, 248], [247, 255], [248, 247], [248, 249], [249, 250], [249, 251], [251, 248], [251, 252], [255, 256], [255, 260], [256, 255], [256, 257], [267, 268], [267, 271], [271, 272], [271, 275], [275, 276], [275, 279], [279, 280], [279, 284], [280, 279], [280, 281], [281, 280], [281, 282], [289, 290], [289, 293], [293, 294], [293, 308], [294, 293], [294, 295], [295, 296], [295, 301], [297, 298], [297, 299], [299, 294], [299, 300], [301, 294], [301, 302], [303, 304], [303, 305], [305, 294], [305, 306], [317, 318], [317, 321], [326, 327], [326, 330], [330, 331], [330, 334], [334, 335], [334, 343], [335, 334], [335, 336], [336, 335], [336, 337], [338, 339], [338, 340], [340, 335], [340, 341], [348, 349], [348, 357], [349, 348], [349, 350], [350, 349], [350, 351], [352, 353], [352, 354], [354, 349], [354, 355], [362, 363], [362, 369], [363, 362], [363, 364], [364, 365], [364, 366], [366, 363], [366, 367], [386, 387], [386, 392], [393, 394], [393, 398], [395, 393], [395, 396], [423, 424], [423, 426]], "functions": {"HTMLMetadataReader.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [24, 25, 26, 27, 28], "excluded_lines": [23], "executed_branches": [], "missing_branches": []}, "HTMLMetadataReader.extract_metadata": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [42, 45, 48, 51, 54, 57, 60, 63], "excluded_lines": [31], "executed_branches": [], "missing_branches": []}, "HTMLMetadataReader._reset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [73, 74, 75, 76, 77], "excluded_lines": [72], "executed_branches": [], "missing_branches": []}, "HTMLMetadataReader._extract_title": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [87, 88, 90], "excluded_lines": [80], "executed_branches": [], "missing_branches": [[88, -79], [88, 90]]}, "HTMLMetadataReader._extract_meta_tags": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [100, 102, 103, 106, 107, 110, 111, 114, 115, 116, 119, 120, 121], "excluded_lines": [93], "executed_branches": [], "missing_branches": [[102, -92], [102, 103], [110, 111], [110, 114], [115, 116], [115, 119], [120, 102], [120, 121]]}, "HTMLMetadataReader._extract_open_graph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [131, 133, 134, 135, 136], "excluded_lines": [124], "executed_branches": [], "missing_branches": [[133, -123], [133, 134]]}, "HTMLMetadataReader._extract_twitter_cards": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [146, 148, 149, 150, 151], "excluded_lines": [139], "executed_branches": [], "missing_branches": [[148, -138], [148, 149]]}, "HTMLMetadataReader._extract_json_ld": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 1, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [161, 163, 164, 165, 166, 167, 170, 171, 172, 173, 174, 175, 177, 178, 179, 180, 181, 182, 183, 185], "excluded_lines": [154], "executed_branches": [], "missing_branches": [[163, -153], [163, 164], [170, 171], [170, 175], [172, 173], [172, 174], [175, 163], [175, 177], [177, 163], [177, 178], [178, 177], [178, 179], [180, 181], [180, 182]]}, "HTMLMetadataReader._populate_document": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 24, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 24, "excluded_lines": 1, "num_branches": 16, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 16}, "missing_lines": [195, 196, 197, 200, 201, 202, 205, 206, 207, 210, 211, 212, 215, 216, 217, 220, 221, 222, 225, 226, 227, 230, 231, 232], "excluded_lines": [188], "executed_branches": [], "missing_branches": [[196, 197], [196, 200], [201, 202], [201, 205], [206, 207], [206, 210], [211, 212], [211, 215], [216, 217], [216, 220], [221, 222], [221, 225], [226, 227], [226, 230], [231, -187], [231, 232]]}, "HTMLMetadataReader._get_best_title": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 1, "num_branches": 16, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 16}, "missing_lines": [239, 240, 243, 244, 247, 248, 249, 250, 251, 252, 255, 256, 257, 260], "excluded_lines": [235], "executed_branches": [], "missing_branches": [[239, 240], [239, 243], [243, 244], [243, 247], [247, 248], [247, 255], [248, 247], [248, 249], [249, 250], [249, 251], [251, 248], [251, 252], [255, 256], [255, 260], [256, 255], [256, 257]]}, "HTMLMetadataReader._get_best_description": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 1, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [267, 268, 271, 272, 275, 276, 279, 280, 281, 282, 284], "excluded_lines": [263], "executed_branches": [], "missing_branches": [[267, 268], [267, 271], [271, 272], [271, 275], [275, 276], [275, 279], [279, 280], [279, 284], [280, 279], [280, 281], [281, 280], [281, 282]]}, "HTMLMetadataReader._get_best_author": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 17, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 17, "excluded_lines": 1, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 18}, "missing_lines": [289, 290, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 308], "excluded_lines": [287], "executed_branches": [], "missing_branches": [[289, 290], [289, 293], [293, 294], [293, 308], [294, 293], [294, 295], [295, 296], [295, 301], [297, 298], [297, 299], [299, 294], [299, 300], [301, 294], [301, 302], [303, 304], [303, 305], [305, 294], [305, 306]]}, "HTMLMetadataReader._get_keywords": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [312], "excluded_lines": [311], "executed_branches": [], "missing_branches": []}, "HTMLMetadataReader._get_language": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [317, 318, 321], "excluded_lines": [315], "executed_branches": [], "missing_branches": [[317, 318], [317, 321]]}, "HTMLMetadataReader._get_cover_image": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [326, 327, 330, 331, 334, 335, 336, 337, 338, 339, 340, 341, 343], "excluded_lines": [324], "executed_branches": [], "missing_branches": [[326, 327], [326, 330], [330, 331], [330, 334], [334, 335], [334, 343], [335, 334], [335, 336], [336, 335], [336, 337], [338, 339], [338, 340], [340, 335], [340, 341]]}, "HTMLMetadataReader._get_publisher": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [348, 349, 350, 351, 352, 353, 354, 355, 357], "excluded_lines": [346], "executed_branches": [], "missing_branches": [[348, 349], [348, 357], [349, 348], [349, 350], [350, 349], [350, 351], [352, 353], [352, 354], [354, 349], [354, 355]]}, "HTMLMetadataReader._get_publication_date": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [362, 363, 364, 365, 366, 367, 369], "excluded_lines": [360], "executed_branches": [], "missing_branches": [[362, 363], [362, 369], [363, 362], [363, 364], [364, 365], [364, 366], [366, 363], [366, 367]]}, "HTMLMetadataReader._parse_attributes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [381, 384, 386, 387, 388, 389, 392, 393, 394, 395, 396, 398], "excluded_lines": [372], "executed_branches": [], "missing_branches": [[386, 387], [386, 392], [393, 394], [393, 398], [395, 393], [395, 396]]}, "HTMLMetadataReader._clean_text": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [411, 414, 423, 424, 426], "excluded_lines": [401], "executed_branches": [], "missing_branches": [[423, 424], [423, 426]]}, "": {"executed_lines": [1, 8, 9, 10, 11, 14, 15, 22, 30, 71, 79, 92, 123, 138, 153, 187, 234, 262, 286, 310, 314, 323, 345, 359, 371, 400], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 15], "executed_branches": [], "missing_branches": []}}, "classes": {"HTMLMetadataReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 180, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 180, "excluded_lines": 19, "num_branches": 132, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 132}, "missing_lines": [24, 25, 26, 27, 28, 42, 45, 48, 51, 54, 57, 60, 63, 73, 74, 75, 76, 77, 87, 88, 90, 100, 102, 103, 106, 107, 110, 111, 114, 115, 116, 119, 120, 121, 131, 133, 134, 135, 136, 146, 148, 149, 150, 151, 161, 163, 164, 165, 166, 167, 170, 171, 172, 173, 174, 175, 177, 178, 179, 180, 181, 182, 183, 185, 195, 196, 197, 200, 201, 202, 205, 206, 207, 210, 211, 212, 215, 216, 217, 220, 221, 222, 225, 226, 227, 230, 231, 232, 239, 240, 243, 244, 247, 248, 249, 250, 251, 252, 255, 256, 257, 260, 267, 268, 271, 272, 275, 276, 279, 280, 281, 282, 284, 289, 290, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 308, 312, 317, 318, 321, 326, 327, 330, 331, 334, 335, 336, 337, 338, 339, 340, 341, 343, 348, 349, 350, 351, 352, 353, 354, 355, 357, 362, 363, 364, 365, 366, 367, 369, 381, 384, 386, 387, 388, 389, 392, 393, 394, 395, 396, 398, 411, 414, 423, 424, 426], "excluded_lines": [23, 31, 72, 80, 93, 124, 139, 154, 188, 235, 263, 287, 311, 315, 324, 346, 360, 372, 401], "executed_branches": [], "missing_branches": [[88, -79], [88, 90], [102, -92], [102, 103], [110, 111], [110, 114], [115, 116], [115, 119], [120, 102], [120, 121], [133, -123], [133, 134], [148, -138], [148, 149], [163, -153], [163, 164], [170, 171], [170, 175], [172, 173], [172, 174], [175, 163], [175, 177], [177, 163], [177, 178], [178, 177], [178, 179], [180, 181], [180, 182], [196, 197], [196, 200], [201, 202], [201, 205], [206, 207], [206, 210], [211, 212], [211, 215], [216, 217], [216, 220], [221, 222], [221, 225], [226, 227], [226, 230], [231, -187], [231, 232], [239, 240], [239, 243], [243, 244], [243, 247], [247, 248], [247, 255], [248, 247], [248, 249], [249, 250], [249, 251], [251, 248], [251, 252], [255, 256], [255, 260], [256, 255], [256, 257], [267, 268], [267, 271], [271, 272], [271, 275], [275, 276], [275, 279], [279, 280], [279, 284], [280, 279], [280, 281], [281, 280], [281, 282], [289, 290], [289, 293], [293, 294], [293, 308], [294, 293], [294, 295], [295, 296], [295, 301], [297, 298], [297, 299], [299, 294], [299, 300], [301, 294], [301, 302], [303, 304], [303, 305], [305, 294], [305, 306], [317, 318], [317, 321], [326, 327], [326, 330], [330, 331], [330, 334], [334, 335], [334, 343], [335, 334], [335, 336], [336, 335], [336, 337], [338, 339], [338, 340], [340, 335], [340, 341], [348, 349], [348, 357], [349, 348], [349, 350], [350, 349], [350, 351], [352, 353], [352, 354], [354, 349], [354, 355], [362, 363], [362, 369], [363, 362], [363, 364], [364, 365], [364, 366], [366, 363], [366, 367], [386, 387], [386, 392], [393, 394], [393, 398], [395, 393], [395, 396], [423, 424], [423, 426]]}, "": {"executed_lines": [1, 8, 9, 10, 11, 14, 15, 22, 30, 71, 79, 92, 123, 138, 153, 187, 234, 262, 286, 310, 314, 323, 345, 359, 371, 400], "summary": {"covered_lines": 24, "num_statements": 24, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 15], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/io/readers/html_resources.py": {"executed_lines": [1, 8, 9, 10, 11, 12, 15, 16, 23, 31, 72, 80, 131, 172, 257, 294, 305, 341, 370, 406, 435, 450], "summary": {"covered_lines": 20, "num_statements": 182, "percent_covered": 7.299270072992701, "percent_covered_display": "7", "missing_lines": 162, "excluded_lines": 16, "num_branches": 92, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 92}, "missing_lines": [25, 26, 27, 28, 29, 43, 46, 49, 52, 55, 58, 61, 64, 74, 75, 76, 77, 78, 88, 90, 91, 94, 95, 96, 97, 98, 100, 101, 107, 110, 111, 112, 113, 121, 122, 123, 124, 139, 141, 142, 143, 145, 147, 148, 150, 152, 161, 163, 165, 170, 180, 181, 182, 183, 184, 185, 196, 197, 198, 199, 200, 201, 211, 212, 213, 214, 215, 216, 229, 230, 231, 232, 233, 234, 243, 244, 245, 246, 247, 248, 265, 267, 268, 269, 271, 273, 274, 279, 283, 285, 286, 287, 288, 292, 303, 313, 314, 317, 318, 319, 322, 323, 326, 327, 330, 331, 332, 333, 334, 351, 354, 356, 357, 358, 359, 362, 363, 364, 365, 366, 368, 380, 383, 386, 388, 390, 391, 392, 394, 395, 398, 401, 402, 404, 416, 419, 421, 423, 424, 425, 427, 428, 431, 433, 446, 447, 448, 460, 462, 463, 466, 467, 468, 469, 472, 474, 475, 476, 479, 480, 481, 483], "excluded_lines": [1, 16, 24, 32, 73, 81, 132, 173, 258, 295, 306, 342, 371, 407, 436, 451], "executed_branches": [], "missing_branches": [[90, -80], [90, 91], [95, 96], [95, 110], [100, 90], [100, 101], [110, 111], [110, 121], [112, 90], [112, 113], [121, 90], [121, 122], [123, 90], [123, 124], [141, -131], [141, 142], [150, 152], [150, 163], [163, 141], [163, 165], [181, 182], [181, 196], [184, 181], [184, 185], [197, 198], [197, 211], [200, 197], [200, 201], [212, 213], [212, 229], [215, 212], [215, 216], [230, 231], [230, 243], [233, 230], [233, 234], [244, -172], [244, 245], [247, 244], [247, 248], [267, 268], [267, 283], [273, 267], [273, 274], [285, -257], [285, 286], [287, 285], [287, 288], [313, 314], [313, 317], [317, 318], [317, 326], [318, 319], [318, 322], [326, 327], [326, 330], [330, -305], [330, 331], [331, 330], [331, 332], [333, 330], [333, 334], [356, 357], [356, 362], [363, 364], [363, 368], [365, 363], [365, 366], [388, 390], [388, 404], [391, 392], [391, 394], [401, 388], [401, 402], [421, 423], [421, 433], [424, 425], [424, 427], [446, 447], [446, 448], [462, 463], [462, 483], [466, 467], [466, 472], [468, 469], [468, 483], [472, 474], [472, 483], [475, 476], [475, 479], [480, 481], [480, 483]], "functions": {"HTMLResourceReader.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [25, 26, 27, 28, 29], "excluded_lines": [24], "executed_branches": [], "missing_branches": []}, "HTMLResourceReader.extract_resources": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [43, 46, 49, 52, 55, 58, 61, 64], "excluded_lines": [32], "executed_branches": [], "missing_branches": []}, "HTMLResourceReader._reset": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [74, 75, 76, 77, 78], "excluded_lines": [73], "executed_branches": [], "missing_branches": []}, "HTMLResourceReader._extract_stylesheets": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 1, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [88, 90, 91, 94, 95, 96, 97, 98, 100, 101, 107, 110, 111, 112, 113, 121, 122, 123, 124], "excluded_lines": [81], "executed_branches": [], "missing_branches": [[90, -80], [90, 91], [95, 96], [95, 110], [100, 90], [100, 101], [110, 111], [110, 121], [112, 90], [112, 113], [121, 90], [121, 122], [123, 90], [123, 124]]}, "HTMLResourceReader._extract_scripts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [139, 141, 142, 143, 145, 147, 148, 150, 152, 161, 163, 165, 170], "excluded_lines": [132], "executed_branches": [], "missing_branches": [[141, -131], [141, 142], [150, 152], [150, 163], [163, 141], [163, 165]]}, "HTMLResourceReader._extract_external_resources": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 30, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 30, "excluded_lines": 1, "num_branches": 20, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 20}, "missing_lines": [180, 181, 182, 183, 184, 185, 196, 197, 198, 199, 200, 201, 211, 212, 213, 214, 215, 216, 229, 230, 231, 232, 233, 234, 243, 244, 245, 246, 247, 248], "excluded_lines": [173], "executed_branches": [], "missing_branches": [[181, 182], [181, 196], [184, 181], [184, 185], [197, 198], [197, 211], [200, 197], [200, 201], [212, 213], [212, 229], [215, 212], [215, 216], [230, 231], [230, 243], [233, 230], [233, 234], [244, -172], [244, 245], [247, 244], [247, 248]]}, "HTMLResourceReader._extract_inline_styles": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [265, 267, 268, 269, 271, 273, 274, 279, 283, 285, 286, 287, 288, 292], "excluded_lines": [258], "executed_branches": [], "missing_branches": [[267, 268], [267, 283], [273, 267], [273, 274], [285, -257], [285, 286], [287, 285], [287, 288]]}, "HTMLResourceReader._extract_inline_scripts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [303], "excluded_lines": [295], "executed_branches": [], "missing_branches": []}, "HTMLResourceReader._populate_document": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 1, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [313, 314, 317, 318, 319, 322, 323, 326, 327, 330, 331, 332, 333, 334], "excluded_lines": [306], "executed_branches": [], "missing_branches": [[313, 314], [313, 317], [317, 318], [317, 326], [318, 319], [318, 322], [326, 327], [326, 330], [330, -305], [330, 331], [331, 330], [331, 332], [333, 330], [333, 334]]}, "HTMLResourceReader._parse_attributes": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [351, 354, 356, 357, 358, 359, 362, 363, 364, 365, 366, 368], "excluded_lines": [342], "executed_branches": [], "missing_branches": [[356, 357], [356, 362], [363, 364], [363, 368], [365, 363], [365, 366]]}, "HTMLResourceReader._parse_css": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [380, 383, 386, 388, 390, 391, 392, 394, 395, 398, 401, 402, 404], "excluded_lines": [371], "executed_branches": [], "missing_branches": [[388, 390], [388, 404], [391, 392], [391, 394], [401, 388], [401, 402]]}, "HTMLResourceReader._parse_css_declarations": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [416, 419, 421, 423, 424, 425, 427, 428, 431, 433], "excluded_lines": [407], "executed_branches": [], "missing_branches": [[421, 423], [421, 433], [424, 425], [424, 427]]}, "HTMLResourceReader.resolve_url": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [446, 447, 448], "excluded_lines": [436], "executed_branches": [], "missing_branches": [[446, 447], [446, 448]]}, "HTMLResourceReader.get_resource_dependencies": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 1, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [460, 462, 463, 466, 467, 468, 469, 472, 474, 475, 476, 479, 480, 481, 483], "excluded_lines": [451], "executed_branches": [], "missing_branches": [[462, 463], [462, 483], [466, 467], [466, 472], [468, 469], [468, 483], [472, 474], [472, 483], [475, 476], [475, 479], [480, 481], [480, 483]]}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 15, 16, 23, 31, 72, 80, 131, 172, 257, 294, 305, 341, 370, 406, 435, 450], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 16], "executed_branches": [], "missing_branches": []}}, "classes": {"HTMLResourceReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 162, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 162, "excluded_lines": 14, "num_branches": 92, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 92}, "missing_lines": [25, 26, 27, 28, 29, 43, 46, 49, 52, 55, 58, 61, 64, 74, 75, 76, 77, 78, 88, 90, 91, 94, 95, 96, 97, 98, 100, 101, 107, 110, 111, 112, 113, 121, 122, 123, 124, 139, 141, 142, 143, 145, 147, 148, 150, 152, 161, 163, 165, 170, 180, 181, 182, 183, 184, 185, 196, 197, 198, 199, 200, 201, 211, 212, 213, 214, 215, 216, 229, 230, 231, 232, 233, 234, 243, 244, 245, 246, 247, 248, 265, 267, 268, 269, 271, 273, 274, 279, 283, 285, 286, 287, 288, 292, 303, 313, 314, 317, 318, 319, 322, 323, 326, 327, 330, 331, 332, 333, 334, 351, 354, 356, 357, 358, 359, 362, 363, 364, 365, 366, 368, 380, 383, 386, 388, 390, 391, 392, 394, 395, 398, 401, 402, 404, 416, 419, 421, 423, 424, 425, 427, 428, 431, 433, 446, 447, 448, 460, 462, 463, 466, 467, 468, 469, 472, 474, 475, 476, 479, 480, 481, 483], "excluded_lines": [24, 32, 73, 81, 132, 173, 258, 295, 306, 342, 371, 407, 436, 451], "executed_branches": [], "missing_branches": [[90, -80], [90, 91], [95, 96], [95, 110], [100, 90], [100, 101], [110, 111], [110, 121], [112, 90], [112, 113], [121, 90], [121, 122], [123, 90], [123, 124], [141, -131], [141, 142], [150, 152], [150, 163], [163, 141], [163, 165], [181, 182], [181, 196], [184, 181], [184, 185], [197, 198], [197, 211], [200, 197], [200, 201], [212, 213], [212, 229], [215, 212], [215, 216], [230, 231], [230, 243], [233, 230], [233, 234], [244, -172], [244, 245], [247, 244], [247, 248], [267, 268], [267, 283], [273, 267], [273, 274], [285, -257], [285, 286], [287, 285], [287, 288], [313, 314], [313, 317], [317, 318], [317, 326], [318, 319], [318, 322], [326, 327], [326, 330], [330, -305], [330, 331], [331, 330], [331, 332], [333, 330], [333, 334], [356, 357], [356, 362], [363, 364], [363, 368], [365, 363], [365, 366], [388, 390], [388, 404], [391, 392], [391, 394], [401, 388], [401, 402], [421, 423], [421, 433], [424, 425], [424, 427], [446, 447], [446, 448], [462, 463], [462, 483], [466, 467], [466, 472], [468, 469], [468, 483], [472, 474], [472, 483], [475, 476], [475, 479], [480, 481], [480, 483]]}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 15, 16, 23, 31, 72, 80, 131, 172, 257, 294, 305, 341, 370, 406, 435, 450], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 16], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/style/__init__.py": {"executed_lines": [1, 12, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 12, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 12, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/style/alignment.py": {"executed_lines": [1, 5, 7, 8, 11, 12, 13, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 8], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 5, 7, 8, 11, 12, 13, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 8], "executed_branches": [], "missing_branches": []}}, "classes": {"Alignment": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 5, 7, 8, 11, 12, 13, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 8], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/style/fonts.py": {"executed_lines": [2, 3, 4, 7, 8, 9, 12, 13, 14, 17, 18, 19, 20, 23, 24, 29, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 65, 66, 72, 73, 74, 75, 76, 77, 79, 80, 82, 84, 85, 87, 89, 90, 92, 94, 95, 97, 99, 100, 102, 104, 105, 107, 109, 110, 112, 114, 115, 117, 119, 121, 131, 133, 143, 145, 155, 157, 167, 169], "summary": {"covered_lines": 68, "num_statements": 68, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 16, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [24, 38, 63, 81, 86, 91, 96, 101, 106, 111, 116, 120, 132, 144, 156, 168], "executed_branches": [[65, 66], [65, 72], [73, -62], [73, 74]], "missing_branches": [], "functions": {"Font.__init__": {"executed_lines": [51, 52, 53, 54, 55, 56, 57, 58, 60], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [38], "executed_branches": [], "missing_branches": []}, "Font._load_font": {"executed_lines": [64, 65, 66, 72, 73, 74, 75, 76, 77], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [63], "executed_branches": [[65, 66], [65, 72], [73, -62], [73, 74]], "missing_branches": []}, "Font.font": {"executed_lines": [82], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [81], "executed_branches": [], "missing_branches": []}, "Font.font_size": {"executed_lines": [87], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [86], "executed_branches": [], "missing_branches": []}, "Font.colour": {"executed_lines": [92], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [91], "executed_branches": [], "missing_branches": []}, "Font.color": {"executed_lines": [97], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [96], "executed_branches": [], "missing_branches": []}, "Font.background": {"executed_lines": [102], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [101], "executed_branches": [], "missing_branches": []}, "Font.weight": {"executed_lines": [107], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [106], "executed_branches": [], "missing_branches": []}, "Font.style": {"executed_lines": [112], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [111], "executed_branches": [], "missing_branches": []}, "Font.decoration": {"executed_lines": [117], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [116], "executed_branches": [], "missing_branches": []}, "Font.with_size": {"executed_lines": [121], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [120], "executed_branches": [], "missing_branches": []}, "Font.with_colour": {"executed_lines": [133], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [132], "executed_branches": [], "missing_branches": []}, "Font.with_weight": {"executed_lines": [145], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [144], "executed_branches": [], "missing_branches": []}, "Font.with_style": {"executed_lines": [157], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [156], "executed_branches": [], "missing_branches": []}, "Font.with_decoration": {"executed_lines": [169], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [168], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [2, 3, 4, 7, 8, 9, 12, 13, 14, 17, 18, 19, 20, 23, 24, 29, 62, 79, 80, 84, 85, 89, 90, 94, 95, 99, 100, 104, 105, 109, 110, 114, 115, 119, 131, 143, 155, 167], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [24], "executed_branches": [], "missing_branches": []}}, "classes": {"FontWeight": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "FontStyle": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "TextDecoration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Font": {"executed_lines": [51, 52, 53, 54, 55, 56, 57, 58, 60, 64, 65, 66, 72, 73, 74, 75, 76, 77, 82, 87, 92, 97, 102, 107, 112, 117, 121, 133, 145, 157, 169], "summary": {"covered_lines": 31, "num_statements": 31, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [38, 63, 81, 86, 91, 96, 101, 106, 111, 116, 120, 132, 144, 156, 168], "executed_branches": [[65, 66], [65, 72], [73, -62], [73, 74]], "missing_branches": []}, "": {"executed_lines": [2, 3, 4, 7, 8, 9, 12, 13, 14, 17, 18, 19, 20, 23, 24, 29, 62, 79, 80, 84, 85, 89, 90, 94, 95, 99, 100, 104, 105, 109, 110, 114, 115, 119, 131, 143, 155, 167], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [24], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/style/layout.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 9], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 9], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"Alignment": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 9], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/typesetting/__init__.py": {"executed_lines": [1, 13, 14, 15], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 13, 14, 15], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 13, 14, 15], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/typesetting/document_pagination.py": {"executed_lines": [1, 8, 9, 10, 12, 13, 14, 15, 16, 17, 20, 21, 28, 35, 50, 51, 67, 76, 77, 90, 91, 98, 126, 159, 187, 199, 287, 296, 305, 314], "summary": {"covered_lines": 27, "num_statements": 117, "percent_covered": 18.620689655172413, "percent_covered_display": "19", "missing_lines": 90, "excluded_lines": 17, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [30, 31, 32, 33, 42, 43, 48, 61, 62, 63, 64, 65, 74, 87, 116, 117, 118, 119, 120, 121, 124, 135, 137, 139, 141, 142, 143, 146, 147, 148, 149, 152, 155, 157, 169, 172, 175, 178, 179, 180, 181, 182, 183, 185, 194, 195, 196, 197, 207, 208, 211, 214, 216, 219, 222, 223, 226, 227, 230, 231, 234, 237, 239, 242, 243, 246, 249, 252, 255, 259, 260, 263, 264, 267, 268, 269, 272, 275, 276, 277, 278, 281, 282, 285, 294, 303, 312, 321, 322, 323], "excluded_lines": [1, 21, 29, 36, 52, 68, 78, 91, 106, 127, 160, 188, 200, 288, 297, 306, 315], "executed_branches": [], "missing_branches": [[137, 139], [137, 155], [139, 141], [139, 157], [141, 142], [141, 152], [179, 180], [179, 185], [182, 179], [182, 183], [214, -199], [214, 216], [226, 227], [226, 267], [230, 231], [230, 234], [237, 239], [237, 242], [255, 226], [255, 259], [260, 226], [260, 263], [275, 276], [275, 281], [281, 282], [281, 285], [321, 322], [321, 323]], "functions": {"DocumentPaginationState.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [30, 31, 32, 33], "excluded_lines": [29], "executed_branches": [], "missing_branches": []}, "DocumentPaginationState.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [42, 43, 48], "excluded_lines": [36], "executed_branches": [], "missing_branches": []}, "DocumentPaginationState.load": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [61, 62, 63, 64, 65], "excluded_lines": [52], "executed_branches": [], "missing_branches": []}, "DocumentPaginationState.to_json": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [74], "excluded_lines": [68], "executed_branches": [], "missing_branches": []}, "DocumentPaginationState.from_json": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [87], "excluded_lines": [78], "executed_branches": [], "missing_branches": []}, "DocumentPaginator.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [116, 117, 118, 119, 120, 121, 124], "excluded_lines": [106], "executed_branches": [], "missing_branches": []}, "DocumentPaginator._collect_blocks": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [135, 137, 139, 141, 142, 143, 146, 147, 148, 149, 152, 155, 157], "excluded_lines": [127], "executed_branches": [], "missing_branches": [[137, 139], [137, 155], [139, 141], [139, 157], [141, 142], [141, 152]]}, "DocumentPaginator.paginate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [169, 172, 175, 178, 179, 180, 181, 182, 183, 185], "excluded_lines": [160], "executed_branches": [], "missing_branches": [[179, 180], [179, 185], [182, 179], [182, 183]]}, "DocumentPaginator.paginate_next": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [194, 195, 196, 197], "excluded_lines": [188], "executed_branches": [], "missing_branches": []}, "DocumentPaginator._paginate_generator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 1, "num_branches": 16, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 16}, "missing_lines": [207, 208, 211, 214, 216, 219, 222, 223, 226, 227, 230, 231, 234, 237, 239, 242, 243, 246, 249, 252, 255, 259, 260, 263, 264, 267, 268, 269, 272, 275, 276, 277, 278, 281, 282, 285], "excluded_lines": [200], "executed_branches": [], "missing_branches": [[214, -199], [214, 216], [226, 227], [226, 267], [230, 231], [230, 234], [237, 239], [237, 242], [255, 226], [255, 259], [260, 226], [260, 263], [275, 276], [275, 281], [281, 282], [281, 285]]}, "DocumentPaginator.get_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [294], "excluded_lines": [288], "executed_branches": [], "missing_branches": []}, "DocumentPaginator.set_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [303], "excluded_lines": [297], "executed_branches": [], "missing_branches": []}, "DocumentPaginator.is_complete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [312], "excluded_lines": [306], "executed_branches": [], "missing_branches": []}, "DocumentPaginator.get_progress": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [321, 322, 323], "excluded_lines": [315], "executed_branches": [], "missing_branches": [[321, 322], [321, 323]]}, "": {"executed_lines": [1, 8, 9, 10, 12, 13, 14, 15, 16, 17, 20, 21, 28, 35, 50, 51, 67, 76, 77, 90, 91, 98, 126, 159, 187, 199, 287, 296, 305, 314], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 21, 91], "executed_branches": [], "missing_branches": []}}, "classes": {"DocumentPaginationState": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 5, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [30, 31, 32, 33, 42, 43, 48, 61, 62, 63, 64, 65, 74, 87], "excluded_lines": [29, 36, 52, 68, 78], "executed_branches": [], "missing_branches": []}, "DocumentPaginator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 76, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 76, "excluded_lines": 9, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [116, 117, 118, 119, 120, 121, 124, 135, 137, 139, 141, 142, 143, 146, 147, 148, 149, 152, 155, 157, 169, 172, 175, 178, 179, 180, 181, 182, 183, 185, 194, 195, 196, 197, 207, 208, 211, 214, 216, 219, 222, 223, 226, 227, 230, 231, 234, 237, 239, 242, 243, 246, 249, 252, 255, 259, 260, 263, 264, 267, 268, 269, 272, 275, 276, 277, 278, 281, 282, 285, 294, 303, 312, 321, 322, 323], "excluded_lines": [106, 127, 160, 188, 200, 288, 297, 306, 315], "executed_branches": [], "missing_branches": [[137, 139], [137, 155], [139, 141], [139, 157], [141, 142], [141, 152], [179, 180], [179, 185], [182, 179], [182, 183], [214, -199], [214, 216], [226, 227], [226, 267], [230, 231], [230, 234], [237, 239], [237, 242], [255, 226], [255, 259], [260, 226], [260, 263], [275, 276], [275, 281], [281, 282], [281, 285], [321, 322], [321, 323]]}, "": {"executed_lines": [1, 8, 9, 10, 12, 13, 14, 15, 16, 17, 20, 21, 28, 35, 50, 51, 67, 76, 77, 90, 91, 98, 126, 159, 187, 199, 287, 296, 305, 314], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 21, 91], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/typesetting/flow.py": {"executed_lines": [1, 9, 10, 12, 13, 16, 17, 25, 26, 110, 111], "summary": {"covered_lines": 9, "num_statements": 55, "percent_covered": 10.843373493975903, "percent_covered_display": "11", "missing_lines": 46, "excluded_lines": 4, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [49, 50, 53, 54, 55, 56, 57, 60, 61, 62, 65, 66, 67, 70, 72, 78, 79, 80, 81, 84, 85, 86, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 106, 108, 132, 134, 137, 143, 144, 147, 148, 149, 150, 151, 154, 155], "excluded_lines": [1, 17, 34, 120], "executed_branches": [], "missing_branches": [[60, 61], [60, 65], [61, 60], [61, 62], [65, 66], [65, 89], [70, 72], [70, 84], [89, 90], [89, 96], [96, 97], [96, 108], [98, 99], [98, 108], [100, 101], [100, 102], [102, 103], [102, 106], [132, 134], [132, 137], [143, 144], [143, 147], [148, 149], [148, 150], [150, 151], [150, 154], [154, -110], [154, 155]], "functions": {"FlowLayout.layout_elements": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 34, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 34, "excluded_lines": 1, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 18}, "missing_lines": [49, 50, 53, 54, 55, 56, 57, 60, 61, 62, 65, 66, 67, 70, 72, 78, 79, 80, 81, 84, 85, 86, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 106, 108], "excluded_lines": [34], "executed_branches": [], "missing_branches": [[60, 61], [60, 65], [61, 60], [61, 62], [65, 66], [65, 89], [70, 72], [70, 84], [89, 90], [89, 96], [96, 97], [96, 108], [98, 99], [98, 108], [100, 101], [100, 102], [102, 103], [102, 106]]}, "FlowLayout._align_row": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [132, 134, 137, 143, 144, 147, 148, 149, 150, 151, 154, 155], "excluded_lines": [120], "executed_branches": [], "missing_branches": [[132, 134], [132, 137], [143, 144], [143, 147], [148, 149], [148, 150], [150, 151], [150, 154], [154, -110], [154, 155]]}, "": {"executed_lines": [1, 9, 10, 12, 13, 16, 17, 25, 26, 110, 111], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 17], "executed_branches": [], "missing_branches": []}}, "classes": {"FlowLayout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 46, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 46, "excluded_lines": 2, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [49, 50, 53, 54, 55, 56, 57, 60, 61, 62, 65, 66, 67, 70, 72, 78, 79, 80, 81, 84, 85, 86, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 106, 108, 132, 134, 137, 143, 144, 147, 148, 149, 150, 151, 154, 155], "excluded_lines": [34, 120], "executed_branches": [], "missing_branches": [[60, 61], [60, 65], [61, 60], [61, 62], [65, 66], [65, 89], [70, 72], [70, 84], [89, 90], [89, 96], [96, 97], [96, 108], [98, 99], [98, 108], [100, 101], [100, 102], [102, 103], [102, 106], [132, 134], [132, 137], [143, 144], [143, 147], [148, 149], [148, 150], [150, 151], [150, 154], [154, -110], [154, 155]]}, "": {"executed_lines": [1, 9, 10, 12, 13, 16, 17, 25, 26, 110, 111], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 17], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/typesetting/pagination.py": {"executed_lines": [1, 8, 9, 11, 12, 13, 16, 17, 23, 31, 46, 47, 66, 67, 73, 98, 126, 138, 215, 224], "summary": {"covered_lines": 17, "num_statements": 87, "percent_covered": 15.596330275229358, "percent_covered_display": "16", "missing_lines": 70, "excluded_lines": 12, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 22}, "missing_lines": [25, 26, 27, 28, 29, 38, 57, 58, 59, 60, 61, 62, 63, 91, 92, 93, 94, 95, 96, 108, 111, 114, 117, 118, 119, 120, 121, 122, 124, 133, 134, 135, 136, 146, 147, 150, 151, 154, 156, 157, 160, 161, 164, 165, 168, 169, 172, 174, 177, 178, 179, 180, 181, 182, 184, 187, 190, 191, 194, 195, 198, 201, 202, 205, 206, 209, 210, 213, 222, 231], "excluded_lines": [1, 17, 24, 32, 48, 67, 81, 99, 127, 139, 216, 225], "executed_branches": [], "missing_branches": [[118, 119], [118, 124], [121, 118], [121, 122], [154, -138], [154, 156], [160, 161], [160, 194], [164, 165], [164, 168], [172, 174], [172, 177], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 184], [198, 201], [198, 209], [209, 210], [209, 213]], "functions": {"PaginationState.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [25, 26, 27, 28, 29], "excluded_lines": [24], "executed_branches": [], "missing_branches": []}, "PaginationState.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [38], "excluded_lines": [32], "executed_branches": [], "missing_branches": []}, "PaginationState.load": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [57, 58, 59, 60, 61, 62, 63], "excluded_lines": [48], "executed_branches": [], "missing_branches": []}, "Paginator.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [91, 92, 93, 94, 95, 96], "excluded_lines": [81], "executed_branches": [], "missing_branches": []}, "Paginator.paginate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [108, 111, 114, 117, 118, 119, 120, 121, 122, 124], "excluded_lines": [99], "executed_branches": [], "missing_branches": [[118, 119], [118, 124], [121, 118], [121, 122]]}, "Paginator.paginate_next": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [133, 134, 135, 136], "excluded_lines": [127], "executed_branches": [], "missing_branches": []}, "Paginator._paginate_generator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 35, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 35, "excluded_lines": 1, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 18}, "missing_lines": [146, 147, 150, 151, 154, 156, 157, 160, 161, 164, 165, 168, 169, 172, 174, 177, 178, 179, 180, 181, 182, 184, 187, 190, 191, 194, 195, 198, 201, 202, 205, 206, 209, 210, 213], "excluded_lines": [139], "executed_branches": [], "missing_branches": [[154, -138], [154, 156], [160, 161], [160, 194], [164, 165], [164, 168], [172, 174], [172, 177], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 184], [198, 201], [198, 209], [209, 210], [209, 213]]}, "Paginator.get_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [222], "excluded_lines": [216], "executed_branches": [], "missing_branches": []}, "Paginator.set_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [231], "excluded_lines": [225], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 11, 12, 13, 16, 17, 23, 31, 46, 47, 66, 67, 73, 98, 126, 138, 215, 224], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 17, 67], "executed_branches": [], "missing_branches": []}}, "classes": {"PaginationState": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [25, 26, 27, 28, 29, 38, 57, 58, 59, 60, 61, 62, 63], "excluded_lines": [24, 32, 48], "executed_branches": [], "missing_branches": []}, "Paginator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 57, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 57, "excluded_lines": 6, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 22}, "missing_lines": [91, 92, 93, 94, 95, 96, 108, 111, 114, 117, 118, 119, 120, 121, 122, 124, 133, 134, 135, 136, 146, 147, 150, 151, 154, 156, 157, 160, 161, 164, 165, 168, 169, 172, 174, 177, 178, 179, 180, 181, 182, 184, 187, 190, 191, 194, 195, 198, 201, 202, 205, 206, 209, 210, 213, 222, 231], "excluded_lines": [81, 99, 127, 139, 216, 225], "executed_branches": [], "missing_branches": [[118, 119], [118, 124], [121, 118], [121, 122], [154, -138], [154, 156], [160, 161], [160, 194], [164, 165], [164, 168], [172, 174], [172, 177], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 184], [198, 201], [198, 209], [209, 210], [209, 213]]}, "": {"executed_lines": [1, 8, 9, 11, 12, 13, 16, 17, 23, 31, 46, 47, 66, 67, 73, 98, 126, 138, 215, 224], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 17, 67], "executed_branches": [], "missing_branches": []}}}}, "totals": {"covered_lines": 1564, "num_statements": 3273, "percent_covered": 41.11237230419977, "percent_covered_display": "41", "missing_lines": 1709, "excluded_lines": 506, "num_branches": 1132, "num_partial_branches": 45, "covered_branches": 247, "missing_branches": 885}} \ No newline at end of file +{"meta": {"format": 3, "version": "7.8.2", "timestamp": "2025-06-07T19:17:35.194481", "branch_coverage": true, "show_contexts": false}, "files": {"pyWebLayout/__init__.py": {"executed_lines": [1, 11, 14, 17, 20, 27, 30, 31, 32, 35], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 11, 14, 17, 20, 27, 30, 31, 32, 35], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 11, 14, 17, 20, 27, 30, 31, 32, 35], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/abstract/__init__.py": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5, 6], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/abstract/block.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 33, 40, 41, 43, 44, 46, 48, 49, 51, 53, 54, 56, 59, 60, 64, 71, 72, 73, 74, 76, 77, 109, 110, 114, 115, 119, 126, 128, 145, 154, 167, 174, 175, 177, 187, 188, 190, 192, 194, 197, 198, 199, 200, 201, 202, 203, 204, 207, 208, 213, 221, 222, 223, 225, 226, 259, 260, 262, 264, 265, 267, 270, 271, 275, 282, 283, 284, 286, 287, 319, 320, 324, 325, 329, 336, 337, 339, 351, 364, 371, 372, 375, 376, 380, 387, 388, 389, 391, 392, 417, 418, 420, 422, 423, 425, 427, 434, 436, 443, 444, 446, 447, 449, 452, 453, 454, 455, 456, 459, 460, 464, 472, 473, 474, 475, 477, 478, 511, 512, 514, 516, 517, 519, 521, 522, 526, 527, 531, 538, 539, 541, 554, 561, 562, 564, 565, 567, 570, 571, 575, 583, 584, 585, 586, 588, 589, 622, 623, 625, 627, 628, 630, 632, 633, 637, 638, 642, 649, 650, 652, 664, 677, 684, 685, 688, 689, 693, 703, 704, 705, 706, 707, 708, 710, 711, 745, 746, 748, 750, 751, 755, 756, 758, 760, 761, 765, 766, 768, 770, 771, 775, 776, 780, 781, 785, 792, 793, 795, 807, 820, 831, 832, 836, 843, 844, 845, 847, 848, 879, 880, 884, 885, 889, 896, 897, 899, 914, 924, 925, 927, 930, 931, 935, 943, 944, 945, 946, 947, 948, 950, 951, 984, 985, 987, 989, 990, 994, 995, 999, 1000, 1004, 1012, 1014, 1015, 1016, 1017, 1019, 1021, 1034, 1041, 1042, 1044, 1051, 1052, 1054, 1061, 1062, 1064, 1071, 1072, 1073, 1074, 1075, 1076, 1078, 1079, 1081, 1089, 1090, 1094, 1104, 1105, 1106, 1107, 1108, 1110, 1111, 1140, 1141, 1143, 1145, 1146, 1148, 1150, 1151, 1153, 1155, 1156, 1158, 1160, 1161, 1163, 1165, 1166, 1168, 1170, 1171, 1173, 1175, 1176, 1178, 1180, 1187, 1189, 1196, 1197, 1198, 1200, 1212, 1215, 1218, 1219, 1220, 1222, 1226, 1228, 1238, 1239, 1241, 1255, 1257, 1259, 1261, 1262, 1264, 1265, 1267, 1268, 1271, 1272, 1275, 1277, 1288, 1289, 1291, 1292, 1294, 1295, 1297, 1298, 1301, 1304, 1306, 1309, 1310, 1313, 1315, 1317, 1322, 1324, 1332, 1334, 1335, 1338, 1339, 1341, 1352, 1353, 1354, 1357, 1358, 1359, 1361, 1370, 1371, 1374, 1375, 1376, 1380, 1383, 1384, 1388, 1390, 1392, 1393], "summary": {"covered_lines": 384, "num_statements": 516, "percent_covered": 68.84984025559105, "percent_covered_display": "69", "missing_lines": 132, "excluded_lines": 123, "num_branches": 110, "num_partial_branches": 7, "covered_branches": 47, "missing_branches": 63}, "missing_lines": [93, 94, 95, 96, 99, 102, 103, 105, 107, 112, 117, 143, 152, 165, 184, 185, 243, 244, 245, 246, 249, 252, 253, 255, 257, 303, 304, 305, 306, 309, 312, 313, 315, 317, 322, 327, 349, 362, 407, 410, 411, 413, 415, 495, 496, 497, 498, 501, 504, 505, 507, 509, 524, 529, 552, 606, 607, 608, 609, 612, 615, 616, 618, 620, 635, 640, 662, 675, 731, 732, 735, 738, 739, 741, 743, 753, 763, 773, 778, 783, 805, 818, 827, 828, 865, 866, 869, 872, 873, 875, 877, 882, 887, 912, 921, 922, 968, 969, 970, 971, 974, 977, 978, 980, 982, 992, 997, 1002, 1032, 1130, 1133, 1134, 1136, 1138, 1213, 1223, 1224, 1269, 1270, 1273, 1274, 1318, 1319, 1320, 1321, 1377, 1378, 1407, 1410, 1411, 1413, 1415], "excluded_lines": [12, 28, 34, 45, 50, 55, 60, 65, 78, 111, 116, 120, 129, 146, 155, 168, 178, 189, 198, 208, 214, 227, 261, 266, 271, 276, 288, 321, 326, 330, 340, 352, 365, 376, 381, 393, 419, 424, 428, 437, 448, 453, 460, 465, 479, 513, 518, 523, 528, 532, 542, 555, 566, 571, 576, 590, 624, 629, 634, 639, 643, 653, 665, 678, 689, 694, 713, 747, 752, 757, 762, 767, 772, 777, 782, 786, 796, 808, 821, 832, 837, 849, 881, 886, 890, 900, 915, 926, 931, 936, 952, 986, 991, 996, 1001, 1005, 1022, 1035, 1045, 1055, 1065, 1080, 1090, 1095, 1113, 1142, 1147, 1152, 1157, 1162, 1167, 1172, 1177, 1181, 1190, 1202, 1229, 1242, 1278, 1325, 1384, 1389, 1394], "executed_branches": [[174, -167], [174, 175], [371, -364], [371, 372], [443, -436], [443, 444], [561, -554], [561, 562], [684, -677], [684, 685], [1014, 1015], [1014, 1016], [1016, 1017], [1016, 1019], [1041, -1034], [1041, 1042], [1051, -1044], [1051, 1052], [1061, -1054], [1061, 1062], [1071, 1072], [1071, 1073], [1073, 1074], [1073, 1075], [1075, -1064], [1075, 1076], [1196, 1197], [1196, 1198], [1212, 1215], [1218, 1219], [1222, 1226], [1288, 1289], [1288, 1291], [1295, 1297], [1295, 1301], [1309, 1310], [1309, 1313], [1317, 1322], [1334, 1335], [1334, 1338], [1339, 1341], [1352, 1353], [1357, 1358], [1357, 1361], [1370, 1371], [1374, 1375], [1374, 1380]], "missing_branches": [[93, 94], [93, 95], [95, 96], [95, 99], [102, 103], [102, 105], [184, -177], [184, 185], [243, 244], [243, 245], [245, 246], [245, 249], [252, 253], [252, 255], [303, 304], [303, 305], [305, 306], [305, 309], [312, 313], [312, 315], [410, 411], [410, 413], [495, 496], [495, 497], [497, 498], [497, 501], [504, 505], [504, 507], [606, 607], [606, 608], [608, 609], [608, 612], [615, 616], [615, 618], [731, 732], [731, 735], [738, 739], [738, 741], [827, -820], [827, 828], [865, 866], [865, 869], [872, 873], [872, 875], [921, -914], [921, 922], [968, 969], [968, 970], [970, 971], [970, 974], [977, 978], [977, 980], [1133, 1134], [1133, 1136], [1212, 1213], [1218, 1222], [1222, 1223], [1317, 1318], [1339, 1361], [1352, 1357], [1370, 1374], [1410, 1411], [1410, 1413]], "functions": {"Block.__init__": {"executed_lines": [40, 41], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [34], "executed_branches": [], "missing_branches": []}, "Block.block_type": {"executed_lines": [46], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [45], "executed_branches": [], "missing_branches": []}, "Block.parent": {"executed_lines": [56], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [55], "executed_branches": [], "missing_branches": []}, "Paragraph.__init__": {"executed_lines": [71, 72, 73, 74], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [65], "executed_branches": [], "missing_branches": []}, "Paragraph.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [93, 94, 95, 96, 99, 102, 103, 105, 107], "excluded_lines": [78], "executed_branches": [], "missing_branches": [[93, 94], [93, 95], [95, 96], [95, 99], [102, 103], [102, 105]]}, "Paragraph.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [117], "excluded_lines": [116], "executed_branches": [], "missing_branches": []}, "Paragraph.add_word": {"executed_lines": [126], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [120], "executed_branches": [], "missing_branches": []}, "Paragraph.create_word": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [143], "excluded_lines": [129], "executed_branches": [], "missing_branches": []}, "Paragraph.add_span": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [152], "excluded_lines": [146], "executed_branches": [], "missing_branches": []}, "Paragraph.create_span": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [165], "excluded_lines": [155], "executed_branches": [], "missing_branches": []}, "Paragraph.words": {"executed_lines": [174, 175], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [168], "executed_branches": [[174, -167], [174, 175]], "missing_branches": []}, "Paragraph.spans": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [184, 185], "excluded_lines": [178], "executed_branches": [], "missing_branches": [[184, -177], [184, 185]]}, "Paragraph.word_count": {"executed_lines": [190], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [189], "executed_branches": [], "missing_branches": []}, "Paragraph.__len__": {"executed_lines": [194], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Heading.__init__": {"executed_lines": [221, 222, 223], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [214], "executed_branches": [], "missing_branches": []}, "Heading.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [243, 244, 245, 246, 249, 252, 253, 255, 257], "excluded_lines": [227], "executed_branches": [], "missing_branches": [[243, 244], [243, 245], [245, 246], [245, 249], [252, 253], [252, 255]]}, "Heading.level": {"executed_lines": [267], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [266], "executed_branches": [], "missing_branches": []}, "Quote.__init__": {"executed_lines": [282, 283, 284], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [276], "executed_branches": [], "missing_branches": []}, "Quote.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [303, 304, 305, 306, 309, 312, 313, 315, 317], "excluded_lines": [288], "executed_branches": [], "missing_branches": [[303, 304], [303, 305], [305, 306], [305, 309], [312, 313], [312, 315]]}, "Quote.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [327], "excluded_lines": [326], "executed_branches": [], "missing_branches": []}, "Quote.add_block": {"executed_lines": [336, 337], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [330], "executed_branches": [], "missing_branches": []}, "Quote.create_paragraph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [349], "excluded_lines": [340], "executed_branches": [], "missing_branches": []}, "Quote.create_heading": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [362], "excluded_lines": [352], "executed_branches": [], "missing_branches": []}, "Quote.blocks": {"executed_lines": [371, 372], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [365], "executed_branches": [[371, -364], [371, 372]], "missing_branches": []}, "CodeBlock.__init__": {"executed_lines": [387, 388, 389], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [381], "executed_branches": [], "missing_branches": []}, "CodeBlock.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [407, 410, 411, 413, 415], "excluded_lines": [393], "executed_branches": [], "missing_branches": [[410, 411], [410, 413]]}, "CodeBlock.language": {"executed_lines": [425], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [424], "executed_branches": [], "missing_branches": []}, "CodeBlock.add_line": {"executed_lines": [434], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [428], "executed_branches": [], "missing_branches": []}, "CodeBlock.lines": {"executed_lines": [443, 444], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [437], "executed_branches": [[443, -436], [443, 444]], "missing_branches": []}, "CodeBlock.line_count": {"executed_lines": [449], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [448], "executed_branches": [], "missing_branches": []}, "HList.__init__": {"executed_lines": [472, 473, 474, 475], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [465], "executed_branches": [], "missing_branches": []}, "HList.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [495, 496, 497, 498, 501, 504, 505, 507, 509], "excluded_lines": [479], "executed_branches": [], "missing_branches": [[495, 496], [495, 497], [497, 498], [497, 501], [504, 505], [504, 507]]}, "HList.style": {"executed_lines": [519], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [518], "executed_branches": [], "missing_branches": []}, "HList.default_style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [529], "excluded_lines": [528], "executed_branches": [], "missing_branches": []}, "HList.add_item": {"executed_lines": [538, 539], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [532], "executed_branches": [], "missing_branches": []}, "HList.create_item": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [552], "excluded_lines": [542], "executed_branches": [], "missing_branches": []}, "HList.items": {"executed_lines": [561, 562], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [555], "executed_branches": [[561, -554], [561, 562]], "missing_branches": []}, "HList.item_count": {"executed_lines": [567], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [566], "executed_branches": [], "missing_branches": []}, "ListItem.__init__": {"executed_lines": [583, 584, 585, 586], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [576], "executed_branches": [], "missing_branches": []}, "ListItem.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [606, 607, 608, 609, 612, 615, 616, 618, 620], "excluded_lines": [590], "executed_branches": [], "missing_branches": [[606, 607], [606, 608], [608, 609], [608, 612], [615, 616], [615, 618]]}, "ListItem.term": {"executed_lines": [630], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [629], "executed_branches": [], "missing_branches": []}, "ListItem.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [640], "excluded_lines": [639], "executed_branches": [], "missing_branches": []}, "ListItem.add_block": {"executed_lines": [649, 650], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [643], "executed_branches": [], "missing_branches": []}, "ListItem.create_paragraph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [662], "excluded_lines": [653], "executed_branches": [], "missing_branches": []}, "ListItem.create_heading": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [675], "excluded_lines": [665], "executed_branches": [], "missing_branches": []}, "ListItem.blocks": {"executed_lines": [684, 685], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [678], "executed_branches": [[684, -677], [684, 685]], "missing_branches": []}, "TableCell.__init__": {"executed_lines": [703, 704, 705, 706, 707, 708], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [694], "executed_branches": [], "missing_branches": []}, "TableCell.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [731, 732, 735, 738, 739, 741, 743], "excluded_lines": [713], "executed_branches": [], "missing_branches": [[731, 732], [731, 735], [738, 739], [738, 741]]}, "TableCell.is_header": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [753], "excluded_lines": [752], "executed_branches": [], "missing_branches": []}, "TableCell.colspan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [763], "excluded_lines": [762], "executed_branches": [], "missing_branches": []}, "TableCell.rowspan": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [773], "excluded_lines": [772], "executed_branches": [], "missing_branches": []}, "TableCell.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [783], "excluded_lines": [782], "executed_branches": [], "missing_branches": []}, "TableCell.add_block": {"executed_lines": [792, 793], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [786], "executed_branches": [], "missing_branches": []}, "TableCell.create_paragraph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [805], "excluded_lines": [796], "executed_branches": [], "missing_branches": []}, "TableCell.create_heading": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [818], "excluded_lines": [808], "executed_branches": [], "missing_branches": []}, "TableCell.blocks": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [827, 828], "excluded_lines": [821], "executed_branches": [], "missing_branches": [[827, -820], [827, 828]]}, "TableRow.__init__": {"executed_lines": [843, 844, 845], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [837], "executed_branches": [], "missing_branches": []}, "TableRow.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [865, 866, 869, 872, 873, 875, 877], "excluded_lines": [849], "executed_branches": [], "missing_branches": [[865, 866], [865, 869], [872, 873], [872, 875]]}, "TableRow.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [887], "excluded_lines": [886], "executed_branches": [], "missing_branches": []}, "TableRow.add_cell": {"executed_lines": [896, 897], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [890], "executed_branches": [], "missing_branches": []}, "TableRow.create_cell": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [912], "excluded_lines": [900], "executed_branches": [], "missing_branches": []}, "TableRow.cells": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [921, 922], "excluded_lines": [915], "executed_branches": [], "missing_branches": [[921, -914], [921, 922]]}, "TableRow.cell_count": {"executed_lines": [927], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [926], "executed_branches": [], "missing_branches": []}, "Table.__init__": {"executed_lines": [943, 944, 945, 946, 947, 948], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [936], "executed_branches": [], "missing_branches": []}, "Table.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [968, 969, 970, 971, 974, 977, 978, 980, 982], "excluded_lines": [952], "executed_branches": [], "missing_branches": [[968, 969], [968, 970], [970, 971], [970, 974], [977, 978], [977, 980]]}, "Table.caption": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [992], "excluded_lines": [991], "executed_branches": [], "missing_branches": []}, "Table.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [1002], "excluded_lines": [1001], "executed_branches": [], "missing_branches": []}, "Table.add_row": {"executed_lines": [1012, 1014, 1015, 1016, 1017, 1019], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1005], "executed_branches": [[1014, 1015], [1014, 1016], [1016, 1017], [1016, 1019]], "missing_branches": []}, "Table.create_row": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [1032], "excluded_lines": [1022], "executed_branches": [], "missing_branches": []}, "Table.header_rows": {"executed_lines": [1041, 1042], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1035], "executed_branches": [[1041, -1034], [1041, 1042]], "missing_branches": []}, "Table.body_rows": {"executed_lines": [1051, 1052], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1045], "executed_branches": [[1051, -1044], [1051, 1052]], "missing_branches": []}, "Table.footer_rows": {"executed_lines": [1061, 1062], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1055], "executed_branches": [[1061, -1054], [1061, 1062]], "missing_branches": []}, "Table.all_rows": {"executed_lines": [1071, 1072, 1073, 1074, 1075, 1076], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1065], "executed_branches": [[1071, 1072], [1071, 1073], [1073, 1074], [1073, 1075], [1075, -1064], [1075, 1076]], "missing_branches": []}, "Table.row_count": {"executed_lines": [1081], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1080], "executed_branches": [], "missing_branches": []}, "Image.__init__": {"executed_lines": [1104, 1105, 1106, 1107, 1108], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1095], "executed_branches": [], "missing_branches": []}, "Image.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [1130, 1133, 1134, 1136, 1138], "excluded_lines": [1113], "executed_branches": [], "missing_branches": [[1133, 1134], [1133, 1136]]}, "Image.source": {"executed_lines": [1148], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1147], "executed_branches": [], "missing_branches": []}, "Image.alt_text": {"executed_lines": [1158], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1157], "executed_branches": [], "missing_branches": []}, "Image.width": {"executed_lines": [1168], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1167], "executed_branches": [], "missing_branches": []}, "Image.height": {"executed_lines": [1178], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1177], "executed_branches": [], "missing_branches": []}, "Image.get_dimensions": {"executed_lines": [1187], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1181], "executed_branches": [], "missing_branches": []}, "Image.get_aspect_ratio": {"executed_lines": [1196, 1197, 1198], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1190], "executed_branches": [[1196, 1197], [1196, 1198]], "missing_branches": []}, "Image.calculate_scaled_dimensions": {"executed_lines": [1212, 1215, 1218, 1219, 1220, 1222, 1226], "summary": {"covered_lines": 7, "num_statements": 10, "percent_covered": 62.5, "percent_covered_display": "62", "missing_lines": 3, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 3, "covered_branches": 3, "missing_branches": 3}, "missing_lines": [1213, 1223, 1224], "excluded_lines": [1202], "executed_branches": [[1212, 1215], [1218, 1219], [1222, 1226]], "missing_branches": [[1212, 1213], [1218, 1222], [1222, 1223]]}, "Image._is_url": {"executed_lines": [1238, 1239], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1229], "executed_branches": [], "missing_branches": []}, "Image._download_to_temp": {"executed_lines": [1255, 1257, 1259, 1261, 1262, 1264, 1265, 1267, 1268, 1271, 1272, 1275], "summary": {"covered_lines": 12, "num_statements": 16, "percent_covered": 75.0, "percent_covered_display": "75", "missing_lines": 4, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [1269, 1270, 1273, 1274], "excluded_lines": [1242], "executed_branches": [], "missing_branches": []}, "Image.load_image_data": {"executed_lines": [1288, 1289, 1291, 1292, 1294, 1295, 1297, 1298, 1301, 1304, 1306, 1309, 1310, 1313, 1315, 1317, 1322], "summary": {"covered_lines": 17, "num_statements": 21, "percent_covered": 82.75862068965517, "percent_covered_display": "83", "missing_lines": 4, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 1, "covered_branches": 7, "missing_branches": 1}, "missing_lines": [1318, 1319, 1320, 1321], "excluded_lines": [1278], "executed_branches": [[1288, 1289], [1288, 1291], [1295, 1297], [1295, 1301], [1309, 1310], [1309, 1313], [1317, 1322]], "missing_branches": [[1317, 1318]]}, "Image.get_image_info": {"executed_lines": [1332, 1334, 1335, 1338, 1339, 1341, 1352, 1353, 1354, 1357, 1358, 1359, 1361, 1370, 1371, 1374, 1375, 1376, 1380], "summary": {"covered_lines": 19, "num_statements": 21, "percent_covered": 84.84848484848484, "percent_covered_display": "85", "missing_lines": 2, "excluded_lines": 1, "num_branches": 12, "num_partial_branches": 3, "covered_branches": 9, "missing_branches": 3}, "missing_lines": [1377, 1378], "excluded_lines": [1325], "executed_branches": [[1334, 1335], [1334, 1338], [1339, 1341], [1352, 1353], [1357, 1358], [1357, 1361], [1370, 1371], [1374, 1375], [1374, 1380]], "missing_branches": [[1339, 1361], [1352, 1357], [1370, 1374]]}, "HorizontalRule.__init__": {"executed_lines": [1390], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1389], "executed_branches": [], "missing_branches": []}, "HorizontalRule.create_and_add_to": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [1407, 1410, 1411, 1413, 1415], "excluded_lines": [1394], "executed_branches": [], "missing_branches": [[1410, 1411], [1410, 1413]]}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 33, 43, 44, 48, 49, 53, 54, 59, 60, 64, 76, 77, 109, 110, 114, 115, 119, 128, 145, 154, 167, 177, 187, 188, 192, 197, 198, 199, 200, 201, 202, 203, 204, 207, 208, 213, 225, 226, 259, 260, 264, 265, 270, 271, 275, 286, 287, 319, 320, 324, 325, 329, 339, 351, 364, 375, 376, 380, 391, 392, 417, 418, 422, 423, 427, 436, 446, 447, 452, 453, 454, 455, 456, 459, 460, 464, 477, 478, 511, 512, 516, 517, 521, 522, 526, 527, 531, 541, 554, 564, 565, 570, 571, 575, 588, 589, 622, 623, 627, 628, 632, 633, 637, 638, 642, 652, 664, 677, 688, 689, 693, 710, 711, 745, 746, 750, 751, 755, 756, 760, 761, 765, 766, 770, 771, 775, 776, 780, 781, 785, 795, 807, 820, 831, 832, 836, 847, 848, 879, 880, 884, 885, 889, 899, 914, 924, 925, 930, 931, 935, 950, 951, 984, 985, 989, 990, 994, 995, 999, 1000, 1004, 1021, 1034, 1044, 1054, 1064, 1078, 1079, 1089, 1090, 1094, 1110, 1111, 1140, 1141, 1145, 1146, 1150, 1151, 1155, 1156, 1160, 1161, 1165, 1166, 1170, 1171, 1175, 1176, 1180, 1189, 1200, 1228, 1241, 1277, 1324, 1383, 1384, 1388, 1392, 1393], "summary": {"covered_lines": 210, "num_statements": 210, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [12, 28, 60, 198, 208, 271, 376, 453, 460, 571, 689, 832, 931, 1090, 1384], "executed_branches": [], "missing_branches": []}}, "classes": {"BlockType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Block": {"executed_lines": [40, 41, 46, 51, 56], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [34, 45, 50, 55], "executed_branches": [], "missing_branches": []}, "Paragraph": {"executed_lines": [71, 72, 73, 74, 126, 174, 175, 190, 194], "summary": {"covered_lines": 9, "num_statements": 25, "percent_covered": 31.428571428571427, "percent_covered_display": "31", "missing_lines": 16, "excluded_lines": 11, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 8}, "missing_lines": [93, 94, 95, 96, 99, 102, 103, 105, 107, 112, 117, 143, 152, 165, 184, 185], "excluded_lines": [65, 78, 111, 116, 120, 129, 146, 155, 168, 178, 189], "executed_branches": [[174, -167], [174, 175]], "missing_branches": [[93, 94], [93, 95], [95, 96], [95, 99], [102, 103], [102, 105], [184, -177], [184, 185]]}, "HeadingLevel": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Heading": {"executed_lines": [221, 222, 223, 262, 267], "summary": {"covered_lines": 5, "num_statements": 14, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 9, "excluded_lines": 4, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [243, 244, 245, 246, 249, 252, 253, 255, 257], "excluded_lines": [214, 227, 261, 266], "executed_branches": [], "missing_branches": [[243, 244], [243, 245], [245, 246], [245, 249], [252, 253], [252, 255]]}, "Quote": {"executed_lines": [282, 283, 284, 336, 337, 371, 372], "summary": {"covered_lines": 7, "num_statements": 20, "percent_covered": 32.142857142857146, "percent_covered_display": "32", "missing_lines": 13, "excluded_lines": 8, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 6}, "missing_lines": [303, 304, 305, 306, 309, 312, 313, 315, 317, 322, 327, 349, 362], "excluded_lines": [276, 288, 321, 326, 330, 340, 352, 365], "executed_branches": [[371, -364], [371, 372]], "missing_branches": [[303, 304], [303, 305], [305, 306], [305, 309], [312, 313], [312, 315]]}, "CodeBlock": {"executed_lines": [387, 388, 389, 420, 425, 434, 443, 444, 449], "summary": {"covered_lines": 9, "num_statements": 14, "percent_covered": 61.111111111111114, "percent_covered_display": "61", "missing_lines": 5, "excluded_lines": 7, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 2}, "missing_lines": [407, 410, 411, 413, 415], "excluded_lines": [381, 393, 419, 424, 428, 437, 448], "executed_branches": [[443, -436], [443, 444]], "missing_branches": [[410, 411], [410, 413]]}, "ListStyle": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "HList": {"executed_lines": [472, 473, 474, 475, 514, 519, 538, 539, 561, 562, 567], "summary": {"covered_lines": 11, "num_statements": 23, "percent_covered": 41.935483870967744, "percent_covered_display": "42", "missing_lines": 12, "excluded_lines": 10, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 6}, "missing_lines": [495, 496, 497, 498, 501, 504, 505, 507, 509, 524, 529, 552], "excluded_lines": [465, 479, 513, 518, 523, 528, 532, 542, 555, 566], "executed_branches": [[561, -554], [561, 562]], "missing_branches": [[495, 496], [495, 497], [497, 498], [497, 501], [504, 505], [504, 507]]}, "ListItem": {"executed_lines": [583, 584, 585, 586, 625, 630, 649, 650, 684, 685], "summary": {"covered_lines": 10, "num_statements": 23, "percent_covered": 38.70967741935484, "percent_covered_display": "39", "missing_lines": 13, "excluded_lines": 10, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 6}, "missing_lines": [606, 607, 608, 609, 612, 615, 616, 618, 620, 635, 640, 662, 675], "excluded_lines": [576, 590, 624, 629, 634, 639, 643, 653, 665, 678], "executed_branches": [[684, -677], [684, 685]], "missing_branches": [[606, 607], [606, 608], [608, 609], [608, 612], [615, 616], [615, 618]]}, "TableCell": {"executed_lines": [703, 704, 705, 706, 707, 708, 748, 758, 768, 792, 793], "summary": {"covered_lines": 11, "num_statements": 27, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 16, "excluded_lines": 14, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [731, 732, 735, 738, 739, 741, 743, 753, 763, 773, 778, 783, 805, 818, 827, 828], "excluded_lines": [694, 713, 747, 752, 757, 762, 767, 772, 777, 782, 786, 796, 808, 821], "executed_branches": [], "missing_branches": [[731, 732], [731, 735], [738, 739], [738, 741], [827, -820], [827, 828]]}, "TableRow": {"executed_lines": [843, 844, 845, 896, 897, 927], "summary": {"covered_lines": 6, "num_statements": 18, "percent_covered": 25.0, "percent_covered_display": "25", "missing_lines": 12, "excluded_lines": 8, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [865, 866, 869, 872, 873, 875, 877, 882, 887, 912, 921, 922], "excluded_lines": [837, 849, 881, 886, 890, 900, 915, 926], "executed_branches": [], "missing_branches": [[865, 866], [865, 869], [872, 873], [872, 875], [921, -914], [921, 922]]}, "Table": {"executed_lines": [943, 944, 945, 946, 947, 948, 987, 1012, 1014, 1015, 1016, 1017, 1019, 1041, 1042, 1051, 1052, 1061, 1062, 1071, 1072, 1073, 1074, 1075, 1076, 1081], "summary": {"covered_lines": 26, "num_statements": 39, "percent_covered": 68.85245901639344, "percent_covered_display": "69", "missing_lines": 13, "excluded_lines": 13, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 16, "missing_branches": 6}, "missing_lines": [968, 969, 970, 971, 974, 977, 978, 980, 982, 992, 997, 1002, 1032], "excluded_lines": [936, 952, 986, 991, 996, 1001, 1005, 1022, 1035, 1045, 1055, 1065, 1080], "executed_branches": [[1014, 1015], [1014, 1016], [1016, 1017], [1016, 1019], [1041, -1034], [1041, 1042], [1051, -1044], [1051, 1052], [1061, -1054], [1061, 1062], [1071, 1072], [1071, 1073], [1073, 1074], [1073, 1075], [1075, -1064], [1075, 1076]], "missing_branches": [[968, 969], [968, 970], [970, 971], [970, 974], [977, 978], [977, 980]]}, "Image": {"executed_lines": [1104, 1105, 1106, 1107, 1108, 1143, 1148, 1153, 1158, 1163, 1168, 1173, 1178, 1187, 1196, 1197, 1198, 1212, 1215, 1218, 1219, 1220, 1222, 1226, 1238, 1239, 1255, 1257, 1259, 1261, 1262, 1264, 1265, 1267, 1268, 1271, 1272, 1275, 1288, 1289, 1291, 1292, 1294, 1295, 1297, 1298, 1301, 1304, 1306, 1309, 1310, 1313, 1315, 1317, 1322, 1332, 1334, 1335, 1338, 1339, 1341, 1352, 1353, 1354, 1357, 1358, 1359, 1361, 1370, 1371, 1374, 1375, 1376, 1380], "summary": {"covered_lines": 74, "num_statements": 92, "percent_covered": 77.8688524590164, "percent_covered_display": "78", "missing_lines": 18, "excluded_lines": 17, "num_branches": 30, "num_partial_branches": 7, "covered_branches": 21, "missing_branches": 9}, "missing_lines": [1130, 1133, 1134, 1136, 1138, 1213, 1223, 1224, 1269, 1270, 1273, 1274, 1318, 1319, 1320, 1321, 1377, 1378], "excluded_lines": [1095, 1113, 1142, 1147, 1152, 1157, 1162, 1167, 1172, 1177, 1181, 1190, 1202, 1229, 1242, 1278, 1325], "executed_branches": [[1196, 1197], [1196, 1198], [1212, 1215], [1218, 1219], [1222, 1226], [1288, 1289], [1288, 1291], [1295, 1297], [1295, 1301], [1309, 1310], [1309, 1313], [1317, 1322], [1334, 1335], [1334, 1338], [1339, 1341], [1352, 1353], [1357, 1358], [1357, 1361], [1370, 1371], [1374, 1375], [1374, 1380]], "missing_branches": [[1133, 1134], [1133, 1136], [1212, 1213], [1218, 1222], [1222, 1223], [1317, 1318], [1339, 1361], [1352, 1357], [1370, 1374]]}, "HorizontalRule": {"executed_lines": [1390], "summary": {"covered_lines": 1, "num_statements": 6, "percent_covered": 12.5, "percent_covered_display": "12", "missing_lines": 5, "excluded_lines": 2, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [1407, 1410, 1411, 1413, 1415], "excluded_lines": [1389, 1394], "executed_branches": [], "missing_branches": [[1410, 1411], [1410, 1413]]}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 33, 43, 44, 48, 49, 53, 54, 59, 60, 64, 76, 77, 109, 110, 114, 115, 119, 128, 145, 154, 167, 177, 187, 188, 192, 197, 198, 199, 200, 201, 202, 203, 204, 207, 208, 213, 225, 226, 259, 260, 264, 265, 270, 271, 275, 286, 287, 319, 320, 324, 325, 329, 339, 351, 364, 375, 376, 380, 391, 392, 417, 418, 422, 423, 427, 436, 446, 447, 452, 453, 454, 455, 456, 459, 460, 464, 477, 478, 511, 512, 516, 517, 521, 522, 526, 527, 531, 541, 554, 564, 565, 570, 571, 575, 588, 589, 622, 623, 627, 628, 632, 633, 637, 638, 642, 652, 664, 677, 688, 689, 693, 710, 711, 745, 746, 750, 751, 755, 756, 760, 761, 765, 766, 770, 771, 775, 776, 780, 781, 785, 795, 807, 820, 831, 832, 836, 847, 848, 879, 880, 884, 885, 889, 899, 914, 924, 925, 930, 931, 935, 950, 951, 984, 985, 989, 990, 994, 995, 999, 1000, 1004, 1021, 1034, 1044, 1054, 1064, 1078, 1079, 1089, 1090, 1094, 1110, 1111, 1140, 1141, 1145, 1146, 1150, 1151, 1155, 1156, 1160, 1161, 1165, 1166, 1170, 1171, 1175, 1176, 1180, 1189, 1200, 1228, 1241, 1277, 1324, 1383, 1384, 1388, 1392, 1393], "summary": {"covered_lines": 210, "num_statements": 210, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [12, 28, 60, 198, 208, 271, 376, 453, 460, 571, 689, 832, 931, 1090, 1384], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/abstract/document.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 30, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 52, 53, 55, 57, 58, 62, 63, 67, 74, 76, 92, 109, 125, 133, 135, 145, 147, 155, 157, 167, 169, 177, 179, 189, 191, 198, 200, 207, 209, 216, 218, 225, 227, 228, 235, 237, 238, 247, 257, 259, 260, 261, 262, 265, 267, 270, 271, 273, 280, 281, 283, 290, 292, 293, 295, 296, 297, 298, 301, 302, 304, 307, 308, 313, 322, 323, 324, 325, 326, 328, 329, 331, 333, 334, 336, 338, 339, 341, 343, 344, 346, 348, 349, 353, 354, 358, 365, 367, 383, 400, 408, 410, 420, 423, 424, 429, 440, 441, 443, 444, 446, 447, 449, 451, 458, 460, 472, 473, 474, 475, 476, 478, 485, 487, 494, 496, 503, 504, 505, 506, 508], "summary": {"covered_lines": 149, "num_statements": 179, "percent_covered": 79.62085308056872, "percent_covered_display": "80", "missing_lines": 30, "excluded_lines": 46, "num_branches": 32, "num_partial_branches": 3, "covered_branches": 19, "missing_branches": 13}, "missing_lines": [60, 65, 86, 87, 88, 89, 90, 103, 104, 105, 106, 107, 121, 122, 123, 245, 266, 268, 351, 356, 377, 378, 379, 380, 381, 394, 395, 396, 397, 398], "excluded_lines": [10, 25, 31, 54, 59, 64, 68, 77, 93, 110, 126, 136, 148, 158, 170, 180, 192, 201, 210, 219, 229, 239, 248, 274, 284, 308, 314, 330, 335, 340, 345, 350, 355, 359, 368, 384, 401, 411, 424, 431, 448, 452, 461, 479, 488, 497], "executed_branches": [[48, 49], [48, 50], [260, -259], [260, 261], [261, 262], [261, 265], [265, 267], [267, 260], [293, 295], [293, 304], [296, 297], [296, 298], [443, -429], [443, 444], [472, 473], [504, 505], [504, 508], [505, 504], [505, 506]], "missing_branches": [[86, 87], [86, 88], [103, 104], [103, 105], [121, 122], [121, 123], [265, 266], [267, 268], [377, 378], [377, 379], [394, 395], [394, 396], [472, 474]], "functions": {"Document.__init__": {"executed_lines": [39, 40, 41, 42, 43, 44, 45, 48, 49, 50], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [31], "executed_branches": [[48, 49], [48, 50]], "missing_branches": []}, "Document.blocks": {"executed_lines": [55], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [54], "executed_branches": [], "missing_branches": []}, "Document.default_style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [65], "excluded_lines": [64], "executed_branches": [], "missing_branches": []}, "Document.add_block": {"executed_lines": [74], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [68], "executed_branches": [], "missing_branches": []}, "Document.create_paragraph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [86, 87, 88, 89, 90], "excluded_lines": [77], "executed_branches": [], "missing_branches": [[86, 87], [86, 88]]}, "Document.create_heading": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [103, 104, 105, 106, 107], "excluded_lines": [93], "executed_branches": [], "missing_branches": [[103, 104], [103, 105]]}, "Document.create_chapter": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [121, 122, 123], "excluded_lines": [110], "executed_branches": [], "missing_branches": [[121, 122], [121, 123]]}, "Document.set_metadata": {"executed_lines": [133], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [126], "executed_branches": [], "missing_branches": []}, "Document.get_metadata": {"executed_lines": [145], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [136], "executed_branches": [], "missing_branches": []}, "Document.add_anchor": {"executed_lines": [155], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [148], "executed_branches": [], "missing_branches": []}, "Document.get_anchor": {"executed_lines": [167], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [158], "executed_branches": [], "missing_branches": []}, "Document.add_resource": {"executed_lines": [177], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [170], "executed_branches": [], "missing_branches": []}, "Document.get_resource": {"executed_lines": [189], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [180], "executed_branches": [], "missing_branches": []}, "Document.add_stylesheet": {"executed_lines": [198], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [192], "executed_branches": [], "missing_branches": []}, "Document.add_script": {"executed_lines": [207], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [201], "executed_branches": [], "missing_branches": []}, "Document.get_title": {"executed_lines": [216], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [210], "executed_branches": [], "missing_branches": []}, "Document.set_title": {"executed_lines": [225], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [219], "executed_branches": [], "missing_branches": []}, "Document.title": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [245], "excluded_lines": [239], "executed_branches": [], "missing_branches": []}, "Document.find_blocks_by_type": {"executed_lines": [257, 259, 270, 271], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [248], "executed_branches": [], "missing_branches": []}, "Document.find_blocks_by_type._find_recursive": {"executed_lines": [260, 261, 262, 265, 267], "summary": {"covered_lines": 5, "num_statements": 7, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 2, "excluded_lines": 0, "num_branches": 8, "num_partial_branches": 2, "covered_branches": 6, "missing_branches": 2}, "missing_lines": [266, 268], "excluded_lines": [], "executed_branches": [[260, -259], [260, 261], [261, 262], [261, 265], [265, 267], [267, 260]], "missing_branches": [[265, 266], [267, 268]]}, "Document.find_headings": {"executed_lines": [280, 281], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [274], "executed_branches": [], "missing_branches": []}, "Document.generate_table_of_contents": {"executed_lines": [290, 292, 293, 295, 296, 297, 298, 301, 302, 304], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [284], "executed_branches": [[293, 295], [293, 304], [296, 297], [296, 298]], "missing_branches": []}, "Chapter.__init__": {"executed_lines": [322, 323, 324, 325, 326], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [314], "executed_branches": [], "missing_branches": []}, "Chapter.title": {"executed_lines": [336], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [335], "executed_branches": [], "missing_branches": []}, "Chapter.level": {"executed_lines": [341], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [340], "executed_branches": [], "missing_branches": []}, "Chapter.blocks": {"executed_lines": [346], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [345], "executed_branches": [], "missing_branches": []}, "Chapter.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [356], "excluded_lines": [355], "executed_branches": [], "missing_branches": []}, "Chapter.add_block": {"executed_lines": [365], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [359], "executed_branches": [], "missing_branches": []}, "Chapter.create_paragraph": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [377, 378, 379, 380, 381], "excluded_lines": [368], "executed_branches": [], "missing_branches": [[377, 378], [377, 379]]}, "Chapter.create_heading": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [394, 395, 396, 397, 398], "excluded_lines": [384], "executed_branches": [], "missing_branches": [[394, 395], [394, 396]]}, "Chapter.set_metadata": {"executed_lines": [408], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [401], "executed_branches": [], "missing_branches": []}, "Chapter.get_metadata": {"executed_lines": [420], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [411], "executed_branches": [], "missing_branches": []}, "Book.__init__": {"executed_lines": [440, 441, 443, 444], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [431], "executed_branches": [[443, -429], [443, 444]], "missing_branches": []}, "Book.chapters": {"executed_lines": [449], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [448], "executed_branches": [], "missing_branches": []}, "Book.add_chapter": {"executed_lines": [458], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [452], "executed_branches": [], "missing_branches": []}, "Book.create_chapter": {"executed_lines": [472, 473, 474, 475, 476], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 85.71428571428571, "percent_covered_display": "86", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [461], "executed_branches": [[472, 473]], "missing_branches": [[472, 474]]}, "Book.get_author": {"executed_lines": [485], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [479], "executed_branches": [], "missing_branches": []}, "Book.set_author": {"executed_lines": [494], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [488], "executed_branches": [], "missing_branches": []}, "Book.generate_table_of_contents": {"executed_lines": [503, 504, 505, 506, 508], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [497], "executed_branches": [[504, 505], [504, 508], [505, 504], [505, 506]], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 30, 52, 53, 57, 58, 62, 63, 67, 76, 92, 109, 125, 135, 147, 157, 169, 179, 191, 200, 209, 218, 227, 228, 237, 238, 247, 273, 283, 307, 308, 313, 328, 329, 333, 334, 338, 339, 343, 344, 348, 349, 353, 354, 358, 367, 383, 400, 410, 423, 424, 429, 446, 447, 451, 460, 478, 487, 496], "summary": {"covered_lines": 75, "num_statements": 75, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [10, 25, 308, 424], "executed_branches": [], "missing_branches": []}}, "classes": {"MetadataType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Document": {"executed_lines": [39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 55, 74, 133, 145, 155, 167, 177, 189, 198, 207, 216, 225, 235, 257, 259, 260, 261, 262, 265, 267, 270, 271, 280, 281, 290, 292, 293, 295, 296, 297, 298, 301, 302, 304], "summary": {"covered_lines": 44, "num_statements": 62, "percent_covered": 68.29268292682927, "percent_covered_display": "68", "missing_lines": 18, "excluded_lines": 23, "num_branches": 20, "num_partial_branches": 2, "covered_branches": 12, "missing_branches": 8}, "missing_lines": [60, 65, 86, 87, 88, 89, 90, 103, 104, 105, 106, 107, 121, 122, 123, 245, 266, 268], "excluded_lines": [31, 54, 59, 64, 68, 77, 93, 110, 126, 136, 148, 158, 170, 180, 192, 201, 210, 219, 229, 239, 248, 274, 284], "executed_branches": [[48, 49], [48, 50], [260, -259], [260, 261], [261, 262], [261, 265], [265, 267], [267, 260], [293, 295], [293, 304], [296, 297], [296, 298]], "missing_branches": [[86, 87], [86, 88], [103, 104], [103, 105], [121, 122], [121, 123], [265, 266], [267, 268]]}, "Chapter": {"executed_lines": [322, 323, 324, 325, 326, 331, 336, 341, 346, 365, 408, 420], "summary": {"covered_lines": 12, "num_statements": 24, "percent_covered": 42.857142857142854, "percent_covered_display": "43", "missing_lines": 12, "excluded_lines": 12, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [351, 356, 377, 378, 379, 380, 381, 394, 395, 396, 397, 398], "excluded_lines": [314, 330, 335, 340, 345, 350, 355, 359, 368, 384, 401, 411], "executed_branches": [], "missing_branches": [[377, 378], [377, 379], [394, 395], [394, 396]]}, "Book": {"executed_lines": [440, 441, 443, 444, 449, 458, 472, 473, 474, 475, 476, 485, 494, 503, 504, 505, 506, 508], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 96.15384615384616, "percent_covered_display": "96", "missing_lines": 0, "excluded_lines": 7, "num_branches": 8, "num_partial_branches": 1, "covered_branches": 7, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [431, 448, 452, 461, 479, 488, 497], "executed_branches": [[443, -429], [443, 444], [472, 473], [504, 505], [504, 508], [505, 504], [505, 506]], "missing_branches": [[472, 474]]}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 30, 52, 53, 57, 58, 62, 63, 67, 76, 92, 109, 125, 135, 147, 157, 169, 179, 191, 200, 209, 218, 227, 228, 237, 238, 247, 273, 283, 307, 308, 313, 328, 329, 333, 334, 338, 339, 343, 344, 348, 349, 353, 354, 358, 367, 383, 400, 410, 423, 424, 429, 446, 447, 451, 460, 478, 487, 496], "summary": {"covered_lines": 75, "num_statements": 75, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [10, 25, 308, 424], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/abstract/functional.py": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 15, 16, 22, 38, 39, 40, 41, 42, 44, 45, 47, 49, 50, 52, 54, 55, 57, 59, 60, 62, 64, 74, 75, 79, 82, 83, 88, 102, 103, 104, 105, 107, 108, 110, 112, 113, 115, 117, 118, 120, 122, 123, 125, 127, 128, 130, 132, 139, 140, 141, 144, 145, 150, 162, 163, 164, 165, 167, 168, 170, 172, 173, 175, 177, 184, 185, 187, 197, 199, 206, 208, 215, 217, 218, 220, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 241, 242, 246, 264, 265, 266, 267, 268, 269, 270, 272, 273, 275, 277, 278, 280, 282, 283, 285, 287, 288, 290, 292, 293, 295, 297, 298, 300, 302, 303, 305, 307, 308, 310, 312, 313, 315], "summary": {"covered_lines": 132, "num_statements": 132, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 36, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 16, 28, 46, 51, 56, 61, 65, 83, 93, 109, 114, 119, 124, 129, 133, 145, 154, 169, 174, 178, 188, 200, 209, 224, 242, 253, 274, 279, 284, 289, 294, 299, 304, 309, 314], "executed_branches": [[74, 75], [74, 79], [139, 140], [139, 141], [217, 218], [217, 220]], "missing_branches": [], "functions": {"Link.__init__": {"executed_lines": [38, 39, 40, 41, 42], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [28], "executed_branches": [], "missing_branches": []}, "Link.location": {"executed_lines": [47], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [46], "executed_branches": [], "missing_branches": []}, "Link.link_type": {"executed_lines": [52], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [51], "executed_branches": [], "missing_branches": []}, "Link.params": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [56], "executed_branches": [], "missing_branches": []}, "Link.title": {"executed_lines": [62], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [61], "executed_branches": [], "missing_branches": []}, "Link.execute": {"executed_lines": [74, 75, 79], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [65], "executed_branches": [[74, 75], [74, 79]], "missing_branches": []}, "Button.__init__": {"executed_lines": [102, 103, 104, 105], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [93], "executed_branches": [], "missing_branches": []}, "Button.label": {"executed_lines": [115], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [114], "executed_branches": [], "missing_branches": []}, "Button.enabled": {"executed_lines": [125], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [124], "executed_branches": [], "missing_branches": []}, "Button.params": {"executed_lines": [130], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [129], "executed_branches": [], "missing_branches": []}, "Button.execute": {"executed_lines": [139, 140, 141], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [133], "executed_branches": [[139, 140], [139, 141]], "missing_branches": []}, "Form.__init__": {"executed_lines": [162, 163, 164, 165], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [154], "executed_branches": [], "missing_branches": []}, "Form.form_id": {"executed_lines": [170], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [169], "executed_branches": [], "missing_branches": []}, "Form.action": {"executed_lines": [175], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [174], "executed_branches": [], "missing_branches": []}, "Form.add_field": {"executed_lines": [184, 185], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [178], "executed_branches": [], "missing_branches": []}, "Form.get_field": {"executed_lines": [197], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [188], "executed_branches": [], "missing_branches": []}, "Form.get_values": {"executed_lines": [206], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [200], "executed_branches": [], "missing_branches": []}, "Form.execute": {"executed_lines": [215, 217, 218, 220], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [209], "executed_branches": [[217, 218], [217, 220]], "missing_branches": []}, "FormField.__init__": {"executed_lines": [264, 265, 266, 267, 268, 269, 270], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [253], "executed_branches": [], "missing_branches": []}, "FormField.name": {"executed_lines": [275], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [274], "executed_branches": [], "missing_branches": []}, "FormField.field_type": {"executed_lines": [280], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [279], "executed_branches": [], "missing_branches": []}, "FormField.label": {"executed_lines": [285], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [284], "executed_branches": [], "missing_branches": []}, "FormField.value": {"executed_lines": [295], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [294], "executed_branches": [], "missing_branches": []}, "FormField.required": {"executed_lines": [300], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [299], "executed_branches": [], "missing_branches": []}, "FormField.options": {"executed_lines": [305], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [304], "executed_branches": [], "missing_branches": []}, "FormField.form": {"executed_lines": [315], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [314], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 15, 16, 22, 44, 45, 49, 50, 54, 55, 59, 60, 64, 82, 83, 88, 107, 108, 112, 113, 117, 118, 122, 123, 127, 128, 132, 144, 145, 150, 167, 168, 172, 173, 177, 187, 199, 208, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 241, 242, 246, 272, 273, 277, 278, 282, 283, 287, 288, 292, 293, 297, 298, 302, 303, 307, 308, 312, 313], "summary": {"covered_lines": 78, "num_statements": 78, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 16, 83, 145, 224, 242], "executed_branches": [], "missing_branches": []}}, "classes": {"LinkType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Link": {"executed_lines": [38, 39, 40, 41, 42, 47, 52, 57, 62, 74, 75, 79], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [28, 46, 51, 56, 61, 65], "executed_branches": [[74, 75], [74, 79]], "missing_branches": []}, "Button": {"executed_lines": [102, 103, 104, 105, 110, 115, 120, 125, 130, 139, 140, 141], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 7, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [93, 109, 114, 119, 124, 129, 133], "executed_branches": [[139, 140], [139, 141]], "missing_branches": []}, "Form": {"executed_lines": [162, 163, 164, 165, 170, 175, 184, 185, 197, 206, 215, 217, 218, 220], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 7, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [154, 169, 174, 178, 188, 200, 209], "executed_branches": [[217, 218], [217, 220]], "missing_branches": []}, "FormFieldType": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "FormField": {"executed_lines": [264, 265, 266, 267, 268, 269, 270, 275, 280, 285, 290, 295, 300, 305, 310, 315], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 10, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [253, 274, 279, 284, 289, 294, 299, 304, 309, 314], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 15, 16, 22, 44, 45, 49, 50, 54, 55, 59, 60, 64, 82, 83, 88, 107, 108, 112, 113, 117, 118, 122, 123, 127, 128, 132, 144, 145, 150, 167, 168, 172, 173, 177, 187, 199, 208, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 241, 242, 246, 272, 273, 277, 278, 282, 283, 287, 288, 292, 293, 297, 298, 302, 303, 307, 308, 312, 313], "summary": {"covered_lines": 78, "num_statements": 78, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 16, 83, 145, 224, 242], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/abstract/inline.py": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 15, 25, 26, 27, 28, 29, 30, 32, 33, 56, 57, 58, 60, 63, 64, 67, 68, 70, 71, 73, 75, 76, 77, 78, 81, 84, 85, 88, 90, 91, 92, 94, 96, 97, 99, 104, 105, 108, 111, 113, 115, 117, 118, 120, 122, 123, 125, 127, 128, 130, 132, 133, 135, 137, 138, 140, 142, 143, 145, 147, 149, 151, 162, 163, 166, 167, 169, 180, 181, 184, 187, 188, 191, 194, 195, 197, 198, 200, 202, 204, 217, 218, 220, 222, 229, 232, 233, 238, 246, 247, 248, 250, 251, 268, 269, 270, 272, 275, 276, 279, 282, 283, 285, 287, 289, 290, 292, 294, 295, 297, 299, 300, 302, 304, 315, 318, 321, 322, 325, 327, 330, 331, 337, 340, 341, 342, 344, 345, 347, 349, 350, 352, 354, 355, 357, 359, 360, 371, 374, 375, 376, 377, 378, 380, 383, 385], "summary": {"covered_lines": 150, "num_statements": 150, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 28, "num_branches": 44, "num_partial_branches": 0, "covered_branches": 44, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [9, 16, 35, 119, 124, 129, 134, 139, 144, 148, 152, 170, 201, 205, 223, 233, 239, 252, 291, 296, 301, 305, 331, 338, 346, 351, 356, 361], "executed_branches": [[56, 57], [56, 63], [57, 58], [57, 60], [63, 64], [63, 67], [68, 70], [68, 71], [71, 73], [71, 81], [75, 76], [75, 81], [84, 85], [84, 88], [88, 90], [88, 113], [94, 96], [94, 111], [97, 99], [97, 104], [104, 105], [104, 108], [187, 188], [187, 191], [194, 195], [194, 197], [217, 218], [217, 220], [268, 269], [268, 275], [269, 270], [269, 272], [275, 276], [275, 279], [282, 283], [282, 285], [321, 322], [321, 325], [374, 375], [374, 376], [376, 377], [376, 378], [378, 380], [378, 383]], "missing_branches": [], "functions": {"Word.__init__": {"executed_lines": [25, 26, 27, 28, 29, 30], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [16], "executed_branches": [], "missing_branches": []}, "Word.create_and_add_to": {"executed_lines": [56, 57, 58, 60, 63, 64, 67, 68, 70, 71, 73, 75, 76, 77, 78, 81, 84, 85, 88, 90, 91, 92, 94, 96, 97, 99, 104, 105, 108, 111, 113, 115], "summary": {"covered_lines": 32, "num_statements": 32, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 22, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [35], "executed_branches": [[56, 57], [56, 63], [57, 58], [57, 60], [63, 64], [63, 67], [68, 70], [68, 71], [71, 73], [71, 81], [75, 76], [75, 81], [84, 85], [84, 88], [88, 90], [88, 113], [94, 96], [94, 111], [97, 99], [97, 104], [104, 105], [104, 108]], "missing_branches": []}, "Word.text": {"executed_lines": [120], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [119], "executed_branches": [], "missing_branches": []}, "Word.style": {"executed_lines": [125], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [124], "executed_branches": [], "missing_branches": []}, "Word.background": {"executed_lines": [130], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [129], "executed_branches": [], "missing_branches": []}, "Word.previous": {"executed_lines": [135], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [134], "executed_branches": [], "missing_branches": []}, "Word.next": {"executed_lines": [140], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [139], "executed_branches": [], "missing_branches": []}, "Word.hyphenated_parts": {"executed_lines": [145], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [144], "executed_branches": [], "missing_branches": []}, "Word.add_next": {"executed_lines": [149], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [148], "executed_branches": [], "missing_branches": []}, "Word.can_hyphenate": {"executed_lines": [162, 163, 166, 167], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [152], "executed_branches": [], "missing_branches": []}, "Word.hyphenate": {"executed_lines": [180, 181, 184, 187, 188, 191, 194, 195, 197, 198], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [170], "executed_branches": [[187, 188], [187, 191], [194, 195], [194, 197]], "missing_branches": []}, "Word.dehyphenate": {"executed_lines": [202], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [201], "executed_branches": [], "missing_branches": []}, "Word.get_hyphenated_part": {"executed_lines": [217, 218, 220], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [205], "executed_branches": [[217, 218], [217, 220]], "missing_branches": []}, "Word.get_hyphenated_part_count": {"executed_lines": [229], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [223], "executed_branches": [], "missing_branches": []}, "FormattedSpan.__init__": {"executed_lines": [246, 247, 248], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [239], "executed_branches": [], "missing_branches": []}, "FormattedSpan.create_and_add_to": {"executed_lines": [268, 269, 270, 272, 275, 276, 279, 282, 283, 285, 287], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 8, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [252], "executed_branches": [[268, 269], [268, 275], [269, 270], [269, 272], [275, 276], [275, 279], [282, 283], [282, 285]], "missing_branches": []}, "FormattedSpan.style": {"executed_lines": [292], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [291], "executed_branches": [], "missing_branches": []}, "FormattedSpan.background": {"executed_lines": [297], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [296], "executed_branches": [], "missing_branches": []}, "FormattedSpan.words": {"executed_lines": [302], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [301], "executed_branches": [], "missing_branches": []}, "FormattedSpan.add_word": {"executed_lines": [315, 318, 321, 322, 325, 327], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [305], "executed_branches": [[321, 322], [321, 325]], "missing_branches": []}, "LineBreak.__init__": {"executed_lines": [340, 341, 342], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [338], "executed_branches": [], "missing_branches": []}, "LineBreak.block_type": {"executed_lines": [347], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [346], "executed_branches": [], "missing_branches": []}, "LineBreak.parent": {"executed_lines": [357], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [356], "executed_branches": [], "missing_branches": []}, "LineBreak.create_and_add_to": {"executed_lines": [371, 374, 375, 376, 377, 378, 380, 383, 385], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [361], "executed_branches": [[374, 375], [374, 376], [376, 377], [376, 378], [378, 380], [378, 383]], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 15, 32, 33, 117, 118, 122, 123, 127, 128, 132, 133, 137, 138, 142, 143, 147, 151, 169, 200, 204, 222, 232, 233, 238, 250, 251, 289, 290, 294, 295, 299, 300, 304, 330, 331, 337, 344, 345, 349, 350, 354, 355, 359, 360], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [9, 233, 331], "executed_branches": [], "missing_branches": []}}, "classes": {"Word": {"executed_lines": [25, 26, 27, 28, 29, 30, 56, 57, 58, 60, 63, 64, 67, 68, 70, 71, 73, 75, 76, 77, 78, 81, 84, 85, 88, 90, 91, 92, 94, 96, 97, 99, 104, 105, 108, 111, 113, 115, 120, 125, 130, 135, 140, 145, 149, 162, 163, 166, 167, 180, 181, 184, 187, 188, 191, 194, 195, 197, 198, 202, 217, 218, 220, 229], "summary": {"covered_lines": 64, "num_statements": 64, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 14, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 28, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [16, 35, 119, 124, 129, 134, 139, 144, 148, 152, 170, 201, 205, 223], "executed_branches": [[56, 57], [56, 63], [57, 58], [57, 60], [63, 64], [63, 67], [68, 70], [68, 71], [71, 73], [71, 81], [75, 76], [75, 81], [84, 85], [84, 88], [88, 90], [88, 113], [94, 96], [94, 111], [97, 99], [97, 104], [104, 105], [104, 108], [187, 188], [187, 191], [194, 195], [194, 197], [217, 218], [217, 220]], "missing_branches": []}, "FormattedSpan": {"executed_lines": [246, 247, 248, 268, 269, 270, 272, 275, 276, 279, 282, 283, 285, 287, 292, 297, 302, 315, 318, 321, 322, 325, 327], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 10, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [239, 252, 291, 296, 301, 305], "executed_branches": [[268, 269], [268, 275], [269, 270], [269, 272], [275, 276], [275, 279], [282, 283], [282, 285], [321, 322], [321, 325]], "missing_branches": []}, "LineBreak": {"executed_lines": [340, 341, 342, 347, 352, 357, 371, 374, 375, 376, 377, 378, 380, 383, 385], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 5, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 6, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [338, 346, 351, 356, 361], "executed_branches": [[374, 375], [374, 376], [376, 377], [376, 378], [378, 380], [378, 383]], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 5, 8, 9, 15, 32, 33, 117, 118, 122, 123, 127, 128, 132, 133, 137, 138, 142, 143, 147, 151, 169, 200, 204, 222, 232, 233, 238, 250, 251, 289, 290, 294, 295, 299, 300, 304, 330, 331, 337, 344, 345, 349, 350, 354, 355, 359, 360], "summary": {"covered_lines": 48, "num_statements": 48, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [9, 233, 331], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/__init__.py": {"executed_lines": [1, 2, 3, 4, 5], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 2, 3, 4, 5], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 2, 3, 4, 5], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/box.py": {"executed_lines": [1, 2, 4, 5, 7, 9, 22, 26], "summary": {"covered_lines": 8, "num_statements": 38, "percent_covered": 15.384615384615385, "percent_covered_display": "15", "missing_lines": 30, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 24, 28, 29, 32, 35, 36, 39, 40, 43, 44, 45, 46, 48, 51, 52, 53, 54, 56, 59, 61], "excluded_lines": [], "executed_branches": [], "missing_branches": [[15, 16], [15, 18], [28, 29], [28, 32], [35, 36], [35, 61], [43, 44], [43, 45], [45, 46], [45, 48], [51, 52], [51, 53], [53, 54], [53, 56]], "functions": {"Box.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [10, 11, 12, 13, 14, 15, 16, 18, 19, 20], "excluded_lines": [], "executed_branches": [], "missing_branches": [[15, 16], [15, 18]]}, "Box.in_shape": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [24], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Box.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 0, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [28, 29, 32, 35, 36, 39, 40, 43, 44, 45, 46, 48, 51, 52, 53, 54, 56, 59, 61], "excluded_lines": [], "executed_branches": [], "missing_branches": [[28, 29], [28, 32], [35, 36], [35, 61], [43, 44], [43, 45], [45, 46], [45, 48], [51, 52], [51, 53], [53, 54], [53, 56]]}, "": {"executed_lines": [1, 2, 4, 5, 7, 9, 22, 26], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"Box": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 30, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 30, "excluded_lines": 0, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 24, 28, 29, 32, 35, 36, 39, 40, 43, 44, 45, 46, 48, 51, 52, 53, 54, 56, 59, 61], "excluded_lines": [], "executed_branches": [], "missing_branches": [[15, 16], [15, 18], [28, 29], [28, 32], [35, 36], [35, 61], [43, 44], [43, 45], [45, 46], [45, 48], [51, 52], [51, 53], [53, 54], [53, 56]]}, "": {"executed_lines": [1, 2, 4, 5, 7, 9, 22, 26], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/functional.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 13, 14, 18, 69, 70, 74, 103, 107, 117, 118, 122, 165, 166, 170, 218, 222, 226, 236, 237, 241, 284, 295, 316, 331, 358, 381, 382, 386, 438, 504, 508, 538], "summary": {"covered_lines": 37, "num_statements": 222, "percent_covered": 12.847222222222221, "percent_covered_display": "13", "missing_lines": 185, "excluded_lines": 26, "num_branches": 66, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 66}, "missing_lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 47, 50, 51, 52, 58, 59, 62, 65, 66, 67, 72, 82, 83, 86, 87, 90, 93, 96, 98, 99, 101, 105, 109, 110, 113, 141, 144, 145, 146, 152, 153, 156, 159, 160, 161, 162, 163, 168, 178, 179, 182, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 196, 199, 200, 201, 204, 209, 210, 211, 214, 216, 220, 224, 228, 229, 232, 260, 261, 264, 265, 268, 269, 270, 271, 274, 275, 278, 281, 282, 287, 288, 289, 292, 293, 298, 304, 305, 308, 309, 312, 314, 318, 321, 322, 323, 326, 328, 329, 339, 342, 345, 346, 347, 348, 351, 352, 353, 354, 356, 369, 371, 374, 375, 376, 378, 403, 406, 407, 410, 411, 413, 416, 417, 418, 419, 421, 424, 425, 427, 430, 433, 434, 435, 436, 446, 447, 450, 451, 454, 455, 458, 459, 462, 464, 465, 467, 470, 471, 473, 474, 477, 483, 484, 485, 488, 489, 492, 493, 496, 497, 500, 502, 506, 519, 520, 523, 525, 526, 528, 531, 533, 534, 536, 540, 541, 544], "excluded_lines": [14, 21, 71, 75, 104, 108, 118, 126, 167, 171, 219, 223, 227, 237, 245, 285, 296, 317, 332, 359, 382, 389, 439, 505, 509, 539], "executed_branches": [], "missing_branches": [[37, 38], [37, 39], [39, 40], [39, 41], [41, 42], [41, 43], [43, 44], [43, 47], [50, 51], [50, 58], [58, 59], [58, 62], [96, 98], [96, 101], [144, 145], [144, 152], [152, 153], [152, 156], [182, 184], [182, 187], [187, 189], [187, 192], [192, 194], [192, 199], [260, 261], [260, 264], [281, -241], [281, 282], [287, 288], [287, 292], [308, 309], [308, 312], [321, 322], [321, 326], [326, -316], [326, 328], [345, 346], [345, 351], [351, 352], [351, 356], [369, 371], [369, 374], [374, 375], [374, 378], [375, 374], [375, 376], [406, 407], [406, 430], [410, 411], [410, 413], [416, 417], [416, 418], [418, 419], [418, 421], [464, 465], [464, 467], [473, 474], [473, 477], [483, 484], [483, 502], [488, 489], [488, 492], [525, 526], [525, 528], [531, 533], [531, 536]], "functions": {"RenderableLink.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 1, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 47, 50, 51, 52, 58, 59, 62, 65, 66, 67], "excluded_lines": [21], "executed_branches": [], "missing_branches": [[37, 38], [37, 39], [39, 40], [39, 41], [41, 42], [41, 43], [43, 44], [43, 47], [50, 51], [50, 58], [58, 59], [58, 62]]}, "RenderableLink.link": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [72], "excluded_lines": [71], "executed_branches": [], "missing_branches": []}, "RenderableLink.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [82, 83, 86, 87, 90, 93, 96, 98, 99, 101], "excluded_lines": [75], "executed_branches": [], "missing_branches": [[96, 98], [96, 101]]}, "RenderableLink.set_hovered": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [105], "excluded_lines": [104], "executed_branches": [], "missing_branches": []}, "RenderableLink.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [109, 110, 113], "excluded_lines": [108], "executed_branches": [], "missing_branches": []}, "RenderableButton.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [141, 144, 145, 146, 152, 153, 156, 159, 160, 161, 162, 163], "excluded_lines": [126], "executed_branches": [], "missing_branches": [[144, 145], [144, 152], [152, 153], [152, 156]]}, "RenderableButton.button": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [168], "excluded_lines": [167], "executed_branches": [], "missing_branches": []}, "RenderableButton.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [178, 179, 182, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 196, 199, 200, 201, 204, 209, 210, 211, 214, 216], "excluded_lines": [171], "executed_branches": [], "missing_branches": [[182, 184], [182, 187], [187, 189], [187, 192], [192, 194], [192, 199]]}, "RenderableButton.set_pressed": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [220], "excluded_lines": [219], "executed_branches": [], "missing_branches": []}, "RenderableButton.set_hovered": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [224], "excluded_lines": [223], "executed_branches": [], "missing_branches": []}, "RenderableButton.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [228, 229, 232], "excluded_lines": [227], "executed_branches": [], "missing_branches": []}, "RenderableForm.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [260, 261, 264, 265, 268, 269, 270, 271, 274, 275, 278, 281, 282], "excluded_lines": [245], "executed_branches": [], "missing_branches": [[260, 261], [260, 264], [281, -241], [281, 282]]}, "RenderableForm._create_form_elements": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [287, 288, 289, 292, 293], "excluded_lines": [285], "executed_branches": [], "missing_branches": [[287, 288], [287, 292]]}, "RenderableForm._calculate_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [298, 304, 305, 308, 309, 312, 314], "excluded_lines": [296], "executed_branches": [], "missing_branches": [[308, 309], [308, 312]]}, "RenderableForm.layout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [318, 321, 322, 323, 326, 328, 329], "excluded_lines": [317], "executed_branches": [], "missing_branches": [[321, 322], [321, 326], [326, -316], [326, 328]]}, "RenderableForm.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [339, 342, 345, 346, 347, 348, 351, 352, 353, 354, 356], "excluded_lines": [332], "executed_branches": [], "missing_branches": [[345, 346], [345, 351], [351, 352], [351, 356]]}, "RenderableForm.handle_click": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [369, 371, 374, 375, 376, 378], "excluded_lines": [359], "executed_branches": [], "missing_branches": [[369, 371], [369, 374], [374, 375], [374, 378], [375, 374], [375, 376]]}, "RenderableFormField.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 19, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 19, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [403, 406, 407, 410, 411, 413, 416, 417, 418, 419, 421, 424, 425, 427, 430, 433, 434, 435, 436], "excluded_lines": [389], "executed_branches": [], "missing_branches": [[406, 407], [406, 430], [410, 411], [410, 413], [416, 417], [416, 418], [418, 419], [418, 421]]}, "RenderableFormField.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 28, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 28, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [446, 447, 450, 451, 454, 455, 458, 459, 462, 464, 465, 467, 470, 471, 473, 474, 477, 483, 484, 485, 488, 489, 492, 493, 496, 497, 500, 502], "excluded_lines": [439], "executed_branches": [], "missing_branches": [[464, 465], [464, 467], [473, 474], [473, 477], [483, 484], [483, 502], [488, 489], [488, 492]]}, "RenderableFormField.set_focused": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [506], "excluded_lines": [505], "executed_branches": [], "missing_branches": []}, "RenderableFormField.handle_click": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [519, 520, 523, 525, 526, 528, 531, 533, 534, 536], "excluded_lines": [509], "executed_branches": [], "missing_branches": [[525, 526], [525, 528], [531, 533], [531, 536]]}, "RenderableFormField.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [540, 541, 544], "excluded_lines": [539], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 13, 14, 18, 69, 70, 74, 103, 107, 117, 118, 122, 165, 166, 170, 218, 222, 226, 236, 237, 241, 284, 295, 316, 331, 358, 381, 382, 386, 438, 504, 508, 538], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [14, 118, 237, 382], "executed_branches": [], "missing_branches": []}}, "classes": {"RenderableLink": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 34, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 34, "excluded_lines": 5, "num_branches": 14, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 14}, "missing_lines": [36, 37, 38, 39, 40, 41, 42, 43, 44, 47, 50, 51, 52, 58, 59, 62, 65, 66, 67, 72, 82, 83, 86, 87, 90, 93, 96, 98, 99, 101, 105, 109, 110, 113], "excluded_lines": [21, 71, 75, 104, 108], "executed_branches": [], "missing_branches": [[37, 38], [37, 39], [39, 40], [39, 41], [41, 42], [41, 43], [43, 44], [43, 47], [50, 51], [50, 58], [58, 59], [58, 62], [96, 98], [96, 101]]}, "RenderableButton": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 41, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 41, "excluded_lines": 6, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [141, 144, 145, 146, 152, 153, 156, 159, 160, 161, 162, 163, 168, 178, 179, 182, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 196, 199, 200, 201, 204, 209, 210, 211, 214, 216, 220, 224, 228, 229, 232], "excluded_lines": [126, 167, 171, 219, 223, 227], "executed_branches": [], "missing_branches": [[144, 145], [144, 152], [152, 153], [152, 156], [182, 184], [182, 187], [187, 189], [187, 192], [192, 194], [192, 199]]}, "RenderableForm": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 49, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 49, "excluded_lines": 6, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 22}, "missing_lines": [260, 261, 264, 265, 268, 269, 270, 271, 274, 275, 278, 281, 282, 287, 288, 289, 292, 293, 298, 304, 305, 308, 309, 312, 314, 318, 321, 322, 323, 326, 328, 329, 339, 342, 345, 346, 347, 348, 351, 352, 353, 354, 356, 369, 371, 374, 375, 376, 378], "excluded_lines": [245, 285, 296, 317, 332, 359], "executed_branches": [], "missing_branches": [[260, 261], [260, 264], [281, -241], [281, 282], [287, 288], [287, 292], [308, 309], [308, 312], [321, 322], [321, 326], [326, -316], [326, 328], [345, 346], [345, 351], [351, 352], [351, 356], [369, 371], [369, 374], [374, 375], [374, 378], [375, 374], [375, 376]]}, "RenderableFormField": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 61, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 61, "excluded_lines": 5, "num_branches": 20, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 20}, "missing_lines": [403, 406, 407, 410, 411, 413, 416, 417, 418, 419, 421, 424, 425, 427, 430, 433, 434, 435, 436, 446, 447, 450, 451, 454, 455, 458, 459, 462, 464, 465, 467, 470, 471, 473, 474, 477, 483, 484, 485, 488, 489, 492, 493, 496, 497, 500, 502, 506, 519, 520, 523, 525, 526, 528, 531, 533, 534, 536, 540, 541, 544], "excluded_lines": [389, 439, 505, 509, 539], "executed_branches": [], "missing_branches": [[406, 407], [406, 430], [410, 411], [410, 413], [416, 417], [416, 418], [418, 419], [418, 421], [464, 465], [464, 467], [473, 474], [473, 477], [483, 484], [483, 502], [488, 489], [488, 492], [525, 526], [525, 528], [531, 533], [531, 536]]}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 10, 13, 14, 18, 69, 70, 74, 103, 107, 117, 118, 122, 165, 166, 170, 218, 222, 226, 236, 237, 241, 284, 295, 316, 331, 358, 381, 382, 386, 438, 504, 508, 538], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 4, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [14, 118, 237, 382], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/image.py": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 17, 50, 81, 126, 162, 226], "summary": {"covered_lines": 15, "num_statements": 109, "percent_covered": 10.48951048951049, "percent_covered_display": "10", "missing_lines": 94, "excluded_lines": 7, "num_branches": 34, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 34}, "missing_lines": [36, 37, 38, 41, 44, 45, 48, 52, 53, 56, 58, 59, 60, 62, 63, 64, 66, 67, 68, 69, 71, 72, 73, 75, 77, 78, 79, 89, 91, 93, 96, 97, 100, 101, 102, 103, 105, 108, 109, 110, 111, 113, 116, 117, 119, 122, 124, 133, 134, 137, 140, 143, 144, 147, 150, 151, 154, 155, 158, 160, 169, 172, 175, 176, 179, 180, 182, 185, 188, 189, 190, 192, 193, 194, 195, 197, 198, 200, 201, 203, 204, 207, 208, 209, 210, 211, 214, 217, 220, 222, 224, 228, 229, 232], "excluded_lines": [13, 21, 51, 82, 127, 163, 227], "executed_branches": [], "missing_branches": [[44, 45], [44, 48], [56, 58], [56, 60], [60, 62], [60, 75], [67, 68], [67, 71], [91, 93], [91, 122], [100, 101], [100, 102], [102, 103], [102, 105], [108, 109], [108, 110], [110, 111], [110, 113], [116, 117], [116, 119], [133, 134], [133, 137], [154, 155], [154, 158], [179, -162], [179, 180], [192, 193], [192, 203], [197, 198], [197, 200], [203, 204], [203, 207], [208, -162], [208, 209]], "functions": {"RenderableImage.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [36, 37, 38, 41, 44, 45, 48], "excluded_lines": [21], "executed_branches": [], "missing_branches": [[44, 45], [44, 48]]}, "RenderableImage._load_image": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [52, 53, 56, 58, 59, 60, 62, 63, 64, 66, 67, 68, 69, 71, 72, 73, 75, 77, 78, 79], "excluded_lines": [51], "executed_branches": [], "missing_branches": [[56, 58], [56, 60], [60, 62], [60, 75], [67, 68], [67, 71]]}, "RenderableImage.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 1, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [89, 91, 93, 96, 97, 100, 101, 102, 103, 105, 108, 109, 110, 111, 113, 116, 117, 119, 122, 124], "excluded_lines": [82], "executed_branches": [], "missing_branches": [[91, 93], [91, 122], [100, 101], [100, 102], [102, 103], [102, 105], [108, 109], [108, 110], [110, 111], [110, 113], [116, 117], [116, 119]]}, "RenderableImage._resize_image": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [133, 134, 137, 140, 143, 144, 147, 150, 151, 154, 155, 158, 160], "excluded_lines": [127], "executed_branches": [], "missing_branches": [[133, 134], [133, 137], [154, 155], [154, 158]]}, "RenderableImage._draw_error_placeholder": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 31, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 31, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [169, 172, 175, 176, 179, 180, 182, 185, 188, 189, 190, 192, 193, 194, 195, 197, 198, 200, 201, 203, 204, 207, 208, 209, 210, 211, 214, 217, 220, 222, 224], "excluded_lines": [163], "executed_branches": [], "missing_branches": [[179, -162], [179, 180], [192, 193], [192, 203], [197, 198], [197, 200], [203, 204], [203, 207], [208, -162], [208, 209]]}, "RenderableImage.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [228, 229, 232], "excluded_lines": [227], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 17, 50, 81, 126, 162, 226], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [13], "executed_branches": [], "missing_branches": []}}, "classes": {"RenderableImage": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 94, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 94, "excluded_lines": 6, "num_branches": 34, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 34}, "missing_lines": [36, 37, 38, 41, 44, 45, 48, 52, 53, 56, 58, 59, 60, 62, 63, 64, 66, 67, 68, 69, 71, 72, 73, 75, 77, 78, 79, 89, 91, 93, 96, 97, 100, 101, 102, 103, 105, 108, 109, 110, 111, 113, 116, 117, 119, 122, 124, 133, 134, 137, 140, 143, 144, 147, 150, 151, 154, 155, 158, 160, 169, 172, 175, 176, 179, 180, 182, 185, 188, 189, 190, 192, 193, 194, 195, 197, 198, 200, 201, 203, 204, 207, 208, 209, 210, 211, 214, 217, 220, 222, 224, 228, 229, 232], "excluded_lines": [21, 51, 82, 127, 163, 227], "executed_branches": [], "missing_branches": [[44, 45], [44, 48], [56, 58], [56, 60], [60, 62], [60, 75], [67, 68], [67, 71], [91, 93], [91, 122], [100, 101], [100, 102], [102, 103], [102, 105], [108, 109], [108, 110], [110, 111], [110, 113], [116, 117], [116, 119], [133, 134], [133, 137], [154, 155], [154, 158], [179, -162], [179, 180], [192, 193], [192, 203], [197, 198], [197, 200], [203, 204], [203, 207], [208, -162], [208, 209]]}, "": {"executed_lines": [1, 2, 3, 4, 6, 7, 8, 9, 12, 13, 17, 50, 81, 126, 162, 226], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [13], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/page.py": {"executed_lines": [1, 2, 3, 5, 6, 7, 10, 11, 14, 39, 44, 111, 131, 132, 135, 155], "summary": {"covered_lines": 14, "num_statements": 77, "percent_covered": 12.612612612612613, "percent_covered_display": "13", "missing_lines": 63, "excluded_lines": 8, "num_branches": 34, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 34}, "missing_lines": [33, 34, 35, 36, 37, 41, 42, 46, 47, 50, 51, 52, 55, 56, 57, 60, 61, 62, 63, 66, 67, 68, 69, 71, 74, 77, 80, 81, 84, 85, 88, 89, 90, 91, 94, 95, 96, 97, 99, 102, 105, 108, 109, 114, 117, 120, 121, 122, 124, 126, 128, 144, 153, 158, 161, 164, 165, 166, 168, 170, 171, 173, 175], "excluded_lines": [11, 18, 40, 45, 112, 132, 136, 156], "executed_branches": [], "missing_branches": [[46, 47], [46, 50], [55, 56], [55, 84], [61, -44], [61, 62], [62, 61], [62, 63], [66, 67], [66, 68], [68, 69], [68, 71], [80, 61], [80, 81], [89, -44], [89, 90], [90, 89], [90, 91], [94, 95], [94, 96], [96, 97], [96, 99], [108, 89], [108, 109], [120, 121], [120, 128], [121, 120], [121, 122], [164, 165], [164, 175], [165, 164], [165, 166], [170, 171], [170, 173]], "functions": {"Container.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [33, 34, 35, 36, 37], "excluded_lines": [18], "executed_branches": [], "missing_branches": []}, "Container.add_child": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [41, 42], "excluded_lines": [40], "executed_branches": [], "missing_branches": []}, "Container.layout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 1, "num_branches": 24, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 24}, "missing_lines": [46, 47, 50, 51, 52, 55, 56, 57, 60, 61, 62, 63, 66, 67, 68, 69, 71, 74, 77, 80, 81, 84, 85, 88, 89, 90, 91, 94, 95, 96, 97, 99, 102, 105, 108, 109], "excluded_lines": [45], "executed_branches": [], "missing_branches": [[46, 47], [46, 50], [55, 56], [55, 84], [61, -44], [61, 62], [62, 61], [62, 63], [66, 67], [66, 68], [68, 69], [68, 71], [80, 61], [80, 81], [89, -44], [89, 90], [90, 89], [90, 91], [94, 95], [94, 96], [96, 97], [96, 99], [108, 89], [108, 109]]}, "Container.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [114, 117, 120, 121, 122, 124, 126, 128], "excluded_lines": [112], "executed_branches": [], "missing_branches": [[120, 121], [120, 128], [121, 120], [121, 122]]}, "Page.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [144, 153], "excluded_lines": [136], "executed_branches": [], "missing_branches": []}, "Page.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [158, 161, 164, 165, 166, 168, 170, 171, 173, 175], "excluded_lines": [156], "executed_branches": [], "missing_branches": [[164, 165], [164, 175], [165, 164], [165, 166], [170, 171], [170, 173]]}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 10, 11, 14, 39, 44, 111, 131, 132, 135, 155], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [11, 132], "executed_branches": [], "missing_branches": []}}, "classes": {"Container": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 51, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 51, "excluded_lines": 4, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [33, 34, 35, 36, 37, 41, 42, 46, 47, 50, 51, 52, 55, 56, 57, 60, 61, 62, 63, 66, 67, 68, 69, 71, 74, 77, 80, 81, 84, 85, 88, 89, 90, 91, 94, 95, 96, 97, 99, 102, 105, 108, 109, 114, 117, 120, 121, 122, 124, 126, 128], "excluded_lines": [18, 40, 45, 112], "executed_branches": [], "missing_branches": [[46, 47], [46, 50], [55, 56], [55, 84], [61, -44], [61, 62], [62, 61], [62, 63], [66, 67], [66, 68], [68, 69], [68, 71], [80, 61], [80, 81], [89, -44], [89, 90], [90, 89], [90, 91], [94, 95], [94, 96], [96, 97], [96, 99], [108, 89], [108, 109], [120, 121], [120, 128], [121, 120], [121, 122]]}, "Page": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 2, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [144, 153, 158, 161, 164, 165, 166, 168, 170, 171, 173, 175], "excluded_lines": [136, 156], "executed_branches": [], "missing_branches": [[164, 165], [164, 175], [165, 164], [165, 166], [170, 171], [170, 173]]}, "": {"executed_lines": [1, 2, 3, 5, 6, 7, 10, 11, 14, 39, 44, 111, 131, 132, 135, 155], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [11, 132], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/concrete/text.py": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 18, 37, 54, 55, 59, 60, 64, 65, 69, 70, 74, 75, 79, 80, 84, 85, 89, 93, 97, 111, 134, 138, 146, 147, 152, 168, 184, 201, 202, 206, 207, 211, 215, 233, 234, 238, 239, 243, 253, 275, 301, 302, 306, 333, 334, 338, 342, 399], "summary": {"covered_lines": 56, "num_statements": 210, "percent_covered": 21.705426356589147, "percent_covered_display": "22", "missing_lines": 154, "excluded_lines": 35, "num_branches": 48, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 48}, "missing_lines": [26, 27, 28, 29, 30, 31, 32, 35, 40, 44, 45, 46, 47, 48, 49, 51, 52, 57, 62, 67, 72, 77, 82, 87, 91, 95, 99, 101, 102, 105, 107, 108, 119, 120, 123, 124, 127, 130, 132, 136, 140, 141, 144, 159, 160, 161, 162, 163, 166, 171, 173, 175, 176, 179, 182, 186, 187, 188, 191, 192, 193, 197, 198, 199, 204, 209, 213, 228, 229, 231, 236, 241, 245, 248, 249, 250, 251, 261, 262, 265, 267, 268, 269, 270, 271, 273, 277, 280, 281, 283, 286, 287, 288, 289, 292, 293, 294, 296, 298, 324, 325, 326, 327, 328, 330, 331, 336, 340, 353, 354, 357, 360, 363, 364, 367, 370, 371, 372, 373, 376, 378, 381, 382, 384, 385, 386, 388, 389, 392, 394, 397, 407, 410, 411, 414, 417, 418, 420, 421, 423, 426, 428, 431, 432, 433, 434, 436, 439, 442, 444, 447, 450, 453, 455], "excluded_lines": [13, 19, 38, 56, 61, 66, 71, 76, 81, 86, 90, 94, 98, 112, 135, 139, 147, 153, 169, 185, 203, 208, 212, 216, 235, 240, 244, 254, 276, 302, 309, 335, 339, 343, 400], "executed_branches": [], "missing_branches": [[99, 101], [99, 105], [105, -97], [105, 107], [123, 124], [123, 127], [173, 175], [173, 179], [175, 176], [175, 182], [186, 187], [186, 191], [191, 192], [191, 197], [228, 229], [228, 231], [249, -243], [249, 250], [261, 262], [261, 265], [268, 269], [268, 273], [281, 283], [281, 286], [287, 288], [287, 298], [289, 292], [289, 296], [353, 354], [353, 357], [370, 371], [370, 376], [376, 378], [376, 397], [382, 384], [382, 397], [410, 411], [410, 414], [420, 421], [420, 428], [421, 423], [421, 426], [431, 432], [431, 433], [433, 434], [433, 436], [442, 444], [442, 455]], "functions": {"Text.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 8, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 8, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [26, 27, 28, 29, 30, 31, 32, 35], "excluded_lines": [19], "executed_branches": [], "missing_branches": []}, "Text._calculate_dimensions": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [40, 44, 45, 46, 47, 48, 49, 51, 52], "excluded_lines": [38], "executed_branches": [], "missing_branches": []}, "Text.text": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [57], "excluded_lines": [56], "executed_branches": [], "missing_branches": []}, "Text.style": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [62], "excluded_lines": [61], "executed_branches": [], "missing_branches": []}, "Text.line": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [72], "excluded_lines": [71], "executed_branches": [], "missing_branches": []}, "Text.width": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [77], "excluded_lines": [76], "executed_branches": [], "missing_branches": []}, "Text.height": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [82], "excluded_lines": [81], "executed_branches": [], "missing_branches": []}, "Text.size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [87], "excluded_lines": [86], "executed_branches": [], "missing_branches": []}, "Text.set_origin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [91], "excluded_lines": [90], "executed_branches": [], "missing_branches": []}, "Text.add_to_line": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [95], "excluded_lines": [94], "executed_branches": [], "missing_branches": []}, "Text._apply_decoration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [99, 101, 102, 105, 107, 108], "excluded_lines": [98], "executed_branches": [], "missing_branches": [[99, 101], [99, 105], [105, -97], [105, 107]]}, "Text.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [119, 120, 123, 124, 127, 130, 132], "excluded_lines": [112], "executed_branches": [], "missing_branches": [[123, 124], [123, 127]]}, "Text.get_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [136], "excluded_lines": [135], "executed_branches": [], "missing_branches": []}, "Text.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [140, 141, 144], "excluded_lines": [139], "executed_branches": [], "missing_branches": []}, "RenderableWord.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [159, 160, 161, 162, 163, 166], "excluded_lines": [153], "executed_branches": [], "missing_branches": []}, "RenderableWord._initialize_text_parts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [171, 173, 175, 176, 179, 182], "excluded_lines": [169], "executed_branches": [], "missing_branches": [[173, 175], [173, 179], [175, 176], [175, 182]]}, "RenderableWord._recalculate_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [186, 187, 188, 191, 192, 193, 197, 198, 199], "excluded_lines": [185], "executed_branches": [], "missing_branches": [[186, 187], [186, 191], [191, 192], [191, 197]]}, "RenderableWord.word": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [204], "excluded_lines": [203], "executed_branches": [], "missing_branches": []}, "RenderableWord.text_parts": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [209], "excluded_lines": [208], "executed_branches": [], "missing_branches": []}, "RenderableWord.update_from_word": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [213], "excluded_lines": [212], "executed_branches": [], "missing_branches": []}, "RenderableWord.get_part_size": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [228, 229, 231], "excluded_lines": [216], "executed_branches": [], "missing_branches": [[228, 229], [228, 231]]}, "RenderableWord.width": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [236], "excluded_lines": [235], "executed_branches": [], "missing_branches": []}, "RenderableWord.height": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [241], "excluded_lines": [240], "executed_branches": [], "missing_branches": []}, "RenderableWord.set_origin": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [245, 248, 249, 250, 251], "excluded_lines": [244], "executed_branches": [], "missing_branches": [[249, -243], [249, 250]]}, "RenderableWord.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 9, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 9, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [261, 262, 265, 267, 268, 269, 270, 271, 273], "excluded_lines": [254], "executed_branches": [], "missing_branches": [[261, 262], [261, 265], [268, 269], [268, 273]]}, "RenderableWord.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [277, 280, 281, 283, 286, 287, 288, 289, 292, 293, 294, 296, 298], "excluded_lines": [276], "executed_branches": [], "missing_branches": [[281, 283], [281, 286], [287, 288], [287, 298], [289, 292], [289, 296]]}, "Line.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [324, 325, 326, 327, 328, 330, 331], "excluded_lines": [309], "executed_branches": [], "missing_branches": []}, "Line.renderable_words": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [336], "excluded_lines": [335], "executed_branches": [], "missing_branches": []}, "Line.set_next": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [340], "excluded_lines": [339], "executed_branches": [], "missing_branches": []}, "Line.add_word": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [353, 354, 357, 360, 363, 364, 367, 370, 371, 372, 373, 376, 378, 381, 382, 384, 385, 386, 388, 389, 392, 394, 397], "excluded_lines": [343], "executed_branches": [], "missing_branches": [[353, 354], [353, 357], [370, 371], [370, 376], [376, 378], [376, 397], [382, 384], [382, 397]]}, "Line.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 23, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 23, "excluded_lines": 1, "num_branches": 12, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 12}, "missing_lines": [407, 410, 411, 414, 417, 418, 420, 421, 423, 426, 428, 431, 432, 433, 434, 436, 439, 442, 444, 447, 450, 453, 455], "excluded_lines": [400], "executed_branches": [], "missing_branches": [[410, 411], [410, 414], [420, 421], [420, 428], [421, 423], [421, 426], [431, 432], [431, 433], [433, 434], [433, 436], [442, 444], [442, 455]]}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 18, 37, 54, 55, 59, 60, 64, 65, 69, 70, 74, 75, 79, 80, 84, 85, 89, 93, 97, 111, 134, 138, 146, 147, 152, 168, 184, 201, 202, 206, 207, 211, 215, 233, 234, 238, 239, 243, 253, 275, 301, 302, 306, 333, 334, 338, 342, 399], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [13, 147, 302], "executed_branches": [], "missing_branches": []}}, "classes": {"Text": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 43, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 43, "excluded_lines": 15, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [26, 27, 28, 29, 30, 31, 32, 35, 40, 44, 45, 46, 47, 48, 49, 51, 52, 57, 62, 67, 72, 77, 82, 87, 91, 95, 99, 101, 102, 105, 107, 108, 119, 120, 123, 124, 127, 130, 132, 136, 140, 141, 144], "excluded_lines": [19, 38, 56, 61, 66, 71, 76, 81, 86, 90, 94, 98, 112, 135, 139], "executed_branches": [], "missing_branches": [[99, 101], [99, 105], [105, -97], [105, 107], [123, 124], [123, 127]]}, "RenderableWord": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 56, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 56, "excluded_lines": 12, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 22}, "missing_lines": [159, 160, 161, 162, 163, 166, 171, 173, 175, 176, 179, 182, 186, 187, 188, 191, 192, 193, 197, 198, 199, 204, 209, 213, 228, 229, 231, 236, 241, 245, 248, 249, 250, 251, 261, 262, 265, 267, 268, 269, 270, 271, 273, 277, 280, 281, 283, 286, 287, 288, 289, 292, 293, 294, 296, 298], "excluded_lines": [153, 169, 185, 203, 208, 212, 216, 235, 240, 244, 254, 276], "executed_branches": [], "missing_branches": [[173, 175], [173, 179], [175, 176], [175, 182], [186, 187], [186, 191], [191, 192], [191, 197], [228, 229], [228, 231], [249, -243], [249, 250], [261, 262], [261, 265], [268, 269], [268, 273], [281, 283], [281, 286], [287, 288], [287, 298], [289, 292], [289, 296]]}, "Line": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 55, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 55, "excluded_lines": 5, "num_branches": 20, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 20}, "missing_lines": [324, 325, 326, 327, 328, 330, 331, 336, 340, 353, 354, 357, 360, 363, 364, 367, 370, 371, 372, 373, 376, 378, 381, 382, 384, 385, 386, 388, 389, 392, 394, 397, 407, 410, 411, 414, 417, 418, 420, 421, 423, 426, 428, 431, 432, 433, 434, 436, 439, 442, 444, 447, 450, 453, 455], "excluded_lines": [309, 335, 339, 343, 400], "executed_branches": [], "missing_branches": [[353, 354], [353, 357], [370, 371], [370, 376], [376, 378], [376, 397], [382, 384], [382, 397], [410, 411], [410, 414], [420, 421], [420, 428], [421, 423], [421, 426], [431, 432], [431, 433], [433, 434], [433, 436], [442, 444], [442, 455]]}, "": {"executed_lines": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 18, 37, 54, 55, 59, 60, 64, 65, 69, 70, 74, 75, 79, 80, 84, 85, 89, 93, 97, 111, 134, 138, 146, 147, 152, 168, 184, 201, 202, 206, 207, 211, 215, 233, 234, 238, 239, 243, 253, 275, 301, 302, 306, 333, 334, 338, 342, 399], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [13, 147, 302], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/core/__init__.py": {"executed_lines": [1, 8], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 8], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 8], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/core/base.py": {"executed_lines": [1, 2, 4, 7, 8, 12, 21, 22, 26, 33, 35, 49, 50, 54, 61, 63], "summary": {"covered_lines": 13, "num_statements": 19, "percent_covered": 61.904761904761905, "percent_covered_display": "62", "missing_lines": 6, "excluded_lines": 8, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [19, 45, 46, 47, 59, 67], "excluded_lines": [8, 13, 22, 27, 36, 50, 55, 64], "executed_branches": [], "missing_branches": [[45, 46], [45, 47]], "functions": {"Renderable.render": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [19], "excluded_lines": [13], "executed_branches": [], "missing_branches": []}, "Interactable.__init__": {"executed_lines": [33], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [27], "executed_branches": [], "missing_branches": []}, "Interactable.interact": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [45, 46, 47], "excluded_lines": [36], "executed_branches": [], "missing_branches": [[45, 46], [45, 47]]}, "Layoutable.layout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [59], "excluded_lines": [55], "executed_branches": [], "missing_branches": []}, "Queriable.in_object": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [67], "excluded_lines": [64], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 12, 21, 22, 26, 35, 49, 50, 54, 61, 63], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 22, 50], "executed_branches": [], "missing_branches": []}}, "classes": {"Renderable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [19], "excluded_lines": [13], "executed_branches": [], "missing_branches": []}, "Interactable": {"executed_lines": [33], "summary": {"covered_lines": 1, "num_statements": 4, "percent_covered": 16.666666666666668, "percent_covered_display": "17", "missing_lines": 3, "excluded_lines": 2, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [45, 46, 47], "excluded_lines": [27, 36], "executed_branches": [], "missing_branches": [[45, 46], [45, 47]]}, "Layoutable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [59], "excluded_lines": [55], "executed_branches": [], "missing_branches": []}, "Queriable": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [67], "excluded_lines": [64], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 2, 4, 7, 8, 12, 21, 22, 26, 35, 49, 50, 54, 61, 63], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [8, 22, 50], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/io/__init__.py": {"executed_lines": [1, 15], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 15], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 15], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/io/readers/__init__.py": {"executed_lines": [1, 9, 17, 20], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 9, 17, 20], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 9, 17, 20], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/io/readers/base.py": {"executed_lines": [1, 8, 9, 10, 13, 14, 20, 25, 26, 38, 39, 52, 62, 76, 77, 83, 84, 98, 99, 105, 106, 120, 121, 127, 128, 142, 143, 149, 150, 164, 165, 172, 180, 184, 188, 192, 196], "summary": {"covered_lines": 30, "num_statements": 60, "percent_covered": 44.11764705882353, "percent_covered_display": "44", "missing_lines": 30, "excluded_lines": 22, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [22, 23, 36, 50, 60, 73, 95, 117, 139, 161, 174, 175, 176, 177, 178, 182, 186, 190, 194, 208, 211, 214, 215, 218, 219, 222, 223, 226, 227, 229], "excluded_lines": [1, 14, 21, 27, 40, 53, 63, 77, 85, 99, 107, 121, 129, 143, 151, 165, 173, 181, 185, 189, 193, 197], "executed_branches": [], "missing_branches": [[214, 215], [214, 218], [218, 219], [218, 222], [222, 223], [222, 226], [226, 227], [226, 229]], "functions": {"BaseReader.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 2, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 2, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [22, 23], "excluded_lines": [21], "executed_branches": [], "missing_branches": []}, "BaseReader.can_read": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [36], "excluded_lines": [27], "executed_branches": [], "missing_branches": []}, "BaseReader.read": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [50], "excluded_lines": [40], "executed_branches": [], "missing_branches": []}, "BaseReader.set_option": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [60], "excluded_lines": [53], "executed_branches": [], "missing_branches": []}, "BaseReader.get_option": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [73], "excluded_lines": [63], "executed_branches": [], "missing_branches": []}, "MetadataReader.extract_metadata": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [95], "excluded_lines": [85], "executed_branches": [], "missing_branches": []}, "StructureReader.extract_structure": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [117], "excluded_lines": [107], "executed_branches": [], "missing_branches": []}, "ContentReader.extract_content": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [139], "excluded_lines": [129], "executed_branches": [], "missing_branches": []}, "ResourceReader.extract_resources": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [161], "excluded_lines": [151], "executed_branches": [], "missing_branches": []}, "CompositeReader.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [174, 175, 176, 177, 178], "excluded_lines": [173], "executed_branches": [], "missing_branches": []}, "CompositeReader.set_metadata_reader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [182], "excluded_lines": [181], "executed_branches": [], "missing_branches": []}, "CompositeReader.set_structure_reader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [186], "excluded_lines": [185], "executed_branches": [], "missing_branches": []}, "CompositeReader.set_content_reader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [190], "excluded_lines": [189], "executed_branches": [], "missing_branches": []}, "CompositeReader.set_resource_reader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [194], "excluded_lines": [193], "executed_branches": [], "missing_branches": []}, "CompositeReader.read": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 11, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 11, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [208, 211, 214, 215, 218, 219, 222, 223, 226, 227, 229], "excluded_lines": [197], "executed_branches": [], "missing_branches": [[214, 215], [214, 218], [218, 219], [218, 222], [222, 223], [222, 226], [226, 227], [226, 229]]}, "": {"executed_lines": [1, 8, 9, 10, 13, 14, 20, 25, 26, 38, 39, 52, 62, 76, 77, 83, 84, 98, 99, 105, 106, 120, 121, 127, 128, 142, 143, 149, 150, 164, 165, 172, 180, 184, 188, 192, 196], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 7, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 14, 77, 99, 121, 143, 165], "executed_branches": [], "missing_branches": []}}, "classes": {"BaseReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 5, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [22, 23, 36, 50, 60, 73], "excluded_lines": [21, 27, 40, 53, 63], "executed_branches": [], "missing_branches": []}, "MetadataReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [95], "excluded_lines": [85], "executed_branches": [], "missing_branches": []}, "StructureReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [117], "excluded_lines": [107], "executed_branches": [], "missing_branches": []}, "ContentReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [139], "excluded_lines": [129], "executed_branches": [], "missing_branches": []}, "ResourceReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [161], "excluded_lines": [151], "executed_branches": [], "missing_branches": []}, "CompositeReader": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 20, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 20, "excluded_lines": 6, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 8}, "missing_lines": [174, 175, 176, 177, 178, 182, 186, 190, 194, 208, 211, 214, 215, 218, 219, 222, 223, 226, 227, 229], "excluded_lines": [173, 181, 185, 189, 193, 197], "executed_branches": [], "missing_branches": [[214, 215], [214, 218], [218, 219], [218, 222], [222, 223], [222, 226], [226, 227], [226, 229]]}, "": {"executed_lines": [1, 8, 9, 10, 13, 14, 20, 25, 26, 38, 39, 52, 62, 76, 77, 83, 84, 98, 99, 105, 106, 120, 121, 127, 128, 142, 143, 149, 150, 164, 165, 172, 180, 184, 188, 192, 196], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 7, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 14, 77, 99, 121, 143, 165], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/io/readers/epub_reader.py": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 16, 17, 21, 30, 31, 38, 45, 46, 47, 48, 49, 50, 51, 52, 54, 61, 63, 64, 67, 70, 73, 76, 78, 82, 83, 84, 86, 88, 89, 92, 93, 94, 95, 98, 99, 100, 101, 102, 113, 116, 117, 118, 119, 120, 121, 122, 123, 125, 129, 130, 133, 136, 139, 141, 149, 150, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180, 182, 190, 191, 195, 196, 197, 198, 200, 202, 203, 205, 211, 219, 220, 224, 225, 226, 229, 230, 231, 232, 234, 236, 246, 251, 252, 255, 256, 260, 262, 270, 272, 273, 276, 277, 278, 281, 282, 285, 294, 297, 300, 302, 305, 306, 308, 309, 311, 312, 314, 315, 317, 318, 320, 321, 323, 324, 326, 327, 329, 332, 334, 335, 336, 338, 339, 340, 343, 346, 349, 350, 351, 354, 355, 356, 359, 362, 365, 366, 367, 370, 371, 374, 376, 377, 380, 383, 384, 399, 409, 410], "summary": {"covered_lines": 176, "num_statements": 206, "percent_covered": 78.6624203821656, "percent_covered_display": "79", "missing_lines": 30, "excluded_lines": 14, "num_branches": 108, "num_partial_branches": 25, "covered_branches": 71, "missing_branches": 37}, "missing_lines": [105, 106, 107, 108, 111, 126, 151, 192, 221, 238, 239, 240, 241, 242, 243, 244, 248, 257, 295, 344, 352, 386, 387, 389, 390, 391, 392, 394, 395, 396], "excluded_lines": [1, 31, 39, 55, 87, 114, 142, 183, 212, 235, 263, 303, 330, 400], "executed_branches": [[93, 94], [98, 99], [100, 101], [117, 118], [118, 119], [119, 118], [119, 120], [122, 123], [125, 129], [150, 154], [154, -141], [154, 155], [155, 154], [155, 157], [160, 161], [160, 162], [162, 163], [162, 164], [164, 165], [164, 166], [166, 167], [166, 168], [168, 169], [168, 172], [169, 170], [169, 171], [172, 173], [172, 174], [174, 175], [174, 176], [176, 177], [176, 180], [191, 195], [195, -182], [195, 196], [200, 202], [220, 224], [225, 226], [229, -211], [229, 230], [231, 232], [236, 246], [246, 251], [256, 260], [270, -262], [270, 272], [294, 297], [305, 306], [308, 309], [311, 312], [314, 315], [314, 317], [317, 318], [317, 320], [320, 321], [320, 323], [323, 324], [326, -302], [326, 327], [335, -334], [335, 336], [336, 338], [343, 335], [350, -329], [350, 351], [351, 354], [359, 362], [359, 365], [366, 367], [383, 350], [383, 384]], "missing_branches": [[93, 105], [98, 105], [100, 98], [105, 106], [105, 111], [106, 105], [106, 107], [117, 125], [118, 122], [122, 117], [125, 126], [150, 151], [191, 192], [200, 195], [220, 221], [225, 229], [231, 229], [236, 238], [238, 239], [238, 246], [239, 240], [239, 243], [240, 239], [240, 241], [243, 238], [243, 244], [246, 248], [256, 257], [294, 295], [305, 308], [308, 311], [311, 314], [323, 326], [336, 343], [343, 344], [351, 352], [366, 370]], "functions": {"EPUBReader.__init__": {"executed_lines": [45, 46, 47, 48, 49, 50, 51, 52], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [39], "executed_branches": [], "missing_branches": []}, "EPUBReader.read": {"executed_lines": [61, 63, 64, 67, 70, 73, 76, 78, 82, 83, 84], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [55], "executed_branches": [], "missing_branches": []}, "EPUBReader._extract_epub": {"executed_lines": [88, 89, 92, 93, 94, 95, 98, 99, 100, 101, 102], "summary": {"covered_lines": 11, "num_statements": 16, "percent_covered": 53.84615384615385, "percent_covered_display": "54", "missing_lines": 5, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 3, "covered_branches": 3, "missing_branches": 7}, "missing_lines": [105, 106, 107, 108, 111], "excluded_lines": [87], "executed_branches": [[93, 94], [98, 99], [100, 101]], "missing_branches": [[93, 105], [98, 105], [100, 98], [105, 106], [105, 111], [106, 105], [106, 107]]}, "EPUBReader._parse_package_document": {"executed_lines": [116, 117, 118, 119, 120, 121, 122, 123, 125, 129, 130, 133, 136, 139], "summary": {"covered_lines": 14, "num_statements": 15, "percent_covered": 80.0, "percent_covered_display": "80", "missing_lines": 1, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 4, "covered_branches": 6, "missing_branches": 4}, "missing_lines": [126], "excluded_lines": [114], "executed_branches": [[117, 118], [118, 119], [119, 118], [119, 120], [122, 123], [125, 129]], "missing_branches": [[117, 125], [118, 122], [122, 117], [125, 126]]}, "EPUBReader._parse_metadata": {"executed_lines": [149, 150, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180], "summary": {"covered_lines": 25, "num_statements": 26, "percent_covered": 96.0, "percent_covered_display": "96", "missing_lines": 1, "excluded_lines": 1, "num_branches": 24, "num_partial_branches": 1, "covered_branches": 23, "missing_branches": 1}, "missing_lines": [151], "excluded_lines": [142], "executed_branches": [[150, 154], [154, -141], [154, 155], [155, 154], [155, 157], [160, 161], [160, 162], [162, 163], [162, 164], [164, 165], [164, 166], [166, 167], [166, 168], [168, 169], [168, 172], [169, 170], [169, 171], [172, 173], [172, 174], [174, 175], [174, 176], [176, 177], [176, 180]], "missing_branches": [[150, 151]]}, "EPUBReader._parse_manifest": {"executed_lines": [190, 191, 195, 196, 197, 198, 200, 202, 203, 205], "summary": {"covered_lines": 10, "num_statements": 11, "percent_covered": 82.3529411764706, "percent_covered_display": "82", "missing_lines": 1, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 2, "covered_branches": 4, "missing_branches": 2}, "missing_lines": [192], "excluded_lines": [183], "executed_branches": [[191, 195], [195, -182], [195, 196], [200, 202]], "missing_branches": [[191, 192], [200, 195]]}, "EPUBReader._parse_spine": {"executed_lines": [219, 220, 224, 225, 226, 229, 230, 231, 232], "summary": {"covered_lines": 9, "num_statements": 10, "percent_covered": 77.77777777777777, "percent_covered_display": "78", "missing_lines": 1, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 3, "covered_branches": 5, "missing_branches": 3}, "missing_lines": [221], "excluded_lines": [212], "executed_branches": [[220, 224], [225, 226], [229, -211], [229, 230], [231, 232]], "missing_branches": [[220, 221], [225, 229], [231, 229]]}, "EPUBReader._parse_toc": {"executed_lines": [236, 246, 251, 252, 255, 256, 260], "summary": {"covered_lines": 7, "num_statements": 16, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 9, "excluded_lines": 1, "num_branches": 14, "num_partial_branches": 3, "covered_branches": 3, "missing_branches": 11}, "missing_lines": [238, 239, 240, 241, 242, 243, 244, 248, 257], "excluded_lines": [235], "executed_branches": [[236, 246], [246, 251], [256, 260]], "missing_branches": [[236, 238], [238, 239], [238, 246], [239, 240], [239, 243], [240, 239], [240, 241], [243, 238], [243, 244], [246, 248], [256, 257]]}, "EPUBReader._parse_nav_points": {"executed_lines": [270, 272, 273, 276, 277, 278, 281, 282, 285, 294, 297, 300], "summary": {"covered_lines": 12, "num_statements": 13, "percent_covered": 88.23529411764706, "percent_covered_display": "88", "missing_lines": 1, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 3, "missing_branches": 1}, "missing_lines": [295], "excluded_lines": [263], "executed_branches": [[270, -262], [270, 272], [294, 297]], "missing_branches": [[294, 295]]}, "EPUBReader._create_book": {"executed_lines": [305, 306, 308, 309, 311, 312, 314, 315, 317, 318, 320, 321, 323, 324, 326, 327], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 87.5, "percent_covered_display": "88", "missing_lines": 0, "excluded_lines": 1, "num_branches": 16, "num_partial_branches": 4, "covered_branches": 12, "missing_branches": 4}, "missing_lines": [], "excluded_lines": [303], "executed_branches": [[305, 306], [308, 309], [311, 312], [314, 315], [314, 317], [317, 318], [317, 320], [320, 321], [320, 323], [323, 324], [326, -302], [326, 327]], "missing_branches": [[305, 308], [308, 311], [311, 314], [323, 326]]}, "EPUBReader._add_chapters": {"executed_lines": [332, 334, 346, 349, 350, 351, 354, 355, 356, 359, 362, 365, 366, 367, 370, 371, 374, 376, 377, 380, 383, 384], "summary": {"covered_lines": 22, "num_statements": 32, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 10, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 2, "covered_branches": 8, "missing_branches": 2}, "missing_lines": [352, 386, 387, 389, 390, 391, 392, 394, 395, 396], "excluded_lines": [330], "executed_branches": [[350, -329], [350, 351], [351, 354], [359, 362], [359, 365], [366, 367], [383, 350], [383, 384]], "missing_branches": [[351, 352], [366, 370]]}, "EPUBReader._add_chapters.add_to_toc_map": {"executed_lines": [335, 336, 338, 339, 340, 343], "summary": {"covered_lines": 6, "num_statements": 7, "percent_covered": 76.92307692307692, "percent_covered_display": "77", "missing_lines": 1, "excluded_lines": 0, "num_branches": 6, "num_partial_branches": 2, "covered_branches": 4, "missing_branches": 2}, "missing_lines": [344], "excluded_lines": [], "executed_branches": [[335, -334], [335, 336], [336, 338], [343, 335]], "missing_branches": [[336, 343], [343, 344]]}, "read_epub": {"executed_lines": [409, 410], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [400], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 16, 17, 21, 30, 31, 38, 54, 86, 113, 141, 182, 211, 234, 262, 302, 329, 399], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 31], "executed_branches": [], "missing_branches": []}}, "classes": {"EPUBReader": {"executed_lines": [45, 46, 47, 48, 49, 50, 51, 52, 61, 63, 64, 67, 70, 73, 76, 78, 82, 83, 84, 88, 89, 92, 93, 94, 95, 98, 99, 100, 101, 102, 116, 117, 118, 119, 120, 121, 122, 123, 125, 129, 130, 133, 136, 139, 149, 150, 154, 155, 157, 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 180, 190, 191, 195, 196, 197, 198, 200, 202, 203, 205, 219, 220, 224, 225, 226, 229, 230, 231, 232, 236, 246, 251, 252, 255, 256, 260, 270, 272, 273, 276, 277, 278, 281, 282, 285, 294, 297, 300, 305, 306, 308, 309, 311, 312, 314, 315, 317, 318, 320, 321, 323, 324, 326, 327, 332, 334, 335, 336, 338, 339, 340, 343, 346, 349, 350, 351, 354, 355, 356, 359, 362, 365, 366, 367, 370, 371, 374, 376, 377, 380, 383, 384], "summary": {"covered_lines": 151, "num_statements": 181, "percent_covered": 76.8166089965398, "percent_covered_display": "77", "missing_lines": 30, "excluded_lines": 11, "num_branches": 108, "num_partial_branches": 25, "covered_branches": 71, "missing_branches": 37}, "missing_lines": [105, 106, 107, 108, 111, 126, 151, 192, 221, 238, 239, 240, 241, 242, 243, 244, 248, 257, 295, 344, 352, 386, 387, 389, 390, 391, 392, 394, 395, 396], "excluded_lines": [39, 55, 87, 114, 142, 183, 212, 235, 263, 303, 330], "executed_branches": [[93, 94], [98, 99], [100, 101], [117, 118], [118, 119], [119, 118], [119, 120], [122, 123], [125, 129], [150, 154], [154, -141], [154, 155], [155, 154], [155, 157], [160, 161], [160, 162], [162, 163], [162, 164], [164, 165], [164, 166], [166, 167], [166, 168], [168, 169], [168, 172], [169, 170], [169, 171], [172, 173], [172, 174], [174, 175], [174, 176], [176, 177], [176, 180], [191, 195], [195, -182], [195, 196], [200, 202], [220, 224], [225, 226], [229, -211], [229, 230], [231, 232], [236, 246], [246, 251], [256, 260], [270, -262], [270, 272], [294, 297], [305, 306], [308, 309], [311, 312], [314, 315], [314, 317], [317, 318], [317, 320], [320, 321], [320, 323], [323, 324], [326, -302], [326, 327], [335, -334], [335, 336], [336, 338], [343, 335], [350, -329], [350, 351], [351, 354], [359, 362], [359, 365], [366, 367], [383, 350], [383, 384]], "missing_branches": [[93, 105], [98, 105], [100, 98], [105, 106], [105, 111], [106, 105], [106, 107], [117, 125], [118, 122], [122, 117], [125, 126], [150, 151], [191, 192], [200, 195], [220, 221], [225, 229], [231, 229], [236, 238], [238, 239], [238, 246], [239, 240], [239, 243], [240, 239], [240, 241], [243, 238], [243, 244], [246, 248], [256, 257], [294, 295], [305, 308], [308, 311], [311, 314], [323, 326], [336, 343], [343, 344], [351, 352], [366, 370]]}, "": {"executed_lines": [1, 8, 9, 10, 11, 12, 13, 14, 16, 17, 21, 30, 31, 38, 54, 86, 113, 141, 182, 211, 234, 262, 302, 329, 399, 409, 410], "summary": {"covered_lines": 25, "num_statements": 25, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 31, 400], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/io/readers/html_extraction.py": {"executed_lines": [1, 9, 10, 11, 12, 13, 29, 32, 33, 38, 39, 40, 41, 42, 43, 45, 47, 49, 53, 55, 57, 59, 61, 63, 65, 67, 69, 72, 82, 92, 103, 104, 107, 110, 111, 112, 117, 118, 121, 122, 123, 124, 125, 128, 129, 132, 133, 135, 138, 148, 149, 150, 151, 152, 153, 156, 171, 188, 189, 190, 191, 192, 193, 194, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 211, 212, 213, 214, 223, 224, 225, 226, 230, 231, 232, 233, 237, 238, 239, 240, 246, 248, 249, 256, 257, 258, 259, 260, 261, 262, 263, 267, 279, 292, 298, 301, 312, 314, 315, 317, 318, 319, 320, 321, 322, 323, 325, 346, 347, 348, 362, 365, 378, 379, 380, 387, 389, 390, 391, 392, 393, 396, 398, 399, 400, 401, 402, 403, 404, 405, 407, 408, 411, 413, 422, 423, 424, 425, 426, 427, 430, 432, 433, 434, 435, 436, 437, 438, 442, 443, 446, 448, 449, 452, 453, 454, 456, 459, 462, 466, 469, 471, 472, 473, 474, 475, 476, 477, 478, 481, 483, 484, 485, 486, 487, 488, 489, 490, 493, 495, 497, 498, 499, 500, 501, 507, 509, 510, 511, 512, 513, 514, 515, 516, 518, 521, 523, 524, 525, 528, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 542, 543, 544, 545, 546, 548, 551, 553, 554, 555, 556, 557, 558, 559, 560, 563, 565, 566, 567, 570, 571, 572, 573, 574, 580, 582, 583, 584, 585, 586, 587, 588, 589, 591, 594, 596, 597, 598, 601, 602, 603, 604, 605, 611, 612, 613, 614, 615, 616, 617, 618, 619, 621, 624, 626, 629, 635, 637, 638, 641, 642, 643, 644, 645, 646, 650, 653, 655, 658, 664, 727, 740, 741, 742, 745, 747, 748, 749, 750, 751, 752, 753, 755, 757], "summary": {"covered_lines": 303, "num_statements": 353, "percent_covered": 78.35420393559929, "percent_covered_display": "78", "missing_lines": 50, "excluded_lines": 34, "num_branches": 206, "num_partial_branches": 33, "covered_branches": 135, "missing_branches": 71}, "missing_lines": [215, 216, 217, 218, 219, 220, 221, 227, 228, 234, 235, 241, 242, 243, 244, 264, 265, 293, 294, 295, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 439, 440, 463, 502, 503, 504, 506, 526, 575, 576, 577, 579, 606, 607, 608, 610, 632, 647, 648, 660], "excluded_lines": [1, 33, 46, 52, 56, 60, 64, 68, 73, 93, 139, 159, 282, 302, 368, 388, 397, 412, 431, 447, 460, 470, 482, 494, 522, 552, 564, 595, 625, 630, 636, 654, 659, 730], "executed_branches": [[111, 112], [111, 118], [122, 123], [122, 125], [149, 150], [149, 153], [150, 149], [150, 151], [197, 198], [197, 209], [199, 200], [199, 201], [201, 202], [201, 203], [203, 204], [203, 205], [205, 206], [205, 209], [209, 211], [209, 223], [212, 213], [223, 224], [223, 230], [225, 226], [230, 231], [230, 237], [232, 233], [237, 238], [237, 246], [239, 240], [246, 248], [246, 267], [256, 257], [256, 258], [258, 259], [258, 267], [292, 298], [314, 315], [314, 362], [315, 317], [315, 323], [318, 314], [318, 319], [320, 314], [320, 321], [321, 322], [323, 325], [325, 346], [391, 392], [391, 393], [399, 400], [399, 408], [400, 399], [400, 401], [403, 404], [404, 405], [404, 407], [425, 426], [425, 427], [433, 434], [433, 443], [434, 433], [434, 435], [437, 438], [438, 442], [453, 454], [453, 456], [462, 466], [472, 473], [472, 478], [473, 472], [473, 474], [476, 477], [484, 485], [484, 490], [485, 484], [485, 486], [488, 489], [497, 498], [497, 518], [498, 499], [498, 507], [501, 497], [507, 509], [510, 511], [513, 514], [513, 516], [514, 515], [525, 528], [531, 532], [531, 548], [532, 531], [532, 533], [533, 534], [533, 538], [536, 537], [538, 539], [542, 531], [542, 543], [545, 546], [554, 555], [554, 560], [555, 554], [555, 556], [558, 559], [570, 571], [570, 591], [571, 572], [571, 580], [574, 570], [580, 582], [583, 584], [586, 587], [586, 589], [587, 588], [601, 602], [601, 621], [602, 603], [602, 611], [605, 601], [611, 612], [613, 614], [616, 617], [616, 619], [617, 618], [643, 644], [645, 646], [747, 748], [747, 757], [748, 747], [748, 749], [751, 747], [751, 752], [752, 753], [752, 755]], "missing_branches": [[212, 217], [217, 218], [217, 223], [225, 227], [227, 228], [227, 230], [232, 234], [234, 235], [234, 237], [239, 241], [241, 242], [241, 243], [243, 244], [243, 246], [292, 293], [294, 295], [294, 298], [321, 320], [323, 314], [325, 351], [353, 354], [353, 358], [354, 314], [354, 355], [355, 354], [355, 356], [356, 354], [356, 357], [358, 314], [358, 359], [359, 314], [359, 360], [403, 399], [437, 433], [438, 439], [439, 433], [439, 440], [462, 463], [476, 472], [488, 484], [501, 502], [502, 503], [502, 506], [503, 497], [503, 504], [507, 497], [510, 497], [514, 513], [525, 526], [536, 531], [538, 531], [545, 542], [558, 554], [574, 575], [575, 576], [575, 579], [576, 570], [576, 577], [580, 570], [583, 570], [587, 586], [605, 606], [606, 607], [606, 610], [607, 601], [607, 608], [611, 601], [613, 601], [617, 616], [643, 645], [645, 650]], "functions": {"StyleContext.with_font": {"executed_lines": [47], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [46], "executed_branches": [], "missing_branches": []}, "StyleContext.with_background": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [52], "executed_branches": [], "missing_branches": []}, "StyleContext.with_css_classes": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [56], "executed_branches": [], "missing_branches": []}, "StyleContext.with_css_styles": {"executed_lines": [61], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [60], "executed_branches": [], "missing_branches": []}, "StyleContext.with_attributes": {"executed_lines": [65], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [64], "executed_branches": [], "missing_branches": []}, "StyleContext.push_element": {"executed_lines": [69], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [68], "executed_branches": [], "missing_branches": []}, "create_base_context": {"executed_lines": [82], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [73], "executed_branches": [], "missing_branches": []}, "apply_element_styling": {"executed_lines": [103, 104, 107, 110, 111, 112, 117, 118, 121, 122, 123, 124, 125, 128, 129, 132, 133, 135], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [93], "executed_branches": [[111, 112], [111, 118], [122, 123], [122, 125]], "missing_branches": []}, "parse_inline_styles": {"executed_lines": [148, 149, 150, 151, 152, 153], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [139], "executed_branches": [[149, 150], [149, 153], [150, 149], [150, 151]], "missing_branches": []}, "apply_element_font_styles": {"executed_lines": [171, 188, 189, 190, 191, 192, 193, 194, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 211, 212, 213, 214, 223, 224, 225, 226, 230, 231, 232, 233, 237, 238, 239, 240, 246, 248, 249, 256, 257, 258, 259, 260, 261, 262, 263, 267], "summary": {"covered_lines": 47, "num_statements": 64, "percent_covered": 70.75471698113208, "percent_covered_display": "71", "missing_lines": 17, "excluded_lines": 1, "num_branches": 42, "num_partial_branches": 4, "covered_branches": 28, "missing_branches": 14}, "missing_lines": [215, 216, 217, 218, 219, 220, 221, 227, 228, 234, 235, 241, 242, 243, 244, 264, 265], "excluded_lines": [159], "executed_branches": [[197, 198], [197, 209], [199, 200], [199, 201], [201, 202], [201, 203], [203, 204], [203, 205], [205, 206], [205, 209], [209, 211], [209, 223], [212, 213], [223, 224], [223, 230], [225, 226], [230, 231], [230, 237], [232, 233], [237, 238], [237, 246], [239, 240], [246, 248], [246, 267], [256, 257], [256, 258], [258, 259], [258, 267]], "missing_branches": [[212, 217], [217, 218], [217, 223], [225, 227], [227, 228], [227, 230], [232, 234], [234, 235], [234, 237], [239, 241], [241, 242], [241, 243], [243, 244], [243, 246]]}, "apply_background_styles": {"executed_lines": [292, 298], "summary": {"covered_lines": 2, "num_statements": 5, "percent_covered": 33.333333333333336, "percent_covered_display": "33", "missing_lines": 3, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 3}, "missing_lines": [293, 294, 295], "excluded_lines": [282], "executed_branches": [[292, 298]], "missing_branches": [[292, 293], [294, 295], [294, 298]]}, "extract_text_content": {"executed_lines": [312, 314, 315, 317, 318, 319, 320, 321, 322, 323, 325, 346, 347, 348, 362], "summary": {"covered_lines": 15, "num_statements": 25, "percent_covered": 50.98039215686274, "percent_covered_display": "51", "missing_lines": 10, "excluded_lines": 1, "num_branches": 26, "num_partial_branches": 3, "covered_branches": 11, "missing_branches": 15}, "missing_lines": [351, 352, 353, 354, 355, 356, 357, 358, 359, 360], "excluded_lines": [302], "executed_branches": [[314, 315], [314, 362], [315, 317], [315, 323], [318, 314], [318, 319], [320, 314], [320, 321], [321, 322], [323, 325], [325, 346]], "missing_branches": [[321, 320], [323, 314], [325, 351], [353, 354], [353, 358], [354, 314], [354, 355], [355, 354], [355, 356], [356, 354], [356, 357], [358, 314], [358, 359], [359, 314], [359, 360]]}, "process_element": {"executed_lines": [378, 379, 380], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [368], "executed_branches": [], "missing_branches": []}, "paragraph_handler": {"executed_lines": [389, 390, 391, 392, 393], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [388], "executed_branches": [[391, 392], [391, 393]], "missing_branches": []}, "div_handler": {"executed_lines": [398, 399, 400, 401, 402, 403, 404, 405, 407, 408], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 94.44444444444444, "percent_covered_display": "94", "missing_lines": 0, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 1, "covered_branches": 7, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [397], "executed_branches": [[399, 400], [399, 408], [400, 399], [400, 401], [403, 404], [404, 405], [404, 407]], "missing_branches": [[403, 399]]}, "heading_handler": {"executed_lines": [413, 422, 423, 424, 425, 426, 427], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [412], "executed_branches": [[425, 426], [425, 427]], "missing_branches": []}, "blockquote_handler": {"executed_lines": [432, 433, 434, 435, 436, 437, 438, 442, 443], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 71.42857142857143, "percent_covered_display": "71", "missing_lines": 2, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 2, "covered_branches": 6, "missing_branches": 4}, "missing_lines": [439, 440], "excluded_lines": [431], "executed_branches": [[433, 434], [433, 443], [434, 433], [434, 435], [437, 438], [438, 442]], "missing_branches": [[437, 433], [438, 439], [439, 433], [439, 440]]}, "preformatted_handler": {"executed_lines": [448, 449, 452, 453, 454, 456], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 2, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [447], "executed_branches": [[453, 454], [453, 456]], "missing_branches": []}, "code_handler": {"executed_lines": [462, 466], "summary": {"covered_lines": 2, "num_statements": 3, "percent_covered": 60.0, "percent_covered_display": "60", "missing_lines": 1, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 1, "covered_branches": 1, "missing_branches": 1}, "missing_lines": [463], "excluded_lines": [460], "executed_branches": [[462, 466]], "missing_branches": [[462, 463]]}, "unordered_list_handler": {"executed_lines": [471, 472, 473, 474, 475, 476, 477, 478], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 0, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 1, "covered_branches": 5, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [470], "executed_branches": [[472, 473], [472, 478], [473, 472], [473, 474], [476, 477]], "missing_branches": [[476, 472]]}, "ordered_list_handler": {"executed_lines": [483, 484, 485, 486, 487, 488, 489, 490], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 0, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 1, "covered_branches": 5, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [482], "executed_branches": [[484, 485], [484, 490], [485, 484], [485, 486], [488, 489]], "missing_branches": [[488, 484]]}, "list_item_handler": {"executed_lines": [495, 497, 498, 499, 500, 501, 507, 509, 510, 511, 512, 513, 514, 515, 516, 518], "summary": {"covered_lines": 16, "num_statements": 20, "percent_covered": 68.42105263157895, "percent_covered_display": "68", "missing_lines": 4, "excluded_lines": 1, "num_branches": 18, "num_partial_branches": 4, "covered_branches": 10, "missing_branches": 8}, "missing_lines": [502, 503, 504, 506], "excluded_lines": [494], "executed_branches": [[497, 498], [497, 518], [498, 499], [498, 507], [501, 497], [507, 509], [510, 511], [513, 514], [513, 516], [514, 515]], "missing_branches": [[501, 502], [502, 503], [502, 506], [503, 497], [503, 504], [507, 497], [510, 497], [514, 513]]}, "table_handler": {"executed_lines": [523, 524, 525, 528, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 542, 543, 544, 545, 546, 548], "summary": {"covered_lines": 20, "num_statements": 21, "percent_covered": 86.48648648648648, "percent_covered_display": "86", "missing_lines": 1, "excluded_lines": 1, "num_branches": 16, "num_partial_branches": 4, "covered_branches": 12, "missing_branches": 4}, "missing_lines": [526], "excluded_lines": [522], "executed_branches": [[525, 528], [531, 532], [531, 548], [532, 531], [532, 533], [533, 534], [533, 538], [536, 537], [538, 539], [542, 531], [542, 543], [545, 546]], "missing_branches": [[525, 526], [536, 531], [538, 531], [545, 542]]}, "table_row_handler": {"executed_lines": [553, 554, 555, 556, 557, 558, 559, 560], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 92.85714285714286, "percent_covered_display": "93", "missing_lines": 0, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 1, "covered_branches": 5, "missing_branches": 1}, "missing_lines": [], "excluded_lines": [552], "executed_branches": [[554, 555], [554, 560], [555, 554], [555, 556], [558, 559]], "missing_branches": [[558, 554]]}, "table_cell_handler": {"executed_lines": [565, 566, 567, 570, 571, 572, 573, 574, 580, 582, 583, 584, 585, 586, 587, 588, 589, 591], "summary": {"covered_lines": 18, "num_statements": 22, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 4, "excluded_lines": 1, "num_branches": 18, "num_partial_branches": 4, "covered_branches": 10, "missing_branches": 8}, "missing_lines": [575, 576, 577, 579], "excluded_lines": [564], "executed_branches": [[570, 571], [570, 591], [571, 572], [571, 580], [574, 570], [580, 582], [583, 584], [586, 587], [586, 589], [587, 588]], "missing_branches": [[574, 575], [575, 576], [575, 579], [576, 570], [576, 577], [580, 570], [583, 570], [587, 586]]}, "table_header_cell_handler": {"executed_lines": [596, 597, 598, 601, 602, 603, 604, 605, 611, 612, 613, 614, 615, 616, 617, 618, 619, 621], "summary": {"covered_lines": 18, "num_statements": 22, "percent_covered": 70.0, "percent_covered_display": "70", "missing_lines": 4, "excluded_lines": 1, "num_branches": 18, "num_partial_branches": 4, "covered_branches": 10, "missing_branches": 8}, "missing_lines": [606, 607, 608, 610], "excluded_lines": [595], "executed_branches": [[601, 602], [601, 621], [602, 603], [602, 611], [605, 601], [611, 612], [613, 614], [616, 617], [616, 619], [617, 618]], "missing_branches": [[605, 606], [606, 607], [606, 610], [607, 601], [607, 608], [611, 601], [613, 601], [617, 616]]}, "horizontal_rule_handler": {"executed_lines": [626], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [625], "executed_branches": [], "missing_branches": []}, "line_break_handler": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [632], "excluded_lines": [630], "executed_branches": [], "missing_branches": []}, "image_handler": {"executed_lines": [637, 638, 641, 642, 643, 644, 645, 646, 650], "summary": {"covered_lines": 9, "num_statements": 11, "percent_covered": 73.33333333333333, "percent_covered_display": "73", "missing_lines": 2, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 2, "covered_branches": 2, "missing_branches": 2}, "missing_lines": [647, 648], "excluded_lines": [636], "executed_branches": [[643, 644], [645, 646]], "missing_branches": [[643, 645], [645, 650]]}, "ignore_handler": {"executed_lines": [655], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [654], "executed_branches": [], "missing_branches": []}, "generic_handler": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [660], "excluded_lines": [659], "executed_branches": [], "missing_branches": []}, "parse_html_string": {"executed_lines": [740, 741, 742, 745, 747, 748, 749, 750, 751, 752, 753, 755, 757], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 8, "num_partial_branches": 0, "covered_branches": 8, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [730], "executed_branches": [[747, 748], [747, 757], [748, 747], [748, 749], [751, 747], [751, 752], [752, 753], [752, 755]], "missing_branches": []}, "": {"executed_lines": [1, 9, 10, 11, 12, 13, 29, 32, 33, 38, 39, 40, 41, 42, 43, 45, 49, 55, 59, 63, 67, 72, 92, 138, 156, 279, 301, 365, 387, 396, 411, 430, 446, 459, 469, 481, 493, 521, 551, 563, 594, 624, 629, 635, 653, 658, 664, 727], "summary": {"covered_lines": 46, "num_statements": 46, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 33], "executed_branches": [], "missing_branches": []}}, "classes": {"StyleContext": {"executed_lines": [47, 53, 57, 61, 65, 69], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 6, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [46, 52, 56, 60, 64, 68], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 9, 10, 11, 12, 13, 29, 32, 33, 38, 39, 40, 41, 42, 43, 45, 49, 55, 59, 63, 67, 72, 82, 92, 103, 104, 107, 110, 111, 112, 117, 118, 121, 122, 123, 124, 125, 128, 129, 132, 133, 135, 138, 148, 149, 150, 151, 152, 153, 156, 171, 188, 189, 190, 191, 192, 193, 194, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 209, 211, 212, 213, 214, 223, 224, 225, 226, 230, 231, 232, 233, 237, 238, 239, 240, 246, 248, 249, 256, 257, 258, 259, 260, 261, 262, 263, 267, 279, 292, 298, 301, 312, 314, 315, 317, 318, 319, 320, 321, 322, 323, 325, 346, 347, 348, 362, 365, 378, 379, 380, 387, 389, 390, 391, 392, 393, 396, 398, 399, 400, 401, 402, 403, 404, 405, 407, 408, 411, 413, 422, 423, 424, 425, 426, 427, 430, 432, 433, 434, 435, 436, 437, 438, 442, 443, 446, 448, 449, 452, 453, 454, 456, 459, 462, 466, 469, 471, 472, 473, 474, 475, 476, 477, 478, 481, 483, 484, 485, 486, 487, 488, 489, 490, 493, 495, 497, 498, 499, 500, 501, 507, 509, 510, 511, 512, 513, 514, 515, 516, 518, 521, 523, 524, 525, 528, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 542, 543, 544, 545, 546, 548, 551, 553, 554, 555, 556, 557, 558, 559, 560, 563, 565, 566, 567, 570, 571, 572, 573, 574, 580, 582, 583, 584, 585, 586, 587, 588, 589, 591, 594, 596, 597, 598, 601, 602, 603, 604, 605, 611, 612, 613, 614, 615, 616, 617, 618, 619, 621, 624, 626, 629, 635, 637, 638, 641, 642, 643, 644, 645, 646, 650, 653, 655, 658, 664, 727, 740, 741, 742, 745, 747, 748, 749, 750, 751, 752, 753, 755, 757], "summary": {"covered_lines": 297, "num_statements": 347, "percent_covered": 78.11934900542495, "percent_covered_display": "78", "missing_lines": 50, "excluded_lines": 28, "num_branches": 206, "num_partial_branches": 33, "covered_branches": 135, "missing_branches": 71}, "missing_lines": [215, 216, 217, 218, 219, 220, 221, 227, 228, 234, 235, 241, 242, 243, 244, 264, 265, 293, 294, 295, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 439, 440, 463, 502, 503, 504, 506, 526, 575, 576, 577, 579, 606, 607, 608, 610, 632, 647, 648, 660], "excluded_lines": [1, 33, 73, 93, 139, 159, 282, 302, 368, 388, 397, 412, 431, 447, 460, 470, 482, 494, 522, 552, 564, 595, 625, 630, 636, 654, 659, 730], "executed_branches": [[111, 112], [111, 118], [122, 123], [122, 125], [149, 150], [149, 153], [150, 149], [150, 151], [197, 198], [197, 209], [199, 200], [199, 201], [201, 202], [201, 203], [203, 204], [203, 205], [205, 206], [205, 209], [209, 211], [209, 223], [212, 213], [223, 224], [223, 230], [225, 226], [230, 231], [230, 237], [232, 233], [237, 238], [237, 246], [239, 240], [246, 248], [246, 267], [256, 257], [256, 258], [258, 259], [258, 267], [292, 298], [314, 315], [314, 362], [315, 317], [315, 323], [318, 314], [318, 319], [320, 314], [320, 321], [321, 322], [323, 325], [325, 346], [391, 392], [391, 393], [399, 400], [399, 408], [400, 399], [400, 401], [403, 404], [404, 405], [404, 407], [425, 426], [425, 427], [433, 434], [433, 443], [434, 433], [434, 435], [437, 438], [438, 442], [453, 454], [453, 456], [462, 466], [472, 473], [472, 478], [473, 472], [473, 474], [476, 477], [484, 485], [484, 490], [485, 484], [485, 486], [488, 489], [497, 498], [497, 518], [498, 499], [498, 507], [501, 497], [507, 509], [510, 511], [513, 514], [513, 516], [514, 515], [525, 528], [531, 532], [531, 548], [532, 531], [532, 533], [533, 534], [533, 538], [536, 537], [538, 539], [542, 531], [542, 543], [545, 546], [554, 555], [554, 560], [555, 554], [555, 556], [558, 559], [570, 571], [570, 591], [571, 572], [571, 580], [574, 570], [580, 582], [583, 584], [586, 587], [586, 589], [587, 588], [601, 602], [601, 621], [602, 603], [602, 611], [605, 601], [611, 612], [613, 614], [616, 617], [616, 619], [617, 618], [643, 644], [645, 646], [747, 748], [747, 757], [748, 747], [748, 749], [751, 747], [751, 752], [752, 753], [752, 755]], "missing_branches": [[212, 217], [217, 218], [217, 223], [225, 227], [227, 228], [227, 230], [232, 234], [234, 235], [234, 237], [239, 241], [241, 242], [241, 243], [243, 244], [243, 246], [292, 293], [294, 295], [294, 298], [321, 320], [323, 314], [325, 351], [353, 354], [353, 358], [354, 314], [354, 355], [355, 354], [355, 356], [356, 354], [356, 357], [358, 314], [358, 359], [359, 314], [359, 360], [403, 399], [437, 433], [438, 439], [439, 433], [439, 440], [462, 463], [476, 472], [488, 484], [501, 502], [502, 503], [502, 506], [503, 497], [503, 504], [507, 497], [510, 497], [514, 513], [525, 526], [536, 531], [538, 531], [545, 542], [558, 554], [574, 575], [575, 576], [575, 579], [576, 570], [576, 577], [580, 570], [583, 570], [587, 586], [605, 606], [606, 607], [606, 610], [607, 601], [607, 608], [611, 601], [613, 601], [617, 616], [643, 645], [645, 650]]}}}, "pyWebLayout/style/__init__.py": {"executed_lines": [1, 12, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 12, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 12, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/style/alignment.py": {"executed_lines": [1, 5, 7, 8, 11, 12, 13, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 8], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 5, 7, 8, 11, 12, 13, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 8], "executed_branches": [], "missing_branches": []}}, "classes": {"Alignment": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 5, 7, 8, 11, 12, 13, 14, 15, 16], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 8], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/style/fonts.py": {"executed_lines": [2, 3, 4, 7, 8, 9, 12, 13, 14, 17, 18, 19, 20, 23, 24, 29, 51, 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 65, 66, 72, 73, 74, 75, 77, 79, 80, 82, 84, 85, 87, 89, 90, 92, 94, 95, 97, 99, 100, 102, 104, 105, 107, 109, 110, 112, 114, 115, 117, 119, 121, 131, 133, 143, 145, 155, 157, 167, 169], "summary": {"covered_lines": 67, "num_statements": 67, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 16, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [24, 38, 63, 81, 86, 91, 96, 101, 106, 111, 116, 120, 132, 144, 156, 168], "executed_branches": [[65, 66], [65, 72], [73, -62], [73, 74]], "missing_branches": [], "functions": {"Font.__init__": {"executed_lines": [51, 52, 53, 54, 55, 56, 57, 58, 60], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [38], "executed_branches": [], "missing_branches": []}, "Font._load_font": {"executed_lines": [64, 65, 66, 72, 73, 74, 75, 77], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [63], "executed_branches": [[65, 66], [65, 72], [73, -62], [73, 74]], "missing_branches": []}, "Font.font": {"executed_lines": [82], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [81], "executed_branches": [], "missing_branches": []}, "Font.font_size": {"executed_lines": [87], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [86], "executed_branches": [], "missing_branches": []}, "Font.colour": {"executed_lines": [92], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [91], "executed_branches": [], "missing_branches": []}, "Font.color": {"executed_lines": [97], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [96], "executed_branches": [], "missing_branches": []}, "Font.background": {"executed_lines": [102], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [101], "executed_branches": [], "missing_branches": []}, "Font.weight": {"executed_lines": [107], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [106], "executed_branches": [], "missing_branches": []}, "Font.style": {"executed_lines": [112], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [111], "executed_branches": [], "missing_branches": []}, "Font.decoration": {"executed_lines": [117], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [116], "executed_branches": [], "missing_branches": []}, "Font.with_size": {"executed_lines": [121], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [120], "executed_branches": [], "missing_branches": []}, "Font.with_colour": {"executed_lines": [133], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [132], "executed_branches": [], "missing_branches": []}, "Font.with_weight": {"executed_lines": [145], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [144], "executed_branches": [], "missing_branches": []}, "Font.with_style": {"executed_lines": [157], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [156], "executed_branches": [], "missing_branches": []}, "Font.with_decoration": {"executed_lines": [169], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [168], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [2, 3, 4, 7, 8, 9, 12, 13, 14, 17, 18, 19, 20, 23, 24, 29, 62, 79, 80, 84, 85, 89, 90, 94, 95, 99, 100, 104, 105, 109, 110, 114, 115, 119, 131, 143, 155, 167], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [24], "executed_branches": [], "missing_branches": []}}, "classes": {"FontWeight": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "FontStyle": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "TextDecoration": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "Font": {"executed_lines": [51, 52, 53, 54, 55, 56, 57, 58, 60, 64, 65, 66, 72, 73, 74, 75, 77, 82, 87, 92, 97, 102, 107, 112, 117, 121, 133, 145, 157, 169], "summary": {"covered_lines": 30, "num_statements": 30, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 15, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 4, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [38, 63, 81, 86, 91, 96, 101, 106, 111, 116, 120, 132, 144, 156, 168], "executed_branches": [[65, 66], [65, 72], [73, -62], [73, 74]], "missing_branches": []}, "": {"executed_lines": [2, 3, 4, 7, 8, 9, 12, 13, 14, 17, 18, 19, 20, 23, 24, 29, 62, 79, 80, 84, 85, 89, 90, 94, 95, 99, 100, 104, 105, 109, 110, 114, 115, 119, 131, 143, 155, 167], "summary": {"covered_lines": 37, "num_statements": 37, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [24], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/style/layout.py": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 9], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 9], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}, "classes": {"Alignment": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 3, 4, 5, 6, 7, 8, 9], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/typesetting/__init__.py": {"executed_lines": [1, 13, 14, 15], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": [], "functions": {"": {"executed_lines": [1, 13, 14, 15], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}, "classes": {"": {"executed_lines": [1, 13, 14, 15], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/typesetting/document_pagination.py": {"executed_lines": [1, 8, 9, 10, 12, 13, 14, 15, 16, 17, 20, 21, 28, 35, 50, 51, 67, 76, 77, 90, 91, 98, 126, 159, 187, 199, 287, 296, 305, 314], "summary": {"covered_lines": 27, "num_statements": 117, "percent_covered": 18.620689655172413, "percent_covered_display": "19", "missing_lines": 90, "excluded_lines": 17, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [30, 31, 32, 33, 42, 43, 48, 61, 62, 63, 64, 65, 74, 87, 116, 117, 118, 119, 120, 121, 124, 135, 137, 139, 141, 142, 143, 146, 147, 148, 149, 152, 155, 157, 169, 172, 175, 178, 179, 180, 181, 182, 183, 185, 194, 195, 196, 197, 207, 208, 211, 214, 216, 219, 222, 223, 226, 227, 230, 231, 234, 237, 239, 242, 243, 246, 249, 252, 255, 259, 260, 263, 264, 267, 268, 269, 272, 275, 276, 277, 278, 281, 282, 285, 294, 303, 312, 321, 322, 323], "excluded_lines": [1, 21, 29, 36, 52, 68, 78, 91, 106, 127, 160, 188, 200, 288, 297, 306, 315], "executed_branches": [], "missing_branches": [[137, 139], [137, 155], [139, 141], [139, 157], [141, 142], [141, 152], [179, 180], [179, 185], [182, 179], [182, 183], [214, -199], [214, 216], [226, 227], [226, 267], [230, 231], [230, 234], [237, 239], [237, 242], [255, 226], [255, 259], [260, 226], [260, 263], [275, 276], [275, 281], [281, 282], [281, 285], [321, 322], [321, 323]], "functions": {"DocumentPaginationState.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [30, 31, 32, 33], "excluded_lines": [29], "executed_branches": [], "missing_branches": []}, "DocumentPaginationState.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [42, 43, 48], "excluded_lines": [36], "executed_branches": [], "missing_branches": []}, "DocumentPaginationState.load": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [61, 62, 63, 64, 65], "excluded_lines": [52], "executed_branches": [], "missing_branches": []}, "DocumentPaginationState.to_json": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [74], "excluded_lines": [68], "executed_branches": [], "missing_branches": []}, "DocumentPaginationState.from_json": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [87], "excluded_lines": [78], "executed_branches": [], "missing_branches": []}, "DocumentPaginator.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [116, 117, 118, 119, 120, 121, 124], "excluded_lines": [106], "executed_branches": [], "missing_branches": []}, "DocumentPaginator._collect_blocks": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 1, "num_branches": 6, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 6}, "missing_lines": [135, 137, 139, 141, 142, 143, 146, 147, 148, 149, 152, 155, 157], "excluded_lines": [127], "executed_branches": [], "missing_branches": [[137, 139], [137, 155], [139, 141], [139, 157], [141, 142], [141, 152]]}, "DocumentPaginator.paginate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [169, 172, 175, 178, 179, 180, 181, 182, 183, 185], "excluded_lines": [160], "executed_branches": [], "missing_branches": [[179, 180], [179, 185], [182, 179], [182, 183]]}, "DocumentPaginator.paginate_next": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [194, 195, 196, 197], "excluded_lines": [188], "executed_branches": [], "missing_branches": []}, "DocumentPaginator._paginate_generator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 36, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 36, "excluded_lines": 1, "num_branches": 16, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 16}, "missing_lines": [207, 208, 211, 214, 216, 219, 222, 223, 226, 227, 230, 231, 234, 237, 239, 242, 243, 246, 249, 252, 255, 259, 260, 263, 264, 267, 268, 269, 272, 275, 276, 277, 278, 281, 282, 285], "excluded_lines": [200], "executed_branches": [], "missing_branches": [[214, -199], [214, 216], [226, 227], [226, 267], [230, 231], [230, 234], [237, 239], [237, 242], [255, 226], [255, 259], [260, 226], [260, 263], [275, 276], [275, 281], [281, 282], [281, 285]]}, "DocumentPaginator.get_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [294], "excluded_lines": [288], "executed_branches": [], "missing_branches": []}, "DocumentPaginator.set_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [303], "excluded_lines": [297], "executed_branches": [], "missing_branches": []}, "DocumentPaginator.is_complete": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [312], "excluded_lines": [306], "executed_branches": [], "missing_branches": []}, "DocumentPaginator.get_progress": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 1, "num_branches": 2, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 2}, "missing_lines": [321, 322, 323], "excluded_lines": [315], "executed_branches": [], "missing_branches": [[321, 322], [321, 323]]}, "": {"executed_lines": [1, 8, 9, 10, 12, 13, 14, 15, 16, 17, 20, 21, 28, 35, 50, 51, 67, 76, 77, 90, 91, 98, 126, 159, 187, 199, 287, 296, 305, 314], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 21, 91], "executed_branches": [], "missing_branches": []}}, "classes": {"DocumentPaginationState": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 14, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 14, "excluded_lines": 5, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [30, 31, 32, 33, 42, 43, 48, 61, 62, 63, 64, 65, 74, 87], "excluded_lines": [29, 36, 52, 68, 78], "executed_branches": [], "missing_branches": []}, "DocumentPaginator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 76, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 76, "excluded_lines": 9, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [116, 117, 118, 119, 120, 121, 124, 135, 137, 139, 141, 142, 143, 146, 147, 148, 149, 152, 155, 157, 169, 172, 175, 178, 179, 180, 181, 182, 183, 185, 194, 195, 196, 197, 207, 208, 211, 214, 216, 219, 222, 223, 226, 227, 230, 231, 234, 237, 239, 242, 243, 246, 249, 252, 255, 259, 260, 263, 264, 267, 268, 269, 272, 275, 276, 277, 278, 281, 282, 285, 294, 303, 312, 321, 322, 323], "excluded_lines": [106, 127, 160, 188, 200, 288, 297, 306, 315], "executed_branches": [], "missing_branches": [[137, 139], [137, 155], [139, 141], [139, 157], [141, 142], [141, 152], [179, 180], [179, 185], [182, 179], [182, 183], [214, -199], [214, 216], [226, 227], [226, 267], [230, 231], [230, 234], [237, 239], [237, 242], [255, 226], [255, 259], [260, 226], [260, 263], [275, 276], [275, 281], [281, 282], [281, 285], [321, 322], [321, 323]]}, "": {"executed_lines": [1, 8, 9, 10, 12, 13, 14, 15, 16, 17, 20, 21, 28, 35, 50, 51, 67, 76, 77, 90, 91, 98, 126, 159, 187, 199, 287, 296, 305, 314], "summary": {"covered_lines": 27, "num_statements": 27, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 21, 91], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/typesetting/flow.py": {"executed_lines": [1, 9, 10, 12, 13, 16, 17, 25, 26, 110, 111], "summary": {"covered_lines": 9, "num_statements": 55, "percent_covered": 10.843373493975903, "percent_covered_display": "11", "missing_lines": 46, "excluded_lines": 4, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [49, 50, 53, 54, 55, 56, 57, 60, 61, 62, 65, 66, 67, 70, 72, 78, 79, 80, 81, 84, 85, 86, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 106, 108, 132, 134, 137, 143, 144, 147, 148, 149, 150, 151, 154, 155], "excluded_lines": [1, 17, 34, 120], "executed_branches": [], "missing_branches": [[60, 61], [60, 65], [61, 60], [61, 62], [65, 66], [65, 89], [70, 72], [70, 84], [89, 90], [89, 96], [96, 97], [96, 108], [98, 99], [98, 108], [100, 101], [100, 102], [102, 103], [102, 106], [132, 134], [132, 137], [143, 144], [143, 147], [148, 149], [148, 150], [150, 151], [150, 154], [154, -110], [154, 155]], "functions": {"FlowLayout.layout_elements": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 34, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 34, "excluded_lines": 1, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 18}, "missing_lines": [49, 50, 53, 54, 55, 56, 57, 60, 61, 62, 65, 66, 67, 70, 72, 78, 79, 80, 81, 84, 85, 86, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 106, 108], "excluded_lines": [34], "executed_branches": [], "missing_branches": [[60, 61], [60, 65], [61, 60], [61, 62], [65, 66], [65, 89], [70, 72], [70, 84], [89, 90], [89, 96], [96, 97], [96, 108], [98, 99], [98, 108], [100, 101], [100, 102], [102, 103], [102, 106]]}, "FlowLayout._align_row": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 12, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 12, "excluded_lines": 1, "num_branches": 10, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 10}, "missing_lines": [132, 134, 137, 143, 144, 147, 148, 149, 150, 151, 154, 155], "excluded_lines": [120], "executed_branches": [], "missing_branches": [[132, 134], [132, 137], [143, 144], [143, 147], [148, 149], [148, 150], [150, 151], [150, 154], [154, -110], [154, 155]]}, "": {"executed_lines": [1, 9, 10, 12, 13, 16, 17, 25, 26, 110, 111], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 17], "executed_branches": [], "missing_branches": []}}, "classes": {"FlowLayout": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 46, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 46, "excluded_lines": 2, "num_branches": 28, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 28}, "missing_lines": [49, 50, 53, 54, 55, 56, 57, 60, 61, 62, 65, 66, 67, 70, 72, 78, 79, 80, 81, 84, 85, 86, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 106, 108, 132, 134, 137, 143, 144, 147, 148, 149, 150, 151, 154, 155], "excluded_lines": [34, 120], "executed_branches": [], "missing_branches": [[60, 61], [60, 65], [61, 60], [61, 62], [65, 66], [65, 89], [70, 72], [70, 84], [89, 90], [89, 96], [96, 97], [96, 108], [98, 99], [98, 108], [100, 101], [100, 102], [102, 103], [102, 106], [132, 134], [132, 137], [143, 144], [143, 147], [148, 149], [148, 150], [150, 151], [150, 154], [154, -110], [154, 155]]}, "": {"executed_lines": [1, 9, 10, 12, 13, 16, 17, 25, 26, 110, 111], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 2, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 17], "executed_branches": [], "missing_branches": []}}}, "pyWebLayout/typesetting/pagination.py": {"executed_lines": [1, 8, 9, 11, 12, 13, 16, 17, 23, 31, 46, 47, 66, 67, 73, 98, 126, 138, 215, 224], "summary": {"covered_lines": 17, "num_statements": 87, "percent_covered": 15.596330275229358, "percent_covered_display": "16", "missing_lines": 70, "excluded_lines": 12, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 22}, "missing_lines": [25, 26, 27, 28, 29, 38, 57, 58, 59, 60, 61, 62, 63, 91, 92, 93, 94, 95, 96, 108, 111, 114, 117, 118, 119, 120, 121, 122, 124, 133, 134, 135, 136, 146, 147, 150, 151, 154, 156, 157, 160, 161, 164, 165, 168, 169, 172, 174, 177, 178, 179, 180, 181, 182, 184, 187, 190, 191, 194, 195, 198, 201, 202, 205, 206, 209, 210, 213, 222, 231], "excluded_lines": [1, 17, 24, 32, 48, 67, 81, 99, 127, 139, 216, 225], "executed_branches": [], "missing_branches": [[118, 119], [118, 124], [121, 118], [121, 122], [154, -138], [154, 156], [160, 161], [160, 194], [164, 165], [164, 168], [172, 174], [172, 177], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 184], [198, 201], [198, 209], [209, 210], [209, 213]], "functions": {"PaginationState.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 5, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 5, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [25, 26, 27, 28, 29], "excluded_lines": [24], "executed_branches": [], "missing_branches": []}, "PaginationState.save": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [38], "excluded_lines": [32], "executed_branches": [], "missing_branches": []}, "PaginationState.load": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 7, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 7, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [57, 58, 59, 60, 61, 62, 63], "excluded_lines": [48], "executed_branches": [], "missing_branches": []}, "Paginator.__init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 6, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 6, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [91, 92, 93, 94, 95, 96], "excluded_lines": [81], "executed_branches": [], "missing_branches": []}, "Paginator.paginate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 1, "num_branches": 4, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 4}, "missing_lines": [108, 111, 114, 117, 118, 119, 120, 121, 122, 124], "excluded_lines": [99], "executed_branches": [], "missing_branches": [[118, 119], [118, 124], [121, 118], [121, 122]]}, "Paginator.paginate_next": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 4, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 4, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [133, 134, 135, 136], "excluded_lines": [127], "executed_branches": [], "missing_branches": []}, "Paginator._paginate_generator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 35, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 35, "excluded_lines": 1, "num_branches": 18, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 18}, "missing_lines": [146, 147, 150, 151, 154, 156, 157, 160, 161, 164, 165, 168, 169, 172, 174, 177, 178, 179, 180, 181, 182, 184, 187, 190, 191, 194, 195, 198, 201, 202, 205, 206, 209, 210, 213], "excluded_lines": [139], "executed_branches": [], "missing_branches": [[154, -138], [154, 156], [160, 161], [160, 194], [164, 165], [164, 168], [172, 174], [172, 177], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 184], [198, 201], [198, 209], [209, 210], [209, 213]]}, "Paginator.get_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [222], "excluded_lines": [216], "executed_branches": [], "missing_branches": []}, "Paginator.set_state": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 1, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 1, "excluded_lines": 1, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [231], "excluded_lines": [225], "executed_branches": [], "missing_branches": []}, "": {"executed_lines": [1, 8, 9, 11, 12, 13, 16, 17, 23, 31, 46, 47, 66, 67, 73, 98, 126, 138, 215, 224], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 17, 67], "executed_branches": [], "missing_branches": []}}, "classes": {"PaginationState": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [25, 26, 27, 28, 29, 38, 57, 58, 59, 60, 61, 62, 63], "excluded_lines": [24, 32, 48], "executed_branches": [], "missing_branches": []}, "Paginator": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 57, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 57, "excluded_lines": 6, "num_branches": 22, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 22}, "missing_lines": [91, 92, 93, 94, 95, 96, 108, 111, 114, 117, 118, 119, 120, 121, 122, 124, 133, 134, 135, 136, 146, 147, 150, 151, 154, 156, 157, 160, 161, 164, 165, 168, 169, 172, 174, 177, 178, 179, 180, 181, 182, 184, 187, 190, 191, 194, 195, 198, 201, 202, 205, 206, 209, 210, 213, 222, 231], "excluded_lines": [81, 99, 127, 139, 216, 225], "executed_branches": [], "missing_branches": [[118, 119], [118, 124], [121, 118], [121, 122], [154, -138], [154, 156], [160, 161], [160, 194], [164, 165], [164, 168], [172, 174], [172, 177], [177, 178], [177, 179], [179, 180], [179, 181], [181, 182], [181, 184], [198, 201], [198, 209], [209, 210], [209, 213]]}, "": {"executed_lines": [1, 8, 9, 11, 12, 13, 16, 17, 23, 31, 46, 47, 66, 67, 73, 98, 126, 138, 215, 224], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 3, "num_branches": 0, "num_partial_branches": 0, "covered_branches": 0, "missing_branches": 0}, "missing_lines": [], "excluded_lines": [1, 17, 67], "executed_branches": [], "missing_branches": []}}}}, "totals": {"covered_lines": 1633, "num_statements": 2643, "percent_covered": 56.99738143729997, "percent_covered_display": "57", "missing_lines": 1010, "excluded_lines": 444, "num_branches": 794, "num_partial_branches": 68, "covered_branches": 326, "missing_branches": 468}} \ No newline at end of file diff --git a/coverage.svg b/coverage.svg index d7667be..4713f1f 100644 --- a/coverage.svg +++ b/coverage.svg @@ -15,7 +15,7 @@ coverage coverage - 47% - 47% + 57% + 57% diff --git a/coverage.xml b/coverage.xml index 5d139fc..dd5075d 100644 --- a/coverage.xml +++ b/coverage.xml @@ -1,5 +1,5 @@ - + @@ -20,7 +20,6 @@ - @@ -640,101 +639,107 @@ + + - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - + + + - - - - + + + + + + + + + - - - - - - + - - - - - + + - + - + - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + + + + + + + + + - - + + - - - - - + - - - - - - - + + + + + + + - - + + + + - - - - - + + + + + + + + + + @@ -1760,56 +1765,24 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + + @@ -1877,167 +1850,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -2052,111 +1865,111 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - + + + + + + + + - - + + - - - - - - - + + + + + + + - + @@ -2164,157 +1977,91 @@ - + - - - - + + + + - + - - - - - - - - - - + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -2389,11 +2136,11 @@ - - - - - + + + + + @@ -2407,16 +2154,16 @@ - - - - + + + + - - - - + + + + @@ -2426,7 +2173,7 @@ - + @@ -2531,7 +2278,7 @@ - + @@ -2672,402 +2419,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3127,7 +2478,6 @@ - diff --git a/html_browser.py b/html_browser.py new file mode 100644 index 0000000..80baf2a --- /dev/null +++ b/html_browser.py @@ -0,0 +1,642 @@ +#!/usr/bin/env python3 +""" +Simple HTML Browser using pyWebLayout + +This browser can render basic HTML content using the pyWebLayout concrete objects. +It supports text, images, links, forms, and basic styling. +""" + +import re +import tkinter as tk +from tkinter import ttk, messagebox, filedialog, simpledialog +from PIL import Image, ImageTk +from typing import Dict, List, Optional, Tuple, Any +import webbrowser +import os +from urllib.parse import urljoin, urlparse +import requests +from io import BytesIO + +# Import pyWebLayout components +from pyWebLayout.concrete import ( + Page, Container, Box, Text, RenderableImage, + RenderableLink, RenderableButton, RenderableForm, RenderableFormField +) +from pyWebLayout.abstract.functional import ( + Link, Button, Form, FormField, LinkType, FormFieldType +) +from pyWebLayout.style.fonts import Font, FontWeight, FontStyle, TextDecoration +from pyWebLayout.style.layout import Alignment + + +class HTMLParser: + """Simple HTML parser that converts HTML to pyWebLayout objects""" + + def __init__(self): + self.font_stack = [Font(font_size=14)] # Default font + self.current_container = None + + def parse_html_string(self, html_content: str, base_url: str = "") -> Page: + """Parse HTML string and return a Page object""" + # Create the main page + page = Page(size=(800, 1600), background_color=(255, 255, 255)) + self.current_container = page + self.base_url = base_url + + # Simple HTML parsing using regex (not production-ready, but works for demo) + # Remove comments and scripts + html_content = re.sub(r'', '', html_content, flags=re.DOTALL) + html_content = re.sub(r'', '', html_content, flags=re.DOTALL) + html_content = re.sub(r'', '', html_content, flags=re.DOTALL) + + # Extract title + title_match = re.search(r'(.*?)', html_content, re.IGNORECASE) + if title_match: + page.title = title_match.group(1) + + # Extract body content + body_match = re.search(r']*>(.*?)', html_content, re.DOTALL | re.IGNORECASE) + if body_match: + body_content = body_match.group(1) + else: + # If no body tag, use the entire content + body_content = html_content + + # Parse the body content + self._parse_content(body_content, page) + + return page + + def parse_html_file(self, file_path: str) -> Page: + """Parse HTML file and return a Page object""" + try: + with open(file_path, 'r', encoding='utf-8') as f: + html_content = f.read() + base_url = os.path.dirname(os.path.abspath(file_path)) + return self.parse_html_string(html_content, base_url) + except Exception as e: + # Create error page + page = Page(size=(800, 1600), background_color=(255, 255, 255)) + error_text = Text(f"Error loading file: {str(e)}", Font(font_size=16, colour=(255, 0, 0))) + page.add_child(error_text) + return page + + def _parse_content(self, content: str, container: Container): + """Parse HTML content and add elements to container""" + # Simple token-based parsing + tokens = self._tokenize_html(content) + + i = 0 + while i < len(tokens): + token = tokens[i] + + if token['type'] == 'text': + if token['content'].strip(): # Only add non-empty text + text_obj = Text(token['content'].strip(), self.font_stack[-1]) + container.add_child(text_obj) + + elif token['type'] == 'tag': + # Handle the tag and potentially parse content between opening and closing tags + i = self._handle_tag_with_content(token, tokens, i, container) + continue + + i += 1 + + def _handle_tag_with_content(self, token, tokens, current_index, container): + """Handle tags and their content, returning the new index position""" + tag_name = token['name'] + is_closing = token['closing'] + + if is_closing: + # Handle closing tags + if tag_name in ['b', 'strong', 'i', 'em', 'u', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6']: + if len(self.font_stack) > 1: # Don't pop the last font + self.font_stack.pop() + return current_index + 1 + + # For opening tags that affect text styling, parse their content with the new style + if tag_name in ['b', 'strong', 'i', 'em', 'u', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6']: + # Push new font onto stack + self._handle_tag(token, container) + + # Find the matching closing tag and parse content in between + content_start = current_index + 1 + content_end = self._find_matching_closing_tag(tokens, current_index, tag_name) + + if content_end > content_start: + # Parse content between opening and closing tags with current font style + for j in range(content_start, content_end): + content_token = tokens[j] + if content_token['type'] == 'text': + if content_token['content'].strip(): + text_obj = Text(content_token['content'].strip(), self.font_stack[-1]) + container.add_child(text_obj) + elif content_token['type'] == 'tag' and not content_token['closing']: + # Handle nested tags + self._handle_tag(content_token, container) + + # Pop the font from stack + if len(self.font_stack) > 1: + self.font_stack.pop() + + return content_end + 1 if content_end < len(tokens) else len(tokens) + + else: + # Handle other tags normally + self._handle_tag(token, container) + return current_index + 1 + + def _find_matching_closing_tag(self, tokens, start_index, tag_name): + """Find the index of the matching closing tag""" + open_count = 1 + i = start_index + 1 + + while i < len(tokens) and open_count > 0: + token = tokens[i] + if token['type'] == 'tag' and token['name'] == tag_name: + if token['closing']: + open_count -= 1 + else: + open_count += 1 + i += 1 + + return i - 1 if open_count == 0 else len(tokens) + + def _tokenize_html(self, content: str) -> List[Dict]: + """Simple HTML tokenizer""" + tokens = [] + tag_pattern = r'<(/?)([^>]+)>' + + last_end = 0 + for match in re.finditer(tag_pattern, content): + # Add text before tag + text_content = content[last_end:match.start()] + if text_content: + tokens.append({'type': 'text', 'content': text_content}) + + # Add tag + is_closing = bool(match.group(1)) + tag_content = match.group(2) + tag_parts = tag_content.split() + tag_name = tag_parts[0].lower() + + # Parse attributes + attributes = {} + if len(tag_parts) > 1: + attr_text = ' '.join(tag_parts[1:]) + attr_pattern = r'(\w+)=(?:"([^"]*)"|\'([^\']*)\'|([^\s>]+))' + for attr_match in re.finditer(attr_pattern, attr_text): + attr_name = attr_match.group(1).lower() + attr_value = attr_match.group(2) or attr_match.group(3) or attr_match.group(4) + attributes[attr_name] = attr_value + + tokens.append({ + 'type': 'tag', + 'name': tag_name, + 'closing': is_closing, + 'attributes': attributes, + 'content': tag_content + }) + + last_end = match.end() + + # Add remaining text + if last_end < len(content): + text_content = content[last_end:] + if text_content: + tokens.append({'type': 'text', 'content': text_content}) + + return tokens + + def _handle_tag(self, token: Dict, container: Container): + """Handle HTML tags""" + tag_name = token['name'] + is_closing = token['closing'] + attributes = token['attributes'] + + if is_closing: + # Handle closing tags + if tag_name in ['b', 'strong']: + self.font_stack.pop() + elif tag_name in ['i', 'em']: + self.font_stack.pop() + elif tag_name == 'u': + self.font_stack.pop() + return + + # Handle opening tags + if tag_name in ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']: + # Headers + size_map = {'h1': 24, 'h2': 20, 'h3': 18, 'h4': 16, 'h5': 14, 'h6': 12} + font = self.font_stack[-1].with_size(size_map[tag_name]).with_weight(FontWeight.BOLD) + self.font_stack.append(font) + + elif tag_name in ['b', 'strong']: + # Bold text + font = self.font_stack[-1].with_weight(FontWeight.BOLD) + self.font_stack.append(font) + + elif tag_name in ['i', 'em']: + # Italic text + font = self.font_stack[-1].with_style(FontStyle.ITALIC) + self.font_stack.append(font) + + elif tag_name == 'u': + # Underlined text + font = self.font_stack[-1].with_decoration(TextDecoration.UNDERLINE) + self.font_stack.append(font) + + elif tag_name == 'a': + # Links + href = attributes.get('href', '#') + title = attributes.get('title', href) + + # Determine link type + if href.startswith('http'): + link_type = LinkType.EXTERNAL + elif href.startswith('#'): + link_type = LinkType.INTERNAL + else: + link_type = LinkType.INTERNAL + + # Create link callback + def link_callback(location, **kwargs): + return f"Navigate to: {location}" + + link = Link(href, link_type, link_callback, title=title) + link_font = self.font_stack[-1].with_colour((0, 0, 255)).with_decoration(TextDecoration.UNDERLINE) + + # For now, just add the link text with link styling + link_text = attributes.get('title', href) + renderable_link = RenderableLink(link, link_text, link_font) + container.add_child(renderable_link) + + elif tag_name == 'img': + # Images + src = attributes.get('src', '') + alt = attributes.get('alt', 'Image') + width = attributes.get('width') + height = attributes.get('height') + + if src: + # Resolve relative URLs + if self.base_url and not src.startswith(('http://', 'https://')): + if os.path.isdir(self.base_url): + src = os.path.join(self.base_url, src) + else: + src = urljoin(self.base_url, src) + + try: + # Create abstract image + from pyWebLayout.abstract.block import Image as AbstractImage + abstract_img = AbstractImage(src, alt) + + # Parse dimensions if provided + max_width = int(width) if width and width.isdigit() else None + max_height = int(height) if height and height.isdigit() else None + + renderable_img = RenderableImage(abstract_img, max_width, max_height) + container.add_child(renderable_img) + + except Exception as e: + # Add error text if image fails to load + error_text = Text(f"[Image Error: {alt}]", Font(colour=(255, 0, 0))) + container.add_child(error_text) + + elif tag_name == 'br': + # Line breaks - add some vertical space + spacer = Box((0, 0), (1, 10)) + container.add_child(spacer) + + elif tag_name == 'p': + # Paragraphs - add some vertical space + spacer = Box((0, 0), (1, 5)) + container.add_child(spacer) + + elif tag_name in ['div', 'span']: + # Generic containers - just continue parsing + pass + + +class BrowserWindow: + """Main browser window using Tkinter""" + + def __init__(self): + self.root = tk.Tk() + self.root.title("pyWebLayout HTML Browser") + self.root.geometry("900x700") + + self.current_page = None + self.history = [] + self.history_index = -1 + + self.setup_ui() + + def setup_ui(self): + """Setup the user interface""" + # Create main frame + main_frame = ttk.Frame(self.root) + main_frame.pack(fill=tk.BOTH, expand=True, padx=5, pady=5) + + # Navigation frame + nav_frame = ttk.Frame(main_frame) + nav_frame.pack(fill=tk.X, pady=(0, 5)) + + # Navigation buttons + self.back_btn = ttk.Button(nav_frame, text="←", command=self.go_back, state=tk.DISABLED) + self.back_btn.pack(side=tk.LEFT, padx=(0, 5)) + + self.forward_btn = ttk.Button(nav_frame, text="→", command=self.go_forward, state=tk.DISABLED) + self.forward_btn.pack(side=tk.LEFT, padx=(0, 5)) + + self.refresh_btn = ttk.Button(nav_frame, text="⟳", command=self.refresh) + self.refresh_btn.pack(side=tk.LEFT, padx=(0, 10)) + + # Address bar + ttk.Label(nav_frame, text="URL:").pack(side=tk.LEFT) + self.url_var = tk.StringVar() + self.url_entry = ttk.Entry(nav_frame, textvariable=self.url_var, width=50) + self.url_entry.pack(side=tk.LEFT, fill=tk.X, expand=True, padx=(5, 5)) + self.url_entry.bind('', self.navigate_to_url) + + self.go_btn = ttk.Button(nav_frame, text="Go", command=self.navigate_to_url) + self.go_btn.pack(side=tk.LEFT, padx=(0, 10)) + + # File operations + self.open_btn = ttk.Button(nav_frame, text="Open File", command=self.open_file) + self.open_btn.pack(side=tk.LEFT) + + # Content frame with scrollbars + content_frame = ttk.Frame(main_frame) + content_frame.pack(fill=tk.BOTH, expand=True) + + # Create canvas with scrollbars + self.canvas = tk.Canvas(content_frame, bg='white') + + v_scrollbar = ttk.Scrollbar(content_frame, orient=tk.VERTICAL, command=self.canvas.yview) + h_scrollbar = ttk.Scrollbar(content_frame, orient=tk.HORIZONTAL, command=self.canvas.xview) + + self.canvas.configure(yscrollcommand=v_scrollbar.set, xscrollcommand=h_scrollbar.set) + + v_scrollbar.pack(side=tk.RIGHT, fill=tk.Y) + h_scrollbar.pack(side=tk.BOTTOM, fill=tk.X) + self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) + + # Status bar + self.status_var = tk.StringVar(value="Ready") + status_bar = ttk.Label(main_frame, textvariable=self.status_var, relief=tk.SUNKEN) + status_bar.pack(fill=tk.X, pady=(5, 0)) + + # Bind mouse events + self.canvas.bind('', self.on_click) + self.canvas.bind('', self.on_mouse_move) + + # Load default page + self.load_default_page() + + def load_default_page(self): + """Load a default welcome page""" + html_content = """ + + pyWebLayout Browser - Welcome + +

Welcome to pyWebLayout Browser

+

This is a simple HTML browser built using pyWebLayout components.

+ +

Features:

+
    +
  • Basic HTML rendering
  • +
  • Text formatting (bold, italic, underline)
  • +
  • Headers (H1-H6)
  • +
  • Links (clickable)
  • +
  • Images
  • +
  • Forms (basic support)
  • +
+ +

Try these features:

+

Bold text, italic text, and underlined text

+ +

Sample link: Visit Example.com

+ +

File Operations

+

Use the "Open File" button to load local HTML files.

+ +

Or enter a URL in the address bar above.

+ + + """ + + parser = HTMLParser() + self.current_page = parser.parse_html_string(html_content) + self.render_page() + self.status_var.set("Welcome page loaded") + + def navigate_to_url(self, event=None): + """Navigate to the URL in the address bar""" + url = self.url_var.get().strip() + if not url: + return + + self.status_var.set(f"Loading {url}...") + self.root.update() + + try: + if url.startswith(('http://', 'https://')): + # Web URL + response = requests.get(url, timeout=10) + response.raise_for_status() + html_content = response.text + + parser = HTMLParser() + self.current_page = parser.parse_html_string(html_content, url) + + elif os.path.isfile(url): + # Local file + parser = HTMLParser() + self.current_page = parser.parse_html_file(url) + + else: + # Try to treat as a local file path + if not url.startswith('file://'): + url = 'file://' + os.path.abspath(url) + + file_path = url.replace('file://', '') + if os.path.isfile(file_path): + parser = HTMLParser() + self.current_page = parser.parse_html_file(file_path) + else: + raise FileNotFoundError(f"File not found: {file_path}") + + # Add to history + self.add_to_history(url) + self.render_page() + self.status_var.set(f"Loaded {url}") + + except Exception as e: + self.status_var.set(f"Error loading {url}: {str(e)}") + messagebox.showerror("Error", f"Failed to load {url}:\n{str(e)}") + + def open_file(self): + """Open a local HTML file""" + file_path = filedialog.askopenfilename( + title="Open HTML File", + filetypes=[("HTML files", "*.html *.htm"), ("All files", "*.*")] + ) + + if file_path: + self.url_var.set(file_path) + self.navigate_to_url() + + def render_page(self): + """Render the current page to the canvas""" + if not self.current_page: + return + + # Clear canvas + self.canvas.delete("all") + + # Render the page to PIL Image + page_image = self.current_page.render() + + # Convert to PhotoImage + self.photo = ImageTk.PhotoImage(page_image) + + # Display on canvas + self.canvas.create_image(0, 0, anchor=tk.NW, image=self.photo) + + # Update scroll region + self.canvas.configure(scrollregion=self.canvas.bbox("all")) + + # Store page elements for interaction + self.page_elements = self._get_clickable_elements(self.current_page) + + def _get_clickable_elements(self, container, offset=(0, 0)) -> List[Tuple]: + """Get list of clickable elements with their positions""" + elements = [] + + if hasattr(container, '_children'): + for child in container._children: + if hasattr(child, '_origin'): + child_offset = (offset[0] + child._origin[0], offset[1] + child._origin[1]) + + # Check if element is clickable + if isinstance(child, (RenderableLink, RenderableButton)): + elements.append((child, child_offset, child._size)) + + # Recursively check children + if hasattr(child, '_children'): + elements.extend(self._get_clickable_elements(child, child_offset)) + + return elements + + def on_click(self, event): + """Handle mouse clicks on the canvas""" + # Convert canvas coordinates to image coordinates + canvas_x = self.canvas.canvasx(event.x) + canvas_y = self.canvas.canvasy(event.y) + + # Check if click is on any clickable element + for element, offset, size in self.page_elements: + element_x, element_y = offset + element_w, element_h = size + + if (element_x <= canvas_x <= element_x + element_w and + element_y <= canvas_y <= element_y + element_h): + + # Handle the click + if isinstance(element, RenderableLink): + result = element._callback() + if result: + self.status_var.set(result) + # For external links, open in system browser + if element._link.link_type == LinkType.EXTERNAL: + webbrowser.open(element._link.location) + + elif isinstance(element, RenderableButton): + result = element._callback() + if result: + self.status_var.set(f"Button clicked: {result}") + + break + + def on_mouse_move(self, event): + """Handle mouse movement for hover effects""" + # Convert canvas coordinates to image coordinates + canvas_x = self.canvas.canvasx(event.x) + canvas_y = self.canvas.canvasy(event.y) + + # Check if mouse is over any clickable element + cursor = "arrow" + for element, offset, size in self.page_elements: + element_x, element_y = offset + element_w, element_h = size + + if (element_x <= canvas_x <= element_x + element_w and + element_y <= canvas_y <= element_y + element_h): + cursor = "hand2" + break + + self.canvas.configure(cursor=cursor) + + def add_to_history(self, url): + """Add URL to navigation history""" + # Remove any forward history + self.history = self.history[:self.history_index + 1] + + # Add new URL + self.history.append(url) + self.history_index = len(self.history) - 1 + + # Update navigation buttons + self.update_nav_buttons() + + def update_nav_buttons(self): + """Update the state of navigation buttons""" + self.back_btn.configure(state=tk.NORMAL if self.history_index > 0 else tk.DISABLED) + self.forward_btn.configure(state=tk.NORMAL if self.history_index < len(self.history) - 1 else tk.DISABLED) + + def go_back(self): + """Navigate back in history""" + if self.history_index > 0: + self.history_index -= 1 + url = self.history[self.history_index] + self.url_var.set(url) + self.navigate_to_url() + + def go_forward(self): + """Navigate forward in history""" + if self.history_index < len(self.history) - 1: + self.history_index += 1 + url = self.history[self.history_index] + self.url_var.set(url) + self.navigate_to_url() + + def refresh(self): + """Refresh the current page""" + if self.current_page: + current_url = self.url_var.get() + if current_url: + self.navigate_to_url() + else: + self.load_default_page() + + def run(self): + """Start the browser""" + self.root.mainloop() + + +def main(): + """Main function to run the browser""" + print("Starting pyWebLayout HTML Browser...") + + try: + browser = BrowserWindow() + browser.run() + except Exception as e: + print(f"Error starting browser: {e}") + import traceback + traceback.print_exc() + + +if __name__ == "__main__": + main() diff --git a/pyWebLayout/concrete/text.py b/pyWebLayout/concrete/text.py index e399b49..cddb192 100644 --- a/pyWebLayout/concrete/text.py +++ b/pyWebLayout/concrete/text.py @@ -43,13 +43,35 @@ class Text(Renderable, Queriable): # The bounding box is (left, top, right, bottom) try: bbox = font.getbbox(self._text) - self._width = bbox[2] - bbox[0] - self._height = bbox[3] - bbox[1] + # Width is the difference between right and left + self._width = max(1, bbox[2] - bbox[0]) + # Height needs to account for potential negative top values + # Use the full height from top to bottom, ensuring positive values + top = min(0, bbox[1]) # Account for negative ascenders + bottom = max(bbox[3], bbox[1] + font.size) # Ensure minimum height + self._height = max(font.size, bottom - top) self._size = (self._width, self._height) + + # Store the offset for proper text positioning + self._text_offset_x = max(0, -bbox[0]) + self._text_offset_y = max(0, -top) + except AttributeError: # Fallback for older PIL versions - self._width, self._height = font.getsize(self._text) - self._size = (self._width, self._height) + try: + self._width, self._height = font.getsize(self._text) + # Add some padding to prevent cropping + self._height = max(self._height, int(self._style.font_size * 1.2)) + self._size = (self._width, self._height) + self._text_offset_x = 0 + self._text_offset_y = 0 + except: + # Ultimate fallback + self._width = len(self._text) * self._style.font_size // 2 + self._height = int(self._style.font_size * 1.2) + self._size = (self._width, self._height) + self._text_offset_x = 0 + self._text_offset_y = 0 @property def text(self) -> str: @@ -123,8 +145,10 @@ class Text(Renderable, Queriable): if self._style.background and self._style.background[3] > 0: # If alpha > 0 draw.rectangle([(0, 0), self._size], fill=self._style.background) - # Draw the text - draw.text((0, 0), self._text, font=self._style.font, fill=self._style.colour) + # Draw the text using calculated offsets to prevent cropping + text_x = getattr(self, '_text_offset_x', 0) + text_y = getattr(self, '_text_offset_y', 0) + draw.text((text_x, text_y), self._text, font=self._style.font, fill=self._style.colour) # Apply any text decorations self._apply_decoration(draw) diff --git a/test_page.html b/test_page.html new file mode 100644 index 0000000..ac855a1 --- /dev/null +++ b/test_page.html @@ -0,0 +1,46 @@ + + + + Test Page for pyWebLayout Browser + + +

pyWebLayout Browser Test Page

+

Images

+

Here's a sample image:

+ Sample Image +

Text Formatting

+

This is a paragraph with bold text, italic text, and underlined text.

+ +

Links

+

Here are some test links:

+ + +

Headers

+

H1 Header

+

H2 Header

+

H3 Header

+

H4 Header

+
H5 Header
+
H6 Header
+ +

Line Breaks and Paragraphs

+

This is the first paragraph.

+
+

This is the second paragraph after a line break.

+ +

Section 1

+

This is the content of section 1. You can link to this section using the internal link above.

+ +

Images

+

Here's a sample image:

+ Sample Image + +

Mixed Content

+

This paragraph contains bold and italic text, as well as an external link.

+ +

Strong text and emphasized text should also work.

+ + diff --git a/tests/data/Kimi Räikkönen - Wikipedia.html b/tests/data/Kimi Räikkönen - Wikipedia.html new file mode 100644 index 0000000..d1fd221 --- /dev/null +++ b/tests/data/Kimi Räikkönen - Wikipedia.html @@ -0,0 +1,6892 @@ + + + + +Kimi Räikkönen - Wikipedia + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Jump to content +
+
+
+ + + + +
+
+ + + + + +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+ +

Kimi Räikkönen

+ + +
+
+
+
+ +
+
+ + + +
+
+
+
+
+ + +
+
+
+
+
+
+ +
From Wikipedia, the free encyclopedia
+
+
+ + +
+ +

+ +

+
Kimi Räikkönen
Räikkönen at the 2019 Austrian Grand Prix
Born
Kimi-Matias Räikkönen

(1979-10-17) 17 October 1979 (age 45)
Espoo, Uusimaa, Finland
Spouses
+
+
+
(m. 2004; div. 2014)
+
+
Minna-Mari Virtanen
(m. 2016)
+
Children3
Formula One World Championship career
NationalityFinland Finnish
Active years20012009, 20122021
TeamsSauber, McLaren, Ferrari, Lotus, Alfa Romeo
Car number7
Entries353 (349 starts)
Championships1 (2007)
Wins21
Podiums103
Career points1873
Pole positions18
Fastest laps46
First entry2001 Australian Grand Prix
First win2003 Malaysian Grand Prix
Last win2018 United States Grand Prix
Last entry2021 Abu Dhabi Grand Prix
+
World Rally Championship record
Active years20092011
Co-driverFinland Kaj Lindström
Teams
Rallies21
Championships0
Rally wins0
Podiums0
Stage wins1
Total points59
First rally2009 Rally Finland
Last rally2011 Wales Rally GB
+
+

Kimi-Matias Räikkönen (Finnish pronunciation: [ˈkimi ˈmɑtiɑs ˈræi̯kːønen]; born 17 October 1979), nicknamed "the Iceman", is a Finnish racing driver who competed in Formula One between 2001 and 2021[a] for Sauber, McLaren, Ferrari, Lotus, and Alfa Romeo. Räikkönen won the 2007 Formula One World Championship while driving for Ferrari; he finished second overall twice and third three times. Räikkönen is the most successful Finnish Formula One driver by several metrics,[b] and has the seventh-most podium finishes (103), third-most fastest laps (46), and third-most race starts (349) in Formula One history. He is known for his reserved personality and reluctance to participate in public relations events. +

Räikkönen entered Formula One as a regular driver for Sauber-Petronas in 2001, having previously competed in just 23 car races. He joined McLaren-Mercedes in 2002, and quickly established himself as a title contender by finishing runner-up in the championship to Michael Schumacher in 2003, and Fernando Alonso + in 2005. Räikkönen's time at McLaren was marred by a succession of +unreliable cars, prompting a move to Ferrari in 2007. This change saw +him crowned Formula One World Drivers' Champion in his first season, +pipping both McLaren drivers—Lewis Hamilton + and Alonso—to the title by one point. In 2008, he equalled the record +for the greatest number of fastest laps in a season for the second time. +

Räikkönen left both Scuderia Ferrari and the sport after the 2009 season, his sole victory that year having come in that season's Belgian Grand Prix due to driving an uncompetitive Ferrari F60. On his return to Formula One, Räikkönen drove for Lotus in 2012 and 2013, + scoring the team's only victories. In September 2013, Ferrari announced + his re-signing on a two-year contract, beginning in the 2014 season. This contract was subsequently extended until the end of the 2018 season. During his second Ferrari stint, Räikkönen scored 26 podiums, two pole positions, and a victory at the 2018 United States Grand Prix, 113 Grands Prix after his last victory. + Räikkönen finished among the top four overall in the championship on +multiple occasions during his second Ferrari stint, finishing his total +eight-year long Ferrari career with a third place in the 2018 +championship. Räikkönen left Ferrari at the end of the 2018 season, and +moved to Alfa Romeo Racing on a two-year contract, later extending it until the end of 2021, after which he retired from Formula One. +

In the World Rally Championship, Räikkönen drove Citroën cars for their Junior Team in 2010 and for ICE 1 Racing in 2011, + managing to beat some more experienced rally drivers with a best result + of fifth, a stage win and 10th in the championship in both seasons. +Concurrently, Räikkönen also competed in NASCAR, making one-off appearances in the Truck Series and the Nationwide Series in 2011. Since retiring from Formula One, he has made appearances in the Cup Series in 2022 and 2023. +

+ +

Career

[edit]
+ +

Early career

[edit]
+

Kimi-Matias Räikkönen was born on 17 October 1979 in Espoo, Finland.[2] He had a long line of success in karting from the age of 10. His first race outside Finland was in Monaco + when he was 15 years old. During the race, the steering wheel broke, +but he continued, informing his mechanic by frantically waving the +steering wheel in the air on the home straight. Räikkönen's next Monaco +race was also memorable; he was thrown on the wrong side of the safety +fence in a first lap collision but continued driving until running out +of road. Undeterred, he lifted his kart back onto the track and +continued to race. His mechanic thought Räikkönen had retired, but he +eventually caught up with the other competitors and finished third.[3] + In 1998 he was first in the Nordic Championship at Varna in Norway. In +1999, Räikkönen placed second in a round of the European Formula Super A + championship for the Dutch PDB Racing Team – run by 1980 world +champion Peter de Bruijn – utilising a Gillard chassis. He also +competed in the Formula Ford Euro Cup. By the age of twenty, he had won +the British Formula Renault winter series of 1999, winning the first four races of the year. In 2000, he won seven out of ten events in the Formula Renault UK Championship. Combined, over these two series of Formula Renault, he won 13 out of 23 events – a 57% win rate. +

+

Formula One (2001–2009)

[edit]
+

Sauber (2001)

[edit]
+
Sauber C20 of Räikkönen at Hangar-7
+

On the basis of these results, Peter Sauber gave the Finn a test with the Sauber Formula One team in September 2000 at the Mugello Circuit.[4] On just the second day of the test, Räikkönen lapped half a second quicker than regular driver Pedro Diniz. Sauber had kept the news of his test quiet to distract potential competitors, internally referring to Räikkönen as "Eskimo".[5] After further tests in Jerez and Barcelona, Sauber signed Räikkönen for the 2001 season. However, some critics (including FIA president Max Mosley) voiced concerns over granting an F1 Super Licence + to such an inexperienced driver; Räikkönen had only 23 car races to his + credit. He was nevertheless granted his licence from the Fédération Internationale de l'Automobile (FIA) after a performance delivery promise by his team boss, Peter Sauber,[6] and scored a championship point in his debut at the 2001 Australian Grand Prix. Reportedly, Räikkönen was asleep 30 minutes before the race.[7] +

Räikkönen had a solid debut year, achieving four points-scoring +finishes and eight finishes in the top eight. Completing the year with 9 + points, Räikkönen, along with teammate Nick Heidfeld, helped Sauber to what was then its best result of fourth place in the Constructors' Championship. +

+

McLaren (2002–2006)

[edit]
+
Räikkönen at the United States Grand Prix in 2002
+

Räikkönen, long linked to Sauber's engine supplier Ferrari, sufficiently impressed McLaren to earn a race seat in Ron Dennis's team for 2002, taking the seat left vacant by double-world champion, mentor and fellow Finn Mika Häkkinen. + The decision to choose Räikkönen over his Sauber teammate, the Mercedes + linked Nick Heidfeld, was heavily influenced by Häkkinen who repeatedly + told Ron Dennis "If you wanna win, get the Finn."[8] +

+
2002
[edit]
+

Räikkönen scored a third-place podium finish in his first race with McLaren at the 2002 Australian Grand Prix. + Although McLaren suffered many engine failures in 2002, Räikkönen +scored 24 points and four podiums, and held his own against teammate David Coulthard. Räikkönen came close to winning his first Grand Prix in France but went off track at the Adelaide hairpin with a handful of laps to go, because of oil from the blown engine of Allan McNish's Toyota on the circuit.[9] + He finished the race second. He finished the season in sixth place, one + place behind his teammate. Together they achieved a solid third place +for McLaren in the Constructors' Championship. +

+
2003
[edit]
+

At the season-opening Australian Grand Prix, + Räikkönen qualified 15th in the spare car. In the race he took the lead + before being caught speeding in the pitlane, caused by a software +glitch in the car's electronic system. Räikkönen held off Michael Schumacher to finish third. In Malaysia, Räikkönen won his first race[9] after starting from seventh on the grid. During the next round in Brazil, + Räikkönen was declared the winner after the race was stopped on lap 55. + According to the rules the winner is decided by the race order as of +two laps before the race stopped, i.e. lap 53. However a week later, +evidence emerged that Giancarlo Fisichella + was on lap 56 when the race stopped, therefore the winner was decided +by the order at lap 54. This granted the win to Fisichella, with +Räikkönen second. +

As other teams improved their cars, McLaren, who were still using the 2002 chassis, began to falter in terms of race speed.[citation needed] However, Räikkönen finished second at Imola. At the Spanish Grand Prix, Räikkönen made a mistake in qualifying and had to start from the back of the grid. At the start of the race, he collided with Antônio Pizzonia, causing Räikkönen to retire from the race. +

While having engine problems, Räikkönen successfully defended second position from Rubens Barrichello in Austria. He came extremely close to winning in Monaco, but lost by less than a second to Juan Pablo Montoya. Starting from the pitlane in Canada + after he went off track during qualifying with understeer, Räikkönen +finished sixth, more than a minute adrift of race winner Michael +Schumacher. +

+
Räikkönen at the 2003 French Grand Prix
+

At the European Grand Prix, + Räikkönen took pole, and controlled the race from the start until his +engine failed on lap 25. Title rival Michael Schumacher finished fifth +taking 4 points advantage from Räikkönen. Räikkönen finished fourth in France behind Schumacher, but finished one point ahead of him with a third-place finish at the British Grand Prix. Räikkönen failed to finish the German Grand Prix after being involved in an accident at the first corner with Ralf Schumacher and Rubens Barrichello. Räikkönen finished second at the next race, the Hungarian Grand Prix. +

Before the Italian Grand Prix, the FIA were tipped-off by rivals Ferrari about an illegality in the Michelin tyre's tread width.[10] + Michelin were forced to bring in narrower tyres. Räikkönen eventually +finished fourth in the race, losing five championship points to race +winner Michael Schumacher. +

Räikkönen took pole at the United States Grand Prix, but Michael Schumacher won the race with Räikkönen finishing second. After qualifying eighth in Japan, + Räikkönen finished second while Michael Schumacher just slipped into +the points to win his sixth World Championship. Montoya's retirement +during the race also meant that Räikkönen finished second in the +championship, just two points behind Schumacher. The team also narrowly +lost second place in the Constructors' Championship, finishing third, +two points behind runners-up Williams, and 12 points behind Ferrari. +

+
2004
[edit]
+
The McLaren mechanics push Räikkönen's MP4-19 into the garage during qualifying at the 2004 United States Grand Prix.
+

The 2004 + season began with Räikkönen only claiming a single point in the first +seven races. His McLaren, especially the Mercedes engine, suffered +repeated breakdowns, allowing him to complete just two of the first +seven events. After seven rounds Räikkönen had only one point to Michael + Schumacher's 60. In Canada, Räikkönen made 5 pit-stops but was classified fifth since the Williams-BMWs and the two Toyotas were disqualified. At the United States Grand Prix, Räikkönen finished sixth. +

At the French Grand Prix, McLaren rolled out the new MP4-19B. Räikkönen finished seventh behind his team-mate, David Coulthard. At Silverstone, + Räikkönen took pole and went on to finish second behind Michael +Schumacher. The McLarens qualified on the second row of the grid in Germany. Räikkönen lost his rear wing on lap 13 of the race while following race leader Michael Schumacher. He retired again from the Hungarian Grand Prix after starting from 10th place on the grid, again on lap 13. At the Belgian Grand Prix, + Räikkönen qualified 10th, but took the lead on lap 11 and held onto it +to take McLaren's only win of the season. He also took the fastest lap. +The next weekend at Monza, Räikkönen again retired on lap 13, this time owing to electrical problems. At the next race in China, he finished third, only 1.4 seconds behind race winner Rubens Barrichello. +

At the Japanese Grand Prix, Räikkönen was shunted by Felipe Massa on the first lap of the race, which caused him handling problems. He finished sixth, 2.5 seconds behind Fernando Alonso. At the last race of the season, the Brazilian Grand Prix, + he battled Montoya for the lead and finished 1 second behind him in +second. Räikkönen ended the year seventh, with 45 points, only one +behind sixth placed Jarno Trulli, and four podiums. +

Despite the disappointment of the 2004 season, Räikkönen was +still seen as one of the rising stars of the sport. Many pundits +predicted 2005 to be filled with great on-track battles from a resurgent + team. He was also referred to by Ross Brawn and Jean Todt + as a driver whom Ferrari might consider in the future. In early +November 2004, Räikkönen announced his intention to create a racing team + with his manager Steve Robertson, to be entitled Räikkönen Robertson Racing (otherwise known as "Double R"), which would compete in Formula Three in 2005. +

+
2005
[edit]
+
Räikkönen at the 2005 Canadian Grand Prix
+
Räikkönen at the 2005 United States Grand Prix
+

Räikkönen's start to the 2005 + season was less than perfect. The car was reported to be too soft on +its Michelin tyres, with the result that it was not generating enough +heat to post competitive qualifying times.[11] + The best qualifying position that a McLaren driver could manage in the +first 3 races was sixth. Räikkönen compounded this by stalling on the +grid of the first race of the season, the Australian Grand Prix, and ending the race with just a point. He looked set for a podium in Malaysia until a faulty tyre valve failed and dropped him out of the points. Bahrain saw him achieve his first podium of the season with a third place behind Renault's Alonso and the Toyota of Jarno Trulli. +

Räikkönen then achieved three consecutive poles in San Marino, Spain, and a win after a safety car strategy call by Neil Martin at Monaco. + An almost certain win was denied at Imola after a driveshaft failure, +but he won the other two races, putting him within 22 points of leader +Alonso. He registered strong, comfortable wins at Barcelona, beating +Alonso, and at Monte Carlo, never dropping his lead in both races. At +the European Grand Prix, + Räikkönen flat-spotted his right front tyre, causing his suspension to +fail while he led on the final lap, handing a further ten points to his +rival Alonso. This incident, in part, resulted in a rules clarification +allowing teams to change a flat-spotted tyre without punishment.[12] +

Alonso's first major mistake of the 2005 season handed the Canadian Grand Prix to Räikkönen. The following weekend saw all the Michelin teams, including McLaren, withdraw from the United States Grand Prix for safety reasons. At the French Grand Prix, + Räikkönen suffered a ten-place grid-penalty following the replacement +of his new specification Mercedes Benz engine which failed in Friday +practice. Räikkönen, putting in what Ron Dennis called his best ever +qualifying lap,[13] qualified third (demoted to 13th) with a significant fuel load. He finished second behind Alonso. A week later at the British Grand Prix, + Räikkönen suffered another Mercedes engine failure due to an oil leak; +his second-place qualifying place became 12th. He claimed third place in + the race. +

In Germany, + Räikkönen was comfortably in the lead having dominated all weekend, but + suffered a hydraulics failure, handing victory and a further 10 points +to Alonso. It was his third retirement while leading a race during the +season. At the opening of the Hungarian Grand Prix, + though saying he was very comfortable at McLaren, Räikkönen raised the +possibility that he might leave McLaren when his contract expired in +2006, if reliability issues were not solved.[14] He went on to take the chequered flag with a convincing victory over Michael Schumacher, albeit after McLaren teammate Montoya retired. +

Räikkönen won the Hungarian Grand Prix from the most handicapped +qualifying position, having had to do his qualifying run first on the +notoriously dusty and dirty track because of his early retirement a week + earlier at Hockenheim. No other driver had previously managed this +feat. Räikkönen then became the first ever winner of the Turkish Grand Prix. Two weeks later at the Italian Grand Prix, + Räikkönen's pole position was taken from him as he received another +10-position grid penalty for an engine change. He eventually finished +fourth. +

He went on to win for the second year in a row in Belgium at Spa-Francorchamps. The following race, the Brazilian Grand Prix, saw Alonso clinch the Drivers' Championship after finishing third behind Montoya and Räikkönen. In the penultimate race of the year, at the Suzuka Circuit + in Japan, Räikkönen took his seventh victory of the season after +starting 17th on the grid. The win was secured when he overtook Renault +driver Fisichella (who had started third on the grid, and had led most +of the race) on the final lap – which Formula One journalist Peter Windsor thought the most impressive move of the race.[15] +

Räikkönen received the F1 Racing "Driver of the Year" accolade,[16] and the Autosport "International Racing Driver of the Year" award.[17] +

+
2006
[edit]
+
Räikkönen testing for McLaren at Valencia in early 2006
+

In Bahrain, starting from 22nd place on the grid, he drove through the field, ending third behind Alonso and Michael Schumacher. In Malaysia, Räikkönen was hit from behind by Red Bull Racing's Christian Klien on the first lap and retired. +

Having started the year clearly behind Renault, McLaren improved in Australia, + where Räikkönen finished second after flat spotting a tyre and losing a + wing end-plate. Chasing down Alonso during the final stages of the +race, he set the fastest lap of the race on the final lap, finishing +only 1.8 seconds behind the Spaniard. At the San Marino Grand Prix, + a bad choice of strategy and a mistake from Räikkönen in qualifying saw + the McLarens get caught in traffic in the early part of the race +allowing Michael Schumacher and Alonso to get away at the front. +Räikkönen eventually finished fifth, with teammate Montoya ahead in +third place. McLaren team boss Ron Dennis blamed what he deemed to be +Räikkönen's poor performance for the team's failure to finish in the top + two in the race.[18] +

+
Räikkönen testing for McLaren at Silverstone in April 2006
+

At the Spanish Grand Prix, + Räikkönen qualified ninth. However, he managed to get up to fifth place + on the first lap of the race. He retained this position for most of the + race, finishing in fifth place. A few days after the Spanish Grand +Prix, he admitted that he had no chance of winning the 2006 +Championship.[19] In Monaco, + Räikkönen qualified third. During the race he got up to second and kept + pace with Alonso, however he retired during a safety car period after a + failed heat shield led to a wiring loom inside the car catching fire. +After his retirement from this race, he was seen on live TV walking +along the Monaco sidewalks still wearing his helmet, before going +straight to the harbour instead of the pits and climbing aboard a yacht. +

The British Grand Prix + at Silverstone saw Räikkönen qualify second behind Alonso and in front +of Michael Schumacher. The running order was Alonso, Räikkönen, +Schumacher until the second set of pitstops where Räikkönen was demoted +to third by Schumacher, a position he held until the end of the race. In + Canada, Räikkönen achieved another podium. In the United States Grand Prix, his teammate punted him out in an expensive seven car accident. The French Grand Prix saw Räikkönen qualify his car in sixth. His teammate was now former test driver Pedro de la Rosa in place of Montoya. Räikkönen ended the race in fifth. In Germany, Räikkönen qualified on pole. After a battle with Jenson Button, he finished the race for the first time in his career, ending in third place. Another pole came in Hungary, but he collided with Vitantonio Liuzzi after 25 laps, causing his fourth retirement of the season. +

A first turn incident with Scott Speed at the Turkish Grand Prix + led to an exploded tyre and suspension damage. After a tyre change, +Räikkönen's race ended halfway into the next lap when he crashed into +the barrier at turn 4 because of a loss of rear grip. Räikkönen +qualified on pole for the Italian Grand Prix + by 2 thousandths of a second from Michael Schumacher. He led the early +part of the race until the first pitstops where he was passed by +Schumacher. He stayed in second place for the rest of the race. After +the race, Schumacher announced that he would retire at the end of the +season. Later, Ferrari announced that he would be replaced in the 2007 +season by Räikkönen.[20] +

The Chinese Grand Prix saw another retirement for Räikkönen due to throttle problems. His last two Grands Prix, in Japan and Brazil, + did lead to 2 finishes, but he missed the podium on both occasions. +Räikkönen ended his time at McLaren-Mercedes with a fifth place in the +World Drivers' Championship, with McLaren placing third in the World +Constructors' Championship at the end of a winless year. +

Räikkönen's British Formula 3 Championship team Räikkönen Robertson Racing claimed their first major success, with British driver Mike Conway winning the 2006 British F3 International Series title and the prestigious Macau Grand Prix. +

+

Ferrari (2007–2009)

[edit]
+

After the 2006 Italian Grand Prix, + Ferrari announced that Räikkönen had signed a three-year contract with +Scuderia Ferrari for the 2007–2009 seasons. Räikkönen said after the +move that he was very happy with this change of events but wished +McLaren the best of luck in the future. He became the teammate to +Brazilian Felipe Massa, who had been driving for Ferrari since 2006. +

+
2007: World Champion
[edit]
+
Räikkönen driving for Ferrari at the 2007 United States Grand Prix, where he finished fourth
+
Räikkönen won his third race of 2007 at Silverstone.
+

Räikkönen started the season in Australia by taking pole position, setting the fastest lap, and becoming the first driver since Nigel Mansell in 1989 to win his first Grand Prix with Ferrari. +

At the Malaysian Grand Prix, Räikkönen was passed by Lewis Hamilton at the start and remained behind him for the rest of the race, finishing third. In Bahrain, + Räikkönen started from third but was passed by McLaren driver Fernando +Alonso. He eventually regained third position from Alonso and finished +the race third. At the Spanish Grand Prix, + Räikkönen retired after only 10 laps with an electrical problem. This +took him down to fourth position in the Championship, behind team-mate +Felipe Massa. At the Monaco Grand Prix, Räikkönen struck a barrier in qualifying and broke his right front suspension. He started 16th and finished eighth. +

In Canada, Räikkönen qualified fourth and finished fifth, Räikkönen's team-mate Massa was disqualified.[21] At the United States Grand Prix, + Räikkönen qualified fourth, finished fourth and recorded fastest lap of + the race. With ten races in the season left, Räikkönen was 26 points +behind leader Lewis Hamilton in the Drivers' Championship. +

In France, + Räikkönen qualified third, but overtook Hamilton at the first corner of + the race. He subsequently ran second, behind teammate Massa, for much +of the Grand Prix, but overtook the Brazilian during the pit stops and +took his second victory of the season. This was the 11th victory of his +Formula One career and Ferrari's first 1–2 win of the 2007 season.[22] At the British Grand Prix, + Räikkönen qualified in second place, just missing the pole by running +wide in the last corner. In the race, he again took the lead through pit + stops, first overtaking Lewis Hamilton midway through the race and then + putting in fast laps as Alonso pitted for the second time in the +closing stages to pass him. Räikkönen led to the end of the race.[23] +

At the European Grand Prix, + Räikkönen captured his second pole position of the season but retired +from the race, run in heavy rain, with a problem with the hydraulics of +the car. In Hungary, Räikkönen qualified his car in fourth place, but started from third after Alonso was penalised. In the race he overtook Nick Heidfeld + at the start and pressured Hamilton until the end, but had to settle +for second, being 0.7s behind Hamilton. He set the fastest lap time on +the last lap of the race, commenting after the race: "I was so bored +behind Hamilton, I wanted to see how quick I could have been". In Turkey, + Räikkönen missed pole position after making a mistake in the final +sector of his fast lap, which left him third on the grid. On race day, +he overtook Hamilton in the first corner and took second place, which he + kept to the end of the race. +

At Monza's + third practice session, Räikkönen crashed into the tyre wall before +entering the Ascari chicane. He qualified in fifth place, and raced in +the Ferrari reserve car while suffering from a neck problem. The Ferrari + team employed an unusual one-stop strategy, which left him third after +Hamilton passed him late in the race on fresh tyres.[24] At Spa-Francorchamps, Räikkönen's favourite circuit,[25] + he secured pole position again and took his fourth victory of the +season. Massa finished second, Alonso third and Hamilton fourth. This +was also Räikkönen's third consecutive Spa win, which placed him among +six other drivers with three or more Spa wins. +

+
Räikkönen at Spa, where he won his fourth race of the year
+

At the Fuji Speedway in Japan, + the only new track on the 2007 calendar, Räikkönen qualified in third +position, while Hamilton took pole and Alonso second. In an extremely +wet race, which saw the first 19 laps run behind the safety car, + both Räikkönen and teammate Massa were badly affected by having to +change to extreme wet tyres during the early stages, because the FIA's +tyre-rule notification arrived late at Ferrari.[26] Towards the end of the race, Räikkönen moved through the field to third place, but could not pass his fellow countryman Heikki Kovalainen for second. +

At the Chinese Grand Prix in Shanghai, + Räikkönen dominated the whole weekend with fastest laps in the +free-practice sessions. In qualifying, Hamilton took pole position with a + lighter fuel load, while Räikkönen qualified second and Massa third. +There was light rainfall at the beginning of the race which prompted the + cars to start on intermediate tyres. After the first round of pit stops + Hamilton lost grip as his tyres suffered graining, and Räikkönen +overtook him. Hamilton retired after sliding into a gravel trap in the +pit lane. Räikkönen took his fifth win of the season, that revived his +title hopes before the last race of the season. This was also the 200th +race win and 600th podium in a World Championship event for Ferrari as a manufacturer (as a team, their 200th win was achieved at the next race in Brazil, and their 600th podium was achieved in 2008 Bahrain Grand Prix). + Räikkönen moved to seven and three points behind Hamilton and Alonso in + the Drivers' Championship, respectively, going into the last race in +Brazil, the first three-way title battle in the final race of the season + since 1986. +

+
Räikkönen celebrating victory and the world title at the 2007 Brazilian Grand Prix
+

Räikkönen took the 2007 Formula One Drivers' title with victory in the Brazilian Grand Prix at Interlagos, + in an incident-packed race. Massa had taken pole, followed by Hamilton, + Räikkönen, and Alonso. At the start of the race Räikkönen passed +Hamilton on the outside and lined up behind Massa. Alonso shortly +afterwards passed Hamilton, who fell progressively down the order. +Räikkönen eventually overtook Massa, who was already eliminated from +contention for the Drivers' Championship in the Japanese Grand Prix. +Massa's strategy for the second round of pit stops ensured Räikkönen +kept the lead. Räikkönen went on to take the chequered flag, + which handed him the crown by a single point from Hamilton and Alonso. +Championship leader Hamilton eventually finished the race in seventh +place, while defending champion Alonso managed third. +

While Räikkönen had only one point more than Alonso and Hamilton +at the end of the season, he had the most victories (six compared to +four by each McLaren driver).[27] +

Räikkönen's Drivers' Championship was briefly put into doubt when + race stewards began an investigation after identifying possible fuel +irregularities in the cars of Nico Rosberg, Robert Kubica and Nick Heidfeld + following post-race inspection. Their disqualification and a race +reclassification would have seen Hamilton lifted from seventh to fourth +in the race result.[28][29] However the race stewards decided that no sanctions would be given, meaning the results would stand.[30] McLaren appealed the decision,[31] however the FIA Court of Appeal rejected their appeal on 16 November 2007 thus confirming Räikkönen as the champion.[32] As of the end of the 2024 Formula One season, Räikkönen's 2007 title triumph remains the most recent World Drivers' Championship win for a Scuderia Ferrari driver. +

In January 2008, Räikkönen was beaten by Tero Pitkämäki in the race for the annually chosen Finnish Sports Personality of the Year award; finishing in second place in the competition.[33] +

+
2008
[edit]
+

After a disappointing first race in Australia, + where Räikkönen eventually finished eighth after qualifying only 15th +due to a mechanical problem, he won his first race of the 2008 season at the Malaysian Grand Prix, finishing ahead of Robert Kubica and Heikki Kovalainen. His victory in Kuala Lumpur came on the fifth anniversary of his maiden victory at the same track. In Bahrain, + Räikkönen qualified in fourth on the grid. He moved up to second place +by the third lap and finished in that position, behind his team-mate Felipe Massa. He also secured the lead in the championship. +

+
Räikkönen took his first win of 2008 at the Malaysian Grand Prix.
+

In Spain, + Räikkönen took the 15th pole of his career and his first of the 2008 +season. He managed to take his second race win of the season and the +fastest lap of the race. Räikkönen overtook Mika Häkkinen + in the list of total number of fastest laps and also in terms of podium + finishes, making him the highest-ranked Finnish driver in these +statistics. +

At the Turkish Grand Prix, + Räikkönen qualified in fourth place. Despite damaging his front wing in + the early stages after a collision with fellow Finn Heikki Kovalainen, +Räikkönen was still able to set the fastest lap and finish in third +place. +

In Monaco, + Räikkönen qualified in second behind teammate Felipe Massa. Räikkönen +stayed second behind Massa until he was given a drive-through penalty +for an infringement by the team on his car and dropped down to sixth. He + was set for fifth until an incident with Adrian Sutil, + when Räikkönen lost control on the damp track after exiting the tunnel, + and hit Sutil's car in the rear. Räikkönen's car was not badly damaged +and he was able to finish in ninth after replacing his front wing, also +setting the fastest lap in the process.[34] After the race, Mike Gascoyne, + the Chief Technology Officer of Force India announced they were filing +official protests with the stewards over the incident, demanding a ban +for Räikkönen.[35] However, the stewards decided not to penalise him. +

+
Räikkönen driving for Ferrari at the 2008 Canadian Grand Prix
+

In Canada, + Räikkönen qualified third. In the race, he set the fastest lap during +the first stint while catching up with Robert Kubica who was in second +place. The safety car was deployed when Adrian Sutil's car broke down in + a dangerous position. Both he and Kubica jumped ahead of race leader +Hamilton when they pitted during the safety car period. As there was a +red light at the end of the pitlane, Räikkönen and Kubica stopped +alongside each other and waited for the signal to allow them back onto +the circuit. Hamilton failed to notice the red light and hit the rear of + Räikkönen's Ferrari, eliminating both cars. +

Räikkönen went on to take his 16th pole position in France, which was the 200th pole for Scuderia Ferrari.[36] + Räikkönen dominated the race as he set the fastest lap and had a +six-second lead until a bank exhaust failure some halfway through the +race reduced his engine's power. He gave up the lead to his teammate +Massa, but was far enough ahead of Toyota's Jarno Trulli, to secure second place and eight points.[37] +

Räikkönen qualified third at the British Grand Prix.[38] + Before the race, Räikkönen pushed noted photographer Paul-Henri Cahier +to the ground as he lined up a close-up shot. Räikkönen's manager Steve +Robertson claimed the driver was provoked by Cahier touching him with +his lens and standing on his belongings, but Cahier disputed this +version of events.[39][40] + The race was in wet conditions and Räikkönen stayed third at the first +corner behind Hamilton and Kovalainen. He kept pace and got up to second + when Kovalainen spun. He then chased after Hamilton, and set the +fastest lap as he drew up directly behind the McLaren. During the first +pitstop, Ferrari did not change the intermediates on his car in the hope + that the track would become dry. However, the track was hit by another +shower, and Räikkönen rapidly lost pace, and dropped down to sixth +before finally pitting for new tyres. He finished fourth, a lap down. +

At the German Grand Prix, + Räikkönen qualified sixth and dropped down a place at the first corner. + He was running fifth when the safety car came out after a crash +involving Timo Glock. + His teammate Felipe Massa was ahead of him on the track, and as a +result, Räikkönen was forced to wait behind Massa when the pitlane +opened. This dropped him down to 12th, but he eventually finished in +sixth. +

At the Hungarian Grand Prix, + Räikkönen again qualified sixth. He lost a position to Alonso at the +beginning of the race but managed to finish third owing to Hamilton's +tyre puncture, passing Alonso during the pitstops and Massa's retirement + after an engine failure. +

+
Räikkönen at the 2008 Belgian Grand Prix, where he crashed on the penultimate lap after a duel with Lewis Hamilton
+

During the European Grand Prix, + Räikkönen qualified fourth and lost a place at the start to Kovalainen. + He stayed fifth until the second round of pitstops when he exited +before the fuel hose was properly disengaged from his car and left one +of the mechanics with a fractured toe.[41] + Two laps later, he suffered a similar engine failure to Massa in the +previous race; a connecting rod in his engine broke and he was forced to + retire.[42] +

At the Belgian Grand Prix, + Räikkönen again qualified fourth. He passed Kovalainen and Massa at the + start to be second, and took the lead from Hamilton on the second lap. +He pulled away, setting the fastest lap of the race and built a +five-second gap. He looked set to win but owing to a late-race rain +shower, Hamilton closed right up to him and tried to pass him at the +final chicane with two laps to go. Hamilton cut the chicane and rejoined + ahead of Räikkönen. He let Räikkönen take the place back. Hamilton then + repassed him for the lead. The two battled on for the rest of the lap, +with Räikkönen retaking the lead when the two stumbled upon spinning +backmarker Nico Rosberg, + forcing Hamilton onto the grass. Räikkönen spun at the next corner and +fell behind Hamilton again. While trying to catch up, he lost control of + the car, smashed into a wall and retired. +

At the Italian Grand Prix, + which was held in extremely wet conditions, Räikkönen qualified 14th. +He stayed in 14th position for the first two stints. He climbed to ninth + position in the third and last stint in which he also set the fastest +lap of the race. +

In Singapore, + the first night event in Formula One history, Räikkönen qualified third + behind Massa and Hamilton. He remained in this position for most of the + early laps. On lap 14, Nelson Piquet Jr.'s Renault + hit the wall at turn 17 and the safety car was deployed. Both Ferrari +drivers pitted during the safety car period, with Räikkönen queued +behind Massa in a busy pitlane. Ferrari released Massa before the fuel +hose was disconnected from the car, which compromised Räikkönen who +rejoined in 16th. Räikkönen managed to climb to fifth place, but on lap +57, while attacking Timo Glock, he hit the wall after pushing too hard at turn 10 and retired.[43][44] + He set the fastest lap of the race as his 10th of the season. This +equalled Michael Schumacher's 2004 record of ten fastest laps in a +Formula One season.[45] +

At the Japanese Grand Prix at the Fuji Speedway + circuit, Räikkönen qualified second on the grid, behind Hamilton, and +took the lead at the start. Closing up to turn 1, Hamilton attempted to +pass on the inside, braked late and went wide,[46] forcing Räikkönen to also go wide.[47] + Räikkönen lost out heavily and went down to seventh position. He gained + places after a collision between Hamilton and Massa, Kovalainen's +hydraulic failure and an overtaking manoeuvre on Jarno Trulli. He +eventually finished third, behind Renault's Alonso and BMW Sauber's +Robert Kubica.[48] This result meant that it was impossible for Räikkönen to retain his Drivers' Championship title for the second year.[49] +

In China, + Räikkönen qualified second behind Hamilton. At the start he stayed +second with his teammate and now Ferrari's world championship contender, + Massa, behind him in third place. However, with Räikkönen out of the +running for the world championship he let Massa through into second +place on lap 49, to help the latter gain two additional points in his +pursuit of Hamilton in the world championship race.[50] +

At the Brazilian Grand Prix, + Räikkönen qualified third and finished third, behind Massa and Alonso. +As Kubica failed to score, he finished third in the championship. +

Räikkönen also won the DHL Fastest Lap Award for the second year in a row. He set 10 fastest laps throughout the season. +

+
2009
[edit]
+
Räikkönen tests the F60, Ferrari's 2009 challenger.
+

At the start of the 2009 season in the Australian Grand Prix, + Räikkönen qualified in ninth place. The pace of the Ferraris and +McLarens in particular was significantly slower than the likes of the Brawn, + Red Bull and other outfits who were struggling to keep up with them in +2008. In the race, both Ferraris were running well before Räikkönen hit a + barrier. He was forced to make an unscheduled pit stop on lap 43 and +subsequently retired with differential failure. +

+
Räikkönen at the 2009 Turkish Grand Prix
+

In Malaysia, Räikkönen topped the time sheet in the second practice session.[51] Räikkönen was ninth in qualifying. Sebastian Vettel and Rubens Barrichello's + ten and five-place penalties respectively meant that he was promoted to + seventh. During the race, rain was predicted and the team took a gamble + to change Räikkönen to full wet tyres while the track was still dry. +The gamble did not pay off, and Räikkönen fell down the field. By the +time the race was stopped on the 33rd lap due to torrential rain, +Räikkönen was classified 14th. +

Räikkönen's season did not get any better in Round 3 in China + where he qualified in eighth place. In the wet race, he and Lewis +Hamilton had duels early on, with Hamilton having to overtake Räikkönen +three times to get the job done. Räikkönen complained about power loss +from the engine from near the start and of a lack of grip after his one +and only pit-stop. This meant that he could only finish 10th. In Bahrain, + Räikkönen secured sixth place and Ferrari's first points of the year, +but was disappointed by the team's performance. He retired from the Spanish Grand Prix due to a hydraulics failure after qualifying from the back of the grid. +

At the Monaco Grand Prix, + Räikkönen secured second place in qualifying, Ferrari and Räikkönen's +best qualifying of the year so far. He admitted that he was still +disappointed because he missed out on pole narrowly to the Brawn of Jenson Button. + Räikkönen lost out to Rubens Barrichello at the start of the race, +dropping back to third. He maintained this position until the chequered +flag. +

At the Turkish Grand Prix, Räikkönen qualified sixth, but damaged his front wing on the first lap. He could only finish ninth, out of the points. At the British Grand Prix, + Räikkönen qualified ninth but a good start saw him move up to fifth. +However, he dropped to eighth during the pit stops because of traffic +and remained until the finish. +

At the German Grand Prix, Räikkönen qualified ninth after a damp session. In the race however he collided with the Force India of Adrian Sutil like in the previous year in Monte Carlo, + as the German was emerging from a pitstop. While Sutil managed to +recover back to the pits to replace a nosecone, Räikkönen was forced to +retire a few laps later with radiator damage as a result of the +incident. +

At the Hungarian Grand Prix, + Räikkönen took his and Ferrari's best finish of the season in second, +after making a great start from seventh. After the first corner +Räikkönen was in fourth place, but when Fernando Alonso retired after +his early first stop, Räikkönen moved up to third. Räikkönen overtook +Webber for second place at the first round of pit stops when Räikkönen +and Webber pitted on the same lap. Räikkönen had a clean pit-stop, +whereas Webber had a problem and was released into the path of the +Ferrari. Räikkönen and Webber avoided collision, and Webber had to slot +in behind Räikkönen. On his second pit stop, Räikkönen had a problem +with an exhaust pipe. However, having built quite a gap between him and +Webber, he held on to take second place. +

+
Räikkönen at the 2009 Italian Grand Prix
+

At the European Grand Prix, + he qualified sixth. He jumped to fourth at the start of the race. He +then moved up to third after the second pit stops jumping Heikki Kovalainen for the last podium place, and stayed in that position until the end of the race, claiming his second straight podium. +

At the Belgian Grand Prix, he qualified sixth, jumping to second at the start of the race. After the safety car was removed, he passed Giancarlo Fisichella + to take the race lead and led all the way to the chequered flag for his + first race win in 25 races, and the first and only one for Ferrari in +2009.[52] It was Räikkönen's fourth victory in the last five Belgian Grands Prix, bolstering his reputation as "The King of Spa".[53] +

Räikkönen continued his good form at the Italian Grand Prix, qualifying and finishing third, after Hamilton's last-lap crash. It was his fourth consecutive podium finish. +

Singapore saw the end of a great run for Räikkönen where he only finished 10th after qualifying 12th. +

In Japan, + Räikkönen came very close to another podium, finishing fourth. He had +qualified fifth and was not able to gain a place at the start of the +race, as he was on hard tyres. He put on softs for his second stint and +was able to close in on Nick Heidfeld + at about three-quarters of a second every lap. He overtook the German +after the BMW Sauber came out of the pits. However, an accident +involving Toro Rosso's Jaime Alguersuari + brought out the safety car on lap 44, which kept the field stationary +for a further five laps. Despite Hamilton suffering a KERS failure, +Räikkönen's car did not have the grip necessary and was not able to +overtake the third-placed McLaren at the restart. He went wide in an +attempt to overtake Hamilton but recovered without losing a further +place to Nico Rosberg. +

In Brazil, Räikkönen qualified fifth and finished sixth. His race was already ruined when Mark Webber + swerved into his path, damaging the Ferrari's front wing. At the pit +stop while having the wing changed, fuel dripping from the fuel rig +stuck on Kovalainen's car caused the Ferrari to briefly burst in flames +as the two cars were exiting their pit stops. For the rest of the race +even with his eyes burning from fuel, Räikkönen used his strategy to +move up the order and eventually finished in sixth place. +

In Abu Dhabi, the last race of the season, Räikkönen qualified 11th. He lost a place at the start of the race to Kamui Kobayashi. Räikkönen finished 12th, out of the points. +

+

Leaving Formula One (2010–2011)

[edit]
+

Near the end of the 2009 season, Ferrari announced that Räikkönen +would be leaving the team, despite having a contract to race for them in + 2010. He would be replaced by Fernando Alonso.[54] He was expected to return to McLaren alongside Lewis Hamilton but negotiations with the team failed.[55] Räikkönen was then linked to Mercedes GP but the team eventually signed Michael Schumacher and Nico Rosberg. Toyota F1, before it pulled out of Formula One, offered Räikkönen a driving contract to replace Timo Glock in 2010. The BBC + reported that he refused the contract owing to wanting to drive a +race-winning car, not to mention Toyota not offering a large enough +salary.[56] +

On 17 November 2009, his manager Steve Robertson confirmed that Räikkönen would not drive in Formula One in the 2010 season.[57] But during 2010 itself, rumours emerged once again about another possible Räikkönen comeback this time with the Renault team in 2011. This followed a resurgence in Renault's form, and the fact that the Russian Vitaly Petrov had yet to be re-signed like team-mate Robert Kubica. Team principal Éric Boullier + claimed he had been contacted by Räikkönen in connection with a +possible return, but said that although he was flattered by Räikkönen's +alleged display of interest: +

+

"I + would have to speak personally with him first, look him in the eyes to +see if I see enough motivation there for him to return to F1. It doesn't + make sense to hire somebody, even a former world champion, if you +cannot be sure that his motivation is still 100%. Why should you invest +in somebody who leaves you guessing?"

+

However Räikkönen angrily shot down the suggestion that he would +race, claiming that Renault had simply used his name for "their own +marketing purposes".[58][59] +

+

Return to Formula One (2012–2021)

[edit]
+

Lotus (2012–2013)

[edit]
+
Räikkönen driving for Lotus at the 2012 Malaysian Grand Prix
+

In the week before the 2011 Singapore Grand Prix, several news sources reported that Räikkönen was eyeing a return to Formula One for 2012 with Williams, after he was spotted at the team's headquarters in Grove, Oxfordshire.[60] On 29 November 2011, it was announced that Räikkönen would be returning to Formula 1 in 2012, signing a two-year contract with Lotus.[61] +

+
2012
[edit]
+

Räikkönen began the season by qualifying 17th for the Australian Grand Prix + after making a mistake on his last flying lap. However, he recovered +his weekend during the race the next day, as he made a good start to +move up to twelfth, before making it into the top ten. He took three +places on the last lap of the race, to finish in seventh place.[62] +

In the dry qualifying session for the Malaysian Grand Prix + Räikkönen qualified in fifth place. He started the race from 10th place + because of an unscheduled gearbox change. In the race he had the +opportunity to try Pirelli's wet-weather tyres for the first time. He +finished the race in fifth despite being inexperienced with Pirelli's +wet-weather tyres compared to most of the other drivers. +

At the Chinese Grand Prix + he was 14th after running second before being overtaken by 10 cars in +the space of one lap, due to a mistake in tyre strategy, expecting the +Pirelli tyres to last longer in the last stint. At the Bahrain Grand Prix + he finished second starting from 11th position on the grid. It was his +first podium and his best finish of this comeback. Three weeks later, +Räikkönen finished third at the Spanish Grand Prix, after having qualified in fifth place, which had been promoted to fourth as a result of a penalty given to Lewis Hamilton. +

In the Monaco Grand Prix Räikkönen qualified in eighth but finished one place lower in ninth place. For the Canadian Grand Prix + Räikkönen again had a bad qualifying session finishing 12th. He was +able to finish eighth in the race taking, as he stated, "important +championship points". In the European Grand Prix at the Valencia Street Circuit he finished second behind Fernando Alonso.[63] In the British Grand Prix he finished fifth, after having qualified in sixth place. +

During qualifying for the German Grand Prix, + Räikkönen had good pace in Q1 with the harder set of tyres and was +looking good for a potential shot at a higher grid place. At the start +of Q2 the rain was already heavy meaning that Räikkönen lost the +advantage he had in dry conditions. In the wet Q3 session he qualified +in 10th place. Good pace in dry conditions from the qualifying session +was proven in the race as Räikkönen succeeded to finish fourth, and +eventually gaining the last podium spot after Sebastian Vettel was penalised for an illegal overtaking manoeuvre. +

For the Hungarian Grand Prix + Räikkönen qualified fifth. He lost fifth place at the start to Alonso +due to a KERS issue on his E20 car. He succeeded in gaining a position +over Alonso during the first round of pit-stops, and later did the same +to Button and Vettel during the second round. He finished the race in +second place, just one second behind the race winner Hamilton. +

+
Räikkönen at the 2012 United States Grand Prix
+

After a five-week long summer break, the much speculated introduction + of a 'Drag Reduction Device' by the Lotus F1 team was delayed due to +bad weather conditions on Friday for the Belgian Grand Prix. That did not stop Räikkönen from qualifying fourth. He went on to finish third behind Jenson Button and Sebastian Vettel. A week later at Italian Grand Prix at Monza, Räikkönen qualified seventh and finished the race in fifth. +

At the Singapore Grand Prix, Räikkönen qualified 12th as his Lotus E20 could not match the pace of the top 3 teams and eventually finished sixth. At the Japanese Grand Prix, + Räikkönen qualified eighth after spinning at his final attempt in Q3 +and finished sixth after being passed by McLaren's Lewis Hamilton after +the second round of pit stops. +

The Korean Grand Prix + saw the introduction of a coanda style exhaust system and several other + minor updates to the Lotus E20 which, Lotus team boss Éric Boullier +regarded as a new era[64] + in his team's development race. Räikkönen eventually qualified fifth +and finished the race in fifth after an impressive battle with Hamilton +which ended in Räikkönen's favour. Even though he was 48 points behind +the championship leader Vettel after 16 rounds of the 2012 season, Räikkönen said he took inspiration from the 2007 season[65] which he won at the last round in Brazilian Grand Prix after Lewis Hamilton suffered gearbox problems. +

At the Indian Grand Prix, + Räikkönen qualified in seventh place. He could not manage to improve +his starting position because of a lack of top speed on the straights. +After this race, the contract with Lotus was extended for 2013 due to the fact that the terms of options in the contract have been met. +

On 4 November 2012, Räikkönen won his first race for the Lotus F1 team at the Abu Dhabi Grand Prix after a good start from fourth saw him take Pastor Maldonado and Mark Webber + at the first corner. He was unable to match the pace of Hamilton, but a + mechanical issue retired the McLaren and allowed Räikkönen to win the +race, despite pressure from the Ferrari of Alonso in the closing stages. + Although he was now mathematically eliminated from the championship as a + result of Vettel finishing third, the Lotus name celebrated its first +win since the 1987 Detroit Grand Prix which was won by Ayrton Senna. Still third, Räikkönen was 16 points clear of Hamilton in the championship. But after Hamilton's pole position at the concluding race of 2012, + Räikkönen would have to finish at least fifth in the race if Hamilton +were to win. He qualified only ninth. On lap 52, Räikkönen, who had been + in-and-out of the points frequently, made a mistake and went off the +track and tried to use an escape road to re-enter the track rather than +drive over the grass. The road was blocked and he was forced to turn +back. He lost numerous places and found himself behind a Caterham and a Marussia. + He skidded again to be lapped, but re-claimed the lost places and with a + retirement from Hamilton, finished the race in 10th and claimed his +third place in the standings, with a 1-point contribution to the tally. +He ended the season 71 points behind Alonso and 74 points behind +champion Vettel. +

On 3 December 2012 through a poll in a French auto racing website, www.toileF1.com Räikkönen was named the driver of the year.[66] +

+
2013
[edit]
+

On 29 October 2012, Lotus confirmed that Räikkönen would be racing +with the team in 2013, after several weeks of speculation that Räikkönen + had several other options for 2013, including other forms of +motorsport. +

+
Räikkönen at the 2013 Malaysian Grand Prix
+

On 17 March 2013 he won the first race of the season, the Australian Grand Prix + despite starting from seventh, thanks to a two-stop strategy while most + of the others did three stops. He also set the fastest lap of the race +on lap 56. He described the victory as one of his easiest wins.[67] Räikkönen qualified seventh in Malaysia, but was demoted three places for impeding Nico Rosberg during qualifying.[68] He finished the race seventh, behind team-mate Grosjean, after damaging his car at the start.[69] +

At the Chinese Grand Prix, + he qualified and finished second, despite having to regain the two +places he lost at the start and having damaged the front of his car +while battling Sergio Pérez for position. In the Bahrain Grand Prix + he qualified ninth, but was promoted to eighth after Lewis Hamilton +received a five-place grid penalty for an unscheduled gearbox change. He + finished the race second ahead of his team-mate Romain Grosjean, with Sebastian Vettel winning the race. The podium of the race was exactly same as in 2012. At the Spanish Grand Prix, Räikkönen started fourth and finished second thanks to a three-stop strategy. At the next race in Monaco, + Räikkönen started fifth but an aggressive overtake by Pérez gave him a +puncture and dropped him out of the points until a last-ditch attempt on + the final lap where he overtook Esteban Gutiérrez, Valtteri Bottas and Nico Hülkenberg + to gain 10th place. In the process, it continued his streak of 23 +consecutive points finishes, one shy of the record of 24 set by Michael Schumacher across three seasons between 2001 and 2003. +

With his Lotus struggling during the Canadian Grand Prix, Räikkönen finished ninth. On 30 June 2013 at the British Grand Prix, + Räikkönen finished in the points for the 25th consecutive race, +breaking Schumacher's record. He finished fifth but believed second +place could have been possible had he pitted during the safety car +period. The result kept him in third place in the championship. At the German Grand Prix, + Räikkönen qualified fourth and finished second, only a second behind +Vettel with the help of the safety car. Räikkönen struggled in +qualifying for the Hungarian Grand Prix, + unable to capitalise on strong times earlier in the weekend. He +qualified sixth but finished second – for the fifth time at the +circuit – holding off a last minute charge from Vettel with fresher + tyres. The result promoted him to second in the Drivers' Championship, +one point ahead of Fernando Alonso and 38 points behind championship +leader, Vettel. +

At the Belgian Grand Prix, + Räikkönen finished fastest in Q2 but struggled during the wetter final +session, qualifying eighth behind his teammate. Although Räikkönen did +gain some places in the race, he was eventually forced to retire with a +brake related issue on lap 27, ending the Finn's record-breaking run – +also numbering 27 – of consecutive points finishes. The DNF also ended +his chances of beating the most consecutive race finishes – a record +held by Nick Heidfeld at 41 finishes – Räikkönen recorded 38. +

+
Räikkönen at the 2013 Italian Grand Prix
+

He failed to score again at the Italian Grand Prix after losing his front wing at the start. He managed to make his way up the order, but was unable to pass Jenson Button + for a point scoring position. On the week following the race, it was +announced that Räikkönen would not continue with Lotus for the 2014 season, and instead join Fernando Alonso at Ferrari.[70][71] Before the following Singapore Grand Prix, + it was revealed that Räikkönen had not been paid salary by Lotus for +the whole season, meaning there were several million euros of +outstanding fees. Räikkönen publicly cited this as the reason for +leaving Lotus for Ferrari.[72][73] +

In the Singapore Grand Prix, + Räikkönen had recurring back problems during the practice sessions, +which at first put his participation in the race in question.[74] + He qualified only 13th, but was still able to return to the podium, +clawing to the third place partly thanks to a safety car intervention in + the middle of the race.[75] At the Japanese Grand Prix, he qualified ninth and finished fifth. +

Two weeks later, at the Indian Grand Prix, + Räikkönen qualified sixth. In the race, he opted for a one-stop tyre +strategy, placing him in the second place at the closing stages of the +Grand Prix. However, during the final few laps, his pace was more than a + second slower than those chasing him, including Nico Rosberg and +Räikkönen's Lotus teammate Romain Grosjean. With eight laps remaining, +Rosberg was able to take over Räikkönen for second. Grosjean then caught + up with Räikkönen on the fourth last lap, but was not immediately able +to pass him.[76] + At this point, the Lotus trackside operations director Alan Permane had + a heated radio exchange with Räikkönen, commanding him to move out of +the way. The radio conversation was widely noted in the press, raising +questions about the health of his relationship with the team.[77][78] Räikkönen eventually finished seventh after stopping for new tyres with only two laps to go.[76] +

In the following Abu Dhabi Grand Prix + questions about Räikkönen's relationship with his team were further +fuelled by his absence from the usual Thursday media events. Räikkönen +had reportedly only left his home at the last moment to make it to the +Grand Prix after considering not racing at all in the event.[79] + On Friday, Räikkönen then publicly threatened that he would not +continue to race with Lotus in the remaining two Grands Prix of the +season after Abu Dhabi unless the salary dispute was resolved.[80] + In the Saturday's qualifying, Räikkönen made it to fifth, but was +demoted to the 22nd and last grid spot due to his E21 car failing a +post-qualifying floor deflection test.[81] In the race, he immediately made contact with Giedo van der Garde's Caterham + in the first corner of the first lap and broke his Lotus's right front +suspension, forcing Räikkönen to retire on the first lap for the first +time since the 2006 United States Grand Prix. + Immediately after being recovered, he left the circuit and returned to +his hotel while the race continued, further fuelling tensions between +him and the team. Despite this, following the race, it was announced +that Lotus and Räikkönen had reached a provisional agreement on the +salary dispute that would see Räikkönen race for the team during the +remainder of the season[82] + as the investment group Quantum Motorsports said that they had +concluded long-running negotiations with Lotus for acquisition of a +share in the team, providing the team with financial security.[83] +

However, a week before the following United States Grand Prix, + it was announced that Räikkönen would nevertheless miss the rest of the + season, having elected to have back surgery for the problems that had +troubled him in the Singapore Grand Prix.[84] For the remaining two Grands Prix, Räikkönen would be replaced at Lotus by fellow Finn Heikki Kovalainen.[85] +

+

Return to Ferrari (2014–2018)

[edit]
+
Räikkönen at the 2014 Singapore Grand Prix
+

On 11 September 2013, it was confirmed that Räikkönen had agreed a +2-year deal to return to Ferrari (where he won the championship in 2007), starting from 2014.[70][71] He revealed that it was for monetary reasons that he left Lotus.[72][73] +

+
2014
[edit]
+

Räikkönen was on for a podium finish at the Monaco Grand Prix. However, Max Chilton punctured Räikkönen's left-rear tyre while unlapping himself, forcing Räikkönen to make a second pitstop.[86] Räikkönen then set the fastest lap of the race on lap 75, but finished 12th. +

After a mostly disappointing first half of the season, Räikkönen +had a return to form at the first race back after the summer break in Belgium, + where a good strategy and a series of fastest laps earned him fourth +place, his best result of the season. It was also the first time +Räikkönen had finished higher in a race than Alonso in 2014. Räikkönen +ended the 2014 season a career-low 12th in the Drivers' Championship, +and for the first time since his rookie year, did not finish on the +podium.[87] + Throughout the season, Räikkönen struggled with the car's lack of +turn-in on corner entry and the feeling of the new brake-by-wire +systems, saying that "We try somehow to balance it out and try to have a + front end on the car, but it is very, very difficult. I hate it when +there is no front end on the car."[88] +

Räikkönen remained with Ferrari for the 2015 season, partnering +former world champion Sebastian Vettel after Alonso announced his +departure from the Scuderia. +

+
2015
[edit]
+
Räikkönen at the 2015 Malaysian Grand Prix
+

Räikkönen had to retire from the first race of the season in Australia due to a loose wheel following a pitstop.[89] Following that mishap, he recovered to finish fourth both in Malaysia and China. Another pit issue befell Räikkönen during practice for the Bahrain Grand Prix + as he was reprimanded for exiting the pitlane in a 'potentially +dangerous manner' by the stewards, having swerved around a standing car +in an undesignated area. However, he escaped a possible grid penalty.[90] During the same weekend, his manager Steve Robertson suggested that Räikkönen was heading towards a contract extension with Ferrari.[91] + That would contradict previous suggestions from Räikkönen himself that +he would 'probably' retire at the end of his Ferrari contract, and that +2015 would be his last season.[92] Courtesy of a considerate tyre strategy by the Ferrari team, at the Bahrain Grand Prix, Räikkönen finished second after gaining that position late in the race and starting from fourth on the grid.[93] In the process, Räikkönen recorded his first podium since the 2013 Korean Grand Prix + for Lotus, and the first in his second spell with Ferrari – his +most recent Ferrari podium was a third-place finish at the 2009 Italian Grand Prix. Räikkönen said that he was hopeful in winning races in the near future after the team's strong recovery relative to 2014. + He also commented that, both the engine and downforce had been +significantly improved and that the car handled much more to his liking.[94] In a post-race interview, Ferrari team boss, Maurizio Arrivabene, + described this result as a sign that Räikkönen "is back" and that he +"showed what a race animal he is", also implying that if he had a few +more race laps available, Räikkönen would have challenged Hamilton for +the race win.[95] +

At the next race of the season in Barcelona, + Räikkönen was unhappy with the setup of the car and was able to qualify + only in seventh place. However, he had a good opening lap in the race +and made up 2 places to finish the race in fifth position.[96] Räikkönen termed Monaco GP + qualifying session to be a "disaster"; he was only able to qualify in +sixth position, with his teammate Vettel qualifying in third, followed +by Daniel Ricciardo and Daniil Kvyat in the Red Bulls.[97] In the race, Räikkönen was able to move up to fifth place, before being controversially overtaken by Ricciardo, and thus held his qualifying position to finish the race in sixth. Räikkönen put up a strong qualifying performance at Montreal + to take third on the grid behind the two Mercedes drivers. During the +race, while on the out-lap from a pitstop, Räikkönen suffered a repeat +of the incident at the previous year's race and spun at the hairpin, +which was attributed to an engine torque mapping issue. This caused him +to lose his third place to Valtteri Bottas.[98] In the Austrian Grand Prix + he was involved in a big crash with Fernando Alonso which left Alonso's + McLaren on top of Räikkönen's Ferrari. However both left unscathed. +After a disappointing showing caused by changing weather in Great +Britain, Räikkönen bounced back strongly running second behind Vettel +looking set for a 1–2 in Hungary, + when a technical failure regarding the energy recovery system meant he +lost straightline speed. An untimely safety car meant losing further +positions after the restart and after a pitstop to re-fire the engine +meant he dropped out of the points he retired when the problem did not +fix itself as he had lost the chance to get back past any cars. +

On 19 August, Ferrari announced that Räikkönen had extended his +contract with the team for the 2016 season, taking his total tally with +the team to six seasons spread out over a total of ten years.[99] Räikkönen said that 'his dream went on' and confirmed that he wanted Ferrari to be the team where he ended his career.[100] At the race following the announcement (Spa), + miscommunication from the team coupled with gearbox change penalties +saw Räikkönen start from 17th on the grid. However, he managed to +overtake the middle pack and finished the race in seventh, after Vettel +had a tire blowout on the 42nd lap causing him to lose a third-place +finish.[101] +

+
Räikkönen at the 2015 Italian Grand Prix

Räikkönen qualified on the front row for Ferrari's home race at Monza, + but a complete lack of movement for a few seconds at the start saw him +drop down the order. Showing good pace however, he managed to pick his +way from the back of the field to fifth. Räikkönen blamed a 'clutch +positioning' problem, while team boss Arrivabene suggested Räikkönen had + caused the anti-stall to kick in himself due to 'messing with his fingers' although he clarified it saying he did not fully know at the time.[102] + Nevertheless, he remained at one podium of the season, as teammate +Vettel finished second to take his tally to eight in twelve races. +

Räikkönen at the 2015 Singapore Grand Prix
+

At the Singapore Grand Prix, Räikkönen showed consistent performances in the practice sessions and qualified in third, behind Vettel and Daniel Ricciardo. + Räikkönen maintained the position through the race despite being +uncomfortable with the car, to take his second podium finish of the +season.[103] Räikkönen ended the season by finishing third in the season-ending Abu Dhabi Grand Prix to take his third podium of the year and securing fourth place in the Drivers' Championship.[104] +

+
2016
[edit]
+
Räikkönen at the 2016 Malaysian Grand Prix

For the second year in a row, Räikkönen had to retire from the first race of the season in Australia, after a fire broke out in his airbox.[105] Räikkönen finished in the second place at the Bahrain Grand Prix while his teammate Sebastian Vettel did not start the race after his car broke down on the formation lap.[106] Räikkönen outpaced Vettel in qualifying at the Chinese Grand Prix + to take third on the grid, however a first lap collision with Vettel +saw him damaging his front wing and he dropped down the order, he then +showed good pace to move up the field and eventually finished fifth.[107] He managed to finish the Russian Grand Prix + in third place after a huge start collision, which left his teammate +Vettel out of the race. This was also the 700th podium in Ferrari's +Formula One history.[108][109] Räikkönen finished behind Max Verstappen in second place to take his third podium of the season in the Spanish Grand Prix finishing ahead of Vettel who was third.[110] +

Räikkönen showed greatly improved qualifying performances during the 2016 season, out-qualifying teammate Vettel 11–10.[111] +

+
2017
[edit]
+
Räikkönen during qualifying at the 2017 Italian Grand Prix. His Ferrari SF70H is using the special 70th Scuderia Ferrari anniversary livery.
+

Räikkönen started the 2017 season with fourth in Australia, fifth in China and then again fourth in Bahrain. Räikkönen scored his first podium of the season at the following Russian Grand Prix, finishing third. He retired from the Spanish Grand Prix after being involved in an incident on the first lap. +

Räikkönen scored his first pole position in 129 races at the Monaco Grand Prix, qualifying 0.04 seconds faster than teammate Sebastian Vettel to become the sport's oldest polesitter since 1997.[112][113] He finished the race second after Vettel had a superior strategy, giving Ferrari their first 1–2 finish since 2010.[114][115] Räikkönen finished seventh in Canada after struggling with brake problems. He qualified third at the Azerbaijan Grand Prix, but retired from the race with an oil leak. He then finished fifth in Austria. +

Räikkönen qualified second at the British Grand Prix, + but suffered a tyre failure late in the race while in second place, +however he still managed to finish third, ahead of teammate Vettel. At +the Hungarian Grand Prix, + Räikkönen qualified second. In the race, after Vettel – who was in +first position – made his pitstop first, Räikkönen was driving faster +than him on older tyres, but Ferrari pitted Räikkönen early to defend +Vettel from cars behind him, denying Räikkönen a chance of overcutting +Vettel, eventually finishing second.[116][117] He then finished fourth in Belgium[118] and fifth in Italy.[119] Räikkönen qualified fourth at the Singapore Grand Prix,[120] but after getting a great start, was hit by Max Verstappen, + who avoided Vettel's aggressive move across the circuit, which +ultimately ended up in a crash that put all three drivers out of the +race.[121] +

In Malaysia he qualified second but did not start the race because of a technical problem.[122] After a fifth place at the Japanese Grand Prix,[123] Räikkönen finished third at the United States Grand Prix.[124] He repeated this performance in the Mexican Grand Prix and Brazilian Grand Prix, scoring three consecutive podiums.[125] A fourth-place finish in Abu Dhabi secured fourth position in the drivers' championship for Räikkönen. +

+
2018
[edit]
+
Kimi Räikkönen at the 2018 Azerbaijan Grand Prix
+

Räikkönen renewed his contract with Ferrari for the 2018 season on 22 August 2017.[126] He qualified second for the first race in Australia and finished third, after being jumped by Vettel during the virtual safety car period. At the Bahrain Grand Prix, he qualified second after encountering traffic on his last run.[127] He then ran in third for most of the race, but retired on lap 35 due to a pit stop error by Ferrari.[128] He went on to finish third at the Chinese Grand Prix after recovering from a strategy aimed at helping his teammate.[129] +

At the Azerbaijan Grand Prix, Räikkönen recovered from a first lap incident with Esteban Ocon to eventually finish second. Räikkönen's engine failed during practice at the Spanish Grand Prix, forcing him to change engines.[130] This meant that he missed Ferrari's upgraded engine introduced two races later in Canada and had to race with the old specification engine until the 13th round in Belgium to avoid a penalty.[131][132] His engine failed again in the race in Spain, forcing him to retire from the race, but the engine did not have to be replaced.[133] This was followed by a fourth-place finish in Monaco and sixth in Canada. +

A third-place finish in the French Grand Prix started a run of consecutive podiums for Räikkönen. He would finish second at the following Austrian Grand Prix, then at the British Grand Prix he recovered from a controversial 10-second penalty to finish third,[134] after which he finished third again at the German and Hungarian Grands Prix to score five consecutive podiums. At the Belgian Grand Prix, + Räikkönen had strong pace during qualifying, but a fuel miscalculation +by Ferrari meant that he could not complete a lap in the drying +conditions later in session which left him sixth on the grid.[135] He retired from the race as his car was damaged in a first lap crash initiated by Nico Hülkenberg.[136] +

Räikkönen took pole position at the Italian Grand Prix, breaking Juan Pablo Montoya's + 14-year-old record to set the fastest lap ever recorded in Formula One +history with an average speed of 263.588 kilometres per hour +(163.786 mph) and a laptime of 1:19.119.[137] His race was compromised by Mercedes ordering Bottas to block him after his pit stop,[138] but he nevertheless finished second to score his 100th podium finish, becoming only the fifth driver ever to do so.[139] This was followed by a fifth-place finish in Singapore, fourth in Russia and fifth in Japan, where his car sustained damage from a hit by Verstappen.[140] +

Räikkönen won the United States Grand Prix, becoming, at 39, F1's oldest race winner since Nigel Mansell + in 1994, and the 13th oldest F1 race winner ever. This victory made +Räikkönen the most successful Finnish driver of all time in terms of +race wins. He broke the record for the longest gap between Grand Prix +wins (113 races) and the record for the biggest gap between first and +last career wins (5,691 days). Coincidentally, this victory came on the +11th anniversary of his 2007 F1 world championship.[141] He followed this victory with third-placed podiums at the Mexican and Brazilian Grands Prix. He retired in Abu Dhabi with an electrical issue, but nonetheless, he finished third in the Drivers' Championship in his final season with Ferrari.[142] +

+

Alfa Romeo (2019–2021)

[edit]
+
2019
[edit]
+
Räikkönen at the 2019 Chinese Grand Prix
+

On 11 September 2018, it was announced that Räikkönen would leave Ferrari at the end of the season to rejoin Sauber on a two-year contract, the team he made his Formula One debut with in 2001.[143] Räikkönen made his Sauber return in the postseason Abu Dhabi Pirelli tyre test driving their 2018 car.[144] The Sauber team was renamed Alfa Romeo Racing prior to the start of the 2019 season. +

Räikkönen had an impressive first half of the season, scoring 31 +points before the summer break, placing him eighth in the Drivers' +Championship after 12 races.[145] In comparison, his teammate Antonio Giovinazzi had scored only a single point during the same period. However, after the summer break, the Alfa Romeo Racing C38 struggled for pace and Räikkönen endured a seven-race pointless streak. He had an opportunity to score points in Belgium, starting from sixth on the grid, but he was hit by Max Verstappen at the first corner.[146][147] The pointless streak ended at the Brazilian Grand Prix, where a strong race and a penalty for Lewis Hamilton yielded a fourth-place finish, the first top-four finish for the Hinwil-based team since 2013. + Räikkönen finished 12th in the Drivers' Championship with 43 points, +which, again, was the best result for a driver of the Hinwil-based team +since 2013. +

+
2020
[edit]
+
Räikkönen at the pre-season testing in Barcelona
+

Räikkönen remained at the Alfa Romeo Racing team for the 2020 season. The team's Ferrari-powered car proved to be one of the slowest cars of the season,[148] and the team was left fighting at the back of the grid against Haas and Williams.[149] During the season Räikkönen scored points twice, finishing ninth at the Tuscan Grand Prix and again ninth at the Emilia Romagna Grand Prix, while he scored the team's best qualifying result with eighth in Turkey. During the Italian Grand Prix at Monza, Räikkönen ran as high as second after a red flag and penalties to Lewis Hamilton + and Giovinazzi, however ultimately finished 11th and outside the +points. These results placed him 16th in the drivers' standings with +four points, ahead of teammate Antonio Giovinazzi and the Haas and +Williams drivers.[150] Räikkönen was the highest finishing driver among this group in nine of the season's 17 races,[151] while he finished ahead of his teammate in nine of the 13 races which both finished and qualified ahead of him eight times.[152] He was also the highest finishing Ferrari-powered driver on four occasions.[153][154] +

Räikkönen's 323rd Formula One race start at the Eifel Grand Prix saw him break Rubens Barrichello's record for most Formula One race starts in history.[155] He won the FIA Action of the Year award for his opening lap at the Portuguese Grand Prix, where he overtook 10 cars.[156] +

+
2021
[edit]
+
Räikkönen at the 2021 Austrian Grand Prix
+

Räikkönen continued with Alfa Romeo in 2021 alongside Giovinazzi.[157] Before the season started Räikkönen had decided to retire at the end of the season.[158] He tested positive for COVID-19 on the weekend of the Dutch Grand Prix and was replaced by reserve driver Robert Kubica at the Dutch and Italian Grand Prix.[159] Räikkönen scored his first points of the season in Azerbaijan,[160] with more points in Hungary,[161] Russia[162] and Mexico.[163] In November he visited the Alfa Romeo factory in Switzerland for the last time as a team member and was given a farewell,[164] and was subsequently given a farewell by the Scuderia Ferrari team prior to the race in Abu Dhabi.[165][166] For his final race in Abu Dhabi the team inscribed "Dear Kimi, we will leave you alone now" on his C41.[167] Räikkönen was forced to retire on lap 25 because of a technical issue with a wheel nut.[168] "It doesn't matter how it comes to the end, it's the end now and yes, I'm looking forward to it," he said after the race.[169] Räikkönen finished the season in 16th place with 10 points.[170] +

+

Other racing

[edit]
+

Rallying

[edit]
+

Räikkönen made his initial rally debut at the Arctic Lapland Rally, which ran from 23 to 24 January 2009, driving a Tommi Mäkinen Racing-prepared Abarth Grande Punto S2000. He finished in 13th place.[171] Räikkönen made his WRC debut in the 2009 Rally Finland, which took place between 30 July and 2 August, starting just four days after his second-place finish in the Hungarian Grand Prix.[172] He was running third in group N and 15th overall before crashing out in Väärinmaja, last stage of Saturday.[173] +

+
Räikkönen driving a Citroën C4 WRC at the 2010 Rally Bulgaria
+

On 4 December 2009, it was announced that Räikkönen would altogether shift from Formula 1 to the World Rally Championship for the 2010 season as a full-time driver for the Citroën Junior Team,[174] and that he would be driving a Red Bull-sponsored Citroën C4 WRC + with his co-driver, Kaj Lindström. As members of the team, the pair +were scheduled to participate in 12 of 13 rallies in the 2010 WRC +calendar, the exception being Rally New Zealand. +

On 3 April 2010, Räikkönen scored his first WRC points when he finished eighth in the Jordan Rally. Consequently, he became the second driver after Carlos Reutemann to score championship points in both Formula One and the World Rally Championship.[175] In the next WRC event, the Rally of Turkey, Räikkönen improved his best result with a fifth-place finish, 6m 44.3s off the winner, Sébastien Loeb. This result saw him beat established and more experienced drivers in the field. +

+
Räikkönen at the 2010 Rally Finland
+

In the 2010 Rally Finland, the retired four-time World Rally Champion Juha Kankkunen + entered the race and said that if Räikkönen cannot beat him then he +might as well go back to Formula One. The two were in a close battle for + seventh until Räikkönen had a crash on the 12th stage of the rally.[176] He finished seventh in the Rallye Deutschland, his second ever asphalt rally, while scoring his first ever career stage win on the last stage of the rally. +

On 18 September 2010, Räikkönen achieved his first rally win when + he participated in the Rallye Vosgien 2010 in France. He won all six +stages in the asphalt rally.[177] Räikkönen could not start in the Rally Catalunya + because he crashed during the shakedown, leaving the roll cage damaged, + and the team did not have enough time to repair it. Subsequently, +Räikkönen decided to not take part in the rally at all, even when he +could by super rally rules. The reason was stated to be saving the car.[178] He would finish eighth in the Wales Rally GB, + the final rally of the season. He scored 25 points during the season to + finish 10th overall in the championship, the best result for a rookie +that year. +

+
Räikkönen at the 2011 Rallye Deutschland
+

Räikkönen entered the 2011 World Rally Championship season under his own team, ICE 1 Racing. He drove a Citroën DS3 WRC.[179] He finished eighth in the opening round, Rally Sweden. Skipping the Mexico event, he next competed in Rally Portugal and finished seventh. He finished sixth in the following Jordan Rally, but would skip the next two rounds. +

Räikkönen returned in the Acropolis Rally, finishing seventh. He would score points in his home rally, Rally Finland, after finishing ninth. He equaled his best result of the season with sixth in Rallye Deutschland, + his seventh consecutive points finish and sixth consecutive points +finish of the season. After the good form, the season ended in three +retirements in the last three rallies. Räikkönen scored 34 points during + the season, nine more than in 2010. Despite the increased number of +points, he would again finish 10th in the championship. +

+

NASCAR

[edit]
+
Räikkönen in 2023
+

It was reported on 29 March 2011 that Räikkönen would try his hand at NASCAR starting in the Truck Series in the summer of 2011 with an eye on also running in the Nationwide and Sprint Cup Series.[180] On 2 April Räikkönen signed a deal with Toyota team Kyle Busch Motorsports to run a limited schedule in the Truck Series. +

On 20 May, Räikkönen debuted at the North Carolina Education Lottery 200 at Charlotte Motor Speedway + with a strong finish of 15th, though he started the day with tough +practice sessions and qualified only at 31 out of 37 trucks. His race +craft was well received by team crew chief Rick Ren and his teammate Kyle Busch. Räikkönen went on to race in the Nationwide Series at the same track on 28 May driving for Joe Nemechek and NEMCO Motorsports. He finished 27th after having debris stuck on the grille of his car and getting a penalty for speeding in the pitlane.[181] Later in the month, Räikkönen tested Robby Gordon's car at Infineon Raceway, with plans of Gordon fielding a two-car team for him and Räikkönen at the Toyota/Save Mart 350. However, Räikkönen crashed the car in the test, and the deal with Robby Gordon Motorsports fell through.[182] +

+
Räikkönen at the Circuit of the Americas in 2023
+

In May 2022, Trackhouse Racing announced that Räikkönen would make his Cup Series debut in the No. 91 Chevrolet at the 2022 Go Bowling at The Glen at Watkins Glen International.[183] Having previously only driven the car in an acclimatisation test at Virginia International Raceway and one 20-minute practice session, Räikkönen qualified 27th out of 39 cars, notably ahead of fellow debutant Mike Rockenfeller and former Formula One driver Daniil Kvyat.[184][185] In the race, he ran in the top ten at one point,[184] but was classified 37th after being crashed out of 25th place following contact from Loris Hezemans trying to find a way past a spinning Austin Dillon.[186] +

In March 2023, Räikkönen returned to the No. 91 at the Circuit of the Americas, + where he qualified 22nd and ran in the mid-pack for most of the race, +before a pit stop just before a caution period resulted in him rising to + fourth place with nine laps remaining.[187] A chaotic end to the race with multiple restarts and incidents saw him ultimately finish 29th.[188] +

+

Personal life

[edit]
+

Räikkönen met Finnish model and former Miss Scandinavia 2001, Jenni Dahlman, + in 2002. The couple married on 31 July 2004, living between Switzerland + and Finland. They separated in February 2013, and divorced in 2014.[189] Räikkönen became engaged to fitness and underwear model Minna-Mari "Minttu" Virtanen.[190] On 28 January 2015, Virtanen gave birth to the couple's first child, a son.[191] On 7 August 2016, Räikkönen married Virtanen in a ceremony in Siena, Italy.[192] On 16 May 2017, Räikkönen became a father for the second time with the birth of his daughter.[193] Räikkönen's third child, another daughter, was born in June 2023.[194] In 2023, the family moved from Switzerland to Como, Italy.[195] +

Räikkönen's hobbies include snowboarding and ice hockey.[196] + He has also competed in several different kinds of motorsport events. +In March 2007, while his Formula One rivals were in Australia preparing +for the season opener, Räikkönen competed in a snowmobile race in Finland under the pseudonym "James Hunt", referring to the 1976 world champion whose "playboy" lifestyle has been compared with Räikkönen's own.[197] Räikkönen won the Enduro Sprint race by over 20 seconds with his Lynx.[198] Later in the year, he and two friends entered a powerboat race in the Finnish harbour city of Hanko while wearing gorilla suits. Again, he raced under the name "James Hunt".[199] They then won a prize for the best-dressed crew.[200] +

In August 2008, it was announced that Räikkönen would appear on a + set of Finnish postage stamps. The stamps, which were released to +commemorate the Finnish postal service's 370th anniversary, feature images of him racing and on the podium, with the words "F1 World Champion '07 Kimi Räikkönen".[201] Forbes + magazine listed Räikkönen 36th in their 2008 "Celebrity 100" as the +26th highest paid celebrity and fifth highest paid sportsman.[202] The same list in 2009 recorded him as the second highest-paid athlete.[203] +

In 2011, Räikkönen founded his own Motocross World Championship team, Ice 1 Racing.[204] The team consists of MX1 rider Toni Eriksson and MX2 rider Ludde Söderberg and is managed by seven-time enduro world champion Kari Tiainen. The Ice 1 Racing team also supports six junior riders competing in the Finnish national championship. +

In 2018, Ferrari filed legal action on behalf of Räikkönen with +Canadian authorities. The complaint claimed Räikkönen was being extorted + by a woman demanding compensation and threatening to publicly accuse +him of sexual misconduct at a function after the 2016 Canadian Grand Prix.[205] +

Räikkönen stated in 2007 that he believes in God. He has claimed his favorite movie to be Scarface.[206] + Räikkönen is also recognized for having a distinctive voice. Räikkönen +has said that the reason behind it is a bicycle accident that he +suffered when he was 5 years old. Räikkönen fell, hit his neck on the +bicycle handlebar, and injured his vocal cords, which never fully healed.[207] Sebastian Vettel and Antonio Giovinazzi, his teammates from Ferrari and Alfa Romeo, are two of his close friends.[208][209][210] +

+

Public persona and reaction

[edit]
+

Räikkönen is known for his dislike of giving media interviews, and +frequently answers questions in a blunt and monosyllabic manner. In the +build-up to the 2006 Brazilian Grand Prix, when then-ITV pundit Martin Brundle asked Räikkönen why he missed a ceremony in which footballer Pelé presented Michael Schumacher with a lifetime achievement award, Räikkönen replied "I was having a shit".[211] +

+During his early years at McLaren, Ron Dennis gave him the nickname, "Iceman", + with several layers of meaning; apart from its association with the +cold climate of Finland, he is widely considered to have a cool +temperament under pressure and also an 'icy' persona with most other +drivers, team members and the media. He has said that he is "not here to + try to please people. I'm here to do my best".[212] + Apart from his on-track driving, off-track instances demonstrating this + calm demeanour include being asleep 30 minutes before his first Formula + One race[7] and eating an ice cream during the temporarily-suspended 2009 Malaysian Grand Prix.[213]

+
+

I don't think you can have an argument or a problem with Kimi. If you do, the problem is not him, the problem is you. +

+
+
Sebastian Vettel, speaking about Räikkönen in 2021.[214]
+
+

Known to be frustrated by anything that prevents him from simply +racing, he is relatively outspoken in his criticism of politics and +off-circuit drama in sport. In a rare feature interview in the middle of + the 2013 season, Räikkönen said "sometimes in Formula 1 there is +politics, and the shit there is stupid".[212] In the same article, Lotus team principal Éric Boullier described Räikkönen as someone "doing pretty much whatever he wants". +

+During the 2006 Monaco Grand Prix, his McLaren MP4-21 broke down as the heat shield + had exploded and he was forced to retire; he went from his car straight + to his nearby yacht, fully dressed in his racing suit and immediately +relaxed in his jacuzzi.[215]

+
+

I don't want to put some kind of limits on how you remember. I mean, I + don't care much because I luckily been able to do most of the things +how I wish to do it. And whatever they remember, good way or bad way, +it's a memory and it's fine for me. +

+
+
– When asked how he wanted to be remembered by F1 fans from around the world, during his last "Beyond The Grid" appearance.[216]
+
+

Räikkönen's terse radio communications have sometimes attracted comment. On the 20th lap of the 2012 Abu Dhabi Grand Prix, Räikkönen had just taken the lead from Lewis Hamilton and his race engineer Simon Rennie + advised that Fernando Alonso was five seconds behind and that he would +be kept informed of Alonso's pace; Räikkönen replied, "Just leave me +alone, I know what to do!".[217] + Later in the same race, he admonished his team again, when being told +to manage the tyre temperature: "Yes, yes, yes, yes, I'm doing that all +the time. You don't have to remind me every ten seconds!".[218] + The first quote attracted significant press coverage, and Räikkönen +made no attempt to apologise in the post-race interview. It was earlier +reported that he printed 500 T-shirts with the quote for the entire +Lotus team, but this was later denied by Räikkönen in an interview with Formula One Group media personnel.[219] The quote was featured on his official website.[220] +

+

Helmet

[edit]
+
Helmet used when Räikkönen raced for Ferrari seen at Museo Ferrari
+
The insignia that appears on the top of Räikkönen's helmet
+

Räikkönen's helmet, designed by UffeDesigns, manufactured by Arai (2001–2006, 2012), Bell (2013, 2015–2021), and Schuberth + (2007–2009, 2014), slightly changed during the years. His helmet has +also always featured a V design running on the circle top (representing a + flying bird) and the inscription "Iceman". The trident insignia was +painted in white during his time racing for Sauber and McLaren until +2005, and red from 2006 with McLaren and during his time with Ferrari. +

Initially his helmet was predominantly blue with white and silver + details, but its colours and detailing changed over time. When racing +for Ferrari Räikkönen's helmet changed radically: it was white with the +middle part black and red with tribal designs. He retained this design +in some rallies, although the helmet style was significantly different +for this discipline. In WRC and NASCAR he used a blue Stilo helmet with +Red Bull's logo, silver and white accents (to resemble Red Bull's can +design and Räikkönen's Sauber helmet lines). Upon his return to Formula +One, he sported a black helmet with white and red diagonals. For the Monaco Grand Prix, he wore a replica of the 1976 James Hunt + helmet. Upon his return to Ferrari in 2014, the base colour became a +vibrant red, with white diagonal lines crossing from each side. In 2015, + his helmet reverted to a white base. As of 2014, Räikkönen continued to + race with a Bell model rather than Ferrari's official supplier +Schuberth.[citation needed] +

+

Other ventures

[edit]
+

In 2022, after his retirement from Formula One, Räikkönen was named the team principal of the Kawasaki Racing Team for the 2022 season of the Motocross World Championship.[221] +

+

Karting record

[edit]
+

Karting career summary

[edit]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Season +Series +Position +
1995 +Nordic Championship — ICA +3rd +
1997 +Nordic Championship — ICA +4th +
Finnish Championship — ICA +1st +
World ChampionshipFormula Super A +30th +
1998 +Trofeo Andrea Margutti— Formula A +4th +
Nordic Championship — ICA +1st +
Finnish Championship — ICA +1st +
Finnish Championship — Formula A +1st +
World ChampionshipFormula Super A +24th +
1999 +Finnish Championship — Formula A +2nd +
World ChampionshipFormula Super A +10th +
Source:[222] +
+

Racing record

[edit]
+

Racing career summary

[edit]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Season +Series +Team +Races +Wins +Poles +F/Laps +Podiums +Points +Position +
1999 +European Formula Ford +? +2 +? +? +? +? +? +5th +
Formula Ford Festival +Continental Racing Van Diemen +1 +0 +0 +0 +0 +N/A +NC +
Formula Renault UK Winter Championship +Manor Motorsport +4 +4 +4 +? +4 +40 +1st +
Formula Renault UK +Haywood Racing +4 +0 +0 +? +? +? +? +
2000 +Formula Renault UK +Manor Motorsport +10 +7 +6 +7 +10 +316 +1st +
Formula Renault 2000 Eurocup +2 +2 +1 +0 +2 +62 +7th +
2001 +Formula One +Red Bull Sauber Petronas +17 +0 +0 +0 +0 +9 +10th +
2002 +Formula One +West McLaren Mercedes +17 +0 +0 +1 +4 +24 +6th +
2003 +Formula One +West McLaren Mercedes +16 +1 +2 +3 +10 +91 +2nd +
2004 +Formula One +West McLaren Mercedes +18 +1 +1 +2 +4 +45 +7th +
2005 +Formula One +West McLaren Mercedes
Team McLaren Mercedes +
19 +7 +5 +10 +12 +112 +2nd +
2006 +Formula One +Team McLaren Mercedes +18 +0 +3 +3 +6 +65 +5th +
2007 +Formula One +Scuderia Ferrari Marlboro +17 +6 +3 +6 +12 +110 +1st +
2008 +Formula One +Scuderia Ferrari Marlboro +18 +2 +2 +10 +9 +75 +3rd +
2009 +Formula One +Scuderia Ferrari Marlboro +17 +1 +0 +0 +5 +48 +6th +
World Rally Championship +Tommi Mäkinen Racing +1 +0 +— +— +0 +0 +NC +
2010 +World Rally Championship +Citroën Junior Team +11 +0 +— +— +0 +25 +10th +
2011 +World Rally Championship +Ice 1 Racing +9 +0 +— +— +0 +34 +10th +
NASCAR Camping World Truck Series +Kyle Busch Motorsports +1 +0 +0 +0 +0 +N/A +NC +
NASCAR Nationwide Series +NEMCO Motorsports/KBM +1 +0 +0 +0 +0 +N/A +NC +
2012 +Formula One +Lotus F1 Team +20 +1 +0 +2 +7 +207 +3rd +
2013 +Formula One +Lotus F1 Team +17 +1 +0 +2 +8 +183 +5th +
2014 +Formula One +Scuderia Ferrari +19 +0 +0 +1 +0 +55 +12th +
2015 +Formula One +Scuderia Ferrari +19 +0 +0 +2 +3 +150 +4th +
2016 +Formula One +Scuderia Ferrari +21 +0 +0 +1 +4 +186 +6th +
2017 +Formula One +Scuderia Ferrari +20 +0 +1 +2 +7 +205 +4th +
2018 +Formula One +Scuderia Ferrari +21 +1 +1 +1 +12 +251 +3rd +
2019 +Formula One +Alfa Romeo Racing +21 +0 +0 +0 +0 +43 +12th +
2020 +Formula One +Alfa Romeo Racing ORLEN +17 +0 +0 +0 +0 +4 +16th +
2021 +Formula One +Alfa Romeo Racing ORLEN +21 +0 +0 +0 +0 +10 +16th +
2022 +NASCAR Cup Series +Trackhouse Racing +1 +0 +0 +0 +0 +1 +41st +
2023 +NASCAR Cup Series +Trackhouse Racing +1 +0 +0 +0 +0 +8 +40th +
+
+

Complete Formula Renault 2.0 UK results

[edit]
+

(key) (Races in bold indicate pole position; races in italics indicate fastest lap) +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Year +Entrant +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +DC +Points +
2000 +Manor Motorsport +BRH
3 +
DON
1 +
THR
1 +
KNO
2 +
OUL
1 +
SIL
3 +
CRO
1 +
SNE
1 +
DON
1 +
BRH
1 +
OUL +SIL +1st +316 +
+

Complete Formula One results

[edit]
+

(key) (Races in bold indicate pole position; races in italics indicate fastest lap) +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Year +Entrant +Chassis +Engine +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +WDC +Points +
2001 +Red Bull Sauber Petronas +Sauber C20 +Petronas 01A 3.0 V10 +AUS
6 +
MAL
Ret +
BRA
Ret +
SMR
Ret +
ESP
8 +
AUT
4 +
MON
10 +
CAN
4 +
EUR
10 +
FRA
7 +
GBR
5 +
GER
Ret +
HUN
7 +
BEL
DNS +
ITA
7 +
USA
Ret +
JPN
Ret +
+10th +9 +
2002 +West McLaren Mercedes +McLaren MP4-17 +Mercedes FO 110M 3.0 V10 +AUS
3 +
MAL
Ret +
BRA
12 +
SMR
Ret +
ESP
Ret +
AUT
Ret +
MON
Ret +
CAN
4 +
EUR
3 +
GBR
Ret +
FRA
2 +
GER
Ret +
HUN
4 +
BEL
Ret +
ITA
Ret +
USA
Ret +
JPN
3 +
+6th +24 +
2003 +West McLaren Mercedes +McLaren MP4-17D +Mercedes FO 110M/P 3.0 V10 +AUS
3 +
MAL
1 +
BRA
2 +
SMR
2 +
ESP
Ret +
AUT
2 +
MON
2 +
CAN
6 +
EUR
Ret +
FRA
4 +
GBR
3 +
GER
Ret +
HUN
2 +
ITA
4 +
USA
2 +
JPN
2 +
+2nd +91 +
2004 +West McLaren Mercedes +McLaren MP4-19 +Mercedes FO 110Q 3.0 V10 +AUS
Ret +
MAL
Ret +
BHR
Ret +
SMR
8 +
ESP
11 +
MON
Ret +
EUR
Ret +
CAN
5 +
USA
6 +
+7th +45 +
McLaren MP4-19B + +FRA
7 +
GBR
2 +
GER
Ret +
HUN
Ret +
BEL
1 +
ITA
Ret +
CHN
3 +
JPN
6 +
BRA
2 +
+
2005 +West McLaren Mercedes +McLaren MP4-20 +Mercedes FO 110R 3.0 V10 +AUS
8 +
MAL
9 +
BHR
3 +
SMR
Ret +
ESP
1 +
MON
1 +
EUR
11 +
CAN
1 +
USA
DNS +
FRA
2 +
GBR
3 +
GER
Ret +
+2nd +112 +
Team McLaren Mercedes + +HUN
1 +
TUR
1 +
ITA
4 +
BEL
1 +
BRA
2 +
JPN
1 +
CHN
2 +
+
2006 +Team McLaren Mercedes +McLaren MP4-21 +Mercedes FO 108S 2.4 V8 +BHR
3 +
MAL
Ret +
AUS
2 +
SMR
5 +
EUR
4 +
ESP
5 +
MON
Ret +
GBR
3 +
CAN
3 +
USA
Ret +
FRA
5 +
GER
3 +
HUN
Ret +
TUR
Ret +
ITA
2 +
CHN
Ret +
JPN
5 +
BRA
5 +
+5th +65 +
2007 +Scuderia Ferrari Marlboro +Ferrari F2007 +Ferrari 056 2.4 V8 +AUS
1 +
MAL
3 +
BHR
3 +
ESP
Ret +
MON
8 +
CAN
5 +
USA
4 +
FRA
1 +
GBR
1 +
EUR
Ret +
HUN
2 +
TUR
2 +
ITA
3 +
BEL
1 +
JPN
3 +
CHN
1 +
BRA
1 +
+1st +110 +
2008 +Scuderia Ferrari Marlboro +Ferrari F2008 +Ferrari 056 2.4 V8 +AUS
8 +
MAL
1 +
BHR
2 +
ESP
1 +
TUR
3 +
MON
9 +
CAN
Ret +
FRA
2 +
GBR
4 +
GER
6 +
HUN
3 +
EUR
Ret +
BEL
18 +
ITA
9 +
SIN
15 +
JPN
3 +
CHN
3 +
BRA
3 +
+3rd +75 +
2009 +Scuderia Ferrari Marlboro +Ferrari F60 +Ferrari 056 2.4 V8 +AUS
15 +
MAL
14 +
CHN
10 +
BHR
6 +
ESP
Ret +
MON
3 +
TUR
9 +
GBR
8 +
GER
Ret +
HUN
2 +
EUR
3 +
BEL
1 +
ITA
3 +
SIN
10 +
JPN
4 +
BRA
6 +
ABU
12 +
+6th +48 +
2012 +Lotus F1 Team +Lotus E20 +Renault RS27-2012 2.4 V8 +AUS
7 +
MAL
5 +
CHN
14 +
BHR
2 +
ESP
3 +
MON
9 +
CAN
8 +
EUR
2 +
GBR
5 +
GER
3 +
HUN
2 +
BEL
3 +
ITA
5 +
SIN
6 +
JPN
6 +
KOR
5 +
IND
7 +
ABU
1 +
USA
6 +
BRA
10 +
+3rd +207 +
2013 +Lotus F1 Team +Lotus E21 +Renault RS27-2013 2.4 V8 +AUS
1 +
MAL
7 +
CHN
2 +
BHR
2 +
ESP
2 +
MON
10 +
CAN
9 +
GBR
5 +
GER
2 +
HUN
2 +
BEL
Ret +
ITA
11 +
SIN
3 +
KOR
2 +
JPN
5 +
IND
7 +
ABU
Ret +
USA +BRA + +5th +183 +
2014 +Scuderia Ferrari +Ferrari F14 T +Ferrari 059/3 1.6 V6 t +AUS
7 +
MAL
12 +
BHR
10 +
CHN
8 +
ESP
7 +
MON
12 +
CAN
10 +
AUT
10 +
GBR
Ret +
GER
11 +
HUN
6 +
BEL
4 +
ITA
9 +
SIN
8 +
JPN
12 +
RUS
9 +
USA
13 +
BRA
7 +
ABU
10 +
+12th +55 +
2015 +Scuderia Ferrari +Ferrari SF15-T +Ferrari 060 1.6 V6 t +AUS
Ret +
MAL
4 +
CHN
4 +
BHR
2 +
ESP
5 +
MON
6 +
CAN
4 +
AUT
Ret +
GBR
8 +
HUN
Ret +
BEL
7 +
ITA
5 +
SIN
3 +
JPN
4 +
RUS
8 +
USA
Ret +
MEX
Ret +
BRA
4 +
ABU
3 +
+4th +150 +
2016 +Scuderia Ferrari +Ferrari SF16-H +Ferrari 061 1.6 V6 t +AUS
Ret +
BHR
2 +
CHN
5 +
RUS
3 +
ESP
2 +
MON
Ret +
CAN
6 +
EUR
4 +
AUT
3 +
GBR
5 +
HUN
6 +
GER
6 +
BEL
9 +
ITA
4 +
SIN
4 +
MAL
4 +
JPN
5 +
USA
Ret +
MEX
6 +
BRA
Ret +
ABU
6 +
+6th +186 +
2017 +Scuderia Ferrari +Ferrari SF70H +Ferrari 062 1.6 V6 t +AUS
4 +
CHN
5 +
BHR
4 +
RUS
3 +
ESP
Ret +
MON
2 +
CAN
7 +
AZE
14 +
AUT
5 +
GBR
3 +
HUN
2 +
BEL
4 +
ITA
5 +
SIN
Ret +
MAL
DNS +
JPN
5 +
USA
3 +
MEX
3 +
BRA
3 +
ABU
4 +
+4th +205 +
2018 +Scuderia Ferrari +Ferrari SF71H +Ferrari 062 EVO 1.6 V6 t +AUS
3 +
BHR
Ret +
CHN
3 +
AZE
2 +
ESP
Ret +
MON
4 +
CAN
6 +
FRA
3 +
AUT
2 +
GBR
3 +
GER
3 +
HUN
3 +
BEL
Ret +
ITA
2 +
SIN
5 +
RUS
4 +
JPN
5 +
USA
1 +
MEX
3 +
BRA
3 +
ABU
Ret +
+3rd +251 +
2019 +Alfa Romeo Racing +Alfa Romeo Racing C38 +Ferrari 064 1.6 V6 t +AUS
8 +
BHR
7 +
CHN
9 +
AZE
10 +
ESP
14 +
MON
17 +
CAN
15 +
FRA
7 +
AUT
9 +
GBR
8 +
GER
12 +
HUN
7 +
BEL
16 +
ITA
15 +
SIN
Ret +
RUS
13 +
JPN
12 +
MEX
Ret +
USA
11 +
BRA
4 +
ABU
13 +
+12th +43 +
2020 +Alfa Romeo Racing ORLEN +Alfa Romeo Racing C39 +Ferrari 065 1.6 V6 t +AUT
Ret +
STY
11 +
HUN
15 +
GBR
17 +
70A
15 +
ESP
14 +
BEL
12 +
ITA
13 +
TUS
9 +
RUS
14 +
EIF
12 +
POR
11 +
EMI
9 +
TUR
15 +
BHR
15 +
SKH
14 +
ABU
12 +
+16th +4 +
2021 +Alfa Romeo Racing ORLEN +Alfa Romeo Racing C41 +Ferrari 065/6 1.6 V6 t +BHR
11 +
EMI
13 +
POR
Ret +
ESP
12 +
MON
11 +
AZE
10 +
FRA
17 +
STY
11 +
AUT
15 +
GBR
15 +
HUN
10 +
BEL
18 +
NED
WD +
ITA +RUS
8 +
TUR
12 +
USA
13 +
MXC
8 +
SAP
12 +
QAT
14 +
SAU
15 +
ABU
Ret +
16th +10 +
Sources:[224][226]
+
+

Did not finish, but was classified as he had completed more than 90% of the race distance. +

+

Complete WRC results

[edit]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Year +Entrant +Car +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +WDC +Points +
2009 +Tommi Mäkinen Racing +Fiat Grande Punto S2000 +IRE +NOR +CYP +POR +ARG +ITA +GRE +POL +FIN
Ret +
AUS +ESP +GBR + +NC +0 +
2010 +Citroën Junior Team +Citroën C4 WRC +SWE
29 +
MEX
Ret +
JOR
8 +
TUR
5 +
NZL +POR
10 +
BUL
11 +
FIN
25 +
GER
7 +
JPN
Ret +
FRA
Ret +
ESP
DNS +
GBR
8 +
10th +25 +
2011 +ICE 1 Racing +Citroën DS3 WRC +SWE
8 +
MEX +POR
7 +
JOR
6 +
ITA +ARG +GRE
7 +
FIN
9 +
GER
6 +
AUS
WD +
FRA
Ret +
ESP
Ret +
GBR
Ret +
10th +34 +
Sources:[224][227]
+
+

NASCAR

[edit]
+

(key) (Bold – Pole position awarded by qualifying time. Italics – Pole position earned by points standings or practice time. * – Most laps led.) +

+

Cup Series

[edit]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NASCAR Cup Series results +
Year +Team +No. +Make +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +NCSC +Pts +Ref +
2022 +Trackhouse Racing +91 +Chevy +DAY +CAL +LVS +PHO +ATL +COA +RCH +MAR +BRI +TAL +DOV +DAR +KAN +CLT +GTW +SON +NSH +ROA +ATL +NHA +POC +IRC +MCH +RCH +GLN
37 +
DAY +DAR +KAN +BRI +TEX +TAL +CLT +LVS +HOM +MAR +PHO +41st +1 +[228] +
2023 +DAY +CAL +LVS +PHO +ATL +COA
29 +
RCH +BRD +MAR +TAL +DOV +KAN +DAR +CLT +GTW +SON +NSH +CSC +ATL +NHA +POC +RCH +MCH +IRC +GLN +DAY +DAR +KAN +BRI +TEX +TAL +ROV +LVS +HOM +MAR +PHO +40th +8 +[229] +
+

Nationwide Series

[edit]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NASCAR Nationwide Series results +
Year +Team +No. +Make +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +NNSC +Pts +Ref +
2011 +Kyle Busch Motorsports +87 +Toyota +DAY +PHO +LVS +BRI +CAL +TEX +TAL +NSH +RCH +DAR +DOV +IOW +CLT
27 +
CHI +MCH +ROA +DAY +KEN +NHA +NSH +IRP +IOW +GLN +CGV +BRI +ATL +RCH +CHI +DOV +KAN +CLT +TEX +PHO +HOM +89th +01 +[230] +
+

Camping World Truck Series

[edit]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NASCAR Camping World Truck Series results +
Year +Team +No. +Make +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +NCWTC +Pts +Ref +
2011 +Kyle Busch Motorsports +15 +Toyota +DAY +PHO +DAR +MAR +NSH +DOV +CLT
15 +
KAN +TEX +KEN +IOW +NSH +IRP +POC +MCH +BRI +ATL +CHI +NHA +KEN +LVS +TAL +MAR +TEX +HOM +81st +01 +[231] +
+

1 Ineligible for series points. +

+

Formula One records

[edit]
+

Räikkönen holds the following Formula One records: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Record +Achieved +Ref +
Most fastest laps in a season +10[N 1] +2005, 2008 +[232] +
Most races between successive wins +114 +2018 United States Grand Prix +[233] +
Most third places +45 +2018 Brazilian Grand Prix +[234] +
Most podiums not starting from front row +72 +2018 Brazilian Grand Prix +[235] +
Longest time between successive pole positions +3,262 days +2017 Monaco Grand Prix +[236] +
Most races between successive pole positions +168 +2017 Monaco Grand Prix +[237] +
+

Footnotes +

+
+
    +
  1. ^ Record shared with Michael Schumacher (2004). +
  2. +
+

Formula One achievements

[edit]
+
  • The 2007 Chinese Grand Prix saw Räikkönen give Ferrari as a manufacturer their 200th win, as well as their 600th podium.
  • +
  • The 2008 French Grand Prix saw Räikkönen give Ferrari as a manufacturer their 200th pole position.[238]
  • +
  • The 2016 Russian Grand Prix saw Räikkönen give Ferrari as a manufacturer their 700th podium.
  • +
  • Räikkönen is the only driver to win in the V10, V8 and the V6 turbo hybrid engine eras.[239]
  • +
  • Räikkönen is the second driver to win the World Championship after being third in the drivers standings before the final race.
  • +
  • Räikkönen is the third Ferrari driver to win the World Championship in their first year with the team, after Juan Manuel Fangio and Jody Scheckter.
  • +
  • Räikkönen is the third Finnish driver to win the World Championship, after Keke Rosberg and Mika Häkkinen.
  • +
  • Räikkönen is the only driver to win a Grand Prix for Lotus F1.
  • +
  • As of 2023, Räikkönen is the latest Ferrari driver to win the World Championship.
  • +
  • As of 2023, Räikkönen holds the record for the most wins (6) in a debut year with Ferrari.
+

See also

[edit]
+ +

Notes and references

[edit]
+

Notes

[edit]
+
+
    +
  1. ^ The exact years Räikkönen competed in Formula One: 20012009, 20122021 +
  2. +
  3. ^ Räikkönen + has the most wins, podium finishes, fastest laps, points and top-three +championship finishes of any Finnish driver, while Mika Häkkinen has the most titles and pole positions.[1] +
  4. +
+

References

[edit]
+
+
    +
  1. ^ "Finland – Drivers". statsf1.com. Archived from the original on 27 June 2019. Retrieved 25 February 2020. +
  2. +
  3. ^ Stubin, Teemu (2 June 2016). "Kimi Räikkönen hauskuutti tietovisassa: "Hei, hei, tuo on veljeni!"". Iltalehti (in Finnish). Archived from the original on 12 July 2018. Retrieved 4 February 2017. Croft julisti "Matias"-vastauksen oikeaksi, mutta Räikkönen kiiruhti korjaamaan – hänen etunimensä kun on oikeasti Kimi-Matias. +
  4. +
  5. ^ Kulta, Heikki. "Hyvää kannatti odottaa kauan". Turun Sanomat (in Finnish). Archived from the original on 5 August 2013. Retrieved 21 October 2007. +
  6. +
  7. ^ Tremayne, David. "Cool as Ice: Kimi Raikkonen". Formula One Magazine (official). December 2003. Page 63. +
  8. +
  9. ^ Barretto, Lawrence (20 May 2019). "Oral History: The inside story of Kimi Raikkonen's legendary first F1 test". Formula1.com. Formula One World Championship Limited. Archived from the original on 2 June 2020. Retrieved 30 June 2020. +
  10. +
  11. ^ "Formula 1 : Biography Kimi Raikkonen – F1-Live.com". Archived from the original on 20 October 2007. Retrieved 22 October 2007. +
  12. +
  13. ^ Jump up to: a b Maurice Hamilton (9 March 2008). "Hamilton, Maurice – "No fuss, just fast"". The Guardian. London. Archived from the original on 15 December 2013. Retrieved 23 December 2010. +
  14. +
  15. ^ "Todt: Michelin would have done the same". carmag.co.za. 27 November 2001. Archived from the original on 14 January 2019. Retrieved 13 January 2019. +
  16. +
  17. ^ Jump up to: a b Tremayne, David. "Cool as Ice: Kimi Raikkonen". Formula One Magazine (official). December 2003. Page 58. +
  18. +
  19. ^ "Todt: Michelin would have done the same". Crash.net. 8 September 2003. Archived from the original on 31 October 2018. Retrieved 31 October 2018. +
  20. +
  21. ^ Keeble, Tom (26 October 2005). "The 2005 Teams Review – – Autosport Plus". Autosport.com. Archived from the original on 12 August 2019. Retrieved 9 September 2019. +
  22. +
  23. ^ "FIA clarifies tyre ruling". pitpass.com. 27 July 2005. Archived from the original on 16 December 2018. Retrieved 9 September 2019. +
  24. +
  25. ^ Garside, Kevin (4 July 2005). "Telegraph – Alonso puts smile on French faces". The Daily Telegraph. London. Archived from the original on 11 October 2007. Retrieved 7 May 2010. +
  26. +
  27. ^ "ITV – Kimi: Don't take me for granted". Archived from the original on 13 March 2007. +
  28. +
  29. ^ "ITV – Peter Windsor's Chinese GP Preview". Archived from the original on 8 December 2006. +
  30. +
  31. ^ "Awards of F1 Racing magazine". McLaren. 23 November 2005. Archived from the original on 28 September 2007. Retrieved 28 March 2007. +
  32. +
  33. ^ "Räikkönen pips Alonso to British award". Reuters. 6 December 2005. Archived from the original on 26 September 2007. Retrieved 28 March 2007. +
  34. +
  35. ^ "McLaren downplay Ferrari victory". BBC. 24 April 2006. Archived from the original on 27 April 2006. Retrieved 1 June 2007. +
  36. +
  37. ^ "Sporting Lige – Schumacher: Title Race Open". Archived from the original on 30 September 2007. +
  38. +
  39. ^ "Formula1.com – Ferrari confirm Raikkonen, Massa for '07". Archived from the original on 12 October 2007. +
  40. +
  41. ^ Benson, Andrew (8 July 2007). "Canadian Grand Prix". BBC. Archived from the original on 4 July 2007. Retrieved 19 July 2007. +
  42. +
  43. ^ Croft, David (10 June 2007). "French GP". BBC. Archived from the original on 11 July 2007. Retrieved 19 July 2007. +
  44. +
  45. ^ Benson, Andrew (1 July 2007). "British Grand Prix 2007". BBC. Archived from the original on 17 August 2007. Retrieved 19 July 2007. +
  46. +
  47. ^ "Home of Sport: Formula One: News: Räikkönen to race with stiff, sore neck". Archived from the original on 4 March 2016. +
  48. +
  49. ^ "Belgian Grand Prix – selected driver quotes". Formula1.com. Archived from the original on 29 November 2007. Retrieved 18 May 2020. +
  50. +
  51. ^ "Japanese GP – Team Quotes". Archived from the original on 9 August 2013. Retrieved 12 September 2013. +
  52. +
  53. ^ Benson, Andrew (21 October 2007). "Raikkonen the playboy king". BBC Sport. Archived from the original on 23 October 2007. Retrieved 22 November 2007. +
  54. +
  55. ^ "Inquiry casts doubt on F1 title". BBC Sport. 21 October 2007. Archived from the original on 23 October 2007. Retrieved 21 October 2007. +
  56. +
  57. ^ "Investigation throws title into doubt". OverDrive. 21 October 2007. Archived from the original on 25 October 2007. Retrieved 21 October 2007. +
  58. +
  59. ^ "Raikkonen title confirmed". www.express.co.uk. 21 October 2007. Archived from the original on 2 September 2021. Retrieved 18 May 2020. +
  60. +
  61. ^ "F1 teams escape fuel punishment". BBC. 22 October 2007. Archived from the original on 23 October 2007. Retrieved 22 October 2007. McLaren has said it plans to appeal to the FIA, the sport's governing body. +
  62. +
  63. ^ "McLaren lose Brazilian GP appeal". BBC. 16 November 2007. Archived from the original on 2 December 2010. Retrieved 5 January 2010. +
  64. +
  65. ^ "F1 champion Kimi Räikkönen beaten by Pitkämäki in race for annual sports award". International Association of Athletics Federations. 19 December 2007. Archived from the original on 1 April 2016. Retrieved 18 December 2015. +
  66. +
  67. ^ Benson, Andrew (25 May 2008). "Hamilton wins Monaco after crash". BBC Sport. Archived from the original on 28 May 2008. Retrieved 5 January 2010. +
  68. +
  69. ^ "Force India want Raikkonen banned". Planet F1. 25 May 2008. Archived from the original on 26 May 2008. +
  70. +
  71. ^ "Räikkönen on Ferrari's 200th pole – France". Autosport. 21 June 2008. Archived from the original on 5 June 2009. Retrieved 21 June 2008. +
  72. +
  73. ^ "Third win of the season for Massa". F1 Live. 22 June 2008. Archived from the original on 24 June 2008. Retrieved 23 June 2008. +
  74. +
  75. ^ "A tough day for Raikkonen and Massa". F1 Live. 5 July 2008. Archived from the original on 6 July 2008. Retrieved 7 July 2008. +
  76. +
  77. ^ "Kimi branded 'arrogant' after grid fracas". ITV. 8 July 2008. Archived from the original on 25 August 2008. Retrieved 1 September 2008. +
  78. +
  79. ^ Archived at Ghostarchive and the Wayback Machine: "Raikkonen loses his cool at Silverstone 2008". YouTube. 7 July 2008. Retrieved 1 September 2008. +
  80. +
  81. ^ "Ferrari boss defends pit stop actions". GPUpdate.net. 25 August 2008. Archived from the original on 16 June 2012. Retrieved 30 January 2011. +
  82. +
  83. ^ "Raikkonen engine problem same as Massa's". GPUpdate.net. 26 August 2008. Archived from the original on 16 June 2012. Retrieved 30 January 2011. +
  84. +
  85. ^ "Singapore disaster for Ferrari". F1live.com. 28 September 2008. Archived from the original on 29 September 2008. Retrieved 29 September 2008. +
  86. +
  87. ^ "Singapore GP – Sunday – Race Incidents". F1-Grandprix.com. 28 September 2008. Archived from the original on 29 September 2008. Retrieved 29 September 2008. +
  88. +
  89. ^ "Kimi Raikkonen: Profile". F1Pulse.com. Archived from the original on 27 September 2013. Retrieved 22 September 2013. +
  90. +
  91. ^ "Hamilton and Kovalainen left Fuji empty handed". F1live.com. 12 October 2008. Archived from the original on 15 October 2008. Retrieved 17 October 2008. +
  92. +
  93. ^ "Alonso takes second win in a row at Fuji". Autosport. 12 October 2008. Archived from the original on 9 November 2008. Retrieved 22 November 2008. +
  94. +
  95. ^ "Fantastic Fernando takes Fuji". F1live.com. 12 October 2008. Archived from the original on 14 October 2008. Retrieved 13 October 2008. +
  96. +
  97. ^ "Raikkonen drops out championship hunt". F1live.com. 13 October 2008. Archived from the original on 14 October 2008. Retrieved 14 October 2008. +
  98. +
  99. ^ "Kimi – After you Felipe". SkySports.com. 19 October 2008. Archived from the original on 22 October 2008. Retrieved 20 October 2008. +
  100. +
  101. ^ "Raikkonen tops Malaysia practice". BBC Sport. BBC. 3 April 2009. Archived from the original on 6 April 2009. Retrieved 3 April 2009. +
  102. +
  103. ^ "F1 News: Raikkonen wins again as Fisichella stars". Autosport. 30 August 2009. Archived from the original on 2 September 2009. Retrieved 13 September 2009. +
  104. +
  105. ^ "Belgian GP factfile – Feature – F1 | ITV Sport". Itv-f1.com. 26 August 2009. Archived from the original on 1 September 2009. Retrieved 13 September 2009. +
  106. +
  107. ^ "Ferrari confirm capture of Alonso". BBC Sport. 30 September 2009. Archived from the original on 12 March 2012. Retrieved 30 September 2009. +
  108. +
  109. ^ Noble, Jonathan (18 November 2009). "Raikkonen to take a sabbatical in 2010". autosport.com. Haymarket Publications. Archived from the original on 20 November 2009. Retrieved 18 November 2009. +
  110. +
  111. ^ "Raikkonen agrees rallying switch". BBC News. 4 December 2009. Archived from the original on 14 April 2023. Retrieved 7 May 2010. +
  112. +
  113. ^ "Raikkonen to take a sabbatical in 2010". Autosport. 17 November 2009. Archived from the original on 20 November 2009. Retrieved 18 November 2009. +
  114. +
  115. ^ "Angry Raikkonen rules out F1 return with Renault". Motorsport.com. 5 October 2010. Archived from the original on 12 October 2010. Retrieved 23 December 2010. +
  116. +
  117. ^ "Kimi Raikkonen rejects claims of F1 return at Renault". BBC News. 6 October 2010. Archived from the original on 14 April 2023. Retrieved 17 October 2010. +
  118. +
  119. ^ Benson, Andrew (22 September 2011). "Kimi Raikkonen chases F1 return with Williams in 2012". BBC News. Archived from the original on 25 October 2011. Retrieved 5 November 2011. +
  120. +
  121. ^ "Raikkonen to return to Formula 1". BBC News. 29 November 2011. Archived from the original on 14 April 2023. Retrieved 29 November 2011. +
  122. +
  123. ^ Strang, Simon (18 March 2012). "Raikkonen says qualifying mistakes cost him the chance of racing much closer to the front". Autosport. Haymarket Publications. Archived from the original on 18 March 2012. Retrieved 18 March 2012. +
  124. +
  125. ^ "Alonso becomes first double winner in 2012 with superb European GP victory". Autosport. 24 June 2012. Archived from the original on 14 July 2012. Retrieved 24 June 2012. +
  126. +
  127. ^ "Lotus upgrades 'the opening of a new era'". ESPN.co.uk. 9 October 2012. Archived from the original on 27 September 2013. Retrieved 23 September 2012. +
  128. +
  129. ^ "Kimi Raikkonen takes inspiration from 2007 title". ESPN UK. 8 August 2020. Archived from the original on 28 September 2013. Retrieved 8 August 2020. +
  130. +
  131. ^ Kimi Räikkönen, PILOTE DE L'ANNEE des lecteurs TOILE F1 | Lotus F1 Team Archived 6 December 2012 at the Wayback Machine. Toilef1.com (4 August 2013). Retrieved on 16 August 2013. +
  132. +
  133. ^ "'One of my easiest wins', declares Raikkonen". Crash.net. Crash Media Group. 17 March 2013. Archived from the original on 20 March 2013. Retrieved 29 March 2013. +
  134. +
  135. ^ "Raikkonen handed three-place grid penalty for impeding". Formula1.com. Formula One Administration. 23 March 2013. Archived from the original on 26 March 2013. Retrieved 29 March 2013. +
  136. +
  137. ^ "Malaysia: selected team and driver quotes". Formula1.com. Formula One Administration. 24 March 2013. Archived from the original on 21 November 2013. Retrieved 29 March 2013. +
  138. +
  139. ^ Jump up to: a b Benson, Andrew (10 September 2013). "Kimi Raikkonen joins Ferrari as Fernando Alonso's team-mate". BBC Sport. Archived from the original on 12 November 2013. Retrieved 18 November 2013. +
  140. +
  141. ^ Jump up to: a b "Kimi Raikkonen signs two-year deal to partner Fernando Alonso at Ferrari following Felipe Massa departure". Telegraph. 11 September 2013. Archived from the original on 14 September 2013. Retrieved 8 October 2013. +
  142. +
  143. ^ Jump up to: a b Benson, Andrew (19 September 2013). "Kimi Raikkonen joining Ferrari because of money dispute". BBC Sport. Archived from the original on 8 October 2013. Retrieved 18 November 2013. +
  144. +
  145. ^ Jump up to: a b "Kimi Raikkonen: I left Lotus for Ferrari in dispute over money". The Guardian. 19 September 2013. Archived from the original on 19 September 2013. Retrieved 8 October 2013. +
  146. +
  147. ^ Noble, Jonathan (21 September 2013). "Singapore GP: Kimi Raikkonen to qualify despite back pain issue". Autosport. Haymarket. Archived from the original on 24 September 2013. Retrieved 18 November 2013. +
  148. +
  149. ^ Noble, Jonathan; Beer, Matt (22 September 2013). "Singapore GP: Kimi Raikkonen says back pain no problem in race". Autosport. Haymarket. Archived from the original on 10 November 2013. Retrieved 18 November 2013. +
  150. +
  151. ^ Jump up to: a b O'Leary, Jamie (27 October 2013). "Indian GP: Vettel takes fourth F1 title with crushing win". Autosport. Haymarket. Archived from the original on 30 October 2013. Retrieved 18 November 2013. +
  152. +
  153. ^ Elizalde, Pablo (28 October 2013). "Eric Boullier apologises for Kimi Raikkonen/Lotus F1 radio exchange". Autosport. Haymarket. Archived from the original on 31 October 2013. Retrieved 18 November 2013. +
  154. +
  155. ^ "Lotus apologise for radio outburst at Raikkonen". The F1 Times. 29 October 2013. Archived from the original on 1 December 2013. Retrieved 18 November 2013. +
  156. +
  157. ^ Noble, Jonathan (31 October 2013). "Kimi Raikkonen absence fuels doubts over Lotus F1 team relationship". Autosport. Haymarket. Archived from the original on 3 November 2013. Retrieved 18 November 2013. +
  158. +
  159. ^ Benson, Andrew (1 November 2013). "Kimi Raikkonen threatens to boycott races over pay dispute". BBC Sport. Archived from the original on 13 November 2013. Retrieved 18 November 2013. +
  160. +
  161. ^ Noble, Jonathan (2 November 2013). "Abu Dhabi GP: Kimi Raikkonen's Lotus excluded from qualifying". Autosport. Haymarket. Archived from the original on 6 November 2013. Retrieved 18 November 2013. +
  162. +
  163. ^ Noble, Jonathan (3 November 2013). "Kimi Raikkonen to see out 2013 F1 season with Lotus as row settled". Autosport. Haymarket. Archived from the original on 6 November 2013. Retrieved 18 November 2013. +
  164. +
  165. ^ Noble, Jonathan (3 November 2013). "Quantum says its Lotus Formula 1 investment deal is done". Autosport. Haymarket. Archived from the original on 6 November 2013. Retrieved 18 November 2013. +
  166. +
  167. ^ Noble, Jonathan (10 November 2013). "Kimi Raikkonen to miss rest of 2013 F1 season for back surgery". Autosport. Haymarket Publications. Archived from the original on 10 November 2013. Retrieved 10 November 2013. +
  168. +
  169. ^ "Heikki Kovalainen replaces Kimi Raikkonen at Lotus". BBC Sport. 14 November 2013. Archived from the original on 18 November 2013. Retrieved 18 November 2013. +
  170. +
  171. ^ Anderson, Ben. "Monaco GP: Kimi Raikkonen says Max Chilton destroyed his race". Autosport.com. Archived from the original on 7 December 2019. Retrieved 7 December 2019. +
  172. +
  173. ^ Smith, Luke; DiZinno, Tony (30 November 2014). "F1 2014 Driver Review: Kimi Raikkonen". NBC Sports. Archived from the original on 2 January 2015. Retrieved 9 January 2015. +
  174. +
  175. ^ Noble, Jonathan (26 June 2014). "Kimi Raikkonen hurt by perfect storm during 2014 F1 season". Autosport.com. Archived from the original on 7 December 2019. Retrieved 7 December 2019. +
  176. +
  177. ^ Tremayne, David (15 March 2015). "Australian Grand Prix report: Hamilton leads all the way, but insists it's not a procession". The Independent. Archived from the original on 12 February 2018. Retrieved 12 April 2015. +
  178. +
  179. ^ "Kimi Raikkonen reprimanded for driving in a 'potentially dangerous manner'". Sky Sports. 17 April 2015. Archived from the original on 18 April 2015. Retrieved 17 April 2015. +
  180. +
  181. ^ Cooper, Adam (17 April 2015). "Raikkonen heading for extended Ferrari deal, says Robertson". Adam Cooper F1. Archived from the original on 19 April 2015. Retrieved 17 April 2015. +
  182. +
  183. ^ Noble, Jonathan (4 July 2014). "Kimi Raikkonen likely to leave F1 when Ferrari deal ends after 2015". Autosport. Haymarket Publications. Archived from the original on 18 April 2015. Retrieved 17 April 2015. +
  184. +
  185. ^ Galloway, James (19 April 2015). "Bahrain GP: Lewis Hamilton claims another win ahead of duelling rivals". Sky Sports. Archived from the original on 19 April 2015. Retrieved 19 April 2015. +
  186. +
  187. ^ Barretto, Lawrence (19 April 2015). "F1 Bahrain: Ferrari's Kimi Raikkonen promises much more to come". Autosport. Haymarket Publications. Archived from the original on 20 April 2015. Retrieved 20 April 2015. +
  188. +
  189. ^ "'Raikkonen showed he's a race animal'". PlanetF1.com. 20 April 2015. Archived from the original on 22 April 2015. +
  190. +
  191. ^ "How the Spanish GP unfolded". BBC. 10 May 2015. Archived from the original on 25 May 2021. Retrieved 26 May 2020. +
  192. +
  193. ^ "'Raikkonen frustrated with "disaster" qualifying in Monaco GP'". f1fanatic.co.uk. 23 May 2015. Archived from the original on 13 February 2018. Retrieved 22 September 2015. +
  194. +
  195. ^ Hodges, Vicki (7 June 2015). "'Canadian Grand Prix 2015: Lewis Hamilton cruises to victory'". telegraph.co.uk. Archived from the original on 1 November 2018. Retrieved 4 April 2018. +
  196. +
  197. ^ "Raikkonen's contract extended". Scuderia Ferrari. 19 August 2015. Archived from the original on 21 August 2015. Retrieved 19 August 2015. +
  198. +
  199. ^ "Raikkonen: The dream goes on". Scuderia Ferrari. 19 August 2015. Retrieved 19 August 2015. +
  200. +
  201. ^ Johnson, Daniel (23 August 2015). "'Belgian Grand Prix 2015: Lewis Hamilton strolls to victory at Spa'". telegraph.co.uk. Archived from the original on 1 November 2018. Retrieved 4 April 2018. +
  202. +
  203. ^ Barretto, Lawrence (6 September 2015). "Kimi Raikkonen puts bad start down to Ferrari F1 clutch". Autosport. Archived from the original on 8 September 2015. Retrieved 11 September 2015. +
  204. +
  205. ^ Saunders, Nate (20 September 2015). "Kimi Raikkonen on third: 'Not ideal – but I'll take it'". espn.co.uk. Archived from the original on 19 August 2019. Retrieved 26 May 2020. +
  206. +
  207. ^ "2015 Formula 1 Etihad Airways Abu Dhabi Grand Prix – Race". Formula1.com. Archived from the original on 27 January 2016. Retrieved 1 February 2016. +
  208. +
  209. ^ Esler, William (20 March 2016). "2016 Australian GP: Nico Rosberg wins after Ferrari strategy error". Sky Sports F1. Archived from the original on 22 March 2016. Retrieved 4 April 2016. +
  210. +
  211. ^ Benson, Andrew (3 April 2016). "Bahrain GP: Nico Rosberg wins after Lewis Hamilton collision". BBC. Archived from the original on 4 April 2016. Retrieved 4 April 2016. +
  212. +
  213. ^ Cooper, Adam (17 April 2016). "Kimi Raikkonen left frustrated after contact with teammate in China". FOX Sports. Archived from the original on 21 April 2016. Retrieved 2 May 2016. +
  214. +
  215. ^ Edmondson, Laurence (1 May 2016). "Kimi Raikkonen: Ferrari 'not fast enough' to challenge Mercedes". ESPN. Archived from the original on 3 May 2016. Retrieved 2 May 2016. +
  216. +
  217. ^ "Räikkönen admits Ferrari 'not fast enough'". GP Update. 1 May 2016. Archived from the original on 4 May 2016. Retrieved 4 May 2016. +
  218. +
  219. ^ "Kimi Raikkonen disappointed with second place". ESPN. 15 May 2016. Archived from the original on 18 May 2016. Retrieved 16 May 2016. +
  220. +
  221. ^ "Who won the team mate battles of 2016: The front runners". www.racefans.net. December 2016. Archived from the original on 15 November 2020. Retrieved 7 December 2019. +
  222. +
  223. ^ Gill, Pete (27 May 2017). "Monaco GP Qualifying: Kimi Raikkonen on pole position but Lewis Hamilton in trouble". Sky Sports. Archived from the original on 27 May 2017. Retrieved 28 May 2017. +
  224. +
  225. ^ Green, Jonathan (28 May 2017). "Ferrari in pole position to end 16-year wait for Monaco GP win". Sky Sports. Archived from the original on 28 July 2017. Retrieved 28 May 2017. +
  226. +
  227. ^ "Monaco Grand Prix 2017". Archived from the original on 4 September 2019. Retrieved 4 September 2019. +
  228. +
  229. ^ "Ferrari – One-two • STATS F1". www.statsf1.com. Archived from the original on 29 May 2019. Retrieved 17 May 2020. +
  230. +
  231. ^ "Vettel admits Raikkonen 'a lot faster' most of the race". www.motorsport.com. 30 July 2017. Archived from the original on 4 September 2019. Retrieved 4 September 2019. +
  232. +
  233. ^ "Results". Formula1.com. Formula One World Championship Limited. Archived from the original on 17 September 2017. Retrieved 31 October 2017. +
  234. +
  235. ^ "2017 Formula 1 Pirelly Belgian Grand Prix – race result". Formula1.com. Formula One World Championship Limited. Archived from the original on 26 August 2017. Retrieved 31 October 2017. +
  236. +
  237. ^ "Formula 1 Gran Premio Heineken d'Italia 2017 – race result". Formula1.com. Formula One World Championship Limited. Archived from the original on 2 September 2017. Retrieved 31 October 2017. +
  238. +
  239. ^ "2017 Formula 1 Singapore Airlines Singapore Grand Prix – qualifying". Formula1.com. Formula One World Championship Limited. Archived from the original on 30 September 2017. Retrieved 31 October 2017. +
  240. +
  241. ^ "Formula One: Hamilton wins Singapore Grand Prix after Vettel crashes out". Channel NewsAsia. 17 September 2017. Archived from the original on 7 November 2017. Retrieved 31 October 2017. +
  242. +
  243. ^ Gray, James (1 October 2017). "Ferrari suffer grid DISASTER with Kimi Raikkonen OUT of Malaysian Grand Prix before start". Express.co.uk. Archived from the original on 7 November 2017. Retrieved 31 October 2017. +
  244. +
  245. ^ "2017 Formula 1 Japanese Grand Prix – race result". Formula1.com. Formula One World Championship Limited. Archived from the original on 7 October 2017. Retrieved 31 October 2017. +
  246. +
  247. ^ "2017 Formula 1 United States Grand Prix – race result". Formula1.com. Formula One World Championship Limited. Archived from the original on 24 October 2017. Retrieved 31 October 2017. +
  248. +
  249. ^ "Formula 1 Gran Premio de México 2017 – race result". Formula1.com. Formula One World Championship Limited. Archived from the original on 29 October 2017. Retrieved 31 October 2017. +
  250. +
  251. ^ "Renewal of the agreement between Scuderia Ferrari and Kimi Raikkonen". formula1.ferrari.com. 22 August 2017. Archived from the original on 22 August 2017. Retrieved 22 August 2017. +
  252. +
  253. ^ "What the teams said – Qualifying in Sakhir". Formula1.com. Archived from the original on 3 August 2020. Retrieved 4 April 2020. +
  254. +
  255. ^ "Bahrain GP: Ferrari mechanic breaks leg in Kimi Raikkonen pit lane accident". BBC Sport. 9 April 2018. Archived from the original on 11 April 2018. Retrieved 11 April 2018. +
  256. +
  257. ^ Collantine, Keith (17 April 2018). "Analysis: How Ferrari's Vettel-first strategy ruined Raikkonen's race". racefans.net. Archived from the original on 14 April 2023. Retrieved 4 April 2020. +
  258. +
  259. ^ "Ferrari to replace Raikkonen's engine after FP2 issue". www.motorsport.com. Archived from the original on 2 June 2022. Retrieved 4 April 2020. +
  260. +
  261. ^ "Mercedes, Ferrari unveil Spec-3 engines". PlanetF1. 24 August 2018. Archived from the original on 1 October 2020. Retrieved 4 April 2020. +
  262. +
  263. ^ "Thursday's Hot Topic – Which PU manufacturer will deliver the best upgrade?". Formula1.com. Archived from the original on 19 September 2020. Retrieved 4 April 2020. +
  264. +
  265. ^ "Raikkonen engine failure unlikely to prompt another change". www.motorsport.com. 15 May 2018. Archived from the original on 7 July 2019. Retrieved 4 April 2020. +
  266. +
  267. ^ "British GP: Why was Kimi Raikkonen penalty 10 not five seconds?". Sky Sports. Archived from the original on 13 July 2019. Retrieved 4 April 2020. +
  268. +
  269. ^ "Fuel miscalculation wrecked Raikkonen's Spa qualifying". www.motorsport.com. 25 August 2018. Archived from the original on 9 November 2020. Retrieved 4 April 2020. +
  270. +
  271. ^ "Sebastian Vettel wins Belgian GP after avoiding huge opening corner crash". CNN. 26 August 2018. Archived from the original on 24 October 2020. Retrieved 4 April 2020. +
  272. +
  273. ^ "MOVE OVER MONTOYA: Raikkonen breaks record for fastest lap in F1 history". Formula1.com. Archived from the original on 29 October 2018. Retrieved 4 April 2020. +
  274. +
  275. ^ Collantine, Keith (4 September 2018). "Bottas says helping Hamilton didn't compromise his result". racefans.net. Archived from the original on 9 November 2020. Retrieved 4 April 2020. +
  276. +
  277. ^ Haldenby, Nicky (3 September 2018). "F1's 100 Podium Club › Badger GP". badgergp.com. Archived from the original on 1 October 2020. Retrieved 4 April 2020. +
  278. +
  279. ^ "Raikkonen: Japanese GP fight ended by damage in Verstappen hit". Crash. 7 October 2018. Archived from the original on 7 October 2018. Retrieved 4 April 2020. +
  280. +
  281. ^ "The numbers behind Kimi Raikkonen's record-breaking victory". Sky Sports. 21 October 2018. Archived from the original on 22 October 2018. Retrieved 21 October 2018. +
  282. +
  283. ^ "Abu Dhabi Grand Prix – Seb second and Kimi still third". 28 November 2018. Archived from the original on 28 November 2018. Retrieved 4 April 2020. +
  284. +
  285. ^ "Kimi Räikkönen to race for the Alfa Romeo Sauber F1 Team from 2019". www.sauberf1team.com. Archived from the original on 11 September 2018. Retrieved 11 September 2018. +
  286. +
  287. ^ "F1 Testing: Kimi Raikkonen makes Sauber return as Sebastian Vettel sets pace". Sky Sports F1. 27 November 2018. Archived from the original on 28 November 2018. Retrieved 28 November 2018. +
  288. +
  289. ^ "Hungary 2019 – Championship • STATS F1". www.statsf1.com. Archived from the original on 4 August 2019. Retrieved 7 December 2019. +
  290. +
  291. ^ Cooper, Adam (16 October 2019). "Vasseur: Alfa Romeo has no need to panic over its F1 race pace". Autosport.com. Archived from the original on 7 December 2019. Retrieved 7 December 2019. +
  292. +
  293. ^ "Verstappen and Raikkonen bemoan first-lap clash". Formula1.com. Archived from the original on 3 September 2019. Retrieved 7 December 2019. +
  294. +
  295. ^ "How much is the Ferrari engine holding Haas and Alfa back?". The Race. 24 July 2020. Archived from the original on 1 September 2020. Retrieved 17 September 2020. +
  296. +
  297. ^ "The F1 'championship' Raikkonen is leading". The Race. 24 August 2020. Archived from the original on 15 April 2021. Retrieved 17 September 2020. +
  298. +
  299. ^ "2020 Driver Standings". Formula1.com. Archived from the original on 28 January 2021. Retrieved 2 January 2021. +
  300. +
  301. ^ "The 'wins' that made Raikkonen the backmarker king". The Race. 17 November 2020. Archived from the original on 17 November 2020. Retrieved 2 January 2021. +
  302. +
  303. ^ "Team mate battles 2020: The final score – Raikkonen vs Giovinazzi · RaceFans". RaceFans. 15 December 2020. Archived from the original on 16 December 2020. Retrieved 2 January 2021. +
  304. +
  305. ^ GPfans.com (17 September 2020). "F1 2020: Half-term driver rankings, part one". GPfans. Archived from the original on 6 October 2020. Retrieved 2 January 2021. +
  306. +
  307. ^ "Verstappen wins processional Abu Dhabi Grand Prix". FormulaSpy. 13 December 2020. Archived from the original on 14 December 2020. Retrieved 2 January 2021. +
  308. +
  309. ^ "Raikkonen typically nonchalant about prospect of breaking F1 race starts record at Eifel GP". Formula1.com. Archived from the original on 3 December 2020. Retrieved 2 January 2021. +
  310. +
  311. ^ "Kimi's Portugal launch claims FIA Action of the Year award". Sauber Group. Archived from the original on 20 January 2021. Retrieved 2 January 2021. +
  312. +
  313. ^ "Alfa Romeo to retain Raikkonen and Giovinazzi in unchanged 2021 driver line-up: Formula 1". Formula1.com. 30 October 2020. Archived from the original on 1 November 2020. Retrieved 30 October 2020. +
  314. +
  315. ^ Smith, Luke (1 September 2021). "Kimi Raikkonen to retire from Formula 1 at end of 2021 season". Autosport. Archived from the original on 1 September 2021. Retrieved 1 September 2021. +
  316. +
  317. ^ "Raikkonen ruled out of Italian Grand Prix, with Kubica set to deputise again for Alfa Romeo". Formula1. 8 September 2021. Archived from the original on 9 September 2021. Retrieved 9 September 2021. +
  318. +
  319. ^ Kelly, Sean (6 June 2021). "Azerbaijan GP Facts & Stats: Hamilton's record 54-race points streak is over". Formula1.com. Archived from the original on 15 December 2021. Retrieved 28 September 2021. In P10, Alfa Romeo's Kimi Raikkonen took his first point of 2021. +
  320. +
  321. ^ Medland, Chris (1 August 2021). "UPDATE: Vettel disqualified from second place in Hungary". Racer.com. Archived from the original on 28 September 2021. Retrieved 28 September 2021. ...and Kimi Raikkonen is elevated to 10th. +
  322. +
  323. ^ "Kimi Räikkönen Marks F1 Return With Points Finish". f1chronicle.com. 26 September 2021. Archived from the original on 28 September 2021. Retrieved 28 September 2021. +
  324. +
  325. ^ "Formula 1 Gran Premio de la Ciudad de México 2021 – race result". Formula1.com. Archived from the original on 25 December 2021. Retrieved 13 December 2021. +
  326. +
  327. ^ Valantine, Henry (27 November 2021). "Alfa Romeo give Kimi Raikkonen a fitting send-off from their Hinwil factory". PlanetF1. Archived from the original on 13 December 2021. Retrieved 13 December 2021. +
  328. +
  329. ^ Fans, Scuderia (11 December 2021). "In pictures: Ferrari farewell celebration for Kimi Raikkonen". Scuderia Fans. Archived from the original on 13 December 2021. Retrieved 13 December 2021. +
  330. +
  331. ^ KIITOS KIMI – Our tribute to Kimi Raikkonen, 15 December 2021, archived from the original on 17 December 2021, retrieved 17 December 2021 +
  332. +
  333. ^ "Alfa Romeo has a sweet parting message for Kimi". Top Gear. 9 December 2021. Archived from the original on 12 December 2021. Retrieved 12 December 2021. +
  334. +
  335. ^ "10 things we learned from F1's 2021 Abu Dhabi Grand Prix". Autosport.com. 13 December 2021. Archived from the original on 13 December 2021. Retrieved 13 December 2021. Kimi + Raikkonen made his 349th and final F1 appearance on Sunday, but it all +ended abruptly after he was forced to retire on lap 25 due to an issue +on his left-rear wheel that caused him to spin off-track into the +barriers. +
  336. +
  337. ^ "Raikkonen says early end to final F1 race 'doesn't matter' as he looks forward to retirement". formula1.com. Archived from the original on 13 December 2021. Retrieved 13 December 2021. +
  338. +
  339. ^ "2021 Driver Standings". Formula1.com. Archived from the original on 28 March 2021. Retrieved 13 December 2021. +
  340. +
  341. ^ "Raikkonen and Hakkinen to contest Arctic Lapland Rally". Archived from the original on 16 January 2009. Retrieved 22 January 2009. +
  342. +
  343. ^ Raikkonen to make rally debut Archived 14 April 2023 at the Wayback Machine, BBC News, 29 June 2009 21:52 GMT (. Retrieved 30 June 2009) +
  344. +
  345. ^ "Raikkonen rolls out of rally". Autosport. Haymarket Publishing. 1 August 2009. Archived from the original on 4 August 2009. Retrieved 2 August 2009. +
  346. +
  347. ^ Kimi Raikkonen signs with Citröen junior rally team Archived 10 February 2010 at the Wayback Machine AUSmotive.com, 4 December 2009 +
  348. +
  349. ^ "Räikkönen teki suomalaista moottoriurheiluhistoriaa!". MTV3 (in Finnish). 3 April 2010. Archived from the original on 6 April 2010. Retrieved 3 April 2010. +
  350. +
  351. ^ eWRC-results.com. "Stage results Neste Oil Rally Finland 2010". eWRC-results.com. Archived from the original on 7 May 2019. Retrieved 18 August 2019. +
  352. +
  353. ^ Evans, David (19 September 2010). "Raikkonen wins French national rally". Autosport.com. Retrieved 29 November 2019.[permanent dead link] +
  354. +
  355. ^ "Raikkonen Crashes Out of Catalunya during Shakedown". autoevolution. 21 October 2010. Archived from the original on 10 June 2012. Retrieved 23 December 2010. +
  356. +
  357. ^ "World Rally Championship – News – Huge entry for World Rally Championship opener". Wrc.com. Archived from the original on 24 September 2012. Retrieved 29 March 2011. +
  358. +
  359. ^ "NASCAR News: Raikkonen to compete in NASCAR". Autosport. 29 March 2011. Archived from the original on 15 July 2011. Retrieved 29 March 2011. +
  360. +
  361. ^ Ryan, Nate (28 May 2011). "Kimi Raikkonen is 27th in challenging Nationwide debut". USA Today. Archived from the original on 9 August 2011. Retrieved 13 July 2011. +
  362. +
  363. ^ Pockrass, Bob (18 June 2011). "Deal falls through for Kimi Raikkonen to drive for Robby Gordon at Infineon Raceway". Sporting News. Archived from the original on 3 June 2016. Retrieved 13 May 2016. +
  364. +
  365. ^ Medland, Chris (26 May 2022). "Raikkonen to make Cup Series debut for Trackhouse at Watkins Glen". RACER. Archived from the original on 26 May 2022. Retrieved 26 May 2022. +
  366. +
  367. ^ Jump up to: a b "Raikkonen's impressive NASCAR Cup debut ends in crash". The Race. 22 August 2022. Archived from the original on 16 October 2022. Retrieved 16 October 2022. +
  368. +
  369. ^ "NASCAR: Raikkonen sets 27th fastest time in qualifying – Athletistic". athletistic.com. 20 August 2022. Archived from the original on 16 October 2022. Retrieved 16 October 2022. +
  370. +
  371. ^ "Kimi Räikkönen's Cup Series debut ends early in Watkins Glen crash". NASCAR.com. NASCAR Digital Media, LLC. 21 August 2022. Archived from the original on 21 August 2022. Retrieved 22 August 2022. +
  372. +
  373. ^ "Raikkonen "got unlucky" with COTA chaos on NASCAR return". www.autosport.com. 27 March 2023. Archived from the original on 29 March 2023. Retrieved 29 March 2023. +
  374. +
  375. ^ "What happened in Raikkonen and Button's Austin NASCAR outing". The Race. 26 March 2023. Archived from the original on 29 March 2023. Retrieved 29 March 2023. +
  376. +
  377. ^ "Kimi Räikkönen and Jenni Dahlman-Räikkönen confirm: "Separation is a sad fact"". Seiska Live. SeiskaLive & Aller Media. Archived from the original on 16 August 2014. Retrieved 3 May 2013. +
  378. +
  379. ^ "Kimi Räikkösen Minttu-rakas on raskaana". MTV3. 5 August 2014. Archived from the original on 8 January 2015. Retrieved 7 January 2015. +
  380. +
  381. ^ van Osten, Phillip (15 August 2019). "Meet the 'Aceman', the Raikkonen family's new young charger". F1i.com. Archived from the original on 16 August 2019. Retrieved 19 November 2019. +
  382. +
  383. ^ Flanagan, Aaron (8 August 2016). "Former F1 world champion Kimi Raikkonen marries model Minttu Virtanen in Tuscany ceremony". mirror.co.uk. Archived from the original on 31 May 2019. Retrieved 8 August 2016. +
  384. +
  385. ^ van Osten, Phillip (17 May 2017). "Kimi Raikkonen: it's a girl!". F1i.com. Archived from the original on 14 April 2023. Retrieved 19 November 2019. +
  386. +
  387. ^ "Kimi Raikkonen welcomes third child with wife Minttu Raikkonen". FirstSportz. 14 June 2023. Archived from the original on 14 June 2023. Retrieved 14 June 2023. +
  388. +
  389. ^ Kanerva, Juha (20 October 2023). "Tällainen on Kimi Räikkösen asuinpaikka Italiassa". Helsingin Sanomat (in Finnish). Archived from the original on 1 November 2023. Retrieved 1 November 2023. +
  390. +
  391. ^ Marx, Jens. "Cool Raikkonen becomes a Tifosi favourite". Bangkok Post. Retrieved 23 October 2007. +
  392. +
  393. ^ Benson, Andrew (21 October 2007). "Raikkonen the playboy king". BBC. Archived from the original on 23 October 2007. Retrieved 23 October 2007. +
  394. +
  395. ^ "Raikkonen wins in the snow". Autosport. 12 March 2007. Archived from the original on 16 September 2007. Retrieved 23 October 2007. +
  396. +
  397. ^ Baker, Andrew. "Kimi Raikkonen has the last word". The Daily Telegraph. Archived from the original on 1 October 2009. Retrieved 5 November 2012. +
  398. +
  399. ^ Baldwin, Alan (2 August 2007). "Raikkonen questioned about day out as a gorilla". Reuters. Archived from the original on 15 April 2008. Retrieved 25 December 2007. +
  400. +
  401. ^ "Kimi gets Finnish stamp of approval". ITV-F1. 14 August 2008. Archived from the original on 18 August 2008. +
  402. +
  403. ^ "Forbes 100 Celebrities 2008 – No. 36 Kimi Raikkonen". 11 June 2008. Archived from the original on 7 November 2017. Retrieved 2 September 2017. +
  404. +
  405. ^ Badenhausen, Kurt (17 June 2009). "The World's Highest-Paid Athletes". Forbes. Archived from the original on 5 August 2017. Retrieved 13 September 2009. +
  406. +
  407. ^ "ICE1RACING". Ice1racing.fi. Archived from the original on 30 October 2011. Retrieved 5 November 2011. +
  408. +
  409. ^ "Raikkonen files extortion complaint in Canada". Speedcafe. 1 June 2018. Archived from the original on 22 May 2021. Retrieved 1 June 2018. +
  410. +
  411. ^ Evenstar Saima (25 April 2007), "F1Racing Magazine Issue May – on Kimi", F1Racing Magazine, no. May 2007, archived from the original on 12 December 2021, retrieved 12 December 2021 +
  412. +
  413. ^ "Räikkösen puhekyvyn taustalla erikoinen tarina – "poikanne on keskivertoa älykkäämpi"". Ilta-Sanomat (in Finnish). 17 August 2012. Archived from the original on 2 September 2021. Retrieved 15 August 2020. +
  414. +
  415. ^ "Kimi hurmasi Vettelin – yksi piirre ylitse muiden". www.iltalehti.fi (in Finnish). Archived from the original on 20 January 2023. Retrieved 20 January 2023. +
  416. +
  417. ^ Bhattacharjee, Somin (31 January 2022). ""It's + been a while since we played badminton against each other": Kimi +Raikkonen reveals the drivers he plans to stay in touch with during his +retirement". The SportsRush. Archived from the original on 20 January 2023. Retrieved 20 January 2023. +
  418. +
  419. ^ Fans, Scuderia (20 March 2020). "Kimi on making friends among F1 drivers: "Seb and Antonio are two real friends. Apart from them I don't have many"". Scuderia Fans. Archived from the original on 20 January 2023. Retrieved 20 January 2023. +
  420. +
  421. ^ Motor racing: No small talk, just big deeds from throwback Kimi | Sport | The Observer Archived 18 January 2017 at the Wayback Machine. Guardian (21 October 2007). Retrieved on 16 August 2013. +
  422. +
  423. ^ Jump up to: a b Lindberg, Austin (August 2013). "Kimi Räikkönen Is the Most Interesting Man in Formula 1". Car and Driver. Archived from the original on 16 February 2015. Retrieved 23 November 2014. +
  424. +
  425. ^ "Raikkonen reveals why he ate ice cream in Malaysia 2009". F1 Pulse. 15 February 2013. Archived from the original on 3 July 2015. Retrieved 23 November 2014. +
  426. +
  427. ^ "Vettel to miss Raikkonen "silence" after F1 swansong". GP Fans. 30 November 2021. Archived from the original on 30 November 2021. +
  428. +
  429. ^ "6 classic Kimi Raikkonen moments that perfectly sum up F1's coolest driver". DriveTribe. 2017. Archived from the original on 14 November 2021. Retrieved 14 November 2021. +
  430. +
  431. ^ "Farewell To A Legend: Kimi Raikkonen Reflects On His Memorable Career | Beyond The Grid F1 Podcast". YouTube. 8 December 2021. Archived from the original on 10 December 2021. Retrieved 5 January 2022. +
  432. +
  433. ^ "F1". www.facebook.com. Archived from the original on 14 April 2023. Retrieved 24 November 2018. +
  434. +
  435. ^ "Raikkonen gives out Lotus T-shirt". BBC Sport. Archived from the original on 17 October 2015. Retrieved 5 November 2015. +
  436. +
  437. ^ "Grill". Formula One Official Website. Archived from the original on 24 June 2016. Retrieved 22 June 2016. +
  438. +
  439. ^ "Profile". Kimi Räikkönen Official Website. Archived from the original on 7 October 2014. Retrieved 23 November 2014. +
  440. +
  441. ^ "Raikkonen becomes Team Principal of Kawasaki motocross squad following F1 retirement". www.formula1.com. 27 January 2022. Archived from the original on 2 June 2022. Retrieved 28 January 2022. +
  442. +
  443. ^ "Kimi Räikkönen | Racing career profile | Driver Database". www.driverdb.com. Archived from the original on 1 December 2021. Retrieved 1 December 2021. +
  444. +
  445. ^ "Kimi Raikkonen". Motor Sport. Archived from the original on 27 August 2023. Retrieved 27 August 2023. +
  446. +
  447. ^ Jump up to: a b c "Kimi Räikkönen Results". Motorsport Stats. Archived from the original on 27 August 2023. Retrieved 27 August 2023. +
  448. +
  449. ^ "Kimi Räikkönen: Racedriver biography – career and success". Speedsport Magazine. Archived from the original on 27 August 2023. Retrieved 27 August 2023. +
  450. +
  451. ^ "Kimi Raikkonen – Involvement". StatsF1. Archived from the original on 25 July 2023. Retrieved 27 August 2023. +
  452. +
  453. ^ "Kimi Räikkönen". eWRC-results.com. Archived from the original on 27 August 2023. Retrieved 27 August 2023. +
  454. +
  455. ^ "Kimi Raikkonen – 2022 NASCAR Cup Series Results". Racing-Reference. NASCAR Digital Media, LLC. Archived from the original on 8 March 2023. Retrieved 8 March 2023. +
  456. +
  457. ^ "Kimi Raikkonen – 2023 NASCAR Cup Series Results". Racing-Reference. NASCAR Digital Media, LLC. Archived from the original on 27 March 2023. Retrieved 26 March 2023. +
  458. +
  459. ^ "Kimi Raikkonen – 2011 NASCAR Nationwide Series Results". Racing-Reference. NASCAR Digital Media, LLC. Archived from the original on 11 March 2022. Retrieved 11 March 2022. +
  460. +
  461. ^ "Kimi Raikkonen – 2011 NASCAR Camping World Truck Series Results". Racing-Reference. USA Today Sports Media Group. Archived from the original on 11 March 2022. Retrieved 11 March 2022. +
  462. +
  463. ^ "Statistics Drivers – Fastests laps – In a year • STATS F1". www.statsf1.com. Archived from the original on 22 October 2018. Retrieved 15 December 2018. +
  464. +
  465. ^ "Statistics Drivers – Wins – Interval between two". StatsF1.com. Archived from the original on 7 October 2018. Retrieved 6 November 2018. +
  466. +
  467. ^ "Most 3rd places". StatsF1.com. Archived from the original on 30 August 2016. Retrieved 4 September 2016. +
  468. +
  469. ^ "15 Formula 1 records that could be broken in 2022". WTF1. 16 March 2022. Archived from the original on 5 September 2022. Retrieved 5 September 2022. +
  470. +
  471. ^ "Longest interval between Pole positions". StatsF1.com. Archived from the original on 6 September 2017. Retrieved 5 September 2017. +
  472. +
  473. ^ "Longest interval between Pole positions". StatsF1.com. Archived from the original on 6 September 2017. Retrieved 5 September 2017. +
  474. +
  475. ^ Baldwin, Alan (21 June 2008). "Raikkonen secures Ferrari's 200th F1 pole". Reuters. Archived from the original on 26 August 2019. Retrieved 29 April 2017. +
  476. +
  477. ^ George, Dhruv (23 October 2018). "Raikkonen Now Owns a Unique Record". Essentially Sports. Archived from the original on 1 November 2018. Retrieved 31 October 2018. +
  478. +
+

Bibliography

[edit]
+ +
[edit]
+ + + + + + + + + +
+
+ +
+
+ +
+ +
+
+
+
+
+ + + +
+ + +
+
+ +
+
+
+
    + +
+
+ + + +
\ No newline at end of file diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Ambox_important.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Ambox_important.svg.webp new file mode 100644 index 0000000..f48d323 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Ambox_important.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Ambox_important.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Ambox_important.svg_002.webp new file mode 100644 index 0000000..4c10759 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Ambox_important.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Ambox_important.svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Ambox_important.svg_003.webp new file mode 100644 index 0000000..9632d60 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Ambox_important.svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Commons-logo.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Commons-logo.svg.webp new file mode 100644 index 0000000..4e1946e Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Commons-logo.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Commons-logo.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Commons-logo.svg_002.webp new file mode 100644 index 0000000..9270eab Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Commons-logo.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Commons-logo.svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Commons-logo.svg_003.webp new file mode 100644 index 0000000..b8f49fd Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Commons-logo.svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Edit-clear.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Edit-clear.svg.webp new file mode 100644 index 0000000..6c2573b Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Edit-clear.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Edit-clear.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Edit-clear.svg_002.webp new file mode 100644 index 0000000..53092ae Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Edit-clear.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Edit-clear.svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Edit-clear.svg_003.webp new file mode 100644 index 0000000..71d77a2 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Edit-clear.svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Argentina.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Argentina.svg.webp new file mode 100644 index 0000000..99f6a59 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Argentina.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Argentina.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Argentina.svg_002.webp new file mode 100644 index 0000000..71f2519 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Argentina.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Argentina.svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Argentina.svg_003.webp new file mode 100644 index 0000000..cf28418 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Argentina.svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Australia_(converted).svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Australia_(converted).svg.webp new file mode 100644 index 0000000..3eab9e6 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Australia_(converted).svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Australia_(converted).svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Australia_(converted).svg_002.webp new file mode 100644 index 0000000..84bad31 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Australia_(converted).svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Austria.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Austria.svg.webp new file mode 100644 index 0000000..33aab7f Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Austria.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Austria.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Austria.svg_002.webp new file mode 100644 index 0000000..98e31df Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Austria.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Austria.svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Austria.svg_003.webp new file mode 100644 index 0000000..def7cc8 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Austria.svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Barbados.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Barbados.svg.webp new file mode 100644 index 0000000..ce57d13 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Barbados.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Belgium_(civil).svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Belgium_(civil).svg.webp new file mode 100644 index 0000000..03c0323 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Belgium_(civil).svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Belgium_(civil).svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Belgium_(civil).svg_002.webp new file mode 100644 index 0000000..1440934 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Belgium_(civil).svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Belgium_(civil).svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Belgium_(civil).svg_003.webp new file mode 100644 index 0000000..58f59e5 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Belgium_(civil).svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Brazil.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Brazil.svg.webp new file mode 100644 index 0000000..a6952c8 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Brazil.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Brazil.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Brazil.svg_002.webp new file mode 100644 index 0000000..9ac6c3b Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Brazil.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Brazil.svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Brazil.svg_003.webp new file mode 100644 index 0000000..3d23479 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Brazil.svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Canada_(Pantone).svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Canada_(Pantone).svg.webp new file mode 100644 index 0000000..668ead9 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Canada_(Pantone).svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Canada_(Pantone).svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Canada_(Pantone).svg_002.webp new file mode 100644 index 0000000..0350ca0 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Canada_(Pantone).svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Finland.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Finland.svg.webp new file mode 100644 index 0000000..9d2f08f Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Finland.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Finland.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Finland.svg_002.webp new file mode 100644 index 0000000..7a2044d Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Finland.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Finland.svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Finland.svg_003.webp new file mode 100644 index 0000000..2fe137d Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Finland.svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_France.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_France.svg.webp new file mode 100644 index 0000000..d29280d Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_France.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_France.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_France.svg_002.webp new file mode 100644 index 0000000..9feb6a6 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_France.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Germany.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Germany.svg.webp new file mode 100644 index 0000000..e401b51 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Germany.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Germany.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Germany.svg_002.webp new file mode 100644 index 0000000..410f078 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Germany.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Germany.svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Germany.svg_003.webp new file mode 100644 index 0000000..327fdc3 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Germany.svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Ireland.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Ireland.svg.webp new file mode 100644 index 0000000..8818ee1 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Ireland.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Ireland.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Ireland.svg_002.webp new file mode 100644 index 0000000..d56fdc5 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Ireland.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Italy.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Italy.svg.webp new file mode 100644 index 0000000..2119b43 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Italy.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Italy.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Italy.svg_002.webp new file mode 100644 index 0000000..c4832c8 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Italy.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Italy.svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Italy.svg_003.webp new file mode 100644 index 0000000..f616a61 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Italy.svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Japan.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Japan.svg.webp new file mode 100644 index 0000000..8dc0a36 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Japan.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Japan.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Japan.svg_002.webp new file mode 100644 index 0000000..9dd0dab Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Japan.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Mexico.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Mexico.svg.webp new file mode 100644 index 0000000..22097cb Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Mexico.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Mexico.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Mexico.svg_002.webp new file mode 100644 index 0000000..4780a59 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Mexico.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Monaco.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Monaco.svg.webp new file mode 100644 index 0000000..55e4da8 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Monaco.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Monaco.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Monaco.svg_002.webp new file mode 100644 index 0000000..4c16954 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Monaco.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Norway.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Norway.svg.webp new file mode 100644 index 0000000..6b8f919 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Norway.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Norway.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Norway.svg_002.webp new file mode 100644 index 0000000..dc64567 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Norway.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Poland.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Poland.svg.webp new file mode 100644 index 0000000..d8f16e2 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Poland.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Poland.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Poland.svg_002.webp new file mode 100644 index 0000000..7a54e11 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Poland.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_South_Africa_(1928-1982).svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_South_Africa_(1928-1982).svg.webp new file mode 100644 index 0000000..96df84a Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_South_Africa_(1928-1982).svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_South_Africa_(1928-1982).svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_South_Africa_(1928-1982).svg_002.webp new file mode 100644 index 0000000..b773978 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_South_Africa_(1928-1982).svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Sweden.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Sweden.svg.webp new file mode 100644 index 0000000..7334a37 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Sweden.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Sweden.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Sweden.svg_002.webp new file mode 100644 index 0000000..c022da9 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Sweden.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Sweden.svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Sweden.svg_003.webp new file mode 100644 index 0000000..4cdccca Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Sweden.svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Switzerland_(Pantone).svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Switzerland_(Pantone).svg.webp new file mode 100644 index 0000000..ae742f4 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Switzerland_(Pantone).svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Switzerland_(Pantone).svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Switzerland_(Pantone).svg_002.webp new file mode 100644 index 0000000..b7ba20c Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Switzerland_(Pantone).svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Venezuela.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Venezuela.svg.webp new file mode 100644 index 0000000..ea4ca15 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Venezuela.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Venezuela.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Venezuela.svg_002.webp new file mode 100644 index 0000000..546bbbf Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_Venezuela.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_People's_Republic_of_China.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_People's_Republic_of_China.svg.webp new file mode 100644 index 0000000..42d4f52 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_People's_Republic_of_China.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_People's_Republic_of_China.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_People's_Republic_of_China.svg_002.webp new file mode 100644 index 0000000..34f548e Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_People's_Republic_of_China.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_Kingdom.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_Kingdom.svg.webp new file mode 100644 index 0000000..9a5a930 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_Kingdom.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_Kingdom.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_Kingdom.svg_002.webp new file mode 100644 index 0000000..b576f8d Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_Kingdom.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_States.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_States.svg.webp new file mode 100644 index 0000000..6efa0a6 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_States.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_States.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_States.svg_002.webp new file mode 100644 index 0000000..d01e450 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_States.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_States.svg_003.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_States.svg_003.webp new file mode 100644 index 0000000..2d223a9 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Flag_of_the_United_States.svg_003.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/OOjs_UI_icon_edit-ltr-progressive.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/OOjs_UI_icon_edit-ltr-progressive.svg.webp new file mode 100644 index 0000000..08b8700 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/OOjs_UI_icon_edit-ltr-progressive.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Symbol_category_class.svg.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Symbol_category_class.svg.webp new file mode 100644 index 0000000..d22365c Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Symbol_category_class.svg.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/Symbol_category_class.svg_002.webp b/tests/data/Kimi Räikkönen - Wikipedia_files/Symbol_category_class.svg_002.webp new file mode 100644 index 0000000..f7e8502 Binary files /dev/null and b/tests/data/Kimi Räikkönen - Wikipedia_files/Symbol_category_class.svg_002.webp differ diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/load.css b/tests/data/Kimi Räikkönen - Wikipedia_files/load.css new file mode 100644 index 0000000..2f3dc8d --- /dev/null +++ b/tests/data/Kimi Räikkönen - Wikipedia_files/load.css @@ -0,0 +1 @@ +.mw-cite-backlink,.cite-accessibility-label{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mw-references-columns{-moz-column-width:30em;column-width:30em;margin-top:0.3em}.mw-parser-output .mw-references-columns .references{margin-top:0}.mw-references-columns li{page-break-inside:avoid;break-inside:avoid-column}ol.references{counter-reset:mw-ref-extends-parent mw-references list-item}ol.references > li{counter-increment:mw-ref-extends-parent mw-references;counter-reset:mw-ref-extends-child}ol.references .mw-subreference-list{list-style:none;margin-left:2em;padding:0}.mw-subreference-list > li::before{counter-increment:mw-ref-extends-child;content:counter(mw-ref-extends-parent,decimal) '.' counter(mw-ref-extends-child,decimal) '. '}sup.reference{unicode-bidi:-moz-isolate;unicode-bidi:-webkit-isolate;unicode-bidi:isolate;white-space:nowrap;font-weight:normal;font-style:normal}ol.references li:target,sup.reference:target{background-color:var(--background-color-progressive-subtle,#f1f4fd)}.mw-ext-cite-error{font-weight:bold;unicode-bidi:embed}.mw-ext-cite-error code{background-color:transparent;color:inherit;padding:1px 2px}.mw-cite-dir-ltr .reference-text{direction:ltr;unicode-bidi:embed}.mw-cite-dir-rtl .reference-text{direction:rtl;unicode-bidi:embed}@media print{.mw-cite-backlink{display:none}}#p-lang .uls-settings-trigger{background:transparent url(/w/extensions/UniversalLanguageSelector/resources/images/cog-sprite.svg?39d1e) no-repeat center top;border:0;min-height:16px;min-width:16px;float:right;cursor:pointer}#p-lang .uls-settings-trigger::-moz-focus-inner{border:0}#p-lang .uls-settings-trigger:focus{outline:1px solid #36c}.skin-vector #p-lang .uls-settings-trigger{margin-top:8px}#p-lang .uls-settings-trigger:hover{background-position:center -16px}.client-nojs #ca-ve-edit,.ve-not-available #ca-ve-edit,.client-nojs .mw-editsection-divider,.ve-not-available .mw-editsection-divider,.client-nojs .mw-editsection-visualeditor,.ve-not-available .mw-editsection-visualeditor{display:none}.client-js .mw-editsection-bracket:first-of-type{margin-right:0.25em;margin-inline:0 0.25em}.client-js .mw-editsection-bracket:not(:first-of-type){margin-left:0.25em;margin-inline:0.25em 0}.badge-goodarticle,.badge-goodlist,.badge-recommendedarticle{list-style-image:url(/w/extensions/WikimediaBadges/resources/images/badge-silver-star.png?70a8c)}.badge-featuredarticle,.badge-featuredportal,.badge-featuredlist{list-style-image:url(/w/extensions/WikimediaBadges/resources/images/badge-golden-star.png?ed948)}.badge-problematic{list-style-image:url(/w/extensions/WikimediaBadges/resources/images/badge-problematic.png?f3177)}.badge-proofread{list-style-image:url(/w/extensions/WikimediaBadges/resources/images/badge-proofread.png?e81f9)}.badge-validated{list-style-image:url(/w/extensions/WikimediaBadges/resources/images/badge-validated.png?6232c)}.badge-digitaldocument{list-style-image:url(/w/extensions/WikimediaBadges/resources/images/badge-digitaldocument.png?d1c50)}body.skin-minerva .mw-parser-output .ambox,body.skin-minerva .mw-parser-output table.ambox{display:block;margin:0}.client-js body.skin-minerva .mw-parser-output .ambox{cursor:pointer;width:auto;background:var(--background-color-interactive-subtle,#f8f9fa) !important;color:var(--color-subtle,#54595d);margin-bottom:1px}.client-js body.skin-minerva .mw-parser-output .ambox tbody{display:table;width:100%}.client-js body.skin-minerva .mw-parser-output .ambox .mbox-text-div,.client-js body.skin-minerva .mw-parser-output .ambox .mbox-text-span{display:block;max-height:3.3em;height:3.3em;overflow:hidden}.client-js body.skin-minerva .mw-parser-output .ambox div{margin:0 !important;padding:0 !important}.client-js body.skin-minerva .mw-parser-output .ambox td,.client-js body.skin-minerva .mw-parser-output .ambox div.mbox-text{position:relative;padding:8px 8px 8px 32px !important}.client-js body.skin-minerva .mw-parser-output .ambox td > div,.client-js body.skin-minerva .mw-parser-output .ambox div.mbox-text > div,.client-js body.skin-minerva .mw-parser-output .ambox td > span,.client-js body.skin-minerva .mw-parser-output .ambox div.mbox-text > span{font-size:0.8125rem}.client-js body.skin-minerva .mw-parser-output .ambox b{font-weight:inherit}.client-js body.skin-minerva .mw-parser-output .ambox a{color:inherit !important;-webkit-tap-highlight-color:rgba(0,0,0,0) !important}.client-js body.skin-minerva .mw-parser-output .ambox a:hover,.client-js body.skin-minerva .mw-parser-output .ambox a:focus{text-decoration:none;outline:inherit}.client-js body.skin-minerva .mw-parser-output .ambox small,.client-js body.skin-minerva .mw-parser-output .ambox .hide-when-compact,.client-js body.skin-minerva .mw-parser-output .ambox .mw-collapsible-content,.client-js body.skin-minerva .mw-parser-output .ambox .mbox-empty-cell,.client-js body.skin-minerva .mw-parser-output .ambox hr,.client-js body.skin-minerva .mw-parser-output .ambox .verbose,.client-js body.skin-minerva .mw-parser-output .ambox table,.client-js body.skin-minerva .mw-parser-output .ambox .mbox-image{display:none}.client-js body.skin-minerva .mw-parser-output .ambox .minerva-ambox-icon{position:absolute;left:8px;top:11px}.client-js body.skin-minerva .mw-parser-output .ambox .ambox-learn-more{color:var(--color-progressive,#36c);position:absolute;right:8px;bottom:8px;z-index:0;line-height:1.65}.client-js body.skin-minerva .mw-parser-output .ambox .ambox-learn-more::before{content:'';position:absolute;z-index:-100;bottom:0;right:0;width:100%;height:100%;box-sizing:content-box;padding-left:4em;background:linear-gradient(to right,transparent 0,var(--background-color-interactive-subtle,#f8f9fa) 3em)}@media screen and (min-width:640px){.client-js body.skin-minerva .mw-parser-output .ambox .mbox-text-div,.client-js body.skin-minerva .mw-parser-output .ambox .mbox-text-span{height:auto;margin-bottom:24px !important}.client-js body.skin-minerva .mw-parser-output .ambox .ambox-learn-more{left:32px;right:0;background:none}.client-js body.skin-minerva .mw-parser-output .ambox .ambox-learn-more::before{top:-1.65em;width:10px}}body.skin--responsive.skin-minerva .mw-parser-output .infobox{float:none !important;margin-left:0 !important;margin-right:0 !important;font-size:90%;position:relative;border:1px solid var(--border-color-muted,#dadde3);margin-bottom:2em;color:var(--color-base,#202122);background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flex;flex:1 1 100%;flex-flow:column nowrap;width:100% !important;max-width:100% !important;text-align:start}body.skin--responsive.skin-minerva .mw-parser-output .infobox caption{padding:10px 10px 0;text-align:center}body.skin--responsive.skin-minerva .mw-parser-output .infobox th,body.skin--responsive.skin-minerva .mw-parser-output .infobox td{vertical-align:top;border:0;border-bottom:1px solid var(--border-color-muted,#dadde3);padding:7px 10px}body.skin--responsive.skin-minerva .mw-parser-output .infobox tbody > tr > td,body.skin--responsive.skin-minerva .mw-parser-output .infobox tbody > tr > th{flex:1 0}body.skin--responsive.skin-minerva .mw-parser-output .infobox td:only-child,body.skin--responsive.skin-minerva .mw-parser-output .infobox th:only-child{width:100%}body.skin--responsive.skin-minerva .mw-parser-output .infobox tr:last-child th,body.skin--responsive.skin-minerva .mw-parser-output .infobox tr:last-child td{border:0}body.skin--responsive.skin-minerva .mw-parser-output .infobox > tbody,body.skin--responsive.skin-minerva .mw-parser-output .infobox > caption{display:flex;flex-flow:column nowrap}body.skin--responsive.skin-minerva .mw-parser-output .infobox > tbody > tr{min-width:100%;display:flex;flex-flow:row nowrap}@media all and (min-width:640px){body.skin-minerva.skin--responsive .mw-parser-output .infobox{margin:0.5em 0 1em 35px !important;max-width:320px !important;width:auto !important;float:right !important;clear:right !important}}body.skin--responsive.skin-minerva .mw-parser-output .hatnote,body.skin--responsive.skin-minerva .mw-parser-output .dablink,body.skin--responsive.skin-minerva .mw-parser-output .rellink{padding:5px 7px;color:var(--color-subtle,#54595d);font-size:0.8125rem;background-color:var(--background-color-interactive-subtle,#f8f9fa);margin-bottom:1px;overflow:hidden}body.skin--responsive.skin-minerva .mw-parser-output .hatnote a,body.skin--responsive.skin-minerva .mw-parser-output .dablink a,body.skin--responsive.skin-minerva .mw-parser-output .rellink a{color:var(--color-progressive,#36c)}[bgcolor]{color:#333}@media screen{html.skin-theme-clientpref-night{}html.skin-theme-clientpref-night .hatnote:not(.notheme),html.skin-theme-clientpref-night .dablink:not(.notheme),html.skin-theme-clientpref-night .rellink:not(.notheme),html.skin-theme-clientpref-night .infobox:not(.notheme){color:var(--color-base,#202122) !important;background-color:var(--background-color-interactive-subtle,#f8f9fa) !important}html.skin-theme-clientpref-night .infobox td:not(.notheme),html.skin-theme-clientpref-night .infobox th:not(.notheme),html.skin-theme-clientpref-night .infobox-above:not(.notheme),html.skin-theme-clientpref-night .infobox p:not(.notheme),html.skin-theme-clientpref-night .infobox > div:not(.notheme),html.skin-theme-clientpref-night .infobox caption:not(.notheme),html.skin-theme-clientpref-night .infobox--frwiki td:not(.notheme),html.skin-theme-clientpref-night .infobox--frwiki th:not(.notheme),html.skin-theme-clientpref-night .infobox--frwiki p:not(.notheme),html.skin-theme-clientpref-night .infobox--frwiki > div:not(.notheme),html.skin-theme-clientpref-night .infobox--frwiki caption:not(.notheme),html.skin-theme-clientpref-night .sinottico th:not(.notheme),html.skin-theme-clientpref-night .infobox-header:not(.notheme),html.skin-theme-clientpref-night .skin-nightmode-reset-color:not(.notheme),html.skin-theme-clientpref-night .navigation-box:not(.notheme),html.skin-theme-clientpref-night .metadata:not(.notheme),html.skin-theme-clientpref-night .quotebox:not(.notheme),html.skin-theme-clientpref-night .side-box:not(.notheme),html.skin-theme-clientpref-night .side-box div:not(.notheme),html.skin-theme-clientpref-night .navbox:not(.notheme),html.skin-theme-clientpref-night .navbox-subgroup:not(.notheme),html.skin-theme-clientpref-night .navbox-group:not(.notheme),html.skin-theme-clientpref-night .navbox-even:not(.notheme),html.skin-theme-clientpref-night .navbox-abovebelow:not(.notheme),html.skin-theme-clientpref-night .navbox-title:not(.notheme){background:inherit !important;color:inherit !important;border-color:var(--border-color-subtle,#c8ccd1) !important}html.skin-theme-clientpref-night .mw-parser-output [style*='background']{color:#202122}html.skin-theme-clientpref-night body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) [bgcolor] a:not(.mw-selflink),html.skin-theme-clientpref-night body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox)[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a:not(.mw-selflink),html.skin-theme-clientpref-night body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) th[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a:not(.mw-selflink),html.skin-theme-clientpref-night body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) td[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a:not(.mw-selflink),html.skin-theme-clientpref-night body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) tr[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) td a:not(.mw-selflink){color:var(--color-base-fixed,#202122);text-decoration:underline}html.skin-theme-clientpref-night body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) [bgcolor] a.new,html.skin-theme-clientpref-night body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox)[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a.new,html.skin-theme-clientpref-night body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) th[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a.new,html.skin-theme-clientpref-night body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) td[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a.new,html.skin-theme-clientpref-night body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) tr[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) td a.new{text-decoration-style:wavy}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os{}html.skin-theme-clientpref-os .infobox td:not(.notheme),html.skin-theme-clientpref-os .infobox th:not(.notheme),html.skin-theme-clientpref-os .infobox-above:not(.notheme),html.skin-theme-clientpref-os .infobox p:not(.notheme),html.skin-theme-clientpref-os .infobox > div:not(.notheme),html.skin-theme-clientpref-os .infobox caption:not(.notheme),html.skin-theme-clientpref-os .infobox--frwiki td:not(.notheme),html.skin-theme-clientpref-os .infobox--frwiki th:not(.notheme),html.skin-theme-clientpref-os .infobox--frwiki p:not(.notheme),html.skin-theme-clientpref-os .infobox--frwiki > div:not(.notheme),html.skin-theme-clientpref-os .infobox--frwiki caption:not(.notheme),html.skin-theme-clientpref-os .sinottico th:not(.notheme),html.skin-theme-clientpref-os .infobox-header:not(.notheme),html.skin-theme-clientpref-os .skin-nightmode-reset-color:not(.notheme),html.skin-theme-clientpref-os .navigation-box:not(.notheme),html.skin-theme-clientpref-os .metadata:not(.notheme),html.skin-theme-clientpref-os .quotebox:not(.notheme),html.skin-theme-clientpref-os .side-box:not(.notheme),html.skin-theme-clientpref-os .side-box div:not(.notheme),html.skin-theme-clientpref-os .navbox:not(.notheme),html.skin-theme-clientpref-os .navbox-subgroup:not(.notheme),html.skin-theme-clientpref-os .navbox-group:not(.notheme),html.skin-theme-clientpref-os .navbox-even:not(.notheme),html.skin-theme-clientpref-os .navbox-abovebelow:not(.notheme),html.skin-theme-clientpref-os .navbox-title:not(.notheme){background:inherit !important;color:inherit !important;border-color:var(--border-color-subtle,#c8ccd1) !important}html.skin-theme-clientpref-os .hatnote:not(.notheme),html.skin-theme-clientpref-os .dablink:not(.notheme),html.skin-theme-clientpref-os .rellink:not(.notheme),html.skin-theme-clientpref-os .infobox:not(.notheme){color:var(--color-base,#202122) !important;background-color:var(--background-color-interactive-subtle,#f8f9fa) !important}html.skin-theme-clientpref-os .mw-parser-output [style*='background']{color:#202122}html.skin-theme-clientpref-os body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) [bgcolor] a:not(.mw-selflink),html.skin-theme-clientpref-os body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox)[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a:not(.mw-selflink),html.skin-theme-clientpref-os body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) th[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a:not(.mw-selflink),html.skin-theme-clientpref-os body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) td[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a:not(.mw-selflink),html.skin-theme-clientpref-os body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) tr[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) td a:not(.mw-selflink){color:var(--color-base-fixed,#202122);text-decoration:underline}html.skin-theme-clientpref-os body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) [bgcolor] a.new,html.skin-theme-clientpref-os body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox)[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a.new,html.skin-theme-clientpref-os body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) th[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a.new,html.skin-theme-clientpref-os body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) td[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) a.new,html.skin-theme-clientpref-os body.ns-0:not(.page-Main_Page) .mw-parser-output table:not(.infobox):not(.navbox-inner):not(.navbox) tr[style*="background"]:not([style*="transparent"]):not([style*="inherit"]) td a.new{text-decoration-style:wavy}}@media screen{.skin-theme-clientpref-night .ns-100 .mw-parser-output :not(.notheme):not(a){background:inherit !important;color:inherit !important;border-color:var(--border-color-subtle,#c8ccd1) !important}}@media screen and (prefers-color-scheme:dark){.skin-theme-clientpref-os .ns-100 .mw-parser-output :not(.notheme):not(a){background:inherit !important;color:inherit !important;border-color:var(--border-color-subtle,#c8ccd1) !important}}.client-js{}.client-js ol.mw-collapsible::before,.client-js ul.mw-collapsible::before,.client-js .mw-collapsible-toggle-li{display:list-item;list-style:none;margin-bottom:0.1em}.client-js ol.mw-made-collapsible::before,.client-js ul.mw-made-collapsible::before{display:none}.client-js .mw-collapsible:not(.mw-made-collapsible) .mw-collapsible-toggle-placeholder:before,.client-js ol.mw-collapsible:not(.mw-made-collapsible):before,.client-js ul.mw-collapsible:not(.mw-made-collapsible):before,.client-js table.mw-collapsible:not(.mw-made-collapsible) :first-child tr:first-child th:last-child:before,.client-js table.mw-collapsible:not(.mw-made-collapsible) > caption:first-child:after,.client-js div.mw-collapsible:not(.mw-made-collapsible):before{content:'[hide]'}.client-js .mw-collapsed:not(.mw-made-collapsible) .mw-collapsible-toggle-placeholder:before,.client-js td.mw-collapsed:not(.mw-made-collapsible):before,.client-js table.mw-collapsed:not(.mw-made-collapsible) :first-child tr:first-child th:last-child:before,.client-js table.mw-collapsed:not(.mw-made-collapsible) > caption:first-child:after,.client-js div.mw-collapsed:not(.mw-made-collapsible):before{content:'[show]'}.client-js .mw-collapsible[id^='mw-customcollapsible'] th::before,.client-js .mw-collapsible[id^='mw-customcollapsible']::before{content:none !important}.client-js .mw-collapsible:not(.mw-made-collapsible):has(.mw-collapsible-toggle,.mw-collapsible-toggle-placeholder) th::before,.client-js .mw-collapsible:not(.mw-made-collapsible):has(.mw-collapsible-toggle,.mw-collapsible-toggle-placeholder)::before{content:none !important}.client-js table.mw-collapsible:not(.mw-made-collapsible) > caption:first-child:after{float:none;display:block}.client-js .mw-collapsed:not(.mw-made-collapsible) > p,.client-js .mw-collapsed:not(.mw-made-collapsible) > table,.client-js .mw-collapsed:not(.mw-made-collapsible) > thead + tbody,.client-js .mw-collapsed:not(.mw-made-collapsible) tr:not(:first-child),.client-js .mw-collapsed:not(.mw-made-collapsible) .mw-collapsible-content{display:none}.mw-collapsible:not(.mw-made-collapsible) th:before,.mw-collapsible:not(.mw-made-collapsible):before,.mw-collapsible-toggle-placeholder,.mw-collapsible-toggle{float:right}.mw-content-ltr .mw-collapsible:not(.mw-made-collapsible) th:before,.mw-content-rtl .mw-content-ltr .mw-collapsible:not(.mw-made-collapsible) th:before,.mw-content-ltr .mw-collapsible:not(.mw-made-collapsible):before,.mw-content-rtl .mw-content-ltr .mw-collapsible:not(.mw-made-collapsible):before,.mw-content-ltr .mw-collapsible-toggle-placeholder,.mw-content-rtl .mw-content-ltr .mw-collapsible-toggle-placeholder,.mw-content-ltr .mw-collapsible-toggle,.mw-content-rtl .mw-content-ltr .mw-collapsible-toggle{float:right}.mw-content-rtl .mw-collapsible:not(.mw-made-collapsible) th:before,.mw-content-ltr .mw-content-rtl .mw-collapsible:not(.mw-made-collapsible) th:before,.mw-content-rtl .mw-collapsible:not(.mw-made-collapsible):before,.mw-content-ltr .mw-content-rtl .mw-collapsible:not(.mw-made-collapsible):before,.mw-content-rtl .mw-collapsible-toggle-placeholder,.mw-content-ltr .mw-content-rtl .mw-collapsible-toggle-placeholder,.mw-content-rtl .mw-collapsible-toggle,.mw-content-ltr .mw-content-rtl .mw-collapsible-toggle{float:left}li .mw-collapsible-toggle-placeholder,.mw-content-ltr li .mw-collapsible-toggle-placeholder,.mw-content-rtl li .mw-collapsible-toggle-placeholder,.mw-content-ltr .mw-content-rtl li .mw-collapsible-toggle-placeholder,.mw-content-rtl .mw-content-ltr li .mw-collapsible-toggle-placeholder,li .mw-collapsible-toggle,.mw-content-ltr li .mw-collapsible-toggle,.mw-content-rtl li .mw-collapsible-toggle,.mw-content-ltr .mw-content-rtl li .mw-collapsible-toggle,.mw-content-rtl .mw-content-ltr li .mw-collapsible-toggle{float:none}ol.mw-collapsible:not(.mw-made-collapsible):before,ul.mw-collapsible:not(.mw-made-collapsible):before{float:none !important}.vector-icon.mw-ui-icon-wikimedia-bell{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=bell&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=bell&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-bell-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=bell&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=bell&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-bell-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=bell&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=bell&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-tray{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=tray&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=tray&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-tray-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=tray&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=tray&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-tray-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=tray&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=tray&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-labFlask{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=labFlask&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=labFlask&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-labFlask-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=labFlask&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=labFlask&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-labFlask-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=labFlask&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=labFlask&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-language{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=language&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=language&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-language-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=language&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=language&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-language-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=language&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=language&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-sandbox{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=sandbox&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=sandbox&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-sandbox-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=sandbox&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=sandbox&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-sandbox-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=sandbox&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=sandbox&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-listBullet{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=listBullet&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=listBullet&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-listBullet-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=listBullet&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=listBullet&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-listBullet-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=listBullet&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=listBullet&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-close{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=close&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=close&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-close-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=close&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=close&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-close-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=close&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=close&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-ellipsis{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=ellipsis&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=ellipsis&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-ellipsis-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=ellipsis&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=ellipsis&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-ellipsis-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=ellipsis&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=ellipsis&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-heart{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=heart&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=heart&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-heart-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=heart&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=heart&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-heart-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=heart&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=heart&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-logIn{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logIn&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logIn&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-logIn-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logIn&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logIn&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-logIn-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logIn&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logIn&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-logOut{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logOut&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logOut&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-logOut-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logOut&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logOut&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-logOut-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logOut&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=logOut&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-search{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=search&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=search&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-search-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=search&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=search&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-search-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=search&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=search&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-settings{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=settings&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=settings&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-settings-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=settings&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=settings&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-settings-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=settings&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=settings&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-menu{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=menu&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=menu&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-menu-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=menu&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=menu&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-menu-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=menu&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=menu&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-imageGallery{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=imageGallery&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=imageGallery&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-imageGallery-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=imageGallery&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=imageGallery&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-imageGallery-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=imageGallery&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=imageGallery&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-star{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=star&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=star&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-star-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=star&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=star&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-star-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=star&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=star&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-halfStar{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=halfStar&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=halfStar&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-halfStar-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=halfStar&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=halfStar&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-halfStar-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=halfStar&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=halfStar&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-unStar{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=unStar&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=unStar&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-unStar-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=unStar&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=unStar&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-unStar-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=unStar&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=unStar&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userAdd{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAdd&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAdd&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userAdd-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAdd&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAdd&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userAdd-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAdd&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAdd&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userAvatar{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAvatar&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAvatar&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userAvatar-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAvatar&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAvatar&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userAvatar-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAvatar&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userAvatar&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userContributions{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userContributions&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userContributions&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userContributions-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userContributions&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userContributions&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userContributions-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userContributions&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userContributions&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userGroup{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userGroup&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userGroup&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userGroup-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userGroup&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userGroup&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userGroup-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userGroup&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userGroup&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userTalk{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTalk&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTalk&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userTalk-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTalk&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTalk&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userTalk-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTalk&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTalk&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userTemporary{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTemporary&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTemporary&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userTemporary-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTemporary&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTemporary&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-userTemporary-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTemporary&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=userTemporary&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-watchlist{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=watchlist&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=watchlist&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-watchlist-invert{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=watchlist&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=watchlist&variant=invert&format=original&lang=en&skin=vector-2022&version=1r1m6)}.vector-icon.mw-ui-icon-wikimedia-watchlist-progressive{-webkit-mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=watchlist&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6);mask-image:url(https://en.wikipedia.org/w/load.php?modules=skins.vector.icons&image=watchlist&variant=progressive&format=original&lang=en&skin=vector-2022&version=1r1m6)}@media (prefers-reduced-motion:reduce){*,::before,::after{animation-delay:-0.01ms !important;animation-duration:0.01ms !important;animation-iteration-count:1 !important;scroll-behavior:auto !important;transition-duration:0ms !important}}body{margin:0}hr{box-sizing:content-box;height:0;overflow:visible}abbr[title]{border-bottom:1px dotted;cursor:help}@supports (text-decoration:underline dotted){abbr[title]{border-bottom:0;text-decoration:underline dotted}}pre,code,tt,kbd,samp{font-family:monospace,monospace}sub,sup{line-height:1}figure{margin:0}button,input,optgroup,select,textarea{margin:0}button::-moz-focus-inner,[type='button']::-moz-focus-inner,[type='reset']::-moz-focus-inner,[type='submit']::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}div.tright,div.floatright,table.floatright{clear:right;float:right}@media all and (max-width:calc(640px - 1px)){body.skin--responsive div.tright,body.skin--responsive div.floatright,body.skin--responsive table.floatright{clear:both;float:none}}div.tleft,div.floatleft,table.floatleft{float:left;clear:left}@media all and (max-width:calc(640px - 1px)){body.skin--responsive div.tleft,body.skin--responsive div.floatleft,body.skin--responsive table.floatleft{clear:both;float:none}}div.floatright,table.floatright{margin:0 0 0.5em 0.5em}div.floatleft,table.floatleft{margin:0 0.5em 0.5em 0}div.thumb{width:auto;background-color:transparent;margin-bottom:0.5em}div.tleft{margin:0.5em 1.4em 1.3em 0}div.tright{margin:0.5em 0 1.3em 1.4em}.thumbcaption{text-align:start;line-height:1.4em;padding:3px}.thumbcaption:empty{padding:0}div.thumbinner{padding:3px;text-align:center;overflow:hidden}@media all and (max-width:calc(640px - 1px)){body.skin--responsive .mw-parser-output .thumb .thumbinner{display:flex;place-content:flex-start center;flex-flow:column wrap}body.skin--responsive .mw-parser-output .thumb .thumbinner > .thumbcaption{justify-content:space-between;width:100%;flex:1 0 100%;order:1;display:block}}figure[typeof~='mw:File'],figure[typeof~='mw:File/Frameless']{}.mw-body-content figure[typeof~='mw:File'] > a,.mw-body-content figure[typeof~='mw:File/Frameless'] > a{border:0}figure[typeof~='mw:File'].mw-halign-right,figure[typeof~='mw:File/Frameless'].mw-halign-right{margin:0 0 0.5em 0.5em;clear:right;float:right}figure[typeof~='mw:File'].mw-halign-left,figure[typeof~='mw:File/Frameless'].mw-halign-left{margin:0 0.5em 0.5em 0;clear:left;float:left}figure[typeof~='mw:File'].mw-halign-none,figure[typeof~='mw:File/Frameless'].mw-halign-none{clear:none;float:none}figure[typeof~='mw:File'].mw-halign-center,figure[typeof~='mw:File/Frameless'].mw-halign-center{margin:0 auto;display:table;border-collapse:collapse;clear:none;float:none}figure[typeof~='mw:File'] > figcaption,figure[typeof~='mw:File/Frameless'] > figcaption{display:none}figure[typeof~='mw:File/Thumb'],figure[typeof~='mw:File/Frame']{display:table;text-align:center;border-collapse:collapse;line-height:0;margin:0.5em 0 1.3em 1.4em;clear:right;float:right}.mw-body-content figure[typeof~='mw:File/Thumb'] > a,.mw-body-content figure[typeof~='mw:File/Frame'] > a{border:0}.mw-content-ltr figure[typeof~='mw:File/Thumb'],.mw-content-ltr figure[typeof~='mw:File/Frame']{margin:0.5em 0 1.3em 1.4em;clear:right;float:right}.mw-content-rtl figure[typeof~='mw:File/Thumb'],.mw-content-rtl figure[typeof~='mw:File/Frame']{margin:0.5em 1.4em 1.3em 0;clear:left;float:left}figure[typeof~='mw:File/Thumb'].mw-halign-right,figure[typeof~='mw:File/Frame'].mw-halign-right{margin:0.5em 0 1.3em 1.4em;clear:right;float:right}figure[typeof~='mw:File/Thumb'].mw-halign-left,figure[typeof~='mw:File/Frame'].mw-halign-left{margin:0.5em 1.4em 1.3em 0;clear:left;float:left}figure[typeof~='mw:File/Thumb'].mw-halign-none,figure[typeof~='mw:File/Frame'].mw-halign-none{margin:0;margin-bottom:0.5em;clear:none;float:none}figure[typeof~='mw:File/Thumb'].mw-halign-center,figure[typeof~='mw:File/Frame'].mw-halign-center{margin:0 auto 0.5em auto;clear:none;float:none}figure[typeof~='mw:File/Thumb'] > :not(figcaption),figure[typeof~='mw:File/Frame'] > :not(figcaption){}figure[typeof~='mw:File/Thumb'] > :not(figcaption) .mw-file-element,figure[typeof~='mw:File/Frame'] > :not(figcaption) .mw-file-element{margin:3px}figure[typeof~='mw:File/Thumb'] > :not(figcaption) .mw-broken-media,figure[typeof~='mw:File/Frame'] > :not(figcaption) .mw-broken-media{display:inline-block;line-height:1.6em;word-break:break-word;width:180px;font-size:94%}figure[typeof~='mw:File/Thumb'] > figcaption,figure[typeof~='mw:File/Frame'] > figcaption{display:table-caption;caption-side:bottom;background-color:inherit;line-height:1.4em;word-break:break-word;text-align:start;padding:0 6px 6px 6px}@media all and (max-width:calc(640px - 1px)){body.skin--responsive figure{margin:0 auto !important;float:none !important}}figure[typeof~='mw:File/Frame'] > figcaption:empty{padding-bottom:0}figure[typeof~='mw:File/Thumb'] > figcaption:empty{padding-bottom:3px}.mw-valign-middle .mw-file-element{vertical-align:middle}.mw-valign-baseline .mw-file-element{vertical-align:baseline}.mw-valign-sub .mw-file-element{vertical-align:sub}.mw-valign-super .mw-file-element{vertical-align:super}.mw-valign-top .mw-file-element{vertical-align:top}.mw-valign-text-top .mw-file-element{vertical-align:text-top}.mw-valign-bottom .mw-file-element{vertical-align:bottom}.mw-valign-text-bottom .mw-file-element{vertical-align:text-bottom}@media screen{div.thumbinner{border:1px solid var(--border-color-subtle,#c8ccd1);background-color:var(--background-color-interactive-subtle,#f8f9fa);font-size:94%}.thumbimage{background-color:var(--background-color-base-fixed,#fff);border:1px solid var(--border-color-subtle,#c8ccd1)}.thumbcaption{border:0;font-size:94%}.thumbborder{border:1px solid #eaecf0}.magnify{float:right;margin-left:3px;margin-right:0;-webkit-margin-start:3px;-webkit-margin-end:0;margin-inline-start:3px;margin-inline-end:0}.magnify a{display:block;text-indent:15px;white-space:nowrap;overflow:hidden;width:15px;height:11px;background-image:url(/w/resources/src/mediawiki.skinning/images/magnify-clip-ltr.svg?8330e);-webkit-user-select:none;-moz-user-select:none;user-select:none}.mw-content-ltr .magnify{float:right}.mw-content-ltr .magnify a{background-image:url(/w/resources/src/mediawiki.skinning/images/magnify-clip-ltr.svg?8330e)}.mw-content-rtl .magnify{float:left}.mw-content-rtl .magnify a{background-image:url(/w/resources/src/mediawiki.skinning/images/magnify-clip-rtl.svg?38fd5)}figure[typeof~='mw:File/Thumb'],figure[typeof~='mw:File/Frame']{border:1px solid var(--border-color-subtle,#c8ccd1);border-bottom:0;background-color:var(--background-color-interactive-subtle,#f8f9fa);color:var(--color-base,#202122)}figure[typeof~='mw:File/Thumb'] > :not(figcaption) .mw-file-element,figure[typeof~='mw:File/Frame'] > :not(figcaption) .mw-file-element{background-color:var(--background-color-base,#fff);border:1px solid var(--border-color-subtle,#c8ccd1)}figure[typeof~='mw:File/Thumb'] > :not(figcaption) .mw-file-element:not(.mw-broken-media),figure[typeof~='mw:File/Frame'] > :not(figcaption) .mw-file-element:not(.mw-broken-media){background-color:var(--background-color-base-fixed,#fff);color:var(--color-base-fixed,#202122)}figure[typeof~='mw:File/Thumb'] > figcaption,figure[typeof~='mw:File/Frame'] > figcaption{border:1px solid var(--border-color-subtle,#c8ccd1);border-top:0;font-size:88.40000000000001%}.mw-image-border .mw-file-element{border:1px solid #eaecf0}figure[typeof~='mw:File/Thumb'] > figcaption::before{content:'';width:15px;height:11px;margin:0;margin-left:3px;margin-right:0;-webkit-margin-start:3px;-webkit-margin-end:0;margin-inline-start:3px;margin-inline-end:0;float:right}.mw-content-ltr figure[typeof~='mw:File/Thumb'] > figcaption::before{float:right}.mw-content-rtl figure[typeof~='mw:File/Thumb'] > figcaption::before{float:left}body.skin--responsive figure[typeof~='mw:File/Thumb'] > figcaption::before{}@media all and (max-width:calc(640px - 1px)){body.skin--responsive figure[typeof~='mw:File/Thumb'] > figcaption::before{content:none}}figure[typeof~='mw:File/Thumb'] > .mw-file-description,figure[typeof~='mw:File/Thumb'] > .mw-file-magnify{display:block;position:relative}figure[typeof~='mw:File/Thumb'] > .mw-file-description::after,figure[typeof~='mw:File/Thumb'] > .mw-file-magnify::after{content:'';width:15px;height:11px;position:absolute;bottom:-11px;right:6px;background-image:url(/w/resources/src/mediawiki.skinning/images/magnify-clip-ltr.svg?8330e)}.skin-theme-clientpref-night figure[typeof~='mw:File/Thumb'] > .mw-file-description::after,.skin-theme-clientpref-night figure[typeof~='mw:File/Thumb'] > .mw-file-magnify::after{filter:invert(1)}@media (prefers-color-scheme:dark){.skin-theme-clientpref-os figure[typeof~='mw:File/Thumb'] > .mw-file-description::after,.skin-theme-clientpref-os figure[typeof~='mw:File/Thumb'] > .mw-file-magnify::after{filter:invert(1)}}.mw-content-ltr figure[typeof~='mw:File/Thumb'] > .mw-file-description::after,.mw-content-ltr figure[typeof~='mw:File/Thumb'] > .mw-file-magnify::after{right:6px;left:auto;background-image:url(/w/resources/src/mediawiki.skinning/images/magnify-clip-ltr.svg?8330e)}.mw-content-rtl figure[typeof~='mw:File/Thumb'] > .mw-file-description::after,.mw-content-rtl figure[typeof~='mw:File/Thumb'] > .mw-file-magnify::after{right:auto;left:6px;background-image:url(/w/resources/src/mediawiki.skinning/images/magnify-clip-rtl.svg?38fd5)}@media all and (max-width:calc(640px - 1px)){figure[typeof~='mw:File/Thumb'] > .mw-file-description::after,figure[typeof~='mw:File/Thumb'] > .mw-file-magnify::after{background-image:none !important}}body.skin--responsive .mw-parser-output{}body.skin--responsive .mw-parser-output figure img.mw-file-element{height:auto;max-width:100%}body.skin--responsive .mw-parser-output figure[typeof~='mw:File/Thumb'] img.mw-file-element,body.skin--responsive .mw-parser-output figure[typeof~='mw:File/Frame'] img.mw-file-element{max-width:calc(100% - (2 * 3px) - (2 * 1px))}body.skin--responsive .mw-parser-output .noresize figure img.mw-file-element,body.skin--responsive .mw-parser-output figure.noresize img.mw-file-element{max-width:none}html.skin-theme-clientpref-night{}html.skin-theme-clientpref-night .mw-parser-output > span.mw-default-size img,html.skin-theme-clientpref-night section .mw-heading ~ div > span.mw-default-size img,html.skin-theme-clientpref-night section > span.mw-default-size img,html.skin-theme-clientpref-night dd > span.mw-default-size img,html.skin-theme-clientpref-night p > span.mw-default-size img,html.skin-theme-clientpref-night .mw-parser-output > figure[typeof='mw:File'] img,html.skin-theme-clientpref-night section .mw-heading ~ div > figure[typeof='mw:File'] img,html.skin-theme-clientpref-night section > figure[typeof='mw:File'] img,html.skin-theme-clientpref-night dd > figure[typeof='mw:File'] img,html.skin-theme-clientpref-night p > figure[typeof='mw:File'] img,html.skin-theme-clientpref-night .mw-parser-output > figure[typeof='mw:File/Thumb'] img,html.skin-theme-clientpref-night section .mw-heading ~ div > figure[typeof='mw:File/Thumb'] img,html.skin-theme-clientpref-night section > figure[typeof='mw:File/Thumb'] img,html.skin-theme-clientpref-night dd > figure[typeof='mw:File/Thumb'] img,html.skin-theme-clientpref-night p > figure[typeof='mw:File/Thumb'] img,html.skin-theme-clientpref-night .mw-parser-output > figure[typeof='mw:File/Frameless'] img,html.skin-theme-clientpref-night section .mw-heading ~ div > figure[typeof='mw:File/Frameless'] img,html.skin-theme-clientpref-night section > figure[typeof='mw:File/Frameless'] img,html.skin-theme-clientpref-night dd > figure[typeof='mw:File/Frameless'] img,html.skin-theme-clientpref-night p > figure[typeof='mw:File/Frameless'] img{background-color:var(--background-color-base-fixed,#fff);color:var(--color-base-fixed,#202122);filter:brightness(0.8)}@media (prefers-color-scheme:dark){html.skin-theme-clientpref-os{}html.skin-theme-clientpref-os .mw-parser-output > span.mw-default-size img,html.skin-theme-clientpref-os section .mw-heading ~ div > span.mw-default-size img,html.skin-theme-clientpref-os section > span.mw-default-size img,html.skin-theme-clientpref-os dd > span.mw-default-size img,html.skin-theme-clientpref-os p > span.mw-default-size img,html.skin-theme-clientpref-os .mw-parser-output > figure[typeof='mw:File'] img,html.skin-theme-clientpref-os section .mw-heading ~ div > figure[typeof='mw:File'] img,html.skin-theme-clientpref-os section > figure[typeof='mw:File'] img,html.skin-theme-clientpref-os dd > figure[typeof='mw:File'] img,html.skin-theme-clientpref-os p > figure[typeof='mw:File'] img,html.skin-theme-clientpref-os .mw-parser-output > figure[typeof='mw:File/Thumb'] img,html.skin-theme-clientpref-os section .mw-heading ~ div > figure[typeof='mw:File/Thumb'] img,html.skin-theme-clientpref-os section > figure[typeof='mw:File/Thumb'] img,html.skin-theme-clientpref-os dd > figure[typeof='mw:File/Thumb'] img,html.skin-theme-clientpref-os p > figure[typeof='mw:File/Thumb'] img,html.skin-theme-clientpref-os .mw-parser-output > figure[typeof='mw:File/Frameless'] img,html.skin-theme-clientpref-os section .mw-heading ~ div > figure[typeof='mw:File/Frameless'] img,html.skin-theme-clientpref-os section > figure[typeof='mw:File/Frameless'] img,html.skin-theme-clientpref-os dd > figure[typeof='mw:File/Frameless'] img,html.skin-theme-clientpref-os p > figure[typeof='mw:File/Frameless'] img{background-color:var(--background-color-base-fixed,#fff);color:var(--color-base-fixed,#202122);filter:brightness(0.8)}}.mw-body-content::after{clear:both;content:'';display:block}.mw-body-content a.external.free{word-wrap:break-word}.mw-body-content .error{font-size:larger;color:var(--color-error,#bf3c2c)}.rtl .mw-parser-output a.external.free,.rtl .mw-parser-output a.external.autonumber{direction:ltr;unicode-bidi:embed}.mw-hide-empty-elt .mw-parser-output:not(.mw-show-empty-elt) .mw-empty-elt{display:none}@media all and (max-width:calc(640px - 1px)){.mw-parser-output{}.mw-parser-output table{display:block;overflow:auto;max-width:100%}.mw-parser-output .noresize table{display:table}}.wikitable{background-color:var(--background-color-neutral-subtle,#f8f9fa);color:var(--color-base,#202122);margin:1em 0;border:1px solid var(--border-color-base,#a2a9b1);border-collapse:collapse}.wikitable > tr > th,.wikitable > tr > td,.wikitable > * > tr > th,.wikitable > * > tr > td{border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em 0.4em}.wikitable > tr > th,.wikitable > * > tr > th{background-color:var(--background-color-neutral,#eaecf0);color:var(--color-base,#202122);text-align:center}.wikitable > caption{font-weight:bold}@media all and (max-width:calc(640px - 1px)){body.skin--responsive .wikitable{float:none;margin-left:0;margin-right:0}}#catlinks{text-align:left}.catlinks{background-color:var(--background-color-neutral-subtle,#f8f9fa);margin-top:1em;border:1px solid var(--border-color-base,#a2a9b1);padding:5px;clear:both}.catlinks ul{display:inline;margin:0;padding:0;list-style:none}.catlinks li{display:inline-block;line-height:1.25em;margin:0.125em 0;border-left:1px solid var(--border-color-base,#a2a9b1);padding:0 0.5em}.catlinks li:first-child{border-left:0;padding-left:0.25em}.catlinks li a.mw-redirect{font-style:italic}.mw-hidden-cats-hidden,.catlinks-allhidden{display:none}.emptyPortlet{display:none}.printfooter,.client-nojs #t-print{display:none}.noresize{max-width:100%;overflow-x:auto}.mw-editsection{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mw-editsection,.mw-editsection-like{font-size:small;font-weight:normal;margin-left:1em;margin-right:0;-webkit-margin-start:1em;-webkit-margin-end:0;margin-inline-start:1em;margin-inline-end:0;vertical-align:baseline;line-height:0;unicode-bidi:isolate}.mw-editsection a,.mw-editsection-like a{white-space:nowrap}.mw-editsection::before,.mw-editsection-like::before{content:'\200B'}.mw-editsection-bracket,.mw-editsection-divider{color:var(--color-subtle,#54595d)}.usermessage{background-color:var(--background-color-warning-subtle,#fdf2d5);border:1px solid var(--border-color-warning,#ab7f2a);color:var(--color-emphasized,#101418);font-weight:bold;margin:2em 0 1em;padding:0.5em 1em;vertical-align:middle}a{text-decoration:none;color:#0645ad;background:none}a:not([href]){cursor:pointer}a:visited{color:#0b0080}a:active{color:#faa700}a:hover,a:focus{text-decoration:underline}img{border:0;vertical-align:middle}hr{height:1px;background-color:var(--border-color-base,#a2a9b1);border:0;margin:0.2em 0}.mw-heading,h1,h2,h3,h4,h5,h6{color:var(--color-emphasized,#101418);font-weight:bold;margin:0;padding-top:0.5em;padding-bottom:0.17em;display:flow-root;word-break:break-word}.mw-heading1,h1,.mw-heading2,h2{margin-bottom:0.6em;border-bottom:1px solid var(--border-color-base,#a2a9b1)}.mw-heading3,h3,.mw-heading4,h4,.mw-heading5,h5{margin-bottom:0.3em}.mw-heading1,h1{font-size:188%;font-weight:normal}.mw-heading2,h2{font-size:150%;font-weight:normal}.mw-heading3,h3{font-size:128%}.mw-heading4,h4{font-size:116%}.mw-heading5,h5{font-size:108%}.mw-heading6,h6{font-size:100%}.mw-heading h1,.mw-heading h2,.mw-heading h3,.mw-heading h4,.mw-heading h5,.mw-heading h6{display:inline;border:0;margin:0;padding:0;color:inherit;font:inherit}p{margin:0.4em 0 0.5em 0}p img{margin:0}ul{margin-top:0.3em;margin-bottom:0;margin-left:1.6em;margin-right:0;-webkit-margin-start:1.6em;-webkit-margin-end:0;margin-inline-start:1.6em;margin-inline-end:0;padding:0}ol{margin-top:0.3em;margin-bottom:0;margin-left:3.2em;margin-right:0;-webkit-margin-start:3.2em;-webkit-margin-end:0;margin-inline-start:3.2em;margin-inline-end:0;padding:0;list-style-image:none}dd{margin-bottom:0.1em;margin-left:1.6em;margin-right:0;-webkit-margin-start:1.6em;-webkit-margin-end:0;margin-inline-start:1.6em;margin-inline-end:0}li{margin-bottom:0.1em}dt{font-weight:bold;margin-bottom:0.1em}dl{margin-top:0.2em;margin-bottom:0.5em}pre,code,tt,kbd,samp,.mw-code{font-family:monospace,monospace}pre,code,.mw-code{background-color:var(--background-color-neutral-subtle,#f8f9fa);color:var(--color-emphasized,#101418);border:1px solid var(--border-color-muted,#dadde3)}code{border-radius:2px;padding:1px 4px}pre,.mw-code{padding:1em;white-space:pre-wrap;overflow-x:hidden;word-wrap:break-word}table{font-size:100%}fieldset{border:1px solid #2a4b8d;margin:1em 0 1em 0;padding:0 1em 1em}legend{padding:0.5em}form{border:0;margin:0}textarea{display:block;box-sizing:border-box;width:100%;border:1px solid var(--border-color-base,#a2a9b1);padding:0.1em}.center{width:100%;text-align:center}*.center *{margin-left:auto;margin-right:auto}.small{font-size:94%}table.small{font-size:100%}@counter-style meetei{system:numeric;symbols:'\ABF0' '\ABF1' '\ABF2' '\ABF3' '\ABF4' '\ABF5' '\ABF6' '\ABF7' '\ABF8' '\ABF9';suffix:') '}@counter-style santali{system:numeric;symbols:'\1C50' '\1C51' '\1C52' '\1C53' '\1C54' '\1C55' '\1C56' '\1C57' '\1C58' '\1C59'}@counter-style myanmar_with_period{system:numeric;symbols:'\1040' '\1041' '\1042' '\1043' '\1044' '\1045' '\1046' '\1047' '\1048' '\1049';suffix:'\104B\0020'}ol:lang(azb) li,ol:lang(bcc) li,ol:lang(bgn) li,ol:lang(bqi) li,ol:lang(fa) li,ol:lang(glk) li,ol:lang(kk-arab) li,ol:lang(lrc) li,ol:lang(luz) li,ol:lang(mzn) li{list-style-type:persian}ol:lang(ckb) li,ol:lang(sdh) li{list-style-type:arabic-indic}ol:lang(hi) li,ol:lang(mai) li,ol:lang(mr) li,ol:lang(ne) li{list-style-type:devanagari}ol:lang(as) li,ol:lang(bn) li{list-style-type:bengali}ol:lang(mni) li{list-style-type:meetei}ol:lang(or) li{list-style-type:oriya}ol:lang(sat) li{list-style-type:santali}ol:lang(blk) li,ol:lang(kjp) li,ol:lang(ksw) li,ol:lang(mnw) li,ol:lang(my) li,ol:lang(shn) li{list-style-type:myanmar_with_period}.mw-heading1:lang(anp),.mw-heading1:lang(as),.mw-heading1:lang(awa),.mw-heading1:lang(bgc),.mw-heading1:lang(bh),.mw-heading1:lang(bho),.mw-heading1:lang(blk),.mw-heading1:lang(bn),.mw-heading1:lang(bo),.mw-heading1:lang(bpy),.mw-heading1:lang(ccp),.mw-heading1:lang(dty),.mw-heading1:lang(dz),.mw-heading1:lang(gom),.mw-heading1:lang(gu),.mw-heading1:lang(hi),.mw-heading1:lang(kjp),.mw-heading1:lang(km),.mw-heading1:lang(kn),.mw-heading1:lang(ks),.mw-heading1:lang(ksw),.mw-heading1:lang(mag),.mw-heading1:lang(mai),.mw-heading1:lang(ml),.mw-heading1:lang(mnw),.mw-heading1:lang(mr),.mw-heading1:lang(my),.mw-heading1:lang(new),.mw-heading1:lang(nit),.mw-heading1:lang(nod),.mw-heading1:lang(or),.mw-heading1:lang(pa),.mw-heading1:lang(pi),.mw-heading1:lang(rki),.mw-heading1:lang(sa),.mw-heading1:lang(shn),.mw-heading1:lang(si),.mw-heading1:lang(syl),.mw-heading1:lang(ta),.mw-heading1:lang(tcy),.mw-heading1:lang(tdd),.mw-heading1:lang(te),h1:lang(anp),h1:lang(as),h1:lang(awa),h1:lang(bgc),h1:lang(bh),h1:lang(bho),h1:lang(blk),h1:lang(bn),h1:lang(bo),h1:lang(bpy),h1:lang(ccp),h1:lang(dty),h1:lang(dz),h1:lang(gom),h1:lang(gu),h1:lang(hi),h1:lang(kjp),h1:lang(km),h1:lang(kn),h1:lang(ks),h1:lang(ksw),h1:lang(mag),h1:lang(mai),h1:lang(ml),h1:lang(mnw),h1:lang(mr),h1:lang(my),h1:lang(new),h1:lang(nit),h1:lang(nod),h1:lang(or),h1:lang(pa),h1:lang(pi),h1:lang(rki),h1:lang(sa),h1:lang(shn),h1:lang(si),h1:lang(syl),h1:lang(ta),h1:lang(tcy),h1:lang(tdd),h1:lang(te){line-height:1.6em !important}.mw-heading:lang(anp),.mw-heading:lang(as),.mw-heading:lang(awa),.mw-heading:lang(bgc),.mw-heading:lang(bh),.mw-heading:lang(bho),.mw-heading:lang(blk),.mw-heading:lang(bn),.mw-heading:lang(bo),.mw-heading:lang(bpy),.mw-heading:lang(ccp),.mw-heading:lang(dty),.mw-heading:lang(dz),.mw-heading:lang(gom),.mw-heading:lang(gu),.mw-heading:lang(hi),.mw-heading:lang(kjp),.mw-heading:lang(km),.mw-heading:lang(kn),.mw-heading:lang(ks),.mw-heading:lang(ksw),.mw-heading:lang(mag),.mw-heading:lang(mai),.mw-heading:lang(ml),.mw-heading:lang(mnw),.mw-heading:lang(mr),.mw-heading:lang(my),.mw-heading:lang(new),.mw-heading:lang(nit),.mw-heading:lang(nod),.mw-heading:lang(or),.mw-heading:lang(pa),.mw-heading:lang(pi),.mw-heading:lang(rki),.mw-heading:lang(sa),.mw-heading:lang(shn),.mw-heading:lang(si),.mw-heading:lang(syl),.mw-heading:lang(ta),.mw-heading:lang(tcy),.mw-heading:lang(tdd),.mw-heading:lang(te),h2:lang(anp),h2:lang(as),h2:lang(awa),h2:lang(bgc),h2:lang(bh),h2:lang(bho),h2:lang(blk),h2:lang(bn),h2:lang(bo),h2:lang(bpy),h2:lang(ccp),h2:lang(dty),h2:lang(dz),h2:lang(gom),h2:lang(gu),h2:lang(hi),h2:lang(kjp),h2:lang(km),h2:lang(kn),h2:lang(ks),h2:lang(ksw),h2:lang(mag),h2:lang(mai),h2:lang(ml),h2:lang(mnw),h2:lang(mr),h2:lang(my),h2:lang(new),h2:lang(nit),h2:lang(nod),h2:lang(or),h2:lang(pa),h2:lang(pi),h2:lang(rki),h2:lang(sa),h2:lang(shn),h2:lang(si),h2:lang(syl),h2:lang(ta),h2:lang(tcy),h2:lang(tdd),h2:lang(te),h3:lang(anp),h3:lang(as),h3:lang(awa),h3:lang(bgc),h3:lang(bh),h3:lang(bho),h3:lang(blk),h3:lang(bn),h3:lang(bo),h3:lang(bpy),h3:lang(ccp),h3:lang(dty),h3:lang(dz),h3:lang(gom),h3:lang(gu),h3:lang(hi),h3:lang(kjp),h3:lang(km),h3:lang(kn),h3:lang(ks),h3:lang(ksw),h3:lang(mag),h3:lang(mai),h3:lang(ml),h3:lang(mnw),h3:lang(mr),h3:lang(my),h3:lang(new),h3:lang(nit),h3:lang(nod),h3:lang(or),h3:lang(pa),h3:lang(pi),h3:lang(rki),h3:lang(sa),h3:lang(shn),h3:lang(si),h3:lang(syl),h3:lang(ta),h3:lang(tcy),h3:lang(tdd),h3:lang(te),h4:lang(anp),h4:lang(as),h4:lang(awa),h4:lang(bgc),h4:lang(bh),h4:lang(bho),h4:lang(blk),h4:lang(bn),h4:lang(bo),h4:lang(bpy),h4:lang(ccp),h4:lang(dty),h4:lang(dz),h4:lang(gom),h4:lang(gu),h4:lang(hi),h4:lang(kjp),h4:lang(km),h4:lang(kn),h4:lang(ks),h4:lang(ksw),h4:lang(mag),h4:lang(mai),h4:lang(ml),h4:lang(mnw),h4:lang(mr),h4:lang(my),h4:lang(new),h4:lang(nit),h4:lang(nod),h4:lang(or),h4:lang(pa),h4:lang(pi),h4:lang(rki),h4:lang(sa),h4:lang(shn),h4:lang(si),h4:lang(syl),h4:lang(ta),h4:lang(tcy),h4:lang(tdd),h4:lang(te),h5:lang(anp),h5:lang(as),h5:lang(awa),h5:lang(bgc),h5:lang(bh),h5:lang(bho),h5:lang(blk),h5:lang(bn),h5:lang(bo),h5:lang(bpy),h5:lang(ccp),h5:lang(dty),h5:lang(dz),h5:lang(gom),h5:lang(gu),h5:lang(hi),h5:lang(kjp),h5:lang(km),h5:lang(kn),h5:lang(ks),h5:lang(ksw),h5:lang(mag),h5:lang(mai),h5:lang(ml),h5:lang(mnw),h5:lang(mr),h5:lang(my),h5:lang(new),h5:lang(nit),h5:lang(nod),h5:lang(or),h5:lang(pa),h5:lang(pi),h5:lang(rki),h5:lang(sa),h5:lang(shn),h5:lang(si),h5:lang(syl),h5:lang(ta),h5:lang(tcy),h5:lang(tdd),h5:lang(te),h6:lang(anp),h6:lang(as),h6:lang(awa),h6:lang(bgc),h6:lang(bh),h6:lang(bho),h6:lang(blk),h6:lang(bn),h6:lang(bo),h6:lang(bpy),h6:lang(ccp),h6:lang(dty),h6:lang(dz),h6:lang(gom),h6:lang(gu),h6:lang(hi),h6:lang(kjp),h6:lang(km),h6:lang(kn),h6:lang(ks),h6:lang(ksw),h6:lang(mag),h6:lang(mai),h6:lang(ml),h6:lang(mnw),h6:lang(mr),h6:lang(my),h6:lang(new),h6:lang(nit),h6:lang(nod),h6:lang(or),h6:lang(pa),h6:lang(pi),h6:lang(rki),h6:lang(sa),h6:lang(shn),h6:lang(si),h6:lang(syl),h6:lang(ta),h6:lang(tcy),h6:lang(tdd),h6:lang(te){line-height:1.4em}.mw-heading1:lang(ne),h1:lang(ne){line-height:1.9}.mw-heading2:lang(th),.mw-heading2:lang(ne),h2:lang(th),h2:lang(ne){line-height:1.6}}@media print{table.floatright,div.floatright,table.floatleft,div.floatleft{border:0}div.thumb{page-break-inside:avoid}div.thumb a{border-bottom:0}div.thumbinner{background-color:#fff;color:#666;min-width:100px;border:1pt solid #000;border-radius:2px;font-size:10pt}.thumbborder{border:1pt solid #ddd}.magnify{display:none}figure[typeof~='mw:File/Thumb'],figure[typeof~='mw:File/Frame']{border:1pt;border-bottom:0;background-color:#fff}figure[typeof~='mw:File/Thumb'] > :not(figcaption) .mw-file-element,figure[typeof~='mw:File/Frame'] > :not(figcaption) .mw-file-element{border:1pt solid #ddd}figure[typeof~='mw:File/Thumb'] > figcaption,figure[typeof~='mw:File/Frame'] > figcaption{background-color:#fff;color:#666;font-size:10pt;border:1pt;border-top:0}.mw-image-border .mw-file-element{border:1pt}.mw-parser-output a.external{}.mw-parser-output a.external.text::after,.mw-parser-output a.external.autonumber::after{content:' (' attr(href) ')';word-break:break-all;word-wrap:break-word}.mw-parser-output a.external.text[href^='//']:after,.mw-parser-output a.external.autonumber[href^='//']:after{content:' (https:' attr(href) ')'}.wikitable{background:#fff;margin:1em 0;border:1pt solid #aaa;border-collapse:collapse;font-size:10pt;page-break-inside:avoid}.wikitable > caption{padding:5px;font-size:10pt}.wikitable > tr > th,.wikitable > tr > td,.wikitable > * > tr > th,.wikitable > * > tr > td{background:#fff !important;color:#000 !important;border:1pt solid #aaa;padding:0.4em 0.6em}.wikitable > tr > th,.wikitable > * > tr > th{text-align:center}table.listing,table.listing td{border:1pt solid #000;border-collapse:collapse}.catlinks ul{display:inline;padding:0;list-style:none}.catlinks li{display:inline-block;line-height:1.15;margin:0.1em 0;border-left:1pt solid #aaa;padding:0 0.4em}.catlinks li:first-child{border-left:0;padding-left:0.2em}.mw-hidden-catlinks,.catlinks{display:none}.mw-editsection,.mw-editsection-like,.mw-indicators,#siteNotice,.usermessage{display:none}.printfooter{clear:both;padding:1em 0}.center{text-align:center}a{background:none !important;padding:0 !important}a,a.external,a.new,a.stub{color:inherit !important;text-decoration:inherit !important}dt{font-weight:bold}.mw-heading,h1,h2,h3,h4,h5,h6{font-weight:bold;page-break-after:avoid}p{margin:1em 0;line-height:1.2;orphans:3;widows:3}img,figure{page-break-inside:avoid}img{border:0;vertical-align:middle}pre,.mw-code{background:#fff;color:#000;border:1pt dashed #000;padding:1em;font-size:8pt;white-space:pre-wrap;overflow-x:hidden;word-wrap:break-word}ul{list-style-type:square}}@media screen{:root,.skin-invert,.notheme{--color-base:#202122;--color-base-fixed:#202122;--color-base--hover:#404244;--color-emphasized:#101418;--color-subtle:#54595d;--color-placeholder:#72777d;--color-disabled:#a2a9b1;--color-disabled-emphasized:#a2a9b1;--color-inverted:#fff;--color-inverted-fixed:#fff;--color-progressive:#36c;--color-progressive--hover:#3056a9;--color-progressive--active:#233566;--color-progressive--focus:#36c;--color-destructive:#bf3c2c;--color-destructive--hover:#9f3526;--color-destructive--active:#612419;--color-destructive--focus:#36c;--color-visited:#6a60b0;--color-visited--hover:#534fa3;--color-visited--active:#353262;--color-destructive--visited:#9f5555;--color-destructive--visited--hover:#854848;--color-destructive--visited--active:#512e2e;--color-error:#bf3c2c;--color-error--hover:#9f3526;--color-error--active:#612419;--color-warning:#886425;--color-success:#177860;--color-notice:#404244;--color-icon-error:#f54739;--color-icon-warning:#ab7f2a;--color-icon-success:#099979;--color-icon-notice:#72777d;--color-content-added:#006400;--color-content-removed:#8b0000;--filter-invert-icon:0;--filter-invert-primary-button-icon:1;--box-shadow-color-base:#a2a9b1;--box-shadow-color-progressive--active:#233566;--box-shadow-color-progressive--focus:#36c;--box-shadow-color-progressive-selected:#36c;--box-shadow-color-progressive-selected--hover:#3056a9;--box-shadow-color-progressive-selected--active:#233566;--box-shadow-color-destructive--focus:#36c;--box-shadow-color-inverted:#fff;--box-shadow-color-alpha-base:rgba(0,0,0,0.06);--box-shadow-color-transparent:transparent;--mix-blend-mode-base:normal;--mix-blend-mode-blend:multiply;--background-color-base:#fff;--background-color-base-fixed:#fff;--background-color-neutral:#eaecf0;--background-color-neutral-subtle:#f8f9fa;--background-color-interactive:#eaecf0;--background-color-interactive--hover:#dadde3;--background-color-interactive--active:#c8ccd1;--background-color-interactive-subtle:#f8f9fa;--background-color-interactive-subtle--hover:#eaecf0;--background-color-interactive-subtle--active:#dadde3;--background-color-disabled:#dadde3;--background-color-disabled-subtle:#eaecf0;--background-color-inverted:#101418;--background-color-progressive:#36c;--background-color-progressive--hover:#3056a9;--background-color-progressive--active:#233566;--background-color-progressive--focus:#36c;--background-color-progressive-subtle:#f1f4fd;--background-color-progressive-subtle--hover:#dce3f9;--background-color-progressive-subtle--active:#cbd6f6;--background-color-destructive:#bf3c2c;--background-color-destructive--hover:#9f3526;--background-color-destructive--active:#612419;--background-color-destructive--focus:#36c;--background-color-destructive-subtle:#ffe9e5;--background-color-destructive-subtle--hover:#ffdad3;--background-color-destructive-subtle--active:#ffc8bd;--background-color-error:#f54739;--background-color-error--hover:#d74032;--background-color-error--active:#bf3c2c;--background-color-error-subtle:#ffe9e5;--background-color-error-subtle--hover:#ffdad3;--background-color-error-subtle--active:#ffc8bd;--background-color-warning-subtle:#fdf2d5;--background-color-success-subtle:#dff2eb;--background-color-notice-subtle:#eaecf0;--background-color-content-added:#a3d3ff;--background-color-content-removed:#ffe49c;--background-color-transparent:transparent;--background-color-backdrop-light:rgba(255,255,255,0.65);--background-color-backdrop-dark:rgba(0,0,0,0.65);--background-color-button-quiet--hover:rgba(0,24,73,0.027);--background-color-button-quiet--active:rgba(0,24,73,0.082);--background-color-input-binary--checked:#36c;--background-color-tab-list-item-framed--hover:rgba(255,255,255,0.3);--background-color-tab-list-item-framed--active:rgba(255,255,255,0.65);--opacity-icon-base:0.87;--opacity-icon-base--hover:0.74;--opacity-icon-base--selected:1;--opacity-icon-base--disabled:0.51;--opacity-icon-placeholder:0.51;--opacity-icon-subtle:0.67;--border-color-base:#a2a9b1;--border-color-subtle:#c8ccd1;--border-color-muted:#dadde3;--border-color-interactive:#72777d;--border-color-interactive--hover:#27292d;--border-color-interactive--active:#202122;--border-color-disabled:#c8ccd1;--border-color-inverted:#fff;--border-color-inverted-fixed:#fff;--border-color-progressive:#6485d1;--border-color-progressive--hover:#3056a9;--border-color-progressive--active:#233566;--border-color-progressive--focus:#36c;--border-color-destructive:#f54739;--border-color-destructive--hover:#9f3526;--border-color-destructive--active:#612419;--border-color-destructive--focus:#36c;--border-color-error:#f54739;--border-color-error--hover:#9f3526;--border-color-error--active:#612419;--border-color-warning:#ab7f2a;--border-color-success:#099979;--border-color-notice:#72777d;--border-color-content-added:#a3d3ff;--border-color-content-removed:#ffe49c;--border-color-transparent:transparent;--border-color-divider:#a2a9b1;--outline-color-progressive--focus:#36c;--color-link-red:var(--color-destructive);--color-link-red--hover:var(--color-destructive--hover);--color-link-red--active:var(--color-destructive--active);--color-link-red--focus:var(--color-destructive--focus);--color-link-red--visited:var(--color-destructive--visited);--color-link-red--visited--hover:var(--color-destructive--visited--hover);--color-link-red--visited--active:var(--color-destructive--visited--active);--accent-color-base:#36c;--border-color-input--hover:var(--border-color-interactive);--border-color-input-binary:var(--border-color-interactive);--border-color-input-binary--hover:var(--border-color-progressive--hover);--border-color-input-binary--active:var(--border-color-progressive--active);--border-color-input-binary--focus:var(--border-color-progressive--focus);--border-color-input-binary--checked:var(--border-color-progressive);--color-base--subtle:#54595d}html.skin-theme-clientpref-night{color-scheme:dark;--color-base:#eaecf0;--color-base--hover:#f8f9fa;--color-emphasized:#f8f9fa;--color-subtle:#a2a9b1;--color-disabled:#54595d;--color-disabled-emphasized:#72777d;--color-inverted:#101418;--color-progressive:#88a3e8;--color-progressive--hover:#b0c1f0;--color-progressive--active:#cbd6f6;--color-destructive:#fd7865;--color-destructive--hover:#fea898;--color-destructive--active:#ffc8bd;--color-visited:#a799cd;--color-visited--hover:#c5b9dd;--color-visited--active:#d9d0e9;--color-destructive--visited:#c99391;--color-destructive--visited--hover:#dcb5b3;--color-destructive--visited--active:#e8cecd;--color-error:#fd7865;--color-error--hover:#fea898;--color-error--active:#ffc8bd;--color-warning:#ca982e;--color-success:#2cb491;--color-notice:#a2a9b1;--color-content-added:#80cdb3;--color-content-removed:#fd7865;--color-base--subtle:#a2a9b1;--box-shadow-color-base:#72777d;--box-shadow-color-progressive--focus:#6485d1;--box-shadow-color-progressive-selected:#88a3e8;--box-shadow-color-progressive-selected--hover:#b0c1f0;--box-shadow-color-progressive-selected--active:#cbd6f6;--box-shadow-color-destructive--focus:#6485d1;--box-shadow-color-inverted:#000;--box-shadow-color-alpha-base:rgba(0,0,0,0.87);--mix-blend-mode-blend:screen;--background-color-base:#101418;--background-color-neutral:#27292d;--background-color-neutral-subtle:#202122;--background-color-interactive:#27292d;--background-color-interactive--hover:#404244;--background-color-interactive--active:#54595d;--background-color-interactive-subtle:#202122;--background-color-interactive-subtle--hover:#27292d;--background-color-interactive-subtle--active:#404244;--background-color-disabled:#404244;--background-color-disabled-subtle:#27292d;--background-color-inverted:#f8f9fa;--background-color-progressive--focus:#6485d1;--background-color-progressive-subtle:#1b223d;--background-color-progressive-subtle--hover:#233566;--background-color-progressive-subtle--active:#3056a9;--background-color-destructive--focus:#6485d1;--background-color-destructive-subtle:#3c1a13;--background-color-destructive-subtle--hover:#612419;--background-color-destructive-subtle--active:#9f3526;--background-color-error-subtle:#3c1a13;--background-color-error-subtle--hover:#612419;--background-color-error-subtle--active:#9f3526;--background-color-warning-subtle:#2d2212;--background-color-success-subtle:#132821;--background-color-notice-subtle:#27292d;--background-color-content-added:#233566;--background-color-content-removed:#453217;--background-color-backdrop-light:rgba(0,0,0,0.65);--background-color-backdrop-dark:rgba(255,255,255,0.65);--border-color-base:#72777d;--border-color-subtle:#54595d;--border-color-muted:#404244;--border-color-interactive--hover:#a2a9b1;--border-color-interactive--active:#c8ccd1;--border-color-disabled:#54595d;--border-color-inverted:#101418;--border-color-progressive--hover:#88a3e8;--border-color-progressive--active:#b0c1f0;--border-color-progressive--focus:#6485d1;--border-color-destructive--hover:#fd7865;--border-color-destructive--active:#fea898;--border-color-destructive--focus:#6485d1;--border-color-error--hover:#fd7865;--border-color-error--active:#fea898;--border-color-content-added:#233566;--border-color-content-removed:#987027}html.skin-theme-clientpref-night .skin-invert-image img,html.skin-theme-clientpref-night .skin-invert,html.skin-theme-clientpref-night .oo-ui-iconElement-icon:not(.oo-ui-image-progressive):not(.oo-ui-image-destructive):not(.oo-ui-checkboxInputWidget-checkIcon):not(.oo-ui-image-invert):not(.mw-no-invert),html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator{color-scheme:light;filter:invert(1) hue-rotate(180deg)}html.skin-theme-clientpref-night .notheme{color-scheme:light;color:var(--color-base)}.skin-invert .oo-ui-indicatorElement-indicator,.notheme .oo-ui-indicatorElement-indicator,.skin-invert .oo-ui-iconElement-icon:not(.oo-ui-image-progressive):not(.oo-ui-image-destructive):not(.oo-ui-checkboxInputWidget-checkIcon):not(.oo-ui-image-invert):not(.mw-no-invert),.notheme .oo-ui-iconElement-icon:not(.oo-ui-image-progressive):not(.oo-ui-image-destructive):not(.oo-ui-checkboxInputWidget-checkIcon):not(.oo-ui-image-invert):not(.mw-no-invert){filter:none !important}html.vector-feature-custom-font-size-clientpref--excluded,.vector-feature-custom-font-size-clientpref--excluded,html.vector-feature-custom-font-size-clientpref-0,.no-font-mode-scale,.mw-body-content .cdx-message{--font-size-medium:var(--font-size-small,0.875rem);--line-height-medium:1.5714285;--line-height-content:1.5714285}html.vector-feature-custom-font-size-clientpref-1,.vector-icon{--font-size-medium:var(--font-size-medium,1rem);--line-height-medium:1.6;--line-height-content:1.625}html.vector-feature-custom-font-size-clientpref-2{--font-size-medium:var(--font-size-x-large,1.25rem);--line-height-medium:1.5;--line-height-content:1.55}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os{color-scheme:light dark;--color-base:#eaecf0;--color-base--hover:#f8f9fa;--color-emphasized:#f8f9fa;--color-subtle:#a2a9b1;--color-disabled:#54595d;--color-disabled-emphasized:#72777d;--color-inverted:#101418;--color-progressive:#88a3e8;--color-progressive--hover:#b0c1f0;--color-progressive--active:#cbd6f6;--color-destructive:#fd7865;--color-destructive--hover:#fea898;--color-destructive--active:#ffc8bd;--color-visited:#a799cd;--color-visited--hover:#c5b9dd;--color-visited--active:#d9d0e9;--color-destructive--visited:#c99391;--color-destructive--visited--hover:#dcb5b3;--color-destructive--visited--active:#e8cecd;--color-error:#fd7865;--color-error--hover:#fea898;--color-error--active:#ffc8bd;--color-warning:#ca982e;--color-success:#2cb491;--color-notice:#a2a9b1;--color-content-added:#80cdb3;--color-content-removed:#fd7865;--color-base--subtle:#a2a9b1;--box-shadow-color-base:#72777d;--box-shadow-color-progressive--focus:#6485d1;--box-shadow-color-progressive-selected:#88a3e8;--box-shadow-color-progressive-selected--hover:#b0c1f0;--box-shadow-color-progressive-selected--active:#cbd6f6;--box-shadow-color-destructive--focus:#6485d1;--box-shadow-color-inverted:#000;--box-shadow-color-alpha-base:rgba(0,0,0,0.87);--mix-blend-mode-blend:screen;--background-color-base:#101418;--background-color-neutral:#27292d;--background-color-neutral-subtle:#202122;--background-color-interactive:#27292d;--background-color-interactive--hover:#404244;--background-color-interactive--active:#54595d;--background-color-interactive-subtle:#202122;--background-color-interactive-subtle--hover:#27292d;--background-color-interactive-subtle--active:#404244;--background-color-disabled:#404244;--background-color-disabled-subtle:#27292d;--background-color-inverted:#f8f9fa;--background-color-progressive--focus:#6485d1;--background-color-progressive-subtle:#1b223d;--background-color-progressive-subtle--hover:#233566;--background-color-progressive-subtle--active:#3056a9;--background-color-destructive--focus:#6485d1;--background-color-destructive-subtle:#3c1a13;--background-color-destructive-subtle--hover:#612419;--background-color-destructive-subtle--active:#9f3526;--background-color-error-subtle:#3c1a13;--background-color-error-subtle--hover:#612419;--background-color-error-subtle--active:#9f3526;--background-color-warning-subtle:#2d2212;--background-color-success-subtle:#132821;--background-color-notice-subtle:#27292d;--background-color-content-added:#233566;--background-color-content-removed:#453217;--background-color-backdrop-light:rgba(0,0,0,0.65);--background-color-backdrop-dark:rgba(255,255,255,0.65);--border-color-base:#72777d;--border-color-subtle:#54595d;--border-color-muted:#404244;--border-color-interactive--hover:#a2a9b1;--border-color-interactive--active:#c8ccd1;--border-color-disabled:#54595d;--border-color-inverted:#101418;--border-color-progressive--hover:#88a3e8;--border-color-progressive--active:#b0c1f0;--border-color-progressive--focus:#6485d1;--border-color-destructive--hover:#fd7865;--border-color-destructive--active:#fea898;--border-color-destructive--focus:#6485d1;--border-color-error--hover:#fd7865;--border-color-error--active:#fea898;--border-color-content-added:#233566;--border-color-content-removed:#987027}html.skin-theme-clientpref-os .notheme{color-scheme:light;color:var(--color-base)}html.skin-theme-clientpref-os .skin-invert-image img,html.skin-theme-clientpref-os .skin-invert,html.skin-theme-clientpref-os .oo-ui-iconElement-icon:not(.oo-ui-image-progressive):not(.oo-ui-image-destructive):not(.oo-ui-checkboxInputWidget-checkIcon):not(.oo-ui-image-invert):not(.mw-no-invert),html.skin-theme-clientpref-os .oo-ui-indicatorElement-indicator{color-scheme:light;filter:invert(1) hue-rotate(180deg)}}@media screen{html{scroll-padding-top:75px}body{background-color:var(--background-color-neutral-subtle,#f8f9fa);color:var(--color-base,#202122)}.mw-body,.parsoid-body{direction:ltr}.mw-body .firstHeading{word-wrap:break-word;margin-bottom:0}.mw-header{position:relative;z-index:3}#mw-content-text{margin-top:16px}.mw-indicators{z-index:1}.vector-page-titlebar{box-shadow:none}.vector-page-titlebar::after{clear:both;content:'';display:block}.vector-page-titlebar::after{content:'';display:block;position:absolute;bottom:0;left:0;right:0;height:1px;background-color:var(--border-color-base,#a2a9b1)}.vector-page-titlebar-blank::after{content:none}.vector-body-before-content{overflow:hidden}.vector-body-before-content .mw-indicators{margin-top:8px}.mw-body .mw-portlet-lang{float:right}.vector-body{position:relative;z-index:0}#siteSub{margin-top:8px}#contentSub:not(:empty),#contentSub2{font-size:var(--font-size-small,0.875rem);color:var(--color-subtle,#54595d);width:auto;margin:8px 0 0}.mw-page-container{min-width:18.75em;max-width:99.75rem;box-sizing:border-box;position:relative;z-index:0;margin:0 auto;padding-top:0.05px;padding-left:1.5rem;padding-right:1.5rem;background-color:var(--background-color-base,#fff)}.vector-header-container{width:100%;display:flex;justify-content:center}.vector-header-container .mw-header,.vector-header-container .vector-sticky-header{width:100%;min-height:3.125rem;background-color:var(--background-color-base,#fff);min-width:18.75em;max-width:99.75rem;padding-left:1.5rem;padding-right:1.5rem;box-sizing:border-box}.vector-feature-limited-width-clientpref-0 .mw-page-container,.vector-feature-limited-width-clientpref-0 .vector-sticky-header,.vector-feature-limited-width-clientpref-0 .mw-header{max-width:none}.skin--responsive .mw-page-container{min-width:auto}html{touch-action:manipulation}.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{grid-template-columns:minmax(0,1fr);grid-template-areas:'siteNotice' 'pageContent' 'columnStart' 'footer'}.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner .mw-body,.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner .mw-body{justify-content:center}.vector-column-start{margin-left:-12px}.vector-column-start .vector-main-menu-container{margin-left:12px}.mixin-toc-below-page-title{position:fixed;top:12px;left:12px;margin:0;z-index:50}.client-nojs.vector-feature-toc-pinned-clientpref-0 .vector-page-titlebar-toc{margin-right:8px}.client-nojs.vector-feature-toc-pinned-clientpref-0 .vector-page-titlebar-toc .vector-dropdown-content{max-width:none}.client-nojs.vector-feature-toc-pinned-clientpref-0 .vector-page-titlebar-toc .vector-toc{width:max-content;min-width:200px;max-width:min(0.85 * 59.25rem,75vw)}html,body{height:100%}:focus{outline-color:var(--outline-color-progressive--focus,#36c)}html{font-size:100%}html,body{font-family:sans-serif}ul{list-style-type:disc}pre,.mw-code{line-height:1.3}.mw-jump-link:not(:focus){display:block;position:absolute !important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mw-editsection,.mw-editsection-like{font-family:sans-serif}.mw-body h1,.mw-body .mw-heading1,.mw-body-content h1,.mw-body-content .mw-heading1,.mw-body-content h2,.mw-body-content .mw-heading2{font-family:'Linux Libertine','Georgia','Times','Source Serif Pro',serif;line-height:1.375}.mw-body h1:lang(ja),.mw-body .mw-heading1:lang(ja),.mw-body-content h1:lang(ja),.mw-body-content .mw-heading1:lang(ja),.mw-body-content h2:lang(ja),.mw-body-content .mw-heading2:lang(ja),.mw-body h1:lang(he),.mw-body .mw-heading1:lang(he),.mw-body-content h1:lang(he),.mw-body-content .mw-heading1:lang(he),.mw-body-content h2:lang(he),.mw-body-content .mw-heading2:lang(he),.mw-body h1:lang(ko),.mw-body .mw-heading1:lang(ko),.mw-body-content h1:lang(ko),.mw-body-content .mw-heading1:lang(ko),.mw-body-content h2:lang(ko),.mw-body-content .mw-heading2:lang(ko){font-family:sans-serif}.mw-body h1:lang(ckb),.mw-body .mw-heading1:lang(ckb),.mw-body-content h1:lang(ckb),.mw-body-content .mw-heading1:lang(ckb),.mw-body-content h2:lang(ckb),.mw-body-content .mw-heading2:lang(ckb){font-family:'Scheherazade','Linux Libertine','Georgia','Times','Source Serif Pro',serif}.mw-body h1:lang(my),.mw-body .mw-heading1:lang(my),.mw-body-content h1:lang(my),.mw-body-content .mw-heading1:lang(my),.mw-body-content h2:lang(my),.mw-body-content .mw-heading2:lang(my){line-height:normal}.mw-body h1,.mw-body .mw-heading1,.mw-body-content h1,.mw-body-content .mw-heading1{font-size:1.8em}.mw-body .mw-heading2,.mw-body h2{font-size:1.5em}.mw-body .mw-heading3,.mw-body h3,.mw-body .mw-heading4,.mw-body h4,.mw-body .mw-heading5,.mw-body h5,.mw-body .mw-heading6,.mw-body h6{padding-bottom:0;line-height:1.6}.mw-body .mw-heading2,.mw-body h2,.mw-body .mw-heading3,.mw-body h3,.mw-body .mw-heading4,.mw-body h4,.mw-body .mw-heading5,.mw-body h5,.mw-body .mw-heading6,.mw-body h6{margin:0.25em 0 0.25em 0}.mw-body .mw-heading3,.mw-body h3{font-size:1.2em}.mw-body .mw-heading3,.mw-body h3,.mw-body .mw-heading4,.mw-body h4{font-weight:bold}.mw-body .mw-heading4,.mw-body h4,.mw-body .mw-heading5,.mw-body h5,.mw-body .mw-heading6,.mw-body h6{font-size:100%}.mw-body .mw-heading1 h1,.mw-body .mw-heading2 h2,.mw-body .mw-heading3 h3,.mw-body .mw-heading4 h4,.mw-body .mw-heading5 h5,.mw-body .mw-heading6 h6{margin-top:0;font-size:inherit}.mw-body p{margin:0.5em 0 1em 0}.mw-body p + ul,.mw-body p + ol,.mw-body p + table,.mw-body p + dl,.mw-body p + blockquote{margin-top:-0.5em}.mw-body blockquote{border-left:4px solid var(--border-color-muted,#dadde3);padding:8px 32px}.mw-body blockquote > :first-child{margin-top:0}.mw-body blockquote > :last-child{margin-bottom:0}#siteSub{font-size:var(--font-size-small,0.875rem);display:none}.vector-body{font-size:var(--font-size-medium);line-height:var(--line-height-content)}a:where(:not([role='button'])){color:var(--color-progressive,#36c);border-radius:2px;text-decoration:none}a:where(:not([role='button'])):visited{color:var(--color-visited,#6a60b0)}a:where(:not([role='button'])):visited:hover{color:var(--color-visited--hover,#534fa3)}a:where(:not([role='button'])):visited:active{color:var(--color-visited--active,#353262)}a:where(:not([role='button'])):hover{color:var(--color-progressive--hover,#3056a9);text-decoration:underline}a:where(:not([role='button'])):active{color:var(--color-progressive--active,#233566);text-decoration:underline}a:where(:not([role='button'])):focus-visible{outline:solid 2px var(--outline-color-progressive--focus,#36c)}@supports not selector(:focus-visible){a:where(:not([role='button'])):focus{outline:solid 2px var(--outline-color-progressive--focus,#36c)}}a:where(:not([role='button'])) .cdx-icon:not(.cdx-thumbnail__placeholder__icon--vue):last-child{min-width:10px;min-height:10px;width:var(--font-size-medium,1rem);height:var(--font-size-medium,1rem);padding-left:4px;vertical-align:middle}a:where(.new:not([role='button'])){color:var(--color-destructive,#bf3c2c)}a:where(.new:not([role='button'])):visited{color:var(--color-destructive--visited,#9f5555)}a:where(.new:not([role='button'])):visited:hover{color:var(--color-destructive--visited--hover,#854848)}a:where(.new:not([role='button'])):visited:active{color:var(--color-destructive--visited--active,#512e2e)}a:where(.new:not([role='button'])):hover{color:var(--color-destructive--hover,#9f3526);text-decoration:underline}a:where(.new:not([role='button'])):active{color:var(--color-destructive--active,#612419);text-decoration:underline}a:where(.new:not([role='button'])):focus{outline-color:var(--outline-color-progressive--focus,#36c)}.mw-parser-output a{word-wrap:break-word}.mw-parser-output a.external{background-image:url(/w/skins/Vector/resources/skins.vector.styles/images/link-external-small-ltr-progressive.svg?fb64d);background-position:center right;background-repeat:no-repeat;background-size:0.857em;padding-right:1em}.mw-parser-output a.external.free{word-break:break-all}a.mw-selflink{color:inherit;font-weight:bold;text-decoration:inherit}a.mw-selflink:hover{cursor:inherit}.mw-underline-always a{text-decoration:underline}.mw-underline-never a{text-decoration:none}.plainlinks a.external{background:none !important;padding:0 !important}.vector-dropdown{position:relative}.vector-dropdown .vector-dropdown-label:not(.cdx-button--icon-only){display:inline-flex;align-items:center}.vector-dropdown .vector-dropdown-label:not(.cdx-button--icon-only)::after{content:'';min-width:10px;min-height:10px;width:calc(var(--font-size-medium,1rem) - 4px);height:calc(var(--font-size-medium,1rem) - 4px);display:inline-block;vertical-align:text-bottom;width:0.75rem;height:0.75rem;margin-left:7px}@supports not ((-webkit-mask-image:none) or (mask-image:none)){.vector-dropdown .vector-dropdown-label:not(.cdx-button--icon-only)::after{background-position:center;background-repeat:no-repeat;background-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px))}}@supports (-webkit-mask-image:none) or (mask-image:none){.vector-dropdown .vector-dropdown-label:not(.cdx-button--icon-only)::after{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px));mask-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px))}}@supports not ((-webkit-mask-image:none) or (mask-image:none)){.vector-dropdown .vector-dropdown-label:not(.cdx-button--icon-only)::after{background-image:url("data:image/svg+xml;utf8,");filter:invert(var(--filter-invert-icon,0));opacity:var(--opacity-icon-base,0.87)}}@supports (-webkit-mask-image:none) or (mask-image:none){.vector-dropdown .vector-dropdown-label:not(.cdx-button--icon-only)::after{-webkit-mask-image:url("data:image/svg+xml;utf8,");mask-image:url("data:image/svg+xml;utf8,");background-color:var(--color-base,#202122)}}.vector-dropdown .vector-dropdown-label-text{font-size:var(--font-size-small,0.875rem)}.vector-dropdown .vector-dropdown-checkbox{cursor:pointer;position:absolute;top:0;left:0;z-index:1;opacity:0;width:100%;height:100%;margin:0;padding:0}.vector-dropdown .vector-dropdown-checkbox:checked ~ .vector-dropdown-content{opacity:1;visibility:visible;height:auto}.vector-dropdown .vector-dropdown-content{position:absolute;top:100%;left:-1px;opacity:0;height:0;visibility:hidden;overflow:hidden auto;z-index:50;background-color:var(--background-color-base,#fff);padding:16px 16px;font-size:var(--font-size-small,0.875rem);box-shadow:0 2px 6px -1px rgba(0,0,0,0.2);transition-property:opacity;transition-duration:100ms;width:max-content;max-width:200px;max-height:75vh}.vector-pinnable-element .vector-menu-heading{color:var(--color-subtle,#54595d);font-weight:normal;cursor:default;padding:6px 0;margin:6px 0;border-bottom:1px solid var(--background-color-interactive,#eaecf0)}.vector-pinnable-element .mw-list-item,.vector-dropdown-content .mw-list-item{padding:0}.vector-pinnable-element .mw-list-item a,.vector-dropdown-content .mw-list-item a{display:flex;align-items:center;padding:6px 0}.vector-pinnable-element .mw-list-item a .vector-icon,.vector-dropdown-content .mw-list-item a .vector-icon{margin-right:6px}.vector-pinnable-element .mw-list-item a:not(.mw-selflink):visited,.vector-dropdown-content .mw-list-item a:not(.mw-selflink):visited{color:var(--color-progressive,#36c)}.vector-pinnable-element .mw-list-item a:not(.mw-selflink):visited:hover,.vector-dropdown-content .mw-list-item a:not(.mw-selflink):visited:hover{color:var(--color-progressive--hover,#3056a9)}.vector-pinnable-element .mw-list-item a.selected a,.vector-dropdown-content .mw-list-item a.selected a{color:var(--color-base,#202122) !important}.vector-feature-main-menu-pinned-enabled .vector-header-start .vector-main-menu-landmark,.vector-feature-main-menu-pinned-disabled .vector-main-menu-container .vector-main-menu-landmark{display:none}.vector-main-menu #p-navigation .vector-menu-heading{display:none}.vector-main-menu .vector-main-menu-action-opt-out a,.vector-main-menu .vector-main-menu-action-lang-alert .vector-main-menu-action-content{display:flex;align-items:center;padding:6px 0}.vector-main-menu .vector-main-menu-action-opt-out a .vector-icon,.vector-main-menu .vector-main-menu-action-lang-alert .vector-main-menu-action-content .vector-icon{margin-right:6px}.vector-main-menu .vector-main-menu-action-opt-out a:not(.mw-selflink):visited,.vector-main-menu .vector-main-menu-action-lang-alert .vector-main-menu-action-content:not(.mw-selflink):visited{color:var(--color-progressive,#36c)}.vector-main-menu .vector-main-menu-action-opt-out a:not(.mw-selflink):visited:hover,.vector-main-menu .vector-main-menu-action-lang-alert .vector-main-menu-action-content:not(.mw-selflink):visited:hover{color:var(--color-progressive--hover,#3056a9)}.vector-main-menu .vector-main-menu-action-opt-out a.selected a,.vector-main-menu .vector-main-menu-action-lang-alert .vector-main-menu-action-content.selected a{color:var(--color-base,#202122) !important}.vector-main-menu .vector-main-menu-action-opt-out a{font-weight:bold}.vector-main-menu .vector-main-menu-action-lang-alert .vector-main-menu-action-content{padding-top:0}.vector-pinnable-element{font-size:var(--font-size-small,0.875rem)}.vector-pinned-container{background-color:var(--background-color-base,#fff);padding:0 16px;margin-bottom:2rem;display:none}@supports (display:grid){.vector-pinned-container{display:block}}.vector-column-start,.vector-column-end{contain:paint}.vector-sticky-pinned-container{overflow:hidden auto;position:sticky;top:24px;box-sizing:border-box;max-height:calc(100vh - (24px * 2))}.vector-sticky-pinned-container::after{content:'';display:block;position:sticky;bottom:0;left:0;right:0;height:16px;background:linear-gradient(rgba(255,255,255,0),var(--background-color-base,#fff));background-repeat:no-repeat;pointer-events:none}.vector-pinnable-header{padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--background-color-interactive,#eaecf0);line-height:1.6}.vector-pinnable-header-label{display:inline-block;vertical-align:middle;font-size:var(--font-size-small,0.875rem);margin:0 0.5rem 0 0 !important;padding:0;border:0;font-weight:bold}.vector-pinnable-header-toggle-button{display:none;border:0;padding:4px 8px;background-color:var(--background-color-interactive,#eaecf0);color:var(--color-base,#202122);cursor:pointer;text-align:left;font-size:0.75rem;border-radius:2px}.vector-pinnable-header-toggle-button:hover{background-color:var(--background-color-neutral-subtle,#f8f9fa)}.vector-feature-page-tools-pinned-enabled .vector-page-toolbar-container .vector-page-tools-landmark,.vector-feature-page-tools-pinned-disabled .vector-column-end .vector-page-tools-landmark{display:none}.vector-page-tools .vector-more-collapsible-item{display:block}.vector-toc .vector-pinnable-header{margin-left:12px}.vector-toc .vector-pinnable-header-label{font-size:100%}.vector-toc .vector-toc-numb{display:none}.vector-toc .vector-toc-toggle{display:none;transition:100ms;position:absolute;left:calc(-1 * 22px / 2);top:1px;min-width:22px;min-height:22px;padding:0;font-size:0.7rem}.vector-toc .vector-toc-link{display:block;word-break:break-word}.vector-toc .vector-toc-list-item-active > .vector-toc-link,.vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link,.vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link{color:var(--color-base,#202122) !important;font-weight:bold}.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text,.vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text,.vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{width:calc(100% + 16px)}.vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-active) > .vector-toc-link{color:var(--color-base,#202122) !important}.vector-toc .vector-toc-text{padding:6px 0}.vector-toc .vector-toc-contents,.vector-toc .vector-toc-list{margin:0;list-style:none}.vector-toc .vector-toc-list-item{position:relative;list-style-type:none;padding-left:12px;margin:0}.client-js .vector-toc .vector-toc-level-1 .vector-toc-list-item{display:none}.client-js .vector-toc .vector-toc-level-1.vector-toc-list-item-expanded .vector-toc-list-item{display:block}.client-js .vector-toc .vector-toc-toggle{display:block}.client-js .vector-toc .vector-toc-level-1.vector-toc-list-item-expanded .vector-toc-toggle{transform:rotate(0deg)}.client-js body.ltr .vector-toc .vector-toc-toggle{transform:rotate(-90deg)}.client-js body.rtl .vector-toc .vector-toc-toggle{transform:rotate(90deg)}.vector-toc-landmark{display:none}.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar .vector-toc-landmark,.vector-feature-toc-pinned-clientpref-0 .vector-sticky-header-visible .vector-sticky-header-context-bar .vector-toc-landmark,.vector-feature-toc-pinned-clientpref-1 .vector-column-start .vector-toc-landmark{display:block}.cdx-button:not(.cdx-button--icon-only) .vector-icon{margin-right:6px}.cdx-button{justify-content:center}.cdx-button.cdx-button--icon-only span + span{display:block;position:absolute !important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}input:hover + .cdx-button--weight-quiet:not(.cdx-button--action-progressive){background-color:var(--background-color-interactive-subtle--hover,#eaecf0)}input:active + .cdx-button--weight-quiet:not(.cdx-button--action-progressive){background-color:var(--background-color-interactive-subtle--active,#dadde3);color:var(--color-emphasized,#101418)}input:focus:not(:active) + .cdx-button:not(.cdx-button--action-progressive){border-color:var(--border-color-progressive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus,#36c)}input:hover + .cdx-button--weight-quiet.cdx-button--action-progressive{background-color:var(--background-color-progressive-subtle,#f1f4fd);color:var(--color-progressive--hover,#3056a9)}input:active + .cdx-button--weight-quiet.cdx-button--action-progressive{background-color:var(--background-color-progressive--active,#233566);color:var(--color-inverted,#fff);border-color:var(--border-color-progressive--active,#233566)}input:focus:not(:active) + .cdx-button--action-progressive{border-color:var(--border-color-progressive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus,#36c) inset 0 0 0 2px var(--box-shadow-color-inverted,#fff)}.vector-feature-appearance-pinned-clientpref-1 .vector-user-links .vector-appearance-landmark,.vector-feature-appearance-pinned-clientpref-0 .vector-column-end .vector-appearance-landmark{display:none}#vector-appearance-dropdown .vector-dropdown-content{left:auto;right:0}.exclusion-notice{color:var(--color-disabled,#a2a9b1)}.client-nojs .vector-appearance-landmark{display:none}.skin-client-pref-exclusion-notice{display:none}.vector-page-titlebar .mw-portlet-lang{box-sizing:border-box;flex-shrink:0}.client-nojs .vector-page-titlebar .mw-portlet-lang .mw-portlet-lang-heading-0{display:none}.vector-page-titlebar .mw-portlet-lang .vector-dropdown-label{user-select:none;opacity:1}.vector-page-titlebar .mw-portlet-lang .vector-dropdown-label.cdx-button--action-progressive.cdx-button--weight-quiet::after{mask-image:url(/w/skins/Vector/resources/skins.vector.styles/images/arrow-down-progressive.svg?5cd6d);background-color:var(--color-progressive,#36c);opacity:1}.vector-page-titlebar .mw-portlet-lang .vector-dropdown-checkbox:active + .vector-dropdown-label.cdx-button--action-progressive.cdx-button--weight-quiet{color:var(--color-inverted-fixed,#fff)}.vector-page-titlebar .mw-portlet-lang .vector-dropdown-checkbox:active + .vector-dropdown-label.cdx-button--action-progressive.cdx-button--weight-quiet .vector-icon{filter:brightness(0) invert(1)}.vector-page-titlebar .mw-portlet-lang .vector-dropdown-checkbox:active + .vector-dropdown-label.cdx-button--action-progressive.cdx-button--weight-quiet::after{background-image:url(/w/skins/Vector/resources/skins.vector.styles/images/arrow-down-invert.svg?1223d)}.vector-page-titlebar .mw-portlet-lang .vector-dropdown-content{box-sizing:border-box;max-height:65vh;overflow:auto;left:auto;right:0}.vector-page-titlebar .mw-portlet-lang .vector-dropdown-content li a{font-size:inherit}.vector-page-titlebar .mw-portlet-lang .after-portlet{margin-top:10px}.vector-page-titlebar .mw-portlet-lang .mw-portlet-lang-heading-empty{display:inline-flex;align-items:center}.vector-page-titlebar .mw-portlet-lang .mw-portlet-lang-heading-empty::after{content:'';min-width:10px;min-height:10px;width:calc(var(--font-size-medium,1rem) - 4px);height:calc(var(--font-size-medium,1rem) - 4px);display:inline-block;vertical-align:text-bottom;width:0.75rem;height:0.75rem;margin-left:7px}@supports not ((-webkit-mask-image:none) or (mask-image:none)){.vector-page-titlebar .mw-portlet-lang .mw-portlet-lang-heading-empty::after{background-position:center;background-repeat:no-repeat;background-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px))}}@supports (-webkit-mask-image:none) or (mask-image:none){.vector-page-titlebar .mw-portlet-lang .mw-portlet-lang-heading-empty::after{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px));mask-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px))}}@supports not ((-webkit-mask-image:none) or (mask-image:none)){.vector-page-titlebar .mw-portlet-lang .mw-portlet-lang-heading-empty::after{background-image:url("data:image/svg+xml;utf8,");filter:invert(var(--filter-invert-icon,0));opacity:var(--opacity-icon-base,0.87)}}@supports (-webkit-mask-image:none) or (mask-image:none){.vector-page-titlebar .mw-portlet-lang .mw-portlet-lang-heading-empty::after{-webkit-mask-image:url("data:image/svg+xml;utf8,");mask-image:url("data:image/svg+xml;utf8,");background-color:var(--color-base,#202122)}}.vector-page-titlebar .mw-portlet-lang .mw-portlet-lang-heading-empty + .vector-dropdown-content{min-width:300px}.vector-page-titlebar .mw-portlet-lang .mw-portlet-lang-heading-empty + .vector-dropdown-content .mw-portlet-empty-language-selector-body{padding:20px;border-bottom:solid 1px var(--border-color-subtle,#c8ccd1);color:var(--color-subtle,#54595d)}#p-lang-btn.mw-portlet-empty{display:none}.mw-interlanguage-selector{display:inline-flex;align-items:center}.mw-interlanguage-selector::after{content:'';min-width:10px;min-height:10px;width:calc(var(--font-size-medium,1rem) - 4px);height:calc(var(--font-size-medium,1rem) - 4px);display:inline-block;vertical-align:text-bottom;width:0.75rem;height:0.75rem;margin-left:7px}@supports not ((-webkit-mask-image:none) or (mask-image:none)){.mw-interlanguage-selector::after{background-position:center;background-repeat:no-repeat;background-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px))}}@supports (-webkit-mask-image:none) or (mask-image:none){.mw-interlanguage-selector::after{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px));mask-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px))}}@supports not ((-webkit-mask-image:none) or (mask-image:none)){.mw-interlanguage-selector::after{background-image:url("data:image/svg+xml;utf8,");filter:invert(var(--filter-invert-icon,0));opacity:var(--opacity-icon-base,0.87)}}@supports (-webkit-mask-image:none) or (mask-image:none){.mw-interlanguage-selector::after{-webkit-mask-image:url("data:image/svg+xml;utf8,");mask-image:url("data:image/svg+xml;utf8,");background-color:var(--color-base,#202122)}}.vector-dropdown > .mw-portlet-lang-heading-0{display:none}.client-js .mw-portlet-lang .vector-dropdown-content{display:none}.vector-uls-disabled.client-js .mw-portlet-lang .vector-dropdown-content{display:inherit}.client-js .action-view .vector-dropdown > .mw-portlet-lang-heading-0{display:flex}.client-js .action-view .vector-dropdown .mw-interlanguage-selector-empty:checked ~ .vector-dropdown-content{display:inherit}.vector-user-links{display:flex;align-items:center;position:relative;justify-content:flex-end;flex-shrink:1}.vector-user-links .mw-list-item,.vector-user-links .vector-dropdown-label{margin:0 4px}.vector-user-links .vector-dropdown-content .mw-list-item{margin:0}.vector-user-menu .vector-dropdown-content{left:auto;right:0}.vector-user-menu.user-links-collapsible-item--none,.vector-user-menu .user-links-collapsible-item--none{display:none}.vector-user-links-main{display:flex;align-items:center}.vector-user-links-main .vector-menu-content-list{display:flex;align-items:center;font-size:var(--font-size-small,0.875rem)}.vector-user-menu-logged-in .vector-dropdown-label{display:inline-flex;align-items:center}.vector-user-menu-logged-in .vector-dropdown-label::after{content:'';min-width:10px;min-height:10px;width:calc(var(--font-size-medium,1rem) - 4px);height:calc(var(--font-size-medium,1rem) - 4px);display:inline-block;vertical-align:text-bottom;width:0.75rem;height:0.75rem;margin-left:7px}@supports not ((-webkit-mask-image:none) or (mask-image:none)){.vector-user-menu-logged-in .vector-dropdown-label::after{background-position:center;background-repeat:no-repeat;background-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px))}}@supports (-webkit-mask-image:none) or (mask-image:none){.vector-user-menu-logged-in .vector-dropdown-label::after{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px));mask-size:calc(max(calc(var(--font-size-medium,1rem) - 4px),10px))}}@supports not ((-webkit-mask-image:none) or (mask-image:none)){.vector-user-menu-logged-in .vector-dropdown-label::after{background-image:url("data:image/svg+xml;utf8,");filter:invert(var(--filter-invert-icon,0));opacity:var(--opacity-icon-base,0.87)}}@supports (-webkit-mask-image:none) or (mask-image:none){.vector-user-menu-logged-in .vector-dropdown-label::after{-webkit-mask-image:url("data:image/svg+xml;utf8,");mask-image:url("data:image/svg+xml;utf8,");background-color:var(--color-base,#202122)}}#p-user-menu-anon-editor .vector-menu-heading{display:block}#p-user-menu-anon-editor .vector-menu-heading a::before{content:'('}#p-user-menu-anon-editor .vector-menu-heading a::after{content:')'}#pt-userpage-2{max-width:9.6875rem;overflow:hidden;text-overflow:ellipsis}#pt-userpage-2 a:not(.mw-selflink){color:var(--color-progressive,#36c)}#pt-userpage-2 span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mw-header{display:flex;flex-wrap:wrap;align-items:center;padding-top:8px;padding-bottom:8px;gap:16px}.mw-header .vector-header-start{gap:20px}.mw-header .vector-header-start,.mw-header .vector-header-end{display:flex;align-items:center}.mw-header .vector-header-end{flex-grow:1}.mw-header .search-toggle{display:inline-flex;float:right;font-size:1rem}.mw-header .vector-typeahead-search-container{display:none}.vector-icon{-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);min-width:10px;min-height:10px;width:calc(var(--font-size-medium,1rem) + 4px);height:calc(var(--font-size-medium,1rem) + 4px);display:inline-block;vertical-align:text-bottom;background-color:var(--color-base,#202122)}@supports not ((-webkit-mask-image:none) or (mask-image:none)){.vector-icon{background-position:center;background-repeat:no-repeat;background-size:calc(max(calc(var(--font-size-medium,1rem) + 4px),10px))}}@supports (-webkit-mask-image:none) or (mask-image:none){.vector-icon{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(max(calc(var(--font-size-medium,1rem) + 4px),10px));mask-size:calc(max(calc(var(--font-size-medium,1rem) + 4px),10px))}}.vector-icon[class*='-progressive']{background-color:var(--color-progressive,#36c)}.mw-indicators{font-size:var(--font-size-small,0.875rem);line-height:1.6;position:relative;float:right;display:flex;column-gap:8px;flex-wrap:wrap}.mw-indicator{display:inline-block}.mw-footer-container{padding-top:50px;padding-bottom:82px}.mw-footer{direction:ltr;border-top:1px solid var(--border-color-base,#a2a9b1);padding:0.75em 0}.mw-footer ul{list-style:none;margin:0;padding:0}.mw-footer li{color:var(--color-base,#202122);margin:0;padding:0.5em 0;font-size:0.75em}#footer-icons{float:right}#footer-icons li{float:left;margin-left:0.5em;line-height:2;text-align:right}#footer-icons a{padding-left:8px;padding-right:8px;background-color:#f8f9fa}#footer-info li{line-height:1.4}#footer-places li{float:left;margin-right:1em;line-height:2}.vector-menu .vector-menu-content-list{list-style:none;margin:0}.vector-menu-tabs{float:left}.vector-menu-tabs .mw-list-item .cdx-button--icon-only{margin:2px 0 0}.vector-menu-tabs .mw-list-item.vector-tab-noicon a:focus,.vector-menu-tabs .mw-list-item.vector-tab-noicon a:hover{text-decoration:none;border-bottom:2px solid}.vector-menu-tabs .mw-list-item.vector-tab-noicon a{border-bottom:2px solid var(--border-color-transparent,transparent)}.vector-menu-tabs .mw-list-item a:visited{color:var(--color-progressive,#36c)}.vector-menu-tabs .mw-list-item a:visited:hover{color:var(--color-progressive--hover,#3056a9)}.vector-menu-tabs .mw-list-item.new a:visited{color:var(--color-destructive,#bf3c2c)}.vector-menu-tabs .mw-list-item.new a:visited:hover{color:var(--color-destructive--hover,#9f3526)}.vector-menu-tabs .mw-list-item.selected a{color:var(--color-base,#202122) !important;border-bottom:2px solid}.vector-menu-tabs .mw-list-item.vector-tab-noicon,.vector-page-toolbar-container .vector-dropdown{margin:0 8px}.vector-menu-tabs .mw-list-item,.vector-page-toolbar-container .vector-dropdown-label{white-space:nowrap}.vector-menu-tabs .mw-list-item,.vector-page-toolbar-container .vector-dropdown{float:left;margin-bottom:0}.vector-menu-tabs .mw-list-item > a,.vector-page-toolbar-container .vector-dropdown > a,.vector-menu-tabs .mw-list-item .vector-dropdown-label,.vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{display:inline-flex;position:relative;cursor:pointer;font-weight:normal}.vector-menu-tabs .mw-list-item .vector-dropdown-label,.vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{font-size:inherit;border:0}.vector-menu-tabs .mw-list-item.vector-tab-noicon > a,.vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a,.vector-menu-tabs .mw-list-item .vector-dropdown-label,.vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{padding:12px 0 7px 0;margin-bottom:-1px}.vector-page-titlebar{position:relative;display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:center}.vector-page-titlebar-blank{box-shadow:none}.vector-page-titlebar .firstHeading{flex-grow:1;padding:0;border:0}.vector-page-titlebar .vector-page-titlebar-toc.ve-active{display:none !important}.vector-page-titlebar > .cdx-button{font-size:var(--font-size-small,0.875rem);white-space:nowrap}.vector-page-titlebar > .cdx-button,.vector-page-titlebar > .mw-portlet-lang{flex-shrink:0}.vector-page-titlebar > .cdx-button:last-child,.vector-page-titlebar > .mw-portlet-lang:last-child{margin-right:calc(-1 * 12px)}.vector-page-titlebar > .mw-portlet-lang-icon-only:last-child{margin-right:calc(-1 * 6px)}.vector-page-toolbar-container{display:flex;font-size:var(--font-size-small,0.875rem);box-shadow:0 1px var(--border-color-subtle,#c8ccd1);margin-bottom:1px}.vector-page-toolbar-container .mw-portlet-views{display:none}.vector-page-toolbar-container .vector-icon{min-width:10px;min-height:10px;width:var(--font-size-medium,1rem);height:var(--font-size-medium,1rem);display:inline-block;vertical-align:text-bottom;background-size:calc(max(var(--font-size-medium,1rem),14px))}@supports not ((-webkit-mask-image:none) or (mask-image:none)){.vector-page-toolbar-container .vector-icon{background-position:center;background-repeat:no-repeat;background-size:calc(max(var(--font-size-medium,1rem),10px))}}@supports (-webkit-mask-image:none) or (mask-image:none){.vector-page-toolbar-container .vector-icon{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:calc(max(var(--font-size-medium,1rem),10px));mask-size:calc(max(var(--font-size-medium,1rem),10px))}}#left-navigation{display:flex;margin-left:-8px;flex-grow:1}#right-navigation{display:flex;margin-right:-8px}#right-navigation .vector-dropdown-content{left:auto;right:0}.vector-search-box{font-size:var(--font-size-small,0.875rem);flex-grow:1}.vector-search-box .vector-typeahead-search-container{max-width:31.25rem;margin-right:12px}.vector-search-box .cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){margin-left:calc((12px + 40px) - (18px + 8px))}#localNotice{margin-bottom:0.9em}#siteNotice{font-size:0.8em;margin:24px 0;position:relative;text-align:center}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.vector-animations-ready .mw-watchlink .vector-icon{transition:transform 500ms}[dir='ltr'] .mw-watchlink .mw-ui-icon-wikimedia-unStar{transform:rotate(72deg)}[dir='rtl'] .mw-watchlink .mw-ui-icon-wikimedia-unStar{transform:rotate(-72deg)}.mw-portlet-dock-bottom,.vector-settings{display:none}.vector-sticky-header-container{display:none}}@media screen and (min-width:1120px){.mw-page-container,.vector-header-container .mw-header,.vector-header-container .vector-sticky-header{padding-left:2.75rem;padding-right:2.75rem}}@media screen and (min-width:1680px){.mw-page-container,.vector-header-container .mw-header,.vector-header-container .vector-sticky-header{padding-left:3.25rem;padding-right:3.25rem}}@media screen and (min-width:1120px){.mw-page-container-inner{display:grid;column-gap:24px;grid-template:min-content 1fr min-content / 12.25rem minmax(0,1fr);grid-template-areas:'siteNotice siteNotice' 'columnStart pageContent' 'footer footer'}.vector-sitenotice-container{grid-area:siteNotice}.vector-column-start{grid-area:columnStart;overflow-anchor:none}.mw-content-container{grid-area:pageContent}.mw-footer-container{grid-area:footer}.vector-feature-page-tools-pinned-enabled .vector-column-end,.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{width:12.25rem}.vector-column-start,.vector-column-end{margin-top:2.8rem;border-top:1px solid transparent}}@media screen and (min-width:1680px){.mw-page-container-inner{grid-template-columns:15.5rem minmax(0,1fr)}.mw-header{display:grid;column-gap:24px;grid-template:auto / 15.5rem minmax(0,1fr);grid-template-areas:'headerStart headerEnd'}.mw-header .vector-header-start{grid-area:headerStart}.mw-header .vector-header-end{grid-area:headerEnd}.vector-feature-page-tools-pinned-enabled .vector-column-end,.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{width:15.5rem}}@media screen and (min-width:1120px){.mw-body{display:grid;grid-template:min-content min-content min-content 1fr / minmax(0,59.25rem) min-content;grid-template-areas:'titlebar-cx .' 'titlebar columnEnd' 'toolbar columnEnd' 'content columnEnd'}.mw-body .vector-page-titlebar{grid-area:titlebar}.mw-body .vector-page-toolbar{grid-area:toolbar}.mw-body #bodyContent{grid-area:content}.mw-body .vector-column-end{grid-area:columnEnd;overflow-anchor:none}.vector-feature-page-tools-pinned-enabled .mw-body,.vector-feature-appearance-pinned-clientpref-1 .mw-body{column-gap:24px}.vector-feature-limited-width-clientpref-0 .mw-body,.vector-feature-limited-width-content-disabled .mw-body{grid-template-columns:minmax(0,1fr) min-content}}@media screen and (max-width:calc(1120px - 1px)){.client-js .vector-page-titlebar-toc{margin-right:8px}.client-js .vector-page-titlebar-toc .vector-dropdown-content{max-width:none}.client-js .vector-page-titlebar-toc .vector-toc{width:max-content;min-width:200px;max-width:min(0.85 * 59.25rem,75vw)}.client-js .vector-below-page-title .vector-page-titlebar-toc{position:fixed;top:12px;left:12px;margin:0;z-index:50}}@media screen and (min-width:1120px){.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{margin-right:8px}.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{max-width:none}.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-toc{width:max-content;min-width:200px;max-width:min(0.85 * 59.25rem,75vw)}.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible).vector-below-page-title .vector-page-titlebar-toc{position:fixed;top:12px;left:12px;margin:0;z-index:50}.client-js.vector-feature-toc-pinned-clientpref-0 .vector-sticky-header-visible .vector-sticky-header-toc{margin-right:8px}.client-js.vector-feature-toc-pinned-clientpref-0 .vector-sticky-header-visible .vector-sticky-header-toc .vector-dropdown-content{max-width:none}.client-js.vector-feature-toc-pinned-clientpref-0 .vector-sticky-header-visible .vector-sticky-header-toc .vector-toc{width:max-content;min-width:200px;max-width:min(0.85 * 59.25rem,75vw)}}@media screen and (max-width:calc(1120px - 1px)){.client-nojs.vector-feature-toc-pinned-clientpref-1 .vector-sticky-pinned-container{position:static}.client-nojs.vector-feature-toc-pinned-clientpref-1 #vector-toc-pinned-container{max-height:200px}}@media screen and (max-width:calc(1120px - 1px)){.client-js .vector-pinned-container{display:none}.client-js .vector-sticky-pinned-container{display:none}}@media screen and (min-width:1120px){.client-js .vector-pinnable-header-unpinned .vector-pinnable-header-pin-button,.client-js .vector-pinnable-header-pinned .vector-pinnable-header-unpin-button{display:inline-block}}@media screen and (min-width:640px){.vector-page-tools .vector-more-collapsible-item{display:none}}@media screen and (max-width:calc(640px - 1px)){.vector-page-tools .vector-has-collapsible-items{display:block}}@media screen and (max-width:calc(1120px - 1px)){.client-js .vector-page-titlebar .vector-toc-landmark{display:block}.client-js .mw-table-of-contents-container.vector-toc-landmark{display:none}}@media screen and (max-width:calc(1120px - 1px)){#p-lang-btn-label.cdx-button--icon-only,#vector-page-titlebar-toc-label,.vector-header .cdx-button.cdx-button--icon-only{min-height:44px;min-width:44px}}@media screen and (min-width:1120px){.vector-button-flush-left{margin-left:calc(-1 * 6px)}}@media screen and (max-width:calc(1120px - 1px)){.vector-button-flush-left{margin-left:calc(-1 * 12px)}}@media screen and (min-width:1120px){.vector-button-flush-right{margin-right:calc(-1 * 6px)}}@media screen and (max-width:calc(1120px - 1px)){.vector-button-flush-right{margin-right:calc(-1 * 12px)}}@media screen and (max-width:1399px){.vector-feature-limited-width-clientpref-0 #skin-client-prefs-vector-feature-limited-width .skin-client-pref-exclusion-notice{display:block}}@media screen and (min-width:640px){.vector-user-menu.user-links-collapsible-item,.vector-user-menu .user-links-collapsible-item{display:none}}@media screen and (max-width:calc(640px - 1px)){.vector-user-links-main .user-links-collapsible-item{display:none}}@media screen and (min-width:1680px){#pt-userpage-2{max-width:12.5rem}}@media screen and (min-width:1120px){.mw-header .search-toggle{display:none !important}}@media screen and (min-width:1120px){.mw-header .vector-typeahead-search-container{display:block}}@media screen and (max-width:calc(1120px - 1px)){.mw-header{}.mw-header.vector-header-search-toggled .vector-header-start,.mw-header.vector-header-search-toggled .search-toggle{display:none}.mw-header.vector-header-search-toggled .vector-typeahead-search-container{display:block;max-width:none}.mw-header.vector-header-search-toggled .vector-search-box{position:relative}.mw-header.vector-header-search-toggled .cdx-typeahead-search--expanded .cdx-search-input__end-button{border-bottom-right-radius:0}}@media screen and (min-width:640px){.vector-page-toolbar-container .mw-portlet-views:not(.emptyPortlet){display:block}}@media screen and (min-width:1680px){.client-js .vector-search-box.vector-search-box-auto-expand-width{margin-left:calc(-1 * 24px)}}@media all{.mw-logo{display:flex;height:100%;align-items:center}.mw-logo-icon{float:left;margin-right:10px;display:none;width:3.125em;height:3.125em}.mw-logo-container{float:left;max-width:120px}.mw-logo-container img{width:100%}.mw-logo-wordmark{display:block;margin:0 auto}.mw-logo-tagline{display:block;margin:5px auto 0}}@media all and (min-width:640px){.mw-logo-icon{display:block}}@media all and (min-width:640px){.mw-logo-container{max-width:none}.mw-logo-container img{width:auto}}@media print{.toc,body{padding:10px;font-family:'Linux Libertine','Georgia','Times','Source Serif Pro',serif}.printfooter,.mw-footer,.thumb,figure,table,ol,dl,ul,.mw-heading3,h3,.mw-heading4,h4,.mw-heading5,h5,.mw-heading6,h6{font-family:sans-serif}img{font-family:'Linux Libertine','Georgia','Times','Source Serif Pro',serif}.mw-body a:not(.image){border-bottom:1px solid #aaa}.firstHeading{font-size:25pt;line-height:28pt;margin-bottom:20px;padding-bottom:5px}.firstHeading,.mw-heading2,h2{overflow:hidden;border-bottom:2px solid var(--color-emphasized,#101418)}.mw-heading3,h3,.mw-heading4,h4,.mw-heading5,h5,.mw-heading6,h6{margin:30px 0 0}.mw-heading2,h2,.mw-heading3,h3,.mw-heading4,h4,.mw-heading5,h5,.mw-heading6,h6{padding:0;position:relative}.mw-heading2,h2{font-size:18pt;line-height:24pt;margin-bottom:0.25em}.mw-heading3,h3{font-size:14pt;line-height:20pt}.mw-heading4,h4,.mw-heading5,h5,.mw-heading6,h6{font-size:12pt;line-height:16pt}p{font-size:12pt;line-height:16pt;margin-top:5px;text-align:justify}p::before{content:'';display:block;width:120pt;overflow:hidden;page-break-after:avoid}blockquote{border-left:2px solid var(--color-emphasized,#101418);padding-left:20px}ol,ul{margin:10px 0 0 1.6em;padding:0}ol li,ul li{padding:2px 0;font-size:12pt}table ol li,table ul li{font-size:inherit}.toc{page-break-before:avoid;page-break-after:avoid;background:none;border:0;display:table}.toc a{border:0;font-weight:normal}.toc > ul > li{margin-bottom:4px;font-weight:bold}.toc ul{margin:0;list-style:none}.toc ul ul{padding-left:30px}.toc li.toclevel-1 > a{font-size:12pt;font-weight:bold}#mw-navigation,.noprint,.mw-jump-link,.mw-portlet-lang,.toc .tocnumber{display:none}.printfooter{margin-top:10px;border-top:3px solid var(--color-emphasized,#101418);padding-top:10px;font-size:10pt;clear:both}.mw-footer{margin-top:12px;border-top:1px solid #eee;padding-top:5px}#footer-info{margin:0;padding:0}#footer-info li{color:#999;list-style:none;display:block;padding-bottom:10px;font-size:10pt}#footer-info li a{color:#999 !important}#footer-info-lastmod{color:var(--color-emphasized,#101418);font-size:12pt;font-weight:bold}.vector-page-toolbar,.vector-header-start > *:not(.mw-logo),.vector-header-end,#mw-panel-toc,#vector-sticky-header,#p-lang-btn,.vector-menu-checkbox,nav,#vector-page-titlebar-toc,#footer{display:none !important}}.cdx-icon{color:var(--color-base,#202122);display:inline-flex;align-items:center;justify-content:center;vertical-align:text-bottom}.cdx-icon svg{fill:currentcolor;width:100%;height:100%}.cdx-icon--x-small{min-width:10px;min-height:10px;width:calc(var(--font-size-medium,1rem) - 4px);height:calc(var(--font-size-medium,1rem) - 4px)}.cdx-icon--small{min-width:14px;min-height:14px;width:var(--font-size-medium,1rem);height:var(--font-size-medium,1rem)}.cdx-icon--medium{min-width:18px;min-height:18px;width:calc(var(--font-size-medium,1rem) + 4px);height:calc(var(--font-size-medium,1rem) + 4px)}.cdx-icon--flipped svg{transform:scaleX(-1)}.cdx-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;min-height:32px;max-width:28rem;margin:0;border-width:1px;border-style:solid;border-radius:2px;padding-right:11px;padding-left:11px;font-family:inherit;font-size:var(--font-size-medium,1rem);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-button--size-large{min-height:44px;padding-right:15px;padding-left:15px}.cdx-button--icon-only{min-width:32px;padding-right:5px;padding-left:5px}.cdx-button--icon-only.cdx-button--size-large{min-width:44px;padding-right:11px;padding-left:11px}.cdx-button::-moz-focus-inner{border:0;padding:0}.cdx-button .cdx-button__icon,.cdx-button .cdx-icon{vertical-align:middle}.cdx-button .cdx-icon{color:inherit}.cdx-button--fake-button,.cdx-button--fake-button:hover,.cdx-button--fake-button:focus{text-decoration:none}.cdx-button:enabled,.cdx-button.cdx-button--fake-button--enabled{background-color:var(--background-color-interactive-subtle,#f8f9fa);color:var(--color-base,#202122);border-color:var(--border-color-interactive,#72777d)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled .cdx-button__icon{background-color:var(--color-base,#202122)}}.cdx-button:enabled:hover,.cdx-button.cdx-button--fake-button--enabled:hover{background-color:var(--background-color-interactive-subtle--hover,#eaecf0);border-color:var(--border-color-interactive--hover,#27292d);cursor:pointer}.cdx-button:enabled:active,.cdx-button.cdx-button--fake-button--enabled:active,.cdx-button:enabled.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--is-active{background-color:var(--background-color-interactive-subtle--active,#dadde3);border-color:var(--border-color-interactive--active,#202122)}.cdx-button:enabled:focus,.cdx-button.cdx-button--fake-button--enabled:focus{outline:1px solid transparent}.cdx-button:enabled:focus:not(:active):not(.cdx-button--is-active),.cdx-button.cdx-button--fake-button--enabled:focus:not(:active):not(.cdx-button--is-active){border-color:var(--border-color-progressive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus,#36c)}.cdx-button:enabled.cdx-button--action-progressive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive{background-color:var(--background-color-progressive-subtle,#f1f4fd);color:var(--color-progressive,#36c);border-color:var(--border-color-progressive,#6485d1)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--action-progressive .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive .cdx-button__icon{background-color:var(--color-progressive,#36c)}}.cdx-button:enabled.cdx-button--action-progressive:hover,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive:hover{background-color:var(--background-color-progressive-subtle--hover,#dce3f9);color:var(--color-progressive--hover,#3056a9);border-color:var(--border-color-progressive--hover,#3056a9)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--action-progressive:hover .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive:hover .cdx-button__icon{background-color:var(--color-progressive--hover,#3056a9)}}.cdx-button:enabled.cdx-button--action-progressive:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive:active,.cdx-button:enabled.cdx-button--action-progressive.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive.cdx-button--is-active{background-color:var(--background-color-progressive-subtle--active,#cbd6f6);color:var(--color-progressive--active,#233566);border-color:var(--border-color-progressive--active,#233566)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--action-progressive:active .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive:active .cdx-button__icon,.cdx-button:enabled.cdx-button--action-progressive.cdx-button--is-active .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-progressive.cdx-button--is-active .cdx-button__icon{background-color:var(--color-progressive--active,#233566)}}.cdx-button:enabled.cdx-button--action-destructive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive{background-color:var(--background-color-destructive-subtle,#ffe9e5);color:var(--color-destructive,#bf3c2c);border-color:var(--border-color-destructive,#f54739)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--action-destructive .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive .cdx-button__icon{background-color:var(--color-destructive,#bf3c2c)}}.cdx-button:enabled.cdx-button--action-destructive:hover,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:hover{background-color:var(--background-color-destructive-subtle--hover,#ffdad3);color:var(--color-destructive--hover,#9f3526);border-color:var(--border-color-destructive--hover,#9f3526)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--action-destructive:hover .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:hover .cdx-button__icon{background-color:var(--color-destructive--hover,#9f3526)}}.cdx-button:enabled.cdx-button--action-destructive:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:active,.cdx-button:enabled.cdx-button--action-destructive.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive.cdx-button--is-active{background-color:var(--background-color-destructive-subtle--active,#ffc8bd);color:var(--color-destructive--active,#612419);border-color:var(--border-color-destructive--active,#612419)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--action-destructive:active .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:active .cdx-button__icon,.cdx-button:enabled.cdx-button--action-destructive.cdx-button--is-active .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive.cdx-button--is-active .cdx-button__icon{background-color:var(--color-destructive--active,#612419)}}.cdx-button:enabled.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active),.cdx-button.cdx-button--fake-button--enabled.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active){border-color:var(--border-color-destructive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-destructive--focus,#36c)}.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive{background-color:var(--background-color-progressive,#36c);color:var(--color-inverted-fixed,#fff);border-color:var(--border-color-transparent,transparent)}.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive:hover,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive:hover{background-color:var(--background-color-progressive--hover,#3056a9)}.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive:active,.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive.cdx-button--is-active{background-color:var(--background-color-progressive--active,#233566)}.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive:focus:not(:active):not(.cdx-button--is-active),.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive:focus:not(:active):not(.cdx-button--is-active){border-color:var(--border-color-progressive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus,#36c),inset 0 0 0 2px var(--box-shadow-color-inverted,#fff)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-progressive .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-progressive .cdx-button__icon{background-color:var(--color-inverted-fixed,#fff)}}.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive{background-color:var(--background-color-destructive,#bf3c2c);color:var(--color-inverted-fixed,#fff);border-color:var(--border-color-transparent,transparent)}.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive:hover,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive:hover{background-color:var(--background-color-destructive--hover,#9f3526)}.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive:active,.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive.cdx-button--is-active{background-color:var(--background-color-destructive--active,#612419)}.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active),.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active){border-color:var(--border-color-destructive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-destructive--focus,#36c),inset 0 0 0 2px var(--box-shadow-color-inverted,#fff)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--weight-primary.cdx-button--action-destructive .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-primary.cdx-button--action-destructive .cdx-button__icon{background-color:var(--color-inverted-fixed,#fff)}}.cdx-button:enabled.cdx-button--weight-quiet,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet{background-color:var(--background-color-transparent,transparent);border-color:var(--border-color-transparent,transparent)}.cdx-button:enabled.cdx-button--weight-quiet:hover,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet:hover{background-color:var(--background-color-interactive-subtle--hover,#eaecf0);mix-blend-mode:var(--mix-blend-mode-blend,multiply)}.cdx-button:enabled.cdx-button--weight-quiet:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet:active,.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--is-active{background-color:var(--background-color-interactive-subtle--active,#dadde3)}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive{color:var(--color-progressive,#36c)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive .cdx-button__icon{background-color:var(--color-progressive,#36c)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive:hover,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive:hover{background-color:var(--background-color-progressive-subtle--hover,#dce3f9);color:var(--color-progressive--hover,#3056a9);border-color:var(--border-color-transparent,transparent)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive:hover .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive:hover .cdx-button__icon{background-color:var(--color-progressive--hover,#3056a9)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive:active,.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive.cdx-button--is-active{background-color:var(--background-color-progressive-subtle--active,#cbd6f6);color:var(--color-progressive--active,#233566);border-color:var(--border-color-transparent,transparent)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive:active .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive:active .cdx-button__icon,.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive.cdx-button--is-active .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive.cdx-button--is-active .cdx-button__icon{background-color:var(--color-progressive--active,#233566)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-progressive:focus:not(:active):not(.cdx-button--is-active),.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-progressive:focus:not(:active):not(.cdx-button--is-active){border-color:var(--border-color-progressive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus,#36c)}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive{color:var(--color-destructive,#bf3c2c)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive .cdx-button__icon{background-color:var(--color-destructive,#bf3c2c)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:hover,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:hover{background-color:var(--background-color-destructive-subtle--hover,#ffdad3);color:var(--color-destructive--hover,#9f3526);border-color:var(--border-color-transparent,transparent)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:hover .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:hover .cdx-button__icon{background-color:var(--color-destructive--hover,#9f3526)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:active,.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive.cdx-button--is-active,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive.cdx-button--is-active{background-color:var(--background-color-destructive-subtle--active,#ffc8bd);color:var(--color-destructive--active,#612419);border-color:var(--border-color-transparent,transparent)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:active .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:active .cdx-button__icon,.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive.cdx-button--is-active .cdx-button__icon,.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive.cdx-button--is-active .cdx-button__icon{background-color:var(--color-destructive--active,#612419)}}.cdx-button:enabled.cdx-button--weight-quiet.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active),.cdx-button.cdx-button--fake-button--enabled.cdx-button--weight-quiet.cdx-button--action-destructive:focus:not(:active):not(.cdx-button--is-active){border-color:var(--border-color-destructive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-destructive--focus,#36c)}.cdx-button:disabled,.cdx-button.cdx-button--fake-button--disabled{background-color:var(--background-color-disabled,#dadde3);color:var(--color-disabled-emphasized,#a2a9b1);border-color:var(--border-color-transparent,transparent)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:disabled .cdx-button__icon,.cdx-button.cdx-button--fake-button--disabled .cdx-button__icon{background-color:var(--color-inverted,#fff)}}.cdx-button:disabled.cdx-button--weight-quiet,.cdx-button.cdx-button--fake-button--disabled.cdx-button--weight-quiet{background-color:var(--background-color-transparent,transparent);color:var(--color-disabled,#a2a9b1)}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-button:disabled.cdx-button--weight-quiet .cdx-button__icon,.cdx-button.cdx-button--fake-button--disabled.cdx-button--weight-quiet .cdx-button__icon{background-color:var(--color-disabled,#a2a9b1)}}.cdx-text-input{position:relative;box-sizing:border-box;min-width:256px;border-radius:2px;overflow:hidden}.cdx-text-input .cdx-text-input__start-icon{position:absolute;top:50%;min-width:18px;min-height:18px;width:calc(var(--font-size-medium,1rem) + 4px);height:calc(var(--font-size-medium,1rem) + 4px);transition-property:color;transition-duration:.1s;left:9px;transform:translateY(-50%)}.cdx-text-input__icon.cdx-text-input__end-icon{min-width:10px;min-height:10px;width:var(--font-size-medium,1rem);height:var(--font-size-medium,1rem)}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-text-input__icon.cdx-text-input__end-icon{background-position:center;background-repeat:no-repeat;background-size:max(var(--font-size-medium,1rem),10px)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-text-input__icon.cdx-text-input__end-icon{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:max(var(--font-size-medium,1rem),10px);mask-size:max(var(--font-size-medium,1rem),10px)}}.cdx-text-input__clear-icon.cdx-icon,.cdx-text-input .cdx-text-input__end-icon{position:absolute;top:50%;min-width:14px;min-height:14px;width:var(--font-size-medium,1rem);height:var(--font-size-medium,1rem);transition-property:color;transition-duration:.1s;right:9px;transform:translateY(-50%)}.cdx-text-input__clear-icon.cdx-icon:hover{cursor:pointer}.cdx-text-input__end-icon.cdx-icon+.cdx-text-input__clear-icon.cdx-icon{right:calc(calc(8px * 2 + var(--font-size-medium,1rem)) + 1px)}.cdx-text-input__input{display:block;box-sizing:border-box;min-height:32px;width:100%;max-height:2rem;margin:0;border-width:1px;border-style:solid;border-radius:0;padding:4px 8px;font-family:inherit;font-size:var(--font-size-medium,1rem);line-height:var(--line-height-small,1.375rem)}.cdx-text-input__input:enabled{background-color:var(--background-color-base,#fff);color:var(--color-base,#202122);border-color:var(--border-color-interactive,#72777d);box-shadow:inset 0 0 0 1px var(--box-shadow-color-transparent,transparent);transition-property:background-color,color,border-color,box-shadow;transition-duration:.25s}.cdx-text-input__input:enabled~.cdx-text-input__icon-vue{color:var(--color-placeholder,#72777d)}.cdx-text-input__input:enabled~.cdx-text-input__icon{opacity:var(--opacity-icon-placeholder,.51)}.cdx-text-input__input:enabled:hover{border-color:var(--border-color-interactive--hover,#27292d)}.cdx-text-input__input:enabled:focus~.cdx-text-input__icon-vue,.cdx-text-input__input:enabled.cdx-text-input__input--has-value~.cdx-text-input__icon-vue{color:var(--color-subtle,#54595d)}.cdx-text-input__input:enabled:focus~.cdx-text-input__clear-icon,.cdx-text-input__input:enabled.cdx-text-input__input--has-value~.cdx-text-input__clear-icon{color:var(--color-base,#202122)}.cdx-text-input__input:enabled:focus~.cdx-text-input__icon,.cdx-text-input__input:enabled.cdx-text-input__input--has-value~.cdx-text-input__icon{opacity:1}.cdx-text-input__input:enabled:focus{border-color:var(--border-color-progressive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus,#36c);outline:1px solid transparent}.cdx-text-input__input:enabled:read-only{background-color:var(--background-color-neutral-subtle,#f8f9fa);border-color:var(--border-color-base,#a2a9b1)}.cdx-text-input__input:disabled{background-color:var(--background-color-disabled-subtle,#eaecf0);color:var(--color-disabled,#a2a9b1);-webkit-text-fill-color:var(--color-disabled,#a2a9b1);border-color:var(--border-color-disabled,#c8ccd1)}.cdx-text-input__input:disabled~.cdx-text-input__icon-vue{color:var(--color-disabled,#a2a9b1);pointer-events:none}.cdx-text-input__input:disabled~.cdx-text-input__icon{opacity:var(--opacity-icon-base--disabled,.51)}.cdx-text-input__input::placeholder{color:var(--color-placeholder,#72777d);opacity:1}.cdx-text-input__input[type=search]{-webkit-appearance:none;-moz-appearance:textfield}.cdx-text-input__input[type=search]::-webkit-search-decoration,.cdx-text-input__input[type=search]::-webkit-search-cancel-button{display:none}.cdx-text-input--has-start-icon .cdx-text-input__input{padding-left:calc(8px + 8px + calc(var(--font-size-medium,1rem) + 4px))}.cdx-text-input--has-end-icon .cdx-text-input__input,.cdx-text-input--clearable .cdx-text-input__input{padding-right:calc(8px + 8px + var(--font-size-medium,1rem))}.cdx-text-input--has-end-icon.cdx-text-input--clearable .cdx-text-input__input{padding-right:calc(8px + calc(8px * 2 + var(--font-size-medium,1rem)) + var(--font-size-medium,1rem))}.cdx-text-input--status-error .cdx-text-input__input:enabled:not(:read-only):not(:focus){background-color:var(--background-color-error-subtle,#ffe9e5);color:var(--color-error,#bf3c2c);border-color:var(--border-color-error,#f54739)}.cdx-text-input--status-error .cdx-text-input__input:enabled:not(:read-only):not(:focus)::placeholder,.cdx-text-input--status-error .cdx-text-input__input:enabled:not(:read-only):not(:focus)~.cdx-text-input__start-icon,.cdx-text-input--status-error .cdx-text-input__input:enabled:not(:read-only):not(:focus)~.cdx-text-input__end-icon{color:var(--color-error,#bf3c2c)}.cdx-text-input--status-error .cdx-text-input__input:enabled:not(:read-only):not(:focus):hover{background-color:var(--background-color-error-subtle--hover,#ffdad3);color:var(--color-error--hover,#9f3526);border-color:var(--border-color-error--hover,#9f3526)}.cdx-text-input--status-error .cdx-text-input__input:enabled:not(:read-only):not(:focus):hover::placeholder,.cdx-text-input--status-error .cdx-text-input__input:enabled:not(:read-only):not(:focus):hover~.cdx-text-input__start-icon,.cdx-text-input--status-error .cdx-text-input__input:enabled:not(:read-only):not(:focus):hover~.cdx-text-input__end-icon{color:var(--color-error--hover,#9f3526)}.cdx-search-input--has-end-button{background-color:var(--background-color-base,#fff);display:flex;border:1px solid var(--border-color-base,#a2a9b1);border-radius:2px}.cdx-search-input--has-end-button .cdx-search-input__input-wrapper{flex-grow:1;margin:-1px}.cdx-search-input--has-end-button .cdx-search-input__input-wrapper .cdx-text-input{border-top-right-radius:0;border-bottom-right-radius:0}.cdx-search-input__end-button.cdx-button{flex-shrink:0;margin:-1px -1px -1px 0;border-top-left-radius:0;border-bottom-left-radius:0}.cdx-search-input__end-button.cdx-button:hover,.cdx-search-input__end-button.cdx-button:focus{z-index:1}.cdx-search-input__input-wrapper{position:relative}.cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{min-width:10px;min-height:10px;width:calc(var(--font-size-medium,1rem) + 4px);height:calc(var(--font-size-medium,1rem) + 4px);display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{background-position:center;background-repeat:no-repeat;background-size:max(calc(var(--font-size-medium,1rem) + 4px),10px)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:max(calc(var(--font-size-medium,1rem) + 4px),10px);mask-size:max(calc(var(--font-size-medium,1rem) + 4px),10px)}}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{background-image:url('data:image/svg+xml;utf8,');filter:invert(var(--filter-invert-icon,0));opacity:var(--opacity-icon-base,.87)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-search-input .cdx-text-input__icon.cdx-text-input__start-icon{-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');background-color:var(--color-base,#202122)}}.cdx-label{display:flex;flex-direction:column;font-size:var(--font-size-medium,1rem);line-height:var(--line-height-small,1.375rem)}.cdx-label__label__icon.cdx-icon{color:var(--color-subtle,#54595d);margin-right:4px}.cdx-label__label__text{font-weight:700}legend.cdx-label{padding:0}fieldset label.cdx-label__label .cdx-label__label__text{font-weight:400}.cdx-label:not(.cdx-label--disabled) .cdx-label__label__optional-flag,.cdx-label:not(.cdx-label--disabled) .cdx-label__description{color:var(--color-subtle,#54595d)}.cdx-label--disabled,.cdx-label--disabled .cdx-label__label__icon{color:var(--color-disabled,#a2a9b1)}.cdx-label--visually-hidden{display:block;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}.cdx-label:not(.cdx-label--visually-hidden){padding-bottom:8px}@media screen and (min-width:640px){.cdx-label:not(.cdx-label--visually-hidden){padding-bottom:4px}}.cdx-radio{position:relative;min-width:20px;min-height:20px}.cdx-radio__wrapper{display:flex}.cdx-radio:not(.cdx-radio--inline){display:flex;flex-direction:column;margin-bottom:6px}.cdx-radio:not(.cdx-radio--inline):last-child{margin-bottom:0}.cdx-radio--inline{display:inline-flex;margin-right:16px;white-space:nowrap}.cdx-radio--inline:last-child{margin-right:0}.cdx-radio__label,.cdx-radio__label.cdx-label{display:inline-flex;position:relative;z-index:0;padding-left:calc(var(--font-size-medium,1rem) + 10px)}.cdx-radio__label.cdx-label{padding-bottom:0}.cdx-radio__label.cdx-label .cdx-label__label__text{font-weight:400}.cdx-radio--inline .cdx-radio__label{display:inline}.cdx-radio__icon{background-color:var(--background-color-base-fixed,#fff);position:absolute;left:0;box-sizing:border-box;min-width:18px;min-height:18px;width:calc(var(--font-size-medium,1rem) + 4px);height:calc(var(--font-size-medium,1rem) + 4px);margin-top:1px;border-width:1px;border-style:solid;transition-property:background-color,color,border-color,box-shadow;transition-duration:.1s}.cdx-radio__input{opacity:0;position:absolute;left:0;z-index:1;min-width:20px;min-height:20px;width:calc(var(--font-size-medium,1rem) + 4px);height:calc(var(--font-size-medium,1rem) + 4px);margin:1px 0 0;font-size:var(--font-size-medium,1rem);cursor:inherit}.cdx-radio__wrapper:hover>.cdx-radio__input:enabled,.cdx-radio__wrapper:hover>.cdx-radio__input:enabled~.cdx-label .cdx-label__label,.cdx-radio__wrapper:hover>.cdx-radio__input:enabled~.cdx-radio__label:not(.cdx-label){cursor:pointer}.cdx-radio__custom-input:not(.cdx-radio__custom-input--inline){padding-top:6px;padding-left:calc(var(--font-size-medium,1rem) + 10px)}.cdx-radio__icon{border-radius:50%}.cdx-radio__icon:before{content:" ";position:absolute;top:-.25rem;right:-.25rem;bottom:-.25rem;left:-.25rem;border:1px solid var(--border-color-transparent,transparent);border-radius:50%}.cdx-radio__input:enabled+.cdx-radio__icon{background-color:var(--background-color-base,#fff);border-color:var(--border-color-interactive,#72777d)}.cdx-radio__input:enabled:hover+.cdx-radio__icon{background-color:var(--background-color-interactive-subtle--hover,#eaecf0);border-color:var(--border-color-interactive--hover,#27292d)}.cdx-radio__input:enabled:active+.cdx-radio__icon{background-color:var(--background-color-interactive-subtle--active,#dadde3);border-color:var(--border-color-interactive--active,#202122)}.cdx-radio__input:enabled:focus:not(:active)+.cdx-radio__icon{border-color:var(--border-color-progressive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus,#36c)}.cdx-radio__input:enabled:checked+.cdx-radio__icon{background-color:var(--background-color-base-fixed,#fff);border-width:6px;border-color:var(--background-color-progressive,#36c)}.cdx-radio__input:enabled:checked:hover+.cdx-radio__icon{border-color:var(--background-color-progressive--hover,#3056a9)}.cdx-radio__input:enabled:checked:focus+.cdx-radio__icon:before{border-color:var(--border-color-inverted,#fff)}.cdx-radio__input:enabled:checked:active+.cdx-radio__icon{background-color:var(--background-color-base-fixed,#fff);border-color:var(--background-color-progressive--active,#233566)}.cdx-radio__input:enabled:checked:active+.cdx-radio__icon:before{border-color:var(--background-color-progressive--active,#233566)}.cdx-radio--status-error .cdx-radio__input:enabled~.cdx-radio__label{color:var(--color-error,#bf3c2c)}.cdx-radio--status-error .cdx-radio__input:enabled+.cdx-radio__icon{background-color:var(--background-color-error-subtle,#ffe9e5);border-color:var(--border-color-error,#f54739)}.cdx-radio--status-error .cdx-radio__input:enabled:hover+.cdx-radio__icon{background-color:var(--background-color-error-subtle--hover,#ffdad3);border-color:var(--border-color-error--hover,#9f3526)}.cdx-radio--status-error .cdx-radio__input:enabled:focus+.cdx-radio__icon{border-color:var(--border-color-progressive--focus,#36c)}.cdx-radio--status-error .cdx-radio__input:enabled:active+.cdx-radio__icon{background-color:var(--background-color-error-subtle--active,#ffc8bd);border-color:var(--border-color-error--active,#612419);box-shadow:none}.cdx-radio--status-error .cdx-radio__input:enabled:checked+.cdx-radio__icon{background-color:var(--background-color-base-fixed,#fff);border-color:var(--background-color-error,#f54739)}.cdx-radio--status-error .cdx-radio__input:enabled:checked:hover+.cdx-radio__icon{border-color:var(--background-color-error--hover,#d74032)}.cdx-radio--status-error .cdx-radio__input:enabled:checked:focus:not(.cdx-radio--status-error .cdx-radio__input:enabled:checked:active)+.cdx-radio__icon{border-width:1px}.cdx-radio--status-error .cdx-radio__input:enabled:checked:focus:not(.cdx-radio--status-error .cdx-radio__input:enabled:checked:active)+.cdx-radio__icon:before{top:2px;right:2px;bottom:2px;left:2px;border-width:4px;border-color:var(--border-color-error,#f54739)}.cdx-radio--status-error .cdx-radio__input:enabled:checked:active+.cdx-radio__icon{border-color:var(--background-color-error--active,#bf3c2c);box-shadow:none}.cdx-radio--status-error .cdx-radio__input:enabled:checked:active+.cdx-radio__icon:before{border-color:var(--border-color-transparent,transparent)}.cdx-radio__input:disabled~.cdx-radio__label,.cdx-radio__input:disabled~.cdx-radio__label.cdx-label{color:var(--color-disabled,#a2a9b1)}.cdx-radio__input:disabled+.cdx-radio__icon{background-color:var(--background-color-disabled-subtle,#eaecf0);border-color:var(--border-color-disabled,#c8ccd1)}.cdx-radio__input:disabled:checked+.cdx-radio__icon{background-color:var(--color-disabled-emphasized,#a2a9b1);border-width:6px;border-color:var(--background-color-disabled,#dadde3)}.cdx-message{background-color:var(--background-color-notice-subtle,#eaecf0);color:var(--color-base,#202122);display:flex;align-items:flex-start;position:relative;border:1px solid var(--border-color-notice,#72777d);border-radius:2px;padding:12px}.cdx-message .cdx-message__icon{min-width:10px;min-height:10px;width:calc(var(--font-size-medium,1rem) + 4px);height:calc(var(--font-size-medium,1rem) + 4px);display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-message .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(calc(var(--font-size-medium,1rem) + 4px),10px)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-message .cdx-message__icon{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:max(calc(var(--font-size-medium,1rem) + 4px),10px);mask-size:max(calc(var(--font-size-medium,1rem) + 4px),10px)}}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-message .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,');filter:invert(var(--filter-invert-icon,0));opacity:var(--opacity-icon-base,.87)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-message .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');background-color:var(--color-icon-notice,#72777d)}}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-message .cdx-message__icon:lang(ar){background-image:url('data:image/svg+xml;utf8,');filter:invert(var(--filter-invert-icon,0));opacity:var(--opacity-icon-base,.87)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-message .cdx-message__icon:lang(ar){-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');background-color:var(--color-icon-notice,#72777d)}}.cdx-message .cdx-message__icon--vue{color:var(--color-icon-notice,#72777d)}.cdx-message--warning{background-color:var(--background-color-warning-subtle,#fdf2d5);border-color:var(--border-color-warning,#ab7f2a)}.cdx-message--warning .cdx-message__icon{min-width:10px;min-height:10px;width:calc(var(--font-size-medium,1rem) + 4px);height:calc(var(--font-size-medium,1rem) + 4px);display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-message--warning .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(calc(var(--font-size-medium,1rem) + 4px),10px)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:max(calc(var(--font-size-medium,1rem) + 4px),10px);mask-size:max(calc(var(--font-size-medium,1rem) + 4px),10px)}}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-message--warning .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,');filter:invert(var(--filter-invert-icon,0));opacity:var(--opacity-icon-base,.87)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-message--warning .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');background-color:var(--color-icon-warning,#ab7f2a)}}.cdx-message--warning .cdx-message__icon--vue{color:var(--color-icon-warning,#ab7f2a)}.cdx-message--error{background-color:var(--background-color-error-subtle,#ffe9e5);border-color:var(--border-color-error,#f54739)}.cdx-message--error .cdx-message__icon{min-width:10px;min-height:10px;width:calc(var(--font-size-medium,1rem) + 4px);height:calc(var(--font-size-medium,1rem) + 4px);display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-message--error .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(calc(var(--font-size-medium,1rem) + 4px),10px)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-message--error .cdx-message__icon{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:max(calc(var(--font-size-medium,1rem) + 4px),10px);mask-size:max(calc(var(--font-size-medium,1rem) + 4px),10px)}}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-message--error .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,');filter:invert(var(--filter-invert-icon,0));opacity:var(--opacity-icon-base,.87)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-message--error .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');background-color:var(--color-icon-error,#f54739)}}.cdx-message--error .cdx-message__icon--vue{color:var(--color-icon-error,#f54739)}.cdx-message--success{background-color:var(--background-color-success-subtle,#dff2eb);border-color:var(--border-color-success,#099979)}.cdx-message--success .cdx-message__icon{min-width:10px;min-height:10px;width:calc(var(--font-size-medium,1rem) + 4px);height:calc(var(--font-size-medium,1rem) + 4px);display:inline-block;vertical-align:text-bottom}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-message--success .cdx-message__icon{background-position:center;background-repeat:no-repeat;background-size:max(calc(var(--font-size-medium,1rem) + 4px),10px)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-message--success .cdx-message__icon{-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:max(calc(var(--font-size-medium,1rem) + 4px),10px);mask-size:max(calc(var(--font-size-medium,1rem) + 4px),10px)}}@supports not (((-webkit-mask-image:none) or (mask-image:none))){.cdx-message--success .cdx-message__icon{background-image:url('data:image/svg+xml;utf8,');filter:invert(var(--filter-invert-icon,0));opacity:var(--opacity-icon-base,.87)}}@supports ((-webkit-mask-image:none) or (mask-image:none)){.cdx-message--success .cdx-message__icon{-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-image:url('data:image/svg+xml;utf8,');background-color:var(--color-icon-success,#099979)}}.cdx-message--success .cdx-message__icon--vue{color:var(--color-icon-success,#099979)}.cdx-message--user-dismissable{padding-right:48px}@media screen and (min-width:640px){.cdx-message--user-dismissable{padding-right:56px}}.cdx-message--inline{background-color:var(--background-color-transparent,transparent);border:0;padding:0;font-weight:700}.cdx-message--inline.cdx-message--error{color:var(--color-error,#bf3c2c)}.cdx-message .cdx-message__icon,.cdx-message .cdx-message__icon--vue{height:var(--line-height-small,1.375rem)}.cdx-message__content{word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;align-self:center;flex-grow:1;width:0;margin-left:8px}.cdx-message__content,.cdx-message__content>*{font-size:var(--font-size-medium,1rem);line-height:var(--line-height-small,1.375rem)}.cdx-message__content>*:first-child{margin-top:0;padding-top:0}.cdx-message__content>*:last-child{margin-bottom:0;padding-bottom:0}.cdx-message__dismiss-button.cdx-button{position:absolute;top:calc((var(--font-size-medium,1rem) - 2px) * .5);right:8px;padding:5px;line-height:0}.cdx-message+.cdx-message{margin-top:8px}.cdx-message-enter-active,.cdx-message-leave-active-system{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease}.cdx-message-leave-active-user{transition-property:opacity;transition-duration:.25s;transition-timing-function:ease-out}.cdx-message-enter-from,.cdx-message-leave-to{opacity:0} \ No newline at end of file diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/load.js b/tests/data/Kimi Räikkönen - Wikipedia_files/load.js new file mode 100644 index 0000000..3f27f9c --- /dev/null +++ b/tests/data/Kimi Räikkönen - Wikipedia_files/load.js @@ -0,0 +1,23 @@ +function isCompatible(){return!!('querySelector'in document&&'localStorage'in window&&typeof Promise==='function'&&Promise.prototype['finally']&&/./g.flags==='g'&&(function(){try{new Function('async (a = 0,) => a');return true;}catch(e){return false;}}()));}if(!isCompatible()){document.documentElement.className=document.documentElement.className.replace(/(^|\s)client-js(\s|$)/,'$1client-nojs$2');while(window.NORLQ&&NORLQ[0]){NORLQ.shift()();}NORLQ={push:function(fn){fn();}};RLQ={push:function(){}};}else{if(window.performance&&performance.mark){performance.mark('mwStartup');}(function(){'use strict';var con=window.console;function Map(){this.values=Object.create(null);}Map.prototype={constructor:Map,get:function(selection,fallback){if(arguments.length<2){fallback=null;}if(typeof selection==='string'){return selection in this.values?this.values[selection]:fallback;}var results;if(Array.isArray(selection)){results={};for(var i=0;i1){if(typeof selection==='string'){this.values[selection]=value;return true;}}else if(typeof selection==='object'){for(var key in selection){this.values[key]=selection[key];}return true;}return false;},exists:function(selection){return typeof selection==='string'&&selection in this.values;}};var log=function(){};log.warn=Function.prototype.bind.call(con.warn,con);var mw={now:function(){var perf=window.performance;var navStart=perf&&perf.timing&&perf.timing.navigationStart;mw.now=navStart&&perf.now?function(){return navStart+perf.now();}:Date.now;return mw.now();},trackQueue:[],trackError:function(data){if(mw.track){mw.track('resourceloader.exception',data);}else{mw.trackQueue.push({topic:'resourceloader.exception',args:[data]}); +}var e=data.exception;var msg=(e?'Exception':'Error')+' in '+data.source+(data.module?' in module '+data.module:'')+(e?':':'.');con.log(msg);if(e){con.warn(e);}},Map:Map,config:new Map(),messages:new Map(),templates:new Map(),log:log};window.mw=window.mediaWiki=mw;window.QUnit=undefined;}());(function(){'use strict';var store,hasOwn=Object.hasOwnProperty;function fnv132(str){var hash=0x811C9DC5;for(var i=0;i>>0).toString(36).slice(0,5);while(hash.length<5){hash='0'+hash;}return hash;}var registry=Object.create(null),sources=Object.create(null),handlingPendingRequests=false,pendingRequests=[],queue=[],jobs=[],willPropagate=false,errorModules=[],baseModules=["jquery","mediawiki.base"],marker=document.querySelector('meta[name="ResourceLoaderDynamicStyles"]'),lastCssBuffer;function addToHead(el,nextNode){if(nextNode&&nextNode.parentNode){nextNode.parentNode.insertBefore(el,nextNode); +}else{document.head.appendChild(el);}}function newStyleTag(text,nextNode){var el=document.createElement('style');el.appendChild(document.createTextNode(text));addToHead(el,nextNode);return el;}function flushCssBuffer(cssBuffer){if(cssBuffer===lastCssBuffer){lastCssBuffer=null;}newStyleTag(cssBuffer.cssText,marker);for(var i=0;i '+deps[i]);}sortDependencies(deps[i],resolved,unresolved);}}resolved.push(module);}function resolve(modules){var resolved=baseModules.slice();for(var i=0;i=arr.length){markModuleReady();return;}queueModuleScript(arr[offset],module,function(){nestedAddScript(arr,offset+1);});};try{if(Array.isArray(script)){nestedAddScript(script,0);}else if(typeof script==='function'){if(module==='jquery'){script();}else{script(window.$,window.$,mw.loader.require,registry[module].module);}markModuleReady();}else if(typeof script==='object'&&script!==null){var mainScript=script.files[script.main];if(typeof mainScript!=='function'){throw new Error('Main file in module '+module+' must be a function');}mainScript(makeRequireFunction(registry[module],script.main),registry[module].module,registry[module].module.exports);markModuleReady();}else if(typeof script==='string'){globalEval(script);markModuleReady();}else{markModuleReady();}}catch(e){ +setAndPropagate(module,'error');mw.trackError({exception:e,module:module,source:'module-execute'});}};if(registry[module].deprecationWarning){mw.log.warn(registry[module].deprecationWarning);}if(registry[module].messages){mw.messages.set(registry[module].messages);}if(registry[module].templates){mw.templates.set(module,registry[module].templates);}var cssPending=0;var cssHandle=function(){cssPending++;return function(){cssPending--;if(cssPending===0){var runScriptCopy=runScript;runScript=undefined;runScriptCopy();}};};var style=registry[module].style;if(style){if('css'in style){for(var i=0;imw.loader.maxQueryLength){ +doRequest();length=0;moduleMap=Object.create(null);}if(!moduleMap[prefix]){moduleMap[prefix]=[];}length+=bytesAdded;moduleMap[prefix].push(suffix);}doRequest();}}}function asyncEval(implementations,cb,offset){if(!implementations.length){return;}offset=offset||0;mw.requestIdleCallback(function(deadline){asyncEvalTask(deadline,implementations,cb,offset);});}function asyncEvalTask(deadline,implementations,cb,offset){for(var i=offset;i1e5){return;}var srcParts=['mw.loader.impl(',script,');\n'];if(true){srcParts.push('// Saved in localStorage at ',(new Date()).toISOString(),'\n');var sourceLoadScript=sources[descriptor.source];var query=Object.create({"lang":"en","skin":"vector-2022"});query.modules=module;query.version=getCombinedVersion([module]);query=sortQuery(query);srcParts.push('//# sourceURL=',(new URL(sourceLoadScript,location)).href,'?',makeQueryString(query),'\n');query.sourcemap='1';query=sortQuery(query);srcParts.push( +'//# sourceMappingURL=',sourceLoadScript,'?',makeQueryString(query));}this.items[key]=srcParts.join('');hasPendingWrites=true;},prune:function(){for(var key in this.items){if(getModuleKey(splitModuleKey(key).name)!==key){this.stats.expired++;delete this.items[key];}}},clear:function(){this.items={};try{localStorage.removeItem(this.key);}catch(e){}},requestUpdate:function(){if(!hasPendingFlush){hasPendingFlush=setTimeout(function(){mw.requestIdleCallback(flushWrites);},2000);}}};}());mw.requestIdleCallbackInternal=function(callback){setTimeout(function(){var start=mw.now();callback({didTimeout:false,timeRemaining:function(){return Math.max(0,50-(mw.now()-start));}});},1);};mw.requestIdleCallback=window.requestIdleCallback?window.requestIdleCallback.bind(window):mw.requestIdleCallbackInternal;(function(){var queue;mw.loader.addSource({"local":"https://en.wikipedia.org/w/load.php","metawiki":"//meta.wikimedia.org/w/load.php"});mw.loader.register([["site","19pge",[1]],["site.styles","k5gb7",[],2],["filepage","j89n8"],["user","1tdkc",[],0],["user.styles","18fec",[],0],["user.options","12s5i",[],1],["mediawiki.skinning.interface","z2gt5"],["jquery.makeCollapsible.styles","y2cry"],["mediawiki.skinning.content.parsoid","1pnwr"],["mediawiki.skinning.typeaheadSearch","nxa4m",[34]],["web2017-polyfills","174re",[],null,null,"return'IntersectionObserver'in window\u0026\u0026typeof fetch==='function'\u0026\u0026typeof URL==='function'\u0026\u0026'toJSON'in URL.prototype;"],["jquery","xt2am"],["mediawiki.base","1re13",[11]],["jquery.chosen","1ft2a"],["jquery.client","5k8ja"],["jquery.confirmable","opab7",[104]],["jquery.highlightText","9qzq7",[78]],["jquery.i18n","1tati",[103]],["jquery.lengthLimit","tlk9z",[61]],["jquery.makeCollapsible","1ooas",[7,78]],["jquery.spinner","iute0",[21]],["jquery.spinner.styles","1vvds"],["jquery.suggestions","69w39",[16]],["jquery.tablesorter","10glk",[24,105,78]],["jquery.tablesorter.styles","zkbtz"],["jquery.textSelection","1x0f0",[14]],["jquery.ui","1i9p0"],["moment","1ylls",[101,78]],["vue","17txg",[112]],["vuex","16fjm",[28]],["pinia","17tzw",[28]],["@wikimedia/codex","9ds76",[32,28]],["codex-styles","1p8la"],["mediawiki.codex.messagebox.styles","tqcsr"],["mediawiki.codex.typeaheadSearch","1b76u",[28]],["mediawiki.template","72v1k"],["mediawiki.template.mustache","1m2gq",[35]],["mediawiki.apipretty","qt7g6"],["mediawiki.api","sou06",[104]],["mediawiki.content.json","1ezbj"],["mediawiki.confirmCloseWindow","mut9f"],["mediawiki.DateFormatter","1cy3q",[5]],["mediawiki.debug","f5byx",[205]],["mediawiki.diff","19624",[38]],["mediawiki.diff.styles","7tdt2"],["mediawiki.feedback","g4n2c",[68,104,946,205,213]],["mediawiki.feedlink","642xe"],["mediawiki.filewarning","mgfps",[205,217]],["mediawiki.ForeignApi","r63m6",[313]],["mediawiki.ForeignApi.core","1b34f",[38,202]],["mediawiki.helplink","13ca6"],["mediawiki.hlist","artqm"],["mediawiki.htmlform","vq59r",[178]],["mediawiki.htmlform.ooui","qp5p1",[205]],["mediawiki.htmlform.styles","cqoat"],["mediawiki.htmlform.codex.styles","oggjj"],["mediawiki.htmlform.ooui.styles","1w1o7"],["mediawiki.inspect","2ufuk",[61,78]],["mediawiki.notification","1g374",[78,84]],["mediawiki.notification.convertmessagebox","1qfxt",[58]],["mediawiki.notification.convertmessagebox.styles","15u5e"],["mediawiki.String","rowro"],["mediawiki.pager.styles","5k3tr"],["mediawiki.pager.codex","as9np"],["mediawiki.pager.codex.styles","13wq1"],["mediawiki.pulsatingdot","1qcsj"],["mediawiki.searchSuggest","12eem",[22,38]],["mediawiki.storage","1nf55",[78]],["mediawiki.Title","ruqed",[61,78]],["mediawiki.Upload","1kc0u",[38]],["mediawiki.ForeignUpload","jtv79",[48,69]],["mediawiki.Upload.Dialog","sf66o",[72]],["mediawiki.Upload.BookletLayout","16ca7",[69,208,213,218,219]],["mediawiki.ForeignStructuredUpload.BookletLayout","nsf6g",[70,72,108,182,175]],["mediawiki.toc","ui5eu",[81]],["mediawiki.Uri","1pngc",[78]],["mediawiki.user","qhmrd",[38,81]],["mediawiki.userSuggest","ba9yz",[22,38]],["mediawiki.util","1tgzo",[14,10]],["mediawiki.checkboxtoggle","snz0j"],["mediawiki.checkboxtoggle.styles","z58f2"],["mediawiki.cookie","qyo5n"],["mediawiki.experiments","15xww"],["mediawiki.editfont.styles","l9cd2"],["mediawiki.visibleTimeout","40nxy"],["mediawiki.action.edit","pono8",[25,86,83,178]],["mediawiki.action.edit.styles","dvltg"],["mediawiki.action.edit.collapsibleFooter","1wirb",[19,67]],["mediawiki.action.edit.preview","1vvp9",[20,114]],["mediawiki.action.history","1c95i",[19]],["mediawiki.action.history.styles","1jses"],["mediawiki.action.protect","1oj7y",[178]],["mediawiki.action.view.metadata","ib6x8",[99]],["mediawiki.editRecovery.postEdit","eap1o"],["mediawiki.editRecovery.edit","ig8wa",[58,174,221]],["mediawiki.action.view.postEdit","1t5qk",[58,67,164,205,225]],["mediawiki.action.view.redirect","9jbdf"],["mediawiki.action.view.redirectPage","1qvab"],["mediawiki.action.edit.editWarning","15on3",[25,40,104]],["mediawiki.action.view.filepage","ihe80"],["mediawiki.action.styles","1unbi"],["mediawiki.language","lh64w",[102]],["mediawiki.cldr","1dc8t",[103]],["mediawiki.libs.pluralruleparser","1sv4p"],["mediawiki.jqueryMsg","yenip",[68,101,5]],["mediawiki.language.months","md5qj",[101]],["mediawiki.language.names","ychhj",[101]],["mediawiki.language.specialCharacters","5094y",[101]],["mediawiki.libs.jpegmeta","n7h67"],["mediawiki.page.gallery","p8nmx",[110,78]],["mediawiki.page.gallery.styles","dmc9d"],["mediawiki.page.gallery.slideshow","1q8h5",[208,228,230]],["mediawiki.page.ready","zv9zy",[76]],["mediawiki.page.watch.ajax","1t1sm",[76]],["mediawiki.page.preview","1lwod",[19,25,43,44,205]],["mediawiki.page.image.pagination","1qg8v",[20,78]],["mediawiki.page.media","1oc5n"],["mediawiki.rcfilters.filters.base.styles","1uqx6"],["mediawiki.rcfilters.highlightCircles.seenunseen.styles","1hcgp"],["mediawiki.rcfilters.filters.ui","iv464",[19,172,214,221,224,225,226,228,229]],["mediawiki.interface.helpers.linker.styles","1biyp"],["mediawiki.interface.helpers.styles","t39wx"],["mediawiki.special","qeq9l"],["mediawiki.special.apisandbox","14mo4",[19,195,179,204]],["mediawiki.special.restsandbox.styles","tjxcg"],["mediawiki.special.restsandbox","snzcl",[124]],["mediawiki.special.block","1xfkx",[52,175,194,183,195,192,221]],["mediawiki.misc-authed-ooui","1ov0t",[20,53,172,178]],["mediawiki.misc-authed-pref","19b82",[5]],["mediawiki.misc-authed-curate","anc0a",[13,15,18,20,38]],["mediawiki.special.block.codex","1jsf4",[31,41,40,30]],["mediawiki.protectionIndicators.styles","mii98"],["mediawiki.special.changeslist","o72k4"],["mediawiki.special.changeslist.watchlistexpiry","s8sh9",[122,225]],["mediawiki.special.changeslist.enhanced","1rcb9"],["mediawiki.special.changeslist.legend","116wg"],["mediawiki.special.changeslist.legend.js","13r7x",[81]],["mediawiki.special.contributions","1203g",[19,175,204]],["mediawiki.special.import.styles.ooui","7j706"],["mediawiki.special.interwiki","m8o62"],["mediawiki.special.changecredentials","1eqrg"],["mediawiki.special.changeemail","q0qtr"],["mediawiki.special.preferences.ooui","1brew",[40,83,59,67,183,178,213]],["mediawiki.special.preferences.styles.ooui","17vbu"],["mediawiki.special.editrecovery.styles","1k8hm"],["mediawiki.special.editrecovery","1ak52",[28]],["mediawiki.special.search","5kwbo",[197]],["mediawiki.special.search.commonsInterwikiWidget","twkga",[38]],["mediawiki.special.search.interwikiwidget.styles","165cz"],["mediawiki.special.search.styles","1mgoy"],["mediawiki.special.unwatchedPages","1tz16",[38]],["mediawiki.special.upload","dsnu8",[20,38,40,108,122,35]],["mediawiki.authenticationPopup","zr443",[20,213]],["mediawiki.authenticationPopup.success","6zddp"],["mediawiki.special.userlogin.common.styles","bm2b4"],["mediawiki.special.userlogin.login.styles","1sitc"],["mediawiki.special.userlogin.authentication-popup","1kcgd"],["mediawiki.special.createaccount","abmoy",[38]],["mediawiki.special.userlogin.signup.styles","1y75g"],["mediawiki.special.specialpages","1kh9k",[205]],["mediawiki.special.userrights","26uuv",[18,59]],["mediawiki.special.watchlist","1z0oo",[205,225]],["mediawiki.tempUserBanner.styles","3pp37"],["mediawiki.tempUserBanner","y0zi9",[104]],["mediawiki.tempUserCreated","ecwit",[78]],["mediawiki.ui","juauv"],["mediawiki.ui.checkbox","rw0uv"],["mediawiki.ui.radio","mflx2"],["mediawiki.legacy.messageBox","ft9nt"],["mediawiki.ui.button","16115"],["mediawiki.ui.input","119zg"],["mediawiki.ui.icon","m26lm"],["mediawiki.widgets","bkrg5",[173,208,218,219]],["mediawiki.widgets.styles","8sh4l"],["mediawiki.widgets.AbandonEditDialog","s3y63",[213]],["mediawiki.widgets.DateInputWidget","ri26q",[176,27,208,230]],["mediawiki.widgets.DateInputWidget.styles","ksc7y"],["mediawiki.widgets.DateTimeInputWidget.styles","1r6r1"],["mediawiki.widgets.visibleLengthLimit","4i5bv",[18,205]],["mediawiki.widgets.datetime","vls6v",[177,205,225,229,230]],["mediawiki.widgets.expiry","1u4c6",[179,27,208]],["mediawiki.widgets.CheckMatrixWidget","lhbs6",[205]],["mediawiki.widgets.CategoryMultiselectWidget","1cmfg",[48,208]],["mediawiki.widgets.SelectWithInputWidget","11wi8",[184,208]],["mediawiki.widgets.SelectWithInputWidget.styles","19jcf"],["mediawiki.widgets.SizeFilterWidget","1bq7m",[186,208]],["mediawiki.widgets.SizeFilterWidget.styles","15h10"],["mediawiki.widgets.MediaSearch","1ainx",[48,208]],["mediawiki.widgets.Table","hlri2",[208]],["mediawiki.widgets.TagMultiselectWidget","1y5hq",[208]],["mediawiki.widgets.OrderedMultiselectWidget","1rmms",[208]],["mediawiki.widgets.MenuTagMultiselectWidget","5vc6y",[208]],["mediawiki.widgets.UserInputWidget","1l5o4",[208]],["mediawiki.widgets.UsersMultiselectWidget","1nts9",[208]],["mediawiki.widgets.NamespacesMultiselectWidget","1skcg",[172]],["mediawiki.widgets.TitlesMultiselectWidget","1xq8g",[172]],["mediawiki.widgets.TagMultiselectWidget.styles","pqvgn"],["mediawiki.widgets.SearchInputWidget","kfr5t",[66,172,225]],["mediawiki.widgets.SearchInputWidget.styles","1784o"],["mediawiki.widgets.ToggleSwitchWidget","1yf2l",[208]],["mediawiki.watchstar.widgets","1nye7",[204]],["mediawiki.deflate","1kmt8"],["oojs","1u2cw"],["mediawiki.router","1l3dg",[202]],["oojs-ui","19txf",[211,208,213]],["oojs-ui-core","15c6d",[112,202,207,206,215]],["oojs-ui-core.styles","i697f"],["oojs-ui-core.icons","1miwx"],["oojs-ui-widgets","1px1k",[205,210]],["oojs-ui-widgets.styles","1xliq"],["oojs-ui-widgets.icons","1dy8j"],["oojs-ui-toolbars","z9508",[205,212]],["oojs-ui-toolbars.icons","joduw"],["oojs-ui-windows","1blm7",[205,214]],["oojs-ui-windows.icons","1iplg"],["oojs-ui.styles.indicators","6ttry"],["oojs-ui.styles.icons-accessibility","1z38n"],["oojs-ui.styles.icons-alerts","12z74"],["oojs-ui.styles.icons-content","zs135"],["oojs-ui.styles.icons-editing-advanced","13oqy"],["oojs-ui.styles.icons-editing-citation","1bx6n"],["oojs-ui.styles.icons-editing-core","1qkkb"],["oojs-ui.styles.icons-editing-functions","1yn99"],["oojs-ui.styles.icons-editing-list","oyyg2"],["oojs-ui.styles.icons-editing-styling","pksch"],["oojs-ui.styles.icons-interactions","l71o5"],["oojs-ui.styles.icons-layout","1ia7s"],["oojs-ui.styles.icons-location","1ou1v"],["oojs-ui.styles.icons-media","cocnp"],["oojs-ui.styles.icons-moderation","eq6wm"],["oojs-ui.styles.icons-movement","gz8f3"],["oojs-ui.styles.icons-user","i7gmq"],["oojs-ui.styles.icons-wikimedia","11yv2"],["skins.vector.search.codex.styles","1122j"],["skins.vector.search","1uvri",[9]],["skins.vector.styles.legacy","lf82c"],["skins.vector.styles","moug7"],["skins.vector.icons.js","1u0j9"],["skins.vector.icons","dxw8n"],["skins.vector.clientPreferences","oubqn",[76]],["skins.vector.js","j4hk3",[82,113,67,239,237]],["skins.vector.legacy.js","13ozl",[112]],["skins.monobook.styles","umrah"],["skins.monobook.scripts","13aia",[76,217]],["skins.modern","1mpd1"],["skins.cologneblue","1sxxr"],["skins.timeless","m6ul3"],["skins.timeless.js","1c0w1"],["ext.timeline.styles","1osj7"],["ext.wikihiero","18c08"],["ext.wikihiero.special","1fm6g",[249,20,205]],["ext.wikihiero.visualEditor","1jlnz",[444]],["ext.charinsert","1szkj",[25]],["ext.charinsert.styles","17hc7"],["ext.cite.styles","cka9t"],["ext.cite.parsoid.styles","tiuoo"],["ext.cite.visualEditor.core","13tok",[444,452]],["ext.cite.visualEditor","ye9ts",[255,254,256,432,433,452,217,220,225]],["ext.cite.wikiEditor","e0ouu",[360]],["ext.cite.ux-enhancements","428my"],["ext.cite.community-configuration","iojnh",[28]],["ext.citeThisPage","17kjw"],["ext.inputBox.styles","7blwh"],["ext.imagemap","lq7bt",[264]],["ext.imagemap.styles","118nu"],["ext.pygments","2vvvn"],["ext.geshi.visualEditor","6zhy6",[444]],["ext.flaggedRevs.basic","1bxrr"],["ext.flaggedRevs.advanced","1mbfz",[20,43,44,121]],["ext.flaggedRevs.review","8e2pf",[76]],["ext.flaggedRevs.icons","l5azu"],["ext.categoryTree","1wafq",[38]],["ext.categoryTree.styles","1ols5"],["ext.spamBlacklist.visualEditor","1x8kv"],["mediawiki.api.titleblacklist","1qh9e",[38]],["ext.titleblacklist.visualEditor","rdabw"],["ext.tmh.video-js","t2j52"],["ext.tmh.videojs-ogvjs","1begb",[285,276]],["ext.tmh.player","hviwl",[284,281,68]],["ext.tmh.player.dialog","5mlm8",[280,213]],["ext.tmh.player.inline","1vs4s",[284,276,68]],["ext.tmh.player.styles","wcxes"],["ext.tmh.transcodetable","12vsz",[204]],["ext.tmh.timedtextpage.styles","bfqwg"],["ext.tmh.OgvJsSupport","kckt1"],["ext.tmh.OgvJs","5tcrw",[284]],["embedPlayerIframeStyle","zgah7"],["ext.urlShortener.special","1a8dy",[53,172,204]],["ext.urlShortener.qrCode.special","fmo6c",[289,53,172]],["ext.urlShortener.qrCode.special.styles","1oj6f"],["ext.urlShortener.toolbar","t5sg6"],["ext.globalBlocking","pi64x",[52,172,192]],["ext.globalBlocking.styles","1bh82"],["ext.securepoll.htmlform","2oc97",[20,49,172,192,204,225,226]],["ext.securepoll","1qcou"],["ext.securepoll.special","7lrq1"],["ext.score.visualEditor","itdug",[297,444]],["ext.score.visualEditor.icons","t565g"],["ext.score.popup","11oc2",[38]],["ext.score.styles","m1o92"],["ext.cirrus.serp","1x2q2",[203,78]],["ext.nuke.styles","pt4ca"],["ext.nuke.fields.NukeDateTimeField","11udq",[175]],["ext.confirmEdit.editPreview.ipwhitelist.styles","nwoqf"],["ext.confirmEdit.visualEditor","bl2yi",[928]],["ext.confirmEdit.simpleCaptcha","1cj5u"],["ext.confirmEdit.fancyCaptcha.styles","1lv38"],["ext.confirmEdit.fancyCaptcha","j0snd",[306,38]],["ext.centralauth","vvp2p",[20,78]],["ext.centralauth.centralautologin","5b2pd",[104]],["ext.centralauth.centralautologin.clearcookie","1p0lv"],["ext.centralauth.misc.styles","kov3n"],["ext.centralauth.globalrenameuser","tovgr",[78]],["ext.centralauth.ForeignApi","svhbb",[49]],["ext.widgets.GlobalUserInputWidget","zotps",[208]],["ext.centralauth.globalrenamequeue","69bzc"],["ext.centralauth.globalrenamequeue.styles","1j97l"],["ext.centralauth.globalvanishrequest","1ycvv"],["ext.GlobalUserPage","il9e6"],["ext.apifeatureusage","1cero"],["ext.dismissableSiteNotice","1440g",[81,78]],["ext.dismissableSiteNotice.styles","iqoef"],["ext.centralNotice.startUp","uyrb0",[324,78]],["ext.centralNotice.geoIP","lep3c",[81]],["ext.centralNotice.choiceData","1kx9v",[328,330,327,329]],["ext.centralNotice.display","1wim7",[323,326,596,67]],["ext.centralNotice.kvStore","1ggs8"],["ext.centralNotice.bannerHistoryLogger","f5psy",[325]],["ext.centralNotice.impressionDiet","1vyse",[325]],["ext.centralNotice.largeBannerLimit","12rqy",[325]],["ext.centralNotice.legacySupport","18wyo",[325]],["ext.centralNotice.bannerSequence","1fwka",[325]],["ext.centralNotice.freegeoipLookup","1q1bz",[323]],["ext.centralNotice.impressionEventsSampleRate","1e3w6",[325]],["ext.centralNotice.cspViolationAlert","19zaf"],["ext.wikimediamessages.styles","y7eil"],["ext.wikimediamessages.contactpage","1asqc"],["ext.collection","j4p2j",[339,101]],["ext.collection.bookcreator.styles","y7qee"],["ext.collection.bookcreator","36j1z",[338,67]],["ext.collection.checkLoadFromLocalStorage","139gc",[337]],["ext.collection.suggest","kdcz3",[339]],["ext.collection.offline","2gmtr"],["ext.collection.bookcreator.messageBox","19txf",[344,51]],["ext.collection.bookcreator.messageBox.icons","yanm2"],["ext.ElectronPdfService.special.styles","vvfin"],["ext.ElectronPdfService.special.selectionImages","ov4xb"],["ext.advancedSearch.initialstyles","tdyko"],["ext.advancedSearch.styles","u4ijg"],["ext.advancedSearch.searchtoken","1vhat",[],1],["ext.advancedSearch.elements","1y7w6",[352,348,225,226]],["ext.advancedSearch.init","gjp3y",[350,349]],["ext.advancedSearch.SearchFieldUI","czyvo",[208]],["ext.abuseFilter","mqyx5"],["ext.abuseFilter.edit","4uj0h",[20,25,40,208]],["ext.abuseFilter.tools","xw24y",[20,38]],["ext.abuseFilter.examine","4d4qi",[20,38]],["ext.abuseFilter.ace","d59c7",[578]],["ext.abuseFilter.visualEditor","1f8aq"],["pdfhandler.messages","i178d"],["ext.wikiEditor","1kpnh",[25,26,107,172,220,221,223,224,228,35],3],["ext.wikiEditor.styles","pgt7x",[],3],["ext.wikiEditor.images","qvld8"],["ext.wikiEditor.realtimepreview","ia3a8",[360,362,114,65,67,225]],["ext.CodeMirror","181p7",[76]],["ext.CodeMirror.WikiEditor","1rqe9",[364,25,224]],["ext.CodeMirror.lib","1bd9x"],["ext.CodeMirror.addons","19bks",[366]],["ext.CodeMirror.mode.mediawiki","1dd62",[366]],["ext.CodeMirror.lib.mode.css","1kqvv",[366]],["ext.CodeMirror.lib.mode.javascript","1r235",[366]],["ext.CodeMirror.lib.mode.xml","1siba",[366]],["ext.CodeMirror.lib.mode.htmlmixed","f433m",[369,370,371]],["ext.CodeMirror.lib.mode.clike","147xq",[366]],["ext.CodeMirror.lib.mode.php","uvn3j",[373,372]],["ext.CodeMirror.visualEditor","1a4k6",[364,451]],["ext.CodeMirror.v6","y16f0",[378,76]],["ext.CodeMirror.v6.init","h3ggc",[5]],["ext.CodeMirror.v6.lib","sl95x"],["ext.CodeMirror.v6.mode.mediawiki","9clue",[376]],["ext.CodeMirror.v6.mode.javascript","1axb0",[378]],["ext.CodeMirror.v6.mode.json","1h4wn",[378]],["ext.CodeMirror.v6.mode.css","fvb29",[378]],["ext.CodeMirror.v6.WikiEditor","1o5rw",[376,360]],["ext.CodeMirror.v6.visualEditor","30w68",[376,451]],["ext.CodeMirror.visualEditor.init","1tz76"],["ext.MassMessage.styles","11p9u"],["ext.MassMessage.special.js","uj3wq",[18,205]],["ext.MassMessage.content","1wmyz",[15,172,204]],["ext.MassMessage.create","14hb8",[40,53,172]],["ext.MassMessage.edit","hf32f",[40,178,204]],["ext.betaFeatures","1ktqr",[205]],["ext.betaFeatures.styles","bwv56"],["mmv","d4pio",[397]],["mmv.codex","1xois"],["mmv.ui.reuse","p9qme",[172,394]],["mmv.ui.restriction","tz44z"],["mmv.bootstrap","elhsa",[203,67,76,394]],["ext.popups.icons","13k0a"],["ext.popups","13p6r"],["ext.popups.main","8rve0",[82,67,76]],["ext.linter.edit","1bhpr",[25]],["ext.linter.styles","e86ab"],["socket.io","f0oz7"],["peerjs","1a7xj"],["dompurify","13psx"],["color-picker","1udyk"],["unicodejs","1pa89"],["papaparse","1b87h"],["rangefix","py825"],["spark-md5","1ewgr"],["ext.visualEditor.supportCheck","mk13r",[],4],["ext.visualEditor.sanitize","1klwy",[405,432],4],["ext.visualEditor.progressBarWidget","170cc",[],4],["ext.visualEditor.tempWikitextEditorWidget","vbaxg",[83,76],4],["ext.visualEditor.desktopArticleTarget.init","1xkg2",[413,411,414,428,25,112,67],4],["ext.visualEditor.desktopArticleTarget.noscript","gxuj1"],["ext.visualEditor.targetLoader","78mwd",[431,428,25,67,76],4],["ext.visualEditor.desktopTarget","1jcbn",[],4],["ext.visualEditor.desktopArticleTarget","j74we",[435,432,440,418,433,446,104,78],4],["ext.visualEditor.mobileArticleTarget","zu2fp",[435,441],4],["ext.visualEditor.collabTarget","bdkdy",[433,439,83,172,225,226],4],["ext.visualEditor.collabTarget.desktop","1v8nd",[421,440,418,446],4],["ext.visualEditor.collabTarget.mobile","1dtxz",[421,441,445],4],["ext.visualEditor.collabTarget.init","1mm5f",[411,172,204],4],["ext.visualEditor.collabTarget.init.styles","1rppu"],["ext.visualEditor.collab","1jjfb",[406,437,404]],["ext.visualEditor.ve","17m0y",[],4],["ext.visualEditor.track","10mz7",[427],4],["ext.visualEditor.editCheck","lc3cz",[434],4],["ext.visualEditor.core.utils","bw2ja",[428,204],4],["ext.visualEditor.core.utils.parsing","t54hq",[427],4],["ext.visualEditor.base","1rwfd",[430,431,407],4],["ext.visualEditor.mediawiki","18e9j",[432,417,23,626],4],["ext.visualEditor.mwsave","1oe0e",[444,18,20,43,44,225],4],["ext.visualEditor.articleTarget","f09ds",[445,434,95,174],4],["ext.visualEditor.data","1dsnf",[433]],["ext.visualEditor.core","1gu8s",[412,411,408,409,410],4],["ext.visualEditor.commentAnnotation","6y11s",[437],4],["ext.visualEditor.rebase","437ds",[406,455,438,231,403],4],["ext.visualEditor.core.desktop","17ufk",[437],4],["ext.visualEditor.core.mobile","1uhgy",[437],4],["ext.visualEditor.welcome","1rlzo",[204],4],["ext.visualEditor.switching","18t80",[204,216,219,221],4],["ext.visualEditor.mwcore","14ip4",[456,433,443,442,121,65,8,172],4],["ext.visualEditor.mwextensions","19txf",[436,466,460,462,447,464,449,461,450,452],4],["ext.visualEditor.mwextensions.desktop","19txf",[445,451,73],4],["ext.visualEditor.mwformatting","1wdn9",[444],4],["ext.visualEditor.mwimage.core","1iygx",[444],4],["ext.visualEditor.mwimage","e8fgy",[467,448,187,27,228],4],["ext.visualEditor.mwlink","o7awc",[444],4],["ext.visualEditor.mwmeta","lrofp",[450,97],4],["ext.visualEditor.mwtransclusion","m86oy",[444,192],4],["treeDiffer","1o9nz"],["diffMatchPatch","1s80q"],["ext.visualEditor.checkList","1dkj8",[437],4],["ext.visualEditor.diffing","198gu",[454,437,453],4],["ext.visualEditor.diffPage.init.styles","1wwwe"],["ext.visualEditor.diffLoader","1dei4",[417],4],["ext.visualEditor.diffPage.init","1i1uo",[458,457,204,216,219],4],["ext.visualEditor.language","1etvc",[437,626,106],4],["ext.visualEditor.mwlanguage","50q3e",[437],4],["ext.visualEditor.mwalienextension","1h689",[444],4],["ext.visualEditor.mwwikitext","mxqhq",[450,83],4],["ext.visualEditor.mwgallery","1pids",[444,110,187,228],4],["ext.visualEditor.mwsignature","kwtjj",[452],4],["ext.visualEditor.icons","19txf",[468,469,217,218,219,221,223,224,225,226,229,230,231,215],4],["ext.visualEditor.icons-licenses","1up74"],["ext.visualEditor.moduleIcons","13wo9"],["ext.visualEditor.moduleIndicators","aesr6"],["ext.citoid.visualEditor","8h6a3",[257,473,472]],["quagga2","1d4mk"],["ext.citoid.visualEditor.icons","vjz52"],["ext.citoid.visualEditor.data","hixaz",[433]],["ext.citoid.wikibase.init","ykup2"],["ext.citoid.wikibase","s8jcm",[474,26,204]],["ext.templateData","xolua"],["ext.templateDataGenerator.editPage","8oiwy"],["ext.templateDataGenerator.data","1in81",[202]],["ext.templateDataGenerator.editTemplatePage.loading","1fb90"],["ext.templateDataGenerator.editTemplatePage","1h27g",[476,481,478,25,626,208,213,225,226,229]],["ext.templateData.images","10wt1"],["ext.templateData.templateDiscovery","1oxn0",[67,172,225,229,230]],["ext.TemplateWizard","1rqs1",[25,172,175,192,211,213,225]],["ext.wikiLove.icon","1kmne"],["ext.wikiLove.startup","1tko0",[31]],["ext.wikiLove.local","11hvb"],["ext.wikiLove.init","1wdjb",[485]],["mediawiki.libs.guiders","1ytke"],["ext.guidedTour.styles","13q6d",[488]],["ext.guidedTour.lib.internal","c5s8x",[78]],["ext.guidedTour.lib","1efbo",[490,489,76]],["ext.guidedTour.launcher","1qjc8"],["ext.guidedTour","1u9n0",[491]],["ext.guidedTour.tour.firstedit","17nej",[493]],["ext.guidedTour.tour.test","eq8gm",[493]],["ext.guidedTour.tour.onshow","jq7gp",[493]],["ext.guidedTour.tour.uprightdownleft","te3pq",[493]],["skins.minerva.styles","1sf2b"],["skins.minerva.content.styles.images","lx22n"],["skins.minerva.amc.styles","1vqc6"],["skins.minerva.overflow.icons","1sifs"],["skins.minerva.icons","yxzdr"],["skins.minerva.mainPage.styles","1wl5z"],["skins.minerva.userpage.styles","1dm31"],["skins.minerva.personalMenu.icons","o4g5s"],["skins.minerva.mainMenu.advanced.icons","s7k6c"],["skins.minerva.loggedin.styles","1pgbm"],["skins.minerva.search","15l4y",[203,9]],["skins.minerva.scripts","17d80",[82,518,502,498]],["skins.minerva.categories.styles","ft9nt"],["skins.minerva.codex.styles","avq0m"],["mobile.pagelist.styles","10gq3"],["mobile.pagesummary.styles","1if0p"],["mobile.userpage.styles","1pe96"],["mobile.init.styles","vimyu"],["mobile.init","2oa5t",[518]],["mobile.codex.styles","tuqap"],["mobile.startup","pfwl2",[113,203,67,36,517,515,512,513]],["mobile.editor.overlay","ql6p5",[95,40,83,174,518,204,221]],["mobile.mediaViewer","1xp2y",[518]],["mobile.languages.structured","1qbv7",[518]],["mobile.special.styles","1pjv9"],["mobile.special.watchlist.scripts","1gb6n",[518]],["mobile.special.codex.styles","1dzg6"],["mobile.special.mobileoptions.styles","14e99"],["mobile.special.mobileoptions.scripts","1y7nl",[518]],["mobile.special.userlogin.scripts","1lhsb"],["ext.math.mathjax","oubzw",[],5],["ext.math.styles","7xrei"],["ext.math.popup","fssud",[48,76]],["mw.widgets.MathWbEntitySelector","1nudg",[48,172,819,213]],["ext.math.visualEditor","1ud2p",[529,444]],["ext.math.visualEditor.mathSymbols","r0b91"],["ext.math.visualEditor.chemSymbols","14gru"],["ext.babel","p6kw3"],["ext.vipsscaler","1jqbh"],["mediawiki.template.underscore","1femy",[538,35]],["ext.pageTriage.external","x9pqt"],["ext.pageTriage.util","gu07y",[538,27,30]],["ext.pageTriage.showIp","1jopc",[38]],["ext.pageTriage.toolbar","10ew1",[547,550,549,548,543,539,20,26,946,217,537]],["ext.pageTriage.newPagesFeed","1eido",[31,539,20]],["ext.pageTriage.tagData","1b3nf",[68]],["ext.pageTriage.toolbarStartup","40kv4",[538]],["ext.pageTriage.articleLink","10wh8",[538,38]],["ext.pageTriage.sidebarLink","1kuwv",[213]],["ext.pageTriage.icons","16mny"],["ext.pageTriage.icons.hover","b5eg6"],["ext.pageTriage.icons.disabled","3nf3h"],["ext.pageTriage.icons.active","9ew2v"],["ext.echo.ui.desktop","ey5hz",[558,552,38,76,78]],["ext.echo.ui","2ovbk",[553,934,208,217,218,221,225,229,230,231]],["ext.echo.dm","1ddb4",[556,27]],["ext.echo.api","1j4y9",[48]],["ext.echo.mobile","scbo9",[552,203]],["ext.echo.init","jqlxs",[554]],["ext.echo.centralauth","18ma8"],["ext.echo.styles.badge","228ji"],["ext.echo.styles.notifications","1o44u"],["ext.echo.styles.alert","wrn5e"],["ext.echo.special","1ngl4",[562,552]],["ext.echo.styles.special","qkv8c"],["ext.thanks","1fjuv",[38,81]],["ext.thanks.corethank","wrk9z",[563,15,213]],["ext.thanks.flowthank","5xee9",[563,213]],["ext.disambiguator","1f3nh",[38,58]],["ext.disambiguator.visualEditor","1uxyn",[451]],["ext.discussionTools.init.styles","dfpcv"],["ext.discussionTools.debug.styles","1ga9h"],["ext.discussionTools.init","1amxm",[568,571,431,67,27,213,409]],["ext.discussionTools.minervaicons","1hieu"],["ext.discussionTools.debug","mlyrl",[570]],["ext.discussionTools.ReplyWidget","1u980",[928,570,435,465,463,178]],["ext.codeEditor","y9gwb",[576],3],["ext.codeEditor.styles","2sk1b"],["jquery.codeEditor","lsxcp",[578,577,360,213],3],["ext.codeEditor.icons","5ltbq"],["ext.codeEditor.ace","ic143",[],6],["ext.codeEditor.ace.modes","mhtcs",[578],6],["ext.scribunto.errors","nw7po",[208]],["ext.scribunto.logs","7b36r"],["ext.scribunto.edit","193m2",[20,38]],["ext.relatedArticles.styles","y1qvq"],["ext.relatedArticles.readMore.bootstrap","1ej6q",[76]],["ext.relatedArticles.readMore","1hq3s",[78]],["ext.RevisionSlider.lazyCss","1ycv2"],["ext.RevisionSlider.lazyJs","1akeb",[589,230]],["ext.RevisionSlider.init","100b9",[589,590,27,229]],["ext.RevisionSlider.Settings","1xpil",[67,76]],["ext.RevisionSlider.Slider","1amht",[591,26,41,204,225,230]],["ext.RevisionSlider.dialogImages","147du"],["ext.TwoColConflict.SplitJs","1uidw",[594,65,67,204,225]],["ext.TwoColConflict.SplitCss","1pt1h"],["ext.TwoColConflict.Split.TourImages","13fcg"],["ext.TwoColConflict.JSCheck","1lbln"],["ext.eventLogging","4rlpx",[600,76]],["ext.eventLogging.debug","k60ot"],["ext.eventLogging.jsonSchema","17xxu"],["ext.eventLogging.jsonSchema.styles","1245m"],["ext.eventLogging.metricsPlatform","efn5g"],["ext.wikimediaEvents","pv7d7",[596,82,67,84]],["ext.wikimediaEvents.wikibase","1r3lq",[596,82]],["ext.wikimediaEvents.networkprobe","pbn47",[596]],["ext.wikimediaEvents.xLab","fs08s",[596]],["ext.navigationTiming","1u0am",[596]],["ext.uls.common","amfol",[626,67,76]],["ext.uls.compactlinks","ey4m2",[606]],["ext.uls.ime","1nekq",[606,616,617,618,624]],["ext.uls.displaysettings","o69y5",[608,615,616,622,624,38,76]],["ext.uls.geoclient","16oj3",[81]],["ext.uls.i18n","1m5zg",[17,78]],["ext.uls.interface","gwgu0",[622,202]],["ext.uls.interlanguage","o6n9l"],["ext.uls.languagenames","5thds"],["ext.uls.languagesettings","15p1e",[617,618,627]],["ext.uls.mediawiki","3jja3",[606,614,617,622,625]],["ext.uls.messages","amajq",[611]],["ext.uls.preferences","bjbh2",[67,76]],["ext.uls.preferencespage","fwsgu"],["ext.uls.pt","18utr"],["ext.uls.setlang","fxmym",[31]],["ext.uls.webfonts","86xg2",[618]],["ext.uls.webfonts.repository","1lur0"],["jquery.ime","1c640"],["jquery.uls","uwy9n",[17,626,627]],["jquery.uls.data","rtpmq"],["jquery.uls.grid","1u2od"],["rangy.core","18ohu"],["ext.cx.contributions","1mfry",[205,218,219]],["ext.cx.model","115fa"],["ext.cx.dashboard","bkwyg",[660,22,172,27,637,670,638,221,228,229]],["sx.publishing.followup","1wi6i",[637,636,28]],["ext.cx.articletopics","rdqyi"],["mw.cx3","wiitp",[633,637,636,29]],["mw.cx3.ve","1n8kk",[257,420]],["mw.cx.util","eatme",[630,76]],["mw.cx.SiteMapper","xccls",[630,48,76]],["mw.cx.ui.LanguageFilter","qdv7k",[616,664,636,225]],["ext.cx.wikibase.link","y6dvw"],["ext.cx.uls.quick.actions","1mih3",[606,612,637]],["ext.cx.eventlogging.campaigns","19v0k",[76]],["ext.cx.interlanguagelink.init","1ihfp",[606]],["ext.cx.interlanguagelink","18fyp",[606,637,208,225]],["ext.cx.translation.conflict","1vqtk",[104]],["ext.cx.stats","w3wd9",[646,661,660,626,27,637]],["chart.js","12j7j"],["ext.cx.entrypoints.recentedit","5r56y",[626,637,636,28]],["ext.cx.entrypoints.recenttranslation","beh46",[31,626,203,637,636]],["ext.cx.entrypoints.newarticle","v1j81",[661,169,205]],["ext.cx.entrypoints.newarticle.veloader","1yrcp"],["ext.cx.entrypoints.languagesearcher.init","1qnv0"],["ext.cx.entrypoints.languagesearcher.legacy","1j3dg",[626,637]],["ext.cx.entrypoints.languagesearcher","1vl06",[626,637,28]],["ext.cx.entrypoints.mffrequentlanguages","26nar",[637]],["ext.cx.entrypoints.ulsrelevantlanguages","os1ea",[606,637,28]],["ext.cx.entrypoints.newbytranslation","aj1ki",[626,637,636,28]],["ext.cx.entrypoints.newbytranslation.mobile","17z84",[637,636,218]],["ext.cx.betafeature.init","152oe"],["ext.cx.entrypoints.contributionsmenu","11r38",[104]],["ext.cx.widgets.spinner","1psl1",[630]],["ext.cx.widgets.callout","wlfrx"],["mw.cx.dm","1iamc",[630,202]],["mw.cx.dm.Translation","lkvx5",[662]],["mw.cx.ui","11zsk",[630,204]],["mw.cx.visualEditor","1sjuu",[257,440,418,446,666,667]],["ve.ce.CXLintableNode","av1wq",[437]],["ve.dm.CXLintableNode","sgukm",[437,662]],["mw.cx.init","11rox",[660,451,674,670,666,667,669]],["ve.init.mw.CXTarget","lquw1",[440,637,663,664,636]],["mw.cx.ui.Infobar","1dvnr",[664,636,217,225]],["mw.cx.ui.CaptchaDialog","9p0bp",[936,664]],["mw.cx.ui.LoginDialog","1tqbb",[664]],["mw.cx.tools.InstructionsTool","17pc8",[674,36]],["mw.cx.tools.TranslationTool","gnek4",[664]],["mw.cx.ui.FeatureDiscoveryWidget","1d7nf",[65,664]],["mw.cx.skin","fg9ac"],["mint.styles","1ibl0"],["mint.app","1c7lh",[31,626,637]],["ext.ax.articlefooter.entrypoint","psxwh",[637,28]],["mw.externalguidance.init","19txf"],["mw.externalguidance","lnuw2",[48,518,682,221]],["mw.externalguidance.icons","1qfeq"],["mw.externalguidance.special","355vp",[32,626,48,682]],["wikibase.summary.tracking","1lndh"],["wikibase.client.init","lju5u"],["wikibase.client.miscStyles","4nyqx"],["wikibase.client.vector-2022","vua7d"],["wikibase.client.linkitem.init","4txty",[20]],["jquery.wikibase.linkitem","aau6c",[20,26,48,819,818,937]],["wikibase.client.action.edit.collapsibleFooter","1e4wq",[19,67]],["ext.wikimediaBadges","mw79h"],["ext.TemplateSandbox.top","wnclz"],["ext.TemplateSandbox","1ebnb",[692]],["ext.TemplateSandbox.preview","1f5fi",[20,114]],["ext.TemplateSandbox.visualeditor","awq9w",[172,204]],["ext.pageassessments.special","b47qk",[22,205]],["ext.jsonConfig","5n0vr"],["ext.jsonConfig.edit","87o0v",[25,188,213]],["ext.chart.styles","comqb"],["ext.chart.bootstrap","hv3x6",[10]],["ext.chart.render","75oed"],["ext.chart.visualEditor","cv75d",[452]],["ext.MWOAuth.styles","5pxqk"],["ext.MWOAuth.AuthorizeDialog","qv54i",[213]],["ext.oath.styles","1vqau"],["ext.oath","1uor9"],["ext.webauthn.ui.base","9cpo7",[204]],["ext.webauthn.register","1tqmz",[707]],["ext.webauthn.login","g6pz5",[707]],["ext.webauthn.manage","ifvo5",[707]],["ext.webauthn.disable","32pel",[707]],["ext.ores.highlighter","1k258"],["ext.ores.styles","bv9la"],["ext.ores.api","1xo2u"],["ext.checkUser.userInfoCard","15soh",[31,12,27,208,30]],["ext.checkUser.clientHints","17cf7",[38,12]],["ext.checkUser.tempAccountOnboarding","12glg",[31]],["ext.checkUser.tempAccounts","dauhn",[67,172,192]],["ext.checkUser.images","ppyly"],["ext.checkUser","zfupe",[23,62,67,172,221,225,227,229,231]],["ext.checkUser.styles","19l11"],["ext.ipInfo","x916l",[52,67,208,218]],["ext.ipInfo.styles","19tag"],["ext.ipInfo.specialIpInfo","1v4w9"],["ext.quicksurveys.lib","1cr7r",[20,82,67,76]],["ext.quicksurveys.lib.vue","1dtyf",[31,725]],["ext.quicksurveys.init","yrk7h",[725]],["ext.kartographer","1h6se"],["ext.kartographer.style","1b2nw"],["ext.kartographer.site","1rxn9"],["mapbox","mr400"],["leaflet.draw","1oeth",[731]],["ext.kartographer.link","13j3v",[735,203]],["ext.kartographer.box","g7e8u",[736,747,730,729,739,38,228]],["ext.kartographer.linkbox","2q5eb",[739]],["ext.kartographer.data","8pk39"],["ext.kartographer.dialog","15v8o",[731,203,208,213]],["ext.kartographer.dialog.sidebar","1qyiy",[67,225,230]],["ext.kartographer.util","1f0vy",[728]],["ext.kartographer.frame","abb3f",[734,203]],["ext.kartographer.staticframe","1y089",[735,203,228]],["ext.kartographer.preview","1w2rj"],["ext.kartographer.editing","1hapb",[38]],["ext.kartographer.editor","19txf",[734,732]],["ext.kartographer.visualEditor","1chf7",[739,444,227]],["ext.kartographer.lib.leaflet.markercluster","7fwoo",[731]],["ext.kartographer.lib.topojson","kkikj",[731]],["ext.kartographer.wv","1t44x",[731,221]],["ext.kartographer.specialMap","kjbdy"],["ext.pageviewinfo","1aasa",["ext.graph.render",204]],["ext.3d","1ba1w",[20]],["ext.3d.styles","jvyl2"],["mmv.3d","dujwu",[751,393]],["mmv.3d.head","1vb6t",[751,205,216,218]],["ext.3d.special.upload","1p8c3",[756,151]],["ext.3d.special.upload.styles","4pnv1"],["ext.readingLists.special.styles","1sptm"],["ext.readingLists.api","o7y49",[38]],["ext.readingLists.special","ln40z",[31,758]],["ext.readingLists.bookmark.styles","ocm7i"],["ext.readingLists.bookmark","73kei",[758,762,58]],["ext.readingLists.bookmark.icons","181zi"],["ext.GlobalPreferences.global","wd4e1",[172,181,193]],["ext.GlobalPreferences.local","nvd1y"],["ext.GlobalPreferences.global-nojs","kg98t"],["ext.GlobalPreferences.local-nojs","hlt0w"],["ext.growthExperiments.mobileMenu.icons","1izfh"],["ext.growthExperiments.SuggestedEditSession","mjgt4",[67,76,202]],["ext.growthExperiments.LevelingUp.InviteToSuggestedEdits","2e8i3",[205,230]],["ext.growthExperiments.HelpPanelCta.styles","7f2t9"],["ext.growthExperiments.HomepageDiscovery.styles","1hfue"],["ext.growthExperiments.HomepageDiscovery","wf46j"],["ext.growthExperiments.Homepage.mobile","1ln3u",[776,518]],["ext.growthExperiments.Homepage","52hgp",[213]],["ext.growthExperiments.Homepage.Impact","fhoao",[31,27]],["ext.growthExperiments.Homepage.Mentorship","1q1lp",[784,768,203]],["ext.growthExperiments.Homepage.SuggestedEdits","uvnym",[795,768,65,203,208,213,218,221,228]],["ext.growthExperiments.Homepage.styles","h7z8m"],["ext.growthExperiments.StructuredTask","19fdm",[782,790,450,203,228,229,230]],["ext.growthExperiments.StructuredTask.desktop","lziwz",[779,419]],["ext.growthExperiments.StructuredTask.mobile","cbwg6",[779,420]],["ext.growthExperiments.StructuredTask.PreEdit","18qf9",[795,768,208,213]],["ext.growthExperiments.StructuredTask.Surfacing","6q5yq",[768,205,221]],["ext.growthExperiments.Help","u6k5z",[795,790,67,208,213,217,219,220,221,225,231]],["ext.growthExperiments.HelpPanel","qmnd3",[784,770,782,65,230]],["ext.growthExperiments.HelpPanel.init","bu2f7",[768]],["ext.growthExperiments.PostEdit","1u1e0",[795,768,790,213,228,230]],["ext.growthExperiments.Account","1dayw",[203,208]],["ext.growthExperiments.Account.styles","1orz4"],["ext.growthExperiments.icons","15ukx"],["ext.growthExperiments.MentorDashboard","lj73s",[31,790,106,192,27,213,220,221,225,228,229,230,231,29]],["ext.growthExperiments.MentorDashboard.styles","l2flf"],["ext.growthExperiments.MentorDashboard.Discovery","ls0i0",[65]],["ext.growthExperiments.MentorDashboard.PostEdit","oi8wx",[58]],["ext.growthExperiments.DataStore","10e77",[205]],["ext.growthExperiments.MidEditSignup","ibbqu",[67,213]],["ext.campaignEvents.specialPages","1kdyf",[19,193,179,213]],["ext.campaignEvents.specialPages.styles","du5sj"],["ext.campaignEvents.eventpage.styles","3gs69"],["ext.campaignEvents.eventpage","vdhwq",[208,213]],["ext.nearby.styles","14xu6"],["ext.nearby.scripts","1muep",[31,803,203]],["ext.nearby.images","4ru2v"],["ext.phonos.init","1gsyh"],["ext.phonos","11m29",[806,804,807,205,209,228]],["ext.phonos.icons.js","az37c"],["ext.phonos.styles","79ht5"],["ext.phonos.icons","1rjkq"],["ext.parsermigration.edit","dv4zr"],["ext.parsermigration.notice","75w4z",[78]],["ext.parsermigration.indicator","1v5nn"],["ext.communityConfiguration.Dashboard","l5ls7"],["ext.communityConfiguration.Editor.styles","1jroo"],["ext.communityConfiguration.Editor.common","o7spu",[28]],["ext.communityConfiguration.Editor","163m9",[814,48]],["ext.xLab","361n0",[596]],["mw.config.values.wbCurrentSiteDetails","ln29d"],["mw.config.values.wbSiteDetails","12gji"],["mw.config.values.wbRepo","18lj4"],["ext.cite.referencePreviews","10ofo",[400]],["ext.pygments.view","nmqdr",[68]],["ext.gadget.modrollback","19juf",[],2],["ext.gadget.confirmationRollback-mobile","1sjz8",[78],2],["ext.gadget.removeAccessKeys","1uokg",[3,78],2],["ext.gadget.searchFocus","1d2fk",[],2],["ext.gadget.GoogleTrans","1h0wl",[],2],["ext.gadget.ImageAnnotator","16aa4",[],2],["ext.gadget.imagelinks","1tvrx",[78],2],["ext.gadget.Navigation_popups","ly52f",[76],2],["ext.gadget.exlinks","1124i",[78],2],["ext.gadget.search-new-tab","12qes",[],2],["ext.gadget.PrintOptions","om2up",[],2],["ext.gadget.revisionjumper","1mpjq",[],2],["ext.gadget.Twinkle","1fe16",[835,837],2],["ext.gadget.morebits","1s26g",[76,26],2],["ext.gadget.Twinkle-pagestyles","bvu25",[],2],["ext.gadget.select2","soiu6",[],2],["ext.gadget.HideCentralNotice","1bepi",[],2],["ext.gadget.ReferenceTooltips","16zlx",[81,14],2],["ext.gadget.formWizard","1khog",[],2],["ext.gadget.formWizard-core","vq9qo",[165,76,13,26],2],["ext.gadget.Prosesize","11vgn",[38],2],["ext.gadget.find-archived-section","a82l9",[],2],["ext.gadget.geonotice","ggvz9",[],2],["ext.gadget.geonotice-core","t5vxr",[67],2],["ext.gadget.watchlist-notice","1iit3",[],2],["ext.gadget.watchlist-notice-core","17awo",[67],2],["ext.gadget.WatchlistBase","urgue",[],2],["ext.gadget.WatchlistGreenIndicators","1aeqo",[],2],["ext.gadget.WatchlistChangesBold","ltbtv",[],2],["ext.gadget.SubtleUpdatemarker","1gtaz",[],2],["ext.gadget.defaultsummaries","cynxx",[205],2],["ext.gadget.citations","isg5h",[78],2],["ext.gadget.DotsSyntaxHighlighter","zi41d",[],2],["ext.gadget.HotCat","1s12m",[],2],["ext.gadget.wikEdDiff","1ssvf",[],2],["ext.gadget.ProveIt","ntv88",[],2],["ext.gadget.ProveIt-classic","1sj69",[26,25,78],2],["ext.gadget.Shortdesc-helper","ul0x0",[38,861],2],["ext.gadget.Shortdesc-helper-pagestyles-vector","15e6v",[],2],["ext.gadget.libSettings","39e6k",[5],2],["ext.gadget.wikEd","12uce",[25,5],2],["ext.gadget.afchelper","196fl",[76,13,20,26],2],["ext.gadget.charinsert","1r43m",[],2],["ext.gadget.charinsert-core","xxnp4",[25,3,67],2],["ext.gadget.legacyToolbar","iadka",[],2],["ext.gadget.extra-toolbar-buttons","dscg3",[],2],["ext.gadget.extra-toolbar-buttons-core","1rlrh",[],2],["ext.gadget.refToolbar","65ko0",[5,78],2],["ext.gadget.refToolbarBase","xe1d6",[],2],["ext.gadget.edittop","1hoak",[5,78],2],["ext.gadget.UTCLiveClock","11ef6",[38],2],["ext.gadget.UTCLiveClock-pagestyles","y2huv",[],2],["ext.gadget.purgetab","rg0d8",[38],2],["ext.gadget.ExternalSearch","kvrx6",[],2],["ext.gadget.CollapsibleNav","1m495",[19,67],2],["ext.gadget.MenuTabsToggle","1k4ey",[81],2],["ext.gadget.dropdown-menus","gxmlv",[38],2],["ext.gadget.dropdown-menus-pagestyles","1h318",[],2],["ext.gadget.addsection-plus","0qhp8",[],2],["ext.gadget.CommentsInLocalTime","vqnry",[],2],["ext.gadget.OldDiff","yynfe",[],2],["ext.gadget.NoAnimations","1wlb7",[],2],["ext.gadget.disablesuggestions","eansz",[],2],["ext.gadget.NoSmallFonts","1vgzz",[],2],["ext.gadget.topalert","6vov0",[],2],["ext.gadget.metadata","1rj85",[78],2],["ext.gadget.JustifyParagraphs","12ogl",[],2],["ext.gadget.righteditlinks","dshd6",[],2],["ext.gadget.PrettyLog","1rv6j",[78],2],["ext.gadget.switcher","1sw50",[],2],["ext.gadget.SidebarTranslate","wi3xj",[],2],["ext.gadget.Blackskin","9yoav",[],2],["ext.gadget.dark-mode-toggle","wpdi9",[38,67],2],["ext.gadget.dark-mode-toggle-pagestyles","1csmd",[],2],["ext.gadget.VectorClassic","19pyc",[],2],["ext.gadget.widensearch","1decp",[],2],["ext.gadget.DisambiguationLinks","147tn",[],2],["ext.gadget.markblocked","1g4ab",[112],2],["ext.gadget.HideInterwikiSearchResults","1j7tr",[],2],["ext.gadget.XTools-ArticleInfo","1xcac",[],2],["ext.gadget.remove-sticky-decoration","11l1k",[],2],["ext.gadget.RegexMenuFramework","g0sq0",[],2],["ext.gadget.ShowMessageNames","czs7v",[78],2],["ext.gadget.DebugMode","uapw2",[78],2],["ext.gadget.contribsrange","1ezde",[78,20],2],["ext.gadget.BugStatusUpdate","rdnny",[],2],["ext.gadget.RTRC","98niu",[],2],["ext.gadget.script-installer","ia5o9",[169],2],["ext.gadget.XFDcloser","rohem",[76],2],["ext.gadget.XFDcloser-core","hz46c",[208,213,225,218,229,217],2],["ext.gadget.XFDcloser-core-beta","y4df1",[208,213,225,218,229,217],2],["ext.gadget.libExtraUtil","1hns8",[],2],["ext.gadget.mobile-sidebar","e086r",[],2],["ext.gadget.addMe","j4nma",[],2],["ext.gadget.NewImageThumb","4asyh",[],2],["ext.gadget.StickyTableHeaders","1iljt",[],2],["ext.gadget.ShowJavascriptErrors","75bak",[],2],["ext.gadget.PageDescriptions","111lp",[38],2],["ext.gadget.autonum","1ocij",[],2],["ext.gadget.Vivarium","j46ad",[],2],["ext.gadget.WikiMiniAtlas","vwjcp",[],2],["ext.gadget.ImageStackPopup","du2ny",[],2],["ext.gadget.Calculator","m43qm",[],2],["ext.gadget.libLua","bfdqv",[38],2],["ext.gadget.libSensitiveIPs","1t6i7",[925],2],["ext.gadget.dark-mode","4kas0",[],2],["ext.confirmEdit.CaptchaInputWidget","uho9s",[205]],["ext.globalCssJs.user","1son6",[],0,"metawiki"],["ext.globalCssJs.user.styles","1son6",[],0,"metawiki"],["ext.wikimediaMessages.ipInfo.hooks","1d5k0",[722]],["ext.guidedTour.tour.firsteditve","y1z5v",[493]],["ext.echo.emailicons","867p2"],["ext.echo.secondaryicons","fhrh9"],["ext.wikimediaEvents.visualEditor","19w1w",[417]],["mw.cx.externalmessages","esvqw"],["wikibase.Site","1aijp",[616]],["ext.guidedTour.tour.checkuserinvestigateform","rn987",[493]],["ext.guidedTour.tour.checkuserinvestigate","1vwkq",[720,493]],["ext.checkUser.ipInfo.hooks","k0s6p"],["ext.quicksurveys.survey.Automatic.Translation.Feedback","ry32o",[726]],["ext.guidedTour.tour.helppanel","16qz8",[493]],["ext.guidedTour.tour.homepage_mentor","1hlwq",[493]],["ext.guidedTour.tour.homepage_welcome","1bfwr",[493]],["ext.guidedTour.tour.homepage_discovery","46zjm",[493]],["mediawiki.messagePoster","1d2qc",[48]]]); +mw.config.set(window.RLCONF||{});mw.loader.state(window.RLSTATE||{});mw.loader.load(window.RLPAGEMODULES||[]);queue=window.RLQ||[];RLQ=[];RLQ.push=function(fn){if(typeof fn==='function'){fn();}else{RLQ[RLQ.length]=fn;}};while(queue[0]){RLQ.push(queue.shift());}NORLQ={push:function(){}};}());} diff --git a/tests/data/Kimi Räikkönen - Wikipedia_files/load_002.css b/tests/data/Kimi Räikkönen - Wikipedia_files/load_002.css new file mode 100644 index 0000000..0765f81 --- /dev/null +++ b/tests/data/Kimi Räikkönen - Wikipedia_files/load_002.css @@ -0,0 +1 @@ +cite,dfn{font-style:inherit}q{quotes:'"' '"' "'" "'"}blockquote{overflow:hidden;margin:1em 0;padding:0 40px}small{font-size:85%}.mw-body-content sub,.mw-body-content sup{font-size:80%}.ns-talk .mw-body-content dd{margin-top:0.4em;margin-bottom:0.4em}.client-js .collapsible:not(.mw-made-collapsible).collapsed > tbody > tr:not(:first-child),.client-js .outercollapse .innercollapse.mw-collapsible:not(.mw-made-collapsible) > p,.client-js .outercollapse .innercollapse.mw-collapsible:not(.mw-made-collapsible) > table,.client-js .outercollapse .innercollapse.mw-collapsible:not(.mw-made-collapsible) > thead + tbody,.client-js .outercollapse .innercollapse.mw-collapsible:not(.mw-made-collapsible) tr:not(:first-child),.client-js .outercollapse .innercollapse.mw-collapsible:not(.mw-made-collapsible) .mw-collapsible-content,#editpage-specialchars{display:none}.references{margin-bottom:0.5em}span[rel="mw:referencedBy"]{counter-reset:mw-ref-linkback 0}span[rel='mw:referencedBy'] > a::before{content:counter(mw-ref-linkback,lower-alpha);font-size:80%;font-weight:bold;font-style:italic}a[rel="mw:referencedBy"]::before{font-weight:bold;content:"^"}span[rel="mw:referencedBy"]::before{content:"^ "}.mw-parser-output .mw-collapsible-toggle:not(.mw-ui-button){font-weight:normal;padding-right:0.2em;padding-left:0.2em}.mw-collapsible-leftside-toggle .mw-collapsible-toggle{float:left}.wikitable td ul,.wikitable td ol,.wikitable td dl{text-align:left}.mw-parser-output a[href$=".pdf"].external,.mw-parser-output a[href*=".pdf?"].external,.mw-parser-output a[href*=".pdf#"].external,.mw-parser-output a[href$=".PDF"].external,.mw-parser-output a[href*=".PDF?"].external,.mw-parser-output a[href*=".PDF#"].external{background:url(//upload.wikimedia.org/wikipedia/commons/4/4d/Icon_pdf_file.png) no-repeat right;padding:8px 18px 8px 0}.mw-warning-with-logexcerpt.mw-warning-with-logexcerpt.mw-warning-with-logexcerpt,div.mw-lag-warn-high,div.mw-cascadeprotectedwarning,div#mw-protect-cascadeon{clear:both;margin:0.2em 0;border:1px solid #bb7070;background-color:var(--background-color-error-subtle,#ffdbdb);padding:0.25em 0.9em;box-sizing:border-box}.mw-contributions-blocked-notice-partial .mw-warning-with-logexcerpt.mw-warning-with-logexcerpt{border-color:#fc3;background-color:var(--background-color-warning-subtle,#fef6e7)}@media (min-width:640px){figure[typeof~='mw:File/Thumb'],figure[typeof~='mw:File/Frame'],.thumbinner{min-width:100px}}#mw-subcategories,#mw-pages,#mw-category-media,#filehistory,#wikiPreview,#wikiDiff{clear:both}.checkuser-show,.sysop-show,.abusefilter-show,.abusefilter-helper-show,.patroller-show,.templateeditor-show,.extendedmover-show,.extendedconfirmed-show,.autoconfirmed-show,.user-show{display:none}.ve-ui-mwNoticesPopupTool-item .editnotice-redlink,.ve-ui-mwNoticesPopupTool-item .mbox-image,.ve-ui-mwNoticesPopupTool-item .mbox-imageright{display:none !important}ul.permissions-errors{margin:0}ul.permissions-errors > li{list-style:none}span.mwe-math-mathml-inline{font-size:118%}.mwe-math-fallback-image-display,.mwe-math-mathml-display{margin-left:1.6em !important;margin-top:0.6em;margin-bottom:0.6em}.mwe-math-mathml-display math{display:inline}@media screen{body:not(.ns-0):not(.ns-2):not(.ns-100) .gallerybox .thumb img{background:#fff url(//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png) repeat}#siteSub{display:block}.references{font-size:90%}}.flaggedrevs_draft_synced,.flaggedrevs_stable_synced,#t-upload,.mw-special-Book #coll-downloadbox{display:none}.infobox{border:1px solid #a2a9b1;color:black;padding:0.2em;font-size:88%;line-height:1.5em;border-spacing:3px}@media screen{.infobox{background-color:#f8f9fa}}@media (max-width:640px){.infobox{width:100%}.infobox .nowrap{white-space:normal}}@media (min-width:640px){.infobox{margin:0.5em 0 0.5em 1em;float:right;clear:right;width:22em}}.infobox-header,.infobox-label,.infobox-above,.infobox-full-data,.infobox-data,.infobox-below,.infobox-subheader,.infobox-image,.infobox-navbar,.infobox th,.infobox td{vertical-align:top}.infobox-label,.infobox-data,.infobox th,.infobox td{text-align:left}.infobox .infobox-above,.infobox .infobox-title,.infobox caption{font-size:125%;font-weight:bold;text-align:center}.infobox-title,.infobox caption{padding:0.2em}.infobox .infobox-header,.infobox .infobox-subheader,.infobox .infobox-image,.infobox .infobox-full-data,.infobox .infobox-below{text-align:center}.infobox .infobox-navbar{text-align:right}.wikitable.plainrowheaders th[scope=row],.wikitable.plainrowheaders th[scope=rowgroup]{font-weight:normal;text-align:left}.nounderlines a,.IPA a:link,.IPA a:visited{text-decoration:none !important}.nowrap,.nowraplinks a{white-space:nowrap}.wrap,.wraplinks a{white-space:normal}span.texhtml{font-family:"Nimbus Roman No9 L","Times New Roman",Times,serif;font-size:118%;line-height:1;font-variant-numeric:lining-nums tabular-nums;font-kerning:none}span.texhtml span.texhtml{font-size:100%}@media (min-width:640px){span.texhtml{white-space:nowrap}}@media (max-width:640px){.flagicon a > img,.flagicon noscript > img{max-width:none !important}}@media screen{.nochecker .gallerybox .thumb img{background-image:none}}#coordinates{line-height:2;font-size:92%;white-space:nowrap}.page-Main_Page #deleteconfirm,.page-Main_Page #t-cite,.page-Main_Page #footer-info-lastmod,.action-view.page-Main_Page #siteSub,.action-view.page-Main_Page #contentSub,.action-view.page-Main_Page #contentSub2{display:none !important}.mw-body-content blockquote{border-left:none}.mw-tag-markers{font-style:italic;font-size:90%}@media screen{html.skin-theme-clientpref-night .navbox a:not(.new):not(.mw-selflink):link,html.skin-theme-clientpref-night .infobox a:not(.new):not(.mw-selflink):link{color:var(--color-progressive) !important}html.skin-theme-clientpref-night .mw-parser-output > figure img{background:var(--background-color-disabled-fixed,#C8CCD1)}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .navbox a:not(.new):not(.mw-selflink):link,html.skin-theme-clientpref-os .infobox a:not(.new):not(.mw-selflink):link{color:var(--color-progressive) !important}html.skin-theme-clientpref-os .mw-parser-output > figure img{background:var(--background-color-disabled-fixed,#C8CCD1)}}@media print{.ns-0 .metadata,.editlink,.mw-collapsible-toggle,#mw-revision-nav,.nourlexpansion a.external.text::after,.nourlexpansion a.external.autonumber::after{display:none !important}.mw-parser-output .mw-collapsed,.mw-parser-output .mw-collapsed .mw-collapsible-content,.mw-parser-output .mw-collapsed > li,.mw-parser-output .mw-collapsed tr{display:initial !important;display:revert !important}#firstHeading{margin:0}.mw-parser-output a.external.text::after,.mw-parser-output a.external.autonumber::after{word-wrap:break-word}} \ No newline at end of file diff --git a/tests/test_concrete_functional.py b/tests/test_concrete_functional.py index 9ca5953..3582a15 100644 --- a/tests/test_concrete_functional.py +++ b/tests/test_concrete_functional.py @@ -393,7 +393,7 @@ class TestRenderableFormField(unittest.TestCase): """ TODO: Fix test @patch('PIL.ImageDraw.Draw') def test_render_field_with_value(self, mock_draw_class): - """Test rendering field with value""" + #Test rendering field with value mock_draw = Mock() mock_draw_class.return_value = mock_draw diff --git a/tests/test_html_file_loader.py b/tests/test_html_file_loader.py new file mode 100644 index 0000000..7c89a4d --- /dev/null +++ b/tests/test_html_file_loader.py @@ -0,0 +1,118 @@ +""" +Test module for loading HTML files using the html_extraction module. + +This test verifies that HTML files can be loaded from disk and processed +using the html_extraction.parse_html_string function. +""" + +import os +import unittest +from pyWebLayout.io.readers.html_extraction import parse_html_string +from pyWebLayout.abstract.block import Block +from pyWebLayout.style import Font + + +class TestHTMLFileLoader(unittest.TestCase): + """Test class for HTML file loading functionality.""" + + def test_load_html_file(self): + """Test loading and parsing an HTML file from disk.""" + # Path to the test HTML file + html_file_path = os.path.join("tests", "data", "Kimi Räikkönen - Wikipedia.html") + + # Verify the test file exists + self.assertTrue(os.path.exists(html_file_path), f"Test HTML file not found: {html_file_path}") + + # Read the HTML file + with open(html_file_path, 'r', encoding='utf-8') as file: + html_content = file.read() + + # Verify we got some content + self.assertGreater(len(html_content), 0, "HTML file should not be empty") + + # Parse the HTML content using the html_extraction module + try: + blocks = parse_html_string(html_content) + except Exception as e: + self.fail(f"Failed to parse HTML file: {e}") + + # Verify we got some blocks + self.assertIsInstance(blocks, list, "parse_html_string should return a list") + self.assertGreater(len(blocks), 0, "Should extract at least one block from the HTML file") + + # Verify all returned items are Block instances + for i, block in enumerate(blocks): + self.assertIsInstance(block, Block, f"Item {i} should be a Block instance, got {type(block)}") + + print(f"Successfully loaded and parsed HTML file with {len(blocks)} blocks") + + def test_load_html_file_with_custom_font(self): + """Test loading HTML file with a custom base font.""" + html_file_path = os.path.join("tests", "data", "Kimi Räikkönen - Wikipedia.html") + + # Skip if file doesn't exist + if not os.path.exists(html_file_path): + self.skipTest(f"Test HTML file not found: {html_file_path}") + + # Create a custom font + custom_font = Font(font_size=14, colour=(100, 100, 100)) + + # Read and parse with custom font + with open(html_file_path, 'r', encoding='utf-8') as file: + html_content = file.read() + + blocks = parse_html_string(html_content, base_font=custom_font) + + # Verify we got blocks + self.assertGreater(len(blocks), 0, "Should extract blocks with custom font") + + print(f"Successfully parsed HTML file with custom font, got {len(blocks)} blocks") + + def test_load_html_file_content_types(self): + """Test that the loaded HTML file contains expected content types.""" + html_file_path = os.path.join("tests", "data", "Kimi Räikkönen - Wikipedia.html") + + # Skip if file doesn't exist + if not os.path.exists(html_file_path): + self.skipTest(f"Test HTML file not found: {html_file_path}") + + with open(html_file_path, 'r', encoding='utf-8') as file: + html_content = file.read() + + blocks = parse_html_string(html_content) + + # Check that we have different types of blocks + block_type_names = [type(block).__name__ for block in blocks] + unique_types = set(block_type_names) + + # A Wikipedia page should contain multiple types of content + self.assertGreater(len(unique_types), 1, "Should have multiple types of blocks in Wikipedia page") + + print(f"Found block types: {sorted(unique_types)}") + + def test_html_file_size_handling(self): + """Test that large HTML files can be handled gracefully.""" + html_file_path = os.path.join("tests", "data", "Kimi Räikkönen - Wikipedia.html") + + # Skip if file doesn't exist + if not os.path.exists(html_file_path): + self.skipTest(f"Test HTML file not found: {html_file_path}") + + # Get file size + file_size = os.path.getsize(html_file_path) + print(f"HTML file size: {file_size} bytes") + + # Read and parse + with open(html_file_path, 'r', encoding='utf-8') as file: + html_content = file.read() + + # This should not raise an exception even for large files + blocks = parse_html_string(html_content) + + # Basic verification + self.assertIsInstance(blocks, list) + print(f"Successfully processed {file_size} byte file into {len(blocks)} blocks") + + +if __name__ == '__main__': + unittest.main()