<?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>172000</bug_id>
          
          <creation_ts>2017-05-11 16:40:00 -0700</creation_ts>
          <short_desc>Add SPI for overriding WKWebView&apos;s clipping behavior for _visibleContentRect</short_desc>
          <delta_ts>2017-05-12 16:29:34 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Quesada">david_quesada</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1307581</commentid>
    <comment_count>0</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2017-05-11 16:40:00 -0700</bug_when>
    <thetext>rdar://problem/32144756</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307588</commentid>
    <comment_count>1</comment_count>
      <attachid>309821</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2017-05-11 16:44:29 -0700</bug_when>
    <thetext>Created attachment 309821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308109</commentid>
    <comment_count>2</comment_count>
      <attachid>309821</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-12 15:34:15 -0700</bug_when>
    <thetext>Comment on attachment 309821
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:2178
&gt; +- (UIView *)_enclosingView

I think this name is too generic; it could easily conflict with a UIKit method, and it has a very particular usage, so we should name it accordingly.

How about _enclosingViewForExposedRectComputation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308112</commentid>
    <comment_count>3</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2017-05-12 15:40:28 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #2)
&gt; Comment on attachment 309821 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=309821&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:2178
&gt; &gt; +- (UIView *)_enclosingView
&gt; 
&gt; I think this name is too generic; it could easily conflict with a UIKit
&gt; method, and it has a very particular usage, so we should name it accordingly.
&gt; 
&gt; How about _enclosingViewForExposedRectComputation?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308127</commentid>
    <comment_count>4</comment_count>
      <attachid>309960</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2017-05-12 16:00:27 -0700</bug_when>
    <thetext>Created attachment 309960
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308145</commentid>
    <comment_count>5</comment_count>
      <attachid>309960</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-12 16:29:32 -0700</bug_when>
    <thetext>Comment on attachment 309960
Patch v2

Clearing flags on attachment: 309960

Committed r216802: &lt;http://trac.webkit.org/changeset/216802&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308146</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-12 16:29:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309821</attachid>
            <date>2017-05-11 16:44:29 -0700</date>
            <delta_ts>2017-05-12 16:00:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>15894</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IDI4ZjhiOGM3MTM3NWMwYjljMmVhMWRkNDRiNWEyODE2MjZlNjNiNTEKQXV0aG9yOiBE
YXZpZCBRdWVzYWRhIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KRGF0ZTogICBUaHUgTWF5IDEx
IDE2OjQwOjU2IDIwMTcgLTA3MDAKCiAgICBBZGQgU1BJIGZvciBvdmVycmlkaW5nIFdLV2ViVmll
dydzIGNsaXBwaW5nIGJlaGF2aW9yIGZvciBfdmlzaWJsZUNvbnRlbnRSZWN0CiAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMDAwCiAgICByZGFyOi8vcHJvYmxl
bS8zMjE0NDc1NgogICAgCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAgIAogICAg
U291cmNlL1dlYktpdDI6CiAgICAKICAgIEV4dHJhY3QgLVtXS1dlYlZpZXcgX3Zpc2libGVDb250
ZW50UmVjdF0ncyB1c2Ugb2YgLV9zY3JvbGxlciB0byBhIG5ldyBwcm9wZXJ0eQogICAgX2VuY2xv
c2luZ1ZpZXcsIHdoaWNoIGlzIGRlY2xhcmVkIGluIHRoZSBwcml2YXRlIGhlYWRlciBmb3Igc3Vi
Y2xhc3NlcyB0bwogICAgaW1wbGVtZW50IGN1c3RvbSBsb2dpYyBmb3IgZGV0ZXJtaW5pbmcgdGhl
IHZpZXcgdG8gY2xpcCByZW5kZXJpbmcgdG8uCiAgICAKICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW06CiAgICAoLVtXS1dlYlZpZXcgX2VuY2xvc2luZ1ZpZXddKToKICAgICgt
W1dLV2ViVmlldyBfdmlzaWJsZVJlY3RJbkVuY2xvc2luZ1ZpZXc6XSk6CiAgICAoLVtXS1dlYlZp
ZXcgX3Zpc2libGVDb250ZW50UmVjdF0pOgogICAgKC1bV0tXZWJWaWV3IF92aXNpYmxlUmVjdElu
RW5jbG9zaW5nU2Nyb2xsVmlldzpdKTogRGVsZXRlZC4KICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmg6CiAgICAKICAgIFRvb2xzOgogICAgCiAgICBBZGRlZCBBUEkg
dGVzdHMgdG8gdmVyaWZ5IHRoYXQgV0tXZWJWaWV3IHByb3ZpZGVzIHRoZSBleHBlY3RlZCB2YWx1
ZSBmb3IKICAgIF92aXNpYmxlQ29udGVudFJlY3QgaW4gdmFyaW91cyBjb25maWd1cmF0aW9ucy4g
KGkuZS4gbm90IGluc2lkZSBhIHNjcm9sbHZpZXcsCiAgICBpbnNpZGUgYSBzY3JvbGx2aWV3IGJ1
dCBub3QgY2xpcHBlZCwgY2xpcHBlZCBieSBhbiBhbmNlc3RvciBzY3JvbGx2aWV3LAogICAgY2xp
cHBlZCBieSB0aGUgd2VidmlldydzIF9lbmNsb3NpbmdWaWV3KQogICAgCiAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgogICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaXNpYmxlQ29udGVudFJlY3QubW06IEFkZGVk
LgogICAgKC1bVGVzdFdLV2ViVmlld1dpdGhFbmNsb3NpbmdWaWV3IF9lbmNsb3NpbmdWaWV3XSk6
CiAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDM0ZjJmNGY3ZjMwLi5l
NjdlMzEwMWU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA1LTExICBEYXZp
ZCBRdWVzYWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFNQSSBm
b3Igb3ZlcnJpZGluZyBXS1dlYlZpZXcncyBjbGlwcGluZyBiZWhhdmlvciBmb3IgX3Zpc2libGVD
b250ZW50UmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMDAwCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzMyMTQ0NzU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0cmFjdCAtW1dLV2ViVmlldyBf
dmlzaWJsZUNvbnRlbnRSZWN0XSdzIHVzZSBvZiAtX3Njcm9sbGVyIHRvIGEgbmV3IHByb3BlcnR5
CisgICAgICAgIF9lbmNsb3NpbmdWaWV3LCB3aGljaCBpcyBkZWNsYXJlZCBpbiB0aGUgcHJpdmF0
ZSBoZWFkZXIgZm9yIHN1YmNsYXNzZXMgdG8KKyAgICAgICAgaW1wbGVtZW50IGN1c3RvbSBsb2dp
YyBmb3IgZGV0ZXJtaW5pbmcgdGhlIHZpZXcgdG8gY2xpcCByZW5kZXJpbmcgdG8uCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9lbmNsb3NpbmdWaWV3XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfdmlzaWJsZVJlY3RJ
bkVuY2xvc2luZ1ZpZXc6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfdmlzaWJsZUNvbnRlbnRS
ZWN0XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfdmlzaWJsZVJlY3RJbkVuY2xvc2luZ1Njcm9s
bFZpZXc6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmg6CisKIDIwMTctMDUtMTEgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBSZW1vdmUgbm90aWZpY2F0aW9ucyBndWFyZHMg
ZnJvbSBHVEsgQVBJIGxheWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCmluZGV4IGQ3NWUwZGZkNWM5Li44MmU5YzU3NjNhOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIxNzUs
MTIgKzIxNzUsMTcgQEAgLSAodm9pZClfc2Nyb2xsVmlld0RpZEludGVycnVwdERlY2VsZXJhdGlu
ZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogICAgIFtzZWxmIF9zY2hlZHVsZVZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUFmdGVyU2Nyb2xsSW5WaWV3OnNjcm9sbFZpZXddOwogfQogCi0tIChD
R1JlY3QpX3Zpc2libGVSZWN0SW5FbmNsb3NpbmdTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKill
bmNsb3NpbmdTY3JvbGxWaWV3CistIChVSVZpZXcgKilfZW5jbG9zaW5nVmlldwogewotICAgIGlm
ICghZW5jbG9zaW5nU2Nyb2xsVmlldykKKyAgICByZXR1cm4gW3NlbGYgX3Njcm9sbGVyXTsKK30K
KworLSAoQ0dSZWN0KV92aXNpYmxlUmVjdEluRW5jbG9zaW5nVmlldzooVUlWaWV3ICopZW5jbG9z
aW5nVmlldworeworICAgIGlmICghZW5jbG9zaW5nVmlldykKICAgICAgICAgcmV0dXJuIHNlbGYu
Ym91bmRzOwogCi0gICAgQ0dSZWN0IGV4cG9zZWRSZWN0ID0gW2VuY2xvc2luZ1Njcm9sbFZpZXcg
Y29udmVydFJlY3Q6ZW5jbG9zaW5nU2Nyb2xsVmlldy5ib3VuZHMgdG9WaWV3OnNlbGZdOworICAg
IENHUmVjdCBleHBvc2VkUmVjdCA9IFtlbmNsb3NpbmdWaWV3IGNvbnZlcnRSZWN0OmVuY2xvc2lu
Z1ZpZXcuYm91bmRzIHRvVmlldzpzZWxmXTsKICAgICByZXR1cm4gQ0dSZWN0SW50ZXJzZWN0c1Jl
Y3QoZXhwb3NlZFJlY3QsIHNlbGYuYm91bmRzKSA/IENHUmVjdEludGVyc2VjdGlvbihleHBvc2Vk
UmVjdCwgc2VsZi5ib3VuZHMpIDogQ0dSZWN0WmVybzsKIH0KIApAQCAtMjE5MSw4ICsyMTk2LDgg
QEAgLSAoQ0dSZWN0KV92aXNpYmxlQ29udGVudFJlY3QKIAogICAgIENHUmVjdCB2aXNpYmxlUmVj
dEluQ29udGVudENvb3JkaW5hdGVzID0gW3NlbGYgY29udmVydFJlY3Q6c2VsZi5ib3VuZHMgdG9W
aWV3Ol9jb250ZW50Vmlldy5nZXQoKV07CiAgICAgCi0gICAgaWYgKFVJU2Nyb2xsVmlldyAqZW5j
bG9zaW5nU2Nyb2xsZXIgPSBbc2VsZiBfc2Nyb2xsZXJdKSB7Ci0gICAgICAgIENHUmVjdCB2aWV3
VmlzaWJsZVJlY3QgPSBbc2VsZiBfdmlzaWJsZVJlY3RJbkVuY2xvc2luZ1Njcm9sbFZpZXc6ZW5j
bG9zaW5nU2Nyb2xsZXJdOworICAgIGlmIChVSVZpZXcgKmVuY2xvc2luZ1ZpZXcgPSBbc2VsZiBf
ZW5jbG9zaW5nVmlld10pIHsKKyAgICAgICAgQ0dSZWN0IHZpZXdWaXNpYmxlUmVjdCA9IFtzZWxm
IF92aXNpYmxlUmVjdEluRW5jbG9zaW5nVmlldzplbmNsb3NpbmdWaWV3XTsKICAgICAgICAgQ0dS
ZWN0IHZpZXdWaXNpYmxlQ29udGVudFJlY3QgPSBbc2VsZiBjb252ZXJ0UmVjdDp2aWV3VmlzaWJs
ZVJlY3QgdG9WaWV3Ol9jb250ZW50Vmlldy5nZXQoKV07CiAgICAgICAgIHZpc2libGVSZWN0SW5D
b250ZW50Q29vcmRpbmF0ZXMgPSBDR1JlY3RJbnRlcnNlY3Rpb24odmlzaWJsZVJlY3RJbkNvbnRl
bnRDb29yZGluYXRlcywgdmlld1Zpc2libGVDb250ZW50UmVjdCk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApp
bmRleCBhMjBmMDhiNzQ4Ny4uNzNlZWMwOGM2NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0xNTgsNiArMTU4
LDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkg
ewogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5z
ZXRzOikgVUlFZGdlSW5zZXRzIF91bm9ic2N1cmVkU2FmZUFyZWFJbnNldHMgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIF9zYWZlQXJlYVNob3VsZEFmZmVjdE9ic2N1cmVkSW5zZXRzIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKFdLX0lPU19UQkEpKTsKIAorLy8gQW4gYW5jZXN0b3IgdmlldyB3aG9zZSBib3VuZHMgd2ls
bCBiZSBpbnRlcnNlY3RlZCB3aXRoIHRob3NlIG9mIHRoaXMgV0tXZWJWaWV3IHRvIGRldGVybWlu
ZSB0aGUgdmlzaWJsZSByZWdpb24gb2YgY29udGVudCB0byByZW5kZXIuCitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIFVJVmlldyAqX2VuY2xvc2luZ1ZpZXcgV0tfQVBJX0FWQUlMQUJM
RShpb3MoV0tfSU9TX1RCQSkpOworCiAvLyBPdmVycmlkZSB0aGUgaW50ZXJmYWNlIG9yaWVudGF0
aW9uLiBDbGllbnRzIHVzaW5nIF9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6IG11c3Qg
dXBkYXRlIHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24KIC8vIGluIHRoZSB1cGRhdGUgYmxvY2su
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnRlcmZhY2VPcmllbnRhdGlvbk92
ZXJyaWRlOikgVUlJbnRlcmZhY2VPcmllbnRhdGlvbiBfaW50ZXJmYWNlT3JpZW50YXRpb25PdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA3ZGZmNGNmNTZiNi4uZDliNDE5MDM2NzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0wNS0xMSAgRGF2aWQg
UXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBTUEkgZm9y
IG92ZXJyaWRpbmcgV0tXZWJWaWV3J3MgY2xpcHBpbmcgYmVoYXZpb3IgZm9yIF92aXNpYmxlQ29u
dGVudFJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MjAwMAorICAgICAgICByZGFyOi8vcHJvYmxlbS8zMjE0NDc1NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0cyB0byB2ZXJp
ZnkgdGhhdCBXS1dlYlZpZXcgcHJvdmlkZXMgdGhlIGV4cGVjdGVkIHZhbHVlIGZvcgorICAgICAg
ICBfdmlzaWJsZUNvbnRlbnRSZWN0IGluIHZhcmlvdXMgY29uZmlndXJhdGlvbnMuIChpLmUuIG5v
dCBpbnNpZGUgYSBzY3JvbGx2aWV3LAorICAgICAgICBpbnNpZGUgYSBzY3JvbGx2aWV3IGJ1dCBu
b3QgY2xpcHBlZCwgY2xpcHBlZCBieSBhbiBhbmNlc3RvciBzY3JvbGx2aWV3LAorICAgICAgICBj
bGlwcGVkIGJ5IHRoZSB3ZWJ2aWV3J3MgX2VuY2xvc2luZ1ZpZXcpCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaXNpYmxlQ29udGVudFJlY3Qu
bW06IEFkZGVkLgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3V2l0aEVuY2xvc2luZ1ZpZXcgX2Vu
Y2xvc2luZ1ZpZXddKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE3LTA1
LTExICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIEFkZCBXUEUgcmVsZWFzZSBib3RzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMz
NWFiZjg0MTMwLi5iNTMzMGIxMzJkZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIxNCw2
ICsyMTQsNyBAQAogCQk1RTRCMUQyRTFENDA0QzYxMDAwNTM2MjEgLyogV0tTY3JvbGxWaWV3RGVs
ZWdhdGVDcmFzaC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVFNEIxRDJDMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNo
Lm1tICovOyB9OwogCQk2MzFFRkZGNjFFN0I1RThEMDBEMkVCQjggLyogR2VvbG9jYXRpb24ubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MzFFRkZGNTFF
N0I1RThEMDBEMkVCQjggLyogR2VvbG9jYXRpb24ubW0gKi87IH07CiAJCTYzNDkxMEUwMUU5RDNG
RjMwMDg4MDMwOSAvKiBDb3JlTG9jYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjM0OTEwREYxRTlEM0ZGMzAwODgwMzA5IC8q
IENvcmVMb2NhdGlvbi5mcmFtZXdvcmsgKi87IH07CisJCTYzNTZGQjIyMUVDNEUwQkEwMDQ0QkYx
OCAvKiBWaXNpYmxlQ29udGVudFJlY3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2MzU2RkIyMTFFQzRFMEJBMDA0NEJGMTggLyogVmlzaWJsZUNvbnRl
bnRSZWN0Lm1tICovOyB9OwogCQk2MzYzNTNBNzFFOTg2NjVEMDAwOUY4QUYgLyogR2VvbG9jYXRp
b25HZXRDdXJyZW50UG9zaXRpb25SZXN1bHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MzYzNTNBNjFFOTg2MTk0MDAwOUY4QUYgLyog
R2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25SZXN1bHQuaHRtbCAqLzsgfTsKIAkJNkJGRDI5
NEMxRDVFNkMxRDAwOEVDOTY4IC8qIEhhc2hDb3VudGVkU2V0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBMzhEN0U1MUM3NTJENUYwMDRGMTU3RCAv
KiBIYXNoQ291bnRlZFNldC5jcHAgKi87IH07CiAJCTc1NUEyMEFGMUU2RTM4NjMwMDkzQzY5RiAv
KiBEYXRhYmFzZVRyYWNrZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NUEyMEFFMUU2RTM4NjMwMDkzQzY5RiAvKiBEYXRhYmFzZVRyYWNr
ZXJUZXN0LmNwcCAqLzsgfTsKQEAgLTExNzUsNiArMTE3Niw3IEBACiAJCTVFNEIxRDJDMUQ0MDRD
NjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFzaC5tbTsg
cGF0aCA9IC4uL2lvcy9XS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2MzFFRkZGNTFFN0I1RThEMDBEMkVCQjggLyogR2VvbG9jYXRpb24u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHZW9sb2NhdGlvbi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjM0OTEwREYxRTlEM0ZGMzAwODgwMzA5
IC8qIENvcmVMb2NhdGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENvcmVMb2NhdGlv
bi5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVMb2NhdGlv
bi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OworCQk2MzU2RkIyMTFFQzRFMEJB
MDA0NEJGMTggLyogVmlzaWJsZUNvbnRlbnRSZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
VmlzaWJsZUNvbnRlbnRSZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MzYz
NTNBNjFFOTg2MTk0MDAwOUY4QUYgLyogR2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25SZXN1
bHQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEdlb2xvY2F0aW9uR2V0Q3VycmVu
dFBvc2l0aW9uUmVzdWx0Lmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NUEy
MEFFMUU2RTM4NjMwMDkzQzY5RiAvKiBEYXRhYmFzZVRyYWNrZXJUZXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFiYXNlVHJhY2tlclRlc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTYwOTE3NzE5MjU5QzU5MDA5RUYwNkUgLyogTWVt
b3J5Q2FjaGVBZGRJbWFnZVRvQ2FjaGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBNZW1vcnlDYWNoZUFkZEltYWdlVG9DYWNoZUlPUy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQsNiArMTc1Niw3IEBACiAJCQkJN0M4ODJFMDUxQzgw
QzYyNDAwNkJGNzMxIC8qIFVzZXJDb250ZW50V29ybGRQcm90b2NvbC5oICovLAogCQkJCTdDQ0I5
OTIwMUQzQjQxRjYwMDM5MjJGNiAvKiBVc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0
aW9uLm1tICovLAogCQkJCTkzRTk0M0YxMUNEM0U4N0UwMEFDMDhDMiAvKiBWaWRlb0NvbnRyb2xz
TWFuYWdlci5tbSAqLywKKwkJCQk2MzU2RkIyMTFFQzRFMEJBMDA0NEJGMTggLyogVmlzaWJsZUNv
bnRlbnRSZWN0Lm1tICovLAogCQkJCTUxNzE0RUI2MUNGOEM3QTQwMDQ3MjNDNCAvKiBXZWJQcm9j
ZXNzS2lsbElEQkNsZWFudXAubW0gKi8sCiAJCQkJNTEyMEM4M0MxRTY3NTA3OTAwMjVCMjUwIC8q
IFdlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbSAqLywKIAkJCQk1QzlFNTY4NDFERjkxNDNE
MDBDOUVFMzMgLyogV2Vic2l0ZVBvbGljaWVzLm1tICovLApAQCAtMjkzOCw2ICsyOTQxLDcgQEAK
IAkJCQk1QzgzOEY3RjFEQjA0RjkwMDA4Mjg1OEYgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQzAxRDBBNjUyNzAwRkVCQ0YzIC8qIExvYWRJbnZh
bGlkVVJMUmVxdWVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjAwMUE0MTFBRTYwMDQ0
N0M0QyAvKiBMb2FkUGFnZU9uQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNjM1NkZCMjIx
RUM0RTBCQTAwNDRCRjE4IC8qIFZpc2libGVDb250ZW50UmVjdC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTUxRTZBODk0MUQyRjFDMEEwMEMwMDRCNiAvKiBMb2NhbFN0b3JhZ2VDbGVhci5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTQ2QzUxOURBMUQzNTVBQjIwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VO
dWxsRW50cmllcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBNkEyQzcwMURDQ0ZBOEMwMEMwRDA4
NSAvKiBMb2NhbFN0b3JhZ2VRdWlya1Rlc3QubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1Zpc2libGVDb250ZW50UmVj
dC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1Zpc2libGVDb250
ZW50UmVjdC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2EzZDQw
NDc5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9WaXNpYmxlQ29udGVudFJlY3QubW0KQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JN
KElPUykKKworI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
Vmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9X
ZWFrUHRyLmg+CisKK0BpbnRlcmZhY2UgV0tXZWJWaWV3ICgpCistIChDR1JlY3QpX3Zpc2libGVD
b250ZW50UmVjdDsKK0BlbmQKKworQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3V2l0aEVuY2xvc2lu
Z1ZpZXcgOiBUZXN0V0tXZWJWaWV3CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBVSVZp
ZXcgKnRlc3RfZW5jbG9zaW5nVmlldzsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRlc3RXS1dl
YlZpZXdXaXRoRW5jbG9zaW5nVmlldworLSAoVUlWaWV3ICopX2VuY2xvc2luZ1ZpZXcKK3sKKyAg
ICBpZiAoX3Rlc3RfZW5jbG9zaW5nVmlldykKKyAgICAgICAgcmV0dXJuIF90ZXN0X2VuY2xvc2lu
Z1ZpZXc7CisgICAgcmV0dXJuIFtzdXBlciBfZW5jbG9zaW5nVmlld107Cit9CitAZW5kCisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChXZWJLaXQyLCBWaXNpYmxlQ29udGVudFJl
Y3RfRnVsbEJvdW5kcykKK3sKKyAgICBhdXRvIGNvbmZpZyA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXdXaXRoRW5jbG9zaW5nVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZy5nZXQoKV0pOworCisg
ICAgRVhQRUNUX1RSVUUoQ0dSZWN0RXF1YWxUb1JlY3QoW3dlYlZpZXcgX3Zpc2libGVDb250ZW50
UmVjdF0sIENHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApKSk7Cit9CisKK1RFU1QoV2ViS2l0Miwg
VmlzaWJsZUNvbnRlbnRSZWN0X0Z1bGxCb3VuZHNXaXRoaW5TY3JvbGxWaWV3KQoreworICAgIGF1
dG8gY29uZmlnID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlld1dpdGhFbmNsb3Np
bmdWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNv
bmZpZ3VyYXRpb246Y29uZmlnLmdldCgpXSk7CisgICAgYXV0byB3aW5kb3cgPSB3ZWJWaWV3Lmdl
dCgpLndpbmRvdzsKKyAgICBhdXRvIHNjcm9sbFZpZXcgPSBhZG9wdE5TKFtbVUlTY3JvbGxWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApXSk7CisgICAg
W3dpbmRvdyBhZGRTdWJ2aWV3OnNjcm9sbFZpZXcuZ2V0KCldOworICAgIFtzY3JvbGxWaWV3IGFk
ZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CisKKyAgICBFWFBFQ1RfVFJVRShDR1JlY3RFcXVhbFRv
UmVjdChbd2ViVmlldyBfdmlzaWJsZUNvbnRlbnRSZWN0XSwgQ0dSZWN0TWFrZSgwLCAwLCA4MDAs
IDYwMCkpKTsKK30KKworVEVTVChXZWJLaXQyLCBWaXNpYmxlQ29udGVudFJlY3RfRnVsbEJvdW5k
c1doZW5DbGlwcGVkQnlOb25TY3JvbGxWaWV3KQoreworICAgIGF1dG8gY29uZmlnID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlld1dpdGhFbmNsb3NpbmdWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmln
LmdldCgpXSk7CisgICAgYXV0byB3aW5kb3cgPSB3ZWJWaWV3LmdldCgpLndpbmRvdzsKKyAgICBh
dXRvIHZpZXcgPSBhZG9wdE5TKFtbVUlWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dpbmRvdyBhZGRTdWJ2aWV3OnZpZXcuZ2V0KCld
OworICAgIFt2aWV3IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CisKKyAgICB3ZWJWaWV3Lmdl
dCgpLmZyYW1lID0gQ0dSZWN0TWFrZSgtMTAwLCAtMTAwLCAxMDAwLCA4MDApOworCisgICAgRVhQ
RUNUX1RSVUUoQ0dSZWN0RXF1YWxUb1JlY3QoW3dlYlZpZXcgX3Zpc2libGVDb250ZW50UmVjdF0s
IENHUmVjdE1ha2UoMCwgMCwgMTAwMCwgODAwKSkpOworfQorCitURVNUKFdlYktpdDIsIFZpc2li
bGVDb250ZW50UmVjdF9DbGlwcGVkQm91bmRzV2hlbkNsaXBwZWRCeVNjcm9sbFZpZXcpCit7Cisg
ICAgQ0dSZWN0IHdpbmRvd0JvdW5kcyA9IENHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApOworICAg
IGF1dG8gY29uZmlnID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlld1dpdGhFbmNs
b3NpbmdWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOndpbmRvd0JvdW5kcyBjb25maWd1cmF0aW9u
OmNvbmZpZy5nZXQoKV0pOworICAgIGF1dG8gd2luZG93ID0gd2ViVmlldy5nZXQoKS53aW5kb3c7
CisgICAgYXV0byBzY3JvbGxWaWV3ID0gYWRvcHROUyhbW1VJU2Nyb2xsVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTp3aW5kb3dCb3VuZHNdKTsKKyAgICBbd2luZG93IGFkZFN1YnZpZXc6c2Nyb2xs
Vmlldy5nZXQoKV07CisgICAgW3Njcm9sbFZpZXcgYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsK
KworICAgIHdlYlZpZXcuZ2V0KCkuZnJhbWUgPSBDR1JlY3RNYWtlKC0xMDAsIC0xMDAsIDEwMDAs
IDgwMCk7CisgICAgc2Nyb2xsVmlldy5nZXQoKS5jb250ZW50U2l6ZSA9IENHU2l6ZU1ha2UoMTAw
MCwgODAwKTsKKyAgICBzY3JvbGxWaWV3LmdldCgpLmNvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFr
ZSg1MCwgNTApOworCisgICAgRVhQRUNUX1RSVUUoQ0dSZWN0RXF1YWxUb1JlY3QoW3dlYlZpZXcg
X3Zpc2libGVDb250ZW50UmVjdF0sIENHUmVjdE1ha2UoMTUwLCAxNTAsIDgwMCwgNjAwKSkpOwor
fQorCitURVNUKFdlYktpdDIsIFZpc2libGVDb250ZW50UmVjdF9DbGlwcGVkQm91bmRzV2hlbkNs
aXBwZWRCeUVuY2xvc2luZ1ZpZXcpCit7CisgICAgYXV0byBjb25maWcgPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3V2l0aEVuY2xvc2luZ1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWcuZ2V0KCld
KTsKKyAgICBhdXRvIHdpbmRvdyA9IHdlYlZpZXcuZ2V0KCkud2luZG93OworICAgIGF1dG8gdmll
dyA9IGFkb3B0TlMoW1tVSVZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAw
LCA4MDAsIDYwMCldKTsKKyAgICBbd2luZG93IGFkZFN1YnZpZXc6dmlldy5nZXQoKV07CisgICAg
W3ZpZXcgYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKKworICAgIHdlYlZpZXcuZ2V0KCkuZnJh
bWUgPSBDR1JlY3RNYWtlKC0xMDAsIC0xMDAsIDEwMDAsIDgwMCk7CisgICAgd2ViVmlldy5nZXQo
KS50ZXN0X2VuY2xvc2luZ1ZpZXcgPSB2aWV3LmdldCgpOworCisgICAgRVhQRUNUX1RSVUUoQ0dS
ZWN0RXF1YWxUb1JlY3QoW3dlYlZpZXcgX3Zpc2libGVDb250ZW50UmVjdF0sIENHUmVjdE1ha2Uo
MTAwLCAxMDAsIDgwMCwgNjAwKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShJT1MpCisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309960</attachid>
            <date>2017-05-12 16:00:27 -0700</date>
            <delta_ts>2017-05-12 16:29:32 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>patchv2.diff</filename>
            <type>text/plain</type>
            <size>16348</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IDNmMjUyYjI1N2ZjYTUwYTZlZjhmYzVkZDUxOTQ0NGM3ZWE5MDdlOGUKQXV0aG9yOiBE
YXZpZCBRdWVzYWRhIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KRGF0ZTogICBUaHUgTWF5IDEx
IDE2OjQwOjU2IDIwMTcgLTA3MDAKCiAgICBBZGQgU1BJIGZvciBvdmVycmlkaW5nIFdLV2ViVmll
dydzIGNsaXBwaW5nIGJlaGF2aW9yIGZvciBfdmlzaWJsZUNvbnRlbnRSZWN0CiAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMDAwCiAgICByZGFyOi8vcHJvYmxl
bS8zMjE0NDc1NgogICAgCiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAgIAogICAg
U291cmNlL1dlYktpdDI6CiAgICAKICAgIEV4dHJhY3QgLVtXS1dlYlZpZXcgX3Zpc2libGVDb250
ZW50UmVjdF0ncyB1c2Ugb2YgLV9zY3JvbGxlciB0byBhIG5ldyBwcm9wZXJ0eQogICAgX2VuY2xv
c2luZ1ZpZXdGb3JFeHBvc2VkUmVjdENvbXB1dGF0aW9uLCB3aGljaCBpcyBkZWNsYXJlZCBpbiB0
aGUgcHJpdmF0ZQogICAgaGVhZGVyIGZvciBzdWJjbGFzc2VzIHRvIGltcGxlbWVudCBjdXN0b20g
bG9naWMgZm9yIGRldGVybWluaW5nIHRoZSB2aWV3IHRvCiAgICBjbGlwIHJlbmRlcmluZyB0by4K
ICAgIAogICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKICAgICgtW1dLV2Vi
VmlldyBfZW5jbG9zaW5nVmlld0ZvckV4cG9zZWRSZWN0Q29tcHV0YXRpb25dKToKICAgICgtW1dL
V2ViVmlldyBfdmlzaWJsZVJlY3RJbkVuY2xvc2luZ1ZpZXc6XSk6CiAgICAoLVtXS1dlYlZpZXcg
X3Zpc2libGVDb250ZW50UmVjdF0pOgogICAgKC1bV0tXZWJWaWV3IF92aXNpYmxlUmVjdEluRW5j
bG9zaW5nU2Nyb2xsVmlldzpdKTogRGVsZXRlZC4KICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmg6CiAgICAKICAgIFRvb2xzOgogICAgCiAgICBBZGRlZCBBUEkgdGVz
dHMgdG8gdmVyaWZ5IHRoYXQgV0tXZWJWaWV3IHByb3ZpZGVzIHRoZSBleHBlY3RlZCB2YWx1ZSBm
b3IKICAgIF92aXNpYmxlQ29udGVudFJlY3QgaW4gdmFyaW91cyBjb25maWd1cmF0aW9ucy4gKGku
ZS4gbm90IGluc2lkZSBhIHNjcm9sbHZpZXcsCiAgICBpbnNpZGUgYSBzY3JvbGx2aWV3IGJ1dCBu
b3QgY2xpcHBlZCwgY2xpcHBlZCBieSBhbiBhbmNlc3RvciBzY3JvbGx2aWV3LAogICAgY2xpcHBl
ZCBieSB0aGUgd2VidmlldydzIF9lbmNsb3NpbmdWaWV3Rm9yRXhwb3NlZFJlY3RDb21wdXRhdGlv
bikKICAgIAogICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlzaWJs
ZUNvbnRlbnRSZWN0Lm1tOiBBZGRlZC4KICAgICgtW1Rlc3RXS1dlYlZpZXdXaXRoRW5jbG9zaW5n
VmlldyBfZW5jbG9zaW5nVmlld0ZvckV4cG9zZWRSZWN0Q29tcHV0YXRpb25dKToKICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjA5NTlkZWNkYzUuLmFlNzM0MzA1NzIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDUtMTIgIERhdmlkIFF1ZXNhZGEg
IDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgU1BJIGZvciBvdmVycmlk
aW5nIFdLV2ViVmlldydzIGNsaXBwaW5nIGJlaGF2aW9yIGZvciBfdmlzaWJsZUNvbnRlbnRSZWN0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIwMDAK
KyAgICAgICAgcmRhcjovL3Byb2JsZW0vMzIxNDQ3NTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRyYWN0IC1bV0tXZWJWaWV3IF92aXNpYmxlQ29u
dGVudFJlY3RdJ3MgdXNlIG9mIC1fc2Nyb2xsZXIgdG8gYSBuZXcgcHJvcGVydHkKKyAgICAgICAg
X2VuY2xvc2luZ1ZpZXdGb3JFeHBvc2VkUmVjdENvbXB1dGF0aW9uLCB3aGljaCBpcyBkZWNsYXJl
ZCBpbiB0aGUgcHJpdmF0ZQorICAgICAgICBoZWFkZXIgZm9yIHN1YmNsYXNzZXMgdG8gaW1wbGVt
ZW50IGN1c3RvbSBsb2dpYyBmb3IgZGV0ZXJtaW5pbmcgdGhlIHZpZXcgdG8KKyAgICAgICAgY2xp
cCByZW5kZXJpbmcgdG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9lbmNsb3NpbmdWaWV3Rm9yRXhwb3NlZFJlY3RD
b21wdXRhdGlvbl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Zpc2libGVSZWN0SW5FbmNsb3Np
bmdWaWV3Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Zpc2libGVDb250ZW50UmVjdF0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3Zpc2libGVSZWN0SW5FbmNsb3NpbmdTY3JvbGxWaWV3Ol0p
OiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oOgorCiAyMDE3LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgU3RvcCB1c2luZyBQYXNzUmVmUHRyIHVuZGVyIFdlYktpdDIvVUlQcm9jZXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDli
NWQ4ZWY5YzAzLi5mZGQ4OTM3ZTFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIxNzcsMTIgKzIxNzcsMTcgQEAgLSAodm9pZClf
c2Nyb2xsVmlld0RpZEludGVycnVwdERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xs
VmlldwogICAgIFtzZWxmIF9zY2hlZHVsZVZpc2libGVDb250ZW50UmVjdFVwZGF0ZUFmdGVyU2Ny
b2xsSW5WaWV3OnNjcm9sbFZpZXddOwogfQogCi0tIChDR1JlY3QpX3Zpc2libGVSZWN0SW5FbmNs
b3NpbmdTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKillbmNsb3NpbmdTY3JvbGxWaWV3CistIChV
SVZpZXcgKilfZW5jbG9zaW5nVmlld0ZvckV4cG9zZWRSZWN0Q29tcHV0YXRpb24KIHsKLSAgICBp
ZiAoIWVuY2xvc2luZ1Njcm9sbFZpZXcpCisgICAgcmV0dXJuIFtzZWxmIF9zY3JvbGxlcl07Cit9
CisKKy0gKENHUmVjdClfdmlzaWJsZVJlY3RJbkVuY2xvc2luZ1ZpZXc6KFVJVmlldyAqKWVuY2xv
c2luZ1ZpZXcKK3sKKyAgICBpZiAoIWVuY2xvc2luZ1ZpZXcpCiAgICAgICAgIHJldHVybiBzZWxm
LmJvdW5kczsKIAotICAgIENHUmVjdCBleHBvc2VkUmVjdCA9IFtlbmNsb3NpbmdTY3JvbGxWaWV3
IGNvbnZlcnRSZWN0OmVuY2xvc2luZ1Njcm9sbFZpZXcuYm91bmRzIHRvVmlldzpzZWxmXTsKKyAg
ICBDR1JlY3QgZXhwb3NlZFJlY3QgPSBbZW5jbG9zaW5nVmlldyBjb252ZXJ0UmVjdDplbmNsb3Np
bmdWaWV3LmJvdW5kcyB0b1ZpZXc6c2VsZl07CiAgICAgcmV0dXJuIENHUmVjdEludGVyc2VjdHNS
ZWN0KGV4cG9zZWRSZWN0LCBzZWxmLmJvdW5kcykgPyBDR1JlY3RJbnRlcnNlY3Rpb24oZXhwb3Nl
ZFJlY3QsIHNlbGYuYm91bmRzKSA6IENHUmVjdFplcm87CiB9CiAKQEAgLTIxOTMsOCArMjE5OCw4
IEBAIC0gKENHUmVjdClfdmlzaWJsZUNvbnRlbnRSZWN0CiAKICAgICBDR1JlY3QgdmlzaWJsZVJl
Y3RJbkNvbnRlbnRDb29yZGluYXRlcyA9IFtzZWxmIGNvbnZlcnRSZWN0OnNlbGYuYm91bmRzIHRv
VmlldzpfY29udGVudFZpZXcuZ2V0KCldOwogICAgIAotICAgIGlmIChVSVNjcm9sbFZpZXcgKmVu
Y2xvc2luZ1Njcm9sbGVyID0gW3NlbGYgX3Njcm9sbGVyXSkgewotICAgICAgICBDR1JlY3Qgdmll
d1Zpc2libGVSZWN0ID0gW3NlbGYgX3Zpc2libGVSZWN0SW5FbmNsb3NpbmdTY3JvbGxWaWV3OmVu
Y2xvc2luZ1Njcm9sbGVyXTsKKyAgICBpZiAoVUlWaWV3ICplbmNsb3NpbmdWaWV3ID0gW3NlbGYg
X2VuY2xvc2luZ1ZpZXdGb3JFeHBvc2VkUmVjdENvbXB1dGF0aW9uXSkgeworICAgICAgICBDR1Jl
Y3Qgdmlld1Zpc2libGVSZWN0ID0gW3NlbGYgX3Zpc2libGVSZWN0SW5FbmNsb3NpbmdWaWV3OmVu
Y2xvc2luZ1ZpZXddOwogICAgICAgICBDR1JlY3Qgdmlld1Zpc2libGVDb250ZW50UmVjdCA9IFtz
ZWxmIGNvbnZlcnRSZWN0OnZpZXdWaXNpYmxlUmVjdCB0b1ZpZXc6X2NvbnRlbnRWaWV3LmdldCgp
XTsKICAgICAgICAgdmlzaWJsZVJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyA9IENHUmVjdEludGVy
c2VjdGlvbih2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCB2aWV3VmlzaWJsZUNvbnRl
bnRSZWN0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGEyMGYwOGI3NDg3Li40ZTQ4Y2Q1ZjM4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKQEAgLTE1OCw2ICsxNTgsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHM6KSBVSUVkZ2VJbnNldHMgX3Vub2JzY3VyZWRT
YWZlQXJlYUluc2V0cyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3NhZmVBcmVhU2hvdWxkQWZmZWN0T2JzY3Vy
ZWRJbnNldHMgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCisvLyBBbiBhbmNl
c3RvciB2aWV3IHdob3NlIGJvdW5kcyB3aWxsIGJlIGludGVyc2VjdGVkIHdpdGggdGhvc2Ugb2Yg
dGhpcyBXS1dlYlZpZXcgdG8gZGV0ZXJtaW5lIHRoZSB2aXNpYmxlIHJlZ2lvbiBvZiBjb250ZW50
IHRvIHJlbmRlci4KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlWaWV3ICpfZW5j
bG9zaW5nVmlld0ZvckV4cG9zZWRSZWN0Q29tcHV0YXRpb24gV0tfQVBJX0FWQUlMQUJMRShpb3Mo
V0tfSU9TX1RCQSkpOworCiAvLyBPdmVycmlkZSB0aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uLiBD
bGllbnRzIHVzaW5nIF9iZWdpbkFuaW1hdGVkUmVzaXplV2l0aFVwZGF0ZXM6IG11c3QgdXBkYXRl
IHRoZSBpbnRlcmZhY2Ugb3JpZW50YXRpb24KIC8vIGluIHRoZSB1cGRhdGUgYmxvY2suCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnRlcmZhY2VPcmllbnRhdGlvbk92ZXJyaWRl
OikgVUlJbnRlcmZhY2VPcmllbnRhdGlvbiBfaW50ZXJmYWNlT3JpZW50YXRpb25PdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NmY4
NWRkMjJhOC4uNWIzY2I4NjQwNGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0wNS0xMiAgRGF2aWQgUXVlc2Fk
YSAgPGRhdmlkX3F1ZXNhZGFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBTUEkgZm9yIG92ZXJy
aWRpbmcgV0tXZWJWaWV3J3MgY2xpcHBpbmcgYmVoYXZpb3IgZm9yIF92aXNpYmxlQ29udGVudFJl
Y3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjAw
MAorICAgICAgICByZGFyOi8vcHJvYmxlbS8zMjE0NDc1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIEFQSSB0ZXN0cyB0byB2ZXJpZnkgdGhh
dCBXS1dlYlZpZXcgcHJvdmlkZXMgdGhlIGV4cGVjdGVkIHZhbHVlIGZvcgorICAgICAgICBfdmlz
aWJsZUNvbnRlbnRSZWN0IGluIHZhcmlvdXMgY29uZmlndXJhdGlvbnMuIChpLmUuIG5vdCBpbnNp
ZGUgYSBzY3JvbGx2aWV3LAorICAgICAgICBpbnNpZGUgYSBzY3JvbGx2aWV3IGJ1dCBub3QgY2xp
cHBlZCwgY2xpcHBlZCBieSBhbiBhbmNlc3RvciBzY3JvbGx2aWV3LAorICAgICAgICBjbGlwcGVk
IGJ5IHRoZSB3ZWJ2aWV3J3MgX2VuY2xvc2luZ1ZpZXdGb3JFeHBvc2VkUmVjdENvbXB1dGF0aW9u
KQorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
VmlzaWJsZUNvbnRlbnRSZWN0Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bVGVzdFdLV2ViVmlld1dp
dGhFbmNsb3NpbmdWaWV3IF9lbmNsb3NpbmdWaWV3Rm9yRXhwb3NlZFJlY3RDb21wdXRhdGlvbl0p
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTctMDUtMTIgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMTY3MTEp
OiBBUEkgdGVzdCBXS1dlYlZpZXcuQ2xlYXJBcHBDYWNoZSBpcyBmYWlsaW5nLgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBkMzczNzg0ODk5MS4uNDk2YzczYmJkMDUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yMTYsNiArMjE2LDcgQEAKIAkJNUU0QjFEMkUxRDQwNEM2MTAwMDUzNjIx
IC8qIFdLU2Nyb2xsVmlld0RlbGVnYXRlQ3Jhc2gubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RTRCMUQyQzFENDA0QzYxMDAwNTM2MjEgLyogV0tTY3Jv
bGxWaWV3RGVsZWdhdGVDcmFzaC5tbSAqLzsgfTsKIAkJNjMxRUZGRjYxRTdCNUU4RDAwRDJFQkI4
IC8qIEdlb2xvY2F0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNjMxRUZGRjUxRTdCNUU4RDAwRDJFQkI4IC8qIEdlb2xvY2F0aW9uLm1tICovOyB9
OwogCQk2MzQ5MTBFMDFFOUQzRkYzMDA4ODAzMDkgLyogQ29yZUxvY2F0aW9uLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzNDkxMERG
MUU5RDNGRjMwMDg4MDMwOSAvKiBDb3JlTG9jYXRpb24uZnJhbWV3b3JrICovOyB9OworCQk2MzU2
RkIyMjFFQzRFMEJBMDA0NEJGMTggLyogVmlzaWJsZUNvbnRlbnRSZWN0Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjM1NkZCMjExRUM0RTBCQTAwNDRC
RjE4IC8qIFZpc2libGVDb250ZW50UmVjdC5tbSAqLzsgfTsKIAkJNjM2MzUzQTcxRTk4NjY1RDAw
MDlGOEFGIC8qIEdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uUmVzdWx0Lmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjM2MzUzQTYx
RTk4NjE5NDAwMDlGOEFGIC8qIEdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uUmVzdWx0Lmh0
bWwgKi87IH07CiAJCTZCRkQyOTRDMUQ1RTZDMUQwMDhFQzk2OCAvKiBIYXNoQ291bnRlZFNldC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTM4RDdF
NTFDNzUyRDVGMDA0RjE1N0QgLyogSGFzaENvdW50ZWRTZXQuY3BwICovOyB9OwogCQk3NTVBMjBB
RjFFNkUzODYzMDA5M0M2OUYgLyogRGF0YWJhc2VUcmFja2VyVGVzdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTVBMjBBRTFFNkUzODYzMDA5M0M2
OUYgLyogRGF0YWJhc2VUcmFja2VyVGVzdC5jcHAgKi87IH07CkBAIC0xMTgwLDYgKzExODEsNyBA
QAogCQk1RTRCMUQyQzFENDA0QzYxMDAwNTM2MjEgLyogV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFz
aC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLU2Nyb2xsVmll
d0RlbGVnYXRlQ3Jhc2gubW07IHBhdGggPSAuLi9pb3MvV0tTY3JvbGxWaWV3RGVsZWdhdGVDcmFz
aC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjMxRUZGRjUxRTdCNUU4RDAwRDJF
QkI4IC8qIEdlb2xvY2F0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gR2VvbG9jYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYzNDkx
MERGMUU5RDNGRjMwMDg4MDMwOSAvKiBDb3JlTG9jYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7
IG5hbWUgPSBDb3JlTG9jYXRpb24uZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9Db3JlTG9jYXRpb24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsK
KwkJNjM1NkZCMjExRUM0RTBCQTAwNDRCRjE4IC8qIFZpc2libGVDb250ZW50UmVjdC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFZpc2libGVDb250ZW50UmVjdC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjM2MzUzQTYxRTk4NjE5NDAwMDlGOEFGIC8qIEdlb2xvY2F0aW9uR2V0
Q3VycmVudFBvc2l0aW9uUmVzdWx0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBH
ZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvblJlc3VsdC5odG1sOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NTVBMjBBRTFFNkUzODYzMDA5M0M2OUYgLyogRGF0YWJhc2VUcmFja2Vy
VGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRhYmFzZVRy
YWNrZXJUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU2MDkxNzcxOTI1
OUM1OTAwOUVGMDZFIC8qIE1lbW9yeUNhY2hlQWRkSW1hZ2VUb0NhY2hlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVtb3J5Q2FjaGVBZGRJbWFnZVRvQ2Fj
aGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzYwLDYgKzE3NjIsNyBA
QAogCQkJCTdDODgyRTA1MUM4MEM2MjQwMDZCRjczMSAvKiBVc2VyQ29udGVudFdvcmxkUHJvdG9j
b2wuaCAqLywKIAkJCQk3Q0NCOTkyMDFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFj
dGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbSAqLywKIAkJCQk5M0U5NDNGMTFDRDNFODdFMDBBQzA4
QzIgLyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gKi8sCisJCQkJNjM1NkZCMjExRUM0RTBCQTAw
NDRCRjE4IC8qIFZpc2libGVDb250ZW50UmVjdC5tbSAqLywKIAkJCQk1MTcxNEVCNjFDRjhDN0E0
MDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1tICovLAogCQkJCTUxMjBDODND
MUU2NzUwNzkwMDI1QjI1MCAvKiBXZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0gKi8sCiAJ
CQkJNUM5RTU2ODQxREY5MTQzRDAwQzlFRTMzIC8qIFdlYnNpdGVQb2xpY2llcy5tbSAqLywKQEAg
LTI5NDYsNiArMjk0OSw3IEBACiAJCQkJNUM4MzhGN0YxREIwNEY5MDAwODI4NThGIC8qIExvYWRJ
bnZhbGlkVVJMUmVxdWVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEMwMUQwQTY1Mjcw
MEZFQkNGMyAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
Q0NFN0YwMDFBNDExQUU2MDA0NDdDNEMgLyogTG9hZFBhZ2VPbkNyYXNoLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTYzNTZGQjIyMUVDNEUwQkEwMDQ0QkYxOCAvKiBWaXNpYmxlQ29udGVudFJlY3Qu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUU2QTg5NDFEMkYxQzBBMDBDMDA0QjYgLyogTG9jYWxT
dG9yYWdlQ2xlYXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk0NkM1MTlEQTFEMzU1QUIyMDBEQUE1
MUEgLyogTG9jYWxTdG9yYWdlTnVsbEVudHJpZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QTZB
MkM3MDFEQ0NGQThDMDBDMEQwODUgLyogTG9jYWxTdG9yYWdlUXVpcmtUZXN0Lm1tIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9WaXNpYmxlQ29udGVudFJlY3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9WaXNpYmxlQ29udGVudFJlY3QubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjg3MTM2OGVhMmI3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlzaWJsZUNvbnRlbnRSZWN0Lm1tCkBAIC0wLDAg
KzEsMTIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBXS19BUElf
RU5BQkxFRCAmJiBQTEFURk9STShJT1MpCisKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgorCitAaW50ZXJmYWNlIFdLV2ViVmlldyAoKQor
LSAoQ0dSZWN0KV92aXNpYmxlQ29udGVudFJlY3Q7CitAZW5kCisKK0BpbnRlcmZhY2UgVGVzdFdL
V2ViVmlld1dpdGhFbmNsb3NpbmdWaWV3IDogVGVzdFdLV2ViVmlldworQHByb3BlcnR5IChub25h
dG9taWMsIGFzc2lnbikgVUlWaWV3ICp0ZXN0X2VuY2xvc2luZ1ZpZXdGb3JFeHBvc2VkUmVjdENv
bXB1dGF0aW9uOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlld1dpdGhFbmNs
b3NpbmdWaWV3CistIChVSVZpZXcgKilfZW5jbG9zaW5nVmlld0ZvckV4cG9zZWRSZWN0Q29tcHV0
YXRpb24KK3sKKyAgICBpZiAoX3Rlc3RfZW5jbG9zaW5nVmlld0ZvckV4cG9zZWRSZWN0Q29tcHV0
YXRpb24pCisgICAgICAgIHJldHVybiBfdGVzdF9lbmNsb3NpbmdWaWV3Rm9yRXhwb3NlZFJlY3RD
b21wdXRhdGlvbjsKKyAgICByZXR1cm4gW3N1cGVyIF9lbmNsb3NpbmdWaWV3Rm9yRXhwb3NlZFJl
Y3RDb21wdXRhdGlvbl07Cit9CitAZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwor
VEVTVChXZWJLaXQyLCBWaXNpYmxlQ29udGVudFJlY3RfRnVsbEJvdW5kcykKK3sKKyAgICBhdXRv
IGNvbmZpZyA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXdXaXRoRW5jbG9zaW5n
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZy5nZXQoKV0pOworCisgICAgRVhQRUNUX1RSVUUoQ0dSZWN0RXF1YWxU
b1JlY3QoW3dlYlZpZXcgX3Zpc2libGVDb250ZW50UmVjdF0sIENHUmVjdE1ha2UoMCwgMCwgODAw
LCA2MDApKSk7Cit9CisKK1RFU1QoV2ViS2l0MiwgVmlzaWJsZUNvbnRlbnRSZWN0X0Z1bGxCb3Vu
ZHNXaXRoaW5TY3JvbGxWaWV3KQoreworICAgIGF1dG8gY29uZmlnID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlld1dpdGhFbmNsb3NpbmdWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlnLmdldCgpXSk7
CisgICAgYXV0byB3aW5kb3cgPSB3ZWJWaWV3LmdldCgpLndpbmRvdzsKKyAgICBhdXRvIHNjcm9s
bFZpZXcgPSBhZG9wdE5TKFtbVUlTY3JvbGxWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dpbmRvdyBhZGRTdWJ2aWV3OnNjcm9sbFZp
ZXcuZ2V0KCldOworICAgIFtzY3JvbGxWaWV3IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CisK
KyAgICBFWFBFQ1RfVFJVRShDR1JlY3RFcXVhbFRvUmVjdChbd2ViVmlldyBfdmlzaWJsZUNvbnRl
bnRSZWN0XSwgQ0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkpKTsKK30KKworVEVTVChXZWJLaXQy
LCBWaXNpYmxlQ29udGVudFJlY3RfRnVsbEJvdW5kc1doZW5DbGlwcGVkQnlOb25TY3JvbGxWaWV3
KQoreworICAgIGF1dG8gY29uZmlnID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
d1dpdGhFbmNsb3NpbmdWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlnLmdldCgpXSk7CisgICAgYXV0byB3aW5kb3cg
PSB3ZWJWaWV3LmdldCgpLndpbmRvdzsKKyAgICBhdXRvIHZpZXcgPSBhZG9wdE5TKFtbVUlWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApXSk7CisgICAg
W3dpbmRvdyBhZGRTdWJ2aWV3OnZpZXcuZ2V0KCldOworICAgIFt2aWV3IGFkZFN1YnZpZXc6d2Vi
Vmlldy5nZXQoKV07CisKKyAgICB3ZWJWaWV3LmdldCgpLmZyYW1lID0gQ0dSZWN0TWFrZSgtMTAw
LCAtMTAwLCAxMDAwLCA4MDApOworCisgICAgRVhQRUNUX1RSVUUoQ0dSZWN0RXF1YWxUb1JlY3Qo
W3dlYlZpZXcgX3Zpc2libGVDb250ZW50UmVjdF0sIENHUmVjdE1ha2UoMCwgMCwgMTAwMCwgODAw
KSkpOworfQorCitURVNUKFdlYktpdDIsIFZpc2libGVDb250ZW50UmVjdF9DbGlwcGVkQm91bmRz
V2hlbkNsaXBwZWRCeVNjcm9sbFZpZXcpCit7CisgICAgQ0dSZWN0IHdpbmRvd0JvdW5kcyA9IENH
UmVjdE1ha2UoMCwgMCwgODAwLCA2MDApOworICAgIGF1dG8gY29uZmlnID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlld1dpdGhFbmNsb3NpbmdWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOndpbmRvd0JvdW5kcyBjb25maWd1cmF0aW9uOmNvbmZpZy5nZXQoKV0pOworICAgIGF1dG8g
d2luZG93ID0gd2ViVmlldy5nZXQoKS53aW5kb3c7CisgICAgYXV0byBzY3JvbGxWaWV3ID0gYWRv
cHROUyhbW1VJU2Nyb2xsVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTp3aW5kb3dCb3VuZHNdKTsK
KyAgICBbd2luZG93IGFkZFN1YnZpZXc6c2Nyb2xsVmlldy5nZXQoKV07CisgICAgW3Njcm9sbFZp
ZXcgYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKKworICAgIHdlYlZpZXcuZ2V0KCkuZnJhbWUg
PSBDR1JlY3RNYWtlKC0xMDAsIC0xMDAsIDEwMDAsIDgwMCk7CisgICAgc2Nyb2xsVmlldy5nZXQo
KS5jb250ZW50U2l6ZSA9IENHU2l6ZU1ha2UoMTAwMCwgODAwKTsKKyAgICBzY3JvbGxWaWV3Lmdl
dCgpLmNvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZSg1MCwgNTApOworCisgICAgRVhQRUNUX1RS
VUUoQ0dSZWN0RXF1YWxUb1JlY3QoW3dlYlZpZXcgX3Zpc2libGVDb250ZW50UmVjdF0sIENHUmVj
dE1ha2UoMTUwLCAxNTAsIDgwMCwgNjAwKSkpOworfQorCitURVNUKFdlYktpdDIsIFZpc2libGVD
b250ZW50UmVjdF9DbGlwcGVkQm91bmRzV2hlbkNsaXBwZWRCeUVuY2xvc2luZ1ZpZXcpCit7Cisg
ICAgYXV0byBjb25maWcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3V2l0aEVu
Y2xvc2luZ1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYw
MCkgY29uZmlndXJhdGlvbjpjb25maWcuZ2V0KCldKTsKKyAgICBhdXRvIHdpbmRvdyA9IHdlYlZp
ZXcuZ2V0KCkud2luZG93OworICAgIGF1dG8gdmlldyA9IGFkb3B0TlMoW1tVSVZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2luZG93
IGFkZFN1YnZpZXc6dmlldy5nZXQoKV07CisgICAgW3ZpZXcgYWRkU3Vidmlldzp3ZWJWaWV3Lmdl
dCgpXTsKKworICAgIHdlYlZpZXcuZ2V0KCkuZnJhbWUgPSBDR1JlY3RNYWtlKC0xMDAsIC0xMDAs
IDEwMDAsIDgwMCk7CisgICAgd2ViVmlldy5nZXQoKS50ZXN0X2VuY2xvc2luZ1ZpZXdGb3JFeHBv
c2VkUmVjdENvbXB1dGF0aW9uID0gdmlldy5nZXQoKTsKKworICAgIEVYUEVDVF9UUlVFKENHUmVj
dEVxdWFsVG9SZWN0KFt3ZWJWaWV3IF92aXNpYmxlQ29udGVudFJlY3RdLCBDR1JlY3RNYWtlKDEw
MCwgMTAwLCA4MDAsIDYwMCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQor
CisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oSU9TKQorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>