<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>186919</bug_id>
          
          <creation_ts>2018-06-22 07:09:55 -0700</creation_ts>
          <short_desc>Navigation Timing data is corrupt in WebView (UIWebView/WKWebView)</short_desc>
          <delta_ts>2022-03-29 13:55:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 11</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>krinklemail</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1435422</commentid>
    <comment_count>0</comment_count>
    <who name="">krinklemail</who>
    <bug_when>2018-06-22 07:09:55 -0700</bug_when>
    <thetext>iOS 8.0 introduced support for the Navigation Timing API, which had issues and was removed in 8.1, then re-introduced in iOS 9.0 with different issues. These were fixed for the Mobile Safari app in 9.1, but WebView remained a source of invalid Navigation Timing data and has continued to have the same issues to this day in iOS 11.

Downstream report: https://phabricator.wikimedia.org/T190977

Specifically, the following two types of data corruption are the most common in data received from Wikipedia users:

* fetchStart went backwards from unloadEventEnd.
* responseStart went backwards from requestStart.

Test url:
https://codepen.io/Krinkle/pen/pKVqPy?editors=0100

Steps to reproduce:
Intermittent, but loading this page within an app (e.g. Apple Dictionary, Facebook Messenger, Feedly, etc.), either directly from a native view, or as secondary navigation after initially entering an embedded view, most often when refreshing the view, will eventually cause the error to occur.

Impact:
For Wikipedia, the data from Navigation Timing API is central to measuring performance from users. iOS WebView is a significant source of traffic (at between 1% and 2% of Wikipedia page views, per Jan-May 2018). Unfortunately, (almost) all of this data is discarded before recording because it does not pass a basic data compliance check.

Here&apos;s a dump from the logs of our data validation service from last few hours (sorted by frequency)

| Rank | Hits | Normalised message
| ---- | ---- | ------------------
| #1   | 1987 | (is_compliant:443) Discarding event because responseEnd is out of order [{&apos;os_minor&apos;: &apos;4&apos;, &apos;os_major&apos;: &apos;11&apos;, &apos;device_family&apos;: &apos;iPhone&apos;, &apos;os_family&apos;: &apos;iOS&apos;, &apos;browser_minor&apos;: &apos;0&apos;, &apos;browser_major&apos;: &apos;11&apos;, &apos;browser_family&apos;: &apos;Mobile Safari&apos;}]
| #2   | 1566 | (is_compliant:443) Discarding event because requestStart is out of order [{&apos;os_minor&apos;: &apos;3&apos;, &apos;os_major&apos;: &apos;9&apos;, &apos;device_family&apos;: &apos;iPad&apos;, &apos;os_family&apos;: &apos;iOS&apos;, &apos;browser_minor&apos;: &apos;0&apos;, &apos;browser_major&apos;: &apos;9&apos;, &apos;browser_family&apos;: &apos;Mobile Safari&apos;}]
| #3   |  821 | (is_compliant:443) Discarding event because responseEnd is out of order [{&apos;os_minor&apos;: &apos;3&apos;, &apos;os_major&apos;: &apos;11&apos;, &apos;device_family&apos;: &apos;iPhone&apos;, &apos;os_family&apos;: &apos;iOS&apos;, &apos;browser_minor&apos;: &apos;0&apos;, &apos;browser_major&apos;: &apos;11&apos;, &apos;browser_family&apos;: &apos;Mobile Safari&apos;}]
| #4   |  786 | (is_compliant:443) Discarding event because requestStart is out of order [{&apos;os_minor&apos;: &apos;3&apos;, &apos;os_major&apos;: &apos;9&apos;, &apos;device_family&apos;: &apos;iPhone&apos;, &apos;os_family&apos;: &apos;iOS&apos;, &apos;browser_minor&apos;: &apos;0&apos;, &apos;browser_major&apos;: &apos;9&apos;, &apos;browser_family&apos;: &apos;Mobile Safari&apos;}]
| #5   |  468 | (is_compliant:443) Discarding event because responseEnd is out of order [{&apos;os_minor&apos;: &apos;2&apos;, &apos;os_major&apos;: &apos;11&apos;, &apos;device_family&apos;: &apos;iPhone&apos;, &apos;os_family&apos;: &apos;iOS&apos;, &apos;browser_minor&apos;: &apos;0&apos;, &apos;browser_major&apos;: &apos;11&apos;, &apos;browser_family&apos;: &apos;Mobile Safari&apos;}]

There used to be a Chrome entry in the top 5 as well (Chrome 62 and earlier produced invalid timing data on redirected navigations), but that was fixed per https://bugs.chromium.org/p/chromium/issues/detail?id=813889.

At this time, Mobile Safari (WebView) accounts for 98% of navigation timing errors.

See also:
* https://bugs.webkit.org/show_bug.cgi?id=184363
* Downstream investigation: https://phabricator.wikimedia.org/T190977
* Similar issue in Chromium (affecting redirects only, FIXED) - https://bugs.chromium.org/p/chromium/issues/detail?id=813889
* Wikipedia performance data validation - https://grafana.wikimedia.org/dashboard/db/eventlogging-schema?var-schema=NavigationTiming (currently around 0.3 errors per second, from a sampling of 1:1000 page views)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435786</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-22 23:15:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/41393423&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435867</commentid>
    <comment_count>2</comment_count>
      <attachid>343438</attachid>
    <who name="">krinklemail</who>
    <bug_when>2018-06-23 09:37:52 -0700</bug_when>
    <thetext>Created attachment 343438
Test case

Simple HTML file (the pen url only works when using CodePen&apos;s Debug View, due to the framed wrapper somehow causing the issue not to happen).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435868</commentid>
    <comment_count>3</comment_count>
      <attachid>343439</attachid>
    <who name="">krinklemail</who>
    <bug_when>2018-06-23 09:43:14 -0700</bug_when>
    <thetext>Created attachment 343439
Test case (response/request order)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656135</commentid>
    <comment_count>4</comment_count>
    <who name="">krinklemail</who>
    <bug_when>2020-05-26 12:37:47 -0700</bug_when>
    <thetext>This is still seen from Mobile Safari 13 clients.


May 26
Discarding event because requestStart is out of order [{u&apos;wmf_app_version&apos;: u&apos;-&apos;, u&apos;os_minor&apos;: u&apos;4&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;is_bot&apos;: False, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;1&apos;, u&apos;is_mediawiki&apos;: False, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
Discarding event because requestStart is out of order [{u&apos;wmf_app_version&apos;: u&apos;-&apos;, u&apos;os_minor&apos;: u&apos;4&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;is_bot&apos;: False, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;1&apos;, u&apos;is_mediawiki&apos;: False, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
Discarding event because requestStart is out of order [{u&apos;wmf_app_version&apos;: u&apos;-&apos;, u&apos;os_minor&apos;: u&apos;4&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;is_bot&apos;: False, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;1&apos;, u&apos;is_mediawiki&apos;: False, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
…

Current downstream report:
https://phabricator.wikimedia.org/T197954</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694366</commentid>
    <comment_count>5</comment_count>
    <who name="">krinklemail</who>
    <bug_when>2020-10-02 22:47:18 -0700</bug_when>
    <thetext>Updated log now startingb to include iOS 14 as we start to see adoption.

Below is the aggregregate of a few hours of 1:1000 navtiming samples from Wikimedia, with first column indicating how many similar errors were seen (same out of order, same OS/browser version)

3848  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;7&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;1&apos;, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
1612  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;15&apos;, u&apos;os_major&apos;: u&apos;10&apos;, u&apos;device_family&apos;: u&apos;Mac&apos;, u&apos;os_family&apos;: u&apos;Mac OS X&apos;, u&apos;browser_minor&apos;: u&apos;1&apos;, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Safari&apos;}]
1474  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;6&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;1&apos;, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
711  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;7&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;2&apos;, u&apos;browser_major&apos;: u&apos;125&apos;, u&apos;browser_family&apos;: u&apos;Google&apos;}]
672  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;5&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;1&apos;, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
665  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;3&apos;, u&apos;os_major&apos;: u&apos;9&apos;, u&apos;device_family&apos;: u&apos;iPad&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;0&apos;, u&apos;browser_major&apos;: u&apos;9&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
592  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;7&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;0&apos;, u&apos;browser_major&apos;: u&apos;85&apos;, u&apos;browser_family&apos;: u&apos;Chrome Mobile iOS&apos;}]
528  Discarding event because responseEnd is out of order [{u&apos;os_minor&apos;: u&apos;0&apos;, u&apos;os_major&apos;: u&apos;14&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;0&apos;, u&apos;browser_major&apos;: u&apos;14&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
454  Discarding event because responseEnd is out of order [{u&apos;os_minor&apos;: u&apos;7&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;1&apos;, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
344  Discarding event because responseEnd is out of order [{u&apos;os_minor&apos;: u&apos;15&apos;, u&apos;os_major&apos;: u&apos;10&apos;, u&apos;device_family&apos;: u&apos;Mac&apos;, u&apos;os_family&apos;: u&apos;Mac OS X&apos;, u&apos;browser_minor&apos;: u&apos;1&apos;, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Safari&apos;}]
295  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;15&apos;, u&apos;os_major&apos;: u&apos;10&apos;, u&apos;device_family&apos;: u&apos;Mac&apos;, u&apos;os_family&apos;: u&apos;Mac OS X&apos;, u&apos;browser_minor&apos;: u&apos;0&apos;, u&apos;browser_major&apos;: u&apos;14&apos;, u&apos;browser_family&apos;: u&apos;Safari&apos;}]
259  Discarding event because responseEnd is out of order [{u&apos;os_minor&apos;: u&apos;15&apos;, u&apos;os_major&apos;: u&apos;10&apos;, u&apos;device_family&apos;: u&apos;Mac&apos;, u&apos;os_family&apos;: u&apos;Mac OS X&apos;, u&apos;browser_minor&apos;: u&apos;0&apos;, u&apos;browser_major&apos;: u&apos;14&apos;, u&apos;browser_family&apos;: u&apos;Safari&apos;}]
244  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;0&apos;, u&apos;os_major&apos;: u&apos;14&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;0&apos;, u&apos;browser_major&apos;: u&apos;14&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
235  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;3&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;0&apos;, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
193  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;4&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;1&apos;, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]
175  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;6&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;2&apos;, u&apos;browser_major&apos;: u&apos;125&apos;, u&apos;browser_family&apos;: u&apos;Google&apos;}]
174  Discarding event because requestStart is out of order [{u&apos;os_minor&apos;: u&apos;6&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;0&apos;, u&apos;browser_major&apos;: u&apos;85&apos;, u&apos;browser_family&apos;: u&apos;Chrome Mobile iOS&apos;}]
166  Discarding event because responseEnd is out of order [{u&apos;os_minor&apos;: u&apos;6&apos;, u&apos;os_major&apos;: u&apos;13&apos;, u&apos;device_family&apos;: u&apos;iPhone&apos;, u&apos;os_family&apos;: u&apos;iOS&apos;, u&apos;browser_minor&apos;: u&apos;1&apos;, u&apos;browser_major&apos;: u&apos;13&apos;, u&apos;browser_family&apos;: u&apos;Mobile Safari&apos;}]

Safari is (still) the only browser reporting errors with significant frequency.

&apos;requestStart&apos; being out of order is far far the most frequent, however we are still seeing out of order &apos;responseEnd&apos; as well as you can see including on iOS 14.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845088</commentid>
    <comment_count>6</comment_count>
    <who name="">krinklemail</who>
    <bug_when>2022-02-23 04:40:00 -0800</bug_when>
    <thetext>Still seen from iOS 15.3 and Mac Safari 15.

Estimated affected Wikipedia pageviews per day (before 1:1000 sampling):

| pageviews | wikimedia_navtiming/is_compliant/error_invalid
|-----------|---------------------------------------
|   500,000 | Discarding event because requestStart is out of order [(&apos;Mobile_Safari&apos;, &apos;15_3&apos;)]
|   400,000 | Discarding event because requestStart is out of order [(&apos;Mobile_Safari&apos;, &apos;14_1&apos;)]
|   400,000 | Discarding event because requestStart is out of order [(&apos;Mobile_Safari&apos;, &apos;15_2&apos;)]
|   300,000 | Discarding event because requestStart is out of order [(&apos;Mobile_Safari&apos;, &apos;13_1&apos;)]
|   300,000 | Discarding event because requestStart is out of order [(&apos;Safari&apos;, &apos;15&apos;)]
|   220,000 | Discarding event because requestStart is out of order [(&apos;Safari&apos;, &apos;14&apos;)]
|   220,000 | Discarding event because requestStart is out of order [(&apos;Mobile_Safari&apos;, &apos;15_1&apos;)]
|   200,000 | Discarding event because responseEnd is out of order [(&apos;Mobile_Safari&apos;, &apos;14_1&apos;)]
|   150,000 | Discarding event because requestStart is out of order [(&apos;Safari&apos;, &apos;13&apos;)]
|   100,000 | Discarding event because responseEnd is out of order [(&apos;Safari&apos;, &apos;14&apos;)]
|   100,000 | Discarding event because requestStart is out of order [(&apos;Mobile_Safari&apos;, &apos;15_0&apos;)]
|   100,000 | Discarding event because requestStart is out of order [(&apos;Mobile_Safari&apos;, &apos;14_0&apos;)]
|    90,000 | Discarding event because requestStart is out of order [(&apos;Mobile_Safari&apos;, &apos;13_0&apos;)]
|    70,000 | Discarding event because connectStart is out of order [(&apos;Safari&apos;, &apos;15&apos;)]
|    50,000 | Discarding event because responseEnd is out of order [(&apos;Mobile_Safari&apos;, &apos;14_0&apos;)]
|    50,000 | Discarding event because responseEnd is out of order [(&apos;Safari&apos;, &apos;13&apos;)]
|    30,000 | Discarding event because responseEnd is out of order [(&apos;Mobile_Safari&apos;, &apos;13_0&apos;)]
|    30,000 | Discarding event because responseEnd is out of order [(&apos;Mobile_Safari&apos;, &apos;12_1&apos;)]
|    20,000 | Discarding event because requestStart is out of order [(&apos;Mobile_Safari&apos;, &apos;12_0&apos;)]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855739</commentid>
    <comment_count>7</comment_count>
      <attachid>455946</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-28 13:03:56 -0700</bug_when>
    <thetext>Created attachment 455946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855741</commentid>
    <comment_count>8</comment_count>
      <attachid>455946</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-03-28 13:07:30 -0700</bug_when>
    <thetext>Comment on attachment 455946
Patch

Why would this affect WKWebView but not Safari?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855743</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-28 13:13:41 -0700</bug_when>
    <thetext>I think in 2018 this was a bug about the WebView implementation having some issues, some of which I fixed last year.  I think in 2022 it&apos;s about one more remaining issue which affects Safari, WKWebView, WebView, and UIWebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855818</commentid>
    <comment_count>10</comment_count>
      <attachid>455946</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-03-28 15:57:32 -0700</bug_when>
    <thetext>Comment on attachment 455946
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=455946&amp;action=review

&gt; Source/WebCore/platform/network/cocoa/NetworkLoadMetrics.mm:57
&gt; +    // Sometimes in production responseStart is before requestStart, possibly due to clock updates. If this happens, use the later of the two.

I don&apos;t think &quot;in production&quot; adds anything here. Should we reference a radar?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856129</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 12:13:00 -0700</bug_when>
    <thetext>I&apos;ll reference rdar://90997689 instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856132</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 12:15:51 -0700</bug_when>
    <thetext>r292055</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856174</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 13:53:40 -0700</bug_when>
    <thetext>Reverted in r292066</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856176</commentid>
    <comment_count>14</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 13:55:46 -0700</bug_when>
    <thetext>r292067 on trunk</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>343438</attachid>
            <date>2018-06-23 09:37:52 -0700</date>
            <delta_ts>2018-06-23 09:42:28 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>pKVqPy.html</filename>
            <type>text/html</type>
            <size>1811</size>
            <attacher>krinklemail</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjwhLS0gc2F2ZWQgZnJvbSBodHRwczovL2NvZGVwZW4uaW8vS3Jpbmts
ZS9wZW4vcEtWcVB5IC0tPgo8aHRtbCBsYW5nPSJlbiI+PGhlYWQ+PG1ldGEgY2hhcnNldD0iVVRG
LTgiPgo8dGl0bGU+Q29kZVBlbiAtIFZhbGlkYXRlIE5hdmlnYXRpb24gVGltaW5nPC90aXRsZT4K
PHN0eWxlPgpwcmUgewoJdGV4dC1hbGlnbjogcmlnaHQ7Cgl3b3JkLWJyZWFrOiBicmVhay1hbGw7
Cgl3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Cn0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSB0cmFuc2xh
dGU9Im5vIj4KPHAgaWQ9Imstc3RhdCI+TG9hZGluZy4uLjwvcD4KPGRpdiBpZD0iay1vdXQiPjwv
ZGl2Pgo8c2NyaXB0Pgp2YXIgbmF2dGltaW5nX2tleXMgPSBbCgkidW5sb2FkRXZlbnRTdGFydCIs
CgkidW5sb2FkRXZlbnRFbmQiLAoJInJlZGlyZWN0U3RhcnQiLAoJInJlZGlyZWN0RW5kIiwKCSJm
ZXRjaFN0YXJ0IiwKCSJkb21haW5Mb29rdXBTdGFydCIsCgkiZG9tYWluTG9va3VwRW5kIiwKCSJj
b25uZWN0U3RhcnQiLAoJInNlY3VyZUNvbm5lY3Rpb25TdGFydCIsCgkiY29ubmVjdEVuZCIsCgki
cmVxdWVzdFN0YXJ0IiwKCSJyZXNwb25zZVN0YXJ0IiwKCSJyZXNwb25zZUVuZCIsCgkiZG9tSW50
ZXJhY3RpdmUiLAoJImRvbUNvbXBsZXRlIiwKCSJsb2FkRXZlbnRTdGFydCIsCgkibG9hZEV2ZW50
RW5kIgpdOwoKZnVuY3Rpb24gZHVtcEFsbCgpIHsKCXZhciBpLAoJCWtleSwKCQl2YWwsCgkJbm9k
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInByZSIpLAoJCW91dCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJrLW91dCIpOwoJZm9yIChpID0gMDsgaSA8IG5hdnRpbWluZ19rZXlzLmxlbmd0
aDsgaSsrKSB7CgkJa2V5ID0gbmF2dGltaW5nX2tleXNbaV07CgkJdmFsID0gcGVyZm9ybWFuY2Uu
dGltaW5nW2tleV07CgkJbm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
XG4iICsga2V5ICsgIjogIiArIHZhbCkpOwoJfQoJbm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiXG5cbiIgKyBuYXZpZ2F0b3IudXNlckFnZW50KSk7CglvdXQuYXBwZW5k
Q2hpbGQobm9kZSk7Cn0KZnVuY3Rpb24gY2hlY2soKSB7Cgl2YXIgaSwKCQlrZXksCgkJdmFsLAoJ
CW5vZGUsCgkJb3V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImstb3V0Iik7CglwcmV2ID0g
eyBrZXk6ICIiLCB2YWw6IDAgfTsKCWZvciAoaSA9IDA7IGkgPCBuYXZ0aW1pbmdfa2V5cy5sZW5n
dGg7IGkrKykgewoJCWtleSA9IG5hdnRpbWluZ19rZXlzW2ldOwoJCXZhbCA9IHBlcmZvcm1hbmNl
LnRpbWluZ1trZXldOwoJCWlmICh0eXBlb2YgdmFsID09PSAibnVtYmVyIiAmJiB2YWwgPiAwKSB7
CgkJCWlmICh2YWwgPCBwcmV2LnZhbCkgewoJCQkJbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImgzIik7CgkJCQlub2RlLnRleHRDb250ZW50ID0KCQkJCQkiS2V5ICIgKwoJCQkJCWtleSAr
CgkJCQkJIiAoIiArCgkJCQkJKHZhbCAtIHByZXYudmFsKSArCgkJCQkJIikgd2VudCBiYWNrd2Fy
ZHMgZnJvbSAiICsKCQkJCQlwcmV2LmtleTsKCQkJCW91dC5hcHBlbmRDaGlsZChub2RlKTsKCQkJ
CW5vZGUgPSBudWxsOwoJCQl9CgkJCXByZXYua2V5ID0ga2V5OwoJCQlwcmV2LnZhbCA9IHZhbDsK
CQl9Cgl9CgoJZHVtcEFsbCgpOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImstc3RhdCIpLnRl
eHRDb250ZW50ID0gIkRvbmUhIjsKfQoKd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewoJc2V0
VGltZW91dChjaGVjayk7Cn07Cjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>343439</attachid>
            <date>2018-06-23 09:43:14 -0700</date>
            <delta_ts>2018-06-23 09:43:14 -0700</delta_ts>
            <desc>Test case (response/request order)</desc>
            <filename>pKVqPy.html</filename>
            <type>text/html</type>
            <size>1771</size>
            <attacher>krinklemail</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjwhLS0gc2F2ZWQgZnJvbSBodHRwczovL2NvZGVwZW4uaW8vS3Jpbmts
ZS9wZW4vcEtWcVB5IC0tPgo8aHRtbCBsYW5nPSJlbiI+PGhlYWQ+PG1ldGEgY2hhcnNldD0iVVRG
LTgiPgo8dGl0bGU+Q29kZVBlbiAtIFZhbGlkYXRlIE5hdmlnYXRpb24gVGltaW5nPC90aXRsZT4K
PHN0eWxlPgpwcmUgewoJdGV4dC1hbGlnbjogcmlnaHQ7Cgl3b3JkLWJyZWFrOiBicmVhay1hbGw7
Cgl3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Cn0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keSB0cmFuc2xh
dGU9Im5vIj4KPHAgaWQ9Imstc3RhdCI+TG9hZGluZy4uLjwvcD4KPGRpdiBpZD0iay1vdXQiPjwv
ZGl2Pgo8c2NyaXB0Pgp2YXIgbmF2dGltaW5nX2tleXMgPSBbCgkicmVkaXJlY3RTdGFydCIsCgki
cmVkaXJlY3RFbmQiLAoJImZldGNoU3RhcnQiLAoJImRvbWFpbkxvb2t1cFN0YXJ0IiwKCSJkb21h
aW5Mb29rdXBFbmQiLAoJImNvbm5lY3RTdGFydCIsCgkic2VjdXJlQ29ubmVjdGlvblN0YXJ0IiwK
CSJjb25uZWN0RW5kIiwKCSJyZXF1ZXN0U3RhcnQiLAoJInJlc3BvbnNlU3RhcnQiLAoJInJlc3Bv
bnNlRW5kIiwKCSJkb21JbnRlcmFjdGl2ZSIsCgkiZG9tQ29tcGxldGUiLAoJImxvYWRFdmVudFN0
YXJ0IiwKCSJsb2FkRXZlbnRFbmQiCl07CgpmdW5jdGlvbiBkdW1wQWxsKCkgewoJdmFyIGksCgkJ
a2V5LAoJCXZhbCwKCQlub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIiksCgkJb3V0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImstb3V0Iik7Cglmb3IgKGkgPSAwOyBpIDwgbmF2
dGltaW5nX2tleXMubGVuZ3RoOyBpKyspIHsKCQlrZXkgPSBuYXZ0aW1pbmdfa2V5c1tpXTsKCQl2
YWwgPSBwZXJmb3JtYW5jZS50aW1pbmdba2V5XTsKCQlub2RlLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCJcbiIgKyBrZXkgKyAiOiAiICsgdmFsKSk7Cgl9Cglub2RlLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcblxuIiArIG5hdmlnYXRvci51c2VyQWdl
bnQpKTsKCW91dC5hcHBlbmRDaGlsZChub2RlKTsKfQpmdW5jdGlvbiBjaGVjaygpIHsKCXZhciBp
LAoJCWtleSwKCQl2YWwsCgkJbm9kZSwKCQlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ay1vdXQiKTsKCXByZXYgPSB7IGtleTogIiIsIHZhbDogMCB9OwoJZm9yIChpID0gMDsgaSA8IG5h
dnRpbWluZ19rZXlzLmxlbmd0aDsgaSsrKSB7CgkJa2V5ID0gbmF2dGltaW5nX2tleXNbaV07CgkJ
dmFsID0gcGVyZm9ybWFuY2UudGltaW5nW2tleV07CgkJaWYgKHR5cGVvZiB2YWwgPT09ICJudW1i
ZXIiICYmIHZhbCA+IDApIHsKCQkJaWYgKHZhbCA8IHByZXYudmFsKSB7CgkJCQlub2RlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaDMiKTsKCQkJCW5vZGUudGV4dENvbnRlbnQgPQoJCQkJCSJL
ZXkgIiArCgkJCQkJa2V5ICsKCQkJCQkiICgiICsKCQkJCQkodmFsIC0gcHJldi52YWwpICsKCQkJ
CQkiKSB3ZW50IGJhY2t3YXJkcyBmcm9tICIgKwoJCQkJCXByZXYua2V5OwoJCQkJb3V0LmFwcGVu
ZENoaWxkKG5vZGUpOwoJCQkJbm9kZSA9IG51bGw7CgkJCX0KCQkJcHJldi5rZXkgPSBrZXk7CgkJ
CXByZXYudmFsID0gdmFsOwoJCX0KCX0KCglkdW1wQWxsKCk7Cglkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiay1zdGF0IikudGV4dENvbnRlbnQgPSAiRG9uZSEiOwp9Cgp3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKSB7CglzZXRUaW1lb3V0KGNoZWNrKTsKfTsKPC9zY3JpcHQ+CjwvYm9keT48L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455946</attachid>
            <date>2022-03-28 13:03:56 -0700</date>
            <delta_ts>2022-03-29 00:48:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186919-20220328130356.patch</filename>
            <type>text/plain</type>
            <size>4199</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2JjODUyYzJkY2Q2YjA1
NDI2MmE3MzQ4YzlhN2UyNmNkNzVjMWMxYS4uNjg1MWIxNDM3NDQ2OTAxMjE5MmI2M2FkNjE3Mjgy
ZWUzMTE0MzEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAzLTI4ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTmF2aWdh
dGlvbiBUaW1pbmcgZGF0YSBpcyBjb3JydXB0IGluIFdlYlZpZXcgKFVJV2ViVmlldy9XS1dlYlZp
ZXcpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY5
MTkKKyAgICAgICAgPHJkYXI6Ly80MTM5MzQyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTb21ldGltZXMgdGhlIG9ic2VydmVkIHJlcXVlc3RTdGFy
dCB0aW1lIGlzIGFmdGVyIHRoZSBvYnNlcnZlZCByZXNwb25zZVN0YXJ0IHRpbWUuCisgICAgICAg
IFRoaXMgbWF5IGJlIGR1ZSB0byB0aGUgZGV2aWNlJ3MgY2xvY2sgY2hhbmdpbmcuICBJdCBtYXkg
YmUgZHVlIHRvIHNvbWV0aGluZyBlbHNlLAorICAgICAgICBidXQgY3VycmVudGx5IENGTmV0d29y
ayBkb2VzIG5vdCB1c2UgYSBtb25vdG9uaWMgdGltZXIgdG8gZ2F0aGVyIHRoZSBkYXRhLgorICAg
ICAgICBXaGVuIHRoaXMgaGFwcGVucywgdXNlIHRoZSBsYXRlciBvZiB0aGUgdHdvIHRpbWVzIGZv
ciByZXNwb25zZVN0YXJ0LgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3
b3JrTG9hZE1ldHJpY3MubW06CisgICAgICAgIChXZWJDb3JlOjpwYWNrYWdlVGltaW5nRGF0YSk6
CisKIDIwMjItMDMtMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgRW5hYmxlIFBHTyB3aGVuIGJ1aWxkaW5nIGZvciByZWxlYXNlIGFuZCBwcm9kdWN0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDU1NGFjZTkyODBmYmE0N2ZkMWNlYmJkYTg1MTUyODk2YmZiMmJkODAu
LmFjZWI3YWQxYTJmNTQyNzgyOGVjMTI2YjZmZmEyYWYxYTMwNzk0YzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMjItMDMtMjggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBOYXZpZ2F0aW9uIFRpbWluZyBkYXRhIGlzIGNvcnJ1cHQg
aW4gV2ViVmlldyAoVUlXZWJWaWV3L1dLV2ViVmlldykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjkxOQorICAgICAgICA8cmRhcjovLzQxMzkzNDIz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1bV0tO
ZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVSTFNlc3Npb246dGFzazpkaWRGaW5pc2hDb2xsZWN0aW5n
TWV0cmljczpdKToKKwogMjAyMi0wMy0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgUEdPIHdoZW4gYnVpbGRpbmcgZm9yIHJlbGVhc2Ug
YW5kIHByb2R1Y3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvTmV0d29ya0xvYWRNZXRyaWNzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrTG9hZE1ldHJpY3MubW0KaW5kZXggNjMxMmUwNjg0Mjk3YjQz
YzMzMTFlNDczOWI2ODFhYjQ0NWMzMzY3Mi4uMzdkNWM5OGVkODk2YjE2MjE4NGQ2Y2ZlNWVmYTkz
OWU4YjRiNDA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9OZXR3b3JrTG9hZE1ldHJpY3MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrTG9hZE1ldHJpY3MubW0KQEAgLTU0LDcgKzU0LDggQEAgc3Rh
dGljIEJveDxOZXR3b3JrTG9hZE1ldHJpY3M+IHBhY2thZ2VUaW1pbmdEYXRhKE1vbm90b25pY1Rp
bWUgcmVkaXJlY3RTdGFydCwgTlMKICAgICAgICAgdGltaW5nLT5zZWN1cmVDb25uZWN0aW9uU3Rh
cnQgPSBkYXRlVG9Nb25vdG9uaWNUaW1lKHNlY3VyZUNvbm5lY3Rpb25TdGFydCk7CiAgICAgdGlt
aW5nLT5jb25uZWN0RW5kID0gZGF0ZVRvTW9ub3RvbmljVGltZShjb25uZWN0RW5kKTsKICAgICB0
aW1pbmctPnJlcXVlc3RTdGFydCA9IGRhdGVUb01vbm90b25pY1RpbWUocmVxdWVzdFN0YXJ0KTsK
LSAgICB0aW1pbmctPnJlc3BvbnNlU3RhcnQgPSBkYXRlVG9Nb25vdG9uaWNUaW1lKHJlc3BvbnNl
U3RhcnQpOworICAgIC8vIFNvbWV0aW1lcyBpbiBwcm9kdWN0aW9uIHJlc3BvbnNlU3RhcnQgaXMg
YmVmb3JlIHJlcXVlc3RTdGFydCwgcG9zc2libHkgZHVlIHRvIGNsb2NrIHVwZGF0ZXMuIElmIHRo
aXMgaGFwcGVucywgdXNlIHRoZSBsYXRlciBvZiB0aGUgdHdvLgorICAgIHRpbWluZy0+cmVzcG9u
c2VTdGFydCA9IHN0ZDo6bWF4KHRpbWluZy0+cmVxdWVzdFN0YXJ0LCBkYXRlVG9Nb25vdG9uaWNU
aW1lKHJlc3BvbnNlU3RhcnQpKTsKICAgICB0aW1pbmctPnJlZGlyZWN0Q291bnQgPSByZWRpcmVj
dENvdW50OwogICAgIHRpbWluZy0+ZmFpbHNUQU9DaGVjayA9IGZhaWxzVEFPQ2hlY2s7CiAgICAg
dGltaW5nLT5oYXNDcm9zc09yaWdpblJlZGlyZWN0ID0gaGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5tbQppbmRleCAzYWI0YTcwNTFhNWFmZTM2OGY5ZGQ1MGE4OWY4YWQ0ZDEx
N2ZjMzU1Li5jMTI3OWJlMTAzY2RmNzcyNDNjMjkwYzk0ZDgyMzdlNGFkY2E2MGIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLm1tCkBAIC04MzcsNyArODM3LDggQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgICAgICAgICBuZXR3b3JrTG9hZE1ldHJpY3Muc2VjdXJlQ29ubmVjdGlv
blN0YXJ0ID0gZGF0ZVRvTW9ub3RvbmljVGltZShtLnNlY3VyZUNvbm5lY3Rpb25TdGFydERhdGUp
OwogICAgICAgICBuZXR3b3JrTG9hZE1ldHJpY3MuY29ubmVjdEVuZCA9IGRhdGVUb01vbm90b25p
Y1RpbWUobS5jb25uZWN0RW5kRGF0ZSk7CiAgICAgICAgIG5ldHdvcmtMb2FkTWV0cmljcy5yZXF1
ZXN0U3RhcnQgPSBkYXRlVG9Nb25vdG9uaWNUaW1lKG0ucmVxdWVzdFN0YXJ0RGF0ZSk7Ci0gICAg
ICAgIG5ldHdvcmtMb2FkTWV0cmljcy5yZXNwb25zZVN0YXJ0ID0gZGF0ZVRvTW9ub3RvbmljVGlt
ZShtLnJlc3BvbnNlU3RhcnREYXRlKTsKKyAgICAgICAgLy8gU29tZXRpbWVzIGluIHByb2R1Y3Rp
b24gcmVzcG9uc2VTdGFydCBpcyBiZWZvcmUgcmVxdWVzdFN0YXJ0LCBwb3NzaWJseSBkdWUgdG8g
Y2xvY2sgdXBkYXRlcy4gSWYgdGhpcyBoYXBwZW5zLCB1c2UgdGhlIGxhdGVyIG9mIHRoZSB0d28u
CisgICAgICAgIG5ldHdvcmtMb2FkTWV0cmljcy5yZXNwb25zZVN0YXJ0ID0gc3RkOjptYXgobmV0
d29ya0xvYWRNZXRyaWNzLnJlcXVlc3RTdGFydCwgZGF0ZVRvTW9ub3RvbmljVGltZShtLnJlc3Bv
bnNlU3RhcnREYXRlKSk7CiAgICAgICAgIG5ldHdvcmtMb2FkTWV0cmljcy5yZXNwb25zZUVuZCA9
IGRhdGVUb01vbm90b25pY1RpbWUobS5yZXNwb25zZUVuZERhdGUpOwogICAgICAgICBuZXR3b3Jr
TG9hZE1ldHJpY3MubWFya0NvbXBsZXRlKCk7CiAgICAgICAgIG5ldHdvcmtMb2FkTWV0cmljcy5y
ZWRpcmVjdENvdW50ID0gbWV0cmljcy5yZWRpcmVjdENvdW50Owo=
</data>
<flag name="review"
          id="484092"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="484160"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>