<?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>80597</bug_id>
          
          <creation_ts>2012-03-08 07:59:34 -0800</creation_ts>
          <short_desc>[WK2] Add WKHitTestResultIsContentEditable()</short_desc>
          <delta_ts>2012-06-14 01:41:00 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          
          <blocked>80600</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>gustavo</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>573836</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-08 07:59:34 -0800</bug_when>
    <thetext>It will be used by the Gtk port to add input methods and unicode menu items to the default context menu for editable elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573842</commentid>
    <comment_count>1</comment_count>
      <attachid>130824</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-08 08:06:13 -0800</bug_when>
    <thetext>Created attachment 130824
Patch

Patch includes also additions to the GTK API and new test case in GTK+ unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573843</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-08 08:08:45 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574076</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-08 12:25:06 -0800</bug_when>
    <thetext>Looks good to me. Just one question - how does Mac port achieve the same, and is it inappropriate for Gtk?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574701</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-09 00:39:27 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Looks good to me. Just one question - how does Mac port achieve the same, and is it inappropriate for Gtk?

I don&apos;t know if mac has an input methods menu item, ContextMenuItemTagInputMethods enum is specific to GTK+. In any case, the GTK+ API allows the users to ignore the given default context menu and build their own menu using the given hit test result. I think knowing whether hit test is editable content could be useful for other things too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574938</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-09 09:16:16 -0800</bug_when>
    <thetext>Mac provides a number of menu items in editable context only, and client can configure the menu. So, the next step is to figure out how it&apos;s done, so that we don&apos;t add multiple APIs for the same thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575972</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-12 00:41:39 -0700</bug_when>
    <thetext>So, Anders and Sam should know about how mac does it. In any case the patch simply adds a bool flag to HitTestResult to know whether it&apos;s editable content, this is not only used by context menu, but also in didMouseMoveOverElement(), so as I said it could be used for other things too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576045</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-12 03:14:26 -0700</bug_when>
    <thetext>Actually, all menu items are added to the default context menu by WebCore in the WebProcess, in ContextMenuController, using the hit test result. I guess that&apos;s where all editable menu items are added for mac (and other ports). But input methods context menu items are special case, because they are created by GTK+ API (gtk_im_multicontext_append_menuitems), so that needs to be called in the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645111</commentid>
    <comment_count>8</comment_count>
      <attachid>130824</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-06-08 16:08:54 -0700</bug_when>
    <thetext>Comment on attachment 130824
Patch

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

Normally I would not review patches that affect the C WebKit API, but this patch has been sitting for a very long time with no input. The API makes a lot of sense to me, but given that the WebKit2 team hasn&apos;t really chimed in, I think it&apos;s better to make this API private when landing. You can just move the new API to Source/WebKit2/UIProcess/API/C/WKHitTestResultPrivate.h.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp:360
&gt; + * Returns: %TRUE if there&apos;s an editable element in the coordinates of the Hit Test,

Maybe @hit_test_result would be better than &quot; the Hit Test&quot;

Should probably say &quot;at the coordinates&quot; instead of &quot;in the coordinates&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647932</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-06-13 05:32:19 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 130824 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130824&amp;action=review
&gt; 
&gt; Normally I would not review patches that affect the C WebKit API, but this patch has been sitting for a very long time with no input. The API makes a lot of sense to me, but given that the WebKit2 team hasn&apos;t really chimed in, I think it&apos;s better to make this API private when landing. You can just move the new API to Source/WebKit2/UIProcess/API/C/WKHitTestResultPrivate.h.

That would require adding a new file, so I would have the same problem that in bug #79482, I don&apos;t have a mac, and I have no idea how to deal with xcode files :-(

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitHitTestResult.cpp:360
&gt; &gt; + * Returns: %TRUE if there&apos;s an editable element in the coordinates of the Hit Test,
&gt; 
&gt; Maybe @hit_test_result would be better than &quot; the Hit Test&quot;

Ok

&gt; Should probably say &quot;at the coordinates&quot; instead of &quot;in the coordinates&quot;

Sure.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648939</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-06-14 01:41:00 -0700</bug_when>
    <thetext>Committed r120297: &lt;http://trac.webkit.org/changeset/120297&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130824</attachid>
            <date>2012-03-08 08:06:13 -0800</date>
            <delta_ts>2012-06-08 16:08:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-hit-test-editable.diff</filename>
            <type>text/plain</type>
            <size>13392</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzMmZmYTJjLi41YWYwMTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDMtMDggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXSzJdIEFkZCBXS0hpdFRlc3RSZXN1bHRJc0NvbnRlbnRFZGl0YWJsZSgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDU5Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVk
L1dlYkhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0
OjpEYXRhOjplbmNvZGUpOiBFbmNvZGUgaXNDb250ZW50RWRpdGFibGUuCisgICAgICAgIChXZWJL
aXQ6OldlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6OmRlY29kZSk6IERlY29kZSBpc0NvbnRlbnRFZGl0
YWJsZS4KKyAgICAgICAgKiBTaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5oOgorICAgICAgICAoRGF0
YSk6IEFkZCBpc0NvbnRlbnRFZGl0YWJsZS4KKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJl
c3VsdDo6RGF0YTo6RGF0YSk6IEluaXRpYWxpemUKKyAgICAgICAgaXNDb250ZW50RWRpdGFibGUu
CisgICAgICAgIChXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHQ6OmlzQ29udGVudEVkaXRhYmxlKTog
UmV0dXJucyB3aGV0aGVyCisgICAgICAgIGhpdCB0ZXN0IHJlc3VsdCB0YXJnZXQgaXMgZWRpdGFi
bGUgY29udGVudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tIaXRUZXN0UmVzdWx0LmNw
cDoKKyAgICAgICAgKFdLSGl0VGVzdFJlc3VsdElzQ29udGVudEVkaXRhYmxlKTogQyBBUEkgdG8g
Z2V0IHdoZXRoZXIgaGl0IHRlc3QKKyAgICAgICAgcmVzdWx0IHRhcmdldCBpcyBlZGl0YWJsZSBj
b250ZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAg
ICAgKHdlYmtpdEhpdFRlc3RSZXN1bHRDcmVhdGUpOiBBZGQKKyAgICAgICAgV0VCS0lUX0hJVF9U
RVNUX1JFU1VMVF9DT05URVhUX0VESVRBQkxFIGZsYWdzIHRvIHRoZSBjb250ZXh0IGlmCisgICAg
ICAgIGhpdCB0ZXN0IHJlc3VsdCB0YXJnZXQgaXMgZWRpdGFibGUgY29udGVudC4KKyAgICAgICAg
KHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29udGV4dF9pc19lZGl0YWJsZSk6IFJldHVybnMgVFJV
RSBpZgorICAgICAgICBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRFWFRfRURJVEFCTEUgZmxh
Z3MgaXMgcHJlc2VudCBpbgorICAgICAgICBjb250ZXh0LgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEhpdFRlc3RSZXN1bHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQgbmV3IHN5bWJvbHMuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXcuY3BwOgorICAgICAg
ICAodGVzdFdlYlZpZXdNb3VzZVRhcmdldCk6IEFkZCB0ZXN0cyBmb3IKKyAgICAgICAgV0VCS0lU
X0hJVF9URVNUX1JFU1VMVF9DT05URVhUX0VESVRBQkxFLgorCiAyMDEyLTAzLTA2ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBGaXgg
c2V2ZXJhbCBkb2N1bWVudGF0aW9uIGlzc3VlcyBpbiBXZWJLaXQyIEdUSysgQVBJCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggNmUzNDZlMC4uMjZlYWY2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcApAQCAtNDIs
NiArNDIsNyBAQCB2b2lkIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rlci0+ZW5jb2RlKGFic29s
dXRlTWVkaWFVUkwpOwogICAgIGVuY29kZXItPmVuY29kZShsaW5rTGFiZWwpOwogICAgIGVuY29k
ZXItPmVuY29kZShsaW5rVGl0bGUpOworICAgIGVuY29kZXItPmVuY29kZShpc0NvbnRlbnRFZGl0
YWJsZSk7CiB9CiAKIGJvb2wgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YTo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVz
dFJlc3VsdERhdGEpCkBAIC01MSw3ICs1Miw4IEBAIGJvb2wgV2ViSGl0VGVzdFJlc3VsdDo6RGF0
YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViSGl0VGVzCiAg
ICAgICAgIHx8ICFkZWNvZGVyLT5kZWNvZGUoaGl0VGVzdFJlc3VsdERhdGEuYWJzb2x1dGVMaW5r
VVJMKQogICAgICAgICB8fCAhZGVjb2Rlci0+ZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmFic29s
dXRlTWVkaWFVUkwpCiAgICAgICAgIHx8ICFkZWNvZGVyLT5kZWNvZGUoaGl0VGVzdFJlc3VsdERh
dGEubGlua0xhYmVsKQotICAgICAgICB8fCAhZGVjb2Rlci0+ZGVjb2RlKGhpdFRlc3RSZXN1bHRE
YXRhLmxpbmtUaXRsZSkpCisgICAgICAgIHx8ICFkZWNvZGVyLT5kZWNvZGUoaGl0VGVzdFJlc3Vs
dERhdGEubGlua1RpdGxlKQorICAgICAgICB8fCAhZGVjb2Rlci0+ZGVjb2RlKGhpdFRlc3RSZXN1
bHREYXRhLmlzQ29udGVudEVkaXRhYmxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVz
dFJlc3VsdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuaAppbmRl
eCBkMTZkY2RkLi43OThhMmRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkhpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJl
c3VsdC5oCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIGFic29sdXRl
TWVkaWFVUkw7CiAgICAgICAgIFN0cmluZyBsaW5rTGFiZWw7CiAgICAgICAgIFN0cmluZyBsaW5r
VGl0bGU7CisgICAgICAgIGJvb2wgaXNDb250ZW50RWRpdGFibGU7CiAKICAgICAgICAgRGF0YSgp
CiAgICAgICAgIHsKQEAgLTYwLDYgKzYxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgLCBhYnNv
bHV0ZU1lZGlhVVJMKGhpdFRlc3RSZXN1bHQuYWJzb2x1dGVNZWRpYVVSTCgpLnN0cmluZygpKQog
ICAgICAgICAgICAgLCBsaW5rTGFiZWwoaGl0VGVzdFJlc3VsdC50ZXh0Q29udGVudCgpKQogICAg
ICAgICAgICAgLCBsaW5rVGl0bGUoaGl0VGVzdFJlc3VsdC50aXRsZURpc3BsYXlTdHJpbmcoKSkK
KyAgICAgICAgICAgICwgaXNDb250ZW50RWRpdGFibGUoaGl0VGVzdFJlc3VsdC5pc0NvbnRlbnRF
ZGl0YWJsZSgpKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtNzcsNiArNzksOCBAQCBwdWJs
aWM6CiAgICAgU3RyaW5nIGxpbmtMYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5saW5rTGFi
ZWw7IH0KICAgICBTdHJpbmcgbGlua1RpdGxlKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmxpbmtU
aXRsZTsgfQogCisgICAgYm9vbCBpc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGF0YS5pc0NvbnRlbnRFZGl0YWJsZTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkhp
dFRlc3RSZXN1bHQoY29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVzdFJlc3VsdERh
dGEpCiAgICAgICAgIDogbV9kYXRhKGhpdFRlc3RSZXN1bHREYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tIaXRUZXN0UmVzdWx0LmNwcAppbmRleCBhODdiNmUz
Li41OTQ5MDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tI
aXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tI
aXRUZXN0UmVzdWx0LmNwcApAQCAtNjYsMyArNjYsOCBAQCBXS1N0cmluZ1JlZiBXS0hpdFRlc3RS
ZXN1bHRDb3B5TGlua1RpdGxlKFdLSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0UmVmKQog
ewogICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwoaGl0VGVzdFJlc3VsdFJlZiktPmxpbmtU
aXRsZSgpKTsKIH0KKworYm9vbCBXS0hpdFRlc3RSZXN1bHRJc0NvbnRlbnRFZGl0YWJsZShXS0hp
dFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdFJlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKGhp
dFRlc3RSZXN1bHRSZWYpLT5pc0NvbnRlbnRFZGl0YWJsZSgpOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLSGl0VGVzdFJlc3VsdC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLSGl0VGVzdFJlc3VsdC5oCmluZGV4IDBiYTIzZGYuLjU1
ZmQxMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0hpdFRl
c3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tIaXRUZXN0
UmVzdWx0LmgKQEAgLTQzLDYgKzQzLDggQEAgV0tfRVhQT1JUIFdLVVJMUmVmIFdLSGl0VGVzdFJl
c3VsdENvcHlBYnNvbHV0ZU1lZGlhVVJMKFdLSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXMKIFdLX0VY
UE9SVCBXS1N0cmluZ1JlZiBXS0hpdFRlc3RSZXN1bHRDb3B5TGlua0xhYmVsKFdLSGl0VGVzdFJl
c3VsdFJlZiBoaXRUZXN0UmVzdWx0KTsKIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0hpdFRlc3RS
ZXN1bHRDb3B5TGlua1RpdGxlKFdLSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0KTsKIAor
V0tfRVhQT1JUIGJvb2wgV0tIaXRUZXN0UmVzdWx0SXNDb250ZW50RWRpdGFibGUoV0tIaXRUZXN0
UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SGl0
VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRI
aXRUZXN0UmVzdWx0LmNwcAppbmRleCA5MjhiNGRjLi4wNGMyYjYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0UmVzdWx0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0UmVzdWx0LmNw
cApAQCAtMjUzLDYgKzI1Myw5IEBAIFdlYktpdEhpdFRlc3RSZXN1bHQqIHdlYmtpdEhpdFRlc3RS
ZXN1bHRDcmVhdGUoV0tIaXRUZXN0UmVzdWx0UmVmIHdrSGl0VGVzdFJlc3VsCiAgICAgaWYgKCFt
ZWRpYVVSTC5pc0VtcHR5KCkpCiAgICAgICAgIGNvbnRleHQgfD0gV0VCS0lUX0hJVF9URVNUX1JF
U1VMVF9DT05URVhUX01FRElBOwogCisgICAgaWYgKFdLSGl0VGVzdFJlc3VsdElzQ29udGVudEVk
aXRhYmxlKHdrSGl0VGVzdFJlc3VsdCkpCisgICAgICAgIGNvbnRleHQgfD0gV0VCS0lUX0hJVF9U
RVNUX1JFU1VMVF9DT05URVhUX0VESVRBQkxFOworCiAgICAgY29uc3QgU3RyaW5nJiBsaW5rVGl0
bGUgPSB0b0ltcGwod2tIaXRUZXN0UmVzdWx0KS0+bGlua1RpdGxlKCk7CiAgICAgY29uc3QgU3Ry
aW5nJiBsaW5rTGFiZWwgPSB0b0ltcGwod2tIaXRUZXN0UmVzdWx0KS0+bGlua0xhYmVsKCk7CiAK
QEAgLTM0OCw2ICszNTEsMjMgQEAgZ2Jvb2xlYW4gd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250
ZXh0X2lzX21lZGlhKFdlYktpdEhpdFRlc3RSZXN1bHQqIGhpdFRlc3RSZXMKIH0KIAogLyoqCisg
KiB3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2NvbnRleHRfaXNfZWRpdGFibGU6CisgKiBAaGl0X3Rl
c3RfcmVzdWx0OiBhICNXZWJLaXRIaXRUZXN0UmVzdWx0CisgKgorICogR2V0cyB3aGV0aGVyICVX
RUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRFWFRfRURJVEFCTEUgZmxhZyBpcyBwcmVzZW50IGlu
CisgKiAjV2ViS2l0SGl0VGVzdFJlc3VsdDpjb250ZXh0LgorICoKKyAqIFJldHVybnM6ICVUUlVF
IGlmIHRoZXJlJ3MgYW4gZWRpdGFibGUgZWxlbWVudCBpbiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhl
IEhpdCBUZXN0LAorICogICAgb3IgJUZBTFNFIG90aGVyd2lzZQorICovCitnYm9vbGVhbiB3ZWJr
aXRfaGl0X3Rlc3RfcmVzdWx0X2NvbnRleHRfaXNfZWRpdGFibGUoV2ViS2l0SGl0VGVzdFJlc3Vs
dCogaGl0VGVzdFJlc3VsdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
SElUX1RFU1RfUkVTVUxUKGhpdFRlc3RSZXN1bHQpLCBGQUxTRSk7CisKKyAgICByZXR1cm4gaGl0
VGVzdFJlc3VsdC0+cHJpdi0+Y29udGV4dCAmIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVY
VF9FRElUQUJMRTsKK30KKworLyoqCiAgKiB3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2dldF9saW5r
X3VyaToKICAqIEBoaXRfdGVzdF9yZXN1bHQ6IGEgI1dlYktpdEhpdFRlc3RSZXN1bHQKICAqCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0
UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0
UmVzdWx0LmgKaW5kZXggZDg5MTZlNS4uMDFlNjZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SGl0VGVzdFJlc3VsdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEhpdFRlc3RSZXN1bHQuaApAQCAtNDYsNiAr
NDYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0SGl0VGVzdFJlc3VsdFByaXZhdGUgV2ViS2l0
SGl0VGVzdFJlc3VsdFByaXZhdGU7CiAgKiBAV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhU
X0xJTks6IGEgaHlwZXJsaW5rIGVsZW1lbnQuCiAgKiBAV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9D
T05URVhUX0lNQUdFOiBhbiBpbWFnZSBlbGVtZW50LgogICogQFdFQktJVF9ISVRfVEVTVF9SRVNV
TFRfQ09OVEVYVF9NRURJQTogYSB2aWRlbyBvciBhdWRpbyBlbGVtZW50LgorICogQFdFQktJVF9I
SVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9FRElUQUJMRTogYW4gZWRpdGFibGUgZWxlbWVudAogICoK
ICAqIEVudW0gdmFsdWVzIHdpdGggZmxhZ3MgcmVwcmVzZW50aW5nIHRoZSBjb250ZXh0IG9mIGEg
I1dlYktpdEhpdFRlc3RSZXN1bHQuCiAgKi8KQEAgLTU0LDcgKzU1LDggQEAgdHlwZWRlZiBlbnVt
CiAgICAgV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhUX0RPQ1VNRU5UID0gMSA8PCAxLAog
ICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9MSU5LICAgICA9IDEgPDwgMiwKICAg
ICBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRFWFRfSU1BR0UgICAgPSAxIDw8IDMsCi0gICAg
V0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhUX01FRElBICAgID0gMSA8PCA0CisgICAgV0VC
S0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhUX01FRElBICAgID0gMSA8PCA0LAorICAgIFdFQktJ
VF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9FRElUQUJMRSA9IDEgPDwgNQogfSBXZWJLaXRIaXRU
ZXN0UmVzdWx0Q29udGV4dDsKIAogc3RydWN0IF9XZWJLaXRIaXRUZXN0UmVzdWx0IHsKQEAgLTgy
LDYgKzg0LDkgQEAgd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX2ltYWdlICAgICAo
V2ViS2l0SGl0VGVzdFJlc3VsdCAqaGl0X3Rlc3RfcmVzdWwKIFdFQktJVF9BUEkgZ2Jvb2xlYW4K
IHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29udGV4dF9pc19tZWRpYSAgICAgKFdlYktpdEhpdFRl
c3RSZXN1bHQgKmhpdF90ZXN0X3Jlc3VsdCk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtp
dF9oaXRfdGVzdF9yZXN1bHRfY29udGV4dF9pc19lZGl0YWJsZSAgKFdlYktpdEhpdFRlc3RSZXN1
bHQgKmhpdF90ZXN0X3Jlc3VsdCk7CisKIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgogd2Via2l0
X2hpdF90ZXN0X3Jlc3VsdF9nZXRfbGlua191cmkgICAgICAgICAoV2ViS2l0SGl0VGVzdFJlc3Vs
dCAqaGl0X3Rlc3RfcmVzdWx0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggYThm
NTQwOC4uZWFiY2U1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC00MTEsNiArNDEx
LDcgQEAgd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9nZXRfY29udGV4dAogd2Via2l0X2hpdF90ZXN0
X3Jlc3VsdF9jb250ZXh0X2lzX2xpbmsKIHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29udGV4dF9p
c19pbWFnZQogd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX21lZGlhCit3ZWJraXRf
aGl0X3Rlc3RfcmVzdWx0X2NvbnRleHRfaXNfZWRpdGFibGUKIHdlYmtpdF9oaXRfdGVzdF9yZXN1
bHRfZ2V0X2xpbmtfdXJpCiB3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2dldF9saW5rX3RpdGxlCiB3
ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2dldF9saW5rX2xhYmVsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlldy5j
cHAKaW5kZXggYmZlZGExNi4uNTkyOTE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcApAQCAt
MzkxLDYgKzM5MSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3TW91c2VUYXJnZXQoVUlDbGll
bnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgICAgICAiIDxpbWcgc3R5bGU9J3Bvc2l0
aW9uOmFic29sdXRlOyBsZWZ0OjE7IHRvcDoxMCcgc3JjPScweGRlYWRiZWVmJyB3aWR0aD01IGhl
aWdodD01PjwvaW1nPiIKICAgICAgICAgIiA8YSBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7IGxl
ZnQ6MTsgdG9wOjIwJyBocmVmPSdodHRwOi8vd3d3LndlYmtpdGd0ay5vcmcvbG9nbycgdGl0bGU9
J1dlYktpdEdUSysgTG9nbyc+PGltZyBzcmM9JzB4ZGVhZGJlZWYnIHdpZHRoPTUgaGVpZ2h0PTU+
PC9pbWc+PC9hPiIKICAgICAgICAgIiA8dmlkZW8gc3R5bGU9J3Bvc2l0aW9uOmFic29sdXRlOyBs
ZWZ0OjE7IHRvcDozMCcgd2lkdGg9MTAgaGVpZ2h0PTEwIGNvbnRyb2xzPSdjb250cm9scyc+PHNv
dXJjZSBzcmM9J21vdmllLm9nZycgdHlwZT0ndmlkZW8vb2dnJyAvPjwvdmlkZW8+IgorICAgICAg
ICAiIDxpbnB1dCBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MTsgdG9wOjUwJyBzaXpl
PScxMCc+PC9pbnB1dD4iCiAgICAgICAgICI8L2JvZHk+PC9odG1sPiI7CiAKICAgICB0ZXN0LT5s
b2FkSHRtbChsaW5rc0hvdmVyZWRIVE1MLCAiZmlsZTovLy8iKTsKQEAgLTQwMSw2ICs0MDIsNyBA
QCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld01vdXNlVGFyZ2V0KFVJQ2xpZW50VGVzdCogdGVzdCwg
Z2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydCh3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2NvbnRl
eHRfaXNfbGluayhoaXRUZXN0UmVzdWx0KSk7CiAgICAgZ19hc3NlcnQoIXdlYmtpdF9oaXRfdGVz
dF9yZXN1bHRfY29udGV4dF9pc19pbWFnZShoaXRUZXN0UmVzdWx0KSk7CiAgICAgZ19hc3NlcnQo
IXdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29udGV4dF9pc19tZWRpYShoaXRUZXN0UmVzdWx0KSk7
CisgICAgZ19hc3NlcnQoIXdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29udGV4dF9pc19lZGl0YWJs
ZShoaXRUZXN0UmVzdWx0KSk7CiAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF9oaXRfdGVzdF9y
ZXN1bHRfZ2V0X2xpbmtfdXJpKGhpdFRlc3RSZXN1bHQpLCA9PSwgImh0dHA6Ly93d3cud2Via2l0
Z3RrLm9yZy8iKTsKICAgICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9n
ZXRfbGlua190aXRsZShoaXRUZXN0UmVzdWx0KSwgPT0sICJXZWJLaXRHVEsrIFRpdGxlIik7CiAg
ICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfZ2V0X2xpbmtfbGFiZWwo
aGl0VGVzdFJlc3VsdCksID09LCAiV2ViS2l0R1RLKyBXZWJzaXRlIik7CkBAIC00MTEsNiArNDEz
LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdNb3VzZVRhcmdldChVSUNsaWVudFRlc3QqIHRl
c3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnQoIXdlYmtpdF9oaXRfdGVzdF9yZXN1bHRf
Y29udGV4dF9pc19saW5rKGhpdFRlc3RSZXN1bHQpKTsKICAgICBnX2Fzc2VydCghd2Via2l0X2hp
dF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX2ltYWdlKGhpdFRlc3RSZXN1bHQpKTsKICAgICBnX2Fz
c2VydCghd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX21lZGlhKGhpdFRlc3RSZXN1
bHQpKTsKKyAgICBnX2Fzc2VydCghd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX2Vk
aXRhYmxlKGhpdFRlc3RSZXN1bHQpKTsKICAgICBnX2Fzc2VydCghdGVzdC0+bV9tb3VzZVRhcmdl
dE1vZGlmaWVycyk7CiAKICAgICAvLyBNb3ZlIG92ZXIgaW1hZ2Ugd2l0aCBHREtfQ09OVFJPTF9N
QVNLLgpAQCAtNDE4LDYgKzQyMSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3TW91c2VUYXJn
ZXQoVUlDbGllbnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0KCF3ZWJr
aXRfaGl0X3Rlc3RfcmVzdWx0X2NvbnRleHRfaXNfbGluayhoaXRUZXN0UmVzdWx0KSk7CiAgICAg
Z19hc3NlcnQod2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX2ltYWdlKGhpdFRlc3RS
ZXN1bHQpKTsKICAgICBnX2Fzc2VydCghd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lz
X21lZGlhKGhpdFRlc3RSZXN1bHQpKTsKKyAgICBnX2Fzc2VydCghd2Via2l0X2hpdF90ZXN0X3Jl
c3VsdF9jb250ZXh0X2lzX2VkaXRhYmxlKGhpdFRlc3RSZXN1bHQpKTsKICAgICBnX2Fzc2VydF9j
bXBzdHIod2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9nZXRfaW1hZ2VfdXJpKGhpdFRlc3RSZXN1bHQp
LCA9PSwgImZpbGU6Ly8vMHhkZWFkYmVlZiIpOwogICAgIGdfYXNzZXJ0KHRlc3QtPm1fbW91c2VU
YXJnZXRNb2RpZmllcnMgJiBHREtfQ09OVFJPTF9NQVNLKTsKIApAQCAtNDI2LDYgKzQzMCw3IEBA
IHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3TW91c2VUYXJnZXQoVUlDbGllbnRUZXN0KiB0ZXN0LCBn
Y29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0KHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY29udGV4
dF9pc19saW5rKGhpdFRlc3RSZXN1bHQpKTsKICAgICBnX2Fzc2VydCh3ZWJraXRfaGl0X3Rlc3Rf
cmVzdWx0X2NvbnRleHRfaXNfaW1hZ2UoaGl0VGVzdFJlc3VsdCkpOwogICAgIGdfYXNzZXJ0KCF3
ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2NvbnRleHRfaXNfbWVkaWEoaGl0VGVzdFJlc3VsdCkpOwor
ICAgIGdfYXNzZXJ0KCF3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2NvbnRleHRfaXNfZWRpdGFibGUo
aGl0VGVzdFJlc3VsdCkpOwogICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfaGl0X3Rlc3RfcmVz
dWx0X2dldF9saW5rX3VyaShoaXRUZXN0UmVzdWx0KSwgPT0sICJodHRwOi8vd3d3LndlYmtpdGd0
ay5vcmcvbG9nbyIpOwogICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0
X2dldF9pbWFnZV91cmkoaGl0VGVzdFJlc3VsdCksID09LCAiZmlsZTovLy8weGRlYWRiZWVmIik7
CiAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfZ2V0X2xpbmtfdGl0
bGUoaGl0VGVzdFJlc3VsdCksID09LCAiV2ViS2l0R1RLKyBMb2dvIik7CkBAIC00MzcsOCArNDQy
LDE3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3TW91c2VUYXJnZXQoVUlDbGllbnRUZXN0KiB0
ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0KCF3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0
X2NvbnRleHRfaXNfbGluayhoaXRUZXN0UmVzdWx0KSk7CiAgICAgZ19hc3NlcnQoIXdlYmtpdF9o
aXRfdGVzdF9yZXN1bHRfY29udGV4dF9pc19pbWFnZShoaXRUZXN0UmVzdWx0KSk7CiAgICAgZ19h
c3NlcnQod2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX21lZGlhKGhpdFRlc3RSZXN1
bHQpKTsKKyAgICBnX2Fzc2VydCghd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX2Vk
aXRhYmxlKGhpdFRlc3RSZXN1bHQpKTsKICAgICBnX2Fzc2VydF9jbXBzdHIod2Via2l0X2hpdF90
ZXN0X3Jlc3VsdF9nZXRfbWVkaWFfdXJpKGhpdFRlc3RSZXN1bHQpLCA9PSwgImZpbGU6Ly8vbW92
aWUub2dnIik7CiAgICAgZ19hc3NlcnQoIXRlc3QtPm1fbW91c2VUYXJnZXRNb2RpZmllcnMpOwor
CisgICAgLy8gTW92ZXIgb3ZlciBpbnB1dC4KKyAgICBoaXRUZXN0UmVzdWx0ID0gdGVzdC0+bW92
ZU1vdXNlQW5kV2FpdFVudGlsTW91c2VUYXJnZXRDaGFuZ2VkKDUsIDU1KTsKKyAgICBnX2Fzc2Vy
dCghd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jb250ZXh0X2lzX2xpbmsoaGl0VGVzdFJlc3VsdCkp
OworICAgIGdfYXNzZXJ0KCF3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2NvbnRleHRfaXNfaW1hZ2Uo
aGl0VGVzdFJlc3VsdCkpOworICAgIGdfYXNzZXJ0KCF3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2Nv
bnRleHRfaXNfbWVkaWEoaGl0VGVzdFJlc3VsdCkpOworICAgIGdfYXNzZXJ0KHdlYmtpdF9oaXRf
dGVzdF9yZXN1bHRfY29udGV4dF9pc19lZGl0YWJsZShoaXRUZXN0UmVzdWx0KSk7CisgICAgZ19h
c3NlcnQoIXRlc3QtPm1fbW91c2VUYXJnZXRNb2RpZmllcnMpOwogfQogCiBzdGF0aWMgdm9pZCB0
ZXN0V2ViVmlld1pvb21MZXZlbChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
</data>
<flag name="review"
          id="133944"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
    <flag name="commit-queue"
          id="153989"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>