<?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>73746</bug_id>
          
          <creation_ts>2011-12-03 10:16:11 -0800</creation_ts>
          <short_desc>[GTK] Don&apos;t log ATK document events in DRT</short_desc>
          <delta_ts>2011-12-04 01:39:43 -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>Accessibility</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>514519</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-03 10:16:11 -0800</bug_when>
    <thetext>Some months ago, we introduced a new feature in the WKGTK&apos;s DRT so it could log accessibility related events just by telling it so (accessibilityController.logAccessibilityEvents()), which basically meant that the following type of events would be logged:

   1. Events related to the accessible objects: &apos;state-change&apos;, &apos;focus-event&apos;, &apos;visible-data-changed&apos;...
   2. Events related to the &apos;document&apos; representing the web, that is, the following three events: &apos;load-complete&apos;, &apos;load-stopped&apos; and &apos;reload&apos;.

It turned out that, while the first kind of loggintg (1) proved itself to be really useful and convenient, the second one presented several problems, specially in those cases where the layout test was performing reloads, contained different frames... behaving with certain flakyness some times, which caused some tests (sometimes completely unrelated to this loading events) to be skipped, since the actual output was different in those document-related lines.

So, and based in some other experiences, I&apos;m proposing now to remove the second kinf of logging (2) from the WKGTK&apos;s DRT, and so replace the layout test &apos;document-reload-events.html&apos; with a new unit test in testatk.c

Patch coming in some minutes...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514523</commentid>
    <comment_count>1</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-03 10:18:07 -0800</bug_when>
    <thetext>*** Bug 67398 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514533</commentid>
    <comment_count>2</comment_count>
      <attachid>117766</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-03 10:33:31 -0800</bug_when>
    <thetext>Created attachment 117766
Patch proposal

Patch implementing this idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514537</commentid>
    <comment_count>3</comment_count>
      <attachid>117766</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-12-03 10:42:19 -0800</bug_when>
    <thetext>Comment on attachment 117766
Patch proposal

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

Seems good to me, but I have included a few minor style issue below.

&gt; Source/WebKit/gtk/ChangeLog:21
&gt; +        (updateLoadingEventsResult): New, updates a global variable to
&gt; +        allow checking later on that the right signals were emmitted.
&gt; +        (documentLoadingEventCb): New, global listener for load-complete
&gt; +        and reload signals over the document object (the web area).
&gt; +        (testWebkitAtkDocumentLoadingEvents): New unit test, globally
&gt; +        connects to document-related signals and check they are properly
&gt; +        emitted when reloading the web view.
&gt; +        (main): Added new test.

This is nice.

&gt; Source/WebKit/gtk/tests/testatk.c:495
&gt; +    if (!ATK_IS_OBJECT(axObject) || !signalName)

Is this an error if it doesn&apos;t happen. If so, would it be better to assert here instead?

&gt; Source/WebKit/gtk/tests/testatk.c:506
&gt; +
&gt; +static gboolean documentLoadingEventCb(GSignalInvocationHint *signalHint,
&gt; +                                       guint numParamValues,
&gt; +                                       const GValue *paramValues,
&gt; +                                       gpointer data)

Please put these on one line to match WebKit style. The function should also be named documentLoadingEventCallback.

&gt; Source/WebKit/gtk/tests/testatk.c:516
&gt; +    GSignalQuery signal_query;

signal_query -&gt; signalQuery.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514551</commentid>
    <comment_count>4</comment_count>
      <attachid>117766</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-03 11:22:11 -0800</bug_when>
    <thetext>Comment on attachment 117766
Patch proposal

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

Thanks for the fast review. I&apos;ll address those issues before pushing.

&gt;&gt; Source/WebKit/gtk/tests/testatk.c:495
&gt;&gt; +    if (!ATK_IS_OBJECT(axObject) || !signalName)
&gt; 
&gt; Is this an error if it doesn&apos;t happen. If so, would it be better to assert here instead?

Actually the whole line should be removed since that should not ever happen. Also, the axObject in the params list is not used in the function, so it should be removed too.

Will do those small changes before committing.

&gt;&gt; Source/WebKit/gtk/tests/testatk.c:506
&gt;&gt; +                                       gpointer data)
&gt; 
&gt; Please put these on one line to match WebKit style. The function should also be named documentLoadingEventCallback.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514553</commentid>
    <comment_count>5</comment_count>
      <attachid>117766</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-12-03 11:32:07 -0800</bug_when>
    <thetext>Comment on attachment 117766
Patch proposal

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

&gt;&gt;&gt; Source/WebKit/gtk/tests/testatk.c:495
&gt;&gt;&gt; +    if (!ATK_IS_OBJECT(axObject) || !signalName)
&gt;&gt; 
&gt;&gt; Is this an error if it doesn&apos;t happen. If so, would it be better to assert here instead?
&gt; 
&gt; Actually the whole line should be removed since that should not ever happen. Also, the axObject in the params list is not used in the function, so it should be removed too.
&gt; 
&gt; Will do those small changes before committing.

That&apos;s a good situation to do an assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514563</commentid>
    <comment_count>6</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-03 12:14:28 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 117766 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117766&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/gtk/tests/testatk.c:495
&gt; &gt;&gt;&gt; +    if (!ATK_IS_OBJECT(axObject) || !signalName)
&gt; &gt;&gt; 
&gt; &gt;&gt; Is this an error if it doesn&apos;t happen. If so, would it be better to assert here instead?
&gt; &gt; 
&gt; &gt; Actually the whole line should be removed since that should not ever happen. Also, the axObject in the params list is not used in the function, so it should be removed too.
&gt; &gt; 
&gt; &gt; Will do those small changes before committing.
&gt; 
&gt; That&apos;s a good situation to do an assertion.

Ok, will do then, but won&apos;t push until tomorrow since I&apos;m leaving my place in 5 min</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514659</commentid>
    <comment_count>7</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-12-04 01:39:43 -0800</bug_when>
    <thetext>Committed r101951: &lt;http://trac.webkit.org/changeset/101951&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117766</attachid>
            <date>2011-12-03 10:33:31 -0800</date>
            <delta_ts>2011-12-03 11:32:07 -0800</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2011-12-03-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>17740</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSAyNDQ5ODY5YjRmYjQyMDRmY2ZmNDJkZmVlNjkyNDQ5MDJjN2I0ZjE5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBTYXQsIDMgRGVjIDIwMTEgMTc6NDA6MTggKzAxMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTEyLTAzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmVtb3ZpbmcgZG9jdW1lbnQgcmVsYXRlZCBldmVudHMgZnJvbSBEUlQKCiAgICAg
ICAgW0dUS10gRG9uJ3QgbG9nIGRvY3VtZW50IGV2ZW50cyBpbiBEUlQKICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NDYKCiAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIE5ldyB1bml0IHRlc3QgdG8gY2hlY2sgZXZlbnRz
IHdoZW4gcmVsb2FkaW5nIGEgZG9jdW1lbnQuIFRoaXMKICAgICAgICByZXBsYWNlcyB0aGUgZm9y
bWVyIGRvY3VtZW50LXJlbG9hZC1ldmVudHMuaHRtbCBsYXlvdXQgdGVzdC4KCiAgICAgICAgKiB0
ZXN0cy90ZXN0YXRrLmM6CiAgICAgICAgKHVwZGF0ZUxvYWRpbmdFdmVudHNSZXN1bHQpOiBOZXcs
IHVwZGF0ZXMgYSBnbG9iYWwgdmFyaWFibGUgdG8KICAgICAgICBhbGxvdyBjaGVja2luZyBsYXRl
ciBvbiB0aGF0IHRoZSByaWdodCBzaWduYWxzIHdlcmUgZW1taXR0ZWQuCiAgICAgICAgKGRvY3Vt
ZW50TG9hZGluZ0V2ZW50Q2IpOiBOZXcsIGdsb2JhbCBsaXN0ZW5lciBmb3IgbG9hZC1jb21wbGV0
ZQogICAgICAgIGFuZCByZWxvYWQgc2lnbmFscyBvdmVyIHRoZSBkb2N1bWVudCBvYmplY3QgKHRo
ZSB3ZWIgYXJlYSkuCiAgICAgICAgKHRlc3RXZWJraXRBdGtEb2N1bWVudExvYWRpbmdFdmVudHMp
OiBOZXcgdW5pdCB0ZXN0LCBnbG9iYWxseQogICAgICAgIGNvbm5lY3RzIHRvIGRvY3VtZW50LXJl
bGF0ZWQgc2lnbmFscyBhbmQgY2hlY2sgdGhleSBhcmUgcHJvcGVybHkKICAgICAgICBlbWl0dGVk
IHdoZW4gcmVsb2FkaW5nIHRoZSB3ZWIgdmlldy4KICAgICAgICAobWFpbik6IEFkZGVkIG5ldyB0
ZXN0LgoKMjAxMS0xMi0wMyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5j
b20+CgogICAgICAgIFJlbW92aW5nIGRvY3VtZW50IHJlbGF0ZWQgZXZlbnRzIGZyb20gRFJUCgog
ICAgICAgIFtHVEtdIERvbid0IGxvZyBkb2N1bWVudCBldmVudHMgaW4gRFJUCiAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNzQ2CgogICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBTdG9wIGNvbm5lY3RpbmcgZ2xvYmFsbHkg
dG8gZG9jdW1lbnQtcmVsYXRlZCBldmVudHMuCgogICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3Rr
L0FjY2Vzc2liaWxpdHlDYWxsYmFja3MuY3BwOgogICAgICAgIChjb25uZWN0QWNjZXNzaWJpbGl0
eUNhbGxiYWNrcyk6IFJlbW92ZWQgY29ubmVjdGlvbnMuCiAgICAgICAgKGRpc2Nvbm5lY3RBY2Nl
c3NpYmlsaXR5Q2FsbGJhY2tzKTogUmVtb3ZlZCBkaXNjb25uZWN0aW9ucy4KCjIwMTEtMTItMDMg
IE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgoKICAgICAgICBbR1RL
XSBEb24ndCBsb2cgZG9jdW1lbnQgZXZlbnRzIGluIERSVAogICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0NgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCiAgICAgICAgVW5za2lwIHBhc3NpbmcgdGVzdCwgcmVtb3ZlIG90aGVyIHRy
YW5zZm9ybWVkIGludG8gYSB1bml0IHRlc3QgYW5kCiAgICAgICAgcmViYXNlbGluZSBleHBlY3Rh
dGlvbnMgbm93IHdlIHN0b3BwZWQgbG9nZ2luZyBkb2N1bWVudCBldmVudHMuCgoJKiBwbGF0Zm9y
bS9ndGsvU2tpcHBlZDogUmVtb3ZlZCB0d28gc2tpcHBlZCB0ZXN0cy4KICAgICAgICAqIHBsYXRm
b3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtc2xpZGVyLXJlcXVpcmVkLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0OiBSZWJhc2VsaW5lZAogICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdlZC1leHBlY3RlZC50eHQ6IERp
dHRvLgogICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvZG9jdW1lbnQtcmVsb2Fk
LWV2ZW50cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCiAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNj
ZXNzaWJpbGl0eS9kb2N1bWVudC1yZWxvYWQtZXZlbnRzLmh0bWw6IFJlbW92ZWQuCi0tLQogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsr
KysrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8
ICAgIDQgLQogLi4uL2FyaWEtc2xpZGVyLXJlcXVpcmVkLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
ICAgfCAgICAxIC0KIC4uLmJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQtZXhwZWN0
ZWQudHh0IHwgICAgMiAtCiAuLi4vZG9jdW1lbnQtcmVsb2FkLWV2ZW50cy1leHBlY3RlZC50eHQg
ICAgICAgICAgICB8ICAgMTYgLS0tLS0KIC4uLi9ndGsvYWNjZXNzaWJpbGl0eS9kb2N1bWVudC1y
ZWxvYWQtZXZlbnRzLmh0bWwgIHwgICAzOCAtLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKysrCiBTb3VyY2Uv
V2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMgICAgICAgICAgICAgICAgICB8ICAgNjQgKysrKysr
KysrKysrKysrKysrKysKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxMyArKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxp
dHlDYWxsYmFja3MuY3BwICB8ICAgNDQgLS0tLS0tLS0tLS0tLQogMTAgZmlsZXMgY2hhbmdlZCwg
MTE1IGluc2VydGlvbnMoKyksIDEwNSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9kb2N1bWVudC1yZWxvYWQtZXZl
bnRzLWV4cGVjdGVkLnR4dAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L2RvY3VtZW50LXJlbG9hZC1ldmVudHMuaHRtbAoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAy
NDc5ZTA0Li4wY2I1ZTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTItMDMgIE1hcmlv
IFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIERv
bid0IGxvZyBkb2N1bWVudCBldmVudHMgaW4gRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVuc2tpcCBwYXNzaW5nIHRlc3QsIHJlbW92ZSBvdGhlciB0
cmFuc2Zvcm1lZCBpbnRvIGEgdW5pdCB0ZXN0IGFuZAorICAgICAgICByZWJhc2VsaW5lIGV4cGVj
dGF0aW9ucyBub3cgd2Ugc3RvcHBlZCBsb2dnaW5nIGRvY3VtZW50IGV2ZW50cy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBSZW1vdmVkIHR3byBza2lwcGVkIHRlc3RzLgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtc2xpZGVyLXJlcXVpcmVkLWF0
dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OiBSZWJhc2VsaW5lZAorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQtZXhw
ZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9k
b2N1bWVudC1yZWxvYWQtZXZlbnRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9kb2N1bWVudC1yZWxvYWQtZXZlbnRzLmh0bWw6IFJl
bW92ZWQuCisKIDIwMTEtMTEtMzAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgdGhlIEdUSyB0ZXN0cyBmYWlsaW5nIHNp
bmNlIHRoZSBmb250IG1ldHJpY3MgY2hhbmdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRl
eCA4OTlhMzgwLi45NDgzZTkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMTM2Miwx
MCArMTM2Miw2IEBAIGZhc3QvaGFybmVzcy9zYW1wbGUtZmFpbC1taXNtYXRjaC1yZWZ0ZXN0Lmh0
bWwKICMgTmVlZCBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJI
YW5kbGluZ0JlZm9yZVVubG9hZAogZmFzdC9sb2FkZXIvZm9ybS1zdWJtaXNzaW9uLWFmdGVyLWJl
Zm9yZXVubG9hZC1jYW5jZWwuaHRtbAogCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NzM5OAotcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNv
bGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdlZC5odG1sCi1wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0
eS9kb2N1bWVudC1yZWxvYWQtZXZlbnRzLmh0bWwKLQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Njc3MTMKIGFjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9y
dHMtc2VsZWN0aW9uLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvYXJpYS1zbGlkZXItcmVxdWlyZWQtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXNsaWRlci1y
ZXF1aXJlZC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCA1NWVjMDZjLi4wYTYzYjk2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXNs
aWRlci1yZXF1aXJlZC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXNsaWRlci1yZXF1aXJlZC1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIEFjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0
ZWQgImZvY3VzLWV2ZW50ID0gMSIgLyBOYW1lOiAiKE5vIG5hbWUpIiAvIFJvbGU6IDUwCiBBY2Nl
c3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9IDEiIC8gTmFt
ZTogIihObyBuYW1lKSIgLyBSb2xlOiA1MAotQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAi
bG9hZC1jb21wbGV0ZSIgLyBOYW1lOiAiKE5vIG5hbWUpIiAvIFJvbGU6IDgwCiBBY2Nlc3NpYmls
aXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6YnVzeSA9IDAiIC8gTmFtZTogIihObyBu
YW1lKSIgLyBSb2xlOiA4MAogQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAicHJvcGVydHkt
Y2hhbmdlOmFjY2Vzc2libGUtdmFsdWUiIC8gTmFtZTogIihObyBuYW1lKSIgLyBSb2xlOiA1MAog
QWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAicHJvcGVydHktY2hhbmdlOmFjY2Vzc2libGUt
dmFsdWUiIC8gTmFtZTogIihObyBuYW1lKSIgLyBSb2xlOiA1MApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxl
Y3Rpb24tY2hhbmdlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNj
ZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVk
LnR4dAppbmRleCAzNTc1NmQ0Li5kYzM2MzZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFu
Z2VkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJp
bGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVkLnR4dApA
QCAtMjYsOCArMjYsNiBAQCBBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFu
Z2U6Zm9jdXNlZCA9IDAiIC8gTmFtZTogImJhciIgLyBSb2xlOiAzNAogQWNjZXNzaWJpbGl0eSBv
YmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdlOnNlbGVjdGVkID0gMSIgLyBOYW1lOiAiZm9vIiAv
IFJvbGU6IDM0CiBBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVudCA9IDEi
IC8gTmFtZTogImZvbyIgLyBSb2xlOiAzNAogQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAi
c3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJmb28iIC8gUm9sZTogMzQKLUFjY2Vz
c2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgImxvYWQtY29tcGxldGUiIC8gTmFtZTogIihObyBuYW1l
KSIgLyBSb2xlOiA4MAotQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdl
OmJ1c3kgPSAwIiAvIE5hbWU6ICIoTm8gbmFtZSkiIC8gUm9sZTogODAKIAogVGhpcyB0ZXN0cyB0
aGF0IHRoZSAnc3RhdGUtY2hhbmdlZDpzZWxlY3RlZCcgc2lnbmFsIGlzIGVtaXR0ZWQgd2hlbiBh
cnJvd2luZyB0aHJvdWdoIHRoZSBvcHRpb25zIG9mIGEgY29tYm9ib3ggd2hpbGUgY29sbGFwc2Vk
LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9k
b2N1bWVudC1yZWxvYWQtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L2RvY3VtZW50LXJlbG9hZC1ldmVudHMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGI5NjEyLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2RvY3VtZW50LXJlbG9hZC1ldmVudHMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotQWNjZXNzaWJpbGl0
eSBvYmplY3QgZW1pdHRlZCAibG9hZC1jb21wbGV0ZSIgLyBOYW1lOiAiKE5vIG5hbWUpIiAvIFJv
bGU6IDgwCi1BY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6YnVzeSA9
IDAiIC8gTmFtZTogIihObyBuYW1lKSIgLyBSb2xlOiA4MAotQWNjZXNzaWJpbGl0eSBvYmplY3Qg
ZW1pdHRlZCAic3RhdGUtY2hhbmdlOmJ1c3kgPSAxIiAvIE5hbWU6ICIoTm8gbmFtZSkiIC8gUm9s
ZTogODAKLUFjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgInJlbG9hZCIgLyBOYW1lOiAiKE5v
IG5hbWUpIiAvIFJvbGU6IDgwCi1BY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1j
aGFuZ2U6ZGVmdW5jdCA9IDEiIC8gTmFtZTogIihObyBuYW1lKSIgLyBSb2xlOiA4MAotQWNjZXNz
aWJpbGl0eSBvYmplY3QgZW1pdHRlZCAibG9hZC1jb21wbGV0ZSIgLyBOYW1lOiAiKE5vIG5hbWUp
IiAvIFJvbGU6IDgwCi1BY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6
YnVzeSA9IDAiIC8gTmFtZTogIihObyBuYW1lKSIgLyBSb2xlOiA4MAotVGVzdCB0aGF0IEF0a0Rv
Y3VtZW50IGVtaXRzIHRoZSByaWdodCBzaWduYWxzIHdoZW4gcmVsb2FkaW5nLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L2RvY3VtZW50LXJlbG9hZC1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2RvY3VtZW50LXJlbG9hZC1ldmVudHMuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzg5YTZkZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9kb2N1bWVudC1yZWxvYWQtZXZlbnRzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICBpZiAoIWxheW91dFRlc3RDb250cm9sbGVy
Lmdsb2JhbEZsYWcpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5nbG9iYWxGbGFnID0gdHJ1
ZTsKLQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICB9Ci0KLSAgICBzZXRUaW1lb3V0KCJ3aW5kb3cubG9jYXRp
b24ucmVsb2FkKCkiLCAwKTsKLSAgfSBlbHNlIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5n
bG9iYWxGbGFnID0gZmFsc2U7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLSAgfQotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBpZD0iYm9keSIgb25sb2FkPSJydW5UZXN0KCk7Ij4KLTxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0Pgot
ZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBBdGtEb2N1bWVudCBlbWl0cyB0aGUgcmlnaHQgc2lnbmFs
cyB3aGVuIHJlbG9hZGluZy4iKTsKLQotaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cikKLSAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIubG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpOwot
Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmlu
ZGV4IGEwYTk4MWUuLjRiMzNiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAxMS0xMi0wMyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisK
KyAgICAgICAgUmVtb3ZpbmcgZG9jdW1lbnQgcmVsYXRlZCBldmVudHMgZnJvbSBEUlQKKworICAg
ICAgICBbR1RLXSBEb24ndCBsb2cgZG9jdW1lbnQgZXZlbnRzIGluIERSVAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgdW5pdCB0ZXN0IHRvIGNoZWNr
IGV2ZW50cyB3aGVuIHJlbG9hZGluZyBhIGRvY3VtZW50LiBUaGlzCisgICAgICAgIHJlcGxhY2Vz
IHRoZSBmb3JtZXIgZG9jdW1lbnQtcmVsb2FkLWV2ZW50cy5odG1sIGxheW91dCB0ZXN0LgorCisg
ICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgorICAgICAgICAodXBkYXRlTG9hZGluZ0V2ZW50c1Jl
c3VsdCk6IE5ldywgdXBkYXRlcyBhIGdsb2JhbCB2YXJpYWJsZSB0bworICAgICAgICBhbGxvdyBj
aGVja2luZyBsYXRlciBvbiB0aGF0IHRoZSByaWdodCBzaWduYWxzIHdlcmUgZW1taXR0ZWQuCisg
ICAgICAgIChkb2N1bWVudExvYWRpbmdFdmVudENiKTogTmV3LCBnbG9iYWwgbGlzdGVuZXIgZm9y
IGxvYWQtY29tcGxldGUKKyAgICAgICAgYW5kIHJlbG9hZCBzaWduYWxzIG92ZXIgdGhlIGRvY3Vt
ZW50IG9iamVjdCAodGhlIHdlYiBhcmVhKS4KKyAgICAgICAgKHRlc3RXZWJraXRBdGtEb2N1bWVu
dExvYWRpbmdFdmVudHMpOiBOZXcgdW5pdCB0ZXN0LCBnbG9iYWxseQorICAgICAgICBjb25uZWN0
cyB0byBkb2N1bWVudC1yZWxhdGVkIHNpZ25hbHMgYW5kIGNoZWNrIHRoZXkgYXJlIHByb3Blcmx5
CisgICAgICAgIGVtaXR0ZWQgd2hlbiByZWxvYWRpbmcgdGhlIHdlYiB2aWV3LgorICAgICAgICAo
bWFpbik6IEFkZGVkIG5ldyB0ZXN0LgorCiAyMDExLTExLTI5ICBTZXJnaW8gVmlsbGFyIFNlbmlu
ICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFNJR1NFViB3aGVuIGEgV2Vi
S2l0RG93bmxvYWQgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rl
c3RhdGsuYyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYwppbmRleCAzNzZlOTZj
Li4yNzJiYTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCkBAIC00ODcsNiArNDg3LDY5
IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtDb21ib0JveCgpCiAgICAgZ19vYmplY3RfdW5y
ZWYod2ViVmlldyk7CiB9CiAKK3N0YXRpYyBnY2hhciogbG9hZGluZ0V2ZW50c1Jlc3VsdCA9IDA7
CisKK3N0YXRpYyB2b2lkIHVwZGF0ZUxvYWRpbmdFdmVudHNSZXN1bHQoQXRrT2JqZWN0KiBheE9i
amVjdCwgY29uc3QgZ2NoYXIqIHNpZ25hbE5hbWUpCit7CisgICAgLy8gU2FuaXR5IGNoZWNrLgor
ICAgIGlmICghQVRLX0lTX09CSkVDVChheE9iamVjdCkgfHwgIXNpZ25hbE5hbWUpCisgICAgICAg
IHJldHVybjsKKworICAgIGdjaGFyKiBwcmV2aW91c1Jlc3VsdCA9IGxvYWRpbmdFdmVudHNSZXN1
bHQ7CisgICAgbG9hZGluZ0V2ZW50c1Jlc3VsdCA9IGdfc3RyZHVwX3ByaW50ZigiJXN8JXMiLCBw
cmV2aW91c1Jlc3VsdCwgc2lnbmFsTmFtZSk7CisgICAgZ19mcmVlKHByZXZpb3VzUmVzdWx0KTsK
K30KKworc3RhdGljIGdib29sZWFuIGRvY3VtZW50TG9hZGluZ0V2ZW50Q2IoR1NpZ25hbEludm9j
YXRpb25IaW50ICpzaWduYWxIaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ3VpbnQgbnVtUGFyYW1WYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBHVmFsdWUgKnBhcmFtVmFsdWVzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICAvLyBBdCBsZWFzdCB3
ZSBzaG91bGQgcmVjZWl2ZSB0aGUgaW5zdGFuY2UgZW1pdHRpbmcgdGhlIHNpZ25hbC4KKyAgICBp
ZiAobnVtUGFyYW1WYWx1ZXMgPCAxKQorICAgICAgICByZXR1cm4gVFJVRTsKKworICAgIEF0a09i
amVjdCogYXhPYmplY3QgPSBBVEtfT0JKRUNUKGdfdmFsdWVfZ2V0X29iamVjdCgmcGFyYW1WYWx1
ZXNbMF0pKTsKKyAgICBpZiAoIWF4T2JqZWN0IHx8ICFBVEtfSVNfRE9DVU1FTlQoYXhPYmplY3Qp
KQorICAgICAgICByZXR1cm4gVFJVRTsKKworICAgIEdTaWduYWxRdWVyeSBzaWduYWxfcXVlcnk7
CisgICAgZ19zaWduYWxfcXVlcnkoc2lnbmFsSGludC0+c2lnbmFsX2lkLCAmc2lnbmFsX3F1ZXJ5
KTsKKworICAgIHVwZGF0ZUxvYWRpbmdFdmVudHNSZXN1bHQoYXhPYmplY3QsIHNpZ25hbF9xdWVy
eS5zaWduYWxfbmFtZSk7CisgICAgcmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RX
ZWJraXRBdGtEb2N1bWVudExvYWRpbmdFdmVudHMoKQoreworICAgIFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygpKTsKKyAgICBnX29i
amVjdF9yZWZfc2luayh3ZWJWaWV3KTsKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRpb24gPSB7
IDAsIDAsIDgwMCwgNjAwIH07CisgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURH
RVQod2ViVmlldyksICZhbGxvY2F0aW9uKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJp
bmcod2ViVmlldywgY29udGVudHMsIDAsIDAsIDApOworCisgICAgLyogVHJpZ2dlciB0aGUgY3Jl
YXRpb24gb2YgdGhlIGZ1bGwgYWNjZXNzaWJpbGl0eSBoaWVyYXJjaHkgYnkKKyAgICAgICBhc2tp
bmcgZm9yIHRoZSB3ZWJBcmVhIG9iamVjdCwgc28gd2UgY2FuIGxpc3RlbiB0byBldmVudHMuICov
CisgICAgZ2V0V2ViQXJlYU9iamVjdCh3ZWJWaWV3KTsKKworICAgIC8qIENvbm5lY3QgZ2xvYmFs
bHkgdG8gc2VlIHRob3NlIGV2ZW50cyBkdXJpbmcgYSByZWxvYWQsIHNpbmNlIHRoZQorICAgICAg
IGRvY3VtZW50IGFmdGVyIHRoYXQgd2lsbCBiZSBkaWZmZXJlbnQgdGhhbiB3aGF0IHdlIGhhdmUg
bm93LiAqLworICAgIGd1aW50IGxvYWRDb21wbGV0ZUxpc3RlbmVySWQgPSBhdGtfYWRkX2dsb2Jh
bF9ldmVudF9saXN0ZW5lcihkb2N1bWVudExvYWRpbmdFdmVudENiLCAiQVRLOkF0a0RvY3VtZW50
OmxvYWQtY29tcGxldGUiKTsKKyAgICBndWludCByZWxvYWRMaXN0ZW5lcklkID0gYXRrX2FkZF9n
bG9iYWxfZXZlbnRfbGlzdGVuZXIoZG9jdW1lbnRMb2FkaW5nRXZlbnRDYiwgIkFUSzpBdGtEb2N1
bWVudDpyZWxvYWQiKTsKKworICAgIC8qIFJlbG9hZCwgc28gd2UgY2FuIHNlZSB0aG9zZSBsb2Fk
IGV2ZW50cyBoYXBwZW5pbmcuICovCisgICAgbG9hZGluZ0V2ZW50c1Jlc3VsdCA9IGdfc3RyZHVw
KCIiKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfcmVsb2FkKHdlYlZpZXcpOworCisgICAgYXRrX3Jl
bW92ZV9nbG9iYWxfZXZlbnRfbGlzdGVuZXIobG9hZENvbXBsZXRlTGlzdGVuZXJJZCk7CisgICAg
YXRrX3JlbW92ZV9nbG9iYWxfZXZlbnRfbGlzdGVuZXIocmVsb2FkTGlzdGVuZXJJZCk7CisKKyAg
ICBnX2Fzc2VydF9jbXBzdHIobG9hZGluZ0V2ZW50c1Jlc3VsdCwgPT0sICJ8cmVsb2FkfGxvYWQt
Y29tcGxldGUiKTsKKworICAgIGdfZnJlZShsb2FkaW5nRXZlbnRzUmVzdWx0KTsKKyAgICBnX29i
amVjdF91bnJlZih3ZWJWaWV3KTsKK30KKwogc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0VtYmVk
ZGVkT2JqZWN0cygpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJf
VklFVyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOwpAQCAtMTcxOSw2ICsxNzgyLDcgQEAgaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9h
dGsvY2FyZXRPZmZzZXRzIiwgdGVzdFdlYmtpdEF0a0NhcmV0T2Zmc2V0cyk7CiAgICAgZ190ZXN0
X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9jYXJldE9mZnNldHNBbmRFeHRyYW5vdXNXaGl0ZVNwYWNl
cyIsIHRlc3RXZWJraXRBdGtDYXJldE9mZnNldHNBbmRFeHRyYW5vdXNXaGl0ZVNwYWNlcyk7CiAg
ICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9jb21ib0JveCIsIHRlc3RXZWJraXRBdGtD
b21ib0JveCk7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9kb2N1bWVudExvYWRp
bmdFdmVudHMiLCB0ZXN0V2Via2l0QXRrRG9jdW1lbnRMb2FkaW5nRXZlbnRzKTsKICAgICBnX3Rl
c3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2VtYmVkZGVkT2JqZWN0cyIsIHRlc3RXZWJraXRBdGtF
bWJlZGRlZE9iamVjdHMpOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9hdGsvZ2V0VGV4
dEF0T2Zmc2V0IiwgdGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldCk7CiAgICAgZ190ZXN0X2Fk
ZF9mdW5jKCIvd2Via2l0L2F0ay9nZXRUZXh0QXRPZmZzZXRGb3JtcyIsIHRlc3RXZWJraXRBdGtH
ZXRUZXh0QXRPZmZzZXRGb3Jtcyk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggY2FiNTgzNC4uZGRlM2MxMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDExLTEyLTAz
ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAorICAgICAgICBb
R1RLXSBEb24ndCBsb2cgZG9jdW1lbnQgZXZlbnRzIGluIERSVAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NDYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIGNvbm5lY3RpbmcgZ2xvYmFsbHkgdG8g
ZG9jdW1lbnQtcmVsYXRlZCBldmVudHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsv
QWNjZXNzaWJpbGl0eUNhbGxiYWNrcy5jcHA6CisgICAgICAgIChjb25uZWN0QWNjZXNzaWJpbGl0
eUNhbGxiYWNrcyk6IFJlbW92ZWQgY29ubmVjdGlvbnMuCisgICAgICAgIChkaXNjb25uZWN0QWNj
ZXNzaWJpbGl0eUNhbGxiYWNrcyk6IFJlbW92ZWQgZGlzY29ubmVjdGlvbnMuCisKKzIwMTEtMTIt
MDMgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgorCiAgICAgICAg
IFtHVEtdIEV4cG9zZSBhY2Nlc3NpYmlsaXR5IGhpZXJhcmNoeSBpbiBXZWJLaXQyIHRvIEFUSy9B
VC1TUEkgYmFzZWQgQVRzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MjU4OQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNj
ZXNzaWJpbGl0eUNhbGxiYWNrcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvQWNjZXNz
aWJpbGl0eUNhbGxiYWNrcy5jcHAKaW5kZXggOGQ3M2Q0NS4uZjUwYjAzMyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0FjY2Vzc2liaWxpdHlDYWxsYmFja3MuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9BY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzLmNwcApAQCAt
NDMsMTAgKzQzLDYgQEAgc3RhdGljIGd1aW50IGNoaWxkcmVuQ2hhbmdlZExpc3RlbmVySWQgPSAw
Owogc3RhdGljIGd1aW50IHByb3BlcnR5Q2hhbmdlZExpc3RlbmVySWQgPSAwOwogc3RhdGljIGd1
aW50IHZpc2libGVEYXRhQ2hhbmdlZExpc3RlbmVySWQgPSAwOwogCi1zdGF0aWMgZ3VpbnQgbG9h
ZENvbXBsZXRlTGlzdGVuZXJJZCA9IDA7Ci1zdGF0aWMgZ3VpbnQgbG9hZFN0b3BwZWRMaXN0ZW5l
cklkID0gMDsKLXN0YXRpYyBndWludCByZWxvYWRMaXN0ZW5lcklkID0gMDsKLQogc3RhdGljIHZv
aWQgcHJpbnRBY2Nlc3NpYmlsaXR5RXZlbnQoQXRrT2JqZWN0KiBhY2Nlc3NpYmxlLCBjb25zdCBn
Y2hhciogc2lnbmFsTmFtZSkKIHsKICAgICAvLyBTYW5pdHkgY2hlY2suCkBAIC0xMDMsMjcgKzk5
LDYgQEAgc3RhdGljIGdib29sZWFuIGF4T2JqZWN0RXZlbnRMaXN0ZW5lcihHU2lnbmFsSW52b2Nh
dGlvbkhpbnQgKnNpZ25hbEhpbnQsCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKLXN0YXRpYyBnYm9v
bGVhbiBheERvY3VtZW50RXZlbnRMaXN0ZW5lcihHU2lnbmFsSW52b2NhdGlvbkhpbnQgKnNpZ25h
bEhpbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgbnVt
UGFyYW1WYWx1ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgR1ZhbHVlICpwYXJhbVZhbHVlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBncG9pbnRlciBkYXRhKQotewotICAgIC8vIEF0IGxlYXN0IHdlIHNob3VsZCByZWNl
aXZlIHRoZSBpbnN0YW5jZSBlbWl0dGluZyB0aGUgc2lnbmFsLgotICAgIGlmIChudW1QYXJhbVZh
bHVlcyA8IDEpCi0gICAgICAgIHJldHVybiBUUlVFOwotCi0gICAgQXRrT2JqZWN0KiBhY2Nlc3Np
YmxlID0gQVRLX09CSkVDVChnX3ZhbHVlX2dldF9vYmplY3QoJnBhcmFtVmFsdWVzWzBdKSk7Ci0g
ICAgaWYgKCFhY2Nlc3NpYmxlIHx8ICFBVEtfSVNfRE9DVU1FTlQoYWNjZXNzaWJsZSkpCi0gICAg
ICAgIHJldHVybiBUUlVFOwotCi0gICAgR1NpZ25hbFF1ZXJ5IHNpZ25hbF9xdWVyeTsKLSAgICBn
X3NpZ25hbF9xdWVyeShzaWduYWxIaW50LT5zaWduYWxfaWQsICZzaWduYWxfcXVlcnkpOwotCi0g
ICAgcHJpbnRBY2Nlc3NpYmlsaXR5RXZlbnQoYWNjZXNzaWJsZSwgc2lnbmFsX3F1ZXJ5LnNpZ25h
bF9uYW1lKTsKLQotICAgIHJldHVybiBUUlVFOwotfQotCiB2b2lkIGNvbm5lY3RBY2Nlc3NpYmls
aXR5Q2FsbGJhY2tzKCkKIHsKICAgICAvLyBFbnN1cmUgbm8gY2FsbGJhY2tzIGFyZSBjb25uZWN0
ZWQgYmVmb3JlLgpAQCAtMTQ3LDExICsxMjIsNiBAQCB2b2lkIGNvbm5lY3RBY2Nlc3NpYmlsaXR5
Q2FsbGJhY2tzKCkKICAgICBBdGtPYmplY3QqIGR1bW15Tm9PcEF4T2JqZWN0ID0gYXRrX25vX29w
X29iamVjdF9uZXcoZHVtbXlBeE9iamVjdCk7CiAgICAgZ19vYmplY3RfdW5yZWYoR19PQkpFQ1Qo
ZHVtbXlOb09wQXhPYmplY3QpKTsKICAgICBnX29iamVjdF91bnJlZihkdW1teUF4T2JqZWN0KTsK
LQotICAgIC8vIEFkZCBnbG9iYWwgbGlzdGVuZXJzIGZvciBBdGtEb2N1bWVudCdzIHNpZ25hbHMu
Ci0gICAgbG9hZENvbXBsZXRlTGlzdGVuZXJJZCA9IGF0a19hZGRfZ2xvYmFsX2V2ZW50X2xpc3Rl
bmVyKGF4RG9jdW1lbnRFdmVudExpc3RlbmVyLCAiR3RrOkF0a0RvY3VtZW50OmxvYWQtY29tcGxl
dGUiKTsKLSAgICBsb2FkU3RvcHBlZExpc3RlbmVySWQgPSBhdGtfYWRkX2dsb2JhbF9ldmVudF9s
aXN0ZW5lcihheERvY3VtZW50RXZlbnRMaXN0ZW5lciwgIkd0azpBdGtEb2N1bWVudDpsb2FkLXN0
b3BwZWQiKTsKLSAgICByZWxvYWRMaXN0ZW5lcklkID0gYXRrX2FkZF9nbG9iYWxfZXZlbnRfbGlz
dGVuZXIoYXhEb2N1bWVudEV2ZW50TGlzdGVuZXIsICJHdGs6QXRrRG9jdW1lbnQ6cmVsb2FkIik7
CiB9CiAKIHZvaWQgZGlzY29ubmVjdEFjY2Vzc2liaWxpdHlDYWxsYmFja3MoKQpAQCAtMTgxLDE5
ICsxNTEsNSBAQCB2b2lkIGRpc2Nvbm5lY3RBY2Nlc3NpYmlsaXR5Q2FsbGJhY2tzKCkKICAgICAg
ICAgYXRrX3JlbW92ZV9nbG9iYWxfZXZlbnRfbGlzdGVuZXIodmlzaWJsZURhdGFDaGFuZ2VkTGlz
dGVuZXJJZCk7CiAgICAgICAgIHZpc2libGVEYXRhQ2hhbmdlZExpc3RlbmVySWQgPSAwOwogICAg
IH0KLQotICAgIC8vIEF0a0RvY3VtZW50IHNpZ25hbHMuCi0gICAgaWYgKGxvYWRDb21wbGV0ZUxp
c3RlbmVySWQpIHsKLSAgICAgICAgYXRrX3JlbW92ZV9nbG9iYWxfZXZlbnRfbGlzdGVuZXIobG9h
ZENvbXBsZXRlTGlzdGVuZXJJZCk7Ci0gICAgICAgIGxvYWRDb21wbGV0ZUxpc3RlbmVySWQgPSAw
OwotICAgIH0KLSAgICBpZiAobG9hZFN0b3BwZWRMaXN0ZW5lcklkKSB7Ci0gICAgICAgIGF0a19y
ZW1vdmVfZ2xvYmFsX2V2ZW50X2xpc3RlbmVyKGxvYWRTdG9wcGVkTGlzdGVuZXJJZCk7Ci0gICAg
ICAgIGxvYWRTdG9wcGVkTGlzdGVuZXJJZCA9IDA7Ci0gICAgfQotICAgIGlmIChyZWxvYWRMaXN0
ZW5lcklkKSB7Ci0gICAgICAgIGF0a19yZW1vdmVfZ2xvYmFsX2V2ZW50X2xpc3RlbmVyKHJlbG9h
ZExpc3RlbmVySWQpOwotICAgICAgICByZWxvYWRMaXN0ZW5lcklkID0gMDsKLSAgICB9CiB9CiAK
LS0gCjEuNy43LjMKCg==
</data>
<flag name="review"
          id="117313"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>