<?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>72390</bug_id>
          
          <creation_ts>2011-11-15 08:55:13 -0800</creation_ts>
          <short_desc>[GTK] Do not hide accessibility root object from AT&apos;s</short_desc>
          <delta_ts>2011-11-16 01:46:56 -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>WebKitGTK</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>cgarcia</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>502942</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-11-15 08:55:13 -0800</bug_when>
    <thetext>As per bug 51932, we made a change some time ago to bypass the root AccessibilityObject when exposing the a11y hierarchy to ATK based Assistive Technologies, in order to keep exposing the webArea object as the root a11y object, instead of the new one: an scrollview (whose child would be the old -well known- webArea object).

To fix this, we needed to tweak a bit the code in WebKitGtk&apos;s WebView widget to bypass that scrollview and keep returning the webArea object, as well as to make some changes in the AccessibilityObjectWrapper to fix bottom-up navigation as well (which turned out to be a wrong implementation, as I found out today!), which was a bit hackish and not clean, to say the least. In addition, now we&apos;re working in adding a11y support for WebKit2GTK+, we found out that we&apos;d need to make the same bypass hack in the WebProcess, which means duplicating code (and maybe bugs), so we sit down (Joanie and me), talk a bit about it and came to the conclusion that the best thing to do here is to remove the hack, expose the a11y hierarchy as it is now (so the root object is the scrollview, and its child the webArea) and make Orca do the additional tweaks it might need to ignore that scrollview since it doesn&apos;t need it (but it could be that other ATs would do).

Of course, making this change would mean shifting the a11y hierarchy and therefore slightly tweaking the ATK unit tests to reflect that, but that seems not a problem at all. It would have been worse if Layout tests were affected by this change, but they are not, since Layout Tests use DRT to get the root object and DRT&apos;s implementation already returns the scrollview (no bypass there).

So, wrapping up, the intention of this change is two-fold:

  * Properly expose the true a11y hierarchy (ATs might still choose to ignore the scrollview as the root object)
         ==&gt; Match better WebKit&apos;s a11y hierarchy

  * Avoid the need of keeping hacks in WebKit and WebKit2 to artificially bypass the root object (which proved to be buggy, btw)
        ==&gt; Cleaner and less error-prone code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502947</commentid>
    <comment_count>1</comment_count>
      <attachid>115174</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-11-15 09:02:09 -0800</bug_when>
    <thetext>Created attachment 115174
Patch proposal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502949</commentid>
    <comment_count>2</comment_count>
      <attachid>115174</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-15 09:06:42 -0800</bug_when>
    <thetext>Comment on attachment 115174
Patch proposal

Does this mean we now depend on a newer version of Orca?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502960</commentid>
    <comment_count>3</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-11-15 09:21:33 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 115174 [details])
&gt; Does this mean we now depend on a newer version of Orca?

Nope, it just means that Orca will have to do some extra work from this version of WebKit on (already agreed with Joanmarie), but we do not depend on Orca by any means :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502968</commentid>
    <comment_count>4</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2011-11-15 09:29:28 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 115174 [details])
&gt; Does this mean we now depend on a newer version of Orca?

Did you have a dependency on Orca before now, and didn&apos;t tell me? ;)

(In reply to comment #3)

&gt; Nope, it just means that Orca will have to do some extra work from this version of WebKit on (already agreed with Joanmarie)

For the record, and as discussed via IRC, I was *willing* to do the work should it be needed. It is not needed. It&apos;s all good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502973</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-15 09:38:01 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 115174 [details] [details])
&gt; &gt; Does this mean we now depend on a newer version of Orca?
&gt; 
&gt; Did you have a dependency on Orca before now, and didn&apos;t tell me? ;)

by this I didn&apos;t mean a link depedency, but whether if you used an old version of Orca and a new version of WebKitGTK+ (with this change) that it would be broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502982</commentid>
    <comment_count>6</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-11-15 09:43:45 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (From update of attachment 115174 [details] [details] [details])
&gt; &gt; &gt; Does this mean we now depend on a newer version of Orca?
&gt; &gt; 
&gt; &gt; Did you have a dependency on Orca before now, and didn&apos;t tell me? ;)
&gt; 
&gt; by this I didn&apos;t mean a link depedency, but whether if you used an old version of Orca and a new version of WebKitGTK+ (with this change) that it would be broken.

As per last Joanie&apos;s comment, I&apos;d say &quot;no, there shouldn&apos;t be any problem&quot; :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503315</commentid>
    <comment_count>7</comment_count>
      <attachid>115174</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-15 14:57:50 -0800</bug_when>
    <thetext>Comment on attachment 115174
Patch proposal

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

&gt; Source/WebKit/gtk/tests/testatk.c:85
&gt; +      return 0;
&gt; +
&gt; +    AtkObject* webAreaObject = atk_object_ref_accessible_child(rootObject, 0);
&gt; +    if (!webAreaObject)
&gt; +      return 0;
&gt; +

In C files you should use NULL instead of 0. (I realize this is incredibly arbitrary, but the style guide specifies this!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503712</commentid>
    <comment_count>8</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-11-16 01:46:03 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 115174 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115174&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/gtk/tests/testatk.c:85
&gt; &gt; +      return 0;
&gt; &gt; +
&gt; &gt; +    AtkObject* webAreaObject = atk_object_ref_accessible_child(rootObject, 0);
&gt; &gt; +    if (!webAreaObject)
&gt; &gt; +      return 0;
&gt; &gt; +
&gt; 
&gt; In C files you should use NULL instead of 0. (I realize this is incredibly arbitrary, but the style guide specifies this!)

Thanks for the review. I will change this before pushing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503713</commentid>
    <comment_count>9</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-11-16 01:46:56 -0800</bug_when>
    <thetext>Committed r100424: &lt;http://trac.webkit.org/changeset/100424&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115174</attachid>
            <date>2011-11-15 09:02:09 -0800</date>
            <delta_ts>2011-11-15 14:57:50 -0800</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-2011-11-15-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>22010</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA3ZTA0NTllYjY1Mzk0Y2FhN2YyMWJmNjFkYmRkOGFiYzBjZGNhNTUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUdWUsIDE1IE5vdiAyMDExIDE4OjAwOjEyICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMS0xMS0xNSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFtHVEtdIERvIG5vdCBoaWRlIGFjY2Vzc2liaWxpdHkgcm9vdCBvYmplY3QgZnJv
bSBBVCdzCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcy
MzkwCgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAqIHRlc3Rz
L3Rlc3RhdGsuYzoKICAgICAgICAoZ2V0V2ViQXJlYU9iamVjdCk6IE5ldyBoZWxwZXIgZnVuY3Rp
b24sIHRvIGJ5cGFzcyB0aGUgbmV3IHJvb3QKICAgICAgICBvYmplY3QgaW4gdGhlIGFjY2Vzc2li
aWxpdHkgaGllcmFyY2h5LCBzaW5jZSBpdCdzIG5vdCB1c3VhbGx5CiAgICAgICAgbmVlZGVkIGZv
ciB0aGUgdW5pdCB0ZXN0cy4KICAgICAgICAodGVzdFdlYmtpdEF0a0NhcmV0T2Zmc2V0cyk6IFVz
ZSBnZXRXZWJBcmVhT2JqZWN0KCkuCiAgICAgICAgKHRlc3RXZWJraXRBdGtDYXJldE9mZnNldHNB
bmRFeHRyYW5vdXNXaGl0ZVNwYWNlcyk6IERpdHRvLgogICAgICAgICh0ZXN0V2Via2l0QXRrQ29t
Ym9Cb3gpOiBEaXR0by4KICAgICAgICAodGVzdFdlYmtpdEF0a0VtYmVkZGVkT2JqZWN0cyk6IERp
dHRvLgogICAgICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0Rm9ybXMpOiBEaXR0by4K
ICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldCk6IERpdHRvLgogICAgICAgICh0
ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0TmV3bGluZXMpOiBEaXR0by4KICAgICAgICAodGVz
dFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFRleHRhcmVhKTogRGl0dG8uCiAgICAgICAgKHRlc3RX
ZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRUZXh0SW5wdXQpOiBEaXR0by4KICAgICAgICAodGVzdFdl
YmtpdEF0a0dldFRleHRBdE9mZnNldFdpdGhTcGVjaWFsQ2hhcmFjdGVycyk6IERpdHRvLgogICAg
ICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4dEluUGFyYWdyYXBoQW5kQm9keVNpbXBsZSk6IERpdHRv
LgogICAgICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4dEluUGFyYWdyYXBoQW5kQm9keU1vZGVyYXRl
KTogRGl0dG8uCiAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0SW5UYWJsZSk6IERpdHRvLgog
ICAgICAgICh0ZXN0V2Via2l0QXRrR2V0SGVhZGVyc0luVGFibGUpOiBEaXR0by4KICAgICAgICAo
dGVzdFdlYmtpdEF0a1RleHRBdHRyaWJ1dGVzKTogRGl0dG8uCiAgICAgICAgKHRlc3RXZWJraXRB
dGtUZXh0U2VsZWN0aW9ucyk6IERpdHRvLgogICAgICAgICh0ZXN0V2Via2l0QXRrR2V0RXh0ZW50
cyk6IERpdHRvLgogICAgICAgICh0ZXN0V2Via2l0QXRrTGF5b3V0QW5kRGF0YVRhYmxlcyk6IERp
dHRvLgogICAgICAgICh0ZXN0V2Via2l0QXRrTGlua3NXaXRoSW5saW5lSW1hZ2VzKTogRGl0dG8u
CiAgICAgICAgKHRlc3RXZWJraXRBdGtIeXBlcnRleHRBbmRIeXBlcmxpbmtzKTogRGl0dG8uCiAg
ICAgICAgKHRlc3RXZWJraXRBdGtMaXN0c09mSXRlbXMpOiBEaXR0by4KICAgICAgICAodGVzdFdl
YmtpdEF0a1RleHRDaGFuZ2VkTm90aWZpY2F0aW9ucyk6IERpdHRvLgogICAgICAgICh0ZXN0V2Vi
a2l0QXRrUGFyZW50Rm9yUm9vdE9iamVjdCk6IE5ldyB0ZXN0LCB0byBtYWtlIHN1cmUgdGhhdAog
ICAgICAgIGJvdGggdG9wLWRvd24gYW5kIGJvdHRvbS11cCBuYXZpZ2F0aW9uIGFtb25nIEdUSyBh
bmQgV2ViS2l0IHdvcmxkcwogICAgICAgIG1hdGNoZXMgYWNjb3JkaW5nbHkuCiAgICAgICAgKG1h
aW4pOiBBZGRlZCBuZXcgdGVzdC4KCiAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6
CiAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfYWNjZXNzaWJsZSk6IFJlbW92ZSB0aGUgaGFj
ayBpbnRyb2R1Y2VkCiAgICAgICAgYmVjYXVzZSBvZiBidWcgNTE5MzIsIHRvIGJ5cGFzcyB0aGUg
cm9vdCBvYmplY3QgaGVyZS4KLS0tCiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgfCAgIDQyICsrKysrKysKIFNvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsu
YyAgICAgICAgICB8ICAxNjQgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIHwgICAxNCArLS0KIDMgZmlsZXMgY2hh
bmdlZCwgMTIwIGluc2VydGlvbnMoKyksIDEwMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggOWQ4OWE0OC4uMTdhYjRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBA
CisyMDExLTExLTE1ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1RLXSBEbyBub3QgaGlkZSBhY2Nlc3NpYmlsaXR5IHJvb3Qgb2JqZWN0IGZy
b20gQVQncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzIzOTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHRlc3RzL3Rlc3RhdGsuYzoKKyAgICAgICAgKGdldFdlYkFyZWFPYmplY3QpOiBOZXcgaGVscGVy
IGZ1bmN0aW9uLCB0byBieXBhc3MgdGhlIG5ldyByb290CisgICAgICAgIG9iamVjdCBpbiB0aGUg
YWNjZXNzaWJpbGl0eSBoaWVyYXJjaHksIHNpbmNlIGl0J3Mgbm90IHVzdWFsbHkKKyAgICAgICAg
bmVlZGVkIGZvciB0aGUgdW5pdCB0ZXN0cy4KKyAgICAgICAgKHRlc3RXZWJraXRBdGtDYXJldE9m
ZnNldHMpOiBVc2UgZ2V0V2ViQXJlYU9iamVjdCgpLgorICAgICAgICAodGVzdFdlYmtpdEF0a0Nh
cmV0T2Zmc2V0c0FuZEV4dHJhbm91c1doaXRlU3BhY2VzKTogRGl0dG8uCisgICAgICAgICh0ZXN0
V2Via2l0QXRrQ29tYm9Cb3gpOiBEaXR0by4KKyAgICAgICAgKHRlc3RXZWJraXRBdGtFbWJlZGRl
ZE9iamVjdHMpOiBEaXR0by4KKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRG
b3Jtcyk6IERpdHRvLgorICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldCk6IERp
dHRvLgorICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldE5ld2xpbmVzKTogRGl0
dG8uCisgICAgICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0VGV4dGFyZWEpOiBEaXR0
by4KKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRUZXh0SW5wdXQpOiBEaXR0
by4KKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRXaXRoU3BlY2lhbENoYXJh
Y3RlcnMpOiBEaXR0by4KKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0SW5QYXJhZ3JhcGhB
bmRCb2R5U2ltcGxlKTogRGl0dG8uCisgICAgICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4dEluUGFy
YWdyYXBoQW5kQm9keU1vZGVyYXRlKTogRGl0dG8uCisgICAgICAgICh0ZXN0V2Via2l0QXRrR2V0
VGV4dEluVGFibGUpOiBEaXR0by4KKyAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRIZWFkZXJzSW5U
YWJsZSk6IERpdHRvLgorICAgICAgICAodGVzdFdlYmtpdEF0a1RleHRBdHRyaWJ1dGVzKTogRGl0
dG8uCisgICAgICAgICh0ZXN0V2Via2l0QXRrVGV4dFNlbGVjdGlvbnMpOiBEaXR0by4KKyAgICAg
ICAgKHRlc3RXZWJraXRBdGtHZXRFeHRlbnRzKTogRGl0dG8uCisgICAgICAgICh0ZXN0V2Via2l0
QXRrTGF5b3V0QW5kRGF0YVRhYmxlcyk6IERpdHRvLgorICAgICAgICAodGVzdFdlYmtpdEF0a0xp
bmtzV2l0aElubGluZUltYWdlcyk6IERpdHRvLgorICAgICAgICAodGVzdFdlYmtpdEF0a0h5cGVy
dGV4dEFuZEh5cGVybGlua3MpOiBEaXR0by4KKyAgICAgICAgKHRlc3RXZWJraXRBdGtMaXN0c09m
SXRlbXMpOiBEaXR0by4KKyAgICAgICAgKHRlc3RXZWJraXRBdGtUZXh0Q2hhbmdlZE5vdGlmaWNh
dGlvbnMpOiBEaXR0by4KKyAgICAgICAgKHRlc3RXZWJraXRBdGtQYXJlbnRGb3JSb290T2JqZWN0
KTogTmV3IHRlc3QsIHRvIG1ha2Ugc3VyZSB0aGF0CisgICAgICAgIGJvdGggdG9wLWRvd24gYW5k
IGJvdHRvbS11cCBuYXZpZ2F0aW9uIGFtb25nIEdUSyBhbmQgV2ViS2l0IHdvcmxkcworICAgICAg
ICBtYXRjaGVzIGFjY29yZGluZ2x5LgorICAgICAgICAobWFpbik6IEFkZGVkIG5ldyB0ZXN0Lgor
CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dl
Yl92aWV3X2dldF9hY2Nlc3NpYmxlKTogUmVtb3ZlIHRoZSBoYWNrIGludHJvZHVjZWQKKyAgICAg
ICAgYmVjYXVzZSBvZiBidWcgNTE5MzIsIHRvIGJ5cGFzcyB0aGUgcm9vdCBvYmplY3QgaGVyZS4K
KwogMjAxMS0xMS0xNCAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW0dUS10gUG9zc2libGUgY3Jhc2ggd2hlbiBkZXN0cm95aW5nIGFmdGVyIGNhbGxlZCB3
aWRnZXRTaXplQ2hhbmdlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rl
c3RhdGsuYyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYwppbmRleCA4YzQ5MTFj
Li4yNTkzMmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCkBAIC02OCwxMiArNjgsMjUg
QEAgc3RhdGljIGNvbnN0IGNoYXIqIHRleHRGb3JTZWxlY3Rpb25zID0gIjxodG1sPjxib2R5Pjxw
PkEgcGFyYWdyYXBoIHdpdGggcGxhaW4gdGUKIAogc3RhdGljIGNvbnN0IGNoYXIqIHRleHRXaXRo
QXR0cmlidXRlcyA9ICI8aHRtbD48aGVhZD48c3R5bGU+LnN0MSB7Zm9udC1mYW1pbHk6IG1vbm9z
cGFjZTsgY29sb3I6cmdiKDEyMCwxMjEsMTIyKTt9IC5zdDIge3RleHQtZGVjb3JhdGlvbjp1bmRl
cmxpbmU7IGJhY2tncm91bmQtY29sb3I6cmdiKDgwLDgxLDgyKTt9PC9zdHlsZT48L2hlYWQ+PGJv
ZHk+PHAgc3R5bGU9XCJmb250LXNpemU6MTQ7IHRleHQtYWxpZ246cmlnaHQ7XCI+VGhpcyBpcyB0
aGUgPGk+Zmlyc3Q8L2k+PGI+IHNlbnRlbmNlIG9mIHRoaXMgdGV4dC48L2I+PC9wPjxwIGNsYXNz
PVwic3QxXCI+VGhpcyBzZW50ZW5jZSBzaG91bGQgaGF2ZSBhbiBzdHlsZSBhcHBsaWVkIDxzcGFu
IGNsYXNzPVwic3QyXCI+YW5kIHRoaXMgcGFydCBzaG91bGQgaGF2ZSBhbm90aGVyIG9uZTwvc3Bh
bj4uPC9wPjxwPng8c3ViPjE8L3N1Yj48c3VwPjI8L3N1cD49eDxzdWI+Mjwvc3ViPjxzdXA+Mzwv
c3VwPjwvcD48cCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPlRoaXMgc2VudGVuY2UgaXMg
dGhlIDxzdHJpa2U+bGFzdDwvc3RyaWtlPiBvbmUuPC9wPjwvYm9keT48L2h0bWw+IjsKIAotc3Rh
dGljIHZvaWQgd2FpdEZvckFjY2Vzc2libGVPYmplY3RzKCkKK3N0YXRpYyBBdGtPYmplY3QqIGdl
dFdlYkFyZWFPYmplY3QoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIHsKICAgICAvKiBNYW51YWxs
eSBzcGluIHRoZSBtYWluIGNvbnRleHQgdG8gbWFrZSBzdXJlIHRoZSBhY2Nlc3NpYmxlCiAgICAg
ICAgb2JqZWN0cyBhcmUgcHJvcGVybHkgY3JlYXRlZCBiZWZvcmUgY29udGludWluZy4gKi8KICAg
ICB3aGlsZSAoZ19tYWluX2NvbnRleHRfcGVuZGluZygwKSkKICAgICAgICAgZ19tYWluX2NvbnRl
eHRfaXRlcmF0aW9uKDAsIFRSVUUpOworCisgICAgQXRrT2JqZWN0KiByb290T2JqZWN0ID0gZ3Rr
X3dpZGdldF9nZXRfYWNjZXNzaWJsZShHVEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBpZiAoIXJv
b3RPYmplY3QpCisgICAgICByZXR1cm4gMDsKKworICAgIEF0a09iamVjdCogd2ViQXJlYU9iamVj
dCA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQocm9vdE9iamVjdCwgMCk7CisgICAg
aWYgKCF3ZWJBcmVhT2JqZWN0KQorICAgICAgcmV0dXJuIDA7CisKKyAgICAvKiBXZSBkb24ndCBu
ZWVkIHRoZSBleHRyYSByZWYgaGVyZS4gKi8KKyAgICBnX29iamVjdF91bnJlZih3ZWJBcmVhT2Jq
ZWN0KTsKKworICAgIHJldHVybiB3ZWJBcmVhT2JqZWN0OwogfQogCiB0eXBlZGVmIGdjaGFyKiAo
KkF0a0dldFRleHRGdW5jdGlvbikgKEF0a1RleHQqLCBnaW50LCBBdGtUZXh0Qm91bmRhcnksIGdp
bnQqLCBnaW50Kik7CkBAIC0yMzksMTAgKzI1Miw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRB
dGtDYXJldE9mZnNldHMoKQogICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VU
KHdlYlZpZXcpLCAmYWxsb2NhdGlvbik7CiAgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5n
KHdlYlZpZXcsIHRleHRGb3JDYXJldEJyb3dzaW5nLCAwLCAwLCAwKTsKIAotICAgIC8qIFdhaXQg
Zm9yIHRoZSBhY2Nlc3NpYmxlIG9iamVjdHMgdG8gYmUgY3JlYXRlZC4gKi8KLSAgICB3YWl0Rm9y
QWNjZXNzaWJsZU9iamVjdHMoKTsKLQotICAgIEF0a09iamVjdCogb2JqZWN0ID0gZ3RrX3dpZGdl
dF9nZXRfYWNjZXNzaWJsZShHVEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBBdGtPYmplY3QqIG9i
amVjdCA9IGdldFdlYkFyZWFPYmplY3Qod2ViVmlldyk7CiAgICAgZ19hc3NlcnQob2JqZWN0KTsK
IAogICAgIEF0a09iamVjdCogaGVhZGVyID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGls
ZChvYmplY3QsIDApOwpAQCAtMzQyLDE2ICszNTIsMTMgQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtp
dEF0a0NhcmV0T2Zmc2V0c0FuZEV4dHJhbm91c1doaXRlU3BhY2VzKCkKICAgICBndGtfd2lkZ2V0
X3NpemVfYWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jYXRpb24pOwogICAgIHdl
YmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCBjb250ZW50c1dpdGhFeHRyYW5lb3Vz
V2hpdGVTcGFjZXMsIDAsIDAsIDApOwogCi0gICAgLyogV2FpdCBmb3IgdGhlIGFjY2Vzc2libGUg
b2JqZWN0cyB0byBiZSBjcmVhdGVkLiAqLwotICAgIHdhaXRGb3JBY2Nlc3NpYmxlT2JqZWN0cygp
OwotCiAgICAgLyogRW5hYmxlIGNhcmV0IGJyb3dzaW5nLiAqLwogICAgIFdlYktpdFdlYlNldHRp
bmdzKiBzZXR0aW5ncyA9IHdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGluZ3Mod2ViVmlldyk7CiAg
ICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKHNldHRpbmdzKSwgImVuYWJsZS1jYXJldC1icm93c2lu
ZyIsIFRSVUUsIE5VTEwpOwogICAgIHdlYmtpdF93ZWJfdmlld19zZXRfc2V0dGluZ3Mod2ViVmll
dywgc2V0dGluZ3MpOwogCiAgICAgLyogR2V0IHRvIHRoZSBpbm5lciBBdGtUZXh0IG9iamVjdC4g
Ki8KLSAgICBBdGtPYmplY3QqIG9iamVjdCA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RL
X1dJREdFVCh3ZWJWaWV3KSk7CisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBnZXRXZWJBcmVhT2Jq
ZWN0KHdlYlZpZXcpOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CiAgICAgb2JqZWN0ID0gYXRrX29i
amVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmplY3QsIDApOwogICAgIGdfYXNzZXJ0KG9iamVj
dCk7CkBAIC0zODksMTAgKzM5Niw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtDb21ib0Jv
eCgpCiAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmlldyksICZh
bGxvY2F0aW9uKTsKICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcod2ViVmlldywgY29t
Ym9Cb3hTZWxlY3RvciwgMCwgMCwgMCk7CiAKLSAgICAvKiBXYWl0IGZvciB0aGUgYWNjZXNzaWJs
ZSBvYmplY3RzIHRvIGJlIGNyZWF0ZWQuICovCi0gICAgd2FpdEZvckFjY2Vzc2libGVPYmplY3Rz
KCk7Ci0KLSAgICBBdGtPYmplY3QqIG9iamVjdCA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUo
R1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBnZXRXZWJBcmVh
T2JqZWN0KHdlYlZpZXcpOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CiAKICAgICBBdGtPYmplY3Qq
IGZvcm1PYmplY3QgPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iamVjdCwgMCk7
CkBAIC00OTAsMTAgKzQ5NCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtFbWJlZGRlZE9i
amVjdHMoKQogICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXcp
LCAmYWxsb2NhdGlvbik7CiAgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcs
IGVtYmVkZGVkT2JqZWN0cywgMCwgMCwgMCk7CiAKLSAgICAvKiBXYWl0IGZvciB0aGUgYWNjZXNz
aWJsZSBvYmplY3RzIHRvIGJlIGNyZWF0ZWQuICovCi0gICAgd2FpdEZvckFjY2Vzc2libGVPYmpl
Y3RzKCk7Ci0KLSAgICBBdGtPYmplY3QqIG9iamVjdCA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2li
bGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBnZXRXZWJB
cmVhT2JqZWN0KHdlYlZpZXcpOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CiAKICAgICBBdGtUZXh0
KiBwYXJhZ3JhcGgxID0gQVRLX1RFWFQoYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChv
YmplY3QsIDApKTsKQEAgLTU3NiwxMSArNTc3LDggQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0
a0dldFRleHRBdE9mZnNldEZvcm1zKCkKICAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RL
X1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jYXRpb24pOwogICAgIHdlYmtpdF93ZWJfdmlld19sb2Fk
X3N0cmluZyh3ZWJWaWV3LCBjb250ZW50cywgMCwgMCwgMCk7CiAKLSAgICAvKiBXYWl0IGZvciB0
aGUgYWNjZXNzaWJsZSBvYmplY3RzIHRvIGJlIGNyZWF0ZWQuICovCi0gICAgd2FpdEZvckFjY2Vz
c2libGVPYmplY3RzKCk7Ci0KICAgICAvKiBHZXQgdG8gdGhlIGlubmVyIEF0a1RleHQgb2JqZWN0
LiAqLwotICAgIEF0a09iamVjdCogb2JqZWN0ID0gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZShH
VEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBBdGtPYmplY3QqIG9iamVjdCA9IGdldFdlYkFyZWFP
YmplY3Qod2ViVmlldyk7CiAgICAgZ19hc3NlcnQob2JqZWN0KTsKICAgICBvYmplY3QgPSBhdGtf
b2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iamVjdCwgMCk7CiAgICAgZ19hc3NlcnQob2Jq
ZWN0KTsKQEAgLTYwMSwxMSArNTk5LDggQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0dldFRl
eHRBdE9mZnNldCgpCiAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2Vi
VmlldyksICZhbGxvY2F0aW9uKTsKICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcod2Vi
VmlldywgY29udGVudHMsIDAsIDAsIDApOwogCi0gICAgLyogV2FpdCBmb3IgdGhlIGFjY2Vzc2li
bGUgb2JqZWN0cyB0byBiZSBjcmVhdGVkLiAqLwotICAgIHdhaXRGb3JBY2Nlc3NpYmxlT2JqZWN0
cygpOwotCiAgICAgLyogR2V0IHRvIHRoZSBpbm5lciBBdGtUZXh0IG9iamVjdC4gKi8KLSAgICBB
dGtPYmplY3QqIG9iamVjdCA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3
ZWJWaWV3KSk7CisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBnZXRXZWJBcmVhT2JqZWN0KHdlYlZp
ZXcpOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CiAgICAgb2JqZWN0ID0gYXRrX29iamVjdF9yZWZf
YWNjZXNzaWJsZV9jaGlsZChvYmplY3QsIDApOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CkBAIC02
MjYsMTEgKzYyMSw4IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRO
ZXdsaW5lcygpCiAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmll
dyksICZhbGxvY2F0aW9uKTsKICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcod2ViVmll
dywgY29udGVudHNXaXRoTmV3bGluZXMsIDAsIDAsIDApOwogCi0gICAgLyogV2FpdCBmb3IgdGhl
IGFjY2Vzc2libGUgb2JqZWN0cyB0byBiZSBjcmVhdGVkLiAqLwotICAgIHdhaXRGb3JBY2Nlc3Np
YmxlT2JqZWN0cygpOwotCiAgICAgLyogR2V0IHRvIHRoZSBpbm5lciBBdGtUZXh0IG9iamVjdC4g
Ki8KLSAgICBBdGtPYmplY3QqIG9iamVjdCA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RL
X1dJREdFVCh3ZWJWaWV3KSk7CisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBnZXRXZWJBcmVhT2Jq
ZWN0KHdlYlZpZXcpOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CiAgICAgb2JqZWN0ID0gYXRrX29i
amVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmplY3QsIDApOwogICAgIGdfYXNzZXJ0KG9iamVj
dCk7CkBAIC02NTEsMTEgKzY0Myw4IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRUZXh0
QXRPZmZzZXRUZXh0YXJlYSgpCiAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURH
RVQod2ViVmlldyksICZhbGxvY2F0aW9uKTsKICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJp
bmcod2ViVmlldywgY29udGVudHNJblRleHRhcmVhLCAwLCAwLCAwKTsKIAotICAgIC8qIFdhaXQg
Zm9yIHRoZSBhY2Nlc3NpYmxlIG9iamVjdHMgdG8gYmUgY3JlYXRlZC4gKi8KLSAgICB3YWl0Rm9y
QWNjZXNzaWJsZU9iamVjdHMoKTsKLQogICAgIC8qIEdldCB0byB0aGUgaW5uZXIgQXRrVGV4dCBv
YmplY3QuICovCi0gICAgQXRrT2JqZWN0KiBvYmplY3QgPSBndGtfd2lkZ2V0X2dldF9hY2Nlc3Np
YmxlKEdUS19XSURHRVQod2ViVmlldykpOworICAgIEF0a09iamVjdCogb2JqZWN0ID0gZ2V0V2Vi
QXJlYU9iamVjdCh3ZWJWaWV3KTsKICAgICBnX2Fzc2VydChvYmplY3QpOwogICAgIG9iamVjdCA9
IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqZWN0LCAwKTsKICAgICBnX2Fzc2Vy
dChvYmplY3QpOwpAQCAtNjc4LDExICs2NjcsOCBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRr
R2V0VGV4dEF0T2Zmc2V0VGV4dElucHV0KCkKICAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUo
R1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jYXRpb24pOwogICAgIHdlYmtpdF93ZWJfdmlld19s
b2FkX3N0cmluZyh3ZWJWaWV3LCBjb250ZW50c0luVGV4dElucHV0LCAwLCAwLCAwKTsKIAotICAg
IC8qIFdhaXQgZm9yIHRoZSBhY2Nlc3NpYmxlIG9iamVjdHMgdG8gYmUgY3JlYXRlZC4gKi8KLSAg
ICB3YWl0Rm9yQWNjZXNzaWJsZU9iamVjdHMoKTsKLQogICAgIC8qIEdldCB0byB0aGUgaW5uZXIg
QXRrVGV4dCBvYmplY3QuICovCi0gICAgQXRrT2JqZWN0KiBvYmplY3QgPSBndGtfd2lkZ2V0X2dl
dF9hY2Nlc3NpYmxlKEdUS19XSURHRVQod2ViVmlldykpOworICAgIEF0a09iamVjdCogb2JqZWN0
ID0gZ2V0V2ViQXJlYU9iamVjdCh3ZWJWaWV3KTsKICAgICBnX2Fzc2VydChvYmplY3QpOwogICAg
IG9iamVjdCA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqZWN0LCAwKTsKICAg
ICBnX2Fzc2VydChvYmplY3QpOwpAQCAtNzA1LDExICs2OTEsOCBAQCBzdGF0aWMgdm9pZCB0ZXN0
V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0V2l0aFNwZWNpYWxDaGFyYWN0ZXJzKCkKICAgICBndGtf
d2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jYXRpb24pOwog
ICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCBjb250ZW50c1dpdGhTcGVj
aWFsQ2hhcnMsIDAsIDAsIDApOwogCi0gICAgLyogV2FpdCBmb3IgdGhlIGFjY2Vzc2libGUgb2Jq
ZWN0cyB0byBiZSBjcmVhdGVkLiAqLwotICAgIHdhaXRGb3JBY2Nlc3NpYmxlT2JqZWN0cygpOwot
CiAgICAgLyogR2V0IHRvIHRoZSBpbm5lciBBdGtUZXh0IG9iamVjdC4gKi8KLSAgICBBdGtPYmpl
Y3QqIG9iamVjdCA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3
KSk7CisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBnZXRXZWJBcmVhT2JqZWN0KHdlYlZpZXcpOwog
ICAgIGdfYXNzZXJ0KG9iamVjdCk7CiAgICAgb2JqZWN0ID0gYXRrX29iamVjdF9yZWZfYWNjZXNz
aWJsZV9jaGlsZChvYmplY3QsIDApOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CkBAIC03MzksMTEg
KzcyMiw4IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtHZXRUZXh0SW5QYXJhZ3JhcGhBbmRC
b2R5U2ltcGxlKCkKICAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJW
aWV3KSwgJmFsbG9jYXRpb24pOwogICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJW
aWV3LCBjb250ZW50c0luUGFyYWdyYXBoQW5kQm9keVNpbXBsZSwgMCwgMCwgMCk7CiAKLSAgICAv
KiBXYWl0IGZvciB0aGUgYWNjZXNzaWJsZSBvYmplY3RzIHRvIGJlIGNyZWF0ZWQuICovCi0gICAg
d2FpdEZvckFjY2Vzc2libGVPYmplY3RzKCk7Ci0KICAgICAvKiBHZXQgdG8gdGhlIGlubmVyIEF0
a1RleHQgb2JqZWN0LiAqLwotICAgIEF0a09iamVjdCogb2JqZWN0ID0gZ3RrX3dpZGdldF9nZXRf
YWNjZXNzaWJsZShHVEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBBdGtPYmplY3QqIG9iamVjdCA9
IGdldFdlYkFyZWFPYmplY3Qod2ViVmlldyk7CiAgICAgZ19hc3NlcnQob2JqZWN0KTsKICAgICBB
dGtPYmplY3QqIG9iamVjdDEgPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iamVj
dCwgMCk7CiAgICAgZ19hc3NlcnQob2JqZWN0MSk7CkBAIC03NzQsMTEgKzc1NCw4IEBAIHN0YXRp
YyB2b2lkIHRlc3RXZWJraXRBdGtHZXRUZXh0SW5QYXJhZ3JhcGhBbmRCb2R5TW9kZXJhdGUoKQog
ICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAmYWxsb2Nh
dGlvbik7CiAgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIGNvbnRlbnRz
SW5QYXJhZ3JhcGhBbmRCb2R5TW9kZXJhdGUsIDAsIDAsIDApOwogCi0gICAgLyogV2FpdCBmb3Ig
dGhlIGFjY2Vzc2libGUgb2JqZWN0cyB0byBiZSBjcmVhdGVkLiAqLwotICAgIHdhaXRGb3JBY2Nl
c3NpYmxlT2JqZWN0cygpOwotCiAgICAgLyogR2V0IHRvIHRoZSBpbm5lciBBdGtUZXh0IG9iamVj
dC4gKi8KLSAgICBBdGtPYmplY3QqIG9iamVjdCA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUo
R1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBnZXRXZWJBcmVh
T2JqZWN0KHdlYlZpZXcpOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CiAgICAgQXRrT2JqZWN0KiBv
YmplY3QxID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmplY3QsIDApOwogICAg
IGdfYXNzZXJ0KG9iamVjdDEpOwpAQCAtODA5LDEwICs3ODYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0
V2Via2l0QXRrR2V0VGV4dEluVGFibGUoKQogICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShH
VEtfV0lER0VUKHdlYlZpZXcpLCAmYWxsb2NhdGlvbik7CiAgICAgd2Via2l0X3dlYl92aWV3X2xv
YWRfc3RyaW5nKHdlYlZpZXcsIGNvbnRlbnRzSW5UYWJsZSwgMCwgMCwgMCk7CiAKLSAgICAvKiBX
YWl0IGZvciB0aGUgYWNjZXNzaWJsZSBvYmplY3RzIHRvIGJlIGNyZWF0ZWQuICovCi0gICAgd2Fp
dEZvckFjY2Vzc2libGVPYmplY3RzKCk7Ci0KLSAgICBBdGtPYmplY3QqIG9iamVjdCA9IGd0a193
aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgQXRrT2JqZWN0
KiBvYmplY3QgPSBnZXRXZWJBcmVhT2JqZWN0KHdlYlZpZXcpOwogICAgIGdfYXNzZXJ0KG9iamVj
dCk7CiAgICAgb2JqZWN0ID0gYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmplY3Qs
IDApOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CkBAIC04MzIsMTAgKzgwNiw3IEBAIHN0YXRpYyB2
b2lkIHRlc3RXZWJraXRBdGtHZXRIZWFkZXJzSW5UYWJsZSgpCiAgICAgZ3RrX3dpZGdldF9zaXpl
X2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmlldyksICZhbGxvY2F0aW9uKTsKICAgICB3ZWJraXRf
d2ViX3ZpZXdfbG9hZF9zdHJpbmcod2ViVmlldywgY29udGVudHNJblRhYmxlV2l0aEhlYWRlcnMs
IDAsIDAsIDApOwogCi0gICAgLyogV2FpdCBmb3IgdGhlIGFjY2Vzc2libGUgb2JqZWN0cyB0byBi
ZSBjcmVhdGVkLiAqLwotICAgIHdhaXRGb3JBY2Nlc3NpYmxlT2JqZWN0cygpOwotCi0gICAgQXRr
T2JqZWN0KiBheFdlYlZpZXcgPSBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlKEdUS19XSURHRVQo
d2ViVmlldykpOworICAgIEF0a09iamVjdCogYXhXZWJWaWV3ID0gZ2V0V2ViQXJlYU9iamVjdCh3
ZWJWaWV3KTsKICAgICBnX2Fzc2VydChheFdlYlZpZXcpOwogCiAgICAgLyogQ2hlY2sgdGFibGUg
d2l0aCBib3RoIGNvbHVtbiBhbmQgcm93IGhlYWRlcnMuICovCkBAIC05NjYsMTAgKzkzNyw3IEBA
IHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtUZXh0QXR0cmlidXRlcygpCiAgICAgZ3RrX3dpZGdl
dF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmlldyksICZhbGxvY2F0aW9uKTsKICAgICB3
ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcod2ViVmlldywgdGV4dFdpdGhBdHRyaWJ1dGVzLCAw
LCAwLCAwKTsKIAotICAgIC8qIFdhaXQgZm9yIHRoZSBhY2Nlc3NpYmxlIG9iamVjdHMgdG8gYmUg
Y3JlYXRlZC4gKi8KLSAgICB3YWl0Rm9yQWNjZXNzaWJsZU9iamVjdHMoKTsKLQotICAgIEF0a09i
amVjdCogb2JqZWN0ID0gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZShHVEtfV0lER0VUKHdlYlZp
ZXcpKTsKKyAgICBBdGtPYmplY3QqIG9iamVjdCA9IGdldFdlYkFyZWFPYmplY3Qod2ViVmlldyk7
CiAgICAgZ19hc3NlcnQob2JqZWN0KTsKIAogICAgIEF0a09iamVjdCogY2hpbGQgPSBhdGtfb2Jq
ZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iamVjdCwgMCk7CkBAIC0xMDc2LDEwICsxMDQ0LDcg
QEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a1RleHRTZWxlY3Rpb25zKCkKICAgICBndGtfd2lk
Z2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJREdFVCh3ZWJWaWV3KSwgJmFsbG9jYXRpb24pOwogICAg
IHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCB0ZXh0Rm9yU2VsZWN0aW9ucywg
MCwgMCwgMCk7CiAKLSAgICAvKiBXYWl0IGZvciB0aGUgYWNjZXNzaWJsZSBvYmplY3RzIHRvIGJl
IGNyZWF0ZWQuICovCi0gICAgd2FpdEZvckFjY2Vzc2libGVPYmplY3RzKCk7Ci0KLSAgICBBdGtP
YmplY3QqIG9iamVjdCA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJW
aWV3KSk7CisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBnZXRXZWJBcmVhT2JqZWN0KHdlYlZpZXcp
OwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CiAKICAgICBBdGtUZXh0KiBwYXJhZ3JhcGgxID0gQVRL
X1RFWFQoYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmplY3QsIDApKTsKQEAgLTEy
MzMsMTAgKzExOTgsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrR2V0RXh0ZW50cygpCiAg
ICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmlldyksICZhbGxvY2F0
aW9uKTsKICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcod2ViVmlldywgY2VudGVyZWRD
b250ZW50cywgMCwgMCwgMCk7CiAKLSAgICAvKiBXYWl0IGZvciB0aGUgYWNjZXNzaWJsZSBvYmpl
Y3RzIHRvIGJlIGNyZWF0ZWQuICovCi0gICAgd2FpdEZvckFjY2Vzc2libGVPYmplY3RzKCk7Ci0K
LSAgICBBdGtPYmplY3QqIG9iamVjdCA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJ
REdFVCh3ZWJWaWV3KSk7CisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBnZXRXZWJBcmVhT2JqZWN0
KHdlYlZpZXcpOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CiAKICAgICBBdGtUZXh0KiBzaG9ydFRl
eHQxID0gQVRLX1RFWFQoYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChvYmplY3QsIDAp
KTsKQEAgLTEzNDksMTAgKzEzMTEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrTGF5b3V0
QW5kRGF0YVRhYmxlcygpCiAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQo
d2ViVmlldyksICZhbGxvY2F0aW9uKTsKICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmco
d2ViVmlldywgbGF5b3V0QW5kRGF0YVRhYmxlcywgMCwgMCwgMCk7CiAKLSAgICAvKiBXYWl0IGZv
ciB0aGUgYWNjZXNzaWJsZSBvYmplY3RzIHRvIGJlIGNyZWF0ZWQuICovCi0gICAgd2FpdEZvckFj
Y2Vzc2libGVPYmplY3RzKCk7Ci0KLSAgICBBdGtPYmplY3QqIG9iamVjdCA9IGd0a193aWRnZXRf
Z2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgQXRrT2JqZWN0KiBvYmpl
Y3QgPSBnZXRXZWJBcmVhT2JqZWN0KHdlYlZpZXcpOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CiAK
ICAgICAvKiBDaGVjayB0aGUgbm9uLWxheW91dCB0YWJsZSAoZGF0YSB0YWJsZSkuICovCkBAIC0x
Mzg3LDEwICsxMzQ2LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0xpbmtzV2l0aElubGlu
ZUltYWdlcygpCiAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmll
dyksICZhbGxvY2F0aW9uKTsKICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcod2ViVmll
dywgbGlua3NXaXRoSW5saW5lSW1hZ2VzLCAwLCAwLCAwKTsKIAotICAgIC8qIFdhaXQgZm9yIHRo
ZSBhY2Nlc3NpYmxlIG9iamVjdHMgdG8gYmUgY3JlYXRlZC4gKi8KLSAgICB3YWl0Rm9yQWNjZXNz
aWJsZU9iamVjdHMoKTsKLQotICAgIEF0a09iamVjdCogb2JqZWN0ID0gZ3RrX3dpZGdldF9nZXRf
YWNjZXNzaWJsZShHVEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBBdGtPYmplY3QqIG9iamVjdCA9
IGdldFdlYkFyZWFPYmplY3Qod2ViVmlldyk7CiAgICAgZ19hc3NlcnQob2JqZWN0KTsKIAogICAg
IC8qIEZpcnN0IHBhcmFncmFwaCAobGluayBhdCB0aGUgYmVnaW5uaW5nKS4gKi8KQEAgLTE0Mzks
MTAgKzEzOTUsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrSHlwZXJ0ZXh0QW5kSHlwZXJs
aW5rcygpCiAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQod2ViVmlldyks
ICZhbGxvY2F0aW9uKTsKICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcod2ViVmlldywg
aHlwZXJ0ZXh0QW5kSHlwZXJsaW5rcywgMCwgMCwgMCk7CiAKLSAgICAvKiBXYWl0IGZvciB0aGUg
YWNjZXNzaWJsZSBvYmplY3RzIHRvIGJlIGNyZWF0ZWQuICovCi0gICAgd2FpdEZvckFjY2Vzc2li
bGVPYmplY3RzKCk7Ci0KLSAgICBBdGtPYmplY3QqIG9iamVjdCA9IGd0a193aWRnZXRfZ2V0X2Fj
Y2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBn
ZXRXZWJBcmVhT2JqZWN0KHdlYlZpZXcpOwogICAgIGdfYXNzZXJ0KG9iamVjdCk7CiAKICAgICBB
dGtPYmplY3QqIHBhcmFncmFwaDEgPSBhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9i
amVjdCwgMCk7CkBAIC0xNTM0LDEwICsxNDg3LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0
a0xpc3RzT2ZJdGVtcygpCiAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQo
d2ViVmlldyksICZhbGxvY2F0aW9uKTsKICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmco
d2ViVmlldywgbGlzdHNPZkl0ZW1zLCAwLCAwLCAwKTsKIAotICAgIC8qIFdhaXQgZm9yIHRoZSBh
Y2Nlc3NpYmxlIG9iamVjdHMgdG8gYmUgY3JlYXRlZC4gKi8KLSAgICB3YWl0Rm9yQWNjZXNzaWJs
ZU9iamVjdHMoKTsKLQotICAgIEF0a09iamVjdCogb2JqZWN0ID0gZ3RrX3dpZGdldF9nZXRfYWNj
ZXNzaWJsZShHVEtfV0lER0VUKHdlYlZpZXcpKTsKKyAgICBBdGtPYmplY3QqIG9iamVjdCA9IGdl
dFdlYkFyZWFPYmplY3Qod2ViVmlldyk7CiAgICAgZ19hc3NlcnQob2JqZWN0KTsKIAogICAgIC8q
IFVub3JkZXJlZCBsaXN0LiAqLwpAQCAtMTYyNSwxMCArMTU3NSw3IEBAIHN0YXRpYyB2b2lkIHRl
c3RXZWJraXRBdGtUZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbnMoKQogICAgIGd0a193aWRnZXRfc2l6
ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAmYWxsb2NhdGlvbik7CiAgICAgd2Via2l0
X3dlYl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIGZvcm1XaXRoVGV4dElucHV0cywgMCwgMCwg
MCk7CiAKLSAgICAvKiBXYWl0IGZvciB0aGUgYWNjZXNzaWJsZSBvYmplY3RzIHRvIGJlIGNyZWF0
ZWQuICovCi0gICAgd2FpdEZvckFjY2Vzc2libGVPYmplY3RzKCk7Ci0KLSAgICBBdGtPYmplY3Qq
IG9iamVjdCA9IGd0a193aWRnZXRfZ2V0X2FjY2Vzc2libGUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7
CisgICAgQXRrT2JqZWN0KiBvYmplY3QgPSBnZXRXZWJBcmVhT2JqZWN0KHdlYlZpZXcpOwogICAg
IGdfYXNzZXJ0KG9iamVjdCk7CiAKICAgICBBdGtPYmplY3QqIGZvcm0gPSBhdGtfb2JqZWN0X3Jl
Zl9hY2Nlc3NpYmxlX2NoaWxkKG9iamVjdCwgMCk7CkBAIC0xNjU4LDYgKzE2MDUsNDQgQEAgc3Rh
dGljIHZvaWQgdGVzdFdlYmtpdEF0a1RleHRDaGFuZ2VkTm90aWZpY2F0aW9ucygpCiAgICAgZ19v
YmplY3RfdW5yZWYod2ViVmlldyk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtQYXJl
bnRGb3JSb290T2JqZWN0KCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lU
X1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7CisgICAgZ19vYmplY3RfcmVmX3Npbmso
d2ViVmlldyk7CisgICAgR3RrQWxsb2NhdGlvbiBhbGxvY2F0aW9uID0geyAwLCAwLCA4MDAsIDYw
MCB9OworICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAm
YWxsb2NhdGlvbik7CisgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5nKHdlYlZpZXcsIGNv
bnRlbnRzLCAwLCAwLCAwKTsKKworICAgIC8qIFdlIG5lZWQgYSBwYXJlbnQgZm9yIHRoZSB3ZWJ2
aWV3IHRvIGNoZWNrIHRvcC1kb3duIGFuZAorICAgICAgIGJvdHRvbS11cCBuYXZpZ2F0aW9uIGFt
b25nIHRoZW0sIHNvIGNyZWF0ZSBhIGJveCBmb3IgaXQuICovCisjaWZkZWYgR1RLX0FQSV9WRVJT
SU9OXzIKKyAgICBHdGtXaWRnZXQqIGJveCA9IGd0a192Ym94X25ldyhGQUxTRSwgMCk7CisjZWxz
ZQorICAgIEd0a1dpZGdldCogYm94ID0gZ3RrX2JveF9uZXcoR1RLX09SSUVOVEFUSU9OX1ZFUlRJ
Q0FMLCAwKTsKKyNlbmRpZgorICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKGJveCksIEdU
S19XSURHRVQod2ViVmlldyksIEZBTFNFLCBGQUxTRSwgMCk7CisKKyAgICBBdGtPYmplY3QqIGF4
Qm94ID0gZ3RrX3dpZGdldF9nZXRfYWNjZXNzaWJsZSAoYm94KTsKKyAgICBnX2Fzc2VydChBVEtf
SVNfT0JKRUNUKGF4Qm94KSk7CisKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRrX29iamVjdF9nZXRf
bl9hY2Nlc3NpYmxlX2NoaWxkcmVuKGF4Qm94KSwgPT0sIDEpOworICAgIEF0a09iamVjdCogYXhC
b3hDaGlsZCA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQoYXhCb3gsIDApOworICAg
IGdfYXNzZXJ0KGF4Qm94Q2hpbGQpOworCisgICAgQXRrT2JqZWN0KiBheFJvb3QgPSBndGtfd2lk
Z2V0X2dldF9hY2Nlc3NpYmxlKEdUS19XSURHRVQod2ViVmlldykpOworICAgIGdfYXNzZXJ0KEFU
S19JU19PQkpFQ1QoYXhSb290KSk7CisKKyAgICAvKiBUaGUgYm94J3MgY2hpbGQgc2hvdWxkIGJl
IHRoZSBBdGtPYmplY3QgZm9yIHRoZSBXZWJWaWV3J3Mgcm9vdC4gKi8KKyAgICBnX2Fzc2VydChh
eEJveENoaWxkID09IGF4Um9vdCk7CisKKyAgICAvKiBCb3R0b20tdXAgbmF2aWdhdGlvbiBzaG91
bGQgbWF0Y2ggdG9wLWRvd24gb25lLiAqLworICAgIGdfYXNzZXJ0KGF0a19vYmplY3RfZ2V0X3Bh
cmVudChheEJveENoaWxkKSA9PSBheEJveCk7CisKKyAgICBnX29iamVjdF91bnJlZihheEJveCk7
CisgICAgZ19vYmplY3RfdW5yZWYoYXhCb3hDaGlsZCk7CisgICAgZ19vYmplY3RfdW5yZWYod2Vi
Vmlldyk7Cit9CisKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKICAgICBndGtf
dGVzdF9pbml0KCZhcmdjLCAmYXJndiwgMCk7CkBAIC0xNjg1LDYgKzE2NzAsNyBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0
ay9saW5rc1dpdGhJbmxpbmVJbWFnZXMiLCB0ZXN0V2Via2l0QXRrTGlua3NXaXRoSW5saW5lSW1h
Z2VzKTsKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvYXRrL2xpc3RzT2ZJdGVtcyIsIHRl
c3RXZWJraXRBdGtMaXN0c09mSXRlbXMpOwogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9h
dGsvdGV4dENoYW5nZWROb3RpZmljYXRpb25zIiwgdGVzdFdlYmtpdEF0a1RleHRDaGFuZ2VkTm90
aWZpY2F0aW9ucyk7CisgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L2F0ay9wYXJlbnRGb3JS
b290T2JqZWN0IiwgdGVzdFdlYmtpdEF0a1BhcmVudEZvclJvb3RPYmplY3QpOwogICAgIHJldHVy
biBnX3Rlc3RfcnVuICgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHAKaW5kZXggODAzYTE4Yi4uYjVhZDgwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtMTMwOCw3ICsxMzA4LDggQEAgc3RhdGljIEF0a09i
amVjdCogd2Via2l0X3dlYl92aWV3X2dldF9hY2Nlc3NpYmxlKEd0a1dpZGdldCogd2lkZ2V0KQog
ICAgIGlmICghY29yZSh3ZWJWaWV3KSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBBWE9iamVj
dENhY2hlOjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICBBWE9iamVjdENhY2hlOjplbmFibGVBY2Nl
c3NpYmlsaXR5KCk7CiAKICAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZSh3ZWJWaWV3KS0+bWFp
bkZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpCkBAIC0xMzIyLDIwICsxMzIzLDExIEBAIHN0
YXRpYyBBdGtPYmplY3QqIHdlYmtpdF93ZWJfdmlld19nZXRfYWNjZXNzaWJsZShHdGtXaWRnZXQq
IHdpZGdldCkKICAgICBpZiAoIXJvb3RBY2Nlc3NpYmxlKQogICAgICAgICByZXR1cm4gMDsKIAot
ICAgIC8vIFdlIG5lZWQgdG8gcmV0dXJuIHRoZSByb290IGFjY2Vzc2liaWxpdHkgb2JqZWN0J3Mg
Zmlyc3QgY2hpbGQKLSAgICAvLyB0byBnZXQgdG8gdGhlIGFjdHVhbCBBVEsgT2JqZWN0IGFzc29j
aWF0ZWQgd2l0aCB0aGUgd2ViIHZpZXcuCi0gICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MTkzMgogICAgIEF0a09iamVjdCogYXhSb290ID0gcm9vdEFj
Y2Vzc2libGUtPndyYXBwZXIoKTsKICAgICBpZiAoIWF4Um9vdCB8fCAhQVRLX0lTX09CSkVDVChh
eFJvb3QpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIEF0a09iamVjdCogYXhXZWJWaWV3ID0g
YXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChBVEtfT0JKRUNUKGF4Um9vdCksIDApOwot
ICAgIGlmICghYXhXZWJWaWV3IHx8ICFBVEtfSVNfT0JKRUNUKGF4V2ViVmlldykpCi0gICAgICAg
IHJldHVybiAwOwotCi0gICAgLy8gV2UgZG9uJ3Qgd2FudCB0aGUgZXh0cmEgcmVmZXJlbmNlIHJl
dHVybmVkIGJ5IHJlZl9hY2Nlc3NpYmxlX2NoaWxkLgotICAgIGdfb2JqZWN0X3VucmVmKGF4V2Vi
Vmlldyk7Ci0gICAgcmV0dXJuIGF4V2ViVmlldzsKKyAgICByZXR1cm4gYXhSb290OwogfQogCiBz
dGF0aWMgZ2RvdWJsZSB3ZWJWaWV3R2V0RFBJKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi0tIAox
LjcuNy4xCgo=
</data>
<flag name="review"
          id="114013"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>