<?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>210885</bug_id>
          
          <creation_ts>2020-04-22 15:44:06 -0700</creation_ts>
          <short_desc>[iOS] Implement UIKit SPI _isHorizontalWritingMode</short_desc>
          <delta_ts>2020-04-28 16:03:31 -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>WebKit Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=210875</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=210877</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=211148</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1644555</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-22 15:44:06 -0700</bug_when>
    <thetext>Implement UIKit SPI _isHorizontalWritingMode added in &lt;rdar://problem/57865890&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644556</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-22 15:44:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/62215704&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644568</commentid>
    <comment_count>2</comment_count>
      <attachid>397284</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-22 16:26:13 -0700</bug_when>
    <thetext>Created attachment 397284
Patch and tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644570</commentid>
    <comment_count>3</comment_count>
      <attachid>397286</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-22 16:35:34 -0700</bug_when>
    <thetext>Created attachment 397286
Patch and tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645290</commentid>
    <comment_count>4</comment_count>
      <attachid>397286</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-24 11:24:16 -0700</bug_when>
    <thetext>Comment on attachment 397286
Patch and tests

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

&gt; Source/WebCore/editing/FrameSelection.cpp:2
&gt; + * Copyright (C) 2004, 2008-2010, 2014-2015, 2020 Apple Inc. All rights reserved.

Just 2004-2020 is fine.

&gt; Source/WebCore/editing/FrameSelection.cpp:1650
&gt; +    if (m_selection.isNone())
&gt; +        return true;

This check is not necessary.

&gt; Source/WebCore/editing/FrameSelection.h:187
&gt; +    WEBCORE_EXPORT bool isHorizontal() const;

I think this name is too short. I would not say that &quot;a selection is horizontal&quot;. I think a good name could be &quot;startsInHorizontalWritingMode&quot;.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:439
&gt; +@property (nonatomic, readonly, getter=_isHorizontalWritingMode) BOOL _horizontalWritingMode;

Not thrilled with the naming here. Saying that &quot;content view is horizontal writing mode&quot; doesn’t make sense. Maybe &quot;is in horizontal writing mode&quot; would be better, but even that doesn’t seem quite right.

But I guess this is UIKit SPI, not something we are naming?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646020</commentid>
    <comment_count>5</comment_count>
      <attachid>397286</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-27 08:50:47 -0700</bug_when>
    <thetext>Comment on attachment 397286
Patch and tests

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

Thanks for the review!

&gt;&gt; Source/WebCore/editing/FrameSelection.cpp:2
&gt;&gt; + * Copyright (C) 2004, 2008-2010, 2014-2015, 2020 Apple Inc. All rights reserved.
&gt; 
&gt; Just 2004-2020 is fine.

Cool

&gt;&gt; Source/WebCore/editing/FrameSelection.cpp:1650
&gt;&gt; +        return true;
&gt; 
&gt; This check is not necessary.

OK. I added as a fast path (without measuring) but it&apos;s cool to remove.

&gt;&gt; Source/WebCore/editing/FrameSelection.h:187
&gt;&gt; +    WEBCORE_EXPORT bool isHorizontal() const;
&gt; 
&gt; I think this name is too short. I would not say that &quot;a selection is horizontal&quot;. I think a good name could be &quot;startsInHorizontalWritingMode&quot;.

I like your suggestion! I&apos;m renaming...

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:439
&gt;&gt; +@property (nonatomic, readonly, getter=_isHorizontalWritingMode) BOOL _horizontalWritingMode;
&gt; 
&gt; Not thrilled with the naming here. Saying that &quot;content view is horizontal writing mode&quot; doesn’t make sense. Maybe &quot;is in horizontal writing mode&quot; would be better, but even that doesn’t seem quite right.
&gt; 
&gt; But I guess this is UIKit SPI, not something we are naming?

I&apos;m adding the SPI. So, we can name it! I was having a hard time naming this thing throughout the patch....I&apos;ll go with isInHorizontalWritingMode for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646726</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-04-28 16:03:22 -0700</bug_when>
    <thetext>After thinking about this some more, I decided to implement the -markedTextRange API instead fo adding this SPI. See bug #211148.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397284</attachid>
            <date>2020-04-22 16:26:13 -0700</date>
            <delta_ts>2020-04-22 16:35:32 -0700</delta_ts>
            <desc>Patch and tests</desc>
            <filename>bug-210885-20200422162612.patch</filename>
            <type>text/plain</type>
            <size>30776</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U0MGMwMTY2MGY4ZTMw
NGE3NjI2NTg2OGMxYjM1YTFkMDhkY2U4MS4uOTAyZTJkNDU4ODVhMTY5NWUxNTgxZWMyMDY0N2I4
ZjgyZDQ0MGM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA0LTIyICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBJbXBsZW1lbnQg
VUlLaXQgU1BJIF9pc0hvcml6b250YWxXcml0aW5nTW9kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwODg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82MjIxNTcwND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBuZXcgbWVtYmVyIGZ1bmN0aW9uIGlzSG9yaXpvbnRhbCB0aGF0IHJldHVybnMg
d2hldGhlciB0aGUgc2VsZWN0aW9uIGlzIGhvcml6b250YWwgb3Igbm90LgorICAgICAgICBUaGUg
ZW5naW5lIGN1cnJlbnRseSBkb2VzIG5vdCBjb25zaWRlciBjb21iaW5lZCB0ZXh0IHdoZW4gcGFp
bnRpbmcgdGhlIGNhcmV0IHNvIEkgY2hvc2UgdG8gbWF0Y2gKKyAgICAgICAgdGhpcyBiZWhhdmlv
ciBhbmQgaXNIb3Jpem9udGFsIGRvZXMgbm90IGNvbnNpZGVyIGl0IGFzIHdlbGwuIFdoZW4gdGhl
IGNhcmV0IGlzIG5vdCBpbnNpZGUgYW4KKyAgICAgICAgaW5saW5lIGJveCBJIGZhbGwgYmFjayB0
byBsb29raW5nIGF0IHRoZSB3cml0aW5nIG1vZGUgb2YgdGhlIGVuY2xvc2luZyBibG9jay4KKwor
ICAgICAgICBJIGFsc28gbWFkZSBpc0hvcml6b250YWwgd29yayBmb3IgU1ZHIHRleHQgYm94ZXMu
IFRob3VnaCB2ZXJ0aWNhbCB0ZXh0IGVkaXRpbmcgaW4gU1ZHIGhhcyBtYW55CisgICAgICAgIGJ1
Z3MgYXQgdGhlIG1vbWVudCB0aGF0IGhhbXBlciB0ZXN0aW5nIHRoaXMgZnVuY3Rpb25hbGl0eSBv
biBpT1MsIGluY2x1ZGluZyA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjEwODc1PgorICAgICAgICBh
bmQgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIxMDg3Nz4uCisKKyAgICAgICAgKiBlZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjppc0hv
cml6b250YWwgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
Lmg6CisKIDIwMjAtMDQtMjEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIC1fZGlkRmluaXNoVGV4dEludGVyYWN0aW9uSW5UZXh0SW5wdXRDb250ZXh0
IHNob3VsZCBvbmx5IHpvb20gdG8gcmV2ZWFsIGZvY3VzZWQgZWxlbWVudCBpZiBpdCBjaGFuZ2Vk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDFkYThkY2NiY2E3NTVkYmMzYmNkYzE5ZTkxOGZiMTgwNWRiYzM0Y2MuLjFm
NWQwOGM3MzJmZTE1Mjc1YmExM2E5NGU5ZTIyODNhNWFmNWU2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjkgQEAKKzIwMjAtMDQtMjIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1NdIEltcGxlbWVudCBVSUtpdCBTUEkgX2lzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA4
ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYyMjE1NzA0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdpcmUgdXAgLV9pc0hvcml6b250YWxXcml0
aW5nTW9kZS4KKworICAgICAgICAqIFNoYXJlZC9FZGl0b3JTdGF0ZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkVkaXRvclN0YXRlOjpQb3N0TGF5b3V0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6RWRpdG9yU3RhdGU6OlBvc3RMYXlvdXREYXRhOjpkZWNvZGUpOgorICAgICAg
ICBFbmNvZGUgYW5kIGRlY29kZSBhIGJpdCBmb3IgaG9yaXpvbnRhbCB3cml0aW5nIG1vZGUuCisK
KyAgICAgICAgKiBTaGFyZWQvRWRpdG9yU3RhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBf
aXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTogQWRkZWQ7IHR1cm5zIGFyb3VuZCBhbmQgY2FsbHMg
c2FtZSBmdW5jdGlvbgorICAgICAgICBvbiBjb250ZW50IHZpZXcuCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpn
ZXRQbGF0Zm9ybUVkaXRvclN0YXRlIGNvbnN0KTogVXBkYXRlIHN0YXRlLgorCiAyMDIwLTA0LTIx
ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSAtX2Rp
ZEZpbmlzaFRleHRJbnRlcmFjdGlvbkluVGV4dElucHV0Q29udGV4dCBzaG91bGQgb25seSB6b29t
IHRvIHJldmVhbCBmb2N1c2VkIGVsZW1lbnQgaWYgaXQgY2hhbmdlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA0NTE2ZTUwNjUwNzJmZjUxYzNjOTAxYjc4
NTI0NTNmYmZhOTdiMzU5Li5mYzkyOGYzN2NjOTFmMzNlMWEzMDlkMmM0ZjM0MjlkMmIyMmZjYTU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTQt
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDgtMjAxMCwgMjAxNC0yMDE1LCAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTY0Myw2ICsxNjQzLDI4
IEBAIFJlbmRlckJsb2NrKiBGcmFtZVNlbGVjdGlvbjo6Y2FyZXRSZW5kZXJlcldpdGhvdXRVcGRh
dGluZ0xheW91dCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlbmRlcmVyRm9yQ2FyZXRQYWludGluZyht
X3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCkpOwogfQogCitib29sIEZyYW1lU2Vs
ZWN0aW9uOjppc0hvcml6b250YWwoKSBjb25zdAoreworICAgIGlmIChtX3NlbGVjdGlvbi5pc05v
bmUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgYXV0byB2aXNpYmxlU3RhcnQgPSBtX3Nl
bGVjdGlvbi52aXNpYmxlU3RhcnQoKTsgLy8gVXBkYXRlcyBsYXlvdXQKKyAgICBpZiAodmlzaWJs
ZVN0YXJ0LmlzTm90TnVsbCgpKSB7CisgICAgICAgIElubGluZUJveCogYm94ID0gbnVsbHB0cjsK
KyAgICAgICAgaW50IHVudXNlZENhcmV0T2Zmc2V0OworICAgICAgICB2aXNpYmxlU3RhcnQuZ2V0
SW5saW5lQm94QW5kT2Zmc2V0KGJveCwgdW51c2VkQ2FyZXRPZmZzZXQpOworICAgICAgICBpZiAo
Ym94ICYmIGJveC0+aXNTVkdJbmxpbmVUZXh0Qm94KCkpCisgICAgICAgICAgICByZXR1cm4gYm94
LT5saW5lU3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworICAgICAgICBpZiAoYm94
KQorICAgICAgICAgICAgcmV0dXJuIGJveC0+aXNIb3Jpem9udGFsKCk7CisgICAgfQorICAgIGF1
dG8qIGJsb2NrID0gZW5jbG9zaW5nQmxvY2sobV9zZWxlY3Rpb24uZXh0ZW50KCkuY29udGFpbmVy
Tm9kZSgpKTsKKyAgICBpZiAoIWJsb2NrKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAo
YXV0byogc3R5bGUgPSBibG9jay0+cmVuZGVyU3R5bGUoKSkKKyAgICAgICAgcmV0dXJuIHN0eWxl
LT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworICAgIHJldHVybiB0cnVlOworfQorCiBSZW5k
ZXJCbG9jayogRHJhZ0NhcmV0Q29udHJvbGxlcjo6Y2FyZXRSZW5kZXJlcigpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIHJlbmRlcmVyRm9yQ2FyZXRQYWludGluZyhtX3Bvc2l0aW9uLmRlZXBFcXVpdmFs
ZW50KCkuZGVwcmVjYXRlZE5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0ZyYW1lU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmgKaW5kZXggZTZhNzA4YjA1NGY1OWIzMGJmYjU3ZWZkZmUzMmNhZWQxNjVhMDUwOC4uMjgy
ZTFiYTZkZDRjYzNlN2I0ZjExYjk5MGJhNmJmODMwY2Y1YTgyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uaApAQCAtMTg0LDYgKzE4NCw3IEBAIHB1YmxpYzoKIAogICAg
IC8vIFJldHVybiB0aGUgcmVuZGVyZXIgdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgcGFpbnRpbmcg
dGhlIGNhcmV0IChpbiB0aGUgc2VsZWN0aW9uIHN0YXJ0IG5vZGUpCiAgICAgUmVuZGVyQmxvY2sq
IGNhcmV0UmVuZGVyZXJXaXRob3V0VXBkYXRpbmdMYXlvdXQoKSBjb25zdDsKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGlzSG9yaXpvbnRhbCgpIGNvbnN0OwogCiAgICAgLy8gQm91bmRzIG9mIChw
b3NzaWJseSB0cmFuc2Zvcm1lZCkgY2FyZXQgaW4gYWJzb2x1dGUgY29vcmRzCiAgICAgV0VCQ09S
RV9FWFBPUlQgSW50UmVjdCBhYnNvbHV0ZUNhcmV0Qm91bmRzKGJvb2wqIGluc2lkZUZpeGVkID0g
bnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0b3JTdGF0ZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKaW5kZXggNGMwYjlhNjQ2
ODEzZWU4MTFiYTc2MTM2YTcwOTIyMGMzYTcxM2I4Zi4uM2UxZjhiNjk3NzEyMTFjYjQ4NGY2OGM4
ZDMwZjU4YThjZmVjMmRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRWRpdG9y
U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRvclN0YXRlLmNwcApAQCAt
MTM2LDYgKzEzNiw3IEBAIHZvaWQgRWRpdG9yU3RhdGU6OlBvc3RMYXlvdXREYXRhOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgYXRTdGFydE9mU2Vu
dGVuY2U7CiAgICAgZW5jb2RlciA8PCBzZWxlY3Rpb25TdGFydElzQXRQYXJhZ3JhcGhCb3VuZGFy
eTsKICAgICBlbmNvZGVyIDw8IHNlbGVjdGlvbkVuZElzQXRQYXJhZ3JhcGhCb3VuZGFyeTsKKyAg
ICBlbmNvZGVyIDw8IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlOwogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgIGVuY29kZXIgPDwgY2FuZGlkYXRlUmVxdWVzdFN0YXJ0UG9zaXRpb247CkBA
IC0yMDgsNiArMjA5LDggQEAgYm9vbCBFZGl0b3JTdGF0ZTo6UG9zdExheW91dERhdGE6OmRlY29k
ZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFBvc3RMYXlvdXREYXRhJgogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2VsZWN0aW9uRW5kSXNBdFBh
cmFncmFwaEJvdW5kYXJ5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0LmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmNhbmRpZGF0ZVJlcXVlc3RTdGFydFBvc2l0aW9uKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRvclN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9F
ZGl0b3JTdGF0ZS5oCmluZGV4IDk5MGMxMDcxZGE4YzY2NDFhNGM3ZmI4MzFjNWU2YmIyNzExNGUz
YjcuLjZjNTZkYzIwMzNjNTBhMWEzZWQyNDkwNWI0ZTc1YTllNDU5MzgwMDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRvclN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvRWRpdG9yU3RhdGUuaApAQCAtMTE0LDYgKzExNCw3IEBAIHN0cnVjdCBFZGl0b3JTdGF0
ZSB7CiAgICAgICAgIGJvb2wgYXRTdGFydE9mU2VudGVuY2UgeyBmYWxzZSB9OwogICAgICAgICBi
b29sIHNlbGVjdGlvblN0YXJ0SXNBdFBhcmFncmFwaEJvdW5kYXJ5IHsgZmFsc2UgfTsKICAgICAg
ICAgYm9vbCBzZWxlY3Rpb25FbmRJc0F0UGFyYWdyYXBoQm91bmRhcnkgeyBmYWxzZSB9OworICAg
ICAgICBib29sIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlIHsgZmFsc2UgfTsKICNlbmRpZgogI2lm
IFBMQVRGT1JNKE1BQykKICAgICAgICAgdWludDY0X3QgY2FuZGlkYXRlUmVxdWVzdFN0YXJ0UG9z
aXRpb24geyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKaW5kZXggODY1YjcwN2Vi
NDE5YzFlYTBiOWQxYmU3ZWI2MDhiYTk2MGJhM2VmMi4uZGI1MmRmMWMzZTU4MjE0ZGZiNzRiODMy
YWE2OTMzOGZjMDFmZmIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaApAQCAtNDEs
NiArNDEsNyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqX3Nj
cm9sbGluZ1RyZWVBc1RleHQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TTnVt
YmVyICpfc3RhYmxlU3RhdGVPdmVycmlkZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgQ0dSZWN0IF9kcmFnQ2FyZXRSZWN0OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBCT09MIF9pc0hvcml6b250YWxXcml0aW5nTW9kZTsKIAogLSAodm9pZClrZXlib2FyZEFjY2Vz
c29yeUJhck5leHQ7CiAtICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFyUHJldmlvdXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJ
T1MubW0KaW5kZXggOWMzN2I0NGRiNGZlMjQwZWI3MjJkNTNkMmVjMTUzMjhkYjk5Mzg1ZS4uNjE5
Y2MyNDJmMTQ5YjIwMmI0YjQxZWJlODFiZWViYzgyYTkwM2M3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpAQCAt
OTMsNiArOTMsMTEgQEAgLSAoQk9PTClfbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3Q6
KENHUmVjdClyZWN0CiAgICAgcmV0dXJuIFdlYktpdDo6bWF5Q29udGFpbkVkaXRhYmxlRWxlbWVu
dHNJblJlY3QoX2NvbnRlbnRWaWV3LmdldCgpLCBbc2VsZiBjb252ZXJ0UmVjdDpyZWN0IHRvVmll
dzpfY29udGVudFZpZXcuZ2V0KCldKTsKIH0KIAorLSAoQk9PTClfaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUKK3sKKyAgICByZXR1cm4gW19jb250ZW50VmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGVdOworfQorCiAtICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFyTmV4dAogewogICAgIFtfY29u
dGVudFZpZXcgYWNjZXNzb3J5VGFiOllFU107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggMDFkMmY0MTY4N2Rk
MGVkNzIxM2EwY2JkY2FjNmI1MDFmODhmZDhhNC4uZmNmNTgwOWZlYjEyNDkwZjM3NTJhNjg3NjU0
ODUwOTc4MjBkNGFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtNDM2LDYgKzQzNiw3IEBAIHN0cnVjdCBX
S0F1dG9Db3JyZWN0aW9uRGF0YSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJ
VmlldyAqaW5wdXRBY2Nlc3NvcnlWaWV3Rm9yV2ViVmlldzsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgQk9PTCBwcmV2ZW50c1Bhbm5pbmdJblhBeGlzOwogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBCT09MIHByZXZlbnRzUGFubmluZ0luWUF4aXM7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1faXNIb3Jpem9udGFsV3JpdGluZ01vZGUpIEJP
T0wgX2hvcml6b250YWxXcml0aW5nTW9kZTsKIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5U
KQogQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgVUlWaWV3IDxXS0Zvcm1Db250cm9sPiAq
ZGF0YUxpc3RUZXh0U3VnZ2VzdGlvbnNJbnB1dFZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA0YTM4
ZDZiMjEwNjJkN2EzMjE0MmFiMDA4OTljYzlkNzE0YmUxYWE2Li4yN2QwMDYzZmNiNWM0MjI1Njk1
NDU0YmNlOWQxOWMyOTI3ZjI3ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTMwNTUsNiArMzA1NSwx
MiBAQCAtICh2b2lkKV9hZGRTaG9ydGN1dEZvcldlYlZpZXc6KGlkKXNlbmRlcgogICAgICAgICBb
X3RleHRJbnRlcmFjdGlvbkFzc2lzdGFudCBzaG93VGV4dFNlcnZpY2VGb3I6W3NlbGYgc2VsZWN0
ZWRUZXh0XSBmcm9tUmVjdDpfcGFnZS0+ZWRpdG9yU3RhdGUoKS5wb3N0TGF5b3V0RGF0YSgpLnNl
bGVjdGlvblJlY3RzWzBdLnJlY3QoKV07CiB9CiAKKy0gKEJPT0wpX2lzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlCit7CisgICAgYXV0byYgZWRpdG9yU3RhdGUgPSBfcGFnZS0+ZWRpdG9yU3RhdGUoKTsK
KyAgICByZXR1cm4gZWRpdG9yU3RhdGUuaXNNaXNzaW5nUG9zdExheW91dERhdGEgfHwgZWRpdG9y
U3RhdGUucG9zdExheW91dERhdGEoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZTsKK30KKwogLSAo
TlNTdHJpbmcgKilzZWxlY3RlZFRleHQKIHsKICAgICByZXR1cm4gKE5TU3RyaW5nICopX3BhZ2Ut
PmVkaXRvclN0YXRlKCkucG9zdExheW91dERhdGEoKS53b3JkQXRTZWxlY3Rpb247CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IDg0OTMyZmY0NzM5NGRjMmZhNzI5OGQxNGUwMDc3OTI0ZGMxNTY2OWQuLmVhMmE3OTUxMjM0ODVm
MWFmY2ZhMTk2YzQyODdhNDA4OTRhZDI5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yNjYsOCArMjY2LDEwIEBAIHZv
aWQgV2ViUGFnZTo6Z2V0UGxhdGZvcm1FZGl0b3JTdGF0ZShGcmFtZSYgZnJhbWUsIEVkaXRvclN0
YXRlJiByZXN1bHQpIGNvbnN0CiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8mIHBvc3RMYXlv
dXREYXRhID0gcmVzdWx0LnBvc3RMYXlvdXREYXRhKCk7Ci0gICAgY29uc3QgYXV0byYgc2VsZWN0
aW9uID0gZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgcG9zdExheW91dERhdGEu
aXNTdGFibGVTdGF0ZVVwZGF0ZSA9IG1faXNJblN0YWJsZVN0YXRlOworICAgIHBvc3RMYXlvdXRE
YXRhLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlID0gZnJhbWUuc2VsZWN0aW9uKCkuaXNIb3Jpem9u
dGFsKCk7CisKKyAgICBjb25zdCBhdXRvJiBzZWxlY3Rpb24gPSBmcmFtZS5zZWxlY3Rpb24oKS5z
ZWxlY3Rpb24oKTsKICAgICBib29sIHN0YXJ0Tm9kZUlzSW5zaWRlRml4ZWRQb3NpdGlvbiA9IGZh
bHNlOwogICAgIGJvb2wgZW5kTm9kZUlzSW5zaWRlRml4ZWRQb3NpdGlvbiA9IGZhbHNlOwogICAg
IGlmIChzZWxlY3Rpb24uaXNDYXJldCgpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTM4ZDY0NzVhYzA4MzA2ZjdmYzBhNzQ3NTNlN2M4ODcw
OTBkNWZhZS4uODAyM2Q3ODI1YTI3YzU0NjAwZmQzNGY1Y2Y2MGQwZmNlYWIyODNmMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDIwLTA0LTIyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAg
ICAgICBbaU9TXSBJbXBsZW1lbnQgVUlLaXQgU1BJIF9pc0hvcml6b250YWxXcml0aW5nTW9kZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwODg1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MjIxNTcwND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc29tZSB0ZXN0cy4KKworICAgICAgICBUaG91
Z2ggdmVydGljYWwgdGV4dCBlZGl0aW5nIGluIFNWRyBoYXMgbWFueSBidWdzIGF0IHRoZSBtb21l
bnQgdGhhdCBoYW1wZXIgdGVzdGluZworICAgICAgICB0aGlzIGZ1bmN0aW9uYWxpdHkgb24gaU9T
LCBpbmNsdWRpbmcgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIxMDg3NT4gYW5kIDxodHRwczovL3dl
YmtpdC5vcmcvYi8yMTA4Nzc+LgorICAgICAgICBTbywgSSBkaWQgbm90IGluY2x1ZGUgYW55IFNW
RyB0ZXN0cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRWRp
dG9yU3RhdGVUZXN0cy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIw
LTA0LTE4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
YSB0ZXN0IGZvciAtZm9jdXNUZXh0SW5wdXRDb250ZXh0IG9uIGEgZmllbGQgaW4gZGV0YWNoZWQg
ZnJhbWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RWRpdG9yU3RhdGVUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRWRpdG9yU3RhdGVUZXN0cy5tbQppbmRleCA4MTBjODcxYmEzZjAyZDI0MGMwOGJmYTdiYTUz
MjVhMThkNjk0YTcwLi5jZGZlYjI4NzEwMGEwNWMwNDNlZTQxNmZiMjdlNjgxMDIyZGQ3Njg1IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0VkaXRvclN0
YXRlVGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9F
ZGl0b3JTdGF0ZVRlc3RzLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDggKzMyLDkgQEAKICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4K
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0ICJUZXN0SW5wdXREZWxlZ2F0ZS5o
IgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKLSNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaD4KICNlbmRpZgogCiBzdGF0aWMg
dm9pZCogY29uc3QgU2VsZWN0aW9uQXR0cmlidXRlc09ic2VydmF0aW9uQ29udGV4dCA9ICh2b2lk
KikmU2VsZWN0aW9uQXR0cmlidXRlc09ic2VydmF0aW9uQ29udGV4dDsKQEAgLTQyOSw2ICs0MzAs
Mjk2IEBAIFRFU1QoRWRpdG9yU3RhdGVUZXN0cywgU2VsZWN0ZWRUZXh0KQogICAgIEVYUEVDVF9H
VChbW3dlYlZpZXcgdGV4dElucHV0Q29udGVudFZpZXddIHNlbGVjdGVkVGV4dF0ubGVuZ3RoLCAw
VSk7CiB9CiAKK1RFU1QoRWRpdG9yU3RhdGVUZXN0cywgaXNIb3Jpem9udGFsV3JpdGluZ01vZGVG
b3JOb1NlbGVjdGlvbikKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAg
Ly8gVmVydGljYWwgbGVmdC10by1yaWdodAorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
SFRNTFN0cmluZzpAIjxib2R5IHN0eWxlPSd3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyJz5IZWxs
bzwvYm9keT4iXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07
CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisK
KyAgICAvLyBWZXJ0aWNhbCBsZWZ0LXRvLXJpZ2h0LCBjb21iaW5lZCB0ZXh0CisgICAgW3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J3dyaXRpbmctbW9k
ZTogdmVydGljYWwtbHI7IC13ZWJraXQtdGV4dC1jb21iaW5lOiBob3Jpem9udGFsJz5IZWxsbzwv
Ym9keT4iXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07Cisg
ICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAg
ICAvLyBWZXJ0aWNhbCByaWdodC10by1sZWZ0CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J3dyaXRpbmctbW9kZTogdmVydGljYWwtcmwnPkhl
bGxvPC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRl
XTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsK
KworICAgIC8vIFZlcnRpY2FsIHJpZ2h0LXRvLWxlZnQsIGNvbWJpbmVkIHRleHQKKyAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nd3JpdGluZy1t
b2RlOiB2ZXJ0aWNhbC1ybDsgLXdlYmtpdC10ZXh0LWNvbWJpbmU6IGhvcml6b250YWwnPkhlbGxv
PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKwor
ICAgIC8vIEhvcml6b250YWwgbGVmdC10by1yaWdodCwgdG9wLXRvLWJvdHRvbQorICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IGRpcj0nbHRyJyBzdHlsZT0n
d3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiJz5IZWxsbzwvYm9keT4iXTsKKyAgICBbd2ViVmll
dyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZp
ZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBIb3Jpem9udGFsIGxlZnQt
dG8tcmlnaHQsIGJvdHRvbS10by10b3AKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhU
TUxTdHJpbmc6QCI8Ym9keSBkaXI9J2x0cicgc3R5bGU9Jy13ZWJraXQtd3JpdGluZy1tb2RlOiBo
b3Jpem9udGFsLWJ0Jz5IZWxsbzwvYm9keT4iXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFBy
ZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBIb3Jpem9udGFsIHJpZ2h0LXRvLWxlZnQsIHRvcC10
by1ib3R0b20KKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9k
eSBkaXI9J3J0bCcgc3R5bGU9J3dyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10Yic+SGVsbG88L2Jv
ZHk+Il07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAg
IEVYUEVDVF9UUlVFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOworCisgICAg
Ly8gSG9yaXpvbnRhbCByaWdodC10by1sZWZ0LCBib3R0b20tdG8tdG9wCisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgZGlyPSdydGwnIHN0eWxlPSctd2Vi
a2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idCc+SGVsbG88L2JvZHk+Il07CisgICAgW3dl
YlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOworfQorCitURVNUKEVkaXRvclN0YXRl
VGVzdHMsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlRm9yQ2FyZXRTZWxlY3Rpb24pCit7CisgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIGlucHV0RGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdElucHV0RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbaW5wdXREZWxlZ2F0
ZSBzZXRGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXI6W10gKFdLV2ViVmlldyAq
LCBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPikgeyByZXR1cm4gX1dLRm9jdXNTdGFydHNJbnB1
dFNlc3Npb25Qb2xpY3lBbGxvdzsgfV07CisgICAgW3dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6
aW5wdXREZWxlZ2F0ZS5nZXQoKV07CisKKyAgICAvLyBWZXJ0aWNhbCBsZWZ0LXRvLXJpZ2h0Cisg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J3dy
aXRpbmctbW9kZTogdmVydGljYWwtbHInIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+SGVsbG88L2Jv
ZHk+Il07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vz
c2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQuYm9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgd2Fp
dEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBf
aXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIFZlcnRpY2FsIGxlZnQtdG8tcmln
aHQsIGNvbWJpbmVkIHRleHQKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCI8Ym9keSBzdHlsZT0nd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsgLXdlYmtpdC10ZXh0
LWNvbWJpbmU6IGhvcml6b250YWwnIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+SGVsbG88L2JvZHk+
Il07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lv
blRvQ2hhbmdlOkAiZG9jdW1lbnQuYm9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgd2FpdEZv
ck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBfaXNI
b3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIFZlcnRpY2FsIHJpZ2h0LXRvLWxlZnQK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0n
d3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybCcgY29udGVudGVkaXRhYmxlPSd0cnVlJz5IZWxsbzwv
Ym9keT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRT
ZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyB3
YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3
IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOworCisgICAgLy8gVmVydGljYWwgcmlnaHQtdG8t
bGVmdCwgY29tYmluZWQgdGV4dAorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0
cmluZzpAIjxib2R5IHN0eWxlPSd3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyAtd2Via2l0LXRl
eHQtY29tYmluZTogaG9yaXpvbnRhbCcgY29udGVudGVkaXRhYmxlPSd0cnVlJz5IZWxsbzwvYm9k
eT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNz
aW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyB3YWl0
Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9p
c0hvcml6b250YWxXcml0aW5nTW9kZV0pOworCisgICAgLy8gSG9yaXpvbnRhbCBsZWZ0LXRvLXJp
Z2h0LCB0b3AtdG8tYm90dG9tCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPGJvZHkgZGlyPSdsdHInIHN0eWxlPSd3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGIn
IGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+SGVsbG88L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQu
Ym9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRh
dGVdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0p
OworCisgICAgLy8gSG9yaXpvbnRhbCBsZWZ0LXRvLXJpZ2h0LCBib3R0b20tdG8tdG9wCisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgZGlyPSdsdHInIHN0
eWxlPSctd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idCcgY29udGVudGVkaXRhYmxl
PSd0cnVlJz5IZWxsbzwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRB
bmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsK
KyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNU
X1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBIb3Jp
em9udGFsIHJpZ2h0LXRvLWxlZnQsIHRvcC10by1ib3R0b20KKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBkaXI9J3J0bCcgc3R5bGU9J3dyaXRpbmctbW9k
ZTogaG9yaXpvbnRhbC10YicgY29udGVudGVkaXRhYmxlPSd0cnVlJz5IZWxsbzwvYm9keT4iXTsK
KyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9D
aGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4
dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBIb3Jpem9udGFsIHJpZ2h0LXRvLWxlZnQsIGJv
dHRvbS10by10b3AKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8
Ym9keSBkaXI9J3J0bCcgc3R5bGU9Jy13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0
JyBjb250ZW50ZWRpdGFibGU9J3RydWUnPkhlbGxvPC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50
LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBk
YXRlXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVd
KTsKK30KKworVEVTVChFZGl0b3JTdGF0ZVRlc3RzLCBpc0hvcml6b250YWxXcml0aW5nTW9kZUZv
ckNhcmV0U2VsZWN0aW9uV2l0aE5vSW5saW5lQ2hpbGRyZW4pCit7CisgICAgYXV0byBjb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIGlucHV0RGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdElu
cHV0RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbaW5wdXREZWxlZ2F0ZSBzZXRGb2N1c1N0
YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXI6W10gKFdLV2ViVmlldyAqLCBpZCA8X1dLRm9j
dXNlZEVsZW1lbnRJbmZvPikgeyByZXR1cm4gX1dLRm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xp
Y3lBbGxvdzsgfV07CisgICAgW3dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6aW5wdXREZWxlZ2F0
ZS5nZXQoKV07CisKKyAgICAvLyBWZXJ0aWNhbCBsZWZ0LXRvLXJpZ2h0CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J3dyaXRpbmctbW9kZTog
dmVydGljYWwtbHInIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+PC9ib2R5PiJdOworICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRv
Y3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0
aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlXSk7CisKKyAgICAvLyBWZXJ0aWNhbCBsZWZ0LXRvLXJpZ2h0LCBjb21iaW5lZCB0ZXh0
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9
J3dyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IC13ZWJraXQtdGV4dC1jb21iaW5lOiBob3Jpem9u
dGFsJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPjwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5i
b2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0
ZV07CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0p
OworCisgICAgLy8gVmVydGljYWwgcmlnaHQtdG8tbGVmdAorICAgIFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0eWxlPSd3cml0aW5nLW1vZGU6IHZlcnRpY2Fs
LXJsJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPjwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5i
b2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0
ZV07CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0p
OworCisgICAgLy8gVmVydGljYWwgcmlnaHQtdG8tbGVmdCwgY29tYmluZWQgdGV4dAorICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0eWxlPSd3cml0aW5n
LW1vZGU6IHZlcnRpY2FsLXJsOyAtd2Via2l0LXRleHQtY29tYmluZTogaG9yaXpvbnRhbCcgY29u
dGVudGVkaXRhYmxlPSd0cnVlJz48L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZh
U2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQuYm9keS5mb2N1
cygpIl07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAg
IEVYUEVDVF9GQUxTRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAg
IC8vIEhvcml6b250YWwgbGVmdC10by1yaWdodCwgdG9wLXRvLWJvdHRvbQorICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IGRpcj0nbHRyJyBzdHlsZT0nd3Jp
dGluZy1tb2RlOiBob3Jpem9udGFsLXRiJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPjwvYm9keT4i
XTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9u
VG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9y
TmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2lzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBIb3Jpem9udGFsIGxlZnQtdG8tcmlnaHQs
IGJvdHRvbS10by10b3AKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6
QCI8Ym9keSBkaXI9J2x0cicgc3R5bGU9Jy13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFs
LWJ0JyBjb250ZW50ZWRpdGFibGU9J3RydWUnPjwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5i
b2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0
ZV07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7
CisKKyAgICAvLyBIb3Jpem9udGFsIHJpZ2h0LXRvLWxlZnQsIHRvcC10by1ib3R0b20KKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBkaXI9J3J0bCcgc3R5
bGU9J3dyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YicgY29udGVudGVkaXRhYmxlPSd0cnVlJz48
L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0
U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQuYm9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcg
d2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOworCisgICAgLy8gSG9yaXpvbnRhbCByaWdodC10
by1sZWZ0LCBib3R0b20tdG8tdG9wCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1M
U3RyaW5nOkAiPGJvZHkgZGlyPSdydGwnIHN0eWxlPSctd2Via2l0LXdyaXRpbmctbW9kZTogaG9y
aXpvbnRhbC1idCcgY29udGVudGVkaXRhYmxlPSd0cnVlJz48L2JvZHk+Il07CisgICAgW3dlYlZp
ZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9j
dW1lbnQuYm9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRp
b25VcGRhdGVdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5n
TW9kZV0pOworfQorCitURVNUKEVkaXRvclN0YXRlVGVzdHMsIGlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlRm9yUmFuZ2VTZWxlY3Rpb25XaXRoTm9JbmxpbmVDaGlsZHJlbikKK3sKKyAgICBhdXRvIGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gaW5wdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0SW5wdXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFtpbnB1dERlbGVnYXRlIHNldEZv
Y3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5SGFuZGxlcjpbXSAoV0tXZWJWaWV3ICosIGlkIDxf
V0tGb2N1c2VkRWxlbWVudEluZm8+KSB7IHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lv
blBvbGljeUFsbG93OyB9XTsKKyAgICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTppbnB1dERl
bGVnYXRlLmdldCgpXTsKKworICAgIC8vIFZlcnRpY2FsIGxlZnQtdG8tcmlnaHQKKyAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nd3JpdGluZy1t
b2RlOiB2ZXJ0aWNhbC1scicgY29udGVudGVkaXRhYmxlPSd0cnVlJz48L2JvZHk+Il07CisgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdl
OkAiZG9jdW1lbnQuYm9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgX3N5bmNocm9ub3VzbHlF
eGVjdXRlRWRpdENvbW1hbmQ6QCJTZWxlY3RBbGwiIGFyZ3VtZW50Om5pbF07CisgICAgW3dlYlZp
ZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9GQUxTRShbd2Vi
VmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIFZlcnRpY2FsIGxlZnQt
dG8tcmlnaHQsIGNvbWJpbmVkIHRleHQKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhU
TUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsgLXdlYmtp
dC10ZXh0LWNvbWJpbmU6IGhvcml6b250YWwnIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+PC9ib2R5
PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Np
b25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9zeW5j
aHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiU2VsZWN0QWxsIiBhcmd1bWVudDpuaWxdOwor
ICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1Rf
RkFMU0UoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBWZXJ0
aWNhbCByaWdodC10by1sZWZ0CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPGJvZHkgc3R5bGU9J3dyaXRpbmctbW9kZTogdmVydGljYWwtcmwnIGNvbnRlbnRlZGl0
YWJsZT0ndHJ1ZSc+PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFu
ZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOwor
ICAgIFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiU2VsZWN0QWxs
IiBhcmd1bWVudDpuaWxdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBk
YXRlXTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
XSk7CisKKyAgICAvLyBWZXJ0aWNhbCByaWdodC10by1sZWZ0LCBjb21iaW5lZCB0ZXh0CisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J3dyaXRp
bmctbW9kZTogdmVydGljYWwtcmw7IC13ZWJraXQtdGV4dC1jb21iaW5lOiBob3Jpem9udGFsJyBj
b250ZW50ZWRpdGFibGU9J3RydWUnPjwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZv
Y3VzKCkiXTsKKyAgICBbd2ViVmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpA
IlNlbGVjdEFsbCIgYXJndW1lbnQ6bmlsXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNl
bnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxX
cml0aW5nTW9kZV0pOworCisgICAgLy8gSG9yaXpvbnRhbCBsZWZ0LXRvLXJpZ2h0LCB0b3AtdG8t
Ym90dG9tCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkg
ZGlyPSdsdHInIHN0eWxlPSd3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGInIGNvbnRlbnRlZGl0
YWJsZT0ndHJ1ZSc+PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFu
ZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOwor
ICAgIFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiU2VsZWN0QWxs
IiBhcmd1bWVudDpuaWxdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBk
YXRlXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVd
KTsKKworICAgIC8vIEhvcml6b250YWwgbGVmdC10by1yaWdodCwgYm90dG9tLXRvLXRvcAorICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IGRpcj0nbHRyJyBz
dHlsZT0nLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQnIGNvbnRlbnRlZGl0YWJs
ZT0ndHJ1ZSc+PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdh
aXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAg
IFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiU2VsZWN0QWxsIiBh
cmd1bWVudDpuaWxdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRl
XTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsK
KworICAgIC8vIEhvcml6b250YWwgcmlnaHQtdG8tbGVmdCwgdG9wLXRvLWJvdHRvbQorICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IGRpcj0ncnRsJyBzdHls
ZT0nd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPjwv
Ym9keT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRT
ZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBf
c3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIlNlbGVjdEFsbCIgYXJndW1lbnQ6bmls
XTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQ
RUNUX1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBI
b3Jpem9udGFsIHJpZ2h0LXRvLWxlZnQsIGJvdHRvbS10by10b3AKKyAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBkaXI9J3J0bCcgc3R5bGU9Jy13ZWJraXQt
d3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0JyBjb250ZW50ZWRpdGFibGU9J3RydWUnPjwvYm9k
eT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNz
aW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBfc3lu
Y2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIlNlbGVjdEFsbCIgYXJndW1lbnQ6bmlsXTsK
KyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNU
X1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7Cit9CisKK1RFU1QoRWRp
dG9yU3RhdGVUZXN0cywgaXNIb3Jpem9udGFsV3JpdGluZ01vZGVGb3JSYW5nZVNlbGVjdGlvbikK
K3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gaW5wdXREZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tUZXN0SW5wdXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFtpbnB1
dERlbGVnYXRlIHNldEZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5SGFuZGxlcjpbXSAoV0tX
ZWJWaWV3ICosIGlkIDxfV0tGb2N1c2VkRWxlbWVudEluZm8+KSB7IHJldHVybiBfV0tGb2N1c1N0
YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93OyB9XTsKKyAgICBbd2ViVmlldyBfc2V0SW5wdXRE
ZWxlZ2F0ZTppbnB1dERlbGVnYXRlLmdldCgpXTsKKworICAgIC8vIFZlcnRpY2FsIGxlZnQtdG8t
cmlnaHQKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBz
dHlsZT0nd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scicgY29udGVudGVkaXRhYmxlPSd0cnVlJz5I
ZWxsbzwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9y
SW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsKKyAgICBbd2Vi
VmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIlNlbGVjdEFsbCIgYXJndW1l
bnQ6bmlsXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07Cisg
ICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOworCisg
ICAgLy8gVmVydGljYWwgbGVmdC10by1yaWdodCwgY29tYmluZWQgdGV4dAorICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0eWxlPSd3cml0aW5nLW1vZGU6
IHZlcnRpY2FsLWxyOyAtd2Via2l0LXRleHQtY29tYmluZTogaG9yaXpvbnRhbCcgY29udGVudGVk
aXRhYmxlPSd0cnVlJz5IZWxsbzwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3Vz
KCkiXTsKKyAgICBbd2ViVmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIlNl
bGVjdEFsbCIgYXJndW1lbnQ6bmlsXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRh
dGlvblVwZGF0ZV07CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxXcml0
aW5nTW9kZV0pOworCisgICAgLy8gVmVydGljYWwgcmlnaHQtdG8tbGVmdAorICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0eWxlPSd3cml0aW5nLW1vZGU6
IHZlcnRpY2FsLXJsJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPkhlbGxvPC9ib2R5PiJdOworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5n
ZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5
RXhlY3V0ZUVkaXRDb21tYW5kOkAiU2VsZWN0QWxsIiBhcmd1bWVudDpuaWxdOworICAgIFt3ZWJW
aWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dl
YlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBWZXJ0aWNhbCByaWdo
dC10by1sZWZ0LCBjb21iaW5lZCB0ZXh0CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J3dyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IC13ZWJr
aXQtdGV4dC1jb21iaW5lOiBob3Jpem9udGFsJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPkhlbGxv
PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1
dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3
IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiU2VsZWN0QWxsIiBhcmd1bWVudDpu
aWxdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBF
WFBFQ1RfRkFMU0UoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAv
LyBIb3Jpem9udGFsIGxlZnQtdG8tcmlnaHQsIHRvcC10by1ib3R0b20KKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBkaXI9J2x0cicgc3R5bGU9J3dyaXRp
bmctbW9kZTogaG9yaXpvbnRhbC10YicgY29udGVudGVkaXRhYmxlPSd0cnVlJz5IZWxsbzwvYm9k
eT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNz
aW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBfc3lu
Y2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIlNlbGVjdEFsbCIgYXJndW1lbnQ6bmlsXTsK
KyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNU
X1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBIb3Jp
em9udGFsIGxlZnQtdG8tcmlnaHQsIGJvdHRvbS10by10b3AKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBkaXI9J2x0cicgc3R5bGU9Jy13ZWJraXQtd3Jp
dGluZy1tb2RlOiBob3Jpem9udGFsLWJ0JyBjb250ZW50ZWRpdGFibGU9J3RydWUnPkhlbGxvPC9i
b2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNl
c3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9z
eW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiU2VsZWN0QWxsIiBhcmd1bWVudDpuaWxd
OworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIEhv
cml6b250YWwgcmlnaHQtdG8tbGVmdCwgdG9wLXRvLWJvdHRvbQorICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IGRpcj0ncnRsJyBzdHlsZT0nd3JpdGluZy1t
b2RlOiBob3Jpem9udGFsLXRiJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPkhlbGxvPC9ib2R5PiJd
OworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25U
b0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9zeW5jaHJv
bm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiU2VsZWN0QWxsIiBhcmd1bWVudDpuaWxdOworICAg
IFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfVFJV
RShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIEhvcml6b250
YWwgcmlnaHQtdG8tbGVmdCwgYm90dG9tLXRvLXRvcAorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IGRpcj0ncnRsJyBzdHlsZT0nLXdlYmtpdC13cml0aW5n
LW1vZGU6IGhvcml6b250YWwtYnQnIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+SGVsbG88L2JvZHk+
Il07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lv
blRvQ2hhbmdlOkAiZG9jdW1lbnQuYm9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgX3N5bmNo
cm9ub3VzbHlFeGVjdXRlRWRpdENvbW1hbmQ6QCJTZWxlY3RBbGwiIGFyZ3VtZW50Om5pbF07Cisg
ICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9U
UlVFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOworfQorCiAjZW5kaWYgLy8g
UExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397286</attachid>
            <date>2020-04-22 16:35:34 -0700</date>
            <delta_ts>2020-04-24 11:24:16 -0700</delta_ts>
            <desc>Patch and tests</desc>
            <filename>bug-210885-20200422163533.patch</filename>
            <type>text/plain</type>
            <size>30979</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2U0MGMwMTY2MGY4ZTMw
NGE3NjI2NTg2OGMxYjM1YTFkMDhkY2U4MS4uOTAyZTJkNDU4ODVhMTY5NWUxNTgxZWMyMDY0N2I4
ZjgyZDQ0MGM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA0LTIyICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBJbXBsZW1lbnQg
VUlLaXQgU1BJIF9pc0hvcml6b250YWxXcml0aW5nTW9kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwODg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82MjIxNTcwND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBuZXcgbWVtYmVyIGZ1bmN0aW9uIGlzSG9yaXpvbnRhbCB0aGF0IHJldHVybnMg
d2hldGhlciB0aGUgc2VsZWN0aW9uIGlzIGhvcml6b250YWwgb3Igbm90LgorICAgICAgICBUaGUg
ZW5naW5lIGN1cnJlbnRseSBkb2VzIG5vdCBjb25zaWRlciBjb21iaW5lZCB0ZXh0IHdoZW4gcGFp
bnRpbmcgdGhlIGNhcmV0IHNvIEkgY2hvc2UgdG8gbWF0Y2gKKyAgICAgICAgdGhpcyBiZWhhdmlv
ciBhbmQgaXNIb3Jpem9udGFsIGRvZXMgbm90IGNvbnNpZGVyIGl0IGFzIHdlbGwuIFdoZW4gdGhl
IGNhcmV0IGlzIG5vdCBpbnNpZGUgYW4KKyAgICAgICAgaW5saW5lIGJveCBJIGZhbGwgYmFjayB0
byBsb29raW5nIGF0IHRoZSB3cml0aW5nIG1vZGUgb2YgdGhlIGVuY2xvc2luZyBibG9jay4KKwor
ICAgICAgICBJIGFsc28gbWFkZSBpc0hvcml6b250YWwgd29yayBmb3IgU1ZHIHRleHQgYm94ZXMu
IFRob3VnaCB2ZXJ0aWNhbCB0ZXh0IGVkaXRpbmcgaW4gU1ZHIGhhcyBtYW55CisgICAgICAgIGJ1
Z3MgYXQgdGhlIG1vbWVudCB0aGF0IGhhbXBlciB0ZXN0aW5nIHRoaXMgZnVuY3Rpb25hbGl0eSBv
biBpT1MsIGluY2x1ZGluZyA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjEwODc1PgorICAgICAgICBh
bmQgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIxMDg3Nz4uCisKKyAgICAgICAgKiBlZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjppc0hv
cml6b250YWwgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9u
Lmg6CisKIDIwMjAtMDQtMjEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIC1fZGlkRmluaXNoVGV4dEludGVyYWN0aW9uSW5UZXh0SW5wdXRDb250ZXh0
IHNob3VsZCBvbmx5IHpvb20gdG8gcmV2ZWFsIGZvY3VzZWQgZWxlbWVudCBpZiBpdCBjaGFuZ2Vk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDFkYThkY2NiY2E3NTVkYmMzYmNkYzE5ZTkxOGZiMTgwNWRiYzM0Y2MuLjFm
NWQwOGM3MzJmZTE1Mjc1YmExM2E5NGU5ZTIyODNhNWFmNWU2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjkgQEAKKzIwMjAtMDQtMjIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1NdIEltcGxlbWVudCBVSUtpdCBTUEkgX2lzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA4
ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYyMjE1NzA0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdpcmUgdXAgLV9pc0hvcml6b250YWxXcml0
aW5nTW9kZS4KKworICAgICAgICAqIFNoYXJlZC9FZGl0b3JTdGF0ZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkVkaXRvclN0YXRlOjpQb3N0TGF5b3V0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6RWRpdG9yU3RhdGU6OlBvc3RMYXlvdXREYXRhOjpkZWNvZGUpOgorICAgICAg
ICBFbmNvZGUgYW5kIGRlY29kZSBhIGJpdCBmb3IgaG9yaXpvbnRhbCB3cml0aW5nIG1vZGUuCisK
KyAgICAgICAgKiBTaGFyZWQvRWRpdG9yU3RhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBf
aXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTogQWRkZWQ7IHR1cm5zIGFyb3VuZCBhbmQgY2FsbHMg
c2FtZSBmdW5jdGlvbgorICAgICAgICBvbiBjb250ZW50IHZpZXcuCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpn
ZXRQbGF0Zm9ybUVkaXRvclN0YXRlIGNvbnN0KTogVXBkYXRlIHN0YXRlLgorCiAyMDIwLTA0LTIx
ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSAtX2Rp
ZEZpbmlzaFRleHRJbnRlcmFjdGlvbkluVGV4dElucHV0Q29udGV4dCBzaG91bGQgb25seSB6b29t
IHRvIHJldmVhbCBmb2N1c2VkIGVsZW1lbnQgaWYgaXQgY2hhbmdlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA0NTE2ZTUwNjUwNzJmZjUxYzNjOTAxYjc4
NTI0NTNmYmZhOTdiMzU5Li40N2EwOTgyNTU5N2UyNGMxYTViMGFmMzY0MDdkZDM2MzA5M2M1OGQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTQt
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDgtMjAxMCwgMjAxNC0yMDE1LCAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTIsNiArNTIsNyBAQAog
I2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgog
I2luY2x1ZGUgIklubGluZVRleHRCb3guaCIKKyNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJS
ZW5kZXJUZXh0LmgiCkBAIC0xNjQzLDYgKzE2NDQsMjggQEAgUmVuZGVyQmxvY2sqIEZyYW1lU2Vs
ZWN0aW9uOjpjYXJldFJlbmRlcmVyV2l0aG91dFVwZGF0aW5nTGF5b3V0KCkgY29uc3QKICAgICBy
ZXR1cm4gcmVuZGVyZXJGb3JDYXJldFBhaW50aW5nKG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVj
YXRlZE5vZGUoKSk7CiB9CiAKK2Jvb2wgRnJhbWVTZWxlY3Rpb246OmlzSG9yaXpvbnRhbCgpIGNv
bnN0Cit7CisgICAgaWYgKG1fc2VsZWN0aW9uLmlzTm9uZSgpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBhdXRvIHZpc2libGVTdGFydCA9IG1fc2VsZWN0aW9uLnZpc2libGVTdGFydCgpOyAv
LyBVcGRhdGVzIGxheW91dAorICAgIGlmICh2aXNpYmxlU3RhcnQuaXNOb3ROdWxsKCkpIHsKKyAg
ICAgICAgSW5saW5lQm94KiBib3ggPSBudWxscHRyOworICAgICAgICBpbnQgdW51c2VkQ2FyZXRP
ZmZzZXQ7CisgICAgICAgIHZpc2libGVTdGFydC5nZXRJbmxpbmVCb3hBbmRPZmZzZXQoYm94LCB1
bnVzZWRDYXJldE9mZnNldCk7CisgICAgICAgIGlmIChib3ggJiYgYm94LT5pc1NWR0lubGluZVRl
eHRCb3goKSkKKyAgICAgICAgICAgIHJldHVybiBib3gtPmxpbmVTdHlsZSgpLmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCk7CisgICAgICAgIGlmIChib3gpCisgICAgICAgICAgICByZXR1cm4gYm94
LT5pc0hvcml6b250YWwoKTsKKyAgICB9CisgICAgYXV0byogYmxvY2sgPSBlbmNsb3NpbmdCbG9j
ayhtX3NlbGVjdGlvbi5leHRlbnQoKS5jb250YWluZXJOb2RlKCkpOworICAgIGlmICghYmxvY2sp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChhdXRvKiBzdHlsZSA9IGJsb2NrLT5yZW5k
ZXJTdHlsZSgpKQorICAgICAgICByZXR1cm4gc3R5bGUtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFJlbmRlckJsb2NrKiBEcmFnQ2FyZXRDb250cm9s
bGVyOjpjYXJldFJlbmRlcmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gcmVuZGVyZXJGb3JDYXJl
dFBhaW50aW5nKG1fcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCBlNmE3MDhiMDU0ZjU5
YjMwYmZiNTdlZmRmZTMyY2FlZDE2NWEwNTA4Li4yODJlMWJhNmRkNGNjM2U3YjRmMTFiOTkwYmE2
YmY4MzBjZjVhODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCkBA
IC0xODQsNiArMTg0LDcgQEAgcHVibGljOgogCiAgICAgLy8gUmV0dXJuIHRoZSByZW5kZXJlciB0
aGF0IGlzIHJlc3BvbnNpYmxlIGZvciBwYWludGluZyB0aGUgY2FyZXQgKGluIHRoZSBzZWxlY3Rp
b24gc3RhcnQgbm9kZSkKICAgICBSZW5kZXJCbG9jayogY2FyZXRSZW5kZXJlcldpdGhvdXRVcGRh
dGluZ0xheW91dCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNIb3Jpem9udGFs
KCkgY29uc3Q7CiAKICAgICAvLyBCb3VuZHMgb2YgKHBvc3NpYmx5IHRyYW5zZm9ybWVkKSBjYXJl
dCBpbiBhYnNvbHV0ZSBjb29yZHMKICAgICBXRUJDT1JFX0VYUE9SVCBJbnRSZWN0IGFic29sdXRl
Q2FyZXRCb3VuZHMoYm9vbCogaW5zaWRlRml4ZWQgPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRvclN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0VkaXRvclN0YXRlLmNwcAppbmRleCA0YzBiOWE2NDY4MTNlZTgxMWJhNzYxMzZhNzA5MjIwYzNh
NzEzYjhmLi4zZTFmOGI2OTc3MTIxMWNiNDg0ZjY4YzhkMzBmNThhOGNmZWMyZGJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwCkBAIC0xMzYsNiArMTM2LDcgQEAgdm9pZCBFZGl0
b3JTdGF0ZTo6UG9zdExheW91dERhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAgICAgZW5jb2RlciA8PCBhdFN0YXJ0T2ZTZW50ZW5jZTsKICAgICBlbmNvZGVyIDw8IHNl
bGVjdGlvblN0YXJ0SXNBdFBhcmFncmFwaEJvdW5kYXJ5OwogICAgIGVuY29kZXIgPDwgc2VsZWN0
aW9uRW5kSXNBdFBhcmFncmFwaEJvdW5kYXJ5OworICAgIGVuY29kZXIgPDwgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGU7CiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgZW5jb2RlciA8PCBj
YW5kaWRhdGVSZXF1ZXN0U3RhcnRQb3NpdGlvbjsKQEAgLTIwOCw2ICsyMDksOCBAQCBib29sIEVk
aXRvclN0YXRlOjpQb3N0TGF5b3V0RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
UG9zdExheW91dERhdGEmCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5zZWxlY3Rpb25FbmRJc0F0UGFyYWdyYXBoQm91bmRhcnkpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY2FuZGlkYXRlUmVxdWVz
dFN0YXJ0UG9zaXRpb24pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRWRpdG9y
U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VkaXRvclN0YXRlLmgKaW5kZXggOTkwYzEw
NzFkYThjNjY0MWE0YzdmYjgzMWM1ZTZiYjI3MTE0ZTNiNy4uNmM1NmRjMjAzM2M1MGExYTNlZDI0
OTA1YjRlNzVhOWU0NTkzODAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRWRp
dG9yU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FZGl0b3JTdGF0ZS5oCkBAIC0x
MTQsNiArMTE0LDcgQEAgc3RydWN0IEVkaXRvclN0YXRlIHsKICAgICAgICAgYm9vbCBhdFN0YXJ0
T2ZTZW50ZW5jZSB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgc2VsZWN0aW9uU3RhcnRJc0F0UGFy
YWdyYXBoQm91bmRhcnkgeyBmYWxzZSB9OwogICAgICAgICBib29sIHNlbGVjdGlvbkVuZElzQXRQ
YXJhZ3JhcGhCb3VuZGFyeSB7IGZhbHNlIH07CisgICAgICAgIGJvb2wgaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUgeyBmYWxzZSB9OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICB1
aW50NjRfdCBjYW5kaWRhdGVSZXF1ZXN0U3RhcnRQb3NpdGlvbiB7IDAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmdJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0
ZUZvclRlc3RpbmdJT1MuaAppbmRleCA4NjViNzA3ZWI0MTljMWVhMGI5ZDFiZTdlYjYwOGJhOTYw
YmEzZWYyLi5kYjUyZGYxYzNlNTgyMTRkZmI3NGI4MzJhYTY5MzM4ZmMwMWZmYjE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JU
ZXN0aW5nSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCkBAIC00MSw2ICs0MSw3IEBACiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpfc2Nyb2xsaW5nVHJlZUFzVGV4dDsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNOdW1iZXIgKl9zdGFibGVTdGF0ZU92ZXJyaWRl
OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgX2RyYWdDYXJldFJlY3Q7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2lzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlOwogCiAtICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFyTmV4dDsKIC0gKHZvaWQpa2V5
Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2aW91czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQppbmRleCA5YzM3YjQ0ZGI0ZmUy
NDBlYjcyMmQ1M2QyZWMxNTMyOGRiOTkzODVlLi42MTljYzI0MmYxNDliMjAyYjRiNDFlYmU4MWJl
ZWJjODJhOTAzYzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCkBAIC05Myw2ICs5MywxMSBAQCAtIChCT09MKV9t
YXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdDooQ0dSZWN0KXJlY3QKICAgICByZXR1cm4g
V2ViS2l0OjptYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdChfY29udGVudFZpZXcuZ2V0
KCksIFtzZWxmIGNvbnZlcnRSZWN0OnJlY3QgdG9WaWV3Ol9jb250ZW50Vmlldy5nZXQoKV0pOwog
fQogCistIChCT09MKV9pc0hvcml6b250YWxXcml0aW5nTW9kZQoreworICAgIHJldHVybiBbX2Nv
bnRlbnRWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV07Cit9CisKIC0gKHZvaWQpa2V5Ym9h
cmRBY2Nlc3NvcnlCYXJOZXh0CiB7CiAgICAgW19jb250ZW50VmlldyBhY2Nlc3NvcnlUYWI6WUVT
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaAppbmRleCAwMWQyZjQxNjg3ZGQwZWQ3MjEzYTBjYmRjYWM2YjUwMWY4OGZk
OGE0Li5mY2Y1ODA5ZmViMTI0OTBmMzc1MmE2ODc2NTQ4NTA5NzgyMGQ0YWNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCkBAIC00MzYsNiArNDM2LDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlWaWV3ICppbnB1dEFjY2Vzc29yeVZpZXdG
b3JXZWJWaWV3OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHByZXZlbnRz
UGFubmluZ0luWEF4aXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgcHJl
dmVudHNQYW5uaW5nSW5ZQXhpczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0
dGVyPV9pc0hvcml6b250YWxXcml0aW5nTW9kZSkgQk9PTCBfaG9yaXpvbnRhbFdyaXRpbmdNb2Rl
OwogCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c3Ryb25nKSBVSVZpZXcgPFdLRm9ybUNvbnRyb2w+ICpkYXRhTGlzdFRleHRTdWdnZXN0aW9uc0lu
cHV0VmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDRhMzhkNmIyMTA2MmQ3YTMyMTQyYWIwMDg5OWNj
OWQ3MTRiZTFhYTYuLjI3ZDAwNjNmY2I1YzQyMjU2OTU0NTRiY2U5ZDE5YzI5MjdmMjc4MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQpAQCAtMzA1NSw2ICszMDU1LDEyIEBAIC0gKHZvaWQpX2FkZFNob3J0Y3V0
Rm9yV2ViVmlldzooaWQpc2VuZGVyCiAgICAgICAgIFtfdGV4dEludGVyYWN0aW9uQXNzaXN0YW50
IHNob3dUZXh0U2VydmljZUZvcjpbc2VsZiBzZWxlY3RlZFRleHRdIGZyb21SZWN0Ol9wYWdlLT5l
ZGl0b3JTdGF0ZSgpLnBvc3RMYXlvdXREYXRhKCkuc2VsZWN0aW9uUmVjdHNbMF0ucmVjdCgpXTsK
IH0KIAorLSAoQk9PTClfaXNIb3Jpem9udGFsV3JpdGluZ01vZGUKK3sKKyAgICBhdXRvJiBlZGl0
b3JTdGF0ZSA9IF9wYWdlLT5lZGl0b3JTdGF0ZSgpOworICAgIHJldHVybiBlZGl0b3JTdGF0ZS5p
c01pc3NpbmdQb3N0TGF5b3V0RGF0YSB8fCBlZGl0b3JTdGF0ZS5wb3N0TGF5b3V0RGF0YSgpLmlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlOworfQorCiAtIChOU1N0cmluZyAqKXNlbGVjdGVkVGV4dAog
ewogICAgIHJldHVybiAoTlNTdHJpbmcgKilfcGFnZS0+ZWRpdG9yU3RhdGUoKS5wb3N0TGF5b3V0
RGF0YSgpLndvcmRBdFNlbGVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggODQ5MzJmZjQ3Mzk0ZGMyZmE3Mjk4ZDE0
ZTAwNzc5MjRkYzE1NjY5ZC4uZWEyYTc5NTEyMzQ4NWYxYWZjZmExOTZjNDI4N2E0MDg5NGFkMjkx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTI2Niw4ICsyNjYsMTAgQEAgdm9pZCBXZWJQYWdlOjpnZXRQbGF0Zm9ybUVk
aXRvclN0YXRlKEZyYW1lJiBmcmFtZSwgRWRpdG9yU3RhdGUmIHJlc3VsdCkgY29uc3QKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgYXV0byYgcG9zdExheW91dERhdGEgPSByZXN1bHQucG9zdExheW91
dERhdGEoKTsKLSAgICBjb25zdCBhdXRvJiBzZWxlY3Rpb24gPSBmcmFtZS5zZWxlY3Rpb24oKS5z
ZWxlY3Rpb24oKTsKICAgICBwb3N0TGF5b3V0RGF0YS5pc1N0YWJsZVN0YXRlVXBkYXRlID0gbV9p
c0luU3RhYmxlU3RhdGU7CisgICAgcG9zdExheW91dERhdGEuaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUgPSBmcmFtZS5zZWxlY3Rpb24oKS5pc0hvcml6b250YWwoKTsKKworICAgIGNvbnN0IGF1dG8m
IHNlbGVjdGlvbiA9IGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwogICAgIGJvb2wgc3Rh
cnROb2RlSXNJbnNpZGVGaXhlZFBvc2l0aW9uID0gZmFsc2U7CiAgICAgYm9vbCBlbmROb2RlSXNJ
bnNpZGVGaXhlZFBvc2l0aW9uID0gZmFsc2U7CiAgICAgaWYgKHNlbGVjdGlvbi5pc0NhcmV0KCkp
IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBh
MzhkNjQ3NWFjMDgzMDZmN2ZjMGE3NDc1M2U3Yzg4NzA5MGQ1ZmFlLi44MDIzZDc4MjVhMjdjNTQ2
MDBmZDM0ZjVjZjYwZDBmY2VhYjI4M2YyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDQtMjIgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEltcGxlbWVudCBVSUtp
dCBTUEkgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA4ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYy
MjE1NzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBzb21lIHRlc3RzLgorCisgICAgICAgIFRob3VnaCB2ZXJ0aWNhbCB0ZXh0IGVkaXRpbmcg
aW4gU1ZHIGhhcyBtYW55IGJ1Z3MgYXQgdGhlIG1vbWVudCB0aGF0IGhhbXBlciB0ZXN0aW5nCisg
ICAgICAgIHRoaXMgZnVuY3Rpb25hbGl0eSBvbiBpT1MsIGluY2x1ZGluZyA8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMjEwODc1PiBhbmQgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIxMDg3Nz4uCisgICAg
ICAgIFNvLCBJIGRpZCBub3QgaW5jbHVkZSBhbnkgU1ZHIHRlc3RzLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FZGl0b3JTdGF0ZVRlc3RzLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjAtMDQtMTggIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHRlc3QgZm9yIC1mb2N1c1RleHRJbnB1
dENvbnRleHQgb24gYSBmaWVsZCBpbiBkZXRhY2hlZCBmcmFtZQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FZGl0b3JTdGF0ZVRlc3RzLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FZGl0b3JTdGF0ZVRlc3RzLm1tCmlu
ZGV4IDgxMGM4NzFiYTNmMDJkMjQwYzA4YmZhN2JhNTMyNWExOGQ2OTRhNzAuLmNkZmViMjg3MTAw
YTA1YzA0M2VlNDE2ZmIyN2U2ODEwMjJkZDc2ODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRWRpdG9yU3RhdGVUZXN0cy5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0VkaXRvclN0YXRlVGVzdHMubW0KQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsOCAr
MzIsOSBAQAogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyNpbXBvcnQgIlRlc3RJbnB1dERlbGVnYXRlLmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgot
I2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRl
Rm9yVGVzdGluZy5oPgogI2VuZGlmCiAKIHN0YXRpYyB2b2lkKiBjb25zdCBTZWxlY3Rpb25BdHRy
aWJ1dGVzT2JzZXJ2YXRpb25Db250ZXh0ID0gKHZvaWQqKSZTZWxlY3Rpb25BdHRyaWJ1dGVzT2Jz
ZXJ2YXRpb25Db250ZXh0OwpAQCAtNDI5LDYgKzQzMCwyOTYgQEAgVEVTVChFZGl0b3JTdGF0ZVRl
c3RzLCBTZWxlY3RlZFRleHQpCiAgICAgRVhQRUNUX0dUKFtbd2ViVmlldyB0ZXh0SW5wdXRDb250
ZW50Vmlld10gc2VsZWN0ZWRUZXh0XS5sZW5ndGgsIDBVKTsKIH0KIAorVEVTVChFZGl0b3JTdGF0
ZVRlc3RzLCBpc0hvcml6b250YWxXcml0aW5nTW9kZUZvck5vU2VsZWN0aW9uKQoreworICAgIGF1
dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICAvLyBWZXJ0aWNhbCBsZWZ0LXRvLXJpZ2h0
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9
J3dyaXRpbmctbW9kZTogdmVydGljYWwtbHInPkhlbGxvPC9ib2R5PiJdOworICAgIFt3ZWJWaWV3
IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmll
dyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIFZlcnRpY2FsIGxlZnQtdG8t
cmlnaHQsIGNvbWJpbmVkIHRleHQKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6QCI8Ym9keSBzdHlsZT0nd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsgLXdlYmtpdC10
ZXh0LWNvbWJpbmU6IGhvcml6b250YWwnPkhlbGxvPC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IHdh
aXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBf
aXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIFZlcnRpY2FsIHJpZ2h0LXRvLWxl
ZnQKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHls
ZT0nd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybCc+SGVsbG88L2JvZHk+Il07CisgICAgW3dlYlZp
ZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOworCisgICAgLy8gVmVydGljYWwgcmlnaHQt
dG8tbGVmdCwgY29tYmluZWQgdGV4dAorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZzpAIjxib2R5IHN0eWxlPSd3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyAtd2Via2l0
LXRleHQtY29tYmluZTogaG9yaXpvbnRhbCc+SGVsbG88L2JvZHk+Il07CisgICAgW3dlYlZpZXcg
d2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOworCisgICAgLy8gSG9yaXpvbnRhbCBsZWZ0LXRv
LXJpZ2h0LCB0b3AtdG8tYm90dG9tCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1M
U3RyaW5nOkAiPGJvZHkgZGlyPSdsdHInIHN0eWxlPSd3cml0aW5nLW1vZGU6IGhvcml6b250YWwt
dGInPkhlbGxvPC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9u
VXBkYXRlXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGVdKTsKKworICAgIC8vIEhvcml6b250YWwgbGVmdC10by1yaWdodCwgYm90dG9tLXRvLXRvcAor
ICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IGRpcj0nbHRy
JyBzdHlsZT0nLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQnPkhlbGxvPC9ib2R5
PiJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBF
WFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8v
IEhvcml6b250YWwgcmlnaHQtdG8tbGVmdCwgdG9wLXRvLWJvdHRvbQorICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IGRpcj0ncnRsJyBzdHlsZT0nd3JpdGlu
Zy1tb2RlOiBob3Jpem9udGFsLXRiJz5IZWxsbzwvYm9keT4iXTsKKyAgICBbd2ViVmlldyB3YWl0
Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2lz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBIb3Jpem9udGFsIHJpZ2h0LXRvLWxl
ZnQsIGJvdHRvbS10by10b3AKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCI8Ym9keSBkaXI9J3J0bCcgc3R5bGU9Jy13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9u
dGFsLWJ0Jz5IZWxsbzwvYm9keT4iXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRh
dGlvblVwZGF0ZV07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlXSk7Cit9CisKK1RFU1QoRWRpdG9yU3RhdGVUZXN0cywgaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGVGb3JDYXJldFNlbGVjdGlvbikKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0p
OworICAgIGF1dG8gaW5wdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0SW5wdXREZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOworICAgIFtpbnB1dERlbGVnYXRlIHNldEZvY3VzU3RhcnRzSW5wdXRTZXNz
aW9uUG9saWN5SGFuZGxlcjpbXSAoV0tXZWJWaWV3ICosIGlkIDxfV0tGb2N1c2VkRWxlbWVudElu
Zm8+KSB7IHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93OyB9XTsK
KyAgICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTppbnB1dERlbGVnYXRlLmdldCgpXTsKKwor
ICAgIC8vIFZlcnRpY2FsIGxlZnQtdG8tcmlnaHQKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scicg
Y29udGVudGVkaXRhYmxlPSd0cnVlJz5IZWxsbzwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5i
b2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0
ZV07CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0p
OworCisgICAgLy8gVmVydGljYWwgbGVmdC10by1yaWdodCwgY29tYmluZWQgdGV4dAorICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0eWxlPSd3cml0aW5n
LW1vZGU6IHZlcnRpY2FsLWxyOyAtd2Via2l0LXRleHQtY29tYmluZTogaG9yaXpvbnRhbCcgY29u
dGVudGVkaXRhYmxlPSd0cnVlJz5IZWxsbzwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0
ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5
LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07
CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOwor
CisgICAgLy8gVmVydGljYWwgcmlnaHQtdG8tbGVmdAorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0eWxlPSd3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJs
JyBjb250ZW50ZWRpdGFibGU9J3RydWUnPkhlbGxvPC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50
LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBk
YXRlXTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
XSk7CisKKyAgICAvLyBWZXJ0aWNhbCByaWdodC10by1sZWZ0LCBjb21iaW5lZCB0ZXh0CisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J3dyaXRp
bmctbW9kZTogdmVydGljYWwtcmw7IC13ZWJraXQtdGV4dC1jb21iaW5lOiBob3Jpem9udGFsJyBj
b250ZW50ZWRpdGFibGU9J3RydWUnPkhlbGxvPC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJv
ZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRl
XTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7
CisKKyAgICAvLyBIb3Jpem9udGFsIGxlZnQtdG8tcmlnaHQsIHRvcC10by1ib3R0b20KKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBkaXI9J2x0cicgc3R5
bGU9J3dyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YicgY29udGVudGVkaXRhYmxlPSd0cnVlJz5I
ZWxsbzwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9y
SW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsKKyAgICBbd2Vi
VmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX1RSVUUoW3dl
YlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBIb3Jpem9udGFsIGxl
ZnQtdG8tcmlnaHQsIGJvdHRvbS10by10b3AKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZEhUTUxTdHJpbmc6QCI8Ym9keSBkaXI9J2x0cicgc3R5bGU9Jy13ZWJraXQtd3JpdGluZy1tb2Rl
OiBob3Jpem9udGFsLWJ0JyBjb250ZW50ZWRpdGFibGU9J3RydWUnPkhlbGxvPC9ib2R5PiJdOwor
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0No
YW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0
UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIEhvcml6b250YWwgcmlnaHQtdG8tbGVmdCwgdG9w
LXRvLWJvdHRvbQorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxi
b2R5IGRpcj0ncnRsJyBzdHlsZT0nd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiJyBjb250ZW50
ZWRpdGFibGU9J3RydWUnPkhlbGxvPC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2
YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9j
dXMoKSJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAg
IC8vIEhvcml6b250YWwgcmlnaHQtdG8tbGVmdCwgYm90dG9tLXRvLXRvcAorICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IGRpcj0ncnRsJyBzdHlsZT0nLXdl
YmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQnIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+
SGVsbG88L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZv
cklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQuYm9keS5mb2N1cygpIl07CisgICAgW3dl
YlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOworfQorCitURVNUKEVkaXRvclN0YXRl
VGVzdHMsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlRm9yQ2FyZXRTZWxlY3Rpb25XaXRoTm9Jbmxp
bmVDaGlsZHJlbikKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8g
aW5wdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0SW5wdXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OworICAgIFtpbnB1dERlbGVnYXRlIHNldEZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5SGFu
ZGxlcjpbXSAoV0tXZWJWaWV3ICosIGlkIDxfV0tGb2N1c2VkRWxlbWVudEluZm8+KSB7IHJldHVy
biBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93OyB9XTsKKyAgICBbd2ViVmll
dyBfc2V0SW5wdXREZWxlZ2F0ZTppbnB1dERlbGVnYXRlLmdldCgpXTsKKworICAgIC8vIFZlcnRp
Y2FsIGxlZnQtdG8tcmlnaHQKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCI8Ym9keSBzdHlsZT0nd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scicgY29udGVudGVkaXRh
YmxlPSd0cnVlJz48L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5k
V2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQuYm9keS5mb2N1cygpIl07Cisg
ICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9G
QUxTRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIFZlcnRp
Y2FsIGxlZnQtdG8tcmlnaHQsIGNvbWJpbmVkIHRleHQKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91
c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1s
cjsgLXdlYmtpdC10ZXh0LWNvbWJpbmU6IGhvcml6b250YWwnIGNvbnRlbnRlZGl0YWJsZT0ndHJ1
ZSc+PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJ
bnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJW
aWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dl
YlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBWZXJ0aWNhbCByaWdo
dC10by1sZWZ0CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJv
ZHkgc3R5bGU9J3dyaXRpbmctbW9kZTogdmVydGljYWwtcmwnIGNvbnRlbnRlZGl0YWJsZT0ndHJ1
ZSc+PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJ
bnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJW
aWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dl
YlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBWZXJ0aWNhbCByaWdo
dC10by1sZWZ0LCBjb21iaW5lZCB0ZXh0CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J3dyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IC13ZWJr
aXQtdGV4dC1jb21iaW5lOiBob3Jpem9udGFsJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPjwvYm9k
eT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNz
aW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyB3YWl0
Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9p
c0hvcml6b250YWxXcml0aW5nTW9kZV0pOworCisgICAgLy8gSG9yaXpvbnRhbCBsZWZ0LXRvLXJp
Z2h0LCB0b3AtdG8tYm90dG9tCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPGJvZHkgZGlyPSdsdHInIHN0eWxlPSd3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGIn
IGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHku
Zm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKwor
ICAgIC8vIEhvcml6b250YWwgbGVmdC10by1yaWdodCwgYm90dG9tLXRvLXRvcAorICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IGRpcj0nbHRyJyBzdHlsZT0n
LXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQnIGNvbnRlbnRlZGl0YWJsZT0ndHJ1
ZSc+PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJ
bnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJW
aWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfVFJVRShbd2Vi
VmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIEhvcml6b250YWwgcmln
aHQtdG8tbGVmdCwgdG9wLXRvLWJvdHRvbQorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
SFRNTFN0cmluZzpAIjxib2R5IGRpcj0ncnRsJyBzdHlsZT0nd3JpdGluZy1tb2RlOiBob3Jpem9u
dGFsLXRiJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPjwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVu
dC5ib2R5LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVw
ZGF0ZV07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
XSk7CisKKyAgICAvLyBIb3Jpem9udGFsIHJpZ2h0LXRvLWxlZnQsIGJvdHRvbS10by10b3AKKyAg
ICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBkaXI9J3J0bCcg
c3R5bGU9Jy13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0JyBjb250ZW50ZWRpdGFi
bGU9J3RydWUnPjwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRX
YWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsKKyAg
ICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX1RS
VUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7Cit9CisKK1RFU1QoRWRpdG9y
U3RhdGVUZXN0cywgaXNIb3Jpem9udGFsV3JpdGluZ01vZGVGb3JSYW5nZVNlbGVjdGlvbldpdGhO
b0lubGluZUNoaWxkcmVuKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAg
YXV0byBpbnB1dERlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RJbnB1dERlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CisgICAgW2lucHV0RGVsZWdhdGUgc2V0Rm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xp
Y3lIYW5kbGVyOltdIChXS1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pIHsg
cmV0dXJuIF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5QWxsb3c7IH1dOworICAgIFt3
ZWJWaWV3IF9zZXRJbnB1dERlbGVnYXRlOmlucHV0RGVsZWdhdGUuZ2V0KCldOworCisgICAgLy8g
VmVydGljYWwgbGVmdC10by1yaWdodAorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZzpAIjxib2R5IHN0eWxlPSd3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyJyBjb250ZW50
ZWRpdGFibGU9J3RydWUnPjwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCki
XTsKKyAgICBbd2ViVmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIlNlbGVj
dEFsbCIgYXJndW1lbnQ6bmlsXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlv
blVwZGF0ZV07CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5n
TW9kZV0pOworCisgICAgLy8gVmVydGljYWwgbGVmdC10by1yaWdodCwgY29tYmluZWQgdGV4dAor
ICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0eWxlPSd3
cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOyAtd2Via2l0LXRleHQtY29tYmluZTogaG9yaXpvbnRh
bCcgY29udGVudGVkaXRhYmxlPSd0cnVlJz48L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQuYm9k
eS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgX3N5bmNocm9ub3VzbHlFeGVjdXRlRWRpdENvbW1h
bmQ6QCJTZWxlY3RBbGwiIGFyZ3VtZW50Om5pbF07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQ
cmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBfaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIFZlcnRpY2FsIHJpZ2h0LXRvLWxlZnQKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nd3JpdGlu
Zy1tb2RlOiB2ZXJ0aWNhbC1ybCcgY29udGVudGVkaXRhYmxlPSd0cnVlJz48L2JvZHk+Il07Cisg
ICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hh
bmdlOkAiZG9jdW1lbnQuYm9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgX3N5bmNocm9ub3Vz
bHlFeGVjdXRlRWRpdENvbW1hbmQ6QCJTZWxlY3RBbGwiIGFyZ3VtZW50Om5pbF07CisgICAgW3dl
YlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9GQUxTRShb
d2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIFZlcnRpY2FsIHJp
Z2h0LXRvLWxlZnQsIGNvbWJpbmVkIHRleHQKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsgLXdl
YmtpdC10ZXh0LWNvbWJpbmU6IGhvcml6b250YWwnIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+PC9i
b2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNl
c3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9z
eW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiU2VsZWN0QWxsIiBhcmd1bWVudDpuaWxd
OworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBF
Q1RfRkFMU0UoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBI
b3Jpem9udGFsIGxlZnQtdG8tcmlnaHQsIHRvcC10by1ib3R0b20KKyAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBkaXI9J2x0cicgc3R5bGU9J3dyaXRpbmct
bW9kZTogaG9yaXpvbnRhbC10YicgY29udGVudGVkaXRhYmxlPSd0cnVlJz48L2JvZHk+Il07Cisg
ICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hh
bmdlOkAiZG9jdW1lbnQuYm9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgX3N5bmNocm9ub3Vz
bHlFeGVjdXRlRWRpdENvbW1hbmQ6QCJTZWxlY3RBbGwiIGFyZ3VtZW50Om5pbF07CisgICAgW3dl
YlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOworCisgICAgLy8gSG9yaXpvbnRhbCBs
ZWZ0LXRvLXJpZ2h0LCBib3R0b20tdG8tdG9wCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOkAiPGJvZHkgZGlyPSdsdHInIHN0eWxlPSctd2Via2l0LXdyaXRpbmctbW9k
ZTogaG9yaXpvbnRhbC1idCcgY29udGVudGVkaXRhYmxlPSd0cnVlJz48L2JvZHk+Il07CisgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdl
OkAiZG9jdW1lbnQuYm9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgX3N5bmNocm9ub3VzbHlF
eGVjdXRlRWRpdENvbW1hbmQ6QCJTZWxlY3RBbGwiIGFyZ3VtZW50Om5pbF07CisgICAgW3dlYlZp
ZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IF9pc0hvcml6b250YWxXcml0aW5nTW9kZV0pOworCisgICAgLy8gSG9yaXpvbnRhbCByaWdo
dC10by1sZWZ0LCB0b3AtdG8tYm90dG9tCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiPGJvZHkgZGlyPSdydGwnIHN0eWxlPSd3cml0aW5nLW1vZGU6IGhvcml6b250
YWwtdGInIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50
LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRD
b21tYW5kOkAiU2VsZWN0QWxsIiBhcmd1bWVudDpuaWxdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jp
em9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIEhvcml6b250YWwgcmlnaHQtdG8tbGVmdCwg
Ym90dG9tLXRvLXRvcAorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpA
Ijxib2R5IGRpcj0ncnRsJyBzdHlsZT0nLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwt
YnQnIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJv
ZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21t
YW5kOkAiU2VsZWN0QWxsIiBhcmd1bWVudDpuaWxdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0
UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGVdKTsKK30KKworVEVTVChFZGl0b3JTdGF0ZVRlc3RzLCBpc0hvcml6b250
YWxXcml0aW5nTW9kZUZvclJhbmdlU2VsZWN0aW9uKQoreworICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
LmdldCgpXSk7CisgICAgYXV0byBpbnB1dERlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RJbnB1dERl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW2lucHV0RGVsZWdhdGUgc2V0Rm9jdXNTdGFydHNJ
bnB1dFNlc3Npb25Qb2xpY3lIYW5kbGVyOltdIChXS1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRF
bGVtZW50SW5mbz4pIHsgcmV0dXJuIF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5QWxs
b3c7IH1dOworICAgIFt3ZWJWaWV3IF9zZXRJbnB1dERlbGVnYXRlOmlucHV0RGVsZWdhdGUuZ2V0
KCldOworCisgICAgLy8gVmVydGljYWwgbGVmdC10by1yaWdodAorICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0eWxlPSd3cml0aW5nLW1vZGU6IHZlcnRp
Y2FsLWxyJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPkhlbGxvPC9ib2R5PiJdOworICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRv
Y3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5RXhlY3V0
ZUVkaXRDb21tYW5kOkAiU2VsZWN0QWxsIiBhcmd1bWVudDpuaWxdOworICAgIFt3ZWJWaWV3IHdh
aXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcg
X2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBWZXJ0aWNhbCBsZWZ0LXRvLXJp
Z2h0LCBjb21iaW5lZCB0ZXh0CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPGJvZHkgc3R5bGU9J3dyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IC13ZWJraXQtdGV4
dC1jb21iaW5lOiBob3Jpem9udGFsJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPkhlbGxvPC9ib2R5
PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Np
b25Ub0NoYW5nZTpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9zeW5j
aHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOkAiU2VsZWN0QWxsIiBhcmd1bWVudDpuaWxdOwor
ICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1Rf
RkFMU0UoW3dlYlZpZXcgX2lzSG9yaXpvbnRhbFdyaXRpbmdNb2RlXSk7CisKKyAgICAvLyBWZXJ0
aWNhbCByaWdodC10by1sZWZ0CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPGJvZHkgc3R5bGU9J3dyaXRpbmctbW9kZTogdmVydGljYWwtcmwnIGNvbnRlbnRlZGl0
YWJsZT0ndHJ1ZSc+SGVsbG88L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQuYm9keS5mb2N1cygp
Il07CisgICAgW3dlYlZpZXcgX3N5bmNocm9ub3VzbHlFeGVjdXRlRWRpdENvbW1hbmQ6QCJTZWxl
Y3RBbGwiIGFyZ3VtZW50Om5pbF07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRp
b25VcGRhdGVdOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBfaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGVdKTsKKworICAgIC8vIFZlcnRpY2FsIHJpZ2h0LXRvLWxlZnQsIGNvbWJpbmVkIHRleHQK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0n
d3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsgLXdlYmtpdC10ZXh0LWNvbWJpbmU6IGhvcml6b250
YWwnIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+SGVsbG88L2JvZHk+Il07CisgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1l
bnQuYm9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgX3N5bmNocm9ub3VzbHlFeGVjdXRlRWRp
dENvbW1hbmQ6QCJTZWxlY3RBbGwiIGFyZ3VtZW50Om5pbF07CisgICAgW3dlYlZpZXcgd2FpdEZv
ck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBfaXNI
b3Jpem9udGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIEhvcml6b250YWwgbGVmdC10by1yaWdo
dCwgdG9wLXRvLWJvdHRvbQorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmlu
ZzpAIjxib2R5IGRpcj0nbHRyJyBzdHlsZT0nd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiJyBj
b250ZW50ZWRpdGFibGU9J3RydWUnPkhlbGxvPC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAImRvY3VtZW50LmJv
ZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21t
YW5kOkAiU2VsZWN0QWxsIiBhcmd1bWVudDpuaWxdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0
UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGVdKTsKKworICAgIC8vIEhvcml6b250YWwgbGVmdC10by1yaWdodCwgYm90
dG9tLXRvLXRvcAorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxi
b2R5IGRpcj0nbHRyJyBzdHlsZT0nLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQn
IGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+SGVsbG88L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQu
Ym9keS5mb2N1cygpIl07CisgICAgW3dlYlZpZXcgX3N5bmNocm9ub3VzbHlFeGVjdXRlRWRpdENv
bW1hbmQ6QCJTZWxlY3RBbGwiIGFyZ3VtZW50Om5pbF07CisgICAgW3dlYlZpZXcgd2FpdEZvck5l
eHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IF9pc0hvcml6
b250YWxXcml0aW5nTW9kZV0pOworCisgICAgLy8gSG9yaXpvbnRhbCByaWdodC10by1sZWZ0LCB0
b3AtdG8tYm90dG9tCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAi
PGJvZHkgZGlyPSdydGwnIHN0eWxlPSd3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGInIGNvbnRl
bnRlZGl0YWJsZT0ndHJ1ZSc+SGVsbG88L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVK
YXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRvQ2hhbmdlOkAiZG9jdW1lbnQuYm9keS5m
b2N1cygpIl07CisgICAgW3dlYlZpZXcgX3N5bmNocm9ub3VzbHlFeGVjdXRlRWRpdENvbW1hbmQ6
QCJTZWxlY3RBbGwiIGFyZ3VtZW50Om5pbF07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVz
ZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IF9pc0hvcml6b250YWxX
cml0aW5nTW9kZV0pOworCisgICAgLy8gSG9yaXpvbnRhbCByaWdodC10by1sZWZ0LCBib3R0b20t
dG8tdG9wCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkg
ZGlyPSdydGwnIHN0eWxlPSctd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idCcgY29u
dGVudGVkaXRhYmxlPSd0cnVlJz5IZWxsbzwvYm9keT4iXTsKKyAgICBbd2ViVmlldyBldmFsdWF0
ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJkb2N1bWVudC5ib2R5
LmZvY3VzKCkiXTsKKyAgICBbd2ViVmlldyBfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFu
ZDpAIlNlbGVjdEFsbCIgYXJndW1lbnQ6bmlsXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFBy
ZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2lzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlXSk7Cit9CisKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCiB9
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>
<flag name="review"
          id="412679"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>