<?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>93125</bug_id>
          
          <creation_ts>2012-08-03 08:19:05 -0700</creation_ts>
          <short_desc>[Qt][WK2] Remove workarounds from input event handling</short_desc>
          <delta_ts>2012-08-06 06:04:04 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>1</everconfirmed>
          <reporter name="Andras Becsi">abecsi</reporter>
          <assigned_to name="Andras Becsi">abecsi</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>686758</commentid>
    <comment_count>0</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-08-03 08:19:05 -0700</bug_when>
    <thetext>[Qt][WK2] Remove workarounds from input event handling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686761</commentid>
    <comment_count>1</comment_count>
      <attachid>156385</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-08-03 08:22:50 -0700</bug_when>
    <thetext>Created attachment 156385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686771</commentid>
    <comment_count>2</comment_count>
      <attachid>156385</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-08-03 08:33:00 -0700</bug_when>
    <thetext>Comment on attachment 156385
Patch

Looks ok to me, maybe jocelyn wants to have a look</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686814</commentid>
    <comment_count>3</comment_count>
      <attachid>156385</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-08-03 09:10:23 -0700</bug_when>
    <thetext>Comment on attachment 156385
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1672
&gt; -    if (!isVisible() || !isEnabled() || !s_flickableViewportEnabled)
&gt; +    if (!isVisible() || !isEnabled())

Humm weird, feels like this was done the wrong way, that when !s_flickableViewportEnabled we should return false and not delegate to flickable. Why did you change it by the way?

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1696
&gt; +        // Force mouse events targeting the web page through the default
&gt; +        // propagation path of mouse*Event(). This way the events meant
&gt; +        // for a child dialog are also properly propagated to the dialog.
&gt; +        if (page()-&gt;contains(localPos))
&gt; +            return false;

Could you give an example case of when this is needed? It feels to me that any item with the page in the content item should behave the same regarding mouse events, no?

Plus what would happen if a dialog is on top of the page, but slightly offset so that half of it is over the page, and half outside. Mouse events on the outer half could get eaten by flickable but not when in the half &quot;contained&quot; by the page under.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1702
&gt;      case QEvent::TouchBegin:
&gt;      case QEvent::TouchUpdate:
&gt;      case QEvent::TouchEnd:

QQuickFlickable::childMouseEventFilter seems to return false for all touch events, not sure if this changed recently. If it changed, do you think we still need this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686982</commentid>
    <comment_count>4</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-08-03 11:23:48 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 156385 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156385&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1672
&gt; &gt; -    if (!isVisible() || !isEnabled() || !s_flickableViewportEnabled)
&gt; &gt; +    if (!isVisible() || !isEnabled())
&gt; 
&gt; Humm weird, feels like this was done the wrong way, that when !s_flickableViewportEnabled we should return false and not delegate to flickable. Why did you change it by the way?

This was a workaround so that the behaviour for the desktop webview does not change with the reimplemented function.
As far as I remember returning false made some other tests fail for me locally but theoretically it shouldn&apos;t make a difference for the desktop webview.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1696
&gt; &gt; +        // Force mouse events targeting the web page through the default
&gt; &gt; +        // propagation path of mouse*Event(). This way the events meant
&gt; &gt; +        // for a child dialog are also properly propagated to the dialog.
&gt; &gt; +        if (page()-&gt;contains(localPos))
&gt; &gt; +            return false;
&gt; 
&gt; Could you give an example case of when this is needed? It feels to me that any item with the page in the content item should behave the same regarding mouse events, no?
&gt; 
This is needed if there is another item, let&apos;s say a mouse area on the contentItem besides the page. If the event is targeting that additional item it should be checked by the Flickable if it is part of a potential flick before it reaches the item.

But since we do not support this anyway I&apos;m going to remove it and also remove the experimental useDefaultContentSize property which would only be used for this kind of usecase.

&gt; Plus what would happen if a dialog is on top of the page, but slightly offset so that half of it is over the page, and half outside. Mouse events on the outer half could get eaten by flickable but not when in the half &quot;contained&quot; by the page under.

Flickable does a similar hit-test for mouse events so in this case it would not grab the event.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1702
&gt; &gt;      case QEvent::TouchBegin:
&gt; &gt;      case QEvent::TouchUpdate:
&gt; &gt;      case QEvent::TouchEnd:
&gt; 
&gt; QQuickFlickable::childMouseEventFilter seems to return false for all touch events, not sure if this changed recently. If it changed, do you think we still need this?

You are right, Flickable does not handle touch events, I just wanted to prevent relying on this fact. But this is just my paranoia.

I&apos;m going to update the patch on Monday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688009</commentid>
    <comment_count>5</comment_count>
      <attachid>156660</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-08-06 04:50:48 -0700</bug_when>
    <thetext>Created attachment 156660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688033</commentid>
    <comment_count>6</comment_count>
      <attachid>156660</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-08-06 05:14:58 -0700</bug_when>
    <thetext>Comment on attachment 156660
Patch

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

Just one nitpick.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1694
&gt; +        ASSERT(event-&gt;type() == QEvent::UngrabMouse);

Maybe I&apos;m not seeing well its purpose but it feels like this might backfire more often that it would help us. I&apos;m also just a bit tired of asserts popping in the UI code that you can just comment out without it exposing any real bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688046</commentid>
    <comment_count>7</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-08-06 05:38:24 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 156660 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156660&amp;action=review
&gt; 
&gt; Just one nitpick.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:1694
&gt; &gt; +        ASSERT(event-&gt;type() == QEvent::UngrabMouse);
&gt; 
&gt; Maybe I&apos;m not seeing well its purpose but it feels like this might backfire more often that it would help us. I&apos;m also just a bit tired of asserts popping in the UI code that you can just comment out without it exposing any real bug.

If we hit this assert it means that something is going terribly wrong with the childMouseEventFilter function. I find it already somewhat counter-intuitive that it is also used for touch events and if the currently assumed behaviour changes we might have to adjust our code again. Else it could bypass unnoticed and may cause bugs that are hard to find.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688057</commentid>
    <comment_count>8</comment_count>
      <attachid>156660</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-08-06 06:03:57 -0700</bug_when>
    <thetext>Comment on attachment 156660
Patch

Clearing flags on attachment: 156660

Committed r124758: &lt;http://trac.webkit.org/changeset/124758&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688058</commentid>
    <comment_count>9</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-08-06 06:04:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156385</attachid>
            <date>2012-08-03 08:22:50 -0700</date>
            <delta_ts>2012-08-03 11:24:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93125-20120803172233.patch</filename>
            <type>text/plain</type>
            <size>10406</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDE3ZTM4ODg0ODM4OWUz
NmExZmFmMTBhOGI0YTNmMWZhMDRjOTNjZC4uYzg0N2I1N2M1M2VmNGQzZTM3MWYyOWNhMmZiODZm
YmI5OGYyZGVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA4LTAzICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAbm9raWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBS
ZW1vdmUgd29ya2Fyb3VuZHMgZnJvbSBpbnB1dCBldmVudCBoYW5kbGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxMjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBpbnB1dCBldmVudCBwcm9w
YWdhdGlvbiBpbiBRdDUgaGFzIGJlZW4gZml4ZWQgd2UgY2FuIHJlbW92ZQorICAgICAgICB0aGUg
d29ya2Fyb3VuZHMgaW50cm9kdWNlZCB0byBwcmV2ZW50IHRoZSBRTUwgV2ViVmlldyBmcm9tIHJl
Y2VpdmluZworICAgICAgICBpbnB1dCBldmVudHMgdGFyZ2V0aW5nIGEgY2hpbGQgZGlhbG9nLgor
ICAgICAgICBUbyBkbyB0aGlzIHRoZSBjaGlsZE1vdXNlRXZlbnRGaWx0ZXIgZnVuY3Rpb24gaGFz
IHRvIGJlIGNoYW5nZWQKKyAgICAgICAgdG8gZm9yY2UgdG91Y2ggZXZlbnRzIGFuZCBtb3VzZSBl
dmVudHMgdGFyZ2V0aW5nIHRoZSB3ZWIgcGFnZQorICAgICAgICB0aHJvdWdoIHRoZSBkZWZhdWx0
IHByb3BhZ2F0aW9uIHBhdGguCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQ
cml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRlOjppbml0aWFsaXpl
KToKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6OmNoaWxkTW91c2VFdmVudEZpbHRlcik6CisgICAg
ICAgIChRUXVpY2tXZWJWaWV3Ojp0b3VjaEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXdfcF9wLmg6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6
CisgICAgICAgIChRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UXREaWFsb2dSdW5u
ZXI6OnJ1bik6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5UXQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJQcm94eVF0OjpjcmVhdGVJdGVt
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6ZW5kQ2hvb3Nlcik6
CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eVF0OjpzaG93UG9wdXBNZW51KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlRdDo6aGlkZVBvcHVwTWVudSk6CisKIDIwMTItMDgt
MDMgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQgYnVpbGQgZml4IGZvciBHVEsgYWZ0ZXIgcjEyNDQ3OS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDdiNTUy
Nzk5NThlOWE0NzUzN2I0Y2FmNjdiZmFkYWVjMDRkOTk2YjcuLjQ1ODI2ZGU2MmFlZDdjYjNiNGM4
YTg5YzVjN2I3MjgxNjlkZmYxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtMjcwLDcgKzI3MCw2IEBAIFFRdWlja1dlYlZp
ZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkK
ICAgICAsIG1fdXNlRGVmYXVsdENvbnRlbnRJdGVtU2l6ZSh0cnVlKQogICAgICwgbV9uYXZpZ2F0
b3JRdE9iamVjdEVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3JlbmRlclRvT2Zmc2NyZWVuQnVmZmVy
KGZhbHNlKQotICAgICwgbV9kaWFsb2dBY3RpdmUoZmFsc2UpCiAgICAgLCBtX2FsbG93QW55SFRU
UFNDZXJ0aWZpY2F0ZUZvckxvY2FsSG9zdChmYWxzZSkKICAgICAsIG1fbG9hZFByb2dyZXNzKDAp
CiB7CkBAIC03ODgsOCArNzg3LDExIEBAIFFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRlOjpRUXVp
Y2tXZWJWaWV3TGVnYWN5UHJpdmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKIAogdm9pZCBR
UXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRSZWYgY29udGV4
dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQogeworICAgIFFfUShRUXVpY2tXZWJW
aWV3KTsKICAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aW5pdGlhbGl6ZShjb250ZXh0UmVmLCBw
YWdlR3JvdXBSZWYpOwotICAgIGVuYWJsZU1vdXNlRXZlbnRzKCk7CisKKyAgICBxLT5zZXRBY2Nl
cHRlZE1vdXNlQnV0dG9ucyhRdDo6TW91c2VCdXR0b25NYXNrKTsKKyAgICBxLT5zZXRBY2NlcHRI
b3ZlckV2ZW50cyh0cnVlKTsKIAogICAgIC8vIFRyaWdnZXIgc2V0dGluZyBvZiBjb3JyZWN0IHZp
c2liaWxpdHkgZmxhZ3MgYWZ0ZXIgZXZlcnl0aGluZyB3YXMgYWxsb2NhdGVkIGFuZCBpbml0aWFs
aXplZC4KICAgICBfcV9vblZpc2libGVDaGFuZ2VkKCk7CkBAIC04MDksMjAgKzgxMSw2IEBAIHZv
aWQgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6OnVwZGF0ZVZpZXdwb3J0U2l6ZSgpCiAgICAg
d2ViUGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpLT5zZXRWaXNpYmxlQ29udGVudHNSZWN0KEZsb2F0
UmVjdChGbG9hdFBvaW50KCksIHZpZXdwb3J0U2l6ZSksIDEsIEZsb2F0UG9pbnQoKSk7CiB9CiAK
LXZvaWQgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6OmVuYWJsZU1vdXNlRXZlbnRzKCkKLXsK
LSAgICBRX1EoUVF1aWNrV2ViVmlldyk7Ci0gICAgcS0+c2V0QWNjZXB0ZWRNb3VzZUJ1dHRvbnMo
UXQ6Ok1vdXNlQnV0dG9uTWFzayk7Ci0gICAgcS0+c2V0QWNjZXB0SG92ZXJFdmVudHModHJ1ZSk7
Ci19Ci0KLXZvaWQgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6OmRpc2FibGVNb3VzZUV2ZW50
cygpCi17Ci0gICAgUV9RKFFRdWlja1dlYlZpZXcpOwotICAgIHEtPnNldEFjY2VwdGVkTW91c2VC
dXR0b25zKFF0OjpOb0J1dHRvbik7Ci0gICAgcS0+c2V0QWNjZXB0SG92ZXJFdmVudHMoZmFsc2Up
OwotfQotCiBxcmVhbCBRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZTo6em9vbUZhY3RvcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIHdlYlBhZ2VQcm94eS0+cGFnZVpvb21GYWN0b3IoKTsKQEAgLTE2
ODEsMzUgKzE2NjksNDAgQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjpwbGF0Zm9ybUluaXRpYWxpemUo
KQogCiBib29sIFFRdWlja1dlYlZpZXc6OmNoaWxkTW91c2VFdmVudEZpbHRlcihRUXVpY2tJdGVt
KiBpdGVtLCBRRXZlbnQqIGV2ZW50KQogewotICAgIGlmICghaXNWaXNpYmxlKCkgfHwgIWlzRW5h
YmxlZCgpIHx8ICFzX2ZsaWNrYWJsZVZpZXdwb3J0RW5hYmxlZCkKKyAgICBpZiAoIWlzVmlzaWJs
ZSgpIHx8ICFpc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIFFRdWlja0ZsaWNrYWJsZTo6Y2hp
bGRNb3VzZUV2ZW50RmlsdGVyKGl0ZW0sIGV2ZW50KTsKIAotICAgIFFfRChRUXVpY2tXZWJWaWV3
KTsKLSAgICBpZiAoZC0+bV9kaWFsb2dBY3RpdmUpIHsKLSAgICAgICAgZXZlbnQtPmlnbm9yZSgp
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBp
cyB1c2VkIGJ5IE11bHRpUG9pbnRUb3VjaEFyZWEgYW5kIFBpbmNoQXJlYSB0byBmaWx0ZXIKICAg
ICAvLyB0b3VjaCBldmVudHMsIHRodXMgdG8gaGluZGVyIHRoZSBjYW52YXMgZnJvbSBzZW5kaW5n
IHN5bnRoZXNpemVkCiAgICAgLy8gbW91c2UgZXZlbnRzIHRvIHRoZSBGbGlja2FibGUgaW1wbGVt
ZW50YXRpb24gd2UgbmVlZCB0byByZWltcGxlbWVudAotICAgIC8vIGNoaWxkTW91c2VFdmVudEZp
bHRlciBhbmQgZmlsdGVyIGluY29taW5nIHRvdWNoIGV2ZW50cyBhcyB3ZWxsLgorICAgIC8vIGNo
aWxkTW91c2VFdmVudEZpbHRlciB0byBpZ25vcmUgdG91Y2ggZXZlbnRzIGFuZCBtb3VzZSBldmVu
dHMKKyAgICAvLyB0YXJnZXRpbmcgdGhlIHdlYiBwYWdlLgogCiAgICAgc3dpdGNoIChldmVudC0+
dHlwZSgpKSB7CiAgICAgY2FzZSBRRXZlbnQ6Ok1vdXNlQnV0dG9uUHJlc3M6Ci0gICAgICAgIG1v
dXNlUHJlc3NFdmVudChzdGF0aWNfY2FzdDxRTW91c2VFdmVudCo+KGV2ZW50KSk7Ci0gICAgICAg
IHJldHVybiBldmVudC0+aXNBY2NlcHRlZCgpOwogICAgIGNhc2UgUUV2ZW50OjpNb3VzZU1vdmU6
Ci0gICAgICAgIG1vdXNlTW92ZUV2ZW50KHN0YXRpY19jYXN0PFFNb3VzZUV2ZW50Kj4oZXZlbnQp
KTsKLSAgICAgICAgcmV0dXJuIGV2ZW50LT5pc0FjY2VwdGVkKCk7Ci0gICAgY2FzZSBRRXZlbnQ6
Ok1vdXNlQnV0dG9uUmVsZWFzZToKLSAgICAgICAgbW91c2VSZWxlYXNlRXZlbnQoc3RhdGljX2Nh
c3Q8UU1vdXNlRXZlbnQqPihldmVudCkpOwotICAgICAgICByZXR1cm4gZXZlbnQtPmlzQWNjZXB0
ZWQoKTsKKyAgICBjYXNlIFFFdmVudDo6TW91c2VCdXR0b25SZWxlYXNlOiB7CisgICAgICAgIC8v
IERvIGEgc2ltcGxlIGhpdC10ZXN0IHNpbWlsYXIgdG8gd2hhdCB0aGUgRmxpY2thYmxlIGRvZXMK
KyAgICAgICAgLy8gaW4gc2VuZE1vdXNlRXZlbnQgdG8gZGVjaWRlIGlmIHRoZSBtb3VzZSBldmVu
dCBpcyB0YXJnZXRpbmcKKyAgICAgICAgLy8gdGhlIHBhZ2Ugb3Igc29tZSBvdGhlciBpdGVtIG9u
IHRoZSBjb250ZW50IGl0ZW0uCisgICAgICAgIGNvbnN0IFFNb3VzZUV2ZW50KiBtb3VzZUV2ZW50
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgUU1vdXNlRXZlbnQqPihldmVudCk7CisgICAgICAgIFFQb2lu
dEYgbG9jYWxQb3MgPSBwYWdlKCktPm1hcEZyb21TY2VuZShtb3VzZUV2ZW50LT53aW5kb3dQb3Mo
KSk7CisgICAgICAgIGV2ZW50LT5pZ25vcmUoKTsKKworICAgICAgICAvLyBGb3JjZSBtb3VzZSBl
dmVudHMgdGFyZ2V0aW5nIHRoZSB3ZWIgcGFnZSB0aHJvdWdoIHRoZSBkZWZhdWx0CisgICAgICAg
IC8vIHByb3BhZ2F0aW9uIHBhdGggb2YgbW91c2UqRXZlbnQoKS4gVGhpcyB3YXkgdGhlIGV2ZW50
cyBtZWFudAorICAgICAgICAvLyBmb3IgYSBjaGlsZCBkaWFsb2cgYXJlIGFsc28gcHJvcGVybHkg
cHJvcGFnYXRlZCB0byB0aGUgZGlhbG9nLgorICAgICAgICBpZiAocGFnZSgpLT5jb250YWlucyhs
b2NhbFBvcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQogICAgIGNhc2UgUUV2ZW50OjpUb3VjaEJlZ2luOgogICAgIGNhc2UgUUV2ZW50OjpUb3Vj
aFVwZGF0ZToKICAgICBjYXNlIFFFdmVudDo6VG91Y2hFbmQ6Ci0gICAgICAgIHRvdWNoRXZlbnQo
c3RhdGljX2Nhc3Q8UVRvdWNoRXZlbnQqPihldmVudCkpOwotICAgICAgICByZXR1cm4gZXZlbnQt
PmlzQWNjZXB0ZWQoKTsKKyAgICAgICAgLy8gRm9yY2UgYWxsIHRvdWNoIGV2ZW50cyB0aHJvdWdo
IHRoZSBkZWZhdWx0IHByb3BhZ2F0aW9uIHBhdGguCisgICAgICAgIGV2ZW50LT5pZ25vcmUoKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAg
IH0KQEAgLTE3NjcsMTAgKzE3NjAsNiBAQCB2b2lkIFFRdWlja1dlYlZpZXc6OmZvY3VzT3V0RXZl
bnQoUUZvY3VzRXZlbnQqIGV2ZW50KQogdm9pZCBRUXVpY2tXZWJWaWV3Ojp0b3VjaEV2ZW50KFFU
b3VjaEV2ZW50KiBldmVudCkKIHsKICAgICBRX0QoUVF1aWNrV2ViVmlldyk7Ci0gICAgaWYgKGQt
Pm1fZGlhbG9nQWN0aXZlKSB7Ci0gICAgICAgIGV2ZW50LT5pZ25vcmUoKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KIAogICAgIGJvb2wgbG9ja2luZ0Rpc2FibGVkID0gZmxpY2thYmxlRGlyZWN0
aW9uKCkgIT0gQXV0b0ZsaWNrRGlyZWN0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
fCBldmVudC0+dG91Y2hQb2ludHMoKS5zaXplKCkgIT0gMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4IGZjNjY0YTExM2Fi
NjQwOGNlODgwNjhkOTA4NjIxYTRhZTIyYjI3MjEuLjIxNmNkNmFkNTZjNWY4NjNjYzQ0MzBmYjU1
NDQ1ZTY5OTNmMDdhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlld19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKQEAgLTcxLDkgKzcxLDYgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIG9uQ29tcG9uZW50Q29tcGxldGUoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBlbmFibGVNb3VzZUV2ZW50cygpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlTW91c2VF
dmVudHMoKSB7IH0KLQogICAgIHZpcnR1YWwgdm9pZCBwcm92aXNpb25hbExvYWREaWRTdGFydChj
b25zdCBXVEY6OlN0cmluZyYgdXJsKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdURjo6U3RyaW5nJiB1cmwpOwogICAg
IHZpcnR1YWwgdm9pZCBsb2FkRGlkQ29tbWl0KCk7CkBAIC0xMjUsOCArMTIyLDYgQEAgcHVibGlj
OgogICAgIFFQb2ludEYgY29udGVudFBvcygpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29udGVudFBv
cyhjb25zdCBRUG9pbnRGJik7CiAKLSAgICB2b2lkIHNldERpYWxvZ0FjdGl2ZShib29sIGFjdGl2
ZSkgeyBtX2RpYWxvZ0FjdGl2ZSA9IGFjdGl2ZTsgfQotCiAgICAgdm9pZCB1cGRhdGVJY29uKCk7
CiAKICAgICAvLyBQYWdlQ2xpZW50LgpAQCAtMTkzLDcgKzE4OCw2IEBAIHByb3RlY3RlZDoKICAg
ICBib29sIG1fdXNlRGVmYXVsdENvbnRlbnRJdGVtU2l6ZTsKICAgICBib29sIG1fbmF2aWdhdG9y
UXRPYmplY3RFbmFibGVkOwogICAgIGJvb2wgbV9yZW5kZXJUb09mZnNjcmVlbkJ1ZmZlcjsKLSAg
ICBib29sIG1fZGlhbG9nQWN0aXZlOwogICAgIGJvb2wgbV9hbGxvd0FueUhUVFBTQ2VydGlmaWNh
dGVGb3JMb2NhbEhvc3Q7CiAgICAgV1RGOjpTdHJpbmcgbV9pY29uVXJsOwogICAgIGludCBtX2xv
YWRQcm9ncmVzczsKQEAgLTIwNyw4ICsyMDEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGluaXRpYWxpemUoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYgPSAwLCBXS1BhZ2VHcm91cFJlZiBw
YWdlR3JvdXBSZWYgPSAwKTsKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlTW91c2VFdmVudHMoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZU1vdXNlRXZlbnRzKCk7CiAKICAgICBxcmVhbCB6b29tRmFjdG9yKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRab29tRmFjdG9yKHFyZWFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuY3BwCmluZGV4IDNkNGM0ZTZkNmE0ZjcwMTcwZDQzMmMy
YWE2OWQzZjlhZGM1NmU5OWYuLjYzODcxNWZiMTc4OTYwNzNiZGE3MWMzYTMxZWViNDFlN2JjZDY3
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5l
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNw
cApAQCAtMzEwLDE2ICszMTAsNyBAQCB2b2lkIFF0RGlhbG9nUnVubmVyOjpydW4oKQogICAgICAg
ICByZXR1cm47CiAKICAgICBjb25uZWN0KGNvbnRleHQsIFNJR05BTChkaXNtaXNzZWQoKSksIFNM
T1QocXVpdCgpKSk7Ci0KLSAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZSogd2ViVmlld1ByaXZhdGUg
PSBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Z2V0KG1fd2ViVmlldyk7Ci0KLSAgICAvLyBGSVhNRTog
Q2hhbmdlIHRoZSB3YXkgd2UgZGlzYWJsZSBtb3VzZSBhbmQgdG91Y2ggZXZlbnRzIHRvIHVzZSB0
aGUKLSAgICAvLyBjb25jZXB0IG9mIHN1c3BlbmRpbmcgaW5zdGVhZCAoaW4gdGhpcyBjYXNlIGV2
ZW50IHByb2Nlc3NpbmcpLgotICAgIHdlYlZpZXdQcml2YXRlLT5kaXNhYmxlTW91c2VFdmVudHMo
KTsKLSAgICB3ZWJWaWV3UHJpdmF0ZS0+bV9kaWFsb2dBY3RpdmUgPSB0cnVlOwogICAgIGV4ZWMo
KTsgLy8gU3BpbiB0aGUgZXZlbnQgbG9vcAotICAgIHdlYlZpZXdQcml2YXRlLT5tX2RpYWxvZ0Fj
dGl2ZSA9IGZhbHNlOwotICAgIHdlYlZpZXdQcml2YXRlLT5lbmFibGVNb3VzZUV2ZW50cygpOwog
fQogCiBib29sIFF0RGlhbG9nUnVubmVyOjppbml0Rm9yQWxlcnQoY29uc3QgUVN0cmluZyYgbWVz
c2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb2xvckNo
b29zZXJQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb2xvckNo
b29zZXJQcm94eVF0LmNwcAppbmRleCBlNDZkYTMyNmQ2OTkxYjM3MWJiZTRhNzJjNjFhMDVkYjJl
MDBlMDEyLi45ZmQyOTZmZDE4OWM5Nzg5ZjE5YmUxNWJlZDBjZGM1MWQyYmZiYzQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5
UXQuY3BwCkBAIC05NSw3ICs5NSw2IEBAIHZvaWQgV2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6Y3Jl
YXRlSXRlbShRT2JqZWN0KiBjb250ZXh0T2JqZWN0KQogICAgIG1fY29sb3JDaG9vc2VyLT5zZXRQ
YXJlbnRJdGVtKG1fd2ViVmlldyk7CiAKICAgICBjb21wb25lbnQtPmNvbXBsZXRlQ3JlYXRlKCk7
Ci0gICAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmdldChtX3dlYlZpZXcpLT5zZXREaWFsb2dBY3Rp
dmUodHJ1ZSk7CiB9CiAKIHZvaWQgV2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6Y3JlYXRlQ29udGV4
dChRUW1sQ29tcG9uZW50KiBjb21wb25lbnQsIFFPYmplY3QqIGNvbnRleHRPYmplY3QpCkBAIC0x
MzMsOCArMTMyLDYgQEAgdm9pZCBXZWJDb2xvckNob29zZXJQcm94eVF0Ojpub3RpZnlDb2xvclNl
bGVjdGVkKGNvbnN0IFFDb2xvciYgY29sb3IpCiAKIHZvaWQgV2ViQ29sb3JDaG9vc2VyUHJveHlR
dDo6ZW5kQ2hvb3NlcigpCiB7Ci0gICAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmdldChtX3dlYlZp
ZXcpLT5zZXREaWFsb2dBY3RpdmUoZmFsc2UpOwotCiAgICAgbV9jb2xvckNob29zZXIuY2xlYXIo
KTsKICAgICBtX2NvbnRleHQuY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQuY3BwCmluZGV4IDc1MTI4OTJiYjdmM2Y2NDgw
YjE2NGQ4Y2U1MTAyZGQ5NGU2OTk0NmIuLjMyZWMxODU3YjQ2ZWVlYmI3YWY1NzkwNDEzYTFhOTcz
MGRiMGE3ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1
cE1lbnVQcm94eVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9w
dXBNZW51UHJveHlRdC5jcHAKQEAgLTI3OCwxMyArMjc4LDExIEBAIHZvaWQgV2ViUG9wdXBNZW51
UHJveHlRdDo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBXZWJDb3JlOjpUZXh0
RGlyZWN0CiAgICAgICAgIGhpZGVQb3B1cE1lbnUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Z2V0KG1fd2ViVmlldyktPnNldERpYWxvZ0FjdGl2
ZSh0cnVlKTsKIH0KIAogdm9pZCBXZWJQb3B1cE1lbnVQcm94eVF0OjpoaWRlUG9wdXBNZW51KCkK
IHsKICAgICBtX2l0ZW1TZWxlY3Rvci5jbGVhcigpOwotICAgIFFRdWlja1dlYlZpZXdQcml2YXRl
OjpnZXQobV93ZWJWaWV3KS0+c2V0RGlhbG9nQWN0aXZlKGZhbHNlKTsKICAgICBtX2NvbnRleHQu
Y2xlYXIoKTsKIAogICAgIGlmIChtX2NsaWVudCkgewo=
</data>
<flag name="review"
          id="166067"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156660</attachid>
            <date>2012-08-06 04:50:48 -0700</date>
            <delta_ts>2012-08-06 06:03:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93125-20120806135037.patch</filename>
            <type>text/plain</type>
            <size>9644</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzc4OGFiMzY3YWI2YjMx
MTI2ZTExYmJkYWFjODQ5YjI1Mjc5ZWFlNS4uMzNhNDVmMWMwMzBiNWFiNDNlNDMzZjhjMWI3ZjM5
ODAxODg4OWYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA4LTA2ICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAbm9raWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBS
ZW1vdmUgd29ya2Fyb3VuZHMgZnJvbSBpbnB1dCBldmVudCBoYW5kbGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxMjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBpbnB1dCBldmVudCBwcm9w
YWdhdGlvbiBpbiBRdDUgaGFzIGJlZW4gZml4ZWQgd2UgY2FuIHJlbW92ZQorICAgICAgICB0aGUg
d29ya2Fyb3VuZHMgaW50cm9kdWNlZCB0byBwcmV2ZW50IHRoZSBRTUwgV2ViVmlldyBmcm9tIHJl
Y2VpdmluZworICAgICAgICBpbnB1dCBldmVudHMgdGFyZ2V0aW5nIGEgY2hpbGQgZGlhbG9nLgor
ICAgICAgICBUbyBkbyB0aGlzIHRoZSBjaGlsZE1vdXNlRXZlbnRGaWx0ZXIgZnVuY3Rpb24gaGFz
IHRvIGJlIGNoYW5nZWQgdG8KKyAgICAgICAgZm9yY2UgdG91Y2ggYW5kIG1vdXNlIGV2ZW50cyB0
aHJvdWdoIHRoZSBkZWZhdWx0IHByb3BhZ2F0aW9uIHBhdGguCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZh
dGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdMZWdhY3lQ
cml2YXRlOjppbml0aWFsaXplKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6OmNoaWxkTW91c2VF
dmVudEZpbHRlcik6CisgICAgICAgIChRUXVpY2tXZWJWaWV3Ojp0b3VjaEV2ZW50KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmg6CisgICAgICAgIChRUXVp
Y2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UXREaWFsb2dSdW5uZXI6OnJ1bik6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNv
bG9yQ2hvb3NlclByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvckNob29zZXJQ
cm94eVF0OjpjcmVhdGVJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JDaG9vc2VyUHJv
eHlRdDo6ZW5kQ2hvb3Nlcik6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVBy
b3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eVF0OjpzaG93UG9w
dXBNZW51KToKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlRdDo6aGlkZVBvcHVw
TWVudSk6CisKIDIwMTItMDgtMDYgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtXSzJdW0dUS10gSW1wbGVtZW50IGEgbmV3IHNwZWxsIGNoZWNr
ZXIgQVBJIGZvciBXZWJLaXQyR1RLKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKaW5kZXggODJhNzAwOWUyZmQ3ZGM2MzI0ZmNjMWYzYzhi
ZDAyYWM3YTBiNzdlZS4uY2Y2NDBkYWEwMjhlNGVmNDMyZTI5ZmZiNDc5MGMxODQ1ODhiYjBlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcu
Y3BwCkBAIC0yNzAsNyArMjcwLDYgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZp
ZXdQcml2YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgICwgbV91c2VEZWZhdWx0Q29u
dGVudEl0ZW1TaXplKHRydWUpCiAgICAgLCBtX25hdmlnYXRvclF0T2JqZWN0RW5hYmxlZChmYWxz
ZSkKICAgICAsIG1fcmVuZGVyVG9PZmZzY3JlZW5CdWZmZXIoZmFsc2UpCi0gICAgLCBtX2RpYWxv
Z0FjdGl2ZShmYWxzZSkKICAgICAsIG1fYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yTG9jYWxI
b3N0KGZhbHNlKQogICAgICwgbV9sb2FkUHJvZ3Jlc3MoMCkKIHsKQEAgLTc5NSw4ICs3OTQsMTEg
QEAgUVF1aWNrV2ViVmlld0xlZ2FjeVByaXZhdGU6OlFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRl
KFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogCiB2b2lkIFFRdWlja1dlYlZpZXdMZWdhY3lQcml2
YXRlOjppbml0aWFsaXplKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBw
YWdlR3JvdXBSZWYpCiB7CisgICAgUV9RKFFRdWlja1dlYlZpZXcpOwogICAgIFFRdWlja1dlYlZp
ZXdQcml2YXRlOjppbml0aWFsaXplKGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZik7Ci0gICAgZW5h
YmxlTW91c2VFdmVudHMoKTsKKworICAgIHEtPnNldEFjY2VwdGVkTW91c2VCdXR0b25zKFF0OjpN
b3VzZUJ1dHRvbk1hc2spOworICAgIHEtPnNldEFjY2VwdEhvdmVyRXZlbnRzKHRydWUpOwogCiAg
ICAgLy8gVHJpZ2dlciBzZXR0aW5nIG9mIGNvcnJlY3QgdmlzaWJpbGl0eSBmbGFncyBhZnRlciBl
dmVyeXRoaW5nIHdhcyBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkLgogICAgIF9xX29uVmlzaWJs
ZUNoYW5nZWQoKTsKQEAgLTgxNiwyMCArODE4LDYgQEAgdm9pZCBRUXVpY2tXZWJWaWV3TGVnYWN5
UHJpdmF0ZTo6dXBkYXRlVmlld3BvcnRTaXplKCkKICAgICB3ZWJQYWdlUHJveHktPmRyYXdpbmdB
cmVhKCktPnNldFZpc2libGVDb250ZW50c1JlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgdmll
d3BvcnRTaXplKSwgMSwgRmxvYXRQb2ludCgpKTsKIH0KIAotdm9pZCBRUXVpY2tXZWJWaWV3TGVn
YWN5UHJpdmF0ZTo6ZW5hYmxlTW91c2VFdmVudHMoKQotewotICAgIFFfUShRUXVpY2tXZWJWaWV3
KTsKLSAgICBxLT5zZXRBY2NlcHRlZE1vdXNlQnV0dG9ucyhRdDo6TW91c2VCdXR0b25NYXNrKTsK
LSAgICBxLT5zZXRBY2NlcHRIb3ZlckV2ZW50cyh0cnVlKTsKLX0KLQotdm9pZCBRUXVpY2tXZWJW
aWV3TGVnYWN5UHJpdmF0ZTo6ZGlzYWJsZU1vdXNlRXZlbnRzKCkKLXsKLSAgICBRX1EoUVF1aWNr
V2ViVmlldyk7Ci0gICAgcS0+c2V0QWNjZXB0ZWRNb3VzZUJ1dHRvbnMoUXQ6Ok5vQnV0dG9uKTsK
LSAgICBxLT5zZXRBY2NlcHRIb3ZlckV2ZW50cyhmYWxzZSk7Ci19Ci0KIHFyZWFsIFFRdWlja1dl
YlZpZXdMZWdhY3lQcml2YXRlOjp6b29tRmFjdG9yKCkgY29uc3QKIHsKICAgICByZXR1cm4gd2Vi
UGFnZVByb3h5LT5wYWdlWm9vbUZhY3RvcigpOwpAQCAtMTY4NSwzNiArMTY3MywyNSBAQCB2b2lk
IFFRdWlja1dlYlZpZXc6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAKIGJvb2wgUVF1aWNrV2ViVmll
dzo6Y2hpbGRNb3VzZUV2ZW50RmlsdGVyKFFRdWlja0l0ZW0qIGl0ZW0sIFFFdmVudCogZXZlbnQp
CiB7Ci0gICAgaWYgKCFpc1Zpc2libGUoKSB8fCAhaXNFbmFibGVkKCkgfHwgIXNfZmxpY2thYmxl
Vmlld3BvcnRFbmFibGVkKQotICAgICAgICByZXR1cm4gUVF1aWNrRmxpY2thYmxlOjpjaGlsZE1v
dXNlRXZlbnRGaWx0ZXIoaXRlbSwgZXZlbnQpOwotCi0gICAgUV9EKFFRdWlja1dlYlZpZXcpOwot
ICAgIGlmIChkLT5tX2RpYWxvZ0FjdGl2ZSkgewotICAgICAgICBldmVudC0+aWdub3JlKCk7Cisg
ICAgaWYgKCFpc1Zpc2libGUoKSB8fCAhaXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkgTXVsdGlQb2ludFRv
dWNoQXJlYSBhbmQgUGluY2hBcmVhIHRvIGZpbHRlcgogICAgIC8vIHRvdWNoIGV2ZW50cywgdGh1
cyB0byBoaW5kZXIgdGhlIGNhbnZhcyBmcm9tIHNlbmRpbmcgc3ludGhlc2l6ZWQKICAgICAvLyBt
b3VzZSBldmVudHMgdG8gdGhlIEZsaWNrYWJsZSBpbXBsZW1lbnRhdGlvbiB3ZSBuZWVkIHRvIHJl
aW1wbGVtZW50Ci0gICAgLy8gY2hpbGRNb3VzZUV2ZW50RmlsdGVyIGFuZCBmaWx0ZXIgaW5jb21p
bmcgdG91Y2ggZXZlbnRzIGFzIHdlbGwuCisgICAgLy8gY2hpbGRNb3VzZUV2ZW50RmlsdGVyIHRv
IGlnbm9yZSB0b3VjaCBhbmQgbW91c2UgZXZlbnRzLgogCiAgICAgc3dpdGNoIChldmVudC0+dHlw
ZSgpKSB7CiAgICAgY2FzZSBRRXZlbnQ6Ok1vdXNlQnV0dG9uUHJlc3M6Ci0gICAgICAgIG1vdXNl
UHJlc3NFdmVudChzdGF0aWNfY2FzdDxRTW91c2VFdmVudCo+KGV2ZW50KSk7Ci0gICAgICAgIHJl
dHVybiBldmVudC0+aXNBY2NlcHRlZCgpOwogICAgIGNhc2UgUUV2ZW50OjpNb3VzZU1vdmU6Ci0g
ICAgICAgIG1vdXNlTW92ZUV2ZW50KHN0YXRpY19jYXN0PFFNb3VzZUV2ZW50Kj4oZXZlbnQpKTsK
LSAgICAgICAgcmV0dXJuIGV2ZW50LT5pc0FjY2VwdGVkKCk7CiAgICAgY2FzZSBRRXZlbnQ6Ok1v
dXNlQnV0dG9uUmVsZWFzZToKLSAgICAgICAgbW91c2VSZWxlYXNlRXZlbnQoc3RhdGljX2Nhc3Q8
UU1vdXNlRXZlbnQqPihldmVudCkpOwotICAgICAgICByZXR1cm4gZXZlbnQtPmlzQWNjZXB0ZWQo
KTsKICAgICBjYXNlIFFFdmVudDo6VG91Y2hCZWdpbjoKICAgICBjYXNlIFFFdmVudDo6VG91Y2hV
cGRhdGU6CiAgICAgY2FzZSBRRXZlbnQ6OlRvdWNoRW5kOgotICAgICAgICB0b3VjaEV2ZW50KHN0
YXRpY19jYXN0PFFUb3VjaEV2ZW50Kj4oZXZlbnQpKTsKLSAgICAgICAgcmV0dXJuIGV2ZW50LT5p
c0FjY2VwdGVkKCk7CisgICAgICAgIC8vIEZvcmNlIGFsbCBtb3VzZSBhbmQgdG91Y2ggZXZlbnRz
IHRocm91Z2ggdGhlIGRlZmF1bHQgcHJvcGFnYXRpb24gcGF0aC4KKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVChldmVudC0+dHlwZSgpID09IFFFdmVu
dDo6VW5ncmFiTW91c2UpOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTE3NzEsMTAgKzE3
NDgsNiBAQCB2b2lkIFFRdWlja1dlYlZpZXc6OmZvY3VzT3V0RXZlbnQoUUZvY3VzRXZlbnQqIGV2
ZW50KQogdm9pZCBRUXVpY2tXZWJWaWV3Ojp0b3VjaEV2ZW50KFFUb3VjaEV2ZW50KiBldmVudCkK
IHsKICAgICBRX0QoUVF1aWNrV2ViVmlldyk7Ci0gICAgaWYgKGQtPm1fZGlhbG9nQWN0aXZlKSB7
Ci0gICAgICAgIGV2ZW50LT5pZ25vcmUoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAg
IGJvb2wgbG9ja2luZ0Rpc2FibGVkID0gZmxpY2thYmxlRGlyZWN0aW9uKCkgIT0gQXV0b0ZsaWNr
RGlyZWN0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBldmVudC0+dG91Y2hQb2lu
dHMoKS5zaXplKCkgIT0gMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4IDc4YWRmYjM4NTk0Njk1MmFhN2RjODNlYWZhMDdl
YTVhM2MzNzBlM2QuLmQ4YTg4ZjhjOWQzMWZmNWQyZGYzMzU1MjMzYjk0OGYxZTY5ZmQyNDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19w
X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cF9wLmgKQEAgLTcxLDkgKzcxLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIG9uQ29t
cG9uZW50Q29tcGxldGUoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBlbmFibGVNb3VzZUV2ZW50cygp
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlTW91c2VFdmVudHMoKSB7IH0KLQogICAgIHZp
cnR1YWwgdm9pZCBwcm92aXNpb25hbExvYWREaWRTdGFydChjb25zdCBXVEY6OlN0cmluZyYgdXJs
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkKGNvbnN0IFdURjo6U3RyaW5nJiB1cmwpOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkRGlk
Q29tbWl0KCk7CkBAIC0xMjUsOCArMTIyLDYgQEAgcHVibGljOgogICAgIFFQb2ludEYgY29udGVu
dFBvcygpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29udGVudFBvcyhjb25zdCBRUG9pbnRGJik7CiAK
LSAgICB2b2lkIHNldERpYWxvZ0FjdGl2ZShib29sIGFjdGl2ZSkgeyBtX2RpYWxvZ0FjdGl2ZSA9
IGFjdGl2ZTsgfQotCiAgICAgdm9pZCB1cGRhdGVJY29uKCk7CiAKICAgICAvLyBQYWdlQ2xpZW50
LgpAQCAtMTk0LDcgKzE4OSw2IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fdXNlRGVmYXVsdENv
bnRlbnRJdGVtU2l6ZTsKICAgICBib29sIG1fbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkOwogICAg
IGJvb2wgbV9yZW5kZXJUb09mZnNjcmVlbkJ1ZmZlcjsKLSAgICBib29sIG1fZGlhbG9nQWN0aXZl
OwogICAgIGJvb2wgbV9hbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JMb2NhbEhvc3Q7CiAgICAg
V1RGOjpTdHJpbmcgbV9pY29uVXJsOwogICAgIGludCBtX2xvYWRQcm9ncmVzczsKQEAgLTIwOCw4
ICsyMDIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoV0tDb250ZXh0
UmVmIGNvbnRleHRSZWYgPSAwLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYgPSAwKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZW5hYmxlTW91c2VFdmVudHMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZU1vdXNlRXZlbnRz
KCk7CiAKICAgICBxcmVhbCB6b29tRmFjdG9yKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRab29tRmFj
dG9yKHFyZWFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERp
YWxvZ1J1bm5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5u
ZXIuY3BwCmluZGV4IDNkNGM0ZTZkNmE0ZjcwMTcwZDQzMmMyYWE2OWQzZjlhZGM1NmU5OWYuLjYz
ODcxNWZiMTc4OTYwNzNiZGE3MWMzYTMxZWViNDFlN2JjZDY3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcApAQCAtMzEwLDE2ICszMTAsNyBA
QCB2b2lkIFF0RGlhbG9nUnVubmVyOjpydW4oKQogICAgICAgICByZXR1cm47CiAKICAgICBjb25u
ZWN0KGNvbnRleHQsIFNJR05BTChkaXNtaXNzZWQoKSksIFNMT1QocXVpdCgpKSk7Ci0KLSAgICBR
UXVpY2tXZWJWaWV3UHJpdmF0ZSogd2ViVmlld1ByaXZhdGUgPSBRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6Z2V0KG1fd2ViVmlldyk7Ci0KLSAgICAvLyBGSVhNRTogQ2hhbmdlIHRoZSB3YXkgd2UgZGlz
YWJsZSBtb3VzZSBhbmQgdG91Y2ggZXZlbnRzIHRvIHVzZSB0aGUKLSAgICAvLyBjb25jZXB0IG9m
IHN1c3BlbmRpbmcgaW5zdGVhZCAoaW4gdGhpcyBjYXNlIGV2ZW50IHByb2Nlc3NpbmcpLgotICAg
IHdlYlZpZXdQcml2YXRlLT5kaXNhYmxlTW91c2VFdmVudHMoKTsKLSAgICB3ZWJWaWV3UHJpdmF0
ZS0+bV9kaWFsb2dBY3RpdmUgPSB0cnVlOwogICAgIGV4ZWMoKTsgLy8gU3BpbiB0aGUgZXZlbnQg
bG9vcAotICAgIHdlYlZpZXdQcml2YXRlLT5tX2RpYWxvZ0FjdGl2ZSA9IGZhbHNlOwotICAgIHdl
YlZpZXdQcml2YXRlLT5lbmFibGVNb3VzZUV2ZW50cygpOwogfQogCiBib29sIFF0RGlhbG9nUnVu
bmVyOjppbml0Rm9yQWxlcnQoY29uc3QgUVN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb2xvckNob29zZXJQcm94eVF0LmNwcAppbmRl
eCBlNDZkYTMyNmQ2OTkxYjM3MWJiZTRhNzJjNjFhMDVkYjJlMDBlMDEyLi45ZmQyOTZmZDE4OWM5
Nzg5ZjE5YmUxNWJlZDBjZGM1MWQyYmZiYzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvV2ViQ29sb3JDaG9vc2VyUHJveHlRdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1dlYkNvbG9yQ2hvb3NlclByb3h5UXQuY3BwCkBAIC05NSw3ICs5NSw2
IEBAIHZvaWQgV2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6Y3JlYXRlSXRlbShRT2JqZWN0KiBjb250
ZXh0T2JqZWN0KQogICAgIG1fY29sb3JDaG9vc2VyLT5zZXRQYXJlbnRJdGVtKG1fd2ViVmlldyk7
CiAKICAgICBjb21wb25lbnQtPmNvbXBsZXRlQ3JlYXRlKCk7Ci0gICAgUVF1aWNrV2ViVmlld1By
aXZhdGU6OmdldChtX3dlYlZpZXcpLT5zZXREaWFsb2dBY3RpdmUodHJ1ZSk7CiB9CiAKIHZvaWQg
V2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6Y3JlYXRlQ29udGV4dChRUW1sQ29tcG9uZW50KiBjb21w
b25lbnQsIFFPYmplY3QqIGNvbnRleHRPYmplY3QpCkBAIC0xMzMsOCArMTMyLDYgQEAgdm9pZCBX
ZWJDb2xvckNob29zZXJQcm94eVF0Ojpub3RpZnlDb2xvclNlbGVjdGVkKGNvbnN0IFFDb2xvciYg
Y29sb3IpCiAKIHZvaWQgV2ViQ29sb3JDaG9vc2VyUHJveHlRdDo6ZW5kQ2hvb3NlcigpCiB7Ci0g
ICAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmdldChtX3dlYlZpZXcpLT5zZXREaWFsb2dBY3RpdmUo
ZmFsc2UpOwotCiAgICAgbV9jb2xvckNob29zZXIuY2xlYXIoKTsKICAgICBtX2NvbnRleHQuY2xl
YXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYlBvcHVw
TWVudVByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVu
dVByb3h5UXQuY3BwCmluZGV4IDc1MTI4OTJiYjdmM2Y2NDgwYjE2NGQ4Y2U1MTAyZGQ5NGU2OTk0
NmIuLjMyZWMxODU3YjQ2ZWVlYmI3YWY1NzkwNDEzYTFhOTczMGRiMGE3ZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQcm94eVF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdC5jcHAKQEAg
LTI3OCwxMyArMjc4LDExIEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlRdDo6c2hvd1BvcHVwTWVu
dShjb25zdCBJbnRSZWN0JiByZWN0LCBXZWJDb3JlOjpUZXh0RGlyZWN0CiAgICAgICAgIGhpZGVQ
b3B1cE1lbnUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBRUXVpY2tXZWJWaWV3UHJp
dmF0ZTo6Z2V0KG1fd2ViVmlldyktPnNldERpYWxvZ0FjdGl2ZSh0cnVlKTsKIH0KIAogdm9pZCBX
ZWJQb3B1cE1lbnVQcm94eVF0OjpoaWRlUG9wdXBNZW51KCkKIHsKICAgICBtX2l0ZW1TZWxlY3Rv
ci5jbGVhcigpOwotICAgIFFRdWlja1dlYlZpZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+c2V0
RGlhbG9nQWN0aXZlKGZhbHNlKTsKICAgICBtX2NvbnRleHQuY2xlYXIoKTsKIAogICAgIGlmICht
X2NsaWVudCkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>