Bug 1341137 part 4 - Update web-platform-tests expected data a=jcristau
☠☠ backed out by 39dc0e9c0866 ☠ ☠
authorMats Palmgren <mats@mozilla.com>
Sat, 25 Feb 2017 11:33:34 +0100
changeset 378728 0941991daadf6d76c03f77ad84ac1253cdc1584e
parent 378727 8a9c68f8889a6fbb781dc84e509bc222de66c030
child 378729 0934029f7f0c8b1c7fe66b14ce1c8ed15c6892ec
push id1419
push userjlund@mozilla.com
push dateMon, 10 Apr 2017 20:44:07 +0000
treeherdermozilla-release@5e6801b73ef6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjcristau
bugs1341137
milestone53.0a2
Bug 1341137 part 4 - Update web-platform-tests expected data a=jcristau
testing/web-platform/meta/fetch/api/policies/referrer-origin-service-worker.https.html.ini
testing/web-platform/meta/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin.html.ini
testing/web-platform/meta/selection/addRange-00.html.ini
testing/web-platform/meta/selection/addRange-04.html.ini
testing/web-platform/meta/selection/addRange-08.html.ini
testing/web-platform/meta/selection/addRange-12.html.ini
testing/web-platform/meta/selection/addRange-16.html.ini
testing/web-platform/meta/selection/addRange-20.html.ini
testing/web-platform/meta/selection/addRange-24.html.ini
testing/web-platform/meta/selection/addRange-28.html.ini
testing/web-platform/meta/selection/addRange-32.html.ini
testing/web-platform/meta/selection/addRange-36.html.ini
testing/web-platform/meta/selection/addRange-40.html.ini
testing/web-platform/meta/selection/addRange-44.html.ini
testing/web-platform/meta/selection/addRange-48.html.ini
testing/web-platform/meta/selection/addRange-52.html.ini
testing/web-platform/meta/selection/addRange-56.html.ini
testing/web-platform/meta/selection/collapseToStartEnd.html.ini
testing/web-platform/meta/selection/extend-00.html.ini
testing/web-platform/meta/selection/extend-20.html.ini
testing/web-platform/meta/selection/extend-40.html.ini
testing/web-platform/meta/selection/isCollapsed.html.ini
testing/web-platform/mozilla/meta/wasm/nop.wast.js.html.ini
testing/web-platform/mozilla/meta/wasm/resizing.wast.js.html.ini
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/fetch/api/policies/referrer-origin-service-worker.https.html.ini
@@ -0,0 +1,6 @@
+[referrer-origin-service-worker.https.html]
+  type: testharness
+  [Cross-origin referrer is overridden by client origin]
+    expected: FAIL
+    bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1341223
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin.html.ini
@@ -0,0 +1,5 @@
+[browsing_context_name_cross_origin.html]
+  type: testharness
+  [Restoring window.name on cross-origin history traversal]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/selection/addRange-00.html.ini
@@ -0,0 +1,1958 @@
+[addRange-00.html]
+  type: testharness
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/selection/addRange-04.html.ini
@@ -0,0 +1,1958 @@
+[addRange-04.html]
+  type: testharness
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 34 [document, 0, document, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 34 [document, 0, document, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 39 [paras[3\], 1, comment, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/selection/addRange-08.html.ini
@@ -0,0 +1,5282 @@
+[addRange-08.html]
+  type: testharness
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 18 [document.body, 0, document.body, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 18 [document.body, 0, document.body, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 18 [document.body, 0, document.body, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 18 [document.body, 0, document.body, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 18 [document.body, 0, document.body, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 34 [document, 0, document, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 35 [document, 0, document, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 35 [document, 0, document, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 35 [document, 0, document, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 35 [document, 0, document, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 35 [document, 0, document, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 36 [document, 1, document, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 36 [document, 1, document, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 36 [document, 1, document, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 36 [document, 1, document, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 36 [document, 1, document, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 37 [testDiv, 0, comment, 5\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 37 [testDiv, 0, comment, 5\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 37 [testDiv, 0, comment, 5\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 37 [testDiv, 0, comment, 5\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 37 [testDiv, 0, comment, 5\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 39 [paras[3\], 1, comment, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 11 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 13 [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 14 [document.documentElement, 0, document.documentElement, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 15 [document.documentElement, 0, document.documentElement, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 16 [document.documentElement, 1, document.documentElement, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 17 [document.head, 1, document.head, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 18 [document.body, 0, document.body, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 18 [document.body, 0, document.body, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 18 [document.body, 0, document.body, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 18 [document.body, 0, document.body, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 18 [document.body, 0, document.body, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 20 [foreignDoc.head, 1, foreignDoc.head, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 21 [foreignDoc.body, 0, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 22 [paras[0\], 0, paras[0\], 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 23 [paras[0\], 0, paras[0\], 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 24 [detachedPara1, 0, detachedPara1, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 25 [detachedPara1, 0, detachedPara1, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 26 [paras[0\].firstChild, 0, paras[1\].firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 27 [paras[0\].firstChild, 0, paras[1\].firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 28 [paras[0\].firstChild, 3, paras[3\], 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 29 [paras[0\], 0, paras[0\].firstChild, 7\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 30 [testDiv, 2, paras[4\], 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 31 [testDiv, 1, paras[2\].firstChild, 5\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 32 [document.documentElement, 1, document.body, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 33 [foreignDoc.documentElement, 1, foreignDoc.body, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 34 [document, 0, document, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 35 [document, 0, document, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 35 [document, 0, document, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 35 [document, 0, document, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 35 [document, 0, document, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 35 [document, 0, document, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 36 [document, 1, document, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 36 [document, 1, document, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 36 [document, 1, document, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 36 [document, 1, document, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 36 [document, 1, document, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 37 [testDiv, 0, comment, 5\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 37 [testDiv, 0, comment, 5\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 37 [testDiv, 0, comment, 5\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 37 [testDiv, 0, comment, 5\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 37 [testDiv, 0, comment, 5\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 38 [paras[2\].firstChild, 4, comment, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 39 [paras[3\], 1, comment, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 40 [foreignDoc, 0, foreignDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 41 [foreignDoc, 1, foreignComment, 2\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 42 [foreignDoc.body, 0, foreignTextNode, 36\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 43 [xmlDoc, 0, xmlDoc, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 44 [xmlDoc, 1, xmlComment, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 45 [detachedTextNode, 0, detachedTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 46 [detachedForeignTextNode, 7, detachedForeignTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 47 [detachedForeignTextNode, 0, detachedForeignTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 48 [detachedXmlTextNode, 7, detachedXmlTextNode, 7\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 49 [detachedXmlTextNode, 0, detachedXmlTextNode, 8\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 50 [detachedComment, 3, detachedComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 51 [detachedComment, 5, detachedComment, 5\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 52 [detachedForeignComment, 0, detachedForeignComment, 1\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 53 [detachedForeignComment, 4, detachedForeignComment, 4\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 54 [detachedXmlComment, 2, detachedXmlComment, 6\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 55 [docfrag, 0, docfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 56 [foreignDocfrag, 0, foreignDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: second addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the second added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 9 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 1\] followed by Range 57 [xmlDocfrag, 0, xmlDocfrag, 0\]: modifying the Selection's last Range must modify the second added Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 0 [paras[0\].firstChild, 0, paras[0\].firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 1 [paras[0\].firstChild, 0, paras[0\].firstChild, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 2 [paras[0\].firstChild, 2, paras[0\].firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 3 [paras[0\].firstChild, 2, paras[0\].firstChild, 9\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 4 [paras[1\].firstChild, 0, paras[1\].firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 5 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 6 [paras[1\].firstChild, 2, paras[1\].firstChild, 8\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 7 [paras[1\].firstChild, 2, paras[1\].firstChild, 9\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: first addRange() must result in rangeCount being 1]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: first addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: first addRange() must result in the selection's last range being the same object we added]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the first added range must modify the Selection's last Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: modifying the Selection's last Range must modify the first added Range]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range having the specified endpoints]
+    expected: FAIL
+
+  [Range 10 [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\] followed by Range 8 [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\]: second addRange() must result in the selection's last range being the same object we added]