<?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>52216</bug_id>
          
          <creation_ts>2011-01-11 08:46:11 -0800</creation_ts>
          <short_desc>GeolocationController should call stopUpdating on destruction</short_desc>
          <delta_ts>2011-01-17 04:22:23 -0800</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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="John Knottenbelt">jknotten</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andreip</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jorlow</cc>
    
    <cc>sam</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>332363</commentid>
    <comment_count>0</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-01-11 08:46:11 -0800</bug_when>
    <thetext>The GeolocationController calls stopUpdating on its client when the last observer (Geolocation object) removes itself. However, it is possible for the Geolocation objects to survive the controller. This is because the GeolocationController is owned by Page, and the Geolocation objects are owned by Frame (indirectly, via DOMWindow, Navigator). http://code.google.com/p/chromium/issues/detail?id=69069 shows a situation where the Page is destroyed, but the Frame is not destroyed because its reference count does not fall to 0. 

If the client is sending position updates, we should tell it to to stop when the GeolocationController is destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332365</commentid>
    <comment_count>1</comment_count>
      <attachid>78535</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-01-11 08:49:43 -0800</bug_when>
    <thetext>Created attachment 78535
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332422</commentid>
    <comment_count>2</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2011-01-11 10:09:30 -0800</bug_when>
    <thetext>I think you should add a layout test for this. Would creating a watch and immediately closing the window do the trick?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332503</commentid>
    <comment_count>3</comment_count>
      <attachid>78535</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-11 11:50:59 -0800</bug_when>
    <thetext>Comment on attachment 78535
Patch

How do we test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333098</commentid>
    <comment_count>4</comment_count>
      <attachid>78695</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-01-12 08:28:50 -0800</bug_when>
    <thetext>Created attachment 78695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333099</commentid>
    <comment_count>5</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-01-12 08:45:10 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=78695) [details]
&gt; Patch

The patch adds a layout test to ensure that the corresponding assertion in the WebCore::GeolocationClientMock is executed. The test creates a geolocation watch in a separate window, and then closes that window and waits for the close to complete. If the watch is still updating at the time GeolocationClientMock::geolocationDestroyed() is invoked, the assertion will fail. 

The shutdown code in DumpRenderTree WebViewHost::~WebViewHost includes a navigation to &quot;about:blank&quot; before invoking WebWidget::close. This ensures that the watches are detached (and consequently the GeolocationClient will stop updating) before the GeolocationController is destroyed. 

Without the navigation to about:blank, the test crashes on the assertion, analogously to http://code.google.com/p/chromium/issues/detail?id=69069. 

The test is therefore adding coverage to ensure that future changes to WebKit maintains the assertion that the GeolocationClient is not updating when the GeolocationController is destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333120</commentid>
    <comment_count>6</comment_count>
      <attachid>78695</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-01-12 09:28:54 -0800</bug_when>
    <thetext>Comment on attachment 78695
Patch

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

&gt; LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js:12
&gt; +    debug(&apos;This test can not be run without the LayoutTestController&apos;);

testFailed

&gt; LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js:15
&gt; +  debug(&quot;Received Geoposition.&quot;);

testPassed

&gt; LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js:17
&gt; +  window.setTimeout(waitForWindowToClose, 1);

Why 1?   Only use 0 to keep things more deterministic.

&gt; LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js:22
&gt; +    window.setTimeout(waitForWindowToClose, 1);

ditto

&gt; LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js:25
&gt; +  debug(&quot;Success - no crash!&quot;);

testPassed

&gt; LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js:30
&gt; +  debug(&quot;Failed to create watch: &quot; + e);

Use the function that prints it out in red text and suhc.....testFialed maybe?

&gt; Tools/DumpRenderTree/chromium/LayoutTestController.cpp:1545
&gt; +        windowList[i]-&gt;geolocationClientMock()-&gt;setError(arguments[0].toInt32(), cppVariantToWebString(arguments[1]));

Will this work as expected?  For example, if one window sets one thing and another sets another thing, only the last one wins.

Should this be a per-window thing?  Can it be?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333693</commentid>
    <comment_count>7</comment_count>
      <attachid>78810</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-01-13 08:15:49 -0800</bug_when>
    <thetext>Created attachment 78810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334232</commentid>
    <comment_count>8</comment_count>
      <attachid>78810</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-01-14 03:46:21 -0800</bug_when>
    <thetext>Comment on attachment 78810
Patch

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

&gt; LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js:30
&gt; +  testFailed(&quot;Failed to create watch: &quot; + e);

Use webkit style in this file

&gt; Tools/DumpRenderTree/chromium/LayoutTestController.cpp:1526
&gt; +    for (size_t i = 0; i &lt; windowList.size(); i++)

Do these changes need to be made to other DRTs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334274</commentid>
    <comment_count>9</comment_count>
      <attachid>78936</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2011-01-14 06:14:50 -0800</bug_when>
    <thetext>Created attachment 78936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334276</commentid>
    <comment_count>10</comment_count>
      <attachid>78936</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2011-01-14 06:19:24 -0800</bug_when>
    <thetext>Comment on attachment 78936
Patch

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

r=me

&gt; LayoutTests/platform/gtk/Skipped:4919
&gt; +fast/dom/Geolocation/window-close-crash.html

Just skip the whole directory

&gt; LayoutTests/platform/mac-wk2/Skipped:1578
&gt; +fast/dom/Geolocation/window-close-crash.html

Just skip the whole directory

&gt; LayoutTests/platform/qt-wk2/Skipped:1740
&gt; +fast/dom/Geolocation/window-close-crash.html

Just skip the whole directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335209</commentid>
    <comment_count>11</comment_count>
      <attachid>78936</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-17 01:45:57 -0800</bug_when>
    <thetext>Comment on attachment 78936
Patch

Rejecting attachment 78936 from commit-queue.

jknotten@chromium.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335243</commentid>
    <comment_count>12</comment_count>
      <attachid>78936</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-17 04:22:18 -0800</bug_when>
    <thetext>Comment on attachment 78936
Patch

Clearing flags on attachment: 78936

Committed r75934: &lt;http://trac.webkit.org/changeset/75934&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335244</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-17 04:22:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78535</attachid>
            <date>2011-01-11 08:49:43 -0800</date>
            <delta_ts>2011-01-12 08:28:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52216-20110111164941.patch</filename>
            <type>text/plain</type>
            <size>1380</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZTUzNTA1ZGQ4YTYzY2E5ZTA5MjFiYTBmZDM0ODcyMjc5MDJiMmVlLi4x
OTQ2Yjk3YTY2MDNiMjYyYjJkMWZkYzM1OTdiNzljMjVjYmQ2NmFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTEtMDEtMTEgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgR2VvbG9jYXRpb25Db250cm9sbGVyIHNob3VsZCBjYWxsIHN0b3BVcGRhdGluZyBvbiBkZXN0
cnVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTIyMTYKKworICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6fkdlb2xvY2F0aW9uQ29udHJvbGxl
cik6CisKIDIwMTAtMTAtMTAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2Vv
bG9jYXRpb25Db250cm9sbGVyLmNwcAppbmRleCAyOGQ1MjJkOTYwNDc0ZTY5OWY4YzE3OTllNTkx
Y2RlYzQ1YzU2YjExLi43NjRiOTEzM2QwZDMyYmYxYTE4MDM0Yzc1YjU3NjVlYWY0NzZlMDA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC00
MSw4ICs0MSwxMiBAQCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6Okdlb2xvY2F0aW9uQ29udHJvbGxl
cihQYWdlKiBwYWdlLCBHZW9sb2NhdGlvbkNsaWVudCogY2xpZQogCiBHZW9sb2NhdGlvbkNvbnRy
b2xsZXI6On5HZW9sb2NhdGlvbkNvbnRyb2xsZXIoKQogewotICAgIGlmIChtX2NsaWVudCkKKyAg
ICBpZiAobV9jbGllbnQpIHsKKyAgICAgICAgaWYgKCFtX29ic2VydmVycy5pc0VtcHR5KCkpCisg
ICAgICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7CisKICAgICAgICAgbV9jbGllbnQt
Pmdlb2xvY2F0aW9uRGVzdHJveWVkKCk7CisgICAgfQogfQogCiB2b2lkIEdlb2xvY2F0aW9uQ29u
dHJvbGxlcjo6YWRkT2JzZXJ2ZXIoR2VvbG9jYXRpb24qIG9ic2VydmVyLCBib29sIGVuYWJsZUhp
Z2hBY2N1cmFjeSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78695</attachid>
            <date>2011-01-12 08:28:50 -0800</date>
            <delta_ts>2011-01-13 08:15:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52216-20110112162848.patch</filename>
            <type>text/plain</type>
            <size>10948</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMjY2MTEyNmIyMTk1MGVlYTE2YzY1MTA1ODA3YzI0MDdkYTk0MTUwLi43YmM5Nzhh
NjJlN2MwNDI0YzNmYWFkNDI3MGYxMDRjNDRiOWIyZDNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTEtMDEtMTIgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2VvbG9jYXRp
b25Db250cm9sbGVyIHNob3VsZCBjYWxsIHN0b3BVcGRhdGluZyBvbiBkZXN0cnVjdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIyMTYKKworICAg
ICAgICBmYXN0L2RvbS93aW5kb3ctY2xvc2UtY3Jhc2guaHRtbCB0ZXN0cyB0aGF0IHdlIGRvIG5v
dCBmYWlsIHRoZQorICAgICAgICBhc3NlcnRpb24gaW4gdGhlIG1vY2sgR2VvbG9jYXRpb25DbGll
bnQgdGhhdCB0aGUgR2VvbG9jYXRpb25DbGllbnQKKyAgICAgICAgaXMgbm90IHVwZGF0aW5nIHdo
ZW4gdGhlIEdlb2xvY2F0aW9uQ29udHJvbGxlciBpcyBkZXN0cm95ZWQuCisKKyAgICAgICAgKiBm
YXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvd2luZG93LWNsb3NlLXBvcHVwLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy93aW5kb3ct
Y2xvc2UtY3Jhc2guanM6IEFkZGVkLgorICAgICAgICAoZ290UG9zaXRpb24pOgorICAgICAgICAo
d2FpdEZvcldpbmRvd1RvQ2xvc2UpOgorICAgICAgICAoZmFpbGVkVG9DcmVhdGVXYXRjaCk6Cisg
ICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNsb3NlLWNyYXNoLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNsb3Nl
LWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDExLTAxLTEwICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhh
aXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gdGVzdCBleHBl
Y3RhdGlvbnMgdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9j
YXRpb24vcmVzb3VyY2VzL3dpbmRvdy1jbG9zZS1wb3B1cC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL3dpbmRvdy1jbG9zZS1wb3B1cC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNmZWFiYWVmODA5MDVjNTcwZjQ4NmYxYzg5ZDQ1ZDY3YTBkYTBiYTUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvd2lu
ZG93LWNsb3NlLXBvcHVwLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPHNjcmlwdD4KK3ZhciBtb2Nr
TGF0aXR1ZGUgPSA1MS40Nzg7Cit2YXIgbW9ja0xvbmdpdHVkZSA9IC0wLjE2NjsKK3ZhciBtb2Nr
QWNjdXJhY3kgPSAxMDAuMDsKKworZnVuY3Rpb24gbG9hZE5leHQoKSB7CisgICAgdmFyIGdlb2xv
Y2F0aW9uID0gbmF2aWdhdG9yLmdlb2xvY2F0aW9uOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEdlb2xvY2F0
aW9uUGVybWlzc2lvbih0cnVlKTsKKyAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvbihtb2NrTGF0aXR1ZGUsIG1vY2tMb25naXR1ZGUsIG1vY2tBY2N1
cmFjeSk7CisgICAgfQorCisgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLndhdGNoUG9zaXRpb24o
CisgICAgICAgZnVuY3Rpb24ocCkgeyB3aW5kb3cub3BlbmVyLmdvdFBvc2l0aW9uKCk7IH0sCisg
ICAgICAgZnVuY3Rpb24oZSkgeyB3aW5kb3cub3BlbmVyLmZhaWxlZFRvQ3JlYXRlV2F0Y2goZSk7
IH0pOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWROZXh0KCkiPjwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy93
aW5kb3ctY2xvc2UtY3Jhc2guanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9z
Y3JpcHQtdGVzdHMvd2luZG93LWNsb3NlLWNyYXNoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkMjMxZGViMDFi
NjcwMmUxZWYwMjBjZDNlYjUyNmFjODc0YTc1NGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvd2luZG93LWNsb3NlLWNyYXNo
LmpzCkBAIC0wLDAgKzEsMzggQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYXNzZXJ0aW9uIHRo
YXQgdGhlIEdlb2xvY2F0aW9uQ2xpZW50IHNob3VsZCBub3QgYmUgdXBkYXRpbmc8YnI+IiArCisg
ICAgICAgICAgICAid2hlbiB0aGUgR2VvbG9jYXRpb25Db250cm9sbGVyIGlzIGRlc3Ryb3llZC48
YnI+IiArCisgICAgICAgICAgICAiU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01MjIxNiIpOworCit2YXIgb3RoZXJXaW5kb3c7CisKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUo
dHJ1ZSk7Cit9IGVsc2UKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhv
dXQgdGhlIExheW91dFRlc3RDb250cm9sbGVyJyk7CisKK2Z1bmN0aW9uIGdvdFBvc2l0aW9uKHAp
IHsKKyAgZGVidWcoIlJlY2VpdmVkIEdlb3Bvc2l0aW9uLiIpOworICBvdGhlcldpbmRvdy5jbG9z
ZSgpOworICB3aW5kb3cuc2V0VGltZW91dCh3YWl0Rm9yV2luZG93VG9DbG9zZSwgMSk7Cit9CisK
K2Z1bmN0aW9uIHdhaXRGb3JXaW5kb3dUb0Nsb3NlKCkgeworICBpZiAoIW90aGVyV2luZG93LmNs
b3NlZCkgeworICAgIHdpbmRvdy5zZXRUaW1lb3V0KHdhaXRGb3JXaW5kb3dUb0Nsb3NlLCAxKTsK
KyAgICByZXR1cm47CisgIH0KKyAgZGVidWcoIlN1Y2Nlc3MgLSBubyBjcmFzaCEiKTsKKyAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGZhaWxlZFRvQ3JlYXRlV2F0Y2goZSkgeworICBk
ZWJ1ZygiRmFpbGVkIHRvIGNyZWF0ZSB3YXRjaDogIiArIGUpOworICBmaW5pc2hKU1Rlc3QoKTsK
K30KKworZGVidWcoIk1haW4gcGFnZSBvcGVuaW5nIHJlc291cmNlcy93aW5kb3ctY2xvc2UtcG9w
dXAuaHRtbCIpOworb3RoZXJXaW5kb3cgPSB3aW5kb3cub3BlbigicmVzb3VyY2VzL3dpbmRvdy1j
bG9zZS1wb3B1cC5odG1sIik7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRv
dy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNsb3NlLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3dpbmRvdy1jbG9zZS1jcmFzaC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGZiMTA0NzI3NzY2MTQ3ZDA5ZTZhZTdlOTlmNGJiN2MyZDRmOTVkNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3dpbmRv
dy1jbG9zZS1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgdGhlIGFz
c2VydGlvbiB0aGF0IHRoZSBHZW9sb2NhdGlvbkNsaWVudCBzaG91bGQgbm90IGJlIHVwZGF0aW5n
Cit3aGVuIHRoZSBHZW9sb2NhdGlvbkNvbnRyb2xsZXIgaXMgZGVzdHJveWVkLgorU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjIxNgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworTWFpbiBwYWdlIG9wZW5pbmcgcmVzb3VyY2VzL3dpbmRvdy1jbG9z
ZS1wb3B1cC5odG1sCitSZWNlaXZlZCBHZW9wb3NpdGlvbi4KK1N1Y2Nlc3MgLSBubyBjcmFzaCEK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi93aW5kb3ctY2xvc2UtY3Jh
c2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3dpbmRvdy1jbG9zZS1j
cmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjMjM2OTJjYzhiZTAzZDgwYTZhZTE1YTFkMDI2ZGFlOWNl
NmQ2ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlv
bi93aW5kb3ctY2xvc2UtY3Jhc2guaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3dpbmRvdy1jbG9z
ZS1jcmFzaC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWU1MzUwNWRkOGE2M2NhOWUwOTIxYmEwZmQzNDg3MjI3OTAyYjJlZS4uNTkzZTUyYzMxODk1ZmQ1
OWE3OWY3MDg1NmNmMjg3ZDkyMWYzZWUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDExLTAxLTEyICBKb2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdlb2xvY2F0aW9u
Q29udHJvbGxlciBzaG91bGQgY2FsbCBzdG9wVXBkYXRpbmcgb24gZGVzdHJ1Y3Rpb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjE2CisKKyAgICAg
ICAgVGVzdDogZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNsb3NlLWNyYXNoLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6fkdlb2xvY2F0aW9uQ29udHJvbGxlcik6CisKIDIw
MTAtMTAtMTAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2Vv
bG9jYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25D
b250cm9sbGVyLmNwcAppbmRleCAyOGQ1MjJkOTYwNDc0ZTY5OWY4YzE3OTllNTkxY2RlYzQ1YzU2
YjExLi43NjRiOTEzM2QwZDMyYmYxYTE4MDM0Yzc1YjU3NjVlYWY0NzZlMDA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC00MSw4ICs0MSwx
MiBAQCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6Okdlb2xvY2F0aW9uQ29udHJvbGxlcihQYWdlKiBw
YWdlLCBHZW9sb2NhdGlvbkNsaWVudCogY2xpZQogCiBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6On5H
ZW9sb2NhdGlvbkNvbnRyb2xsZXIoKQogewotICAgIGlmIChtX2NsaWVudCkKKyAgICBpZiAobV9j
bGllbnQpIHsKKyAgICAgICAgaWYgKCFtX29ic2VydmVycy5pc0VtcHR5KCkpCisgICAgICAgICAg
ICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7CisKICAgICAgICAgbV9jbGllbnQtPmdlb2xvY2F0
aW9uRGVzdHJveWVkKCk7CisgICAgfQogfQogCiB2b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6
YWRkT2JzZXJ2ZXIoR2VvbG9jYXRpb24qIG9ic2VydmVyLCBib29sIGVuYWJsZUhpZ2hBY2N1cmFj
eSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0
YzllNTA2MmE2ZGUyMTMxMWVlYTJkMDRlY2VmZTQ0YTQ5ZGEzODc0Li5jOWYzNTliMTYyMzlhMDAx
NzRhZGI0NTU1YWQ1YTg4M2RhY2I2YjA5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDEtMTIgIEpvaG4gS25v
dHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyIHNob3VsZCBj
YWxsIHN0b3BVcGRhdGluZyBvbiBkZXN0cnVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIyMTYKKworICAgICAgICBmYXN0L2RvbS9HZW9sb2Nh
dGlvbi93aW5kb3ctY2xvc2UtY3Jhc2guaHRtbCByZXF1aXJlcyB0aGF0IGEKKyAgICAgICAgR2Vv
bG9jYXRpb24gd2F0Y2ggYmUgc3RhcnRlZCBpbiBhIHNlY29uZGFyeSB3aW5kb3cuIENvbnNlcXVl
bnRseSwKKyAgICAgICAgd2UgbmVlZCB0byBhbGxvdyBnZW9sb2NhdGlvbiBwZXJtaXNzaW9uIGFu
ZCBwcm92aWRlIGEgbW9jaworICAgICAgICBnZW9sb2NhdGlvbiBwb3NpdGlvbiBmb3IgdGhlIHNl
Y29uZGFyeSB3aW5kb3cncworICAgICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2suCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKToK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlv
bik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJy
b3IpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oOgorICAg
ICAgICAoVGVzdFNoZWxsOjp3aW5kb3dMaXN0KToKKwogMjAxMS0wMS0xMCAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjc1NDY0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDBiMmNmYzlhZTQwODZlZmExMzMxYmI4
ZTRiYmNlOThkMmFjNzczNzkuLjRkMzYzNjBiMjQ4NjFlODQ1OGQ1YzU3OTZlZjBmODY2MjU3YmNi
MWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKQEAgLTE1MjAsNyArMTUyMCw5IEBAIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkg
PCAxIHx8ICFhcmd1bWVudHNbMF0uaXNCb29sKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3No
ZWxsLT53ZWJWaWV3SG9zdCgpLT5nZW9sb2NhdGlvbkNsaWVudE1vY2soKS0+c2V0UGVybWlzc2lv
bihhcmd1bWVudHNbMF0udG9Cb29sZWFuKCkpOworICAgIFZlY3RvcjxXZWJWaWV3SG9zdCo+IHdp
bmRvd0xpc3QgPSBtX3NoZWxsLT53aW5kb3dMaXN0KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB3aW5kb3dMaXN0LnNpemUoKTsgaSsrKQorICAgICAgICB3aW5kb3dMaXN0W2ldLT5nZW9s
b2NhdGlvbkNsaWVudE1vY2soKS0+c2V0UGVybWlzc2lvbihhcmd1bWVudHNbMF0udG9Cb29sZWFu
KCkpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvbihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVz
dWx0KQpAQCAtMTUyOCw3ICsxNTMwLDkgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmcKICAgICBy
ZXN1bHQtPnNldE51bGwoKTsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDMgfHwgIWFyZ3Vt
ZW50c1swXS5pc051bWJlcigpIHx8ICFhcmd1bWVudHNbMV0uaXNOdW1iZXIoKSB8fCAhYXJndW1l
bnRzWzJdLmlzTnVtYmVyKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3NoZWxsLT53ZWJWaWV3
SG9zdCgpLT5nZW9sb2NhdGlvbkNsaWVudE1vY2soKS0+c2V0UG9zaXRpb24oYXJndW1lbnRzWzBd
LnRvRG91YmxlKCksIGFyZ3VtZW50c1sxXS50b0RvdWJsZSgpLCBhcmd1bWVudHNbMl0udG9Eb3Vi
bGUoKSk7CisgICAgVmVjdG9yPFdlYlZpZXdIb3N0Kj4gd2luZG93TGlzdCA9IG1fc2hlbGwtPndp
bmRvd0xpc3QoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdpbmRvd0xpc3Quc2l6ZSgp
OyBpKyspCisgICAgICAgIHdpbmRvd0xpc3RbaV0tPmdlb2xvY2F0aW9uQ2xpZW50TW9jaygpLT5z
ZXRQb3NpdGlvbihhcmd1bWVudHNbMF0udG9Eb3VibGUoKSwgYXJndW1lbnRzWzFdLnRvRG91Ymxl
KCksIGFyZ3VtZW50c1syXS50b0RvdWJsZSgpKTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKQEAgLTE1MzYsNyArMTU0MCw5IEBAIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndW1lCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiAgICAgaWYgKGFyZ3VtZW50
cy5zaXplKCkgPCAyIHx8ICFhcmd1bWVudHNbMF0uaXNOdW1iZXIoKSB8fCAhYXJndW1lbnRzWzFd
LmlzU3RyaW5nKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3NoZWxsLT53ZWJWaWV3SG9zdCgp
LT5nZW9sb2NhdGlvbkNsaWVudE1vY2soKS0+c2V0RXJyb3IoYXJndW1lbnRzWzBdLnRvSW50MzIo
KSwgY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1sxXSkpOworICAgIFZlY3RvcjxXZWJW
aWV3SG9zdCo+IHdpbmRvd0xpc3QgPSBtX3NoZWxsLT53aW5kb3dMaXN0KCk7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB3aW5kb3dMaXN0LnNpemUoKTsgaSsrKQorICAgICAgICB3aW5kb3dM
aXN0W2ldLT5nZW9sb2NhdGlvbkNsaWVudE1vY2soKS0+c2V0RXJyb3IoYXJndW1lbnRzWzBdLnRv
SW50MzIoKSwgY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1sxXSkpOwogfQogCiB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjphYm9ydE1vZGFsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYg
YXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RTaGVsbC5oCmluZGV4IDQ4NmY5ZWE4YTcwNDY1YjU3ZTRlNTIxODcyYmIyYjdmMTVj
MjUzMGYuLmVmOWJlN2ZjNDJlNWM0NmNiOWYzNzkxNzNiMGE4NWE0ODJlOWU1NmMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCkBAIC0xNjYsNiArMTY2LDkgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGludCB2aXJ0dWFsV2luZG93Qm9yZGVyID0gMzsK
IAorICAgIHR5cGVkZWYgVmVjdG9yPFdlYlZpZXdIb3N0Kj4gV2luZG93TGlzdDsKKyAgICBXaW5k
b3dMaXN0IHdpbmRvd0xpc3QoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd0xpc3Q7IH0KKwogcHJp
dmF0ZToKICAgICBXZWJWaWV3SG9zdCogY3JlYXRlTmV3V2luZG93KGNvbnN0IFdlYktpdDo6V2Vi
VVJMJiwgRFJURGV2VG9vbHNBZ2VudCopOwogICAgIHZvaWQgY3JlYXRlTWFpbldpbmRvdygpOwpA
QCAtMjA3LDcgKzIxMCw2IEBAIHByaXZhdGU6CiAKICAgICAvLyBMaXN0IG9mIGFsbCB3aW5kb3dz
IGluIHRoaXMgcHJvY2Vzcy4KICAgICAvLyBUaGUgbWFpbiB3aW5kb3cgc2hvdWxkIGJlIHB1dCBp
bnRvIHdpbmRvd0xpc3RbMF0uCi0gICAgdHlwZWRlZiBWZWN0b3I8V2ViVmlld0hvc3QqPiBXaW5k
b3dMaXN0OwogICAgIFdpbmRvd0xpc3QgbV93aW5kb3dMaXN0OwogCiAjaWYgZGVmaW5lZChPU19X
SU4pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78810</attachid>
            <date>2011-01-13 08:15:49 -0800</date>
            <delta_ts>2011-01-14 06:14:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52216-20110113161547.patch</filename>
            <type>text/plain</type>
            <size>11343</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMjY2MTEyNmIyMTk1MGVlYTE2YzY1MTA1ODA3YzI0MDdkYTk0MTUwLi43YmM5Nzhh
NjJlN2MwNDI0YzNmYWFkNDI3MGYxMDRjNDRiOWIyZDNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTEtMDEtMTIgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2VvbG9jYXRp
b25Db250cm9sbGVyIHNob3VsZCBjYWxsIHN0b3BVcGRhdGluZyBvbiBkZXN0cnVjdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIyMTYKKworICAg
ICAgICBmYXN0L2RvbS93aW5kb3ctY2xvc2UtY3Jhc2guaHRtbCB0ZXN0cyB0aGF0IHdlIGRvIG5v
dCBmYWlsIHRoZQorICAgICAgICBhc3NlcnRpb24gaW4gdGhlIG1vY2sgR2VvbG9jYXRpb25DbGll
bnQgdGhhdCB0aGUgR2VvbG9jYXRpb25DbGllbnQKKyAgICAgICAgaXMgbm90IHVwZGF0aW5nIHdo
ZW4gdGhlIEdlb2xvY2F0aW9uQ29udHJvbGxlciBpcyBkZXN0cm95ZWQuCisKKyAgICAgICAgKiBm
YXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvd2luZG93LWNsb3NlLXBvcHVwLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy93aW5kb3ct
Y2xvc2UtY3Jhc2guanM6IEFkZGVkLgorICAgICAgICAoZ290UG9zaXRpb24pOgorICAgICAgICAo
d2FpdEZvcldpbmRvd1RvQ2xvc2UpOgorICAgICAgICAoZmFpbGVkVG9DcmVhdGVXYXRjaCk6Cisg
ICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNsb3NlLWNyYXNoLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNsb3Nl
LWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDExLTAxLTEwICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhh
aXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gdGVzdCBleHBl
Y3RhdGlvbnMgdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9j
YXRpb24vcmVzb3VyY2VzL3dpbmRvdy1jbG9zZS1wb3B1cC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL3dpbmRvdy1jbG9zZS1wb3B1cC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNmZWFiYWVmODA5MDVjNTcwZjQ4NmYxYzg5ZDQ1ZDY3YTBkYTBiYTUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvd2lu
ZG93LWNsb3NlLXBvcHVwLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPHNjcmlwdD4KK3ZhciBtb2Nr
TGF0aXR1ZGUgPSA1MS40Nzg7Cit2YXIgbW9ja0xvbmdpdHVkZSA9IC0wLjE2NjsKK3ZhciBtb2Nr
QWNjdXJhY3kgPSAxMDAuMDsKKworZnVuY3Rpb24gbG9hZE5leHQoKSB7CisgICAgdmFyIGdlb2xv
Y2F0aW9uID0gbmF2aWdhdG9yLmdlb2xvY2F0aW9uOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEdlb2xvY2F0
aW9uUGVybWlzc2lvbih0cnVlKTsKKyAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvbihtb2NrTGF0aXR1ZGUsIG1vY2tMb25naXR1ZGUsIG1vY2tBY2N1
cmFjeSk7CisgICAgfQorCisgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLndhdGNoUG9zaXRpb24o
CisgICAgICAgZnVuY3Rpb24ocCkgeyB3aW5kb3cub3BlbmVyLmdvdFBvc2l0aW9uKCk7IH0sCisg
ICAgICAgZnVuY3Rpb24oZSkgeyB3aW5kb3cub3BlbmVyLmZhaWxlZFRvQ3JlYXRlV2F0Y2goZSk7
IH0pOworfQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWROZXh0KCkiPjwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy93
aW5kb3ctY2xvc2UtY3Jhc2guanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9z
Y3JpcHQtdGVzdHMvd2luZG93LWNsb3NlLWNyYXNoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkOWQyNDA5ZmI0
NmY4OTlkYjc2MzVlNThjNDg5N2RjNDAyNDQ0MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvd2luZG93LWNsb3NlLWNyYXNo
LmpzCkBAIC0wLDAgKzEsMzggQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYXNzZXJ0aW9uIHRo
YXQgdGhlIEdlb2xvY2F0aW9uQ2xpZW50IHNob3VsZCBub3QgYmUgdXBkYXRpbmc8YnI+IiArCisg
ICAgICAgICAgICAid2hlbiB0aGUgR2VvbG9jYXRpb25Db250cm9sbGVyIGlzIGRlc3Ryb3llZC48
YnI+IiArCisgICAgICAgICAgICAiU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01MjIxNiIpOworCit2YXIgb3RoZXJXaW5kb3c7CisKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUo
dHJ1ZSk7Cit9IGVsc2UKKyAgICB0ZXN0RmFpbGVkKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4g
d2l0aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXInKTsKKworZnVuY3Rpb24gZ290UG9zaXRp
b24ocCkgeworICB0ZXN0UGFzc2VkKCJSZWNlaXZlZCBHZW9wb3NpdGlvbi4iKTsKKyAgb3RoZXJX
aW5kb3cuY2xvc2UoKTsKKyAgd2luZG93LnNldFRpbWVvdXQod2FpdEZvcldpbmRvd1RvQ2xvc2Us
IDApOworfQorCitmdW5jdGlvbiB3YWl0Rm9yV2luZG93VG9DbG9zZSgpIHsKKyAgaWYgKCFvdGhl
cldpbmRvdy5jbG9zZWQpIHsKKyAgICB3aW5kb3cuc2V0VGltZW91dCh3YWl0Rm9yV2luZG93VG9D
bG9zZSwgMCk7CisgICAgcmV0dXJuOworICB9CisgIHRlc3RQYXNzZWQoIlN1Y2Nlc3MgLSBubyBj
cmFzaCEiKTsKKyAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGZhaWxlZFRvQ3JlYXRl
V2F0Y2goZSkgeworICB0ZXN0RmFpbGVkKCJGYWlsZWQgdG8gY3JlYXRlIHdhdGNoOiAiICsgZSk7
CisgIGZpbmlzaEpTVGVzdCgpOworfQorCitkZWJ1ZygiTWFpbiBwYWdlIG9wZW5pbmcgcmVzb3Vy
Y2VzL3dpbmRvdy1jbG9zZS1wb3B1cC5odG1sIik7CitvdGhlcldpbmRvdyA9IHdpbmRvdy5vcGVu
KCJyZXNvdXJjZXMvd2luZG93LWNsb3NlLXBvcHVwLmh0bWwiKTsKKword2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi93aW5kb3ctY2xvc2UtY3Jhc2gt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNs
b3NlLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzEzNmU2N2U5MTQ0NDRhZWI5ODBh
M2EwMGFmN2Y0YWI1ZjNhZDEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vR2VvbG9jYXRpb24vd2luZG93LWNsb3NlLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE0IEBACitUZXN0cyB0aGUgYXNzZXJ0aW9uIHRoYXQgdGhlIEdlb2xvY2F0aW9uQ2xpZW50IHNo
b3VsZCBub3QgYmUgdXBkYXRpbmcKK3doZW4gdGhlIEdlb2xvY2F0aW9uQ29udHJvbGxlciBpcyBk
ZXN0cm95ZWQuCitTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUy
MjE2CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitNYWluIHBhZ2Ugb3BlbmluZyBy
ZXNvdXJjZXMvd2luZG93LWNsb3NlLXBvcHVwLmh0bWwKK1BBU1MgUmVjZWl2ZWQgR2VvcG9zaXRp
b24uCitQQVNTIFN1Y2Nlc3MgLSBubyBjcmFzaCEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9HZW9sb2NhdGlvbi93aW5kb3ctY2xvc2UtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0dlb2xvY2F0aW9uL3dpbmRvdy1jbG9zZS1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjMjM2
OTJjYzhiZTAzZDgwYTZhZTE1YTFkMDI2ZGFlOWNlNmQ2ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi93aW5kb3ctY2xvc2UtY3Jhc2guaHRtbApA
QCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL3dpbmRvdy1jbG9zZS1jcmFzaC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU1MzUwNWRkOGE2M2NhOWUwOTIxYmEwZmQz
NDg3MjI3OTAyYjJlZS4uNTkzZTUyYzMxODk1ZmQ1OWE3OWY3MDg1NmNmMjg3ZDkyMWYzZWUxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTAxLTEyICBKb2huIEtub3R0ZW5iZWx0
ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEdlb2xvY2F0aW9uQ29udHJvbGxlciBzaG91bGQgY2FsbCBzdG9w
VXBkYXRpbmcgb24gZGVzdHJ1Y3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUyMjE2CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vR2VvbG9jYXRp
b24vd2luZG93LWNsb3NlLWNyYXNoLmh0bWwKKworICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb25D
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ29udHJvbGxlcjo6
fkdlb2xvY2F0aW9uQ29udHJvbGxlcik6CisKIDIwMTAtMTAtMTAgIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAppbmRleCAyOGQ1MjJk
OTYwNDc0ZTY5OWY4YzE3OTllNTkxY2RlYzQ1YzU2YjExLi43NjRiOTEzM2QwZDMyYmYxYTE4MDM0
Yzc1YjU3NjVlYWY0NzZlMDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlv
bkNvbnRyb2xsZXIuY3BwCkBAIC00MSw4ICs0MSwxMiBAQCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6
Okdlb2xvY2F0aW9uQ29udHJvbGxlcihQYWdlKiBwYWdlLCBHZW9sb2NhdGlvbkNsaWVudCogY2xp
ZQogCiBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6On5HZW9sb2NhdGlvbkNvbnRyb2xsZXIoKQogewot
ICAgIGlmIChtX2NsaWVudCkKKyAgICBpZiAobV9jbGllbnQpIHsKKyAgICAgICAgaWYgKCFtX29i
c2VydmVycy5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7
CisKICAgICAgICAgbV9jbGllbnQtPmdlb2xvY2F0aW9uRGVzdHJveWVkKCk7CisgICAgfQogfQog
CiB2b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6YWRkT2JzZXJ2ZXIoR2VvbG9jYXRpb24qIG9i
c2VydmVyLCBib29sIGVuYWJsZUhpZ2hBY2N1cmFjeSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YzllNTA2MmE2ZGUyMTMxMWVlYTJkMDRlY2Vm
ZTQ0YTQ5ZGEzODc0Li5jOWYzNTliMTYyMzlhMDAxNzRhZGI0NTU1YWQ1YTg4M2RhY2I2YjA5IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMTEtMDEtMTIgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
R2VvbG9jYXRpb25Db250cm9sbGVyIHNob3VsZCBjYWxsIHN0b3BVcGRhdGluZyBvbiBkZXN0cnVj
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIy
MTYKKworICAgICAgICBmYXN0L2RvbS9HZW9sb2NhdGlvbi93aW5kb3ctY2xvc2UtY3Jhc2guaHRt
bCByZXF1aXJlcyB0aGF0IGEKKyAgICAgICAgR2VvbG9jYXRpb24gd2F0Y2ggYmUgc3RhcnRlZCBp
biBhIHNlY29uZGFyeSB3aW5kb3cuIENvbnNlcXVlbnRseSwKKyAgICAgICAgd2UgbmVlZCB0byBh
bGxvdyBnZW9sb2NhdGlvbiBwZXJtaXNzaW9uIGFuZCBwcm92aWRlIGEgbW9jaworICAgICAgICBn
ZW9sb2NhdGlvbiBwb3NpdGlvbiBmb3IgdGhlIHNlY29uZGFyeSB3aW5kb3cncworICAgICAgICBH
ZW9sb2NhdGlvbkNsaWVudE1vY2suCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oOgorICAgICAgICAoVGVzdFNoZWxsOjp3aW5kb3dMaXN0
KToKKwogMjAxMS0wMS0xMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjc1NDY0LgpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
CmluZGV4IDBiMmNmYzlhZTQwODZlZmExMzMxYmI4ZTRiYmNlOThkMmFjNzczNzkuLjQ2NzE0Mzg3
MDA5MGYzM2RmOTlmNjliZjJlNDVlOGJiN2I3NmYzYWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE1MTUs
MTIgKzE1MTUsMTYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0RldmljZU9y
aWVudGF0aW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW0KICAgICBtX3NoZWxsLT53ZWJW
aWV3SG9zdCgpLT5kZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soKS0+c2V0T3JpZW50YXRpb24o
b3JpZW50YXRpb24pOwogfQogCisvLyBGSVhNRTogRm9yIGdyZWF0ZXIgdGVzdCBmbGV4aWJpbGl0
eSwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gc2V0IGVhY2ggcGFnZSdzIGdlb2xvY2F0aW9uIG1vY2sg
aW5kaXZpZHVhbGx5LgorLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUyMzY4CiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Np
b24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkK
IHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDEg
fHwgIWFyZ3VtZW50c1swXS5pc0Jvb2woKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fc2hlbGwt
PndlYlZpZXdIb3N0KCktPmdlb2xvY2F0aW9uQ2xpZW50TW9jaygpLT5zZXRQZXJtaXNzaW9uKGFy
Z3VtZW50c1swXS50b0Jvb2xlYW4oKSk7CisgICAgVmVjdG9yPFdlYlZpZXdIb3N0Kj4gd2luZG93
TGlzdCA9IG1fc2hlbGwtPndpbmRvd0xpc3QoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHdpbmRvd0xpc3Quc2l6ZSgpOyBpKyspCisgICAgICAgIHdpbmRvd0xpc3RbaV0tPmdlb2xvY2F0
aW9uQ2xpZW50TW9jaygpLT5zZXRQZXJtaXNzaW9uKGFyZ3VtZW50c1swXS50b0Jvb2xlYW4oKSk7
CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0
aW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQp
CkBAIC0xNTI4LDcgKzE1MzIsOSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvbihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZwogICAgIHJlc3Vs
dC0+c2V0TnVsbCgpOwogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMyB8fCAhYXJndW1lbnRz
WzBdLmlzTnVtYmVyKCkgfHwgIWFyZ3VtZW50c1sxXS5pc051bWJlcigpIHx8ICFhcmd1bWVudHNb
Ml0uaXNOdW1iZXIoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fc2hlbGwtPndlYlZpZXdIb3N0
KCktPmdlb2xvY2F0aW9uQ2xpZW50TW9jaygpLT5zZXRQb3NpdGlvbihhcmd1bWVudHNbMF0udG9E
b3VibGUoKSwgYXJndW1lbnRzWzFdLnRvRG91YmxlKCksIGFyZ3VtZW50c1syXS50b0RvdWJsZSgp
KTsKKyAgICBWZWN0b3I8V2ViVmlld0hvc3QqPiB3aW5kb3dMaXN0ID0gbV9zaGVsbC0+d2luZG93
TGlzdCgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd2luZG93TGlzdC5zaXplKCk7IGkr
KykKKyAgICAgICAgd2luZG93TGlzdFtpXS0+Z2VvbG9jYXRpb25DbGllbnRNb2NrKCktPnNldFBv
c2l0aW9uKGFyZ3VtZW50c1swXS50b0RvdWJsZSgpLCBhcmd1bWVudHNbMV0udG9Eb3VibGUoKSwg
YXJndW1lbnRzWzJdLnRvRG91YmxlKCkpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50
cywgQ3BwVmFyaWFudCogcmVzdWx0KQpAQCAtMTUzNiw3ICsxNTQyLDkgQEAgdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiBhcmd1bWUKICAgICByZXN1bHQtPnNldE51bGwoKTsKICAgICBpZiAoYXJndW1lbnRzLnNp
emUoKSA8IDIgfHwgIWFyZ3VtZW50c1swXS5pc051bWJlcigpIHx8ICFhcmd1bWVudHNbMV0uaXNT
dHJpbmcoKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fc2hlbGwtPndlYlZpZXdIb3N0KCktPmdl
b2xvY2F0aW9uQ2xpZW50TW9jaygpLT5zZXRFcnJvcihhcmd1bWVudHNbMF0udG9JbnQzMigpLCBj
cHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzFdKSk7CisgICAgVmVjdG9yPFdlYlZpZXdI
b3N0Kj4gd2luZG93TGlzdCA9IG1fc2hlbGwtPndpbmRvd0xpc3QoKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHdpbmRvd0xpc3Quc2l6ZSgpOyBpKyspCisgICAgICAgIHdpbmRvd0xpc3Rb
aV0tPmdlb2xvY2F0aW9uQ2xpZW50TW9jaygpLT5zZXRFcnJvcihhcmd1bWVudHNbMF0udG9JbnQz
MigpLCBjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzFdKSk7CiB9CiAKIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmFib3J0TW9kYWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFNoZWxsLmgKaW5kZXggNDg2ZjllYThhNzA0NjViNTdlNGU1MjE4NzJiYjJiN2YxNWMyNTMw
Zi4uZWY5YmU3ZmM0MmU1YzQ2Y2I5ZjM3OTE3M2IwYTg1YTQ4MmU5ZTU2YyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKQEAgLTE2Niw2ICsxNjYsOSBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgY29uc3QgaW50IHZpcnR1YWxXaW5kb3dCb3JkZXIgPSAzOwogCisg
ICAgdHlwZWRlZiBWZWN0b3I8V2ViVmlld0hvc3QqPiBXaW5kb3dMaXN0OworICAgIFdpbmRvd0xp
c3Qgd2luZG93TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93TGlzdDsgfQorCiBwcml2YXRl
OgogICAgIFdlYlZpZXdIb3N0KiBjcmVhdGVOZXdXaW5kb3coY29uc3QgV2ViS2l0OjpXZWJVUkwm
LCBEUlREZXZUb29sc0FnZW50Kik7CiAgICAgdm9pZCBjcmVhdGVNYWluV2luZG93KCk7CkBAIC0y
MDcsNyArMjEwLDYgQEAgcHJpdmF0ZToKIAogICAgIC8vIExpc3Qgb2YgYWxsIHdpbmRvd3MgaW4g
dGhpcyBwcm9jZXNzLgogICAgIC8vIFRoZSBtYWluIHdpbmRvdyBzaG91bGQgYmUgcHV0IGludG8g
d2luZG93TGlzdFswXS4KLSAgICB0eXBlZGVmIFZlY3RvcjxXZWJWaWV3SG9zdCo+IFdpbmRvd0xp
c3Q7CiAgICAgV2luZG93TGlzdCBtX3dpbmRvd0xpc3Q7CiAKICNpZiBkZWZpbmVkKE9TX1dJTikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78936</attachid>
            <date>2011-01-14 06:14:50 -0800</date>
            <delta_ts>2011-01-17 04:22:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52216-20110114141447.patch</filename>
            <type>text/plain</type>
            <size>13306</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMjY2MTEyNmIyMTk1MGVlYTE2YzY1MTA1ODA3YzI0MDdkYTk0MTUwLi4xNDQ4MDA1
YmQxNGZiNGZkYTBhY2NhZjEwNWU4Zjg0NzQzOTVlYjBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTEtMDEtMTIgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2VvbG9jYXRp
b25Db250cm9sbGVyIHNob3VsZCBjYWxsIHN0b3BVcGRhdGluZyBvbiBkZXN0cnVjdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIyMTYKKworICAg
ICAgICBmYXN0L2RvbS93aW5kb3ctY2xvc2UtY3Jhc2guaHRtbCB0ZXN0cyB0aGF0IHdlIGRvIG5v
dCBmYWlsIHRoZQorICAgICAgICBhc3NlcnRpb24gaW4gdGhlIG1vY2sgR2VvbG9jYXRpb25DbGll
bnQgdGhhdCB0aGUgR2VvbG9jYXRpb25DbGllbnQKKyAgICAgICAgaXMgbm90IHVwZGF0aW5nIHdo
ZW4gdGhlIEdlb2xvY2F0aW9uQ29udHJvbGxlciBpcyBkZXN0cm95ZWQuCisKKyAgICAgICAgKiBm
YXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvd2luZG93LWNsb3NlLXBvcHVwLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy93aW5kb3ct
Y2xvc2UtY3Jhc2guanM6IEFkZGVkLgorICAgICAgICAoZ290UG9zaXRpb24pOgorICAgICAgICAo
d2FpdEZvcldpbmRvd1RvQ2xvc2UpOgorICAgICAgICAoZmFpbGVkVG9DcmVhdGVXYXRjaCk6Cisg
ICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNsb3NlLWNyYXNoLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNsb3Nl
LWNyYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC13
azIvU2tpcHBlZDoKKwogMjAxMS0wMS0xMCAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIENocm9taXVtIHRlc3QgZXhwZWN0YXRpb25z
IHVwZGF0ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jl
c291cmNlcy93aW5kb3ctY2xvc2UtcG9wdXAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dl
b2xvY2F0aW9uL3Jlc291cmNlcy93aW5kb3ctY2xvc2UtcG9wdXAuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ZmVhYmFlZjgwOTA1YzU3MGY0ODZmMWM4OWQ0NWQ2N2EwZGEwYmE1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL3dpbmRvdy1jbG9z
ZS1wb3B1cC5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzxzY3JpcHQ+Cit2YXIgbW9ja0xhdGl0dWRl
ID0gNTEuNDc4OwordmFyIG1vY2tMb25naXR1ZGUgPSAtMC4xNjY7Cit2YXIgbW9ja0FjY3VyYWN5
ID0gMTAwLjA7CisKK2Z1bmN0aW9uIGxvYWROZXh0KCkgeworICAgIHZhciBnZW9sb2NhdGlvbiA9
IG5hdmlnYXRvci5nZW9sb2NhdGlvbjsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRHZW9sb2NhdGlvblBlcm1p
c3Npb24odHJ1ZSk7CisgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24obW9ja0xhdGl0dWRlLCBtb2NrTG9uZ2l0dWRlLCBtb2NrQWNjdXJhY3kpOwor
ICAgIH0KKworICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uKAorICAgICAg
IGZ1bmN0aW9uKHApIHsgd2luZG93Lm9wZW5lci5nb3RQb3NpdGlvbigpOyB9LAorICAgICAgIGZ1
bmN0aW9uKGUpIHsgd2luZG93Lm9wZW5lci5mYWlsZWRUb0NyZWF0ZVdhdGNoKGUpOyB9KTsKK30K
Kzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJsb2FkTmV4dCgpIj48L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvd2luZG93LWNs
b3NlLWNyYXNoLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRl
c3RzL3dpbmRvdy1jbG9zZS1jcmFzaC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjdkZjYxYWJhYjg4YmZjZWUx
Y2M1MzIzMjEzY2E3YjNlN2VjNDU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL3dpbmRvdy1jbG9zZS1jcmFzaC5qcwpAQCAt
MCwwICsxLDQxIEBACitkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGFzc2VydGlvbiB0aGF0IHRoZSBH
ZW9sb2NhdGlvbkNsaWVudCBzaG91bGQgbm90IGJlIHVwZGF0aW5nPGJyPiIgKworICAgICAgICAg
ICAgIndoZW4gdGhlIEdlb2xvY2F0aW9uQ29udHJvbGxlciBpcyBkZXN0cm95ZWQuPGJyPiIgKwor
ICAgICAgICAgICAgIlNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTIyMTYiKTsKKwordmFyIG90aGVyV2luZG93OworCitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOwor
fSBlbHNlCisgICAgdGVzdEZhaWxlZCgnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQg
dGhlIExheW91dFRlc3RDb250cm9sbGVyJyk7CisKK2Z1bmN0aW9uIGdvdFBvc2l0aW9uKHApCit7
CisgICAgdGVzdFBhc3NlZCgiUmVjZWl2ZWQgR2VvcG9zaXRpb24uIik7CisgICAgb3RoZXJXaW5k
b3cuY2xvc2UoKTsKKyAgICB3aW5kb3cuc2V0VGltZW91dCh3YWl0Rm9yV2luZG93VG9DbG9zZSwg
MCk7Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JXaW5kb3dUb0Nsb3NlKCkKK3sKKyAgICBpZiAoIW90
aGVyV2luZG93LmNsb3NlZCkgeworICAgICAgICB3aW5kb3cuc2V0VGltZW91dCh3YWl0Rm9yV2lu
ZG93VG9DbG9zZSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdFBhc3NlZCgi
U3VjY2VzcyAtIG5vIGNyYXNoISIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlv
biBmYWlsZWRUb0NyZWF0ZVdhdGNoKGUpCit7CisgICAgdGVzdEZhaWxlZCgiRmFpbGVkIHRvIGNy
ZWF0ZSB3YXRjaDogIiArIGUpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitkZWJ1ZygiTWFp
biBwYWdlIG9wZW5pbmcgcmVzb3VyY2VzL3dpbmRvdy1jbG9zZS1wb3B1cC5odG1sIik7CitvdGhl
cldpbmRvdyA9IHdpbmRvdy5vcGVuKCJyZXNvdXJjZXMvd2luZG93LWNsb3NlLXBvcHVwLmh0bWwi
KTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlv
bi93aW5kb3ctY2xvc2UtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
R2VvbG9jYXRpb24vd2luZG93LWNsb3NlLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YzEzNmU2N2U5MTQ0NDRhZWI5ODBhM2EwMGFmN2Y0YWI1ZjNhZDEyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNsb3NlLWNyYXNoLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGUgYXNzZXJ0aW9uIHRoYXQgdGhl
IEdlb2xvY2F0aW9uQ2xpZW50IHNob3VsZCBub3QgYmUgdXBkYXRpbmcKK3doZW4gdGhlIEdlb2xv
Y2F0aW9uQ29udHJvbGxlciBpcyBkZXN0cm95ZWQuCitTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUyMjE2CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitNYWluIHBhZ2Ugb3BlbmluZyByZXNvdXJjZXMvd2luZG93LWNsb3NlLXBvcHVwLmh0bWwKK1BB
U1MgUmVjZWl2ZWQgR2VvcG9zaXRpb24uCitQQVNTIFN1Y2Nlc3MgLSBubyBjcmFzaCEKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi93aW5kb3ctY2xvc2UtY3Jhc2guaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3dpbmRvdy1jbG9zZS1jcmFzaC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZjMjM2OTJjYzhiZTAzZDgwYTZhZTE1YTFkMDI2ZGFlOWNlNmQ2ZWMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi93aW5k
b3ctY2xvc2UtY3Jhc2guaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3dpbmRvdy1jbG9zZS1jcmFz
aC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCmluZGV4IGEwOGY4MGY3MDc4NTAxZWI2Nzc1ZGJiMWE2N2E0YjA3MTIyZTg3MTguLjU3MmVk
MWNlOTEyNzczNzAzYTA4ZGZhYjJmZDA2NjBiNDliNjVmYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkCkBAIC00OTE2LDYgKzQ5MTYsNyBAQCBmYXN0L2RvbS9HZW9sb2NhdGlvbi90aW1lb3V0
LWNsZWFyLXdhdGNoLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3RpbWVvdXQuaHRtbAogZmFz
dC9kb20vR2VvbG9jYXRpb24vdGltZXN0YW1wLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3dh
dGNoLmh0bWwKK2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3dpbmRvdy1jbG9zZS1jcmFzaC5odG1sCiAK
ICMgV2UncmUgbm90IHF1aXRlIHJlYWR5IHRvIHJ1biB0aGVzZSB0ZXN0cywgYmVjYXVzZSB0aGUg
c2xhdmVzIG5lZWQKICMgR2VvY2x1ZSBzdXBwb3J0LiBJZiB3ZSBpbXBsZW1lbnQgc3VwcG9ydCBm
b3IgdGhlIG1vY2sgZ2VvbG9jYXRpb24gc2VydmljZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9T
a2lwcGVkCmluZGV4IGUyZTIxYmI2MDEwNWU4NGViNWQxYzMxNjZiYTM2ODk2Y2RkZWEwMzEuLmM5
NzA3MjljZTU3MGNhMTAwNjA5NjBlYmZmM2ZlODdmYWI3NDBhYjggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQKQEAgLTE1NzUsNiArMTU3NSw3IEBAIGZhc3QvZG9tL0dlb2xvY2F0
aW9uL3N1Y2Nlc3MuaHRtbAogZmFzdC9kb20vR2VvbG9jYXRpb24vdGltZW91dC5odG1sCiBmYXN0
L2RvbS9HZW9sb2NhdGlvbi90aW1lc3RhbXAuaHRtbAogZmFzdC9kb20vR2VvbG9jYXRpb24vd2F0
Y2guaHRtbAorZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNsb3NlLWNyYXNoLmh0bWwKIAog
IyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi90aW1lb3V0LWNsZWFyLXdhdGNo
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LXdrMi9Ta2lwcGVkIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQKaW5kZXggY2U5NmEyNWE2MDFlMzRl
N2M1MjE1NWRiNWI5MzE1ZWM5OTM0MTRmMS4uZmQyMjU1NDVmM2Q0MTg5NjYyYWUzMDc3YzFjMzE2
MDU0OGFjNjdiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQKQEAgLTE3MzcsNiAr
MTczNyw3IEBAIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3JlZW50cmFudC1zdWNjZXNzLmh0bWwKIGZh
c3QvZG9tL0dlb2xvY2F0aW9uL3N1Y2Nlc3MuaHRtbAogZmFzdC9kb20vR2VvbG9jYXRpb24vdGlt
ZW91dC5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi93YXRjaC5odG1sCitmYXN0L2RvbS9HZW9s
b2NhdGlvbi93aW5kb3ctY2xvc2UtY3Jhc2guaHRtbAogCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVl
ZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24KIGZhc3Qv
ZG9tL0dlb2xvY2F0aW9uL3RpbWVvdXQtY2xlYXItd2F0Y2guaHRtbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFl
NTM1MDVkZDhhNjNjYTllMDkyMWJhMGZkMzQ4NzIyNzkwMmIyZWUuLjU5M2U1MmMzMTg5NWZkNTlh
NzlmNzA4NTZjZjI4N2Q5MjFmM2VlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
MS0wMS0xMiAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZW9sb2NhdGlvbkNv
bnRyb2xsZXIgc2hvdWxkIGNhbGwgc3RvcFVwZGF0aW5nIG9uIGRlc3RydWN0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjIxNgorCisgICAgICAg
IFRlc3Q6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL3dpbmRvdy1jbG9zZS1jcmFzaC5odG1sCisKKyAg
ICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbkNvbnRyb2xsZXI6On5HZW9sb2NhdGlvbkNvbnRyb2xsZXIpOgorCiAyMDEw
LTEwLTEwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29u
dHJvbGxlci5jcHAKaW5kZXggMjhkNTIyZDk2MDQ3NGU2OTlmOGMxNzk5ZTU5MWNkZWM0NWM1NmIx
MS4uNzY0YjkxMzNkMGQzMmJmMWExODAzNGM3NWI1NzY1ZWFmNDc2ZTAwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcApAQCAtNDEsOCArNDEsMTIg
QEAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpHZW9sb2NhdGlvbkNvbnRyb2xsZXIoUGFnZSogcGFn
ZSwgR2VvbG9jYXRpb25DbGllbnQqIGNsaWUKIAogR2VvbG9jYXRpb25Db250cm9sbGVyOjp+R2Vv
bG9jYXRpb25Db250cm9sbGVyKCkKIHsKLSAgICBpZiAobV9jbGllbnQpCisgICAgaWYgKG1fY2xp
ZW50KSB7CisgICAgICAgIGlmICghbV9vYnNlcnZlcnMuaXNFbXB0eSgpKQorICAgICAgICAgICAg
bV9jbGllbnQtPnN0b3BVcGRhdGluZygpOworCiAgICAgICAgIG1fY2xpZW50LT5nZW9sb2NhdGlv
bkRlc3Ryb3llZCgpOworICAgIH0KIH0KIAogdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmFk
ZE9ic2VydmVyKEdlb2xvY2F0aW9uKiBvYnNlcnZlciwgYm9vbCBlbmFibGVIaWdoQWNjdXJhY3kp
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGM5
ZTUwNjJhNmRlMjEzMTFlZWEyZDA0ZWNlZmU0NGE0OWRhMzg3NC4uYzlmMzU5YjE2MjM5YTAwMTc0
YWRiNDU1NWFkNWE4ODNkYWNiNmIwOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTAxLTEyICBKb2huIEtub3R0
ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEdlb2xvY2F0aW9uQ29udHJvbGxlciBzaG91bGQgY2Fs
bCBzdG9wVXBkYXRpbmcgb24gZGVzdHJ1Y3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMjE2CisKKyAgICAgICAgZmFzdC9kb20vR2VvbG9jYXRp
b24vd2luZG93LWNsb3NlLWNyYXNoLmh0bWwgcmVxdWlyZXMgdGhhdCBhCisgICAgICAgIEdlb2xv
Y2F0aW9uIHdhdGNoIGJlIHN0YXJ0ZWQgaW4gYSBzZWNvbmRhcnkgd2luZG93LiBDb25zZXF1ZW50
bHksCisgICAgICAgIHdlIG5lZWQgdG8gYWxsb3cgZ2VvbG9jYXRpb24gcGVybWlzc2lvbiBhbmQg
cHJvdmlkZSBhIG1vY2sKKyAgICAgICAgZ2VvbG9jYXRpb24gcG9zaXRpb24gZm9yIHRoZSBzZWNv
bmRhcnkgd2luZG93J3MKKyAgICAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrLgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbik6Cisg
ICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24p
OgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9y
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAg
ICAgKFRlc3RTaGVsbDo6d2luZG93TGlzdCk6CisKIDIwMTEtMDEtMTAgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHI3NTQ2NC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCAwYjJjZmM5YWU0MDg2ZWZhMTMzMWJiOGU0
YmJjZTk4ZDJhYzc3Mzc5Li40NjcxNDM4NzAwOTBmMzNkZjk5ZjY5YmYyZTQ1ZThiYjdiNzZmM2Fm
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCkBAIC0xNTE1LDEyICsxNTE1LDE2IEBAIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtCiAgICAgbV9zaGVsbC0+d2ViVmlld0hvc3QoKS0+ZGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrKCktPnNldE9yaWVudGF0aW9uKG9yaWVudGF0aW9uKTsKIH0KIAorLy8gRklYTUU6IEZv
ciBncmVhdGVyIHRlc3QgZmxleGliaWxpdHksIHdlIHNob3VsZCBiZSBhYmxlIHRvIHNldCBlYWNo
IHBhZ2UncyBnZW9sb2NhdGlvbiBtb2NrIGluZGl2aWR1YWxseS4KKy8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjM2OAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiAgICAg
aWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxIHx8ICFhcmd1bWVudHNbMF0uaXNCb29sKCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX3NoZWxsLT53ZWJWaWV3SG9zdCgpLT5nZW9sb2NhdGlvbkNsaWVu
dE1vY2soKS0+c2V0UGVybWlzc2lvbihhcmd1bWVudHNbMF0udG9Cb29sZWFuKCkpOworICAgIFZl
Y3RvcjxXZWJWaWV3SG9zdCo+IHdpbmRvd0xpc3QgPSBtX3NoZWxsLT53aW5kb3dMaXN0KCk7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3aW5kb3dMaXN0LnNpemUoKTsgaSsrKQorICAgICAg
ICB3aW5kb3dMaXN0W2ldLT5nZW9sb2NhdGlvbkNsaWVudE1vY2soKS0+c2V0UGVybWlzc2lvbihh
cmd1bWVudHNbMF0udG9Cb29sZWFuKCkpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQpAQCAtMTUyOCw3ICsxNTMyLDkgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiBhcmcKICAgICByZXN1bHQtPnNldE51bGwoKTsKICAgICBpZiAoYXJndW1lbnRz
LnNpemUoKSA8IDMgfHwgIWFyZ3VtZW50c1swXS5pc051bWJlcigpIHx8ICFhcmd1bWVudHNbMV0u
aXNOdW1iZXIoKSB8fCAhYXJndW1lbnRzWzJdLmlzTnVtYmVyKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBtX3NoZWxsLT53ZWJWaWV3SG9zdCgpLT5nZW9sb2NhdGlvbkNsaWVudE1vY2soKS0+c2V0
UG9zaXRpb24oYXJndW1lbnRzWzBdLnRvRG91YmxlKCksIGFyZ3VtZW50c1sxXS50b0RvdWJsZSgp
LCBhcmd1bWVudHNbMl0udG9Eb3VibGUoKSk7CisgICAgVmVjdG9yPFdlYlZpZXdIb3N0Kj4gd2lu
ZG93TGlzdCA9IG1fc2hlbGwtPndpbmRvd0xpc3QoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHdpbmRvd0xpc3Quc2l6ZSgpOyBpKyspCisgICAgICAgIHdpbmRvd0xpc3RbaV0tPmdlb2xv
Y2F0aW9uQ2xpZW50TW9jaygpLT5zZXRQb3NpdGlvbihhcmd1bWVudHNbMF0udG9Eb3VibGUoKSwg
YXJndW1lbnRzWzFdLnRvRG91YmxlKCksIGFyZ3VtZW50c1syXS50b0RvdWJsZSgpKTsKIH0KIAog
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKQEAgLTE1MzYs
NyArMTU0Miw5IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlv
bkVycm9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lCiAgICAgcmVzdWx0LT5zZXROdWxs
KCk7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAyIHx8ICFhcmd1bWVudHNbMF0uaXNOdW1i
ZXIoKSB8fCAhYXJndW1lbnRzWzFdLmlzU3RyaW5nKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBt
X3NoZWxsLT53ZWJWaWV3SG9zdCgpLT5nZW9sb2NhdGlvbkNsaWVudE1vY2soKS0+c2V0RXJyb3Io
YXJndW1lbnRzWzBdLnRvSW50MzIoKSwgY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1sx
XSkpOworICAgIFZlY3RvcjxXZWJWaWV3SG9zdCo+IHdpbmRvd0xpc3QgPSBtX3NoZWxsLT53aW5k
b3dMaXN0KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3aW5kb3dMaXN0LnNpemUoKTsg
aSsrKQorICAgICAgICB3aW5kb3dMaXN0W2ldLT5nZW9sb2NhdGlvbkNsaWVudE1vY2soKS0+c2V0
RXJyb3IoYXJndW1lbnRzWzBdLnRvSW50MzIoKSwgY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3Vt
ZW50c1sxXSkpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphYm9ydE1vZGFsKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCmluZGV4IDQ4NmY5ZWE4YTcwNDY1
YjU3ZTRlNTIxODcyYmIyYjdmMTVjMjUzMGYuLmVmOWJlN2ZjNDJlNWM0NmNiOWYzNzkxNzNiMGE4
NWE0ODJlOWU1NmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RTaGVsbC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5o
CkBAIC0xNjYsNiArMTY2LDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGludCB2aXJ0
dWFsV2luZG93Qm9yZGVyID0gMzsKIAorICAgIHR5cGVkZWYgVmVjdG9yPFdlYlZpZXdIb3N0Kj4g
V2luZG93TGlzdDsKKyAgICBXaW5kb3dMaXN0IHdpbmRvd0xpc3QoKSBjb25zdCB7IHJldHVybiBt
X3dpbmRvd0xpc3Q7IH0KKwogcHJpdmF0ZToKICAgICBXZWJWaWV3SG9zdCogY3JlYXRlTmV3V2lu
ZG93KGNvbnN0IFdlYktpdDo6V2ViVVJMJiwgRFJURGV2VG9vbHNBZ2VudCopOwogICAgIHZvaWQg
Y3JlYXRlTWFpbldpbmRvdygpOwpAQCAtMjA3LDcgKzIxMCw2IEBAIHByaXZhdGU6CiAKICAgICAv
LyBMaXN0IG9mIGFsbCB3aW5kb3dzIGluIHRoaXMgcHJvY2Vzcy4KICAgICAvLyBUaGUgbWFpbiB3
aW5kb3cgc2hvdWxkIGJlIHB1dCBpbnRvIHdpbmRvd0xpc3RbMF0uCi0gICAgdHlwZWRlZiBWZWN0
b3I8V2ViVmlld0hvc3QqPiBXaW5kb3dMaXN0OwogICAgIFdpbmRvd0xpc3QgbV93aW5kb3dMaXN0
OwogCiAjaWYgZGVmaW5lZChPU19XSU4pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>