<?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>162009</bug_id>
          
          <creation_ts>2016-09-15 00:08:01 -0700</creation_ts>
          <short_desc>Inserting a space after inserting an accepted candidate scrolls the document and causes a flicker</short_desc>
          <delta_ts>2016-09-16 11:16:19 -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>WebCore Misc.</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1229917</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-15 00:08:01 -0700</bug_when>
    <thetext>Inserting a space after inserting an accepted candidate scrolls the document and causes a flicker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229918</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-15 00:11:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/28086237&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229920</commentid>
    <comment_count>2</comment_count>
      <attachid>288936</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-15 00:22:54 -0700</bug_when>
    <thetext>Created attachment 288936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229923</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-15 00:24:51 -0700</bug_when>
    <thetext>Attachment 288936 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/mac/CandidateTests.mm:34:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230034</commentid>
    <comment_count>4</comment_count>
      <attachid>288959</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-15 09:45:33 -0700</bug_when>
    <thetext>Created attachment 288959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230046</commentid>
    <comment_count>5</comment_count>
      <attachid>288963</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-15 09:58:03 -0700</bug_when>
    <thetext>Created attachment 288963
Address iOS build failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230111</commentid>
    <comment_count>6</comment_count>
      <attachid>288977</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-15 11:36:18 -0700</bug_when>
    <thetext>Created attachment 288977
Another attempt to address build failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230123</commentid>
    <comment_count>7</comment_count>
      <attachid>288982</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-15 12:00:10 -0700</bug_when>
    <thetext>Created attachment 288982
Address build failures on 10.11 and earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230287</commentid>
    <comment_count>8</comment_count>
      <attachid>288982</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-15 18:30:45 -0700</bug_when>
    <thetext>Comment on attachment 288982
Address build failures on 10.11 and earlier.

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

&gt; Source/WebKit2/ChangeLog:24
&gt; +        new text. This causes a momentary range selection which the web process notifies the UI process about, prompting
&gt; +        us to hide the candidates list. To address this, we put guards around this process of asynchronous text

Beth fixed a similar bug using only WebProcess side changes today: https://trac.webkit.org/changeset/205983

Maybe you could do something similar (in WebPage::insertTextAsync, temporarychange a bit, don&apos;t send updates)? Would be a good bit less invasive, I think?

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:276
&gt; +- (void)_handleAcceptedCandidate:(NSTextCheckingResult *)candidate;

Availability macros are missing.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:2444
&gt; +    if ([m_view respondsToSelector:@selector(_didHandleAcceptedCandidate)])

What? This is WebViewImpl, the view is WKView/WKWebView. How can this ever fail?

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3898
&gt; +    m_isTextInsertionReplacingSoftSpace = false;
&gt;      interpretKeyEvent(event, ^(BOOL handledByInputMethod, const Vector&lt;WebCore::KeypressCommand&gt;&amp; commands) {
&gt;          ASSERT(!handledByInputMethod || commands.isEmpty());
&gt; -        m_page-&gt;handleKeyboardEvent(NativeWebKeyboardEvent(event, handledByInputMethod, commands));
&gt; +        m_page-&gt;handleKeyboardEvent(NativeWebKeyboardEvent(event, handledByInputMethod, m_isTextInsertionReplacingSoftSpace, commands));

This all seems surprisingly invasive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230301</commentid>
    <comment_count>9</comment_count>
      <attachid>288982</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-15 20:31:47 -0700</bug_when>
    <thetext>Comment on attachment 288982
Address build failures on 10.11 and earlier.

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

&gt;&gt; Source/WebKit2/ChangeLog:24
&gt;&gt; +        us to hide the candidates list. To address this, we put guards around this process of asynchronous text
&gt; 
&gt; Beth fixed a similar bug using only WebProcess side changes today: https://trac.webkit.org/changeset/205983
&gt; 
&gt; Maybe you could do something similar (in WebPage::insertTextAsync, temporarychange a bit, don&apos;t send updates)? Would be a good bit less invasive, I think?

We chatted about this briefly. I&apos;m concerned about affecting code paths outside of what&apos;s needed to fix this issue. After poking around, I found that other than dictation, the setMarkedText:selectedRange:replacementRange: codepath also calls into insertTextAsync when typing in password fields. I think we should be wary of changing any behavior here (at least, given the time frame we have) since it&apos;s public API, and we don&apos;t know exactly how not letting the UI process know about the transient range selection during this async call might affect behavior in a lot of cases.

&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:276
&gt;&gt; +- (void)_handleAcceptedCandidate:(NSTextCheckingResult *)candidate;
&gt; 
&gt; Availability macros are missing.

Added. Thanks!

&gt;&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:2444
&gt;&gt; +    if ([m_view respondsToSelector:@selector(_didHandleAcceptedCandidate)])
&gt; 
&gt; What? This is WebViewImpl, the view is WKView/WKWebView. How can this ever fail?

WKView doesn&apos;t implement _didHandleAcceptedCandidate (and I don&apos;t think it has a need to)

&gt;&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3898
&gt;&gt; +        m_page-&gt;handleKeyboardEvent(NativeWebKeyboardEvent(event, handledByInputMethod, m_isTextInsertionReplacingSoftSpace, commands));
&gt; 
&gt; This all seems surprisingly invasive.

I&apos;ll file a follow-up to this to address how we&apos;re firing editorState updates for transient range selections when editing. Again, I think making a change here might be dangerous -- Beth&apos;s change was localized to the side effects of calling WebPage::dictionaryPopupInfoForRange, but as I wrote above, I think a similar approach here would have a bigger effect since insertTextAsync is called by public API (setMarkedText:). We could make it so that we add an argument to WebPage::InsertTextAsync indicating whether to suppress editor state change updates until the end, but I don&apos;t think there&apos;s any real benefit to doing that over the approach taken in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230303</commentid>
    <comment_count>10</comment_count>
      <attachid>289031</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-15 20:42:04 -0700</bug_when>
    <thetext>Created attachment 289031
New unit test, and addresses Tim&apos;s review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230304</commentid>
    <comment_count>11</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-15 20:47:54 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3898
&gt; &gt; +    m_isTextInsertionReplacingSoftSpace = false;
&gt; &gt;      interpretKeyEvent(event, ^(BOOL handledByInputMethod, const Vector&lt;WebCore::KeypressCommand&gt;&amp; commands) {
&gt; &gt;          ASSERT(!handledByInputMethod || commands.isEmpty());
&gt; &gt; -        m_page-&gt;handleKeyboardEvent(NativeWebKeyboardEvent(event, handledByInputMethod, commands));
&gt; &gt; +        m_page-&gt;handleKeyboardEvent(NativeWebKeyboardEvent(event, handledByInputMethod, m_isTextInsertionReplacingSoftSpace, commands));
&gt; 
&gt; This all seems surprisingly invasive.

Sorry, I realized after responding that this wasn&apos;t directed at the will/didInsertTextAsync change. Do you think I should add another constructor here without the replacesSoftSpace bool that just passes false, so the other places that call NativeWebKeyboardEvent() won&apos;t have to worry about replacesSoftSpace?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230316</commentid>
    <comment_count>12</comment_count>
      <attachid>289035</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-15 23:15:01 -0700</bug_when>
    <thetext>Created attachment 289035
Suppresses EditorStateChanged while selecting text when replacing a soft space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230447</commentid>
    <comment_count>13</comment_count>
      <attachid>289035</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-16 10:23:51 -0700</bug_when>
    <thetext>Comment on attachment 289035
Suppresses EditorStateChanged while selecting text when replacing a soft space.

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

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h:656
&gt; +    unsigned m_pendingAsynchronousTextInsertionCount { 0 };

I don&apos;t think you want this anymore.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:2444
&gt; +    if ([m_view respondsToSelector:@selector(_didHandleAcceptedCandidate)])

Add empty implementations to WKView too instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230457</commentid>
    <comment_count>14</comment_count>
      <attachid>289073</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-16 10:43:38 -0700</bug_when>
    <thetext>Created attachment 289073
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230492</commentid>
    <comment_count>15</comment_count>
      <attachid>289073</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-16 11:16:14 -0700</bug_when>
    <thetext>Comment on attachment 289073
Patch for landing

Clearing flags on attachment: 289073

Committed r206033: &lt;http://trac.webkit.org/changeset/206033&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230493</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-16 11:16:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288936</attachid>
            <date>2016-09-15 00:22:54 -0700</date>
            <delta_ts>2016-09-15 09:45:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162009-20160915002017.patch</filename>
            <type>text/plain</type>
            <size>36785</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTViZDYzYjJjYjgyODY5
YWFiNmRkNjVkMTAzYjgzMjkyZGQ5OWQxYS4uMTU0MTViNDNlMzY0YmE0NTliNmY0MWI0MTQ0MjU5
NDQ3NWRiMzczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE2LTA5LTE0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEluc2VydGluZyBh
IHNwYWNlIGFmdGVyIGluc2VydGluZyBhbiBhY2NlcHRlZCBjYW5kaWRhdGUgc2Nyb2xscyB0aGUg
ZG9jdW1lbnQgYW5kIGNhdXNlcyBhIGZsaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjAwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgw
ODYyMzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdCBwYXRjaC4gTW9yZSBkZXRhaWxlZCBDaGFuZ2VMb2cgZW50cnkgdG8gY29tZSB0b21vcnJv
dy4KKworICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmg6CisgICAgICAg
ICogU2hhcmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KToKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oOgorICAgICAgICAqIFNoYXJlZC9t
YWMvV2ViRXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0Ojp0ZXh0RnJvbUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6dW5tb2RpZmllZFRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2hhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZEhh
bmRsZUFjY2VwdGVkQ2FuZGlkYXRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZm9yY2VSZXF1
ZXN0Q2FuZGlkYXRlc10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2hhbmRsZUNvbnRyb2xsZWRF
bGVtZW50SURSZXNwb25zZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzSW5zZXJ0aW5nVGV4dEFz
eW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbGxJbnNlcnRU
ZXh0QXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlkSW5z
ZXJ0VGV4dEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmb3JjZVJlcXVlc3RDYW5k
aWRhdGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9u
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUFjY2VwdGVkQ2FuZGlk
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpZEhhbmRsZUFjY2VwdGVkQ2Fu
ZGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omluc2VydFRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6a2V5VXApOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6a2V5RG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmbGFnc0NoYW5n
ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
SW5zZXJ0VGV4dEFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjppbnNlcnRU
ZXh0QXN5bmMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6d2lsbEluc2VydFRl
eHRBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRJbnNlcnRUZXh0
QXN5bmMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6aW5zZXJ0VGV4dEFzeW5jKToKKwogMjAxNi0wOS0xMyAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYSBjb250
cm9scyBiZWhhdmUgc3RyYW5nZWx5IHdoZW4gY2hhbmdpbmcgbWVkaWEgc291cmNlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKaW5kZXggMjNjYzc0
YTVjODgxODRhNjc4Mjg2MDczZTgyNmQ0MGQ4ZTcyZDNlYi4uMjJjYTYxZTM0YzhmYmE4YTE0Mjcz
ZTA2M2NmNDNkYTU1MDk1MWE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05h
dGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudC5oCkBAIC02MCw3ICs2MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
Y2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCA6IHB1YmxpYyBXZWJLZXlib2FyZEV2ZW50IHsK
IHB1YmxpYzoKICNpZiBVU0UoQVBQS0lUKQotICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoTlNF
dmVudCAqLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiYpOworICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAq
LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBib29sIHJlcGxhY2VzU29mdFNwYWNlLCBjb25z
dCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYpOwogI2VsaWYgUExBVEZPUk0oR1RL
KQogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dCYpOwogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoR2RrRXZlbnQqLCBjb25zdCBXZWJDb3Jl
OjpDb21wb3NpdGlvblJlc3VsdHMmLCBJbnB1dE1ldGhvZEZpbHRlcjo6RXZlbnRGYWtlZEZvckNv
bXBvc2l0aW9uLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbQppbmRleCBh
ZmIzYjYwNzEwYzZhYmRhOGVjNjY4ZGNmYjU1ZjVlYWFjZmIyZTdmLi42ZjU5Y2JiNDM4MjgzMmYw
NTI3YzcxNWVlZDZjYWU3MjA2MzJkYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL05hdGl2ZVdlYktleWJvYXJkRXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tCkBAIC0zNSw4ICszNSw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwg
Ym9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4m
IGNvbW1hbmRzKQotICAgIDogV2ViS2V5Ym9hcmRFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykp
CitOYXRpdmVXZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQg
KmV2ZW50LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBib29sIHJlcGxhY2VzU29mdFNwYWNl
LCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpCisgICAgOiBXZWJLZXli
b2FyZEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChldmVudCwg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIHJlcGxhY2VzU29mdFNwYWNlLCBjb21tYW5kcykpCiAgICAg
LCBtX25hdGl2ZUV2ZW50KGV2ZW50KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
V2ViRXZlbnRGYWN0b3J5LmgKaW5kZXggNTk5OTVmODczZjQzNDI5NGE0ODg0MjY1NTVmMWE2ZmY3
NmRiM2NkNS4uYmU4NzJjZWI2OGE1YWNjZjdiYzZiZmFiZDIxZDIzNGRkZDk2NDI2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oCkBAIC00NCw3ICs0NCw3
IEBAIHB1YmxpYzoKICNpZiBVU0UoQVBQS0lUKQogICAgIHN0YXRpYyBXZWJNb3VzZUV2ZW50IGNy
ZWF0ZVdlYk1vdXNlRXZlbnQoTlNFdmVudCAqLCBOU0V2ZW50ICpsYXN0UHJlc3N1cmVFdmVudCwg
TlNWaWV3ICp3aW5kb3dWaWV3KTsKICAgICBzdGF0aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJX
aGVlbEV2ZW50KE5TRXZlbnQgKiwgTlNWaWV3ICp3aW5kb3dWaWV3KTsKLSAgICBzdGF0aWMgV2Vi
S2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKiwgYm9vbCBoYW5k
bGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4m
KTsKKyAgICBzdGF0aWMgV2ViS2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5T
RXZlbnQgKiwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgYm9vbCByZXBsYWNlc1NvZnRTcGFj
ZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mKTsKICAgICBzdGF0aWMg
Ym9vbCBzaG91bGRCZUhhbmRsZWRBc0NvbnRleHRDbGljayhjb25zdCBXZWJDb3JlOjpQbGF0Zm9y
bU1vdXNlRXZlbnQmKTsKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggNWJkYmM4ZmQ2ZGUxODkxMDU5
NDQ1ZjQ0NDU3MWFmM2I2Y2E3NDI4Ni4uNWYzYmE5MjhiZmIxOGVhYmJjYzU1YTU4NTVlN2E1NjY2
OWFiYTNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZh
Y3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3Rvcnku
bW0KQEAgLTIzNiw4ICsyMzYsMTAgQEAgc3RhdGljIFdlYldoZWVsRXZlbnQ6OlBoYXNlIG1vbWVu
dHVtUGhhc2VGb3JFdmVudChOU0V2ZW50ICpldmVudCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
V2ViV2hlZWxFdmVudDo6UGhhc2U+KHBoYXNlKTsKIH0KIAotc3RhdGljIGlubGluZSBTdHJpbmcg
dGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCkKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIHRleHRG
cm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2UpCiB7CisgICAg
aWYgKHJlcGxhY2VzU29mdFNwYWNlKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpZiAoW2V2ZW50IHR5cGVdID09
IE5TRmxhZ3NDaGFuZ2VkKQpAQCAtMjQ2LDggKzI0OCwxMCBAQCBzdGF0aWMgaW5saW5lIFN0cmlu
ZyB0ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogICAgIHJldHVybiBTdHJpbmcoW2V2ZW50
IGNoYXJhY3RlcnNdKTsKIH0KIAotc3RhdGljIGlubGluZSBTdHJpbmcgdW5tb2RpZmllZFRleHRG
cm9tRXZlbnQoTlNFdmVudCogZXZlbnQpCitzdGF0aWMgaW5saW5lIFN0cmluZyB1bm1vZGlmaWVk
VGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSkKIHsK
KyAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygp
OwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGlmIChbZXZlbnQgdHlw
ZV0gPT0gTlNGbGFnc0NoYW5nZWQpCkBAIC00NTcsMTEgKzQ2MSwxMSBAQCBXZWJXaGVlbEV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChOU0V2ZW50ICpldmVudCwgTlNW
aWV3ICp3aW5kbwogICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgSW50
UG9pbnQocG9zaXRpb24pLCBJbnRQb2ludChnbG9iYWxQb3NpdGlvbiksIEZsb2F0U2l6ZShkZWx0
YVgsIGRlbHRhWSksIEZsb2F0U2l6ZSh3aGVlbFRpY2tzWCwgd2hlZWxUaWNrc1kpLCBncmFudWxh
cml0eSwgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBwaGFzZSwgbW9tZW50dW1QaGFzZSwg
aGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgc2Nyb2xsQ291bnQsIHVuYWNjZWxlcmF0ZWRTY3Jv
bGxpbmdEZWx0YSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApOwogfQogCi1XZWJLZXlib2FyZEV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwg
Ym9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNz
Q29tbWFuZD4mIGNvbW1hbmRzKQorV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGFuZGxlZEJ5SW5wdXRN
ZXRob2QsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2UsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+JiBjb21tYW5kcykKIHsKICAgICBXZWJFdmVudDo6VHlwZSB0eXBlICAgICAg
ICAgICAgID0gaXNLZXlVcEV2ZW50KGV2ZW50KSA/IFdlYkV2ZW50OjpLZXlVcCA6IFdlYkV2ZW50
OjpLZXlEb3duOwotICAgIFN0cmluZyB0ZXh0ICAgICAgICAgICAgICAgICAgICAgPSB0ZXh0RnJv
bUV2ZW50KGV2ZW50KTsKLSAgICBTdHJpbmcgdW5tb2RpZmllZFRleHQgICAgICAgICAgID0gdW5t
b2RpZmllZFRleHRGcm9tRXZlbnQoZXZlbnQpOworICAgIFN0cmluZyB0ZXh0ICAgICAgICAgICAg
ICAgICAgICAgPSB0ZXh0RnJvbUV2ZW50KGV2ZW50LCByZXBsYWNlc1NvZnRTcGFjZSk7CisgICAg
U3RyaW5nIHVubW9kaWZpZWRUZXh0ICAgICAgICAgICA9IHVubW9kaWZpZWRUZXh0RnJvbUV2ZW50
KGV2ZW50LCByZXBsYWNlc1NvZnRTcGFjZSk7CiAgICAgU3RyaW5nIGtleUlkZW50aWZpZXIgICAg
ICAgICAgICA9IGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChldmVudCk7CiAgICAgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSAgICAgICA9IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQoZXZlbnQp
OwogICAgIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSAgICAgICAgPSBbZXZlbnQga2V5Q29kZV07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmlu
ZGV4IDJiODQ0OTg2MmE0Yjc0ZDg1NjgxODE0MWE3YmM5NzhkMGM0YTkzYjYuLjAxOWNhMjNiYjQx
NDFlZGMxNmNkMjczYWIwOWI4ZDJjMjQ4MDgwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00NTY0LDYgKzQ1NjQsMjEgQEAgLSAo
dm9pZClfaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlOihOU1N0cmluZyAqKWlkZW50
aWZpZXIKIHsKICAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMuCiB9CisKKy0gKHZvaWQp
X2hhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOihOU1RleHRDaGVja2luZ1Jlc3VsdCAqKWNhbmRpZGF0
ZQoreworICAgIF9pbXBsLT5oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZShjYW5kaWRhdGUpOworfQor
CistICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZQoreworICAgIC8vIE92ZXJyaWRk
ZW4gYnkgc3ViY2xhc3Nlcy4KK30KKworLSAodm9pZClfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlcwor
eworICAgIF9pbXBsLT5mb3JjZVJlcXVlc3RDYW5kaWRhdGVzKCk7Cit9CiAjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQogCiAvLyBFeGVjdXRlIHRoZSBzdXBwbGllZCBibG9jayBhZnRlciB0aGUgbmV4
dCB0cmFuc2FjdGlvbiBmcm9tIHRoZSBXZWJQcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCAzYzM0MzNj
M2QxMGU3MWE2MWFkZmFjYzM5ZmU1YmQwODE2ZWFhODE3Li5lMDU1MTY1Nzk3MWM1YjdlODBiYWY0
NmE1NjJhNDliNjgyNWJkZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjczLDYgKzI3Myw5IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01h
bmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKIC0gKHZvaWQpX3JlcXVlc3RD
b250cm9sbGVkRWxlbWVudElEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsK
IC0gKHZvaWQpX2hhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZTooTlNTdHJpbmcgKilp
ZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQp
X2hhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOihOU1RleHRDaGVja2luZ1Jlc3VsdCAqKWNhbmRpZGF0
ZTsKKy0gKHZvaWQpX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOworLSAodm9pZClfZm9yY2VS
ZXF1ZXN0Q2FuZGlkYXRlczsKICNlbmRpZgogCiAtICh2b2lkKV9kb0FmdGVyTmV4dFByZXNlbnRh
dGlvblVwZGF0ZToodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaAppbmRleCA0OTk0M2YxNmNiNWVkYzM1ZTljYTc2OTU2NzZkYTgzMDdl
ZDg4NDRmLi4zZTM5Mzk4MjhmMWRlZjY0MTEyMDdhYmFkYTM1MWExNjY1ODVlMWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtODQsNiArODQs
NyBAQCBPQkpDX0NMQVNTIF9XS1RodW1ibmFpbFZpZXc7CiBAb3B0aW9uYWwKIC0gKHZvaWQpX3dl
Yl9kaWRBZGRNZWRpYUNvbnRyb2xzTWFuYWdlcjooaWQpY29udHJvbHNNYW5hZ2VyOwogLSAodm9p
ZClfd2ViX2RpZFJlbW92ZU1lZGlhQ29udHJvbHNNYW5hZ2VyOworLSAodm9pZClfZGlkSGFuZGxl
QWNjZXB0ZWRDYW5kaWRhdGU7CiAKIEBlbmQKIApAQCAtMzU5LDYgKzM2MCwxMCBAQCBwdWJsaWM6
CiAgICAgTlNTdHJpbmcgKnN0cmluZ0ZvclRvb2xUaXAoTlNUb29sVGlwVGFnIHRhZyk7CiAgICAg
dm9pZCB0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmIG9sZFRvb2xUaXAsIGNvbnN0IFN0cmlu
ZyYgbmV3VG9vbFRpcCk7CiAKKyAgICBib29sIGlzSW5zZXJ0aW5nVGV4dEFzeW5jaHJvbm91c2x5
KCkgY29uc3QgeyByZXR1cm4gbV9pc0luc2VydGluZ1RleHRBc3luY2hyb25vdXNseTsgfQorICAg
IHZvaWQgd2lsbEluc2VydFRleHRBc3luY2hyb25vdXNseSgpIHsgbV9pc0luc2VydGluZ1RleHRB
c3luY2hyb25vdXNseSA9IHRydWU7IH0KKyAgICB2b2lkIGRpZEluc2VydFRleHRBc3luY2hyb25v
dXNseSgpIHsgbV9pc0luc2VydGluZ1RleHRBc3luY2hyb25vdXNseSA9IGZhbHNlOyB9CisKICAg
ICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoQ0FMYXllciAqKTsKICAg
ICBDQUxheWVyICphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3QgeyByZXR1
cm4gbV9yb290TGF5ZXIuZ2V0KCk7IH0KIApAQCAtNDkyLDYgKzQ5Nyw3IEBAIHB1YmxpYzoKIAog
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwIAogICAgIHZvaWQg
aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoTlNUZXh0Q2hlY2tpbmdSZXN1bHQgKmFjY2VwdGVkQ2Fu
ZGlkYXRlKTsKKyAgICB2b2lkIGZvcmNlUmVxdWVzdENhbmRpZGF0ZXMoKTsKICNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYlZpZXdJbXBsQWRk
aXRpb25zLmg+CiAjZW5kaWYKQEAgLTY0OSw2ICs2NTUsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pc0hhbmRsaW5nQWNjZXB0ZWRDYW5kaWRhdGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9yZXF1
aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fZWRpdGFibGVFbGVtZW50SXNGb2N1c2VkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNJ
bnNlcnRpbmdUZXh0QXN5bmNocm9ub3VzbHkgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1RleHRJ
bnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgeyBmYWxzZSB9OwogfTsKICAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCmluZGV4IDY1MTY5ZWQ5M2U0ZDAyNTAzZmYxMzQ1ZjIwZGUwOTMwOTRmODMwYTEuLmI5
NjZlMzBkNDdkY2Y0MDViYzM1ZTc3MmU5Yjg3MWMwMGJhYzc1M2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTQ0MSw2ICs0NDEsMTAgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlV2ViVmlld0ltcGxBZGRpdGlvbnMoKQogewogfQogCit2
b2lkIFdlYlZpZXdJbXBsOjpmb3JjZVJlcXVlc3RDYW5kaWRhdGVzKCkKK3sKK30KKwogYm9vbCBX
ZWJWaWV3SW1wbDo6c2hvdWxkUmVxdWVzdENhbmRpZGF0ZXMoKSBjb25zdAogewogICAgIHJldHVy
biBmYWxzZTsKQEAgLTYyMCw3ICs2MjQsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJz
dFJlc3BvbmRlcigpCiAgICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtl
dmVudCB0eXBlXSA9PSBOU0tleVVwKQogICAgICAgICAgICAga2V5Ym9hcmRFdmVudCA9IGV2ZW50
OwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBtX3BhZ2UtPnNldEluaXRp
YWxGb2N1cyhkaXJlY3Rpb24gPT0gTlNTZWxlY3RpbmdOZXh0LCBrZXlib2FyZEV2ZW50ICE9IG5p
bCwgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50LCBmYWxzZSwgeyB9KSwgW10o
V2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7IH0pOworICAgICAgICBtX3BhZ2UtPnNldElu
aXRpYWxGb2N1cyhkaXJlY3Rpb24gPT0gTlNTZWxlY3RpbmdOZXh0LCBrZXlib2FyZEV2ZW50ICE9
IG5pbCwgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50LCBmYWxzZSwgZmFsc2Us
IHsgfSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKICAgICB9CiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC0yMjc5LDYgKzIyODMsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpo
YW5kbGVBY2NlcHRlZENhbmRpZGF0ZShOU1RleHRDaGVja2luZ1Jlc3VsdCAqYWNjZXB0ZWRDYW5k
aWRhdAogCiAgICAgbV9pc0hhbmRsaW5nQWNjZXB0ZWRDYW5kaWRhdGUgPSB0cnVlOwogICAgIE5T
UmFuZ2UgcmFuZ2UgPSBbYWNjZXB0ZWRDYW5kaWRhdGUgcmFuZ2VdOworCiAgICAgaWYgKGFjY2Vw
dGVkQ2FuZGlkYXRlLnJlcGxhY2VtZW50U3RyaW5nICYmIFthY2NlcHRlZENhbmRpZGF0ZS5yZXBs
YWNlbWVudFN0cmluZyBsZW5ndGhdID4gMCkgewogICAgICAgICBOU1JhbmdlIHJlcGxhY2VkUmFu
Z2UgPSBOU01ha2VSYW5nZShyYW5nZS5sb2NhdGlvbiwgW2FjY2VwdGVkQ2FuZGlkYXRlLnJlcGxh
Y2VtZW50U3RyaW5nIGxlbmd0aF0pOwogICAgICAgICBOU1JhbmdlIHNvZnRTcGFjZVJhbmdlID0g
TlNNYWtlUmFuZ2UoTlNNYXhSYW5nZShyZXBsYWNlZFJhbmdlKSAtIDEsIDEpOwpAQCAtMjQzNiw2
ICsyNDQxLDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ2hhbmdlQ29udGVudFNpemUoQ0dTaXpl
IG5ld1NpemUpCiB2b2lkIFdlYlZpZXdJbXBsOjpkaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSgp
CiB7CiAgICAgbV9pc0hhbmRsaW5nQWNjZXB0ZWRDYW5kaWRhdGUgPSBmYWxzZTsKKworICAgIGlm
IChbbV92aWV3IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2RpZEhhbmRsZUFjY2VwdGVk
Q2FuZGlkYXRlKV0pCisgICAgICAgIFttX3ZpZXcgX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRl
XTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2Uo
KQpAQCAtMzU2NywxMyArMzU3NSwxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnNlcnRUZXh0KGlk
IHN0cmluZywgTlNSYW5nZSByZXBsYWNlbWVudFJhbmdlKQogICAgIH0gZWxzZQogICAgICAgICB0
ZXh0ID0gc3RyaW5nOwogCi0gICAgQk9PTCBuZWVkVG9SZW1vdmVTb2Z0U3BhY2UgPSBOTzsKKyAg
ICBtX2lzVGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA9IGZhbHNlOwogI2lmIEhBVkUo
QURWQU5DRURfU1BFTExfQ0hFQ0tJTkcpCiAgICAgaWYgKG1fc29mdFNwYWNlUmFuZ2UubG9jYXRp
b24gIT0gTlNOb3RGb3VuZCAmJiAocmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlvbiA9PSBOU01heFJh
bmdlKG1fc29mdFNwYWNlUmFuZ2UpIHx8IHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNO
b3RGb3VuZCkgJiYgcmVwbGFjZW1lbnRSYW5nZS5sZW5ndGggPT0gMCAmJiBbW05TU3BlbGxDaGVj
a2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gZGVsZXRlc0F1dG9zcGFjZUJlZm9yZVN0cmluZzp0ZXh0
IGxhbmd1YWdlOm5pbF0pIHsKICAgICAgICAgcmVwbGFjZW1lbnRSYW5nZSA9IG1fc29mdFNwYWNl
UmFuZ2U7Ci0gICAgICAgIG5lZWRUb1JlbW92ZVNvZnRTcGFjZSA9IFlFUzsKKyAgICAgICAgbV9p
c1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgPSB0cnVlOwogICAgIH0KICNlbmRpZgor
CiAgICAgbV9zb2Z0U3BhY2VSYW5nZSA9IE5TTWFrZVJhbmdlKE5TTm90Rm91bmQsIDApOwogCiAg
ICAgLy8gaW5zZXJ0VGV4dCBjYW4gYmUgY2FsbGVkIGZvciBzZXZlcmFsIHJlYXNvbnM6CkBAIC0z
NTgyLDcgKzM1OTEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnNlcnRUZXh0KGlkIHN0cmluZywg
TlNSYW5nZSByZXBsYWNlbWVudFJhbmdlKQogICAgIC8vIC0gSWYgaXQncyBzZW50IG91dHNpZGUg
b2Yga2V5Ym9hcmQgZXZlbnQgcHJvY2Vzc2luZyAoZS5nLiBmcm9tIENoYXJhY3RlciBWaWV3ZXIs
IG9yIHdoZW4gY29uZmlybWluZyBhbiBpbmxpbmUgaW5wdXQgYXJlYSB3aXRoIGEgbW91c2UpLAog
ICAgIC8vIHRoZW4gd2UgYWxzbyBleGVjdXRlIGl0IGltbWVkaWF0ZWx5LCBhcyB0aGVyZSB3aWxs
IGJlIG5vIG90aGVyIGNoYW5jZS4KICAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5k
Pioga2V5cHJlc3NDb21tYW5kcyA9IG1fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5kczsKLSAgICBp
ZiAoa2V5cHJlc3NDb21tYW5kcyAmJiAhbmVlZFRvUmVtb3ZlU29mdFNwYWNlKSB7CisgICAgaWYg
KGtleXByZXNzQ29tbWFuZHMgJiYgIW1faXNUZXh0SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNl
KSB7CiAgICAgICAgIEFTU0VSVChyZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91
bmQpOwogICAgICAgICBXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQgY29tbWFuZCgiaW5zZXJ0VGV4
dDoiLCB0ZXh0KTsKICAgICAgICAga2V5cHJlc3NDb21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOwpA
QCAtMzU5Niw3ICszNjA1LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJp
bmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkKICAgICBpZiAoIWRpY3RhdGlvbkFsdGVybmF0
aXZlcy5pc0VtcHR5KCkpCiAgICAgICAgIG1fcGFnZS0+aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMo
ZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMsIHJlZ2lz
dGVyVW5kb0dyb3VwKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGFnZS0+aW5zZXJ0VGV4dEFzeW5j
KGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXAsIG5lZWRUb1Jl
bW92ZVNvZnRTcGFjZSA/IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbzo6UGFyYWdyYXBoIDogRWRp
dGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpFZGl0YWJsZVJvb3QpOworICAgICAgICBtX3BhZ2UtPmlu
c2VydFRleHRBc3luYyhldmVudFRleHQsIHJlcGxhY2VtZW50UmFuZ2UsIHJlZ2lzdGVyVW5kb0dy
b3VwLCBtX2lzVGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA/IEVkaXRpbmdSYW5nZUlz
UmVsYXRpdmVUbzo6UGFyYWdyYXBoIDogRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpFZGl0YWJs
ZVJvb3QpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZWxlY3RlZFJhbmdlV2l0aENvbXBsZXRp
b25IYW5kbGVyKHZvaWQoXmNvbXBsZXRpb25IYW5kbGVyUHRyKShOU1JhbmdlIHNlbGVjdGVkUmFu
Z2UpKQpAQCAtMzg3MCw3ICszODc5LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVx
dWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgLy8gRklYTUU6IFdoeSBpcyB0aGUgZmlyc3RS
ZXNwb25kZXIgY2hlY2sgbmVlZGVkPwogICAgIGlmIChtX3ZpZXcgPT0gbV92aWV3LndpbmRvdy5m
aXJzdFJlc3BvbmRlcikgewogICAgICAgICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09M
IGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21t
YW5kPiYgY29tbWFuZHMpIHsKLSAgICAgICAgICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVu
dChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29t
bWFuZHMpKTsKKyAgICAgICAgICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgZmFsc2UsIGNvbW1h
bmRzKSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm4gWUVTOwogICAgIH0KQEAgLTM4ODUs
OSArMzg5NCwxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjprZXlVcChOU0V2ZW50ICpldmVudCkKIAog
ICAgIExPRyhUZXh0SW5wdXQsICJrZXlVcDolcCAlQCIsIGV2ZW50LCBldmVudCk7CiAKKyAgICBt
X2lzVGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA9IGZhbHNlOwogICAgIGludGVycHJl
dEtleUV2ZW50KGV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewogICAgICAgICBBU1NFUlQo
IWhhbmRsZWRCeUlucHV0TWV0aG9kIHx8IGNvbW1hbmRzLmlzRW1wdHkoKSk7Ci0gICAgICAgIG1f
cGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBo
YW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgbV9wYWdlLT5oYW5kbGVL
ZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0
TWV0aG9kLCBtX2lzVGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSwgY29tbWFuZHMpKTsK
ICAgICB9KTsKIH0KIApAQCAtMzkxMiw5ICszOTIyLDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6Omtl
eURvd24oTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBtX2lz
VGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA9IGZhbHNlOwogICAgIGludGVycHJldEtl
eUV2ZW50KGV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewogICAgICAgICBBU1NFUlQoIWhh
bmRsZWRCeUlucHV0TWV0aG9kIHx8IGNvbW1hbmRzLmlzRW1wdHkoKSk7Ci0gICAgICAgIG1fcGFn
ZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5k
bGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXli
b2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0
aG9kLCBtX2lzVGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSwgY29tbWFuZHMpKTsKICAg
ICB9KTsKIH0KIApAQCAtMzkzMCw3ICszOTQxLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZmxhZ3ND
aGFuZ2VkKE5TRXZlbnQgKmV2ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBpbnRlcnByZXRL
ZXlFdmVudChldmVudCwgXihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKLSAgICAgICAgbV9wYWdlLT5o
YW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRC
eUlucHV0TWV0aG9kLCBjb21tYW5kcykpOworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJk
RXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IGZhbHNlLCBjb21tYW5kcykpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAppbmRleCAxYjI0ZGIyNzVlOGNlMGIyMGI2Y2VlNGYzMDViNWJmNTljODFlYTdk
Li40ODc3NzMxNDk3MDE2ZmM2YTYyMjE0ODNlN2Q2Y2Q4NGVjZTAzNjlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTE4MCw2ICsxODAsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoTGF5ZXJPclZp
ZXcgKikgPSAwOwogICAgIHZpcnR1YWwgTGF5ZXJPclZpZXcgKmFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdSb290TGF5ZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFZpZXdTbmFw
c2hvdD4gdGFrZVZpZXdTbmFwc2hvdCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEluc2Vy
dFRleHRBc3luYygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zZXJ0VGV4dEFzeW5jKCkg
PSAwOwogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAgICAgdmlydHVhbCB2b2lkIGdl
c3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViR2VzdHVyZUV2
ZW50JikgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IDAyYzJjMjIwOGI5Yjk4N2U3NzNkMGJlNGVjMDI3MzZiODYyZWQ5ODcuLjJkODIx
ZGNiMWMzMjQ0NGQyNzMwMTIxMzE5Zjg5YTQ4MjkxZjBiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02MTM5LDExICs2MTM5LDE3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjphZGRNSU1FVHlwZVdpdGhDdXN0b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSkKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkSW5zZXJ0VGV4dEFzeW5jKCkKK3sKKyAgICBtX3BhZ2VDbGllbnQuZGlkSW5zZXJ0VGV4
dEFzeW5jKCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjppbnNlcnRUZXh0QXN5bmMoY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGJvb2wg
cmVnaXN0ZXJVbmRvR3JvdXAsIEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyBlZGl0aW5nUmFuZ2VJ
c1JlbGF0aXZlVG8pCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIG1fcGFnZUNsaWVudC53aWxsSW5zZXJ0VGV4dEFzeW5jKCk7CiAgICAgcHJvY2VzcygpLnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6Okluc2VydFRleHRBc3luYyh0ZXh0LCByZXBsYWNlbWVudFJh
bmdlLCByZWdpc3RlclVuZG9Hcm91cCwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGVkaXRpbmdSYW5n
ZUlzUmVsYXRpdmVUbykpLCBtX3BhZ2VJRCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCA2ZmE1OTc1YjM1ODIyNWQ3OTczYzQzZTAzMGQzOWU4ZmE4OGRi
MzRhLi4zNDMzODYxM2I4NmI5ZGQ4YmNiYTQwODUxMjAwZTAzOTAwNjhiN2UxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01NjMsNiArNTYzLDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihMYXllck9yVmll
dyopOwogICAgIExheWVyT3JWaWV3KiBhY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkg
Y29uc3Q7CiAKKyAgICB2b2lkIHdpbGxJbnNlcnRUZXh0QXN5bmMoKTsKKyAgICB2b2lkIGRpZElu
c2VydFRleHRBc3luYygpOwogICAgIHZvaWQgaW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVudFJhbmdlLCBib29sIHJlZ2lzdGVy
VW5kb0dyb3VwID0gZmFsc2UsIEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyA9IEVkaXRpbmdSYW5n
ZUlzUmVsYXRpdmVUbzo6RWRpdGFibGVSb290KTsKICAgICB2b2lkIGdldE1hcmtlZFJhbmdlQXN5
bmMoc3RkOjpmdW5jdGlvbjx2b2lkIChFZGl0aW5nUmFuZ2UsIENhbGxiYWNrQmFzZTo6RXJyb3Ip
Pik7CiAgICAgdm9pZCBnZXRTZWxlY3RlZFJhbmdlQXN5bmMoc3RkOjpmdW5jdGlvbjx2b2lkIChF
ZGl0aW5nUmFuZ2UsIENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwZGJiMTRjZTAyM2Fm
Nzc5NzNiMjkzNjYxYWQxY2RhZTQ0ZTRlODAxLi5jNzFhMzRlOWExNjMwNmI5ODRjMmU0MmIyYjlk
OTIwZGU0OGJiNmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTQ2Miw0ICs0NjIsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
UHJveHkgewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBEaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0
ZSgpCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIERpZEluc2VydFRleHRBc3lu
YygpCisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaAppbmRleCA1MjU5ZmI1YjcyNWNhNDc2OTJlYWQ3YWE0ODU5MDEyMTNjN2FiNmU5Li44
NWM1NGNkNjAyNGI3OWZjOGM2YTQxYmM0ZGMwMGJhZjI3NDU5MGE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC0xNDAsNiArMTQwLDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0
IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKIAogICAgIFBhc3NSZWZQdHI8Vmlld1NuYXBz
aG90PiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsSW5zZXJ0VGV4
dEFzeW5jKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRJbnNlcnRUZXh0QXN5bmMoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2
ZVdlYldoZWVsRXZlbnQmKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRT
KQogICAgIHZvaWQgZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRp
dmVXZWJHZXN0dXJlRXZlbnQmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IDViNWExMjFhNjkzOTc2ZmY2MGExOGRiMjU1
NmY1ZjRiOTVlMjkyNTguLjZiZmIzYWI3NGQ1MGI3NmNhODIxODk3MjQxMDEwOGExYTYxNDg0Nzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpA
QCAtNDk1LDYgKzQ5NSwxNiBAQCBQYXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4gUGFnZUNsaWVudElt
cGw6OnRha2VWaWV3U25hcHNob3QoKQogICAgIHJldHVybiBtX2ltcGwtPnRha2VWaWV3U25hcHNo
b3QoKTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6d2lsbEluc2VydFRleHRBc3luYygpCit7
CisgICAgbV9pbXBsLT53aWxsSW5zZXJ0VGV4dEFzeW5jaHJvbm91c2x5KCk7Cit9CisKK3ZvaWQg
UGFnZUNsaWVudEltcGw6OmRpZEluc2VydFRleHRBc3luYygpCit7CisgICAgbV9pbXBsLT5kaWRJ
bnNlcnRUZXh0QXN5bmNocm9ub3VzbHkoKTsKK30KKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2Vs
ZWN0aW9uRGlkQ2hhbmdlKCkKIHsKICAgICBtX2ltcGwtPnNlbGVjdGlvbkRpZENoYW5nZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDAw
YjI4MWUyNGZkMzJiZmYyYzZiZjkwMzk5YjNhYjM3MzRkMmM3OWIuLmE2ZTdiYmZjMGRiYmU2ZDM5
NzZjOTdjYjljNTRmYmFkYjA2ZDcwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2MjksNiArNDYyOSw4IEBAIHZvaWQgV2ViUGFnZTo6
aW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiBy
ZXBsYWNlbWVuCiAgICAgICAgIGZyYW1lLmVkaXRvcigpLmluc2VydFRleHQodGV4dCwgbnVsbHB0
cik7CiAgICAgfSBlbHNlCiAgICAgICAgIGZyYW1lLmVkaXRvcigpLmNvbmZpcm1Db21wb3NpdGlv
bih0ZXh0KTsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkSW5zZXJ0VGV4
dEFzeW5jKCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmdldE1hcmtlZFJhbmdlQXN5bmModWludDY0
X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA0MWM0NzdhZjhhMTEyODBjYTE1ZmVlMDFhZmQ5NzNjZTNjYzM2Nzc3Li4yMjdk
MzhlN2ZlNjdjOTlmNGZjODU0NWQzMDExYTdkZDZkZmQyNmY2IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTYtMDkt
MTQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5z
ZXJ0aW5nIGEgc3BhY2UgYWZ0ZXIgaW5zZXJ0aW5nIGFuIGFjY2VwdGVkIGNhbmRpZGF0ZSBzY3Jv
bGxzIHRoZSBkb2N1bWVudCBhbmQgY2F1c2VzIGEgZmxpY2tlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyMDA5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yODA4NjIzNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRzIDIgbmV3IHRleHQgZWRpdGluZyBBUEkgdGVzdHMgY292ZXJpbmcgY2FuZGlk
YXRlIGluc2VydGlvbiwgYXMgd2VsbCBhcyBzdXBwb3J0IGluIENhbmRpZGF0ZVRlc3RzIGZvcgor
ICAgICAgICBzaW11bGF0aW5nIGtleSBwcmVzc2VzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evc3BhY2UtYWZ0ZXItaW5zZXJ0aW5nLWNhbmRp
ZGF0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9DYW5k
aWRhdGVUZXN0cy5tbToKKyAgICAgICAgKC1bQ2FuZGlkYXRlVGVzdE1lc3NhZ2VIYW5kbGVyIGlu
aXRXaXRoTWVzc2FnZTpoYW5kbGVyOl0pOgorICAgICAgICAoLVtDYW5kaWRhdGVUZXN0TWVzc2Fn
ZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOl0p
OgorICAgICAgICAoLVtUZXN0Q2FuZGlkYXRlIGluaXRXaXRoUmVwbGFjZW1lbnRTdHJpbmc6aW5S
YW5nZTpdKToKKyAgICAgICAgKC1bVGVzdENhbmRpZGF0ZSByZXBsYWNlbWVudFN0cmluZ10pOgor
ICAgICAgICAoLVtUZXN0Q2FuZGlkYXRlIHJlc3VsdFR5cGVdKToKKyAgICAgICAgKC1bVGVzdENh
bmRpZGF0ZSByYW5nZV0pOgorICAgICAgICAoLVtDYW5kaWRhdGVUZXN0V2ViVmlldyBwZXJmb3Jt
QWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOmFjdGlvbjpdKToKKyAgICAgICAgKC1bQ2FuZGlkYXRlVGVz
dFdlYlZpZXcgd2FpdEZvck1lc3NhZ2U6XSk6CisgICAgICAgICgtW0NhbmRpZGF0ZVRlc3RXZWJW
aWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6cmFuZ2U6XSk6CisgICAgICAg
ICgtW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZV0pOgor
ICAgICAgICAoLVtDYW5kaWRhdGVUZXN0V2ViVmlldyB0eXBlQ2hhcmFjdGVyOl0pOgorICAgICAg
ICAoLVtDYW5kaWRhdGVUZXN0V2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0Ol0p
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTYtMDktMTMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWEgY29udHJvbHMg
YmVoYXZlIHN0cmFuZ2VseSB3aGVuIGNoYW5naW5nIG1lZGlhIHNvdXJjZXMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggOGE0OWMzYmNiNzlhNDZkMDZjMGY5MTQ0MzhjNGJhNDk2Mzk0NjE5Ny4u
MGQ4N2VhNTliMGEyMWE4OTUyMDM1ZDZmOTc2ZDI4Yzk3MTA5ZjU2MSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTc4LDYgKzc4LDcgQEAKIAkJMkVGRjA2QzMxRDg4NjIxRTAwMDRCQjMwIC8q
IGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkMyMUQ4ODYyMTIwMDA0QkIzMCAvKiBsYXJn
ZS12aWRlby1vZmZzY3JlZW4uaHRtbCAqLzsgfTsKIAkJMkVGRjA2QzUxRDg4Njc3NjAwMDRCQjMw
IC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZDNDFEODg2NzcwMDAwNEJC
MzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovOyB9OwogCQkyRUZGMDZD
NzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZD
NjFEODg2QTU2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCAqLzsg
fTsKKwkJMkVGRjA2Q0QxRDhBNDI5QTAwMDRCQjMwIC8qIHNwYWNlLWFmdGVyLWluc2VydGluZy1j
YW5kaWRhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRUZGMDZDQzFEOEE0MjkxMDAwNEJCMzAgLyogc3BhY2UtYWZ0ZXItaW5zZXJ0
aW5nLWNhbmRpZGF0ZS5odG1sICovOyB9OwogCQkzM0JFNUFGOTEzN0I1QUFFMDA3MDU4MTMgLyog
TW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCRTVBRjgxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92
ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCAqLzsgfTsKIAkJMzNEQzg5MTIxNDE5NTVGRTAwNzQ3RUY3
IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzM0RDODkwRTE0MTk1MzkzMDA3NDdFRjcgLyogc2ltcGxlLWlm
cmFtZS5odG1sICovOyB9OwogCQkzM0RDODkxNDE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNl
bGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0RDODkxMzE0MTk1NzlGMDA3NDdFRjcgLyog
TG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgKi87IH07CkBA
IC01NDEsNiArNTQyLDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsK
IAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJMkVGRjA2Q0QxRDhB
NDI5QTAwMDRCQjMwIC8qIHNwYWNlLWFmdGVyLWluc2VydGluZy1jYW5kaWRhdGUuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQkyRUZGMDZDNzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdl
LXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRUZG
MDZDNTFEODg2Nzc2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFRkYwNkMzMUQ4ODYyMUUwMDA0QkIzMCAvKiBs
YXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTc4OSw2
ICs3OTEsNyBAQAogCQkyRUZGMDZDMjFEODg2MjEyMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zm
c2NyZWVuLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8tb2Zm
c2NyZWVuLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUZGMDZDNDFEODg2
NzcwMDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gImNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAv
KiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gImNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyRUZGMDZDQzFEOEE0MjkxMDAwNEJCMzAgLyogc3BhY2UtYWZ0ZXItaW5z
ZXJ0aW5nLWNhbmRpZGF0ZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gInNwYWNl
LWFmdGVyLWluc2VydGluZy1jYW5kaWRhdGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMzM0I5Q0UxMTI3N0YyMzEwMEZFRkNFMyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJldmVudEVtcHR5VXNl
ckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzNCRTVBRjQxMzdCNUE2
QzAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRl
ckNyYXNoX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
b3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNDY0LDYgKzE0NjcsNyBAQAogCQlBMTZGNjZCODFDNDBFOUUxMDBCRDREMjQgLyogUmVz
b3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQky
RUZGMDZDQzFEOEE0MjkxMDAwNEJCMzAgLyogc3BhY2UtYWZ0ZXItaW5zZXJ0aW5nLWNhbmRpZGF0
ZS5odG1sICovLAogCQkJCTJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8t
c291cmNlLW9uLWVuZC5odG1sICovLAogCQkJCTJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBj
aGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzIxRDg4NjIx
MjAwMDRCQjMwIC8qIGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sICovLApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evc3BhY2UtYWZ0ZXItaW5zZXJ0
aW5nLWNhbmRpZGF0ZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2Evc3BhY2UtYWZ0ZXItaW5zZXJ0aW5nLWNhbmRpZGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlZWRm
Mzc1Yzc2NTZhNmI3Y2RkMWFmZDVhODkyNjc2ZmQ4MDY0ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9zcGFjZS1hZnRlci1pbnNlcnRp
bmctY2FuZGlkYXRlLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPGh0bWw+CisKKzxoZWFkPgorICAg
IDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAg
IH0KKworICAgICAgICBpbnB1dCB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAg
ICAgIGhlaWdodDogNDAwcHg7CisgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MDAwcHg7Cisg
ICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKyAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkgeworICAgICAgICAgICAgdmFyIGlucHV0ID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKKyAgICAgICAgICAgIGlucHV0LnNldFNl
bGVjdGlvblJhbmdlKDAsIDApOworICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIGZvY3VzZWQoKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0
KCgpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCJmb2N1c2VkIiksIDApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaW5wdXQo
KSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJpbnB1dCIpLCAwKTsKKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9bG9hZGVkKCk+CisgICAgPGlu
cHV0IG9uZm9jdXM9Zm9jdXNlZCgpIG9uaW5wdXQ9aW5wdXQoKT48L2lucHV0PgorPC9ib2R5Pgor
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9DYW5k
aWRhdGVUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmRpZGF0ZVRl
c3RzLm1tCmluZGV4IGRmYWZlOTRmNTFhM2JjODNjOTE1ZDVhMTFmZjBkNmI1M2VjNzA0ZmYuLjU2
Y2NlZmYzZWQzZjYzNzMxNTZjMWZjNzAwZTU3OTBiYWM2NTAyMzUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmRpZGF0ZVRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmRpZGF0ZVRlc3RzLm1tCkBAIC0yNSw4ICsyNSwxMyBA
QAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpZiBQTEFURk9STShNQUMpCisjaW1wb3J0IDxD
YXJib24vQ2FyYm9uLmg+CisjZW5kaWYKKwogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIK
ICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
Vmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKQEAgLTM2
LDYgKzQxLDMzIEBAIHN0YXRpYyBib29sIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIHN0YXRpYyBi
b29sIGRpZENhbGxTaG93Q2FuZGlkYXRlcyA9IGZhbHNlOwogc3RhdGljIGJvb2wgY2FuZGlkYXRl
c1dlcmVSZXF1ZXN0ZWQgPSBmYWxzZTsKIAorQGludGVyZmFjZSBDYW5kaWRhdGVUZXN0TWVzc2Fn
ZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIENhbmRpZGF0ZVRlc3RNZXNzYWdlSGFuZGxlciB7CisgICAgZGlzcGF0Y2hf
YmxvY2tfdCBfaGFuZGxlcjsKKyAgICBOU1N0cmluZyAqX21lc3NhZ2U7Cit9CisKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBoYW5kbGVyOihkaXNw
YXRjaF9ibG9ja190KWhhbmRsZXIKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9oYW5kbGVyID0gW2hhbmRsZXIgY29weV07Cisg
ICAgX21lc3NhZ2UgPSBtZXNzYWdlOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQp
dXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250
ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICop
bWVzc2FnZQoreworICAgIGlmIChbKE5TU3RyaW5nICopW21lc3NhZ2UgYm9keV0gaXNFcXVhbFRv
U3RyaW5nOl9tZXNzYWdlXSAmJiBfaGFuZGxlcikKKyAgICAgICAgX2hhbmRsZXIoKTsKK30KKwor
QGVuZAorCiBAaW50ZXJmYWNlIERvTm90TGVha1dlYlZpZXcgOiBXZWJWaWV3CiBAZW5kCiAKQEAg
LTgyLDYgKzExNCwxMDAgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVyIGRpZEZp
bmlzaExvYWRGb3JGcmFtZTooV2ViRnJhbWUgKilmcmFtZQogCiBAZW5kCiAKK0BpbnRlcmZhY2Ug
VGVzdENhbmRpZGF0ZSA6IE5TVGV4dENoZWNraW5nUmVzdWx0CitAZW5kCisKK0BpbXBsZW1lbnRh
dGlvbiBUZXN0Q2FuZGlkYXRlIHsKKyAgICBOU1N0cmluZyAqX3N0cmluZzsKKyAgICBOU1Jhbmdl
IF9yYW5nZTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmVwbGFjZW1lbnRTdHJpbmc6
KE5TU3RyaW5nICopc3RyaW5nIGluUmFuZ2U6KE5TUmFuZ2UpcmFuZ2UKK3sKKyAgICBpZiAoc2Vs
ZiA9IFtzdXBlciBpbml0XSkgeworICAgICAgICBfc3RyaW5nID0gc3RyaW5nOworICAgICAgICBf
cmFuZ2UgPSByYW5nZTsKKyAgICB9CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKE5TU3RyaW5n
ICopcmVwbGFjZW1lbnRTdHJpbmcKK3sKKyAgICByZXR1cm4gX3N0cmluZzsKK30KKworLSAoTlNU
ZXh0Q2hlY2tpbmdUeXBlKXJlc3VsdFR5cGUKK3sKKyAgICByZXR1cm4gTlNUZXh0Q2hlY2tpbmdU
eXBlUmVwbGFjZW1lbnQ7Cit9CisKKy0gKE5TUmFuZ2UpcmFuZ2UKK3sKKyAgICByZXR1cm4gX3Jh
bmdlOworfQorCitAZW5kCisKK0BpbnRlcmZhY2UgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgOiBXS1dl
YlZpZXcKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIENhbmRpZGF0ZVRlc3RXZWJWaWV3IHsKKyAg
ICBib29sIF9pc0RvbmVXYWl0aW5nRm9yQ2FuZGlkYXRlOworfQorCistICh2b2lkKXBlcmZvcm1B
ZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3BhdGNo
X2Jsb2NrX3QpYWN0aW9uCit7CisgICAgUmV0YWluUHRyPENhbmRpZGF0ZVRlc3RNZXNzYWdlSGFu
ZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tDYW5kaWRhdGVUZXN0TWVzc2FnZUhhbmRsZXIgYWxs
b2NdIGluaXRXaXRoTWVzc2FnZTptZXNzYWdlIGhhbmRsZXI6YWN0aW9uXSk7CisgICAgV0tVc2Vy
Q29udGVudENvbnRyb2xsZXIqIGNvbnRlbnRDb250cm9sbGVyID0gW1tzZWxmIGNvbmZpZ3VyYXRp
b25dIHVzZXJDb250ZW50Q29udHJvbGxlcl07CisgICAgW2NvbnRlbnRDb250cm9sbGVyIHJlbW92
ZVNjcmlwdE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTpAInRlc3RIYW5kbGVyIl07CisgICAgW2NvbnRl
bnRDb250cm9sbGVyIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpA
InRlc3RIYW5kbGVyIl07Cit9CisKKy0gKHZvaWQpd2FpdEZvck1lc3NhZ2U6KE5TU3RyaW5nICop
bWVzc2FnZQoreworICAgIF9fYmxvY2sgYm9vbCBpc0RvbmVXYWl0aW5nID0gZmFsc2U7CisgICAg
W3NlbGYgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTptZXNzYWdlIGFjdGlvbjpeKCkKKyAg
ICB7CisgICAgICAgIGlzRG9uZVdhaXRpbmcgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lV2FpdGluZyk7Cit9CisKKy0gKHZvaWQpaW5zZXJ0Q2Fu
ZGlkYXRlc0FuZFdhaXRGb3JSZXNwb25zZTooTlNTdHJpbmcgKilyZXBsYWNlbWVudFN0cmluZyBy
YW5nZTooTlNSYW5nZSlyYW5nZQoreworICAgIF9pc0RvbmVXYWl0aW5nRm9yQ2FuZGlkYXRlID0g
ZmFsc2U7CisgICAgW3NlbGYgX2hhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOltbVGVzdENhbmRpZGF0
ZSBhbGxvY10gaW5pdFdpdGhSZXBsYWNlbWVudFN0cmluZzpyZXBsYWNlbWVudFN0cmluZyBpblJh
bmdlOnJhbmdlXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZfaXNEb25lV2FpdGlu
Z0ZvckNhbmRpZGF0ZSk7Cit9CisKKy0gKHZvaWQpX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRl
Cit7CisgICAgX2lzRG9uZVdhaXRpbmdGb3JDYW5kaWRhdGUgPSB0cnVlOworfQorCistICh2b2lk
KXR5cGVDaGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyIHsKKyAgICBOU1N0cmluZyAqY2hhcmFjdGVy
QXNTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVjIiAsIGNoYXJhY3Rlcl07
CisgICAgW3NlbGYga2V5RG93bjpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
S2V5RG93biBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdl
dEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBjaGFyYWN0ZXJz
OmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJB
c1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKKyAgICBbc2VsZiBrZXlV
cDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAgbG9jYXRpb246TlNa
ZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkg
d2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJBc1N0cmluZyBj
aGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVyQXNTdHJpbmcgaXNBUmVwZWF0Ok5P
IGtleUNvZGU6Y2hhcmFjdGVyXV07Cit9CisKKy0gKE5TU3RyaW5nICopc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDooTlNTdHJpbmcgKilzY3JpcHQKK3sKKyAgICBfX2Jsb2NrIGJvb2wgaXNX
YWl0aW5nRm9ySmF2YVNjcmlwdCA9IGZhbHNlOworICAgIF9fYmxvY2sgTlNTdHJpbmcgKmV2YWxS
ZXN1bHQgPSBuaWw7CisgICAgW3NlbGYgZXZhbHVhdGVKYXZhU2NyaXB0OnNjcmlwdCBjb21wbGV0
aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpCisgICAgeworICAgICAgICBl
dmFsUmVzdWx0ID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQCIsIHJlc3VsdF07Cisg
ICAgICAgIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSB0cnVlOworICAgICAgICBFWFBFQ1RfVFJV
RSghZXJyb3IpOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc1dh
aXRpbmdGb3JKYXZhU2NyaXB0KTsKKyAgICByZXR1cm4gZXZhbFJlc3VsdDsKK30KKworQGVuZAor
CiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoQ2FuZGlkYXRlVGVzdHMsIERJU0FC
TEVEX0RvTm90TGVha1ZpZXdUaGF0TG9hZHNFZGl0YWJsZUFyZWEpCkBAIC0xNDMsNiArMjY5LDQ1
IEBAIFRFU1QoQ2FuZGlkYXRlVGVzdHMsIERvTm90UmVxdWVzdENhbmRpZGF0ZXNGb3JQYXNzd29y
ZElucHV0KQogICAgIEVYUEVDVF9GQUxTRShjYW5kaWRhdGVzV2VyZVJlcXVlc3RlZCk7CiB9CiAK
K1RFU1QoQ2FuZGlkYXRlVGVzdHMsIFNvZnRTcGFjZVJlcGxhY2VtZW50QWZ0ZXJDYW5kaWRhdGVJ
bnNlcnRpb25Eb2VzTm90U2Nyb2xsKQoreworICAgIENhbmRpZGF0ZVRlc3RXZWJWaWV3ICp3a1dl
YlZpZXcgPSBbW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApXTsKKworICAgIE5TVVJMICpjb250ZW50VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNwYWNlLWFmdGVyLWluc2VydGluZy1j
YW5kaWRhdGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOworICAgIFt3a1dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpjb250ZW50VVJMXV07CisKKyAgICBbd2tXZWJWaWV3IHdhaXRGb3JN
ZXNzYWdlOkAiZm9jdXNlZCJdOworICAgIFt3a1dlYlZpZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0
ZXNdOworICAgIFt3a1dlYlZpZXcgaW5zZXJ0Q2FuZGlkYXRlc0FuZFdhaXRGb3JSZXNwb25zZTpA
ImFwcGxlICIgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwgMCldOworCisgICAgRVhQRUNUX1RSVUUoW1t3
a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ2lucHV0JykudmFsdWUiXSBpc0VxdWFsVG9TdHJpbmc6QCJhcHBsZSAiXSk7CisKKyAg
ICBbd2tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6JyAnXTsKKyAgICBbd2tXZWJWaWV3IHdhaXRGb3JN
ZXNzYWdlOkAiaW5wdXQiXTsKKworICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZh
bHVlIl0gaXNFcXVhbFRvU3RyaW5nOkAiYXBwbGUgIl0pOworICAgIEVYUEVDVF9FUShbW3drV2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5zY3JvbGxU
b3AiXSBkb3VibGVWYWx1ZV0sIDApOworfQorCitURVNUKENhbmRpZGF0ZVRlc3RzLCBJbnNlcnRD
aGFyYWN0ZXJzQWZ0ZXJDYW5kaWRhdGVJbnNlcnRpb25XaXRoU29mdFNwYWNlKQoreworICAgIENh
bmRpZGF0ZVRlc3RXZWJWaWV3ICp3a1dlYlZpZXcgPSBbW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXTsKKworICAgIE5T
VVJMICpjb250ZW50VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
InNwYWNlLWFmdGVyLWluc2VydGluZy1jYW5kaWRhdGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworICAgIFt3a1dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpjb250ZW50VVJMXV07CisK
KyAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiZm9jdXNlZCJdOworICAgIFt3a1dlYlZp
ZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNdOworICAgIFt3a1dlYlZpZXcgaW5zZXJ0Q2FuZGlk
YXRlc0FuZFdhaXRGb3JSZXNwb25zZTpAImZvbyAiIHJhbmdlOk5TTWFrZVJhbmdlKDAsIDApXTsK
KworICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlIl0gaXNFcXVhbFRvU3Ry
aW5nOkAiZm9vICJdKTsKKworICAgIFt3a1dlYlZpZXcgdHlwZUNoYXJhY3RlcjonYSddOworICAg
IFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJpbnB1dCJdOworCisgICAgRVhQRUNUX1RSVUUo
W1t3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJ2lucHV0JykudmFsdWUiXSBpc0VxdWFsVG9TdHJpbmc6QCJmb28gYSJdKTsKK30K
KwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTIwMAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288959</attachid>
            <date>2016-09-15 09:45:33 -0700</date>
            <delta_ts>2016-09-15 09:58:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162009-20160915094255.patch</filename>
            <type>text/plain</type>
            <size>80644</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWIxMzhkNTU1OWRiNGMx
MmVjMjVhMDFmYzkyYjk5YzhkM2YyZGFiZC4uZDUzY2Y1ODhhNjgxYjdjYmI1NWFjZmE1MjgxN2Vj
MWJiZDI5ZWE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE2LTA5LTE1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEluc2VydGluZyBh
IHNwYWNlIGFmdGVyIGluc2VydGluZyBhbiBhY2NlcHRlZCBjYW5kaWRhdGUgc2Nyb2xscyB0aGUg
ZG9jdW1lbnQgYW5kIGNhdXNlcyBhIGZsaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjAwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgw
ODYyMzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWZ0ZXIgaW5zZXJ0aW5nIGEgdGV4dCBjYW5kaWRhdGUsIGlmIHRoZSBjYW5kaWRhdGUgZW5kZWQg
d2l0aCBhIHNvZnQgc3BhY2UsIHRoZSBuZXh0IHNwYWNlIHdlIGluc2VydCBzaG91bGQganVzdAor
ICAgICAgICByZXBsYWNlIHRoZSBzb2Z0IHNwYWNlLiBUaGlzIGN1cnJlbnRseSB3b3JrcyBiZWNh
dXNlIHdlIGxlYXZlIHRoZSB0ZXh0IGluc2VydGlvbiBvdXQgb2YgdGhlIGxpc3Qgb2YKKyAgICAg
ICAgS2V5cHJlc3NDb21tYW5kcyBzZW50IHRvIHRoZSB3ZWIgcHJvY2VzcyBhbmQgaW5zdGVhZCBy
ZXBsYWNlIHRoZSBzb2Z0IHNwYWNlIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMuCisgICAg
ICAgIEhvd2V2ZXIsIHRoaXMgbWVhbnMgd2hlbiB0aGUgd2ViIHByb2Nlc3MgaGFuZGxlcyB0aGlz
IGtleWRvd24gZXZlbnQsIHRoZSBjdXJyZW50IGVkaXRvciB3aWxsIG5vdCBoYW5kbGUgaXQsCisg
ICAgICAgIHNpbmNlIHRoZSBsaXN0IG9mIGtleSBjb21tYW5kcyBpcyBlbXB0eSBkZXNwaXRlIHRo
ZSB0ZXh0IGFuZCB1bm1vZGlmaWVkIHRleHQgYmVpbmcgbm9uLWVtcHR5LgorCisgICAgICAgIFRv
IGZpeCB0aGlzLCB3aGVuIHNlbmRpbmcga2V5ZG93biBvciBrZXl1cCBldmVudHMgd2hlcmUgd2Ug
cmVwbGFjZSBhIHNvZnQgc3BhY2UsIHdlIHNldCB0aGUga2V5IGV2ZW50J3MgdGV4dCB0bworICAg
ICAgICBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiBhIHNwYWNlLiBUaGlzIGFsbG93cyB1cyB0
byByZXR1cm4gZWFybHkgaW4gRXZlbnRIYW5kbGVyOjprZXlFdmVudCBhbmQgYXZvaWQgdGhlCisg
ICAgICAgIGNvZGVwYXRoIHRoYXQgdHJpZXMgdG8gaW5zZXJ0IHRleHQgaW50byB0aGUgY3VycmVu
dCBlZGl0b3IgYW5kIChpbiB0aGUgY2FzZSBvZiBpbnNlcnRpbmcgYSAnICcpIHNjcm9sbHMgdGhl
CisgICAgICAgIGRvY3VtZW50IGlmIG5lY2Vzc2FyeS4gU2luY2Ugd2UndmUgYWxyZWFkeSBoYW5k
bGVkIHRleHQgaW5zZXJ0aW9uIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMsIHRoZXJlIGlz
IG5vIG5lZWQKKyAgICAgICAgdG8gYWxzbyBkaXNwYXRjaCB0aGUga2V5cHJlc3MgdG8gdGhlIGVk
aXRvci4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGZsaWNr
ZXJpbmcgaW4gdGhlIGNhbmRpZGF0ZXMgVUkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgd2UncmUgYXN5
bmNocm9ub3VzbHkKKyAgICAgICAgcmVwbGFjaW5nIHRoZSBsYXN0IHNvZnQgc3BhY2UuIER1cmlu
ZyB0aGlzIG9wZXJhdGlvbiwgd2Ugc2VsZWN0IHRoZSByYW5nZSBvZiB0aGUgc29mdCBzcGFjZSBh
bmQgdGhlbiBpbnNlcnQgdGhlCisgICAgICAgIG5ldyB0ZXh0LiBUaGlzIGNhdXNlcyBhIG1vbWVu
dGFyeSByYW5nZSBzZWxlY3Rpb24gd2hpY2ggdGhlIHdlYiBwcm9jZXNzIG5vdGlmaWVzIHRoZSBV
SSBwcm9jZXNzIGFib3V0LCBwcm9tcHRpbmcKKyAgICAgICAgdXMgdG8gaGlkZSB0aGUgY2FuZGlk
YXRlcyBsaXN0LiBUbyBhZGRyZXNzIHRoaXMsIHdlIHB1dCBndWFyZHMgYXJvdW5kIHRoaXMgcHJv
Y2VzcyBvZiBhc3luY2hyb25vdXMgdGV4dAorICAgICAgICBpbnNlcnRpb24gYW5kIG1ha2Ugc3Vy
ZSB0aGF0IHdlIGRvbid0IHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY2FuZGlkYXRlcyBs
aXN0IGR1cmluZyB0aGlzIHRpbWUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIDIgbmV3IFdl
YktpdCBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dC5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaDoKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6dGV4
dEZyb21FdmVudCk6CisgICAgICAgIChXZWJLaXQ6OnVubW9kaWZpZWRUZXh0RnJvbUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYW5k
bGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2U6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc0lu
c2VydGluZ1RleHRBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp3aWxsSW5zZXJ0VGV4dEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmRpZEluc2VydFRleHRBc3luY2hyb25vdXNseSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Zm9y
Y2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6ZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6aW5zZXJ0VGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3Jt
S2V5RXF1aXZhbGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlVcCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlEb3duKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRJbnNlcnRUZXh0QXN5bmMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6Omluc2VydFRleHRBc3luYyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjp3aWxsSW5zZXJ0VGV4dEFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OmRpZEluc2VydFRleHRBc3luYyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbnNlcnRUZXh0QXN5
bmMpOgorCiAyMDE2LTA5LTE0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIE1lZGlhIGNvbnRyb2xzIGJlaGF2ZSBzdHJhbmdlbHkgd2hlbiBjaGFuZ2lu
ZyBtZWRpYSBzb3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJv
YXJkRXZlbnQuaAppbmRleCAyM2NjNzRhNWM4ODE4NGE2NzgyODYwNzNlODI2ZDQwZDhlNzJkM2Vi
Li4yMmNhNjFlMzRjOGZiYThhMTQyNzNlMDYzY2Y0M2RhNTUwOTUxYTRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKQEAgLTYwLDcgKzYwLDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50IDogcHVi
bGljIFdlYktleWJvYXJkRXZlbnQgewogcHVibGljOgogI2lmIFVTRShBUFBLSVQpCi0gICAgTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICosIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+Jik7CisgICAgTmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudChOU0V2ZW50ICosIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJvb2wg
cmVwbGFjZXNTb2Z0U3BhY2UsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+
Jik7CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChjb25z
dCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50Jik7CiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChH
ZGtFdmVudCosIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYsIElucHV0TWV0aG9k
RmlsdGVyOjpFdmVudEZha2VkRm9yQ29tcG9zaXRpb24sIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFu
ZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9OYXRpdmVXZWJLZXli
b2FyZEV2ZW50TWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9OYXRpdmVXZWJLZXli
b2FyZEV2ZW50TWFjLm1tCmluZGV4IGFmYjNiNjA3MTBjNmFiZGE4ZWM2NjhkY2ZiNTVmNWVhYWNm
YjJlN2YuLjZmNTljYmI0MzgyODMyZjA1MjdjNzE1ZWVkNmNhZTcyMDYzMmRhMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL05hdGl2ZVdlYktleWJvYXJkRXZlbnRN
YWMubW0KQEAgLTM1LDggKzM1LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1OYXRpdmVXZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBW
ZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpCi0gICAgOiBXZWJLZXlib2FyZEV2ZW50
KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5
SW5wdXRNZXRob2QsIGNvbW1hbmRzKSkKK05hdGl2ZVdlYktleWJvYXJkRXZlbnQ6Ok5hdGl2ZVdl
YktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2UsIGNvbnN0IFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+JiBj
b21tYW5kcykKKyAgICA6IFdlYktleWJvYXJkRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVX
ZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgcmVwbGFjZXNTb2Z0
U3BhY2UsIGNvbW1hbmRzKSkKICAgICAsIG1fbmF0aXZlRXZlbnQoZXZlbnQpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaAppbmRleCA1OTk5NWY4NzNm
NDM0Mjk0YTQ4ODQyNjU1NWYxYTZmZjc2ZGIzY2Q1Li5iZTg3MmNlYjY4YTVhY2NmN2JjNmJmYWJk
MjFkMjM0ZGRkOTY0MjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dl
YkV2ZW50RmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRG
YWN0b3J5LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogI2lmIFVTRShBUFBLSVQpCiAgICAg
c3RhdGljIFdlYk1vdXNlRXZlbnQgY3JlYXRlV2ViTW91c2VFdmVudChOU0V2ZW50ICosIE5TRXZl
bnQgKmxhc3RQcmVzc3VyZUV2ZW50LCBOU1ZpZXcgKndpbmRvd1ZpZXcpOwogICAgIHN0YXRpYyBX
ZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldoZWVsRXZlbnQoTlNFdmVudCAqLCBOU1ZpZXcgKndpbmRv
d1ZpZXcpOwotICAgIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZl
bnQoTlNFdmVudCAqLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6S2V5cHJlc3NDb21tYW5kPiYpOworICAgIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50IGNy
ZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9k
LCBib29sIHJlcGxhY2VzU29mdFNwYWNlLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiYpOwogICAgIHN0YXRpYyBib29sIHNob3VsZEJlSGFuZGxlZEFzQ29udGV4dENsaWNr
KGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudCYpOwogI2VuZGlmIC8vIFVTRShBUFBL
SVQpCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZh
Y3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpp
bmRleCA1YmRiYzhmZDZkZTE4OTEwNTk0NDVmNDQ0NTcxYWYzYjZjYTc0Mjg2Li41ZjNiYTkyOGJm
YjE4ZWFiYmNjNTVhNTg1NWU3YTU2NjY5YWJhM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAtMjM2LDggKzIzNiwxMCBAQCBzdGF0aWMgV2Vi
V2hlZWxFdmVudDo6UGhhc2UgbW9tZW50dW1QaGFzZUZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJXaGVlbEV2ZW50OjpQaGFzZT4ocGhhc2UpOwogfQog
Ci1zdGF0aWMgaW5saW5lIFN0cmluZyB0ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50KQorc3Rh
dGljIGlubGluZSBTdHJpbmcgdGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCByZXBs
YWNlc1NvZnRTcGFjZSkKIHsKKyAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCisgICAgICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgog
ICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCkBAIC0yNDYsOCArMjQ4LDEw
IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQpCiAg
ICAgcmV0dXJuIFN0cmluZyhbZXZlbnQgY2hhcmFjdGVyc10pOwogfQogCi1zdGF0aWMgaW5saW5l
IFN0cmluZyB1bm1vZGlmaWVkVGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCkKK3N0YXRpYyBp
bmxpbmUgU3RyaW5nIHVubW9kaWZpZWRUZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50LCBib29s
IHJlcGxhY2VzU29mdFNwYWNlKQogeworICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKKyAgICAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAog
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlv
bnMiCiAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKQEAgLTQ1NywxMSAr
NDYxLDExIEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2
ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgcmV0dXJuIFdlYldoZWVsRXZl
bnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2ludChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBv
c2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NY
LCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Us
IHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBzY3JvbGxD
b3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7
CiB9CiAKLVdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpCitXZWJLZXlib2FyZEV2
ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVu
dCwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSwgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQogewogICAgIFdl
YkV2ZW50OjpUeXBlIHR5cGUgICAgICAgICAgICAgPSBpc0tleVVwRXZlbnQoZXZlbnQpID8gV2Vi
RXZlbnQ6OktleVVwIDogV2ViRXZlbnQ6OktleURvd247Ci0gICAgU3RyaW5nIHRleHQgICAgICAg
ICAgICAgICAgICAgICA9IHRleHRGcm9tRXZlbnQoZXZlbnQpOwotICAgIFN0cmluZyB1bm1vZGlm
aWVkVGV4dCAgICAgICAgICAgPSB1bm1vZGlmaWVkVGV4dEZyb21FdmVudChldmVudCk7CisgICAg
U3RyaW5nIHRleHQgICAgICAgICAgICAgICAgICAgICA9IHRleHRGcm9tRXZlbnQoZXZlbnQsIHJl
cGxhY2VzU29mdFNwYWNlKTsKKyAgICBTdHJpbmcgdW5tb2RpZmllZFRleHQgICAgICAgICAgID0g
dW5tb2RpZmllZFRleHRGcm9tRXZlbnQoZXZlbnQsIHJlcGxhY2VzU29mdFNwYWNlKTsKICAgICBT
dHJpbmcga2V5SWRlbnRpZmllciAgICAgICAgICAgID0ga2V5SWRlbnRpZmllckZvcktleUV2ZW50
KGV2ZW50KTsKICAgICBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlICAgICAgID0gd2luZG93c0tl
eUNvZGVGb3JLZXlFdmVudChldmVudCk7CiAgICAgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlICAg
ICAgICA9IFtldmVudCBrZXlDb2RlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMmI4NDQ5ODYyYTRiNzRkODU2ODE4MTQxYTdiYzk3
OGQwYzRhOTNiNi4uZDM4OTZhNjJmZTUzZGUyM2ZiZmFiMWE1MWEwMmM3YzYwODg4MDQ5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAg
LTQ1NjQsNiArNDU2NCwyMyBAQCAtICh2b2lkKV9oYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVz
cG9uc2U6KE5TU3RyaW5nICopaWRlbnRpZmllcgogewogICAgIC8vIE92ZXJyaWRkZW4gYnkgc3Vi
Y2xhc3Nlcy4KIH0KKworLSAodm9pZClfaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGU6KE5TVGV4dENo
ZWNraW5nUmVzdWx0ICopY2FuZGlkYXRlCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEyMDAKKyAgICBfaW1wbC0+aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoY2Fu
ZGlkYXRlKTsKKyNlbmRpZgorfQorCistICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0
ZQoreworICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KK30KKworLSAodm9pZClfZm9y
Y2VSZXF1ZXN0Q2FuZGlkYXRlcworeworICAgIF9pbXBsLT5mb3JjZVJlcXVlc3RDYW5kaWRhdGVz
Rm9yVGVzdGluZygpOworfQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogLy8gRXhlY3V0ZSB0
aGUgc3VwcGxpZWQgYmxvY2sgYWZ0ZXIgdGhlIG5leHQgdHJhbnNhY3Rpb24gZnJvbSB0aGUgV2Vi
UHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKaW5kZXggM2MzNDMzYzNkMTBlNzFhNjFhZGZhY2MzOWZlNWJkMDgx
NmVhYTgxNy4uZTA1NTE2NTc5NzFjNWI3ZTgwYmFmNDZhNTYyYTQ5YjY4MjViZGQ0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmgKQEAgLTI3Myw2ICsyNzMsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJ
bW1lZGlhdGVBY3Rpb25UeXBlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEyKSk7CiAtICh2b2lkKV9yZXF1ZXN0Q29udHJvbGxlZEVsZW1lbnRJRCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAtICh2b2lkKV9oYW5kbGVDb250cm9sbGVk
RWxlbWVudElEUmVzcG9uc2U6KE5TU3RyaW5nICopaWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZToo
TlNUZXh0Q2hlY2tpbmdSZXN1bHQgKiljYW5kaWRhdGU7CistICh2b2lkKV9kaWRIYW5kbGVBY2Nl
cHRlZENhbmRpZGF0ZTsKKy0gKHZvaWQpX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXM7CiAjZW5kaWYK
IAogLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQp
KXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggNDk5
NDNmMTZjYjVlZGMzNWU5Y2E3Njk1Njc2ZGE4MzA3ZWQ4ODQ0Zi4uY2JkMTc1NWNjZjAxNzhhODYx
ZDdlYTllZjk4MTA2Y2I3Mjk1YmM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmgKQEAgLTg0LDYgKzg0LDcgQEAgT0JKQ19DTEFTUyBfV0tUaHVtYm5h
aWxWaWV3OwogQG9wdGlvbmFsCiAtICh2b2lkKV93ZWJfZGlkQWRkTWVkaWFDb250cm9sc01hbmFn
ZXI6KGlkKWNvbnRyb2xzTWFuYWdlcjsKIC0gKHZvaWQpX3dlYl9kaWRSZW1vdmVNZWRpYUNvbnRy
b2xzTWFuYWdlcjsKKy0gKHZvaWQpX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOwogCiBAZW5k
CiAKQEAgLTM1OSw2ICszNjAsMTAgQEAgcHVibGljOgogICAgIE5TU3RyaW5nICpzdHJpbmdGb3JU
b29sVGlwKE5TVG9vbFRpcFRhZyB0YWcpOwogICAgIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3Qg
U3RyaW5nJiBvbGRUb29sVGlwLCBjb25zdCBTdHJpbmcmIG5ld1Rvb2xUaXApOwogCisgICAgYm9v
bCBpc0luc2VydGluZ1RleHRBc3luY2hyb25vdXNseSgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbnNl
cnRpbmdUZXh0QXN5bmNocm9ub3VzbHk7IH0KKyAgICB2b2lkIHdpbGxJbnNlcnRUZXh0QXN5bmNo
cm9ub3VzbHkoKSB7IG1faXNJbnNlcnRpbmdUZXh0QXN5bmNocm9ub3VzbHkgPSB0cnVlOyB9Cisg
ICAgdm9pZCBkaWRJbnNlcnRUZXh0QXN5bmNocm9ub3VzbHkoKSB7IG1faXNJbnNlcnRpbmdUZXh0
QXN5bmNocm9ub3VzbHkgPSBmYWxzZTsgfQorCiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nUm9vdExheWVyKENBTGF5ZXIgKik7CiAgICAgQ0FMYXllciAqYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpOyB9CiAK
QEAgLTQ3OCw2ICs0ODMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByaWdodE1vdXNlVXAoTlNFdmVu
dCAqKTsKIAogICAgIHZvaWQgdXBkYXRlV2ViVmlld0ltcGxBZGRpdGlvbnMoKTsKKyAgICB2b2lk
IGZvcmNlUmVxdWVzdENhbmRpZGF0ZXNGb3JUZXN0aW5nKCk7CiAgICAgYm9vbCBzaG91bGRSZXF1
ZXN0Q2FuZGlkYXRlcygpIGNvbnN0OwogICAgIHZvaWQgc2hvd0NhbmRpZGF0ZXMoTlNBcnJheSAq
Y2FuZGlkYXRlcywgTlNTdHJpbmcgKiwgTlNSZWN0IHJlY3RPZlR5cGVkU3RyaW5nLCBOU1Jhbmdl
IHNlbGVjdGVkUmFuZ2UsIE5TVmlldyAqLCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKE5TVGV4
dENoZWNraW5nUmVzdWx0ICphY2NlcHRlZENhbmRpZGF0ZSkpOwogICAgIHZvaWQgd2ViVmlld0lt
cGxBZGRpdGlvbnNXaWxsRGVzdHJveVZpZXcoKTsKQEAgLTY0OSw2ICs2NTUsOCBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc0hhbmRsaW5nQWNjZXB0ZWRDYW5kaWRhdGUgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyIHsgZmFs
c2UgfTsKICAgICBib29sIG1fZWRpdGFibGVFbGVtZW50SXNGb2N1c2VkIHsgZmFsc2UgfTsKKyAg
ICBib29sIG1faXNJbnNlcnRpbmdUZXh0QXN5bmNocm9ub3VzbHkgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgeyBmYWxzZSB9OwogfTsKICAg
ICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDY1MTY5ZWQ5M2U0ZDAyNTAzZmYxMzQ1ZjIwZGUwOTMw
OTRmODMwYTEuLjc4ZTY3MjNhNWRmYzk5NjRiMTFiMDlhZTBiMzcxZGQxMGU5M2VkOGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTQ0MSw2
ICs0NDEsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlV2ViVmlld0ltcGxBZGRpdGlvbnMo
KQogewogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpmb3JjZVJlcXVlc3RDYW5kaWRhdGVzRm9yVGVz
dGluZygpCit7Cit9CisKIGJvb2wgV2ViVmlld0ltcGw6OnNob3VsZFJlcXVlc3RDYW5kaWRhdGVz
KCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CkBAIC02MjAsNyArNjI0LDcgQEAgYm9vbCBX
ZWJWaWV3SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIoKQogICAgICAgICBpZiAoW2V2ZW50IHR5
cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkKICAgICAgICAgICAg
IGtleWJvYXJkRXZlbnQgPSBldmVudDsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAg
ICAgICAgbV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5nTmV4
dCwga2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9hcmRF
dmVudCwgZmFsc2UsIHsgfSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsK
KyAgICAgICAgbV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5n
TmV4dCwga2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9h
cmRFdmVudCwgZmFsc2UsIGZhbHNlLCB7IH0pLCBbXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJy
b3IpIHsgfSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjQzNiw2ICsyNDQwLDkg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ2hhbmdlQ29udGVudFNpemUoQ0dTaXplIG5ld1NpemUp
CiB2b2lkIFdlYlZpZXdJbXBsOjpkaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSgpCiB7CiAgICAg
bV9pc0hhbmRsaW5nQWNjZXB0ZWRDYW5kaWRhdGUgPSBmYWxzZTsKKworICAgIGlmIChbbV92aWV3
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRl
KV0pCisgICAgICAgIFttX3ZpZXcgX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlXTsKIH0KIAog
dm9pZCBXZWJWaWV3SW1wbDo6dmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKQpAQCAtMzU2
NywxMyArMzU3NCwxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnNlcnRUZXh0KGlkIHN0cmluZywg
TlNSYW5nZSByZXBsYWNlbWVudFJhbmdlKQogICAgIH0gZWxzZQogICAgICAgICB0ZXh0ID0gc3Ry
aW5nOwogCi0gICAgQk9PTCBuZWVkVG9SZW1vdmVTb2Z0U3BhY2UgPSBOTzsKKyAgICBtX2lzVGV4
dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA9IGZhbHNlOwogI2lmIEhBVkUoQURWQU5DRURf
U1BFTExfQ0hFQ0tJTkcpCiAgICAgaWYgKG1fc29mdFNwYWNlUmFuZ2UubG9jYXRpb24gIT0gTlNO
b3RGb3VuZCAmJiAocmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlvbiA9PSBOU01heFJhbmdlKG1fc29m
dFNwYWNlUmFuZ2UpIHx8IHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkg
JiYgcmVwbGFjZW1lbnRSYW5nZS5sZW5ndGggPT0gMCAmJiBbW05TU3BlbGxDaGVja2VyIHNoYXJl
ZFNwZWxsQ2hlY2tlcl0gZGVsZXRlc0F1dG9zcGFjZUJlZm9yZVN0cmluZzp0ZXh0IGxhbmd1YWdl
Om5pbF0pIHsKICAgICAgICAgcmVwbGFjZW1lbnRSYW5nZSA9IG1fc29mdFNwYWNlUmFuZ2U7Ci0g
ICAgICAgIG5lZWRUb1JlbW92ZVNvZnRTcGFjZSA9IFlFUzsKKyAgICAgICAgbV9pc1RleHRJbnNl
cnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgPSB0cnVlOwogICAgIH0KICNlbmRpZgorCiAgICAgbV9z
b2Z0U3BhY2VSYW5nZSA9IE5TTWFrZVJhbmdlKE5TTm90Rm91bmQsIDApOwogCiAgICAgLy8gaW5z
ZXJ0VGV4dCBjYW4gYmUgY2FsbGVkIGZvciBzZXZlcmFsIHJlYXNvbnM6CkBAIC0zNTgyLDcgKzM1
OTAsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnNlcnRUZXh0KGlkIHN0cmluZywgTlNSYW5nZSBy
ZXBsYWNlbWVudFJhbmdlKQogICAgIC8vIC0gSWYgaXQncyBzZW50IG91dHNpZGUgb2Yga2V5Ym9h
cmQgZXZlbnQgcHJvY2Vzc2luZyAoZS5nLiBmcm9tIENoYXJhY3RlciBWaWV3ZXIsIG9yIHdoZW4g
Y29uZmlybWluZyBhbiBpbmxpbmUgaW5wdXQgYXJlYSB3aXRoIGEgbW91c2UpLAogICAgIC8vIHRo
ZW4gd2UgYWxzbyBleGVjdXRlIGl0IGltbWVkaWF0ZWx5LCBhcyB0aGVyZSB3aWxsIGJlIG5vIG90
aGVyIGNoYW5jZS4KICAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPioga2V5cHJl
c3NDb21tYW5kcyA9IG1fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5kczsKLSAgICBpZiAoa2V5cHJl
c3NDb21tYW5kcyAmJiAhbmVlZFRvUmVtb3ZlU29mdFNwYWNlKSB7CisgICAgaWYgKGtleXByZXNz
Q29tbWFuZHMgJiYgIW1faXNUZXh0SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlKSB7CiAgICAg
ICAgIEFTU0VSVChyZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQpOwogICAg
ICAgICBXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQgY29tbWFuZCgiaW5zZXJ0VGV4dDoiLCB0ZXh0
KTsKICAgICAgICAga2V5cHJlc3NDb21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOwpAQCAtMzU5Niw3
ICszNjA0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJpbmcsIE5TUmFu
Z2UgcmVwbGFjZW1lbnRSYW5nZSkKICAgICBpZiAoIWRpY3RhdGlvbkFsdGVybmF0aXZlcy5pc0Vt
cHR5KCkpCiAgICAgICAgIG1fcGFnZS0+aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoZXZlbnRUZXh0
LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMsIHJlZ2lzdGVyVW5kb0dy
b3VwKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGFnZS0+aW5zZXJ0VGV4dEFzeW5jKGV2ZW50VGV4
dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXAsIG5lZWRUb1JlbW92ZVNvZnRT
cGFjZSA/IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbzo6UGFyYWdyYXBoIDogRWRpdGluZ1Jhbmdl
SXNSZWxhdGl2ZVRvOjpFZGl0YWJsZVJvb3QpOworICAgICAgICBtX3BhZ2UtPmluc2VydFRleHRB
c3luYyhldmVudFRleHQsIHJlcGxhY2VtZW50UmFuZ2UsIHJlZ2lzdGVyVW5kb0dyb3VwLCBtX2lz
VGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA/IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVU
bzo6UGFyYWdyYXBoIDogRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpFZGl0YWJsZVJvb3QpOwog
fQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZWxlY3RlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVy
KHZvaWQoXmNvbXBsZXRpb25IYW5kbGVyUHRyKShOU1JhbmdlIHNlbGVjdGVkUmFuZ2UpKQpAQCAt
Mzg3MCw3ICszODc4LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQo
TlNFdmVudCAqZXZlbnQpCiAgICAgLy8gRklYTUU6IFdoeSBpcyB0aGUgZmlyc3RSZXNwb25kZXIg
Y2hlY2sgbmVlZGVkPwogICAgIGlmIChtX3ZpZXcgPT0gbV92aWV3LndpbmRvdy5maXJzdFJlc3Bv
bmRlcikgewogICAgICAgICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhhbmRsZWRC
eUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29t
bWFuZHMpIHsKLSAgICAgICAgICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsK
KyAgICAgICAgICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgZmFsc2UsIGNvbW1hbmRzKSk7CiAg
ICAgICAgIH0pOwogICAgICAgICByZXR1cm4gWUVTOwogICAgIH0KQEAgLTM4ODUsOSArMzg5Mywx
MCBAQCB2b2lkIFdlYlZpZXdJbXBsOjprZXlVcChOU0V2ZW50ICpldmVudCkKIAogICAgIExPRyhU
ZXh0SW5wdXQsICJrZXlVcDolcCAlQCIsIGV2ZW50LCBldmVudCk7CiAKKyAgICBtX2lzVGV4dElu
c2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA9IGZhbHNlOwogICAgIGludGVycHJldEtleUV2ZW50
KGV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewogICAgICAgICBBU1NFUlQoIWhhbmRsZWRC
eUlucHV0TWV0aG9kIHx8IGNvbW1hbmRzLmlzRW1wdHkoKSk7Ci0gICAgICAgIG1fcGFnZS0+aGFu
ZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2
ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBt
X2lzVGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSwgY29tbWFuZHMpKTsKICAgICB9KTsK
IH0KIApAQCAtMzkxMiw5ICszOTIxLDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OmtleURvd24oTlNF
dmVudCAqZXZlbnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBtX2lzVGV4dEluc2Vy
dGlvblJlcGxhY2luZ1NvZnRTcGFjZSA9IGZhbHNlOwogICAgIGludGVycHJldEtleUV2ZW50KGV2
ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpL
ZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewogICAgICAgICBBU1NFUlQoIWhhbmRsZWRCeUlu
cHV0TWV0aG9kIHx8IGNvbW1hbmRzLmlzRW1wdHkoKSk7Ci0gICAgICAgIG1fcGFnZS0+aGFuZGxl
S2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1
dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50
KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBtX2lz
VGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSwgY29tbWFuZHMpKTsKICAgICB9KTsKIH0K
IApAQCAtMzkzMCw3ICszOTQwLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZmxhZ3NDaGFuZ2VkKE5T
RXZlbnQgKmV2ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBpbnRlcnByZXRLZXlFdmVudChl
dmVudCwgXihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKLSAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXli
b2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0
aG9kLCBjb21tYW5kcykpOworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGZhbHNlLCBj
b21tYW5kcykpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aAppbmRleCAxYjI0ZGIyNzVlOGNlMGIyMGI2Y2VlNGYzMDViNWJmNTljODFlYTdkLi40ODc3NzMx
NDk3MDE2ZmM2YTYyMjE0ODNlN2Q2Y2Q4NGVjZTAzNjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKQEAgLTE4MCw2ICsxODAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoTGF5ZXJPclZpZXcgKikgPSAw
OwogICAgIHZpcnR1YWwgTGF5ZXJPclZpZXcgKmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5
ZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4gdGFr
ZVZpZXdTbmFwc2hvdCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEluc2VydFRleHRBc3lu
YygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zZXJ0VGV4dEFzeW5jKCkgPSAwOwogI2lm
IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAgICAgdmlydHVhbCB2b2lkIGdlc3R1cmVFdmVu
dFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViR2VzdHVyZUV2ZW50JikgPSAw
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDAyYzJjMjIwOGI5Yjk4N2U3NzNkMGJlNGVjMDI3MzZiODYyZWQ5ODcuLjJkODIxZGNiMWMzMjQ0
NGQyNzMwMTIxMzE5Zjg5YTQ4MjkxZjBiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC02MTM5LDExICs2MTM5LDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjphZGRNSU1FVHlwZVdpdGhDdXN0b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSkKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkSW5z
ZXJ0VGV4dEFzeW5jKCkKK3sKKyAgICBtX3BhZ2VDbGllbnQuZGlkSW5zZXJ0VGV4dEFzeW5jKCk7
Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjppbnNlcnRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGJvb2wgcmVnaXN0ZXJV
bmRvR3JvdXAsIEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZl
VG8pCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fcGFn
ZUNsaWVudC53aWxsSW5zZXJ0VGV4dEFzeW5jKCk7CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6Okluc2VydFRleHRBc3luYyh0ZXh0LCByZXBsYWNlbWVudFJhbmdlLCByZWdp
c3RlclVuZG9Hcm91cCwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGVkaXRpbmdSYW5nZUlzUmVsYXRp
dmVUbykpLCBtX3BhZ2VJRCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA2ZmE1OTc1YjM1ODIyNWQ3OTczYzQzZTAzMGQzOWU4ZmE4OGRiMzRhLi4zNDMz
ODYxM2I4NmI5ZGQ4YmNiYTQwODUxMjAwZTAzOTAwNjhiN2UxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01NjMsNiArNTYzLDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihMYXllck9yVmlldyopOwogICAg
IExheWVyT3JWaWV3KiBhY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3Q7CiAK
KyAgICB2b2lkIHdpbGxJbnNlcnRUZXh0QXN5bmMoKTsKKyAgICB2b2lkIGRpZEluc2VydFRleHRB
c3luYygpOwogICAgIHZvaWQgaW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVudFJhbmdlLCBib29sIHJlZ2lzdGVyVW5kb0dyb3Vw
ID0gZmFsc2UsIEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyA9IEVkaXRpbmdSYW5nZUlzUmVsYXRp
dmVUbzo6RWRpdGFibGVSb290KTsKICAgICB2b2lkIGdldE1hcmtlZFJhbmdlQXN5bmMoc3RkOjpm
dW5jdGlvbjx2b2lkIChFZGl0aW5nUmFuZ2UsIENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CiAgICAg
dm9pZCBnZXRTZWxlY3RlZFJhbmdlQXN5bmMoc3RkOjpmdW5jdGlvbjx2b2lkIChFZGl0aW5nUmFu
Z2UsIENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwZGJiMTRjZTAyM2FmNzc5NzNiMjkz
NjYxYWQxY2RhZTQ0ZTRlODAxLi5jNzFhMzRlOWExNjMwNmI5ODRjMmU0MmIyYjlkOTIwZGU0OGJi
NmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KQEAgLTQ2Miw0ICs0NjIsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewog
I2lmIFBMQVRGT1JNKE1BQykKICAgICBEaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSgpCiAjZW5k
aWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIERpZEluc2VydFRleHRBc3luYygpCisjZW5k
aWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaApp
bmRleCA1MjU5ZmI1YjcyNWNhNDc2OTJlYWQ3YWE0ODU5MDEyMTNjN2FiNmU5Li44NWM1NGNkNjAy
NGI3OWZjOGM2YTQxYmM0ZGMwMGJhZjI3NDU5MGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC0xNDAsNiArMTQwLDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJl
ZUNvbnRleHQmKSBvdmVycmlkZTsKIAogICAgIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiB0YWtl
Vmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsSW5zZXJ0VGV4dEFzeW5jKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBkaWRJbnNlcnRUZXh0QXN5bmMoKSBvdmVycmlkZTsKICAgICB2
b2lkIHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVs
RXZlbnQmKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgIHZv
aWQgZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJHZXN0
dXJlRXZlbnQmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsLm1tCmluZGV4IDViNWExMjFhNjkzOTc2ZmY2MGExOGRiMjU1NmY1ZjRiOTVl
MjkyNTguLjZiZmIzYWI3NGQ1MGI3NmNhODIxODk3MjQxMDEwOGExYTYxNDg0NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAtNDk1LDYg
KzQ5NSwxNiBAQCBQYXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4gUGFnZUNsaWVudEltcGw6OnRha2VW
aWV3U25hcHNob3QoKQogICAgIHJldHVybiBtX2ltcGwtPnRha2VWaWV3U25hcHNob3QoKTsKIH0K
IAordm9pZCBQYWdlQ2xpZW50SW1wbDo6d2lsbEluc2VydFRleHRBc3luYygpCit7CisgICAgbV9p
bXBsLT53aWxsSW5zZXJ0VGV4dEFzeW5jaHJvbm91c2x5KCk7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZEluc2VydFRleHRBc3luYygpCit7CisgICAgbV9pbXBsLT5kaWRJbnNlcnRUZXh0
QXN5bmNocm9ub3VzbHkoKTsKK30KKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2VsZWN0aW9uRGlk
Q2hhbmdlKCkKIHsKICAgICBtX2ltcGwtPnNlbGVjdGlvbkRpZENoYW5nZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDAwYjI4MWUyNGZk
MzJiZmYyYzZiZjkwMzk5YjNhYjM3MzRkMmM3OWIuLmE2ZTdiYmZjMGRiYmU2ZDM5NzZjOTdjYjlj
NTRmYmFkYjA2ZDcwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTQ2MjksNiArNDYyOSw4IEBAIHZvaWQgV2ViUGFnZTo6aW5zZXJ0VGV4
dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVu
CiAgICAgICAgIGZyYW1lLmVkaXRvcigpLmluc2VydFRleHQodGV4dCwgbnVsbHB0cik7CiAgICAg
fSBlbHNlCiAgICAgICAgIGZyYW1lLmVkaXRvcigpLmNvbmZpcm1Db21wb3NpdGlvbih0ZXh0KTsK
KworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkSW5zZXJ0VGV4dEFzeW5jKCkp
OwogfQogCiB2b2lkIFdlYlBhZ2U6OmdldE1hcmtlZFJhbmdlQXN5bmModWludDY0X3QgY2FsbGJh
Y2tJRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBmZjhiNzUzMTgwZjZkNTRkZGU2NzFhMDI0MzljYjY1MDVhZGFlNjY4Li5lMTBmMTkyZmYzYzFh
N2FkMTlmMWZhYzg2ODQ1MGQyMDE1ODY0YzNiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTYtMDktMTUgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW5zZXJ0aW5nIGEg
c3BhY2UgYWZ0ZXIgaW5zZXJ0aW5nIGFuIGFjY2VwdGVkIGNhbmRpZGF0ZSBzY3JvbGxzIHRoZSBk
b2N1bWVudCBhbmQgY2F1c2VzIGEgZmxpY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyMDA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODA4
NjIzNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRzIDIgbmV3IHRleHQgZWRpdGluZyBBUEkgdGVzdHMgY292ZXJpbmcgY2FuZGlkYXRlIGluc2Vy
dGlvbiwgYXMgd2VsbCBhcyBzdXBwb3J0IGZvciB0ZXN0aW5nIGNhbmRpZGF0ZXMgaW4KKyAgICAg
ICAgV0tXZWJWaWV3cy4gUmVmYWN0b3JzIGNvbW1vbiBXS1dlYlZpZXcgaGVscGVycyBhY3Jvc3Mg
Ym90aCBWaWRlb0NvbnRyb2xzTWFuYWdlciB0ZXN0cyBhbmQgdGhlIG5ldworICAgICAgICBXS1dl
YlZpZXdDYW5kaWRhdGVUZXN0cyBpbnRvIGEgbmV3IHV0aWxpdHkgY2xhc3MsIFRlc3RXS1dlYlZp
ZXcgaW4gVGVzdFdLV2ViVmlldy5tbSwgd2hpY2ggaXMgY2FwYWJsZSBvZgorICAgICAgICBzaW11
bGF0aW5nIG1vdXNlIGFuZCBrZXlib2FyZCBldmVudHMgYXMgd2VsbCBhcyB3YWl0aW5nIGZvciBK
YXZhU2NyaXB0IG1lc3NhZ2VzIHNlbnQgZnJvbSB0aGUgd2ViIHByb2Nlc3MgYW5kCisgICAgICAg
IHBlcmZvcm1pbmcgYWN0aW9ucyBpbiByZXNwb25zZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy9hdWRpby1vbmx5Lmh0bWw6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aG91dC1hdWRp
by5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVv
Q29udHJvbHNNYW5hZ2VyLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICgtW01lc3NhZ2VIYW5kbGVyIGluaXRXaXRoTWVzc2FnZTpoYW5kbGVyOl0pOiBEZWxldGVk
LgorICAgICAgICAoLVtNZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVj
ZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNN
YW5hZ2VyVGVzdFdlYlZpZXcgbW91c2VEb3duQXRQb2ludDpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyBwZXJmb3JtQWZ0ZXJMb2FkaW5nOl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IGNh
bGxKYXZhc2NyaXB0RnVuY3Rpb246XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1ZpZGVvQ29udHJv
bHNNYW5hZ2VyVGVzdFdlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6XSk6IERlbGV0ZWQuCisgICAg
ICAgICgtW1ZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2
aW5nTWVzc2FnZTphY3Rpb246XSk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW06IEFkZGVkLgorICAg
ICAgICAoLVtUZXN0Q2FuZGlkYXRlIGluaXRXaXRoUmVwbGFjZW1lbnRTdHJpbmc6aW5SYW5nZTpd
KToKKyAgICAgICAgKC1bVGVzdENhbmRpZGF0ZSByZXBsYWNlbWVudFN0cmluZ10pOgorICAgICAg
ICAoLVtUZXN0Q2FuZGlkYXRlIHJlc3VsdFR5cGVdKToKKyAgICAgICAgKC1bVGVzdENhbmRpZGF0
ZSByYW5nZV0pOgorICAgICAgICAoLVtDYW5kaWRhdGVUZXN0V2ViVmlldyBpbnNlcnRDYW5kaWRh
dGVzQW5kV2FpdEZvclJlc3BvbnNlOnJhbmdlOl0pOgorICAgICAgICAoLVtDYW5kaWRhdGVUZXN0
V2ViVmlldyBfZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGVdKToKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2F1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWw6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQu
aHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9mdWxsLXNp
emUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2lucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1l
bnQuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvbGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1tdXRl
cy1vbnBsYXlpbmcuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWw6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8t
c2Vlay1hZnRlci1lbmRpbmcuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1l
bmRpbmcuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
YXJnZS12aWRlby13aXRoLWF1ZGlvLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aG91dC1hdWRpby5odG1sOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWlu
Zy1jbGljay10by1wYXVzZS5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWluZy1zY3JvbGwtdG8tdmlkZW8uaHRtbDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3Mt
cGF1c2VkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlk
ZXMtY29udHJvbHMuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy12aWRlby1rZWVwcy1jb250cm9scy5odG1sOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRo
LWF1ZGlvLWF1dG9wbGF5Lmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2Evc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS93aWRlLWF1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9D
YW5kaWRhdGVUZXN0cy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJW
aWV3TWFjLmg6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZp
ZXdNYWMubW06IEFkZGVkLgorICAgICAgICAoLVtUZXN0TWVzc2FnZUhhbmRsZXIgaW5pdFdpdGhN
ZXNzYWdlOmhhbmRsZXI6XSk6CisgICAgICAgICgtW1Rlc3RNZXNzYWdlSGFuZGxlciB1c2VyQ29u
dGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAgICAgICgtW1Rl
c3RXS1dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmll
dyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOmFjdGlvbjpdKToKKyAgICAgICAgKC1bVGVz
dFdLV2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmll
dyB0eXBlQ2hhcmFjdGVyOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgd2FpdEZvck1l
c3NhZ2U6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgcGVyZm9ybUFmdGVyTG9hZGluZzpd
KToKKwogMjAxNi0wOS0xNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBNZWRpYSBjb250cm9scyBiZWhhdmUgc3RyYW5nZWx5IHdoZW4gY2hhbmdpbmcg
bWVkaWEgc291cmNlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4YTQ5YzNiY2I3OWE0NmQw
NmMwZjkxNDQzOGM0YmE0OTYzOTQ2MTk3Li4zZTllNGQ1ZWUyMDYwMTA4YTkzZjBkZTU5YzI2NTI5
OTA1NDY1ODljIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzgsNiArNzgsOSBAQAogCQky
RUZGMDZDMzFEODg2MjFFMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2
QzIxRDg4NjIxMjAwMDRCQjMwIC8qIGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sICovOyB9Owog
CQkyRUZGMDZDNTFEODg2Nzc2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGlj
ay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNs
aWNrLmh0bWwgKi87IH07CiAJCTJFRkYwNkM3MUQ4ODZBNTgwMDA0QkIzMCAvKiBjaGFuZ2Utdmlk
ZW8tc291cmNlLW9uLWVuZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2Utdmlk
ZW8tc291cmNlLW9uLWVuZC5odG1sICovOyB9OworCQkyRUZGMDZDRDFEOEE0MjlBMDAwNEJCMzAg
LyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkNDMUQ4QTQyOTEw
MDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgKi87IH07
CisJCTJFRkYwNkQ0MUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2RDMxRDhBRURC
QjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMubW0gKi87IH07CisJCTJFRkYwNkQ3MUQ4QUYz
NEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkQ2MUQ4QUYzNEEwMDA0QkIzMCAv
KiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSAqLzsgfTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAw
NzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAv
KiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgKi87IH07CiAJCTMzREM4OTEyMTQxOTU1
RkUwMDc0N0VGNyAvKiBzaW1wbGUtaWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNEQzg5MEUxNDE5NTM5MzAwNzQ3RUY3IC8q
IHNpbXBsZS1pZnJhbWUuaHRtbCAqLzsgfTsKIAkJMzNEQzg5MTQxNDE5NTc5RjAwNzQ3RUY3IC8q
IExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNEQzg5MTMxNDE5NTc5RjAw
NzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3Bw
ICovOyB9OwpAQCAtNTQxLDYgKzU0NCw3IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCTJF
RkYwNkNEMUQ4QTQyOUEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3Vt
ZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzcxRDg4NkE1ODAwMDRC
QjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJMkVGRjA2QzUxRDg4Njc3NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Ut
b24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRUZGMDZDMzFEODg2MjFF
MDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCkBAIC03ODksNiArNzkzLDEwIEBACiAJCTJFRkYwNkMyMUQ4ODYyMTIwMDA0QkIzMCAvKiBs
YXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJs
YXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNr
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY2hhbmdlLXZpZGVvLXNvdXJjZS1v
bi1jbGljay5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVGRjA2QzYxRDg4
NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBp
bnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0
bWw7IHBhdGggPSAiaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVGRjA2RDIxRDhBRURCQjAwMDRCQjMwIC8qIFRl
c3RXS1dlYlZpZXdNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdFdL
V2ViVmlld01hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZEMzFEOEFF
REJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFRlc3RXS1dlYlZpZXdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJFRkYwNkQ2MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRh
dGVUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2Vi
Vmlld0NhbmRpZGF0ZVRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzNC
OUNFMTEyNzdGMjMxMDBGRUZDRTMgLyogUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzQkU1QUY0MTM3QjVBNkMwMDcwNTgxMyAv
KiBNb3VzZU1vdmVBZnRlckNyYXNoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzM0JFNUFGODEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5k
bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW91c2VNb3ZlQWZ0
ZXJDcmFzaF9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM3NSw2
ICsxMzgzLDcgQEAKIAkJCQkzN0I0N0UyRTFENjRFN0NBMDA1RjRFRkYgLyogV0tPYmplY3QubW0g
Ki8sCiAJCQkJMkQwMDA2NUQxQzFGNTg5NDAwODhFNkE3IC8qIFdLUERGVmlld1Jlc2l6ZUNyYXNo
Lm1tICovLAogCQkJCTVFNEIxRDJDMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxl
Z2F0ZUNyYXNoLm1tICovLAorCQkJCTJFRkYwNkQ2MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZp
ZXdDYW5kaWRhdGVUZXN0cy5tbSAqLywKIAkJCQk3QzQxN0YzMTFEMTlFMTQ4MDBCOEVGNTMgLyog
V0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSAqLywKIAkJCQkwRjNCOTRBNTFB
NzcyNjZDMDBERTMyNzIgLyogV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovLAogCQkJ
CTk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8sCkBA
IC0xNDY0LDYgKzE0NzMsNyBAQAogCQlBMTZGNjZCODFDNDBFOUUxMDBCRDREMjQgLyogUmVzb3Vy
Y2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyRUZG
MDZDQzFEOEE0MjkxMDAwNEJCMzAgLyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVu
dC5odG1sICovLAogCQkJCTJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8t
c291cmNlLW9uLWVuZC5odG1sICovLAogCQkJCTJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBj
aGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzIxRDg4NjIx
MjAwMDRCQjMwIC8qIGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sICovLApAQCAtMTgxOSw2ICsx
ODI5LDggQEAKIAkJCQlDMDgxMjI0NDEzRkMxOUVDMDBEQzM5QUUgLyogU3ludGhldGljQmFja2lu
Z1NjYWxlRmFjdG9yV2luZG93Lm0gKi8sCiAJCQkJMjlBQjhBQTMxNjRDN0E5MzAwRDQ5QkVDIC8q
IFRlc3RCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUuaCAqLywKIAkJCQkyOUFCOEFBMjE2NEM3
QTkzMDBENDlCRUMgLyogVGVzdEJyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZS5tbSAqLywKKwkJ
CQkyRUZGMDZEMjFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5oICovLAorCQkJ
CTJFRkYwNkQzMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tICovLAogCQkJ
CUMwODU4N0JFMTNGRTk1NkMwMDFFRjRFNSAvKiBXZWJLaXRBZ25vc3RpY1Rlc3QuaCAqLywKIAkJ
CQlDMDg1ODdCRDEzRkU5NTZDMDAxRUY0RTUgLyogV2ViS2l0QWdub3N0aWNUZXN0Lm1tICovLAog
CQkJKTsKQEAgLTIzNDIsNiArMjM1NCw3IEBACiAJCQkJN0NDRTdFRkIxQTQxMUFFNjAwNDQ3QzRD
IC8qIEluamVjdGVkQnVuZGxlQmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkMx
QTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RUZEMUE0MTFBRTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1bmRsZUlu
aXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja1dpbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MkVGRjA2RDQxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QzgzRTBCODFEMEE2NEJEMDBGRUJDRjMgLyogSW5qZWN0ZWRCdW5kbGVNYWtl
QWxsU2hhZG93Um9vdHNPcGVuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUMzMUE0MTFB
N0UwMDQ0N0M0QyAvKiBJbnNwZWN0b3JCYXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VE
QTFBNDExQTg3MDA0NDdDNEMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2Vz
ICovLApAQCAtMjQ2MSw2ICsyNDc0LDcgQEAKIAkJCQk3Q0NFN0VEODFBNDExQTdFMDA0NDdDNEMg
LyogV2lsbFNlbmRTdWJtaXRFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUQ5MUE0
MTFBN0UwMDQ0N0M0QyAvKiBXaW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTFGODM1NzFCMUQzRkZCMjMwMEUzOTY3QiAvKiBXS0JhY2tGb3J3YXJkTGlzdC5t
bSBpbiBTb3VyY2VzICovLAorCQkJCTJFRkYwNkQ3MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZp
ZXdDYW5kaWRhdGVUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJFMUE0MTFCMTAw
MDQ0N0M0QyAvKiBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwVGVzdC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RjJGMUE0MTFCMTAwMDQ0N0M0QyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZVRlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzU0QTRCRTFBQTExQ0NBMDAzODBGNzgg
LyogV0tCdW5kbGVGaWxlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL2F1ZGlvLW9ubHkuaHRtbCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy9hdWRpby1vbmx5Lmh0bWwKaW5kZXggNzQw
MGY2NjI4NGUyOTkxM2RhNTliNDZjZTM1NmI4Y2E2YmRmZGZjZi4uYzRhMjRmYWVlNzY3Y2ExMWU1
ZjZhMDU3ZDZlYWUwOGRmY2MxMjFhZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvaW9zL2F1ZGlvLW9ubHkuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9pb3MvYXVkaW8tb25seS5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAg
ZnVuY3Rpb24gcGxheWluZygpIHsKICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0
KTsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGxh
eWluZycpOwogICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlv
biA9ICdjYWxsYmFjazpwbGF5aW5nJzsKICAgICAgICAgfQpAQCAtMjAsNyArMjAsNyBAQAogCiAg
ICAgZnVuY3Rpb24gbm90UGxheWluZygpIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdu
b3QgcGxheWluZycpOworICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2go
ZSkgeyB9CiAgICAgfQogICAgIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRoLWF1ZGlvLmh0bWwKaW5kZXggYzg5
MjRiNmI5OGFhODNmNmQyYmUxNWRiNDg5ODQ4NDM1M2Y1YTllOS4uODA4ZGRjZWM4NjlkNzRhM2Nm
ZGM1OTVlMTY5ZTEwNjM5YmI2ZjMzOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aC1hdWRpby5odG1sCkBAIC0xNCw3ICsx
NCw3IEBACiAgICAgZnVuY3Rpb24gcGxheWluZygpIHsKICAgICAgICAgd2luZG93LmNsZWFyVGlt
ZW91dCh0aW1lb3V0KTsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7Cisg
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZSgncGxheWluZycpOwogICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIHdp
bmRvdy5sb2NhdGlvbiA9ICdjYWxsYmFjazpwbGF5aW5nJzsKICAgICAgICAgfQpAQCAtMjIsNyAr
MjIsNyBAQAogCiAgICAgZnVuY3Rpb24gbm90UGxheWluZygpIHsKICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBv
c3RNZXNzYWdlKCdub3QgcGxheWluZycpOworICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CiAgICAg
ICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgfQogICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aG91dC1hdWRpby5odG1s
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGhvdXQtYXVk
aW8uaHRtbAppbmRleCA4NDU4NmYzMjVjMWJlYjkxZmM3ZmUwNWEyNzlhZDAyYmUxOGUyYzQwLi4y
NzVlN2UxYzU5NmNiZjljODdlZjI3MzI3NGMwY2NkNmY0ZTRlOTM1IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aG91dC1hdWRpby5odG1s
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRob3V0
LWF1ZGlvLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAKICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewog
ICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgICB0cnkgewotICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9z
dE1lc3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0
Y2goZSkgewogICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcn
OwogICAgICAgICB9CkBAIC0yMCw3ICsyMCw3IEBACiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5n
KCkgewogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2Fn
ZSgnbm90IHBsYXlpbmcnKTsKICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICB9CiAgICAgPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tCmluZGV4IGJkMzE4NjJhZTQyZWNiNDJj
YTQxZjEyYjZhZDZmODdmYzk5MjFmYjcuLjY3NDVjYzcyNmU5NWZhYzljYzg2M2RiNTQ5YzI5ZmIy
MmQ2NjBjY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tCkBAIC0yNiwxMCArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgot
Ci0jaWYgUExBVEZPUk0oTUFDKQotI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgotI2VuZGlmCisj
aW1wb3J0ICJUZXN0V0tXZWJWaWV3TWFjLmgiCiAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUu
aD4KQEAgLTQzLDM0ICs0MCw3IEBAIC0gKHZvaWQpX2ludGVyYWN0V2l0aE1lZGlhQ29udHJvbHNG
b3JUZXN0aW5nOwogCiBAZW5kCiAKLUBpbnRlcmZhY2UgTWVzc2FnZUhhbmRsZXIgOiBOU09iamVj
dCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIE1lc3Nh
Z2VIYW5kbGVyIHsKLSAgICBkaXNwYXRjaF9ibG9ja190IF9oYW5kbGVyOwotICAgIE5TU3RyaW5n
ICpfbWVzc2FnZTsKLX0KLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVzc2FnZTooTlNTdHJp
bmcgKiltZXNzYWdlIGhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcgotewotICAgIGlm
ICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgX2hh
bmRsZXIgPSBbaGFuZGxlciBjb3B5XTsKLSAgICBfbWVzc2FnZSA9IG1lc3NhZ2U7Ci0KLSAgICBy
ZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNv
bnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRN
ZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCi17Ci0gICAgaWYgKFsoTlNTdHJpbmcg
KilbbWVzc2FnZSBib2R5XSBpc0VxdWFsVG9TdHJpbmc6X21lc3NhZ2VdICYmIF9oYW5kbGVyKQot
ICAgICAgICBfaGFuZGxlcigpOwotfQotCi1AZW5kCi0KLUBpbnRlcmZhY2UgVmlkZW9Db250cm9s
c01hbmFnZXJUZXN0V2ViVmlldyA6IFdLV2ViVmlldworQGludGVyZmFjZSBWaWRlb0NvbnRyb2xz
TWFuYWdlclRlc3RXZWJWaWV3IDogVGVzdFdLV2ViVmlldwogQGVuZAogCiBAaW1wbGVtZW50YXRp
b24gVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyB7CkBAIC03OCwzMiArNDgsNiBAQCBA
aW1wbGVtZW50YXRpb24gVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyB7CiAgICAgTlNT
dHJpbmcgKl9jb250cm9sbGVkRWxlbWVudElEOwogfQogCi0tICh2b2lkKW1vdXNlRG93bkF0UG9p
bnQ6KE5TUG9pbnQpcG9pbnQgewotICAgIFtzZWxmIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2
ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBvaW50
KHBvaW50LngsIHBvaW50LnkpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2
ZW50VGltZSgpIHdpbmRvd051bWJlcjowIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJl
bnRDb250ZXh0XSBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXV07Ci19Ci0K
LS0gKHZvaWQpcGVyZm9ybUFmdGVyTG9hZGluZzooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb25zIHsK
LSAgICBNZXNzYWdlSGFuZGxlciAqaGFuZGxlciA9IFtbTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGlu
aXRXaXRoTWVzc2FnZTpAImxvYWRlZCIgaGFuZGxlcjphY3Rpb25zXTsKLSAgICBOU1N0cmluZyAq
b25sb2FkU2NyaXB0ID0gQCJ3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7IHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLm9ubG9hZEhhbmRsZXIucG9zdE1lc3NhZ2UoJ2xvYWRlZCcpOyB9
IjsKLSAgICBXS1VzZXJTY3JpcHQgKnNjcmlwdCA9IFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBpbml0
V2l0aFNvdXJjZTpvbmxvYWRTY3JpcHQgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rp
b25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk9dOwotCi0gICAgV0tVc2Vy
Q29udGVudENvbnRyb2xsZXIqIGNvbnRlbnRDb250cm9sbGVyID0gW1tzZWxmIGNvbmZpZ3VyYXRp
b25dIHVzZXJDb250ZW50Q29udHJvbGxlcl07Ci0gICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFVz
ZXJTY3JpcHQ6c2NyaXB0XTsKLSAgICBbY29udGVudENvbnRyb2xsZXIgYWRkU2NyaXB0TWVzc2Fn
ZUhhbmRsZXI6aGFuZGxlciBuYW1lOkAib25sb2FkSGFuZGxlciJdOwotfQotCi0tICh2b2lkKWNh
bGxKYXZhc2NyaXB0RnVuY3Rpb246KE5TU3RyaW5nICopZnVuY3Rpb25OYW1lCi17Ci0gICAgTlNT
dHJpbmcgKmNvbW1hbmQgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAKCkiLCBmdW5j
dGlvbk5hbWVdOwotICAgIFtzZWxmIGV2YWx1YXRlSmF2YVNjcmlwdDpjb21tYW5kIGNvbXBsZXRp
b25IYW5kbGVyOm5pbF07Ci19Ci0KLS0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5n
ICopcGFnZU5hbWUKLXsKLSAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6cGFn
ZU5hbWUgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl1dOwotICAgIFtzZWxmIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotfQotCiAtICh2
b2lkKWV4cGVjdENvbnRyb2xzTWFuYWdlcjooQk9PTClleHBlY3RDb250cm9sc01hbmFnZXIgYWZ0
ZXJSZWNlaXZpbmdNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UKIHsKICAgICBfX2Jsb2NrIGJv
b2wgZG9uZVdhaXRpbmcgPSBmYWxzZTsKQEAgLTEzMSwxNCArNzUsNiBAQCAtICh2b2lkKXdhaXRG
b3JNZWRpYUNvbnRyb2xzVG9IaWRlCiAgICAgICAgIFtbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29w
XSBydW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGJlZm9yZURhdGU6W05TRGF0ZSBkaXN0YW50
UGFzdF1dOwogfQogCi0tICh2b2lkKXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3Ry
aW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uCi17Ci0gICAgUmV0
YWluUHRyPE1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHROUyhbW01lc3NhZ2VIYW5kbGVy
IGFsbG9jXSBpbml0V2l0aE1lc3NhZ2U6bWVzc2FnZSBoYW5kbGVyOmFjdGlvbl0pOwotICAgIFdL
VXNlckNvbnRlbnRDb250cm9sbGVyKiBjb250ZW50Q29udHJvbGxlciA9IFtbc2VsZiBjb25maWd1
cmF0aW9uXSB1c2VyQ29udGVudENvbnRyb2xsZXJdOwotICAgIFtjb250ZW50Q29udHJvbGxlciBy
ZW1vdmVTY3JpcHRNZXNzYWdlSGFuZGxlckZvck5hbWU6QCJwbGF5aW5nSGFuZGxlciJdOwotICAg
IFtjb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgp
IG5hbWU6QCJwbGF5aW5nSGFuZGxlciJdOwotfQotCiAtICh2b2lkKXdhaXRGb3JQYWdlVG9Mb2Fk
V2l0aEF1dG9wbGF5aW5nVmlkZW9zOihpbnQpbnVtYmVyT2ZBdXRvcGxheWluZ1ZpZGVvcwogewog
ICAgIF9fYmxvY2sgaW50IHJlbWFpbmluZ0F1dG9wbGF5ZWRDb3VudCA9IG51bWJlck9mQXV0b3Bs
YXlpbmdWaWRlb3M7CkBAIC0yNDAsNyArMTc2LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdl
ciwgVmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVvc1Njcm9sbFBhdXNlZFZpZGVvT3UK
ICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvcy1wYXVzZWQtdmlk
ZW8taGlkZXMtY29udHJvbHMiXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdpdGhB
dXRvcGxheWluZ1ZpZGVvczoxXTsKIAotICAgIFt3ZWJWaWV3IGNhbGxKYXZhc2NyaXB0RnVuY3Rp
b246QCJwYXVzZUZpcnN0VmlkZW9BbmRTY3JvbGxUb1NlY29uZFZpZGVvIl07CisgICAgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInBhdXNlRmlyc3RWaWRlb0FuZFNjcm9s
bFRvU2Vjb25kVmlkZW8oKSJdOwogICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpO
TyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwYXVzZWQiXTsKIH0KIApAQCAtMjUxLDcgKzE4Nyw3
IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVsdGlw
bGVWaWRlb3NTY3JvbGxQbGF5aW5nVmlkZW9XCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFt
ZWQ6QCJsYXJnZS12aWRlb3MtcGxheWluZy12aWRlby1rZWVwcy1jb250cm9scyJdOwogICAgIFt3
ZWJWaWV3IHdhaXRGb3JQYWdlVG9Mb2FkV2l0aEF1dG9wbGF5aW5nVmlkZW9zOjFdOwogCi0gICAg
W3dlYlZpZXcgY2FsbEphdmFzY3JpcHRGdW5jdGlvbjpAInNjcm9sbFRvU2Vjb25kVmlkZW8iXTsK
KyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVG9TZWNv
bmRWaWRlbygpIl07CiAgICAgW3dlYlZpZXcgZXhwZWN0Q29udHJvbHNNYW5hZ2VyOllFUyBhZnRl
clJlY2VpdmluZ01lc3NhZ2U6QCJzY3JvbGxlZCJdOwogfQogCkBAIC0yNjIsNyArMTk4LDcgQEAg
VEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZp
ZGVvc1Njcm9sbFBsYXlpbmdNdXRlZFYKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpA
ImxhcmdlLXZpZGVvcy1wbGF5aW5nLW11dGVkLXZpZGVvLWhpZGVzLWNvbnRyb2xzIl07CiAgICAg
W3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6MV07CiAKLSAg
ICBbd2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1bmN0aW9uOkAibXV0ZUZpcnN0VmlkZW9BbmRTY3Jv
bGxUb1NlY29uZFZpZGVvIl07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAIm11dGVGaXJzdFZpZGVvQW5kU2Nyb2xsVG9TZWNvbmRWaWRlbygpIl07CiAgICAgW3dl
YlZpZXcgZXhwZWN0Q29udHJvbHNNYW5hZ2VyOk5PIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBs
YXlpbmciXTsKIH0KIApAQCAtMzAwLDcgKzIzNiw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFn
ZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVsdGlwbGVWaWRlb3NTd2l0Y2hDb250cm9sbGVkVmlk
CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlb3MtYXV0b3BsYXlp
bmctc2Nyb2xsLXRvLXZpZGVvIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRo
QXV0b3BsYXlpbmdWaWRlb3M6Ml07CiAKLSAgICBbd2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1bmN0
aW9uOkAic2Nyb2xsVG9TZWNvbmRWaWV3Il07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAInNjcm9sbFRvU2Vjb25kVmlldygpIl07CiAgICAgW3dlYlZpZXcgZXhw
ZWN0Q29udHJvbHNNYW5hZ2VyOllFUyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJzY3JvbGxlZCJd
OwogCiAgICAgRVhQRUNUX1RSVUUoW1t3ZWJWaWV3IGNvbnRyb2xsZWRFbGVtZW50SURdIGlzRXF1
YWxUb1N0cmluZzpAInNlY29uZCJdKTsKQEAgLTMxMiw3ICsyNDgsNyBAQCBURVNUKFZpZGVvQ29u
dHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdlck11bHRpcGxlVmlkZW9zU2Nyb2xsT25s
eUxhcmdlVmlkZQogCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRl
by1wbGF5aW5nLXNjcm9sbC1hd2F5Il07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRX
aXRoQXV0b3BsYXlpbmdWaWRlb3M6MV07Ci0gICAgW3dlYlZpZXcgY2FsbEphdmFzY3JpcHRGdW5j
dGlvbjpAInNjcm9sbFZpZGVvT3V0T2ZWaWV3Il07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAInNjcm9sbFZpZGVvT3V0T2ZWaWV3KCkiXTsKICAgICBbd2ViVmll
dyBleHBlY3RDb250cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInNjcm9s
bGVkIl07CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTZhN2M0NWZiYjI2MmNiMDZmMWNmNDhhMWI4NWE2ZGQwNzJmNDZmZAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRp
ZGF0ZVRlc3RzLm1tCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3TWFjLmgiCisKKyNpbXBvcnQgPFdlYktp
dC9XZWJLaXRQcml2YXRlLmg+CisKK0BpbnRlcmZhY2UgVGVzdENhbmRpZGF0ZSA6IE5TVGV4dENo
ZWNraW5nUmVzdWx0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0Q2FuZGlkYXRlIHsKKyAg
ICBOU1N0cmluZyAqX3N0cmluZzsKKyAgICBOU1JhbmdlIF9yYW5nZTsKK30KKworLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoUmVwbGFjZW1lbnRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGluUmFu
Z2U6KE5TUmFuZ2UpcmFuZ2UKK3sKKyAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICAg
ICAgICBfc3RyaW5nID0gc3RyaW5nOworICAgICAgICBfcmFuZ2UgPSByYW5nZTsKKyAgICB9Cisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKE5TU3RyaW5nICopcmVwbGFjZW1lbnRTdHJpbmcKK3sK
KyAgICByZXR1cm4gX3N0cmluZzsKK30KKworLSAoTlNUZXh0Q2hlY2tpbmdUeXBlKXJlc3VsdFR5
cGUKK3sKKyAgICByZXR1cm4gTlNUZXh0Q2hlY2tpbmdUeXBlUmVwbGFjZW1lbnQ7Cit9CisKKy0g
KE5TUmFuZ2UpcmFuZ2UKK3sKKyAgICByZXR1cm4gX3JhbmdlOworfQorCitAZW5kCisKK0BpbnRl
cmZhY2UgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgOiBUZXN0V0tXZWJWaWV3CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBDYW5kaWRhdGVUZXN0V2ViVmlldyB7CisgICAgYm9vbCBfaXNEb25lV2FpdGlu
Z0ZvckNhbmRpZGF0ZTsKK30KKworLSAodm9pZClpbnNlcnRDYW5kaWRhdGVzQW5kV2FpdEZvclJl
c3BvbnNlOihOU1N0cmluZyAqKXJlcGxhY2VtZW50U3RyaW5nIHJhbmdlOihOU1JhbmdlKXJhbmdl
Cit7CisgICAgX2lzRG9uZVdhaXRpbmdGb3JDYW5kaWRhdGUgPSBmYWxzZTsKKyAgICBbc2VsZiBf
aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGU6W1tUZXN0Q2FuZGlkYXRlIGFsbG9jXSBpbml0V2l0aFJl
cGxhY2VtZW50U3RyaW5nOnJlcGxhY2VtZW50U3RyaW5nIGluUmFuZ2U6cmFuZ2VdXTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9pc0RvbmVXYWl0aW5nRm9yQ2FuZGlkYXRlKTsKK30K
KworLSAodm9pZClfZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUKK3sKKyAgICBfaXNEb25lV2Fp
dGluZ0ZvckNhbmRpZGF0ZSA9IHRydWU7Cit9CisKK0BlbmQKKworVEVTVChXS1dlYlZpZXdDYW5k
aWRhdGVUZXN0cywgU29mdFNwYWNlUmVwbGFjZW1lbnRBZnRlckNhbmRpZGF0ZUluc2VydGlvbkRv
ZXNOb3RTY3JvbGwpCit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtb
Q2FuZGlkYXRlVGVzdFdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCldOworCisgICAgTlNVUkwgKmNvbnRlbnRVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAiaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVu
dCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CisgICAgW3drV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOmNvbnRlbnRVUkxdXTsKKworICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6
QCJmb2N1c2VkIl07CisgICAgW3drV2ViVmlldyBfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107Cisg
ICAgW3drV2ViVmlldyBpbnNlcnRDYW5kaWRhdGVzQW5kV2FpdEZvclJlc3BvbnNlOkAiYXBwbGUg
IiByYW5nZTpOU01ha2VSYW5nZSgwLCAwKV07CisKKyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
aW5wdXQnKS52YWx1ZSJdIGlzRXF1YWxUb1N0cmluZzpAImFwcGxlICJdKTsKKworICAgIFt3a1dl
YlZpZXcgdHlwZUNoYXJhY3RlcjonICddOworICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6
QCJpbnB1dCJdOworCisgICAgRVhQRUNUX1RSVUUoW1t3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykudmFsdWUiXSBp
c0VxdWFsVG9TdHJpbmc6QCJhcHBsZSAiXSk7CisgICAgRVhQRUNUX0VRKFtbd2tXZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCJdIGRv
dWJsZVZhbHVlXSwgMCk7Cit9CisKK1RFU1QoV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMsIEluc2Vy
dENoYXJhY3RlcnNBZnRlckNhbmRpZGF0ZUluc2VydGlvbldpdGhTb2Z0U3BhY2UpCit7CisgICAg
Q2FuZGlkYXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtbQ2FuZGlkYXRlVGVzdFdlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldOworCisgICAg
TlNVUkwgKmNvbnRlbnRVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAiaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudCIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgW3drV2Vi
VmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOmNvbnRlbnRVUkxd
XTsKKworICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJmb2N1c2VkIl07CisgICAgW3dr
V2ViVmlldyBfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107CisgICAgW3drV2ViVmlldyBpbnNlcnRD
YW5kaWRhdGVzQW5kV2FpdEZvclJlc3BvbnNlOkAiZm9vICIgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwg
MCldOworCisgICAgRVhQRUNUX1RSVUUoW1t3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykudmFsdWUiXSBpc0VxdWFs
VG9TdHJpbmc6QCJmb28gIl0pOworCisgICAgW3drV2ViVmlldyB0eXBlQ2hhcmFjdGVyOidhJ107
CisgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CisKKyAgICBFWFBFQ1Rf
VFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignaW5wdXQnKS52YWx1ZSJdIGlzRXF1YWxUb1N0cmluZzpAImZvbyBhIl0p
OworfQorCisjZW5kaWYgLyogV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCAqLwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0b3BsYXlpbmctdmlkZW8td2l0
aC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0
b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCmluZGV4IGI2YTViODJlMjYxYWQ0YTM5NTVh
ZWM4M2UzZjFlYTZkYTRlNjg3ZDQuLjUzYjQ1NjM4OGYxOTZlOTg5NzUxMThmY2E3Mzk2NWYzMDc1
NmVmYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2F1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwK
QEAgLTEyLDcgKzEyLDcgQEAKICAgICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgbmV4dCBydW5sb29w
IHRvIGFsbG93IG1lZGlhIGNvbnRyb2xzIHRvIHVwZGF0ZS4KICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIp
OworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAg
ICAgICAgIH0sIDApOwogICAgIH0KQEAgLTIwLDcgKzIwLDcgQEAKICAgICBmdW5jdGlvbiBiZWdh
bkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAg
ICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2su
aHRtbAppbmRleCBjOGMxZDI4NjUyNTNhZTYyZDAyNTY4ZDE3YTNiMTAwODY0MTQ1Mzg0Li41NjBl
Njg1MGExNWQxMTlhMjE3YzMzNGY3YjEzYmZjZjhjMmE5NDgyIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNs
aWNrLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hh
bmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgICAg
ICAgICB2aWRlby5wbGF5KCk7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJjaGFuZ2VkIik7Cisg
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJjaGFuZ2VkIik7CiAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSk7CkBAIC0yMSw3ICsyMSw3IEBACiAg
ICAgICAgIGZ1bmN0aW9uIGhhbmRsZVBsYXlpbmcoKSB7CiAgICAgICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdl
KCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAg
ICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwg
MCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9j
aGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbAppbmRleCA4ZmRj
YmRhNWM5ZTIyMjgzMzEzYjQwYTY2MGIzOTJiNTM1MDkzNjhkLi5mODRmN2Y3YWMxYjE0YzU3NTU4
NzQ0MDYyOWU5ODhjMjg4NDg0MDFiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Ut
b24tZW5kLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsK
ICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgdHJ5
IHsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxh
eWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKKyAgICAgICAgICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImNo
YW5nZWQiKTsKICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2Z1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9mdWxsLXNpemUtYXV0b3Bs
YXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCmluZGV4IDFiYzYwZWI0ZTE2MDUyM2M5NjZjZjNl
MDBkMjEyNWM4MTYxOTAwZDEuLjQ4MzAxZTYzMDU0MDU4Y2NjYzBjYTlhNjU5YWQ3MTMwODA5YTk3
ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Z1
bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVv
LXdpdGgtYXVkaW8uaHRtbApAQCAtMTEsNyArMTEsNyBAQAogICAgIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkg
ewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdI
YW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CisgICAgICAgICAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsK
ICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2lucHV0LWZpZWxk
LWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2lucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42ZWVkZjM3NWM3NjU2YTZiN2NkZDFhZmQ1YTg5MjY3NmZkODA2NGYwCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW5wdXQt
ZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzxodG1s
PgorCis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgbWFy
Z2luOiAwOworICAgICAgICB9CisKKyAgICAgICAgaW5wdXQgeworICAgICAgICAgICAgd2lkdGg6
IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAgICAgICAgICAgbWFyZ2luLWJv
dHRvbTogNTAwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIGxvYWRlZCgpIHsKKyAgICAgICAg
ICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7CisgICAgICAg
ICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSgwLCAwKTsKKyAgICAgICAgICAgIGlucHV0LmZv
Y3VzKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBmb2N1c2VkKCkgeworICAgICAg
ICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZSgiZm9jdXNlZCIpLCAwKTsKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIGlucHV0KCkgeworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiaW5wdXQiKSwg
MCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPWxv
YWRlZCgpPgorICAgIDxpbnB1dCBvbmZvY3VzPWZvY3VzZWQoKSBvbmlucHV0PWlucHV0KCk+PC9p
bnB1dD4KKzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vl
ay10by1lbmQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xh
cmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwKaW5kZXggZTQy
NjdjNDMxZDdhYWZmMDZhOTFkZGI4MjI4YWFlNTk4Y2YyOWE2OC4uMDEwMmU5NjI5ZjM2MTFiZGMy
OGJlMTllMWM2NmY4ZTE5M2UwOGIwZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10
by1lbmQuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
YXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sCkBAIC03LDcg
KzcsNyBAQAogICAgICAgICAvLyBUaGUgbWVkaWEgY29udHJvbHMgc2hvdWxkIGJlIHVwZGF0ZWQg
b24gdGhlIG5leHQgcnVubG9vcC4KICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImVuZGVkIik7CisgICAgICAgICAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
ImVuZGVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsgfQogICAgICAgICB9LCAwKTsKICAg
ICB9CkBAIC0yNiw3ICsyNiw3IEBACiAgICAgZnVuY3Rpb24gYmVnYW5BdXRvcGxheWluZygpIHsK
ICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIu
cG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwog
ICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sIDApCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12
aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2xhcmdlLXZpZGVvLW11dGVzLW9ucGxheWluZy5odG1sCmluZGV4IGI1Y2FmMjNh
NWFjZWFlNGM2M2YyZjUwMzUzM2I2ZTI2MWE1OWUzZjQuLjM4ZmIzMjU1MjIzNGZlYjA4YTlkODU0
ODVhNWI5MWEyYjM0ZGM2ODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11dGVzLW9ucGxheWluZy5odG1sCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11dGVzLW9ucGxh
eWluZy5odG1sCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4KICAgICBmdW5jdGlvbiBoYW5kbGVQ
bGF5aW5nKCkgewogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKKyAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCJwbGF5aW5nIik7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICB9CiAgICAgICAg
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIikubXV0ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tb2Zm
c2NyZWVuLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJn
ZS12aWRlby1vZmZzY3JlZW4uaHRtbAppbmRleCA1MGE2ODVmZjY1OWE5OGQ3N2UxNjU0MWYxZDkw
MTIzMTdiNTJkNTNlLi4zOWNmNDc2YWIzNTBiMTRhYzQyMzFhNjhjNTQ3YTk4NTY4YmYzZmE5IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12
aWRlby1vZmZzY3JlZW4uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbApAQCAtMTYsNyArMTYsNyBAQAogICAg
ICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKS5jbGFzc0xpc3QuYWRkKCJv
ZmZzY3JlZW4iKTsKICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoIm1vdmVkIik7CisgICAgICAgICAg
ICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKCJtb3ZlZCIpOwogICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0sIDApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8t
cGxheWluZy1zY3JvbGwtYXdheS5odG1sCmluZGV4IDk1OTYwMDNjYjdmMGFiNTc4MTAzYjY2M2Zk
NDYzZDMzMDIwMmQ0OWIuLjBiN2UwOWEzMjYwMzM5NjMzODI3ZWIwZWQ5Y2Y3MWRhMDFlNDlhMGIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdl
LXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWwK
QEAgLTE0LDE0ICsxNCwxNCBAQAogICAgICAgICAgICAgZnVuY3Rpb24gc2Nyb2xsVmlkZW9PdXRP
ZlZpZXcoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2Iiku
c2Nyb2xsSW50b1ZpZXcoKTsKICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewotICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5
aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInNj
cm9sbGVkIik7CiAgICAgICAgICAgICAgICAgfSwgMCk7CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5k
bGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0
b3BsYXllZCIpOwogICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGlu
Zy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbAppbmRleCBlMzE2N2Y1NzRjNDYwYjI2M2IzNzMyMWM2
ODY0NjFiNTQxZTlkYzkyLi4wMzg2NTQwYTNjYjk2OGYzMmY1OWYzYTVmYzIyNWNjMmIzY2RmZDA5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJn
ZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwKQEAg
LTYsNyArNiw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdGVzdC12
aWRlbyIpLmN1cnJlbnRUaW1lID0gMDsKICAgICAgICAgICAgIC8vIFRoZSBtZWRpYSBjb250cm9s
cyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBydW5sb29wLgogICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiZW5kZWQiKTsKKyAgICAgICAg
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVz
c2FnZSgiZW5kZWQiKTsKICAgICAgICAgICAgIH0sIDApOwogICAgICAgICB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNl
ZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGluZy5odG1sIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmct
YW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwKaW5kZXggMDdhOGViMTBlYjE0ZjE5YTE5Mjc3MTJk
MzQ1OTMxYWVkYmMzZWIwMy4uYWRhOWEyZDEyNzFjOThmZTQ3M2NlNjdjMzlmZWViMWZlYjViNDll
OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFy
Z2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vl
ay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwKQEAgLTgsNyArOCw3IEBA
CiAgICAgICAgICAgICB2aWRlby5wbGF5KCk7CiAgICAgICAgICAgICAvLyBUaGUgbWVkaWEgY29u
dHJvbHMgc2hvdWxkIGJlIHVwZGF0ZWQgb24gdGhlIG5leHQgcnVubG9vcC4KICAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInJlcGxheWluZyIpOwor
ICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVy
LnBvc3RNZXNzYWdlKCJyZXBsYXlpbmciKTsKICAgICAgICAgICAgIH0sIDApOwogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xh
cmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAppbmRleCBkMjMzNDYzY2ViOGZh
YTMyMmUzNmYwYzIyYmFjMTkxYTMzM2U4YWZhLi44NTgyYjQ1N2YzMWQ5MDAzYTI2NWZmMWUxOTIw
NjU0NWQwOWZlY2NjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9sYXJnZS12aWRlby13aXRoLWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aC1hdWRpby5odG1sCkBAIC0x
NCw3ICsxNCw3IEBACiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dCk7CiAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RN
ZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsKICAgICAgICAgICAg
IH0gY2F0Y2goZSkgewogICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICdjYWxsYmFj
azpwbGF5aW5nJzsKICAgICAgICAgICAgIH0KQEAgLTIzLDcgKzIzLDcgQEAKIAogICAgIGZ1bmN0
aW9uIG5vdFBsYXlpbmcoKSB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlp
bmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOwogICAgICAgICB9IGNhdGNoKGUpIHsgfQog
ICAgIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aG91dC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aG91dC1hdWRpby5odG1s
CmluZGV4IDNhYjc1MmU4NThjMTQxMWRmYjQyNGQwNzgyNmQ1NjFhNmQ3ZWE3NTkuLmY0OTJmYTRk
MzUyM2RkMzg3NmQ1NmRjODRhNTE3YjQxMjUyYmZkOWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGhvdXQtYXVkaW8uaHRt
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
by13aXRob3V0LWF1ZGlvLmh0bWwKQEAgLTEzLDcgKzEzLDcgQEAKICAgICBmdW5jdGlvbiBwbGF5
aW5nKCkgewogICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgICB0
cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hh
bmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CiAgICAg
ICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxiYWNr
OnBsYXlpbmcnOwogICAgICAgICB9CkBAIC0yMSw3ICsyMSw3IEBACiAKICAgICBmdW5jdGlvbiBu
b3RQbGF5aW5nKCkgewogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7
CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5w
b3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICB9
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWluZy1jbGljay10by1wYXVzZS5odG1sIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5
aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWwKaW5kZXggYzgxYTMxZTZjOWNkZjlkYzQ1MjdkNDI2YmM2
NTRhZjkwZWE1NzZjNS4uMjJkYmViZjEyZGZmMDk2NmE1MTFlZjE0NWI4YmNiZjk5Y2Y2NGJjYSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNr
LXRvLXBhdXNlLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAKICAgICAgICAgICAgIGZ1bmN0aW9uIGhh
bmRsZUZpcnN0UGF1c2UoKSB7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJw
YXVzZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsKICAgICAgICAgICAgICAg
ICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgICAgICAgICB9LCAwKTsKICAgICAgICAgICAg
IH0KQEAgLTI1LDcgKzI1LDcgQEAKICAgICAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVNlY29uZFBh
dXNlKCkgewogICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgicGF1c2VkIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZSgicGF1c2VkIik7CiAgICAgICAgICAgICAgICAgICAgIH0gY2F0
Y2goZSkgeyB9CiAgICAgICAgICAgICAgICAgfSwgMCk7CiAgICAgICAgICAgICB9CkBAIC0zMyw3
ICszMyw3IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAg
ICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAg
IHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIu
cG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChl
KSB7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9LCAwKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9z
LWF1dG9wbGF5aW5nLXNjcm9sbC10by12aWRlby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLXNjcm9sbC10by12aWRl
by5odG1sCmluZGV4IGRiNDNkNGJiNDVjYmE3ZjdhMGI1Yzc3MGJlNzVhZGE4OTgxMjgwN2QuLmQx
YzFhYWVhOTAyZDRhNjEzNjFjZDZhOTk0NzRjNzExYWVmYzIzYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWlu
Zy1zY3JvbGwtdG8tdmlkZW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctc2Nyb2xsLXRvLXZpZGVvLmh0bWwK
QEAgLTE0LDEzICsxNCwxMyBAQAogICAgICAgICAgICAgZnVuY3Rpb24gc2Nyb2xsVG9TZWNvbmRW
aWV3KCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWNvbmQi
KS5zY3JvbGxJbnRvVmlldygpOwogICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBs
YXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIpOworICAgICAgICAgICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgi
c2Nyb2xsZWQiKTsKICAgICAgICAgICAgICAgICB9LCAwKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5k
bGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0
b3BsYXllZCIpOwogICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhp
ZGVzLWNvbnRyb2xzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9sYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwKaW5kZXggZWE1
MDQ5NTMwNjkyZTI2ZTQzZTI3OTkyNjRjZDhiMjUwY2M5NGZkYy4uMzFmODZjYmM5NjM1NTNlYzc2
OGM0NGJjNzJhZTg3Njc5ZWNhMzhhMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBhdXNlZC12aWRlby1oaWRlcy1jb250cm9s
cy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdl
LXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbApAQCAtMTcsMTQgKzE3LDE0
IEBACiAgICAgZnVuY3Rpb24gaGFuZGxlUGF1c2VkKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgicGF1c2VkIik7
CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAg
ICAgICAgfSwgMCk7CiAgICAgfQogICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAg
ICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBv
c3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAg
ICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLW11dGVkLXZp
ZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwKaW5kZXggMmU1N2RmNzhiMWZlYjA0ZTgzMmUzZDlmMzFj
ZjliMmZhM2FmZGYyNy4uMzQ0ODZlMmUzZmQ2N2E1Y2Q3MTY4YzNiNzU1YjEyZmYwMWI3M2M2YyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy1t
dXRlZC12aWRlby1oaWRlcy1jb250cm9scy5odG1sCkBAIC0xNSwxNCArMTUsMTQgQEAKICAgICAg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2JhciIpLnNjcm9sbEludG9WaWV3KCk7CiAgICAg
ICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RN
ZXNzYWdlKCJwbGF5aW5nIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgICAg
IH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KICAgICBmdW5jdGlvbiBiZWdh
bkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAg
ICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNvbnRyb2xzLmh0bWwg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxh
eWluZy12aWRlby1rZWVwcy1jb250cm9scy5odG1sCmluZGV4IGRiN2NhYzZiOTkxOTQ2MzMyM2Iz
MzMxYWMzODhiZWU3ZWE1YzQ1MWYuLmI2ZmNmN2EwNTBjNWUwNmUxZTM2NmJmZTQyZDMxNWFhMjM3
MDQ3OTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNvbnRyb2xzLmh0bWwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmct
dmlkZW8ta2VlcHMtY29udHJvbHMuaHRtbApAQCAtMTQsMTQgKzE0LDE0IEBACiAgICAgICAgIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNiYXIiKS5zY3JvbGxJbnRvVmlldygpOwogICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2Fn
ZSgic2Nyb2xsZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKICAgICAgICAgICAgIH0g
Y2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KICAgICBmdW5jdGlvbiBiZWdhbkF1
dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5w
bGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJh
dXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRv
cGxheS5odG1sCmluZGV4IDc2NTI1NGQyM2Y4ODhhNTU2YjNkN2Y4ODFjMzZmMGRlNTk3ZjE3MDUu
LjNlMTcwY2VkNWQyOWRlYTJlMGQzN2JmZTg2MTZmZGVkNTNmYTkzODMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1
ZGlvLWF1dG9wbGF5Lmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbApAQCAtNCw3ICs0LDcg
QEAKICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3Bs
YXllZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNo
KGUpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3NraW5ueS1hdXRvcGxheWluZy12aWRlby13
aXRoLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9z
a2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCmluZGV4IGJhNDhkNGQ3MjA5
NzZlNTI0OTg2MGZkYWZkOTNiZDM5ZGJmNzg0YWYuLjI2ZWY1M2RjMjM0Y2MyYmZkM2FjMTk3N2Q5
MjI5NTA1ZjUwNjBlNmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL3NraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evc2tpbm55LWF1dG9wbGF5aW5n
LXZpZGVvLXdpdGgtYXVkaW8uaHRtbApAQCAtMTEsNyArMTEsNyBAQAogICAgIGZ1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBs
YXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CisgICAgICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlp
bmciKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3dpZGUt
YXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwK
aW5kZXggMGViOWFmNmFjN2U1Mzg1MTQyNjI0MzY2ODA0MWM2Yjk0YzI4OTVkNS4uZWEyY2I1MDYz
MjMwYTc2ZDMyZTZjNjc1Yzk4YTU3M2E0ZGZhYzVlZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1
ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evd2lk
ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAg
ICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgicGxheWluZyIpOworICAgICAg
ICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKCJwbGF5aW5nIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsgfQogICAgICAgICB9
LCAwKTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9D
YW5kaWRhdGVUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmRpZGF0
ZVRlc3RzLm1tCmluZGV4IGRmYWZlOTRmNTFhM2JjODNjOTE1ZDVhMTFmZjBkNmI1M2VjNzA0ZmYu
LmNhZWZkNTZkZjBlMGZlZmExZmYzZGQ0ODE0NTU2ZWMyMmM4MzY0MjkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmRpZGF0ZVRlc3RzLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmRpZGF0ZVRlc3RzLm1tCkBAIC0yNSw3ICsyNSwx
NCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMu
aCIKKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KKyNlbmRp
ZgorCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
Vmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21h
Yy9UZXN0V0tXZWJWaWV3TWFjLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJW
aWV3TWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTcxNzNhZGU0ZDE0MTcxYTAxYzYxNTMxYjQ5ZWM3YThkMjY3
MDEyMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dl
YlZpZXdNYWMuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXN0V0tX
ZWJWaWV3TWFjX2gKKyNkZWZpbmUgVGVzdFdLV2ViVmlld01hY19oCisKKyNpbXBvcnQgPFdlYktp
dC9XZWJLaXQuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykKKworQGlu
dGVyZmFjZSBUZXN0TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFu
ZGxlcj4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2Fn
ZSBoYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXI7CitAZW5kCisKK0BpbnRlcmZhY2Ug
VGVzdFdLV2ViVmlldyA6IFdLV2ViVmlldworLSAodm9pZCltb3VzZURvd25BdFBvaW50OihOU1Bv
aW50KXBvaW50OworLSAodm9pZClwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOihOU1N0cmlu
ZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbjsKKy0gKHZvaWQpbG9h
ZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7CistICh2b2lkKXR5cGVDaGFyYWN0
ZXI6KGNoYXIpY2hhcmFjdGVyOworLSAoTlNTdHJpbmcgKilzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdDsKKy0gKHZvaWQpd2FpdEZvck1lc3NhZ2U6KE5TU3Ry
aW5nICopbWVzc2FnZTsKKy0gKHZvaWQpcGVyZm9ybUFmdGVyTG9hZGluZzooZGlzcGF0Y2hfYmxv
Y2tfdClhY3Rpb25zOworQGVuZAorCisjZW5kaWYgLyogV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZP
Uk0oTUFDKSAqLworCisjZW5kaWYgLyogVGVzdFdLV2ViVmlld01hY19oICovCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDYzOTJiZWU1
YzdjNjE1YjRhZmM1MmViYjU3OTdjMzllNmMxNzhhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbQpAQCAtMCwwICsxLDEyNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlld01h
Yy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJV
dGlsaXRpZXMuaCIKKworI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgorI2ltcG9ydCA8V2ViS2l0
L1dlYktpdFByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGltcGxlbWVu
dGF0aW9uIFRlc3RNZXNzYWdlSGFuZGxlciB7CisgICAgZGlzcGF0Y2hfYmxvY2tfdCBfaGFuZGxl
cjsKKyAgICBOU1N0cmluZyAqX21lc3NhZ2U7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBoYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhh
bmRsZXIKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIF9oYW5kbGVyID0gW2hhbmRsZXIgY29weV07CisgICAgX21lc3NhZ2UgPSBt
ZXNzYWdlOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpdXNlckNvbnRlbnRDb250
cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlciBk
aWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZQoreworICAg
IGlmIChbKE5TU3RyaW5nICopW21lc3NhZ2UgYm9keV0gaXNFcXVhbFRvU3RyaW5nOl9tZXNzYWdl
XSAmJiBfaGFuZGxlcikKKyAgICAgICAgX2hhbmRsZXIoKTsKK30KKworQGVuZAorCitAaW1wbGVt
ZW50YXRpb24gVGVzdFdLV2ViVmlldworCistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9p
bnQpcG9pbnQKK3sKKyAgICBbc2VsZiBtb3VzZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludChwb2ludC54
LCBwb2ludC55KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUo
KSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4
dF0gZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF1dOworfQorCistICh2b2lk
KXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246
KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uCit7CisgICAgUmV0YWluUHRyPFRlc3RNZXNzYWdlSGFu
ZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRX
aXRoTWVzc2FnZTptZXNzYWdlIGhhbmRsZXI6YWN0aW9uXSk7CisgICAgV0tVc2VyQ29udGVudENv
bnRyb2xsZXIqIGNvbnRlbnRDb250cm9sbGVyID0gW1tzZWxmIGNvbmZpZ3VyYXRpb25dIHVzZXJD
b250ZW50Q29udHJvbGxlcl07CisgICAgW2NvbnRlbnRDb250cm9sbGVyIHJlbW92ZVNjcmlwdE1l
c3NhZ2VIYW5kbGVyRm9yTmFtZTpAInRlc3RIYW5kbGVyIl07CisgICAgW2NvbnRlbnRDb250cm9s
bGVyIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5k
bGVyIl07Cit9CisKKy0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5h
bWUKK3sKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6cGFnZU5hbWUgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il1dOworICAgIFtzZWxmIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworfQorCistICh2b2lkKXR5cGVD
aGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyIHsKKyAgICBOU1N0cmluZyAqY2hhcmFjdGVyQXNTdHJp
bmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVjIiAsIGNoYXJhY3Rlcl07CisgICAg
W3NlbGYga2V5RG93bjpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93
biBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJl
bnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJh
Y3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmlu
ZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKKyAgICBbc2VsZiBrZXlVcDpbTlNF
dmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAgbG9jYXRpb246TlNaZXJvUG9p
bnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93
TnVtYmVyOjAgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJBc1N0cmluZyBjaGFyYWN0
ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVyQXNTdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNv
ZGU6Y2hhcmFjdGVyXV07Cit9CisKKy0gKE5TU3RyaW5nICopc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDooTlNTdHJpbmcgKilzY3JpcHQKK3sKKyAgICBfX2Jsb2NrIGJvb2wgaXNXYWl0aW5n
Rm9ySmF2YVNjcmlwdCA9IGZhbHNlOworICAgIF9fYmxvY2sgTlNTdHJpbmcgKmV2YWxSZXN1bHQg
PSBuaWw7CisgICAgW3NlbGYgZXZhbHVhdGVKYXZhU2NyaXB0OnNjcmlwdCBjb21wbGV0aW9uSGFu
ZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpCisgICAgeworICAgICAgICBldmFsUmVz
dWx0ID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQCIsIHJlc3VsdF07CisgICAgICAg
IGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSB0cnVlOworICAgICAgICBFWFBFQ1RfVFJVRSghZXJy
b3IpOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc1dhaXRpbmdG
b3JKYXZhU2NyaXB0KTsKKyAgICByZXR1cm4gZXZhbFJlc3VsdDsKK30KKworLSAodm9pZCl3YWl0
Rm9yTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlCit7CisgICAgX19ibG9jayBib29sIGlzRG9u
ZVdhaXRpbmcgPSBmYWxzZTsKKyAgICBbc2VsZiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdl
Om1lc3NhZ2UgYWN0aW9uOl4oKQorICAgIHsKKyAgICAgICAgaXNEb25lV2FpdGluZyA9IHRydWU7
CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmVXYWl0aW5nKTsK
K30KKworLSAodm9pZClwZXJmb3JtQWZ0ZXJMb2FkaW5nOihkaXNwYXRjaF9ibG9ja190KWFjdGlv
bnMgeworICAgIFRlc3RNZXNzYWdlSGFuZGxlciAqaGFuZGxlciA9IFtbVGVzdE1lc3NhZ2VIYW5k
bGVyIGFsbG9jXSBpbml0V2l0aE1lc3NhZ2U6QCJsb2FkZWQiIGhhbmRsZXI6YWN0aW9uc107Cisg
ICAgTlNTdHJpbmcgKm9ubG9hZFNjcmlwdCA9IEAid2luZG93Lm9ubG9hZCA9ICgpID0+IHdpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLm9ubG9hZEhhbmRsZXIucG9zdE1lc3NhZ2UoJ2xvYWRl
ZCcpIjsKKyAgICBXS1VzZXJTY3JpcHQgKnNjcmlwdCA9IFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBp
bml0V2l0aFNvdXJjZTpvbmxvYWRTY3JpcHQgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk9dOworCisgICAgV0tV
c2VyQ29udGVudENvbnRyb2xsZXIqIGNvbnRlbnRDb250cm9sbGVyID0gW1tzZWxmIGNvbmZpZ3Vy
YXRpb25dIHVzZXJDb250ZW50Q29udHJvbGxlcl07CisgICAgW2NvbnRlbnRDb250cm9sbGVyIGFk
ZFVzZXJTY3JpcHQ6c2NyaXB0XTsKKyAgICBbY29udGVudENvbnRyb2xsZXIgYWRkU2NyaXB0TWVz
c2FnZUhhbmRsZXI6aGFuZGxlciBuYW1lOkAib25sb2FkSGFuZGxlciJdOworfQorCitAZW5kCisK
KyNlbmRpZiAvKiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288963</attachid>
            <date>2016-09-15 09:58:03 -0700</date>
            <delta_ts>2016-09-15 11:36:13 -0700</delta_ts>
            <desc>Address iOS build failure.</desc>
            <filename>bug-162009-20160915095525.patch</filename>
            <type>text/plain</type>
            <size>81415</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWIxMzhkNTU1OWRiNGMx
MmVjMjVhMDFmYzkyYjk5YzhkM2YyZGFiZC4uOWZmNzI2YWE1MmI5YjViMzc3MWRiZmYzNzc5NDE2
Y2JhZWU2ZDNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDE2LTA5LTE1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEluc2VydGluZyBh
IHNwYWNlIGFmdGVyIGluc2VydGluZyBhbiBhY2NlcHRlZCBjYW5kaWRhdGUgc2Nyb2xscyB0aGUg
ZG9jdW1lbnQgYW5kIGNhdXNlcyBhIGZsaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjAwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgw
ODYyMzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWZ0ZXIgaW5zZXJ0aW5nIGEgdGV4dCBjYW5kaWRhdGUsIGlmIHRoZSBjYW5kaWRhdGUgZW5kZWQg
d2l0aCBhIHNvZnQgc3BhY2UsIHRoZSBuZXh0IHNwYWNlIHdlIGluc2VydCBzaG91bGQganVzdAor
ICAgICAgICByZXBsYWNlIHRoZSBzb2Z0IHNwYWNlLiBUaGlzIGN1cnJlbnRseSB3b3JrcyBiZWNh
dXNlIHdlIGxlYXZlIHRoZSB0ZXh0IGluc2VydGlvbiBvdXQgb2YgdGhlIGxpc3Qgb2YKKyAgICAg
ICAgS2V5cHJlc3NDb21tYW5kcyBzZW50IHRvIHRoZSB3ZWIgcHJvY2VzcyBhbmQgaW5zdGVhZCBy
ZXBsYWNlIHRoZSBzb2Z0IHNwYWNlIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMuCisgICAg
ICAgIEhvd2V2ZXIsIHRoaXMgbWVhbnMgd2hlbiB0aGUgd2ViIHByb2Nlc3MgaGFuZGxlcyB0aGlz
IGtleWRvd24gZXZlbnQsIHRoZSBjdXJyZW50IGVkaXRvciB3aWxsIG5vdCBoYW5kbGUgaXQsCisg
ICAgICAgIHNpbmNlIHRoZSBsaXN0IG9mIGtleSBjb21tYW5kcyBpcyBlbXB0eSBkZXNwaXRlIHRo
ZSB0ZXh0IGFuZCB1bm1vZGlmaWVkIHRleHQgYmVpbmcgbm9uLWVtcHR5LgorCisgICAgICAgIFRv
IGZpeCB0aGlzLCB3aGVuIHNlbmRpbmcga2V5ZG93biBvciBrZXl1cCBldmVudHMgd2hlcmUgd2Ug
cmVwbGFjZSBhIHNvZnQgc3BhY2UsIHdlIHNldCB0aGUga2V5IGV2ZW50J3MgdGV4dCB0bworICAg
ICAgICBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiBhIHNwYWNlLiBUaGlzIGFsbG93cyB1cyB0
byByZXR1cm4gZWFybHkgaW4gRXZlbnRIYW5kbGVyOjprZXlFdmVudCBhbmQgYXZvaWQgdGhlCisg
ICAgICAgIGNvZGVwYXRoIHRoYXQgdHJpZXMgdG8gaW5zZXJ0IHRleHQgaW50byB0aGUgY3VycmVu
dCBlZGl0b3IgYW5kIChpbiB0aGUgY2FzZSBvZiBpbnNlcnRpbmcgYSAnICcpIHNjcm9sbHMgdGhl
CisgICAgICAgIGRvY3VtZW50IGlmIG5lY2Vzc2FyeS4gU2luY2Ugd2UndmUgYWxyZWFkeSBoYW5k
bGVkIHRleHQgaW5zZXJ0aW9uIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMsIHRoZXJlIGlz
IG5vIG5lZWQKKyAgICAgICAgdG8gYWxzbyBkaXNwYXRjaCB0aGUga2V5cHJlc3MgdG8gdGhlIGVk
aXRvci4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGZsaWNr
ZXJpbmcgaW4gdGhlIGNhbmRpZGF0ZXMgVUkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgd2UncmUgYXN5
bmNocm9ub3VzbHkKKyAgICAgICAgcmVwbGFjaW5nIHRoZSBsYXN0IHNvZnQgc3BhY2UuIER1cmlu
ZyB0aGlzIG9wZXJhdGlvbiwgd2Ugc2VsZWN0IHRoZSByYW5nZSBvZiB0aGUgc29mdCBzcGFjZSBh
bmQgdGhlbiBpbnNlcnQgdGhlCisgICAgICAgIG5ldyB0ZXh0LiBUaGlzIGNhdXNlcyBhIG1vbWVu
dGFyeSByYW5nZSBzZWxlY3Rpb24gd2hpY2ggdGhlIHdlYiBwcm9jZXNzIG5vdGlmaWVzIHRoZSBV
SSBwcm9jZXNzIGFib3V0LCBwcm9tcHRpbmcKKyAgICAgICAgdXMgdG8gaGlkZSB0aGUgY2FuZGlk
YXRlcyBsaXN0LiBUbyBhZGRyZXNzIHRoaXMsIHdlIHB1dCBndWFyZHMgYXJvdW5kIHRoaXMgcHJv
Y2VzcyBvZiBhc3luY2hyb25vdXMgdGV4dAorICAgICAgICBpbnNlcnRpb24gYW5kIG1ha2Ugc3Vy
ZSB0aGF0IHdlIGRvbid0IHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY2FuZGlkYXRlcyBs
aXN0IGR1cmluZyB0aGlzIHRpbWUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIDIgbmV3IFdl
YktpdCBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dC5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaDoKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6dGV4
dEZyb21FdmVudCk6CisgICAgICAgIChXZWJLaXQ6OnVubW9kaWZpZWRUZXh0RnJvbUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYW5k
bGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2U6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc0lu
c2VydGluZ1RleHRBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp3aWxsSW5zZXJ0VGV4dEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmRpZEluc2VydFRleHRBc3luY2hyb25vdXNseSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Zm9y
Y2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6ZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6aW5zZXJ0VGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3Jt
S2V5RXF1aXZhbGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlVcCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlEb3duKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRJbnNlcnRUZXh0QXN5bmMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6Omluc2VydFRleHRBc3luYyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OndpbGxJbnNlcnRUZXh0QXN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkSW5zZXJ0VGV4dEFzeW5jKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6Ondp
bGxJbnNlcnRUZXh0QXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlk
SW5zZXJ0VGV4dEFzeW5jKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omluc2VydFRleHRBc3luYyk6CisKIDIwMTYt
MDktMTQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
TWVkaWEgY29udHJvbHMgYmVoYXZlIHN0cmFuZ2VseSB3aGVuIGNoYW5naW5nIG1lZGlhIHNvdXJj
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCmlu
ZGV4IDIzY2M3NGE1Yzg4MTg0YTY3ODI4NjA3M2U4MjZkNDBkOGU3MmQzZWIuLjIyY2E2MWUzNGM4
ZmJhOGExNDI3M2UwNjNjZjQzZGE1NTA5NTFhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaApAQCAtNjAsNyArNjAsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQgOiBwdWJsaWMgV2ViS2V5Ym9h
cmRFdmVudCB7CiBwdWJsaWM6CiAjaWYgVVNFKEFQUEtJVCkKLSAgICBOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KE5TRXZlbnQgKiwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9y
PFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mKTsKKyAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50
KE5TRXZlbnQgKiwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgYm9vbCByZXBsYWNlc1NvZnRT
cGFjZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mKTsKICNlbGlmIFBM
QVRGT1JNKEdUSykKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGNvbnN0IE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQmKTsKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KEdka0V2ZW50KiwgY29u
c3QgV2ViQ29yZTo6Q29tcG9zaXRpb25SZXN1bHRzJiwgSW5wdXRNZXRob2RGaWx0ZXI6OkV2ZW50
RmFrZWRGb3JDb21wb3NpdGlvbiwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL05hdGl2ZVdlYktleWJvYXJkRXZlbnRNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL05hdGl2ZVdlYktleWJvYXJkRXZlbnRNYWMu
bW0KaW5kZXggYWZiM2I2MDcxMGM2YWJkYThlYzY2OGRjZmI1NWY1ZWFhY2ZiMmU3Zi4uNmY1OWNi
YjQzODI4MzJmMDUyN2M3MTVlZWQ2Y2FlNzIwNjMyZGEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbQpAQCAtMzUs
OCArMzUsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLU5hdGl2ZVdlYktleWJvYXJkRXZlbnQ6Ok5hdGl2ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVu
dCAqZXZlbnQsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxLZXlwcmVz
c0NvbW1hbmQ+JiBjb21tYW5kcykKLSAgICA6IFdlYktleWJvYXJkRXZlbnQoV2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwg
Y29tbWFuZHMpKQorTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dChOU0V2ZW50ICpldmVudCwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgYm9vbCByZXBsYWNl
c1NvZnRTcGFjZSwgY29uc3QgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQorICAg
IDogV2ViS2V5Ym9hcmRFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZl
bnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCByZXBsYWNlc1NvZnRTcGFjZSwgY29tbWFu
ZHMpKQogICAgICwgbV9uYXRpdmVFdmVudChldmVudCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oCmluZGV4IDU5OTk1Zjg3M2Y0MzQyOTRhNDg4NDI2
NTU1ZjFhNmZmNzZkYjNjZDUuLmJlODcyY2ViNjhhNWFjY2Y3YmM2YmZhYmQyMWQyMzRkZGQ5NjQy
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaApAQCAt
NDQsNyArNDQsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEFQUEtJVCkKICAgICBzdGF0aWMgV2ViTW91
c2VFdmVudCBjcmVhdGVXZWJNb3VzZUV2ZW50KE5TRXZlbnQgKiwgTlNFdmVudCAqbGFzdFByZXNz
dXJlRXZlbnQsIE5TVmlldyAqd2luZG93Vmlldyk7CiAgICAgc3RhdGljIFdlYldoZWVsRXZlbnQg
Y3JlYXRlV2ViV2hlZWxFdmVudChOU0V2ZW50ICosIE5TVmlldyAqd2luZG93Vmlldyk7Ci0gICAg
c3RhdGljIFdlYktleWJvYXJkRXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICos
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQ+Jik7CisgICAgc3RhdGljIFdlYktleWJvYXJkRXZlbnQgY3JlYXRlV2ViS2V5Ym9h
cmRFdmVudChOU0V2ZW50ICosIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJvb2wgcmVwbGFj
ZXNTb2Z0U3BhY2UsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+Jik7CiAg
ICAgc3RhdGljIGJvb2wgc2hvdWxkQmVIYW5kbGVkQXNDb250ZXh0Q2xpY2soY29uc3QgV2ViQ29y
ZTo6UGxhdGZvcm1Nb3VzZUV2ZW50Jik7CiAjZW5kaWYgLy8gVVNFKEFQUEtJVCkKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDViZGJjOGZk
NmRlMTg5MTA1OTQ0NWY0NDQ1NzFhZjNiNmNhNzQyODYuLjVmM2JhOTI4YmZiMThlYWJiY2M1NWE1
ODU1ZTdhNTY2NjlhYmEzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
V2ViRXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZl
bnRGYWN0b3J5Lm1tCkBAIC0yMzYsOCArMjM2LDEwIEBAIHN0YXRpYyBXZWJXaGVlbEV2ZW50OjpQ
aGFzZSBtb21lbnR1bVBoYXNlRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFdlYldoZWVsRXZlbnQ6OlBoYXNlPihwaGFzZSk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgU3RyaW5nIHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQpCitzdGF0aWMgaW5saW5lIFN0
cmluZyB0ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxhY2VzU29mdFNwYWNl
KQogeworICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKKyAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaWYgKFtldmVu
dCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKQEAgLTI0Niw4ICsyNDgsMTAgQEAgc3RhdGljIGlu
bGluZSBTdHJpbmcgdGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCkKICAgICByZXR1cm4gU3Ry
aW5nKFtldmVudCBjaGFyYWN0ZXJzXSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgU3RyaW5nIHVubW9k
aWZpZWRUZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50KQorc3RhdGljIGlubGluZSBTdHJpbmcg
dW5tb2RpZmllZFRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFjZXNTb2Z0
U3BhY2UpCiB7CisgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQorICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpZiAo
W2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQpAQCAtNDU3LDExICs0NjEsMTEgQEAgV2Vi
V2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoTlNFdmVudCAq
ZXZlbnQsIE5TVmlldyAqd2luZG8KICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6
V2hlZWwsIEludFBvaW50KHBvc2l0aW9uKSwgSW50UG9pbnQoZ2xvYmFsUG9zaXRpb24pLCBGbG9h
dFNpemUoZGVsdGFYLCBkZWx0YVkpLCBGbG9hdFNpemUod2hlZWxUaWNrc1gsIHdoZWVsVGlja3NZ
KSwgZ3JhbnVsYXJpdHksIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgcGhhc2UsIG1vbWVu
dHVtUGhhc2UsIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHNjcm9sbENvdW50LCB1bmFjY2Vs
ZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIG1vZGlmaWVycywgdGltZXN0YW1wKTsKIH0KIAotV2ViS2V5
Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVu
dCAqZXZlbnQsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykKK1dlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGhhbmRs
ZWRCeUlucHV0TWV0aG9kLCBib29sIHJlcGxhY2VzU29mdFNwYWNlLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpCiB7CiAgICAgV2ViRXZlbnQ6OlR5cGUg
dHlwZSAgICAgICAgICAgICA9IGlzS2V5VXBFdmVudChldmVudCkgPyBXZWJFdmVudDo6S2V5VXAg
OiBXZWJFdmVudDo6S2V5RG93bjsKLSAgICBTdHJpbmcgdGV4dCAgICAgICAgICAgICAgICAgICAg
ID0gdGV4dEZyb21FdmVudChldmVudCk7Ci0gICAgU3RyaW5nIHVubW9kaWZpZWRUZXh0ICAgICAg
ICAgICA9IHVubW9kaWZpZWRUZXh0RnJvbUV2ZW50KGV2ZW50KTsKKyAgICBTdHJpbmcgdGV4dCAg
ICAgICAgICAgICAgICAgICAgID0gdGV4dEZyb21FdmVudChldmVudCwgcmVwbGFjZXNTb2Z0U3Bh
Y2UpOworICAgIFN0cmluZyB1bm1vZGlmaWVkVGV4dCAgICAgICAgICAgPSB1bm1vZGlmaWVkVGV4
dEZyb21FdmVudChldmVudCwgcmVwbGFjZXNTb2Z0U3BhY2UpOwogICAgIFN0cmluZyBrZXlJZGVu
dGlmaWVyICAgICAgICAgICAgPSBrZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoZXZlbnQpOwogICAg
IGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUgICAgICAgPSB3aW5kb3dzS2V5Q29kZUZvcktleUV2
ZW50KGV2ZW50KTsKICAgICBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUgICAgICAgID0gW2V2ZW50
IGtleUNvZGVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQppbmRleCAyYjg0NDk4NjJhNGI3NGQ4NTY4MTgxNDFhN2JjOTc4ZDBjNGE5M2I2Li5k
Mzg5NmE2MmZlNTNkZTIzZmJmYWIxYTUxYTAyYzdjNjA4ODgwNDkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNDU2NCw2ICs0NTY0
LDIzIEBAIC0gKHZvaWQpX2hhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZTooTlNTdHJp
bmcgKilpZGVudGlmaWVyCiB7CiAgICAgLy8gT3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzLgogfQor
CistICh2b2lkKV9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTooTlNUZXh0Q2hlY2tpbmdSZXN1bHQg
KiljYW5kaWRhdGUKK3sKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTIwMAorICAgIF9pbXBsLT5oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZShjYW5kaWRhdGUpOworI2Vu
ZGlmCit9CisKKy0gKHZvaWQpX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlCit7CisgICAgLy8g
T3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzLgorfQorCistICh2b2lkKV9mb3JjZVJlcXVlc3RDYW5k
aWRhdGVzCit7CisgICAgX2ltcGwtPmZvcmNlUmVxdWVzdENhbmRpZGF0ZXNGb3JUZXN0aW5nKCk7
Cit9CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCiAvLyBFeGVjdXRlIHRoZSBzdXBwbGllZCBi
bG9jayBhZnRlciB0aGUgbmV4dCB0cmFuc2FjdGlvbiBmcm9tIHRoZSBXZWJQcm9jZXNzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAppbmRleCAzYzM0MzNjM2QxMGU3MWE2MWFkZmFjYzM5ZmU1YmQwODE2ZWFhODE3Li5lMDU1
MTY1Nzk3MWM1YjdlODBiYWY0NmE1NjJhNDliNjgyNWJkZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjcz
LDYgKzI3Myw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlv
blR5cGUpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzQWN0aXZl
VmlkZW9Gb3JDb250cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsK
IC0gKHZvaWQpX3JlcXVlc3RDb250cm9sbGVkRWxlbWVudElEIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX2hhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNw
b25zZTooTlNTdHJpbmcgKilpZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpKTsKKy0gKHZvaWQpX2hhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOihOU1RleHRDaGVja2lu
Z1Jlc3VsdCAqKWNhbmRpZGF0ZTsKKy0gKHZvaWQpX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRl
OworLSAodm9pZClfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlczsKICNlbmRpZgogCiAtICh2b2lkKV9k
b0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZToodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCA0OTk0M2YxNmNiNWVkYzM1
ZTljYTc2OTU2NzZkYTgzMDdlZDg4NDRmLi5jYmQxNzU1Y2NmMDE3OGE4NjFkN2VhOWVmOTgxMDZj
YjcyOTViYzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaApAQCAtODQsNiArODQsNyBAQCBPQkpDX0NMQVNTIF9XS1RodW1ibmFpbFZpZXc7CiBAb3B0
aW9uYWwKIC0gKHZvaWQpX3dlYl9kaWRBZGRNZWRpYUNvbnRyb2xzTWFuYWdlcjooaWQpY29udHJv
bHNNYW5hZ2VyOwogLSAodm9pZClfd2ViX2RpZFJlbW92ZU1lZGlhQ29udHJvbHNNYW5hZ2VyOwor
LSAodm9pZClfZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGU7CiAKIEBlbmQKIApAQCAtMzU5LDYg
KzM2MCwxMCBAQCBwdWJsaWM6CiAgICAgTlNTdHJpbmcgKnN0cmluZ0ZvclRvb2xUaXAoTlNUb29s
VGlwVGFnIHRhZyk7CiAgICAgdm9pZCB0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmIG9sZFRv
b2xUaXAsIGNvbnN0IFN0cmluZyYgbmV3VG9vbFRpcCk7CiAKKyAgICBib29sIGlzSW5zZXJ0aW5n
VGV4dEFzeW5jaHJvbm91c2x5KCkgY29uc3QgeyByZXR1cm4gbV9pc0luc2VydGluZ1RleHRBc3lu
Y2hyb25vdXNseTsgfQorICAgIHZvaWQgd2lsbEluc2VydFRleHRBc3luY2hyb25vdXNseSgpIHsg
bV9pc0luc2VydGluZ1RleHRBc3luY2hyb25vdXNseSA9IHRydWU7IH0KKyAgICB2b2lkIGRpZElu
c2VydFRleHRBc3luY2hyb25vdXNseSgpIHsgbV9pc0luc2VydGluZ1RleHRBc3luY2hyb25vdXNs
eSA9IGZhbHNlOyB9CisKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5
ZXIoQ0FMYXllciAqKTsKICAgICBDQUxheWVyICphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExh
eWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5ZXIuZ2V0KCk7IH0KIApAQCAtNDc4LDYgKzQ4
Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJpZ2h0TW91c2VVcChOU0V2ZW50ICopOwogCiAgICAg
dm9pZCB1cGRhdGVXZWJWaWV3SW1wbEFkZGl0aW9ucygpOworICAgIHZvaWQgZm9yY2VSZXF1ZXN0
Q2FuZGlkYXRlc0ZvclRlc3RpbmcoKTsKICAgICBib29sIHNob3VsZFJlcXVlc3RDYW5kaWRhdGVz
KCkgY29uc3Q7CiAgICAgdm9pZCBzaG93Q2FuZGlkYXRlcyhOU0FycmF5ICpjYW5kaWRhdGVzLCBO
U1N0cmluZyAqLCBOU1JlY3QgcmVjdE9mVHlwZWRTdHJpbmcsIE5TUmFuZ2Ugc2VsZWN0ZWRSYW5n
ZSwgTlNWaWV3ICosIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoTlNUZXh0Q2hlY2tpbmdSZXN1
bHQgKmFjY2VwdGVkQ2FuZGlkYXRlKSk7CiAgICAgdm9pZCB3ZWJWaWV3SW1wbEFkZGl0aW9uc1dp
bGxEZXN0cm95VmlldygpOwpAQCAtNjQ5LDYgKzY1NSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2lzSGFuZGxpbmdBY2NlcHRlZENhbmRpZGF0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlcXVp
cmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9lZGl0YWJsZUVsZW1lbnRJc0ZvY3VzZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0lu
c2VydGluZ1RleHRBc3luY2hyb25vdXNseSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzVGV4dElu
c2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSB7IGZhbHNlIH07CiB9OwogICAgIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KaW5kZXggNjUxNjllZDkzZTRkMDI1MDNmZjEzNDVmMjBkZTA5MzA5NGY4MzBhMS4uNzhl
NjcyM2E1ZGZjOTk2NGIxMWIwOWFlMGIzNzFkZDEwZTkzZWQ4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtNDQxLDYgKzQ0MSwxMCBAQCB2
b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVXZWJWaWV3SW1wbEFkZGl0aW9ucygpCiB7CiB9CiAKK3Zv
aWQgV2ViVmlld0ltcGw6OmZvcmNlUmVxdWVzdENhbmRpZGF0ZXNGb3JUZXN0aW5nKCkKK3sKK30K
KwogYm9vbCBXZWJWaWV3SW1wbDo6c2hvdWxkUmVxdWVzdENhbmRpZGF0ZXMoKSBjb25zdAogewog
ICAgIHJldHVybiBmYWxzZTsKQEAgLTYyMCw3ICs2MjQsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpi
ZWNvbWVGaXJzdFJlc3BvbmRlcigpCiAgICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlE
b3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKQogICAgICAgICAgICAga2V5Ym9hcmRFdmVu
dCA9IGV2ZW50OwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBtX3BhZ2Ut
PnNldEluaXRpYWxGb2N1cyhkaXJlY3Rpb24gPT0gTlNTZWxlY3RpbmdOZXh0LCBrZXlib2FyZEV2
ZW50ICE9IG5pbCwgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50LCBmYWxzZSwg
eyB9KSwgW10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7IH0pOworICAgICAgICBtX3Bh
Z2UtPnNldEluaXRpYWxGb2N1cyhkaXJlY3Rpb24gPT0gTlNTZWxlY3RpbmdOZXh0LCBrZXlib2Fy
ZEV2ZW50ICE9IG5pbCwgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50LCBmYWxz
ZSwgZmFsc2UsIHsgfSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKICAg
ICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yNDM2LDYgKzI0NDAsOSBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZShDR1NpemUgbmV3U2l6ZSkKIHZvaWQgV2ViVmll
d0ltcGw6OmRpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKCkKIHsKICAgICBtX2lzSGFuZGxpbmdB
Y2NlcHRlZENhbmRpZGF0ZSA9IGZhbHNlOworCisgICAgaWYgKFttX3ZpZXcgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3RvcihfZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUpXSkKKyAgICAgICAg
W21fdmlldyBfZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGVdOwogfQogCiB2b2lkIFdlYlZpZXdJ
bXBsOjp2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpCkBAIC0zNTY3LDEzICszNTc0LDE0
IEBAIHZvaWQgV2ViVmlld0ltcGw6Omluc2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxh
Y2VtZW50UmFuZ2UpCiAgICAgfSBlbHNlCiAgICAgICAgIHRleHQgPSBzdHJpbmc7CiAKLSAgICBC
T09MIG5lZWRUb1JlbW92ZVNvZnRTcGFjZSA9IE5POworICAgIG1faXNUZXh0SW5zZXJ0aW9uUmVw
bGFjaW5nU29mdFNwYWNlID0gZmFsc2U7CiAjaWYgSEFWRShBRFZBTkNFRF9TUEVMTF9DSEVDS0lO
RykKICAgICBpZiAobV9zb2Z0U3BhY2VSYW5nZS5sb2NhdGlvbiAhPSBOU05vdEZvdW5kICYmIChy
ZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uID09IE5TTWF4UmFuZ2UobV9zb2Z0U3BhY2VSYW5nZSkg
fHwgcmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKSAmJiByZXBsYWNlbWVu
dFJhbmdlLmxlbmd0aCA9PSAwICYmIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2Vy
XSBkZWxldGVzQXV0b3NwYWNlQmVmb3JlU3RyaW5nOnRleHQgbGFuZ3VhZ2U6bmlsXSkgewogICAg
ICAgICByZXBsYWNlbWVudFJhbmdlID0gbV9zb2Z0U3BhY2VSYW5nZTsKLSAgICAgICAgbmVlZFRv
UmVtb3ZlU29mdFNwYWNlID0gWUVTOworICAgICAgICBtX2lzVGV4dEluc2VydGlvblJlcGxhY2lu
Z1NvZnRTcGFjZSA9IHRydWU7CiAgICAgfQogI2VuZGlmCisKICAgICBtX3NvZnRTcGFjZVJhbmdl
ID0gTlNNYWtlUmFuZ2UoTlNOb3RGb3VuZCwgMCk7CiAKICAgICAvLyBpbnNlcnRUZXh0IGNhbiBi
ZSBjYWxsZWQgZm9yIHNldmVyYWwgcmVhc29uczoKQEAgLTM1ODIsNyArMzU5MCw3IEBAIHZvaWQg
V2ViVmlld0ltcGw6Omluc2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFu
Z2UpCiAgICAgLy8gLSBJZiBpdCdzIHNlbnQgb3V0c2lkZSBvZiBrZXlib2FyZCBldmVudCBwcm9j
ZXNzaW5nIChlLmcuIGZyb20gQ2hhcmFjdGVyIFZpZXdlciwgb3Igd2hlbiBjb25maXJtaW5nIGFu
IGlubGluZSBpbnB1dCBhcmVhIHdpdGggYSBtb3VzZSksCiAgICAgLy8gdGhlbiB3ZSBhbHNvIGV4
ZWN1dGUgaXQgaW1tZWRpYXRlbHksIGFzIHRoZXJlIHdpbGwgYmUgbm8gb3RoZXIgY2hhbmNlLgog
ICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+KiBrZXlwcmVzc0NvbW1hbmRzID0g
bV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzOwotICAgIGlmIChrZXlwcmVzc0NvbW1hbmRzICYm
ICFuZWVkVG9SZW1vdmVTb2Z0U3BhY2UpIHsKKyAgICBpZiAoa2V5cHJlc3NDb21tYW5kcyAmJiAh
bV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UpIHsKICAgICAgICAgQVNTRVJUKHJl
cGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCk7CiAgICAgICAgIFdlYkNvcmU6
OktleXByZXNzQ29tbWFuZCBjb21tYW5kKCJpbnNlcnRUZXh0OiIsIHRleHQpOwogICAgICAgICBr
ZXlwcmVzc0NvbW1hbmRzLT5hcHBlbmQoY29tbWFuZCk7CkBAIC0zNTk2LDcgKzM2MDQsNyBAQCB2
b2lkIFdlYlZpZXdJbXBsOjppbnNlcnRUZXh0KGlkIHN0cmluZywgTlNSYW5nZSByZXBsYWNlbWVu
dFJhbmdlKQogICAgIGlmICghZGljdGF0aW9uQWx0ZXJuYXRpdmVzLmlzRW1wdHkoKSkKICAgICAg
ICAgbV9wYWdlLT5pbnNlcnREaWN0YXRlZFRleHRBc3luYyhldmVudFRleHQsIHJlcGxhY2VtZW50
UmFuZ2UsIGRpY3RhdGlvbkFsdGVybmF0aXZlcywgcmVnaXN0ZXJVbmRvR3JvdXApOwogICAgIGVs
c2UKLSAgICAgICAgbV9wYWdlLT5pbnNlcnRUZXh0QXN5bmMoZXZlbnRUZXh0LCByZXBsYWNlbWVu
dFJhbmdlLCByZWdpc3RlclVuZG9Hcm91cCwgbmVlZFRvUmVtb3ZlU29mdFNwYWNlID8gRWRpdGlu
Z1JhbmdlSXNSZWxhdGl2ZVRvOjpQYXJhZ3JhcGggOiBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG86
OkVkaXRhYmxlUm9vdCk7CisgICAgICAgIG1fcGFnZS0+aW5zZXJ0VGV4dEFzeW5jKGV2ZW50VGV4
dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXAsIG1faXNUZXh0SW5zZXJ0aW9u
UmVwbGFjaW5nU29mdFNwYWNlID8gRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpQYXJhZ3JhcGgg
OiBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG86OkVkaXRhYmxlUm9vdCk7CiB9CiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OnNlbGVjdGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9pZCheY29tcGxl
dGlvbkhhbmRsZXJQdHIpKE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSkpCkBAIC0zODcwLDcgKzM4Nzgs
NyBAQCBib29sIFdlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2ZW50ICpldmVu
dCkKICAgICAvLyBGSVhNRTogV2h5IGlzIHRoZSBmaXJzdFJlc3BvbmRlciBjaGVjayBuZWVkZWQ/
CiAgICAgaWYgKG1fdmlldyA9PSBtX3ZpZXcud2luZG93LmZpcnN0UmVzcG9uZGVyKSB7CiAgICAg
ICAgIGludGVycHJldEtleUV2ZW50KGV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewotICAg
ICAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOworICAgICAgICAgICAg
bV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQs
IGhhbmRsZWRCeUlucHV0TWV0aG9kLCBmYWxzZSwgY29tbWFuZHMpKTsKICAgICAgICAgfSk7CiAg
ICAgICAgIHJldHVybiBZRVM7CiAgICAgfQpAQCAtMzg4NSw5ICszODkzLDEwIEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OmtleVVwKE5TRXZlbnQgKmV2ZW50KQogCiAgICAgTE9HKFRleHRJbnB1dCwgImtl
eVVwOiVwICVAIiwgZXZlbnQsIGV2ZW50KTsKIAorICAgIG1faXNUZXh0SW5zZXJ0aW9uUmVwbGFj
aW5nU29mdFNwYWNlID0gZmFsc2U7CiAgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIF4oQk9P
TCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29t
bWFuZD4mIGNvbW1hbmRzKSB7CiAgICAgICAgIEFTU0VSVCghaGFuZGxlZEJ5SW5wdXRNZXRob2Qg
fHwgY29tbWFuZHMuaXNFbXB0eSgpKTsKLSAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2
ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBj
b21tYW5kcykpOworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIG1faXNUZXh0SW5zZXJ0
aW9uUmVwbGFjaW5nU29mdFNwYWNlLCBjb21tYW5kcykpOwogICAgIH0pOwogfQogCkBAIC0zOTEy
LDkgKzM5MjEsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6a2V5RG93bihOU0V2ZW50ICpldmVudCkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1faXNUZXh0SW5zZXJ0aW9uUmVwbGFjaW5n
U29mdFNwYWNlID0gZmFsc2U7CiAgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIF4oQk9PTCBo
YW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFu
ZD4mIGNvbW1hbmRzKSB7CiAgICAgICAgIEFTU0VSVCghaGFuZGxlZEJ5SW5wdXRNZXRob2QgfHwg
Y29tbWFuZHMuaXNFbXB0eSgpKTsKLSAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50
KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21t
YW5kcykpOworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIG1faXNUZXh0SW5zZXJ0aW9u
UmVwbGFjaW5nU29mdFNwYWNlLCBjb21tYW5kcykpOwogICAgIH0pOwogfQogCkBAIC0zOTMwLDcg
KzM5NDAsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGludGVycHJldEtleUV2ZW50KGV2ZW50LCBeKEJPT0wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1h
bmQ+JiBjb21tYW5kcykgewotICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRz
KSk7CisgICAgICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgZmFsc2UsIGNvbW1hbmRzKSk7CiAg
ICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDFiMjRk
YjI3NWU4Y2UwYjIwYjZjZWU0ZjMwNWI1YmY1OWM4MWVhN2QuLjQ4Nzc3MzE0OTcwMTZmYzZhNjIy
MTQ4M2U3ZDZjZDg0ZWNlMDM2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aApAQCAtMTgwLDYgKzE4MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihMYXllck9yVmlldyAqKSA9IDA7CiAgICAgdmlydHVh
bCBMYXllck9yVmlldyAqYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiB0YWtlVmlld1NuYXBzaG90
KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsSW5zZXJ0VGV4dEFzeW5jKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRUZXh0QXN5bmMoKSA9IDA7CiAjaWYgRU5BQkxFKE1BQ19H
RVNUVVJFX0VWRU5UUykKICAgICB2aXJ0dWFsIHZvaWQgZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxl
ZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJHZXN0dXJlRXZlbnQmKSA9IDA7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDJjMmMyMjA4Yjli
OTg3ZTc3M2QwYmU0ZWMwMjczNmI4NjJlZDk4Ny4uMmQ4MjFkY2IxYzMyNDQ0ZDI3MzAxMjEzMTlm
ODlhNDgyOTFmMGI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTYxMzksMTEgKzYxMzksMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmFkZE1JTUVUeXBl
V2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRJbnNlcnRUZXh0QXN5bmMo
KQoreworICAgIG1fcGFnZUNsaWVudC5kaWRJbnNlcnRUZXh0QXN5bmMoKTsKK30KKwogdm9pZCBX
ZWJQYWdlUHJveHk6Omluc2VydFRleHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEVk
aXRpbmdSYW5nZSYgcmVwbGFjZW1lbnRSYW5nZSwgYm9vbCByZWdpc3RlclVuZG9Hcm91cCwgRWRp
dGluZ1JhbmdlSXNSZWxhdGl2ZVRvIGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbykKIHsKICAgICBp
ZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9wYWdlQ2xpZW50LndpbGxJ
bnNlcnRUZXh0QXN5bmMoKTsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
SW5zZXJ0VGV4dEFzeW5jKHRleHQsIHJlcGxhY2VtZW50UmFuZ2UsIHJlZ2lzdGVyVW5kb0dyb3Vw
LCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvKSksIG1fcGFn
ZUlEKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDZm
YTU5NzViMzU4MjI1ZDc5NzNjNDNlMDMwZDM5ZThmYTg4ZGIzNGEuLjM0MzM4NjEzYjg2YjlkZDhi
Y2JhNDA4NTEyMDBlMDM5MDA2OGI3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTU2Myw2ICs1NjMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nUm9vdExheWVyKExheWVyT3JWaWV3Kik7CiAgICAgTGF5ZXJPclZpZXcq
IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBjb25zdDsKIAorICAgIHZvaWQgd2ls
bEluc2VydFRleHRBc3luYygpOworICAgIHZvaWQgZGlkSW5zZXJ0VGV4dEFzeW5jKCk7CiAgICAg
dm9pZCBpbnNlcnRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFu
Z2UmIHJlcGxhY2VtZW50UmFuZ2UsIGJvb2wgcmVnaXN0ZXJVbmRvR3JvdXAgPSBmYWxzZSwgRWRp
dGluZ1JhbmdlSXNSZWxhdGl2ZVRvID0gRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpFZGl0YWJs
ZVJvb3QpOwogICAgIHZvaWQgZ2V0TWFya2VkUmFuZ2VBc3luYyhzdGQ6OmZ1bmN0aW9uPHZvaWQg
KEVkaXRpbmdSYW5nZSwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+KTsKICAgICB2b2lkIGdldFNlbGVj
dGVkUmFuZ2VBc3luYyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKEVkaXRpbmdSYW5nZSwgQ2FsbGJhY2tC
YXNlOjpFcnJvcik+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDBkYmIxNGNlMDIzYWY3Nzk3M2IyOTM2NjFhZDFjZGFlNDRl
NGU4MDEuLmM3MWEzNGU5YTE2MzA2Yjk4NGMyZTQyYjJiOWQ5MjBkZTQ4YmI2ZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
NDYyLDQgKzQ2Miw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIERpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKCkKICNlbmRpZgorCisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgRGlkSW5zZXJ0VGV4dEFzeW5jKCkKKyNlbmRpZgogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXgg
NWZjMjJhZDkyOWQ3NDE2Yjc0ZDQ0NjAzM2Y1MTZlZGE5NzE2NzkzZS4uNzY4MTJjMmIwM2Q2YzE4
ZDNlNjk5MDE0MmMxNDc4ZWJmMjUyOWFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00NzIsNiArNDcyLDE0IEBAIFBhc3NS
ZWZQdHI8Vmlld1NuYXBzaG90PiBQYWdlQ2xpZW50SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAg
ICAgcmV0dXJuIFttX3dlYlZpZXcgX3Rha2VWaWV3U25hcHNob3RdOwogfQogCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjp3aWxsSW5zZXJ0VGV4dEFzeW5jKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZGlkSW5zZXJ0VGV4dEFzeW5jKCkKK3sKK30KKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6
d2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVu
dCYgZXZlbnQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAppbmRleCA1MjU5ZmI1YjcyNWNhNDc2OTJlYWQ3
YWE0ODU5MDEyMTNjN2FiNmU5Li44NWM1NGNkNjAyNGI3OWZjOGM2YTQxYmM0ZGMwMGJhZjI3NDU5
MGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5o
CkBAIC0xNDAsNiArMTQwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKIAogICAg
IFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCB3aWxsSW5zZXJ0VGV4dEFzeW5jKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRJbnNl
cnRUZXh0QXN5bmMoKSBvdmVycmlkZTsKICAgICB2b2lkIHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVk
QnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBvdmVycmlkZTsKICNpZiBFTkFC
TEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgIHZvaWQgZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxl
ZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJHZXN0dXJlRXZlbnQmKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IDViNWEx
MjFhNjkzOTc2ZmY2MGExOGRiMjU1NmY1ZjRiOTVlMjkyNTguLjZiZmIzYWI3NGQ1MGI3NmNhODIx
ODk3MjQxMDEwOGExYTYxNDg0NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAtNDk1LDYgKzQ5NSwxNiBAQCBQYXNzUmVmUHRyPFZpZXdT
bmFwc2hvdD4gUGFnZUNsaWVudEltcGw6OnRha2VWaWV3U25hcHNob3QoKQogICAgIHJldHVybiBt
X2ltcGwtPnRha2VWaWV3U25hcHNob3QoKTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6d2ls
bEluc2VydFRleHRBc3luYygpCit7CisgICAgbV9pbXBsLT53aWxsSW5zZXJ0VGV4dEFzeW5jaHJv
bm91c2x5KCk7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEluc2VydFRleHRBc3luYygp
Cit7CisgICAgbV9pbXBsLT5kaWRJbnNlcnRUZXh0QXN5bmNocm9ub3VzbHkoKTsKK30KKwogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6c2VsZWN0aW9uRGlkQ2hhbmdlKCkKIHsKICAgICBtX2ltcGwtPnNl
bGVjdGlvbkRpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDAwYjI4MWUyNGZkMzJiZmYyYzZiZjkwMzk5YjNhYjM3MzRkMmM3
OWIuLmE2ZTdiYmZjMGRiYmU2ZDM5NzZjOTdjYjljNTRmYmFkYjA2ZDcwNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2MjksNiArNDYy
OSw4IEBAIHZvaWQgV2ViUGFnZTo6aW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVuCiAgICAgICAgIGZyYW1lLmVkaXRvcigpLmlu
c2VydFRleHQodGV4dCwgbnVsbHB0cik7CiAgICAgfSBlbHNlCiAgICAgICAgIGZyYW1lLmVkaXRv
cigpLmNvbmZpcm1Db21wb3NpdGlvbih0ZXh0KTsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGlkSW5zZXJ0VGV4dEFzeW5jKCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmdldE1h
cmtlZFJhbmdlQXN5bmModWludDY0X3QgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmZjhiNzUzMTgwZjZkNTRkZGU2NzFhMDI0
MzljYjY1MDVhZGFlNjY4Li5lMTBmMTkyZmYzYzFhN2FkMTlmMWZhYzg2ODQ1MGQyMDE1ODY0YzNi
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNzIgQEAKKzIwMTYtMDktMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW5zZXJ0aW5nIGEgc3BhY2UgYWZ0ZXIgaW5zZXJ0aW5nIGFuIGFj
Y2VwdGVkIGNhbmRpZGF0ZSBzY3JvbGxzIHRoZSBkb2N1bWVudCBhbmQgY2F1c2VzIGEgZmxpY2tl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyMDA5
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODA4NjIzNz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIDIgbmV3IHRleHQgZWRpdGluZyBBUEkg
dGVzdHMgY292ZXJpbmcgY2FuZGlkYXRlIGluc2VydGlvbiwgYXMgd2VsbCBhcyBzdXBwb3J0IGZv
ciB0ZXN0aW5nIGNhbmRpZGF0ZXMgaW4KKyAgICAgICAgV0tXZWJWaWV3cy4gUmVmYWN0b3JzIGNv
bW1vbiBXS1dlYlZpZXcgaGVscGVycyBhY3Jvc3MgYm90aCBWaWRlb0NvbnRyb2xzTWFuYWdlciB0
ZXN0cyBhbmQgdGhlIG5ldworICAgICAgICBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cyBpbnRvIGEg
bmV3IHV0aWxpdHkgY2xhc3MsIFRlc3RXS1dlYlZpZXcgaW4gVGVzdFdLV2ViVmlldy5tbSwgd2hp
Y2ggaXMgY2FwYWJsZSBvZgorICAgICAgICBzaW11bGF0aW5nIG1vdXNlIGFuZCBrZXlib2FyZCBl
dmVudHMgYXMgd2VsbCBhcyB3YWl0aW5nIGZvciBKYXZhU2NyaXB0IG1lc3NhZ2VzIHNlbnQgZnJv
bSB0aGUgd2ViIHByb2Nlc3MgYW5kCisgICAgICAgIHBlcmZvcm1pbmcgYWN0aW9ucyBpbiByZXNw
b25zZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lv
cy9hdWRpby1vbmx5Lmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
aW9zL3ZpZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9pb3MvdmlkZW8td2l0aG91dC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICgtW01lc3NhZ2VIYW5kbGVyIGluaXRX
aXRoTWVzc2FnZTpoYW5kbGVyOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtNZXNzYWdlSGFuZGxl
ciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6IERlbGV0
ZWQuCisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcgbW91c2VEb3du
QXRQb2ludDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0
V2ViVmlldyBwZXJmb3JtQWZ0ZXJMb2FkaW5nOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtWaWRl
b0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IGNhbGxKYXZhc2NyaXB0RnVuY3Rpb246XSk6IERl
bGV0ZWQuCisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcgbG9hZFRl
c3RQYWdlTmFtZWQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNNYW5hZ2Vy
VGVzdFdlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTphY3Rpb246XSk6IERlbGV0
ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3
Q2FuZGlkYXRlVGVzdHMubW06IEFkZGVkLgorICAgICAgICAoLVtUZXN0Q2FuZGlkYXRlIGluaXRX
aXRoUmVwbGFjZW1lbnRTdHJpbmc6aW5SYW5nZTpdKToKKyAgICAgICAgKC1bVGVzdENhbmRpZGF0
ZSByZXBsYWNlbWVudFN0cmluZ10pOgorICAgICAgICAoLVtUZXN0Q2FuZGlkYXRlIHJlc3VsdFR5
cGVdKToKKyAgICAgICAgKC1bVGVzdENhbmRpZGF0ZSByYW5nZV0pOgorICAgICAgICAoLVtDYW5k
aWRhdGVUZXN0V2ViVmlldyBpbnNlcnRDYW5kaWRhdGVzQW5kV2FpdEZvclJlc3BvbnNlOnJhbmdl
Ol0pOgorICAgICAgICAoLVtDYW5kaWRhdGVUZXN0V2ViVmlldyBfZGlkSGFuZGxlQWNjZXB0ZWRD
YW5kaWRhdGVdKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2F1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNl
LW9uLWNsaWNrLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9mdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1h
dWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2lu
cHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlkZXMtY29udHJv
bHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRtbDoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4u
aHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12
aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVr
LXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbDoKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRoLWF1ZGlvLmh0bWw6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8t
d2l0aG91dC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWluZy1jbGljay10by1wYXVzZS5odG1sOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRv
cGxheWluZy1zY3JvbGwtdG8tdmlkZW8uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNvbnRyb2xz
Lmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbDoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy12
aWRlby1rZWVwcy1jb250cm9scy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWw6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evc2tpbm55LWF1dG9wbGF5aW5n
LXZpZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS93aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9DYW5kaWRhdGVUZXN0cy5tbToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmg6IEFkZGVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW06IEFkZGVkLgorICAgICAgICAo
LVtUZXN0TWVzc2FnZUhhbmRsZXIgaW5pdFdpdGhNZXNzYWdlOmhhbmRsZXI6XSk6CisgICAgICAg
ICgtW1Rlc3RNZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNj
cmlwdE1lc3NhZ2U6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91c2VEb3duQXRQb2lu
dDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNz
YWdlOmFjdGlvbjpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1l
ZDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyB0eXBlQ2hhcmFjdGVyOl0pOgorICAgICAg
ICAoLVtUZXN0V0tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6XSk6CisgICAg
ICAgICgtW1Rlc3RXS1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6XSk6CisgICAgICAgICgtW1Rlc3RX
S1dlYlZpZXcgcGVyZm9ybUFmdGVyTG9hZGluZzpdKToKKwogMjAxNi0wOS0xNCAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYSBjb250cm9scyBi
ZWhhdmUgc3RyYW5nZWx5IHdoZW4gY2hhbmdpbmcgbWVkaWEgc291cmNlcwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA4YTQ5YzNiY2I3OWE0NmQwNmMwZjkxNDQzOGM0YmE0OTYzOTQ2MTk3Li4z
ZTllNGQ1ZWUyMDYwMTA4YTkzZjBkZTU5YzI2NTI5OTA1NDY1ODljIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNzgsNiArNzgsOSBAQAogCQkyRUZGMDZDMzFEODg2MjFFMDAwNEJCMzAgLyog
bGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2QzIxRDg4NjIxMjAwMDRCQjMwIC8qIGxhcmdl
LXZpZGVvLW9mZnNjcmVlbi5odG1sICovOyB9OwogCQkyRUZGMDZDNTFEODg2Nzc2MDAwNEJCMzAg
LyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIz
MCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgKi87IH07CiAJCTJFRkYwNkM3
MUQ4ODZBNTgwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkM2
MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sICovOyB9
OworCQkyRUZGMDZDRDFEOEE0MjlBMDAwNEJCMzAgLyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJs
ZS1kb2N1bWVudC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1z
Y3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgKi87IH07CisJCTJFRkYwNkQ0MUQ4QUVEQkIwMDA0QkIz
MCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdN
YWMubW0gKi87IH07CisJCTJFRkYwNkQ3MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5k
aWRhdGVUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFRkYwNkQ2MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5t
bSAqLzsgfTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jh
c2hfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRs
ZS5jcHAgKi87IH07CiAJCTMzREM4OTEyMTQxOTU1RkUwMDc0N0VGNyAvKiBzaW1wbGUtaWZyYW1l
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzNEQzg5MEUxNDE5NTM5MzAwNzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCAqLzsgfTsK
IAkJMzNEQzg5MTQxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJl
Y3RDYWxsYmFja19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzNEQzg5MTMxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2Vy
dmVyUmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3BwICovOyB9OwpAQCAtNTQxLDYgKzU0NCw3IEBA
CiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJT
cGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCTJFRkYwNkNEMUQ4QTQyOUEwMDA0QkIzMCAvKiBp
bnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Ut
b24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzUxRDg4Njc3NjAw
MDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQkyRUZGMDZDMzFEODg2MjFFMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zm
c2NyZWVuLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC03ODksNiArNzkzLDEwIEBACiAJ
CTJFRkYwNkMyMUQ4ODYyMTIwMDA0QkIzMCAvKiBsYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAv
KiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRl
by1zb3VyY2Utb24tZW5kLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY2hhbmdl
LXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRv
Y3VtZW50Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiaW5wdXQtZmllbGQtaW4t
c2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkVGRjA2RDIxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdFdLV2ViVmlld01hYy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyRUZGMDZEMzFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmll
d01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRlc3RXS1dl
YlZpZXdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRkYwNkQ2MUQ4QUYz
NEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMgLyogUHJl
dmVudEVtcHR5VXNlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMzQkU1QUY0MTM3QjVBNkMwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlTW92ZUFmdGVyQ3Jhc2gu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzM0JFNUFGODEzN0I1QUFFMDA3MDU4
MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM3NSw2ICsxMzgzLDcgQEAKIAkJCQkzN0I0N0UyRTFE
NjRFN0NBMDA1RjRFRkYgLyogV0tPYmplY3QubW0gKi8sCiAJCQkJMkQwMDA2NUQxQzFGNTg5NDAw
ODhFNkE3IC8qIFdLUERGVmlld1Jlc2l6ZUNyYXNoLm1tICovLAogCQkJCTVFNEIxRDJDMUQ0MDRD
NjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tICovLAorCQkJCTJFRkYw
NkQ2MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSAqLywKIAkJ
CQk3QzQxN0YzMTFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25E
ZWxlZ2F0ZS5tbSAqLywKIAkJCQkwRjNCOTRBNTFBNzcyNjZDMDBERTMyNzIgLyogV0tXZWJWaWV3
RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovLAogCQkJCTk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAv
KiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8sCkBAIC0xNDY0LDYgKzE0NzMsNyBAQAogCQlBMTZG
NjZCODFDNDBFOUUxMDBCRDREMjQgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyRUZGMDZDQzFEOEE0MjkxMDAwNEJCMzAgLyogaW5w
dXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sICovLAogCQkJCTJFRkYwNkM2MUQ4
ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sICovLAogCQkJ
CTJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNr
Lmh0bWwgKi8sCiAJCQkJMkVGRjA2QzIxRDg4NjIxMjAwMDRCQjMwIC8qIGxhcmdlLXZpZGVvLW9m
ZnNjcmVlbi5odG1sICovLApAQCAtMTgxOSw2ICsxODI5LDggQEAKIAkJCQlDMDgxMjI0NDEzRkMx
OUVDMDBEQzM5QUUgLyogU3ludGhldGljQmFja2luZ1NjYWxlRmFjdG9yV2luZG93Lm0gKi8sCiAJ
CQkJMjlBQjhBQTMxNjRDN0E5MzAwRDQ5QkVDIC8qIFRlc3RCcm93c2luZ0NvbnRleHRMb2FkRGVs
ZWdhdGUuaCAqLywKIAkJCQkyOUFCOEFBMjE2NEM3QTkzMDBENDlCRUMgLyogVGVzdEJyb3dzaW5n
Q29udGV4dExvYWREZWxlZ2F0ZS5tbSAqLywKKwkJCQkyRUZGMDZEMjFEOEFFREJCMDAwNEJCMzAg
LyogVGVzdFdLV2ViVmlld01hYy5oICovLAorCQkJCTJFRkYwNkQzMUQ4QUVEQkIwMDA0QkIzMCAv
KiBUZXN0V0tXZWJWaWV3TWFjLm1tICovLAogCQkJCUMwODU4N0JFMTNGRTk1NkMwMDFFRjRFNSAv
KiBXZWJLaXRBZ25vc3RpY1Rlc3QuaCAqLywKIAkJCQlDMDg1ODdCRDEzRkU5NTZDMDAxRUY0RTUg
LyogV2ViS2l0QWdub3N0aWNUZXN0Lm1tICovLAogCQkJKTsKQEAgLTIzNDIsNiArMjM1NCw3IEBA
CiAJCQkJN0NDRTdFRkIxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxlQmFzaWMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkMxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVk
QnVuZGxlRnJhbWVIaXRUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUZEMUE0MTFB
RTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFj
a1dpbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkVGRjA2RDQxRDhBRURCQjAwMDRCQjMwIC8q
IFRlc3RXS1dlYlZpZXdNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCODFEMEE2NEJE
MDBGRUJDRjMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTdDQ0U3RUMzMUE0MTFBN0UwMDQ0N0M0QyAvKiBJbnNwZWN0b3JCYXIu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQTFBNDExQTg3MDA0NDdDNEMgLyogSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjQ2MSw2ICsyNDc0LDcgQEAK
IAkJCQk3Q0NFN0VEODFBNDExQTdFMDA0NDdDNEMgLyogV2lsbFNlbmRTdWJtaXRFdmVudC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUQ5MUE0MTFBN0UwMDQ0N0M0QyAvKiBXaW5kb3dsZXNz
V2ViVmlld1dpdGhNZWRpYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFGODM1NzFCMUQzRkZCMjMw
MEUzOTY3QiAvKiBXS0JhY2tGb3J3YXJkTGlzdC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTJFRkYw
NkQ3MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RjJFMUE0MTFCMTAwMDQ0N0M0QyAvKiBXS0Jyb3dzaW5nQ29udGV4
dEdyb3VwVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJGMUE0MTFCMTAwMDQ0N0M0
QyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3QzU0QTRCRTFBQTExQ0NBMDAzODBGNzggLyogV0tCdW5kbGVGaWxlSGFuZGxlLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvaW9zL2F1ZGlvLW9ubHkuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L2lvcy9hdWRpby1vbmx5Lmh0bWwKaW5kZXggNzQwMGY2NjI4NGUyOTkxM2RhNTliNDZjZTM1NmI4
Y2E2YmRmZGZjZi4uYzRhMjRmYWVlNzY3Y2ExMWU1ZjZhMDU3ZDZlYWUwOGRmY2MxMjFhZCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL2F1ZGlvLW9ubHku
aHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvYXVkaW8tb25s
eS5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgZnVuY3Rpb24gcGxheWluZygpIHsKICAgICAg
ICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNz
YWdlKCdwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycpOwogICAgICAgICB9IGNhdGNoKGUp
IHsKICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICdjYWxsYmFjazpwbGF5aW5nJzsKICAg
ICAgICAgfQpAQCAtMjAsNyArMjAsNyBAQAogCiAgICAgZnVuY3Rpb24gbm90UGxheWluZygpIHsK
ICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOworICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ25v
dCBwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgfQogICAgIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVv
LXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92
aWRlby13aXRoLWF1ZGlvLmh0bWwKaW5kZXggYzg5MjRiNmI5OGFhODNmNmQyYmUxNWRiNDg5ODQ4
NDM1M2Y1YTllOS4uODA4ZGRjZWM4NjlkNzRhM2NmZGM1OTVlMTY5ZTEwNjM5YmI2ZjMzOSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGgt
YXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3Mvdmlk
ZW8td2l0aC1hdWRpby5odG1sCkBAIC0xNCw3ICsxNCw3IEBACiAgICAgZnVuY3Rpb24gcGxheWlu
ZygpIHsKICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICAgdHJ5
IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5k
bGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycpOwogICAgICAg
ICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICdjYWxsYmFjazpw
bGF5aW5nJzsKICAgICAgICAgfQpAQCAtMjIsNyArMjIsNyBAQAogCiAgICAgZnVuY3Rpb24gbm90
UGxheWluZygpIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOwor
ICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9z
dE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgfQog
ICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9pb3MvdmlkZW8td2l0aG91dC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbAppbmRleCA4NDU4NmYzMjVjMWJl
YjkxZmM3ZmUwNWEyNzlhZDAyYmUxOGUyYzQwLi4yNzVlN2UxYzU5NmNiZjljODdlZjI3MzI3NGMw
Y2NkNmY0ZTRlOTM1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9pb3MvdmlkZW8td2l0aG91dC1hdWRpby5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRob3V0LWF1ZGlvLmh0bWwKQEAgLTEyLDcgKzEyLDcg
QEAKICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0
KHRpbWVvdXQpOwogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgd2luZG93
LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICB9CkBAIC0yMCw3ICsyMCw3
IEBACiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkgewogICAgICAgICB0cnkgewotICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1l
c3NhZ2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKICAgICAgICAg
fSBjYXRjaChlKSB7IH0KICAgICB9CiAgICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5h
Z2VyLm1tCmluZGV4IGJkMzE4NjJhZTQyZWNiNDJjYTQxZjEyYjZhZDZmODdmYzk5MjFmYjcuLjY3
NDVjYzcyNmU5NWZhYzljYzg2M2RiNTQ5YzI5ZmIyMmQ2NjBjY2UgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJv
bHNNYW5hZ2VyLm1tCkBAIC0yNiwxMCArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAj
aW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2ltcG9y
dCA8Q2FyYm9uL0NhcmJvbi5oPgotI2VuZGlmCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3TWFjLmgi
CiAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KQEAgLTQzLDM0ICs0MCw3IEBAIC0gKHZv
aWQpX2ludGVyYWN0V2l0aE1lZGlhQ29udHJvbHNGb3JUZXN0aW5nOwogCiBAZW5kCiAKLUBpbnRl
cmZhY2UgTWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4K
LUBlbmQKLQotQGltcGxlbWVudGF0aW9uIE1lc3NhZ2VIYW5kbGVyIHsKLSAgICBkaXNwYXRjaF9i
bG9ja190IF9oYW5kbGVyOwotICAgIE5TU3RyaW5nICpfbWVzc2FnZTsKLX0KLQotLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGhhbmRsZXI6KGRpc3Bh
dGNoX2Jsb2NrX3QpaGFuZGxlcgotewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQot
ICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgX2hhbmRsZXIgPSBbaGFuZGxlciBjb3B5XTsKLSAg
ICBfbWVzc2FnZSA9IG1lc3NhZ2U7Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZCl1
c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRl
bnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKilt
ZXNzYWdlCi17Ci0gICAgaWYgKFsoTlNTdHJpbmcgKilbbWVzc2FnZSBib2R5XSBpc0VxdWFsVG9T
dHJpbmc6X21lc3NhZ2VdICYmIF9oYW5kbGVyKQotICAgICAgICBfaGFuZGxlcigpOwotfQotCi1A
ZW5kCi0KLUBpbnRlcmZhY2UgVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyA6IFdLV2Vi
VmlldworQGludGVyZmFjZSBWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IDogVGVzdFdL
V2ViVmlldwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVmlkZW9Db250cm9sc01hbmFnZXJUZXN0
V2ViVmlldyB7CkBAIC03OCwzMiArNDgsNiBAQCBAaW1wbGVtZW50YXRpb24gVmlkZW9Db250cm9s
c01hbmFnZXJUZXN0V2ViVmlldyB7CiAgICAgTlNTdHJpbmcgKl9jb250cm9sbGVkRWxlbWVudElE
OwogfQogCi0tICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgewotICAgIFtz
ZWxmIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0
TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KHBvaW50LngsIHBvaW50LnkpIG1vZGlmaWVy
RmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjowIGNv
bnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBldmVudE51bWJlcjowIGNs
aWNrQ291bnQ6MCBwcmVzc3VyZTowXV07Ci19Ci0KLS0gKHZvaWQpcGVyZm9ybUFmdGVyTG9hZGlu
ZzooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb25zIHsKLSAgICBNZXNzYWdlSGFuZGxlciAqaGFuZGxl
ciA9IFtbTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoTWVzc2FnZTpAImxvYWRlZCIgaGFu
ZGxlcjphY3Rpb25zXTsKLSAgICBOU1N0cmluZyAqb25sb2FkU2NyaXB0ID0gQCJ3aW5kb3cub25s
b2FkID0gZnVuY3Rpb24oKSB7IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLm9ubG9hZEhh
bmRsZXIucG9zdE1lc3NhZ2UoJ2xvYWRlZCcpOyB9IjsKLSAgICBXS1VzZXJTY3JpcHQgKnNjcmlw
dCA9IFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpvbmxvYWRTY3JpcHQgaW5q
ZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1h
aW5GcmFtZU9ubHk6Tk9dOwotCi0gICAgV0tVc2VyQ29udGVudENvbnRyb2xsZXIqIGNvbnRlbnRD
b250cm9sbGVyID0gW1tzZWxmIGNvbmZpZ3VyYXRpb25dIHVzZXJDb250ZW50Q29udHJvbGxlcl07
Ci0gICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFVzZXJTY3JpcHQ6c2NyaXB0XTsKLSAgICBbY29u
dGVudENvbnRyb2xsZXIgYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlciBuYW1lOkAib25s
b2FkSGFuZGxlciJdOwotfQotCi0tICh2b2lkKWNhbGxKYXZhc2NyaXB0RnVuY3Rpb246KE5TU3Ry
aW5nICopZnVuY3Rpb25OYW1lCi17Ci0gICAgTlNTdHJpbmcgKmNvbW1hbmQgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIiVAKCkiLCBmdW5jdGlvbk5hbWVdOwotICAgIFtzZWxmIGV2YWx1
YXRlSmF2YVNjcmlwdDpjb21tYW5kIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci19Ci0KLS0gKHZv
aWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWUKLXsKLSAgICBOU1VSTFJl
cXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6cGFnZU5hbWUgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwotICAgIFtzZWxmIGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwotfQotCiAtICh2b2lkKWV4cGVjdENvbnRyb2xzTWFuYWdlcjoo
Qk9PTClleHBlY3RDb250cm9sc01hbmFnZXIgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOihOU1N0cmlu
ZyAqKW1lc3NhZ2UKIHsKICAgICBfX2Jsb2NrIGJvb2wgZG9uZVdhaXRpbmcgPSBmYWxzZTsKQEAg
LTEzMSwxNCArNzUsNiBAQCAtICh2b2lkKXdhaXRGb3JNZWRpYUNvbnRyb2xzVG9IaWRlCiAgICAg
ICAgIFtbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXSBydW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BN
b2RlIGJlZm9yZURhdGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dOwogfQogCi0tICh2b2lkKXBlcmZv
cm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3Bh
dGNoX2Jsb2NrX3QpYWN0aW9uCi17Ci0gICAgUmV0YWluUHRyPE1lc3NhZ2VIYW5kbGVyPiBoYW5k
bGVyID0gYWRvcHROUyhbW01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0V2l0aE1lc3NhZ2U6bWVz
c2FnZSBoYW5kbGVyOmFjdGlvbl0pOwotICAgIFdLVXNlckNvbnRlbnRDb250cm9sbGVyKiBjb250
ZW50Q29udHJvbGxlciA9IFtbc2VsZiBjb25maWd1cmF0aW9uXSB1c2VyQ29udGVudENvbnRyb2xs
ZXJdOwotICAgIFtjb250ZW50Q29udHJvbGxlciByZW1vdmVTY3JpcHRNZXNzYWdlSGFuZGxlckZv
ck5hbWU6QCJwbGF5aW5nSGFuZGxlciJdOwotICAgIFtjb250ZW50Q29udHJvbGxlciBhZGRTY3Jp
cHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJwbGF5aW5nSGFuZGxlciJdOwot
fQotCiAtICh2b2lkKXdhaXRGb3JQYWdlVG9Mb2FkV2l0aEF1dG9wbGF5aW5nVmlkZW9zOihpbnQp
bnVtYmVyT2ZBdXRvcGxheWluZ1ZpZGVvcwogewogICAgIF9fYmxvY2sgaW50IHJlbWFpbmluZ0F1
dG9wbGF5ZWRDb3VudCA9IG51bWJlck9mQXV0b3BsYXlpbmdWaWRlb3M7CkBAIC0yNDAsNyArMTc2
LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJNdWx0
aXBsZVZpZGVvc1Njcm9sbFBhdXNlZFZpZGVvT3UKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VO
YW1lZDpAImxhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMiXTsKICAgICBb
d2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVvczoxXTsKIAotICAg
IFt3ZWJWaWV3IGNhbGxKYXZhc2NyaXB0RnVuY3Rpb246QCJwYXVzZUZpcnN0VmlkZW9BbmRTY3Jv
bGxUb1NlY29uZFZpZGVvIl07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAInBhdXNlRmlyc3RWaWRlb0FuZFNjcm9sbFRvU2Vjb25kVmlkZW8oKSJdOwogICAgIFt3
ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpOTyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJw
YXVzZWQiXTsKIH0KIApAQCAtMjUxLDcgKzE4Nyw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFn
ZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVsdGlwbGVWaWRlb3NTY3JvbGxQbGF5aW5nVmlkZW9X
CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlb3MtcGxheWluZy12
aWRlby1rZWVwcy1jb250cm9scyJdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JQYWdlVG9Mb2FkV2l0
aEF1dG9wbGF5aW5nVmlkZW9zOjFdOwogCi0gICAgW3dlYlZpZXcgY2FsbEphdmFzY3JpcHRGdW5j
dGlvbjpAInNjcm9sbFRvU2Vjb25kVmlkZW8iXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVG9TZWNvbmRWaWRlbygpIl07CiAgICAgW3dlYlZpZXcg
ZXhwZWN0Q29udHJvbHNNYW5hZ2VyOllFUyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJzY3JvbGxl
ZCJdOwogfQogCkBAIC0yNjIsNyArMTk4LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwg
VmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVvc1Njcm9sbFBsYXlpbmdNdXRlZFYKICAg
ICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvcy1wbGF5aW5nLW11dGVk
LXZpZGVvLWhpZGVzLWNvbnRyb2xzIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRX
aXRoQXV0b3BsYXlpbmdWaWRlb3M6MV07CiAKLSAgICBbd2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1
bmN0aW9uOkAibXV0ZUZpcnN0VmlkZW9BbmRTY3JvbGxUb1NlY29uZFZpZGVvIl07CisgICAgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIm11dGVGaXJzdFZpZGVvQW5kU2Ny
b2xsVG9TZWNvbmRWaWRlbygpIl07CiAgICAgW3dlYlZpZXcgZXhwZWN0Q29udHJvbHNNYW5hZ2Vy
Ok5PIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBsYXlpbmciXTsKIH0KIApAQCAtMzAwLDcgKzIz
Niw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVs
dGlwbGVWaWRlb3NTd2l0Y2hDb250cm9sbGVkVmlkCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdl
TmFtZWQ6QCJsYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctc2Nyb2xsLXRvLXZpZGVvIl07CiAgICAg
W3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6Ml07CiAKLSAg
ICBbd2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1bmN0aW9uOkAic2Nyb2xsVG9TZWNvbmRWaWV3Il07
CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNjcm9sbFRvU2Vj
b25kVmlldygpIl07CiAgICAgW3dlYlZpZXcgZXhwZWN0Q29udHJvbHNNYW5hZ2VyOllFUyBhZnRl
clJlY2VpdmluZ01lc3NhZ2U6QCJzY3JvbGxlZCJdOwogCiAgICAgRVhQRUNUX1RSVUUoW1t3ZWJW
aWV3IGNvbnRyb2xsZWRFbGVtZW50SURdIGlzRXF1YWxUb1N0cmluZzpAInNlY29uZCJdKTsKQEAg
LTMxMiw3ICsyNDgsNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xz
TWFuYWdlck11bHRpcGxlVmlkZW9zU2Nyb2xsT25seUxhcmdlVmlkZQogCiAgICAgW3dlYlZpZXcg
bG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Il07CiAg
ICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6MV07Ci0g
ICAgW3dlYlZpZXcgY2FsbEphdmFzY3JpcHRGdW5jdGlvbjpAInNjcm9sbFZpZGVvT3V0T2ZWaWV3
Il07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNjcm9sbFZp
ZGVvT3V0T2ZWaWV3KCkiXTsKICAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6WUVT
IGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInNjcm9sbGVkIl07CiB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRl
c3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3
Q2FuZGlkYXRlVGVzdHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZhN2M0NWZiYjI2MmNiMDZmMWNmNDhhMWI4
NWE2ZGQwNzJmNDZmZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tCkBAIC0wLDAgKzEsMTI5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBXS19BUElfRU5BQkxF
RCAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMjAwCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tX
ZWJWaWV3TWFjLmgiCisKKyNpbXBvcnQgPFdlYktpdC9XZWJLaXRQcml2YXRlLmg+CisKK0BpbnRl
cmZhY2UgVGVzdENhbmRpZGF0ZSA6IE5TVGV4dENoZWNraW5nUmVzdWx0CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBUZXN0Q2FuZGlkYXRlIHsKKyAgICBOU1N0cmluZyAqX3N0cmluZzsKKyAgICBO
U1JhbmdlIF9yYW5nZTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmVwbGFjZW1lbnRT
dHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGluUmFuZ2U6KE5TUmFuZ2UpcmFuZ2UKK3sKKyAgICBp
ZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICAgICAgICBfc3RyaW5nID0gc3RyaW5nOworICAg
ICAgICBfcmFuZ2UgPSByYW5nZTsKKyAgICB9CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKE5T
U3RyaW5nICopcmVwbGFjZW1lbnRTdHJpbmcKK3sKKyAgICByZXR1cm4gX3N0cmluZzsKK30KKwor
LSAoTlNUZXh0Q2hlY2tpbmdUeXBlKXJlc3VsdFR5cGUKK3sKKyAgICByZXR1cm4gTlNUZXh0Q2hl
Y2tpbmdUeXBlUmVwbGFjZW1lbnQ7Cit9CisKKy0gKE5TUmFuZ2UpcmFuZ2UKK3sKKyAgICByZXR1
cm4gX3JhbmdlOworfQorCitAZW5kCisKK0BpbnRlcmZhY2UgQ2FuZGlkYXRlVGVzdFdlYlZpZXcg
OiBUZXN0V0tXZWJWaWV3CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBDYW5kaWRhdGVUZXN0V2Vi
VmlldyB7CisgICAgYm9vbCBfaXNEb25lV2FpdGluZ0ZvckNhbmRpZGF0ZTsKK30KKworLSAodm9p
ZClpbnNlcnRDYW5kaWRhdGVzQW5kV2FpdEZvclJlc3BvbnNlOihOU1N0cmluZyAqKXJlcGxhY2Vt
ZW50U3RyaW5nIHJhbmdlOihOU1JhbmdlKXJhbmdlCit7CisgICAgX2lzRG9uZVdhaXRpbmdGb3JD
YW5kaWRhdGUgPSBmYWxzZTsKKyAgICBbc2VsZiBfaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGU6W1tU
ZXN0Q2FuZGlkYXRlIGFsbG9jXSBpbml0V2l0aFJlcGxhY2VtZW50U3RyaW5nOnJlcGxhY2VtZW50
U3RyaW5nIGluUmFuZ2U6cmFuZ2VdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9p
c0RvbmVXYWl0aW5nRm9yQ2FuZGlkYXRlKTsKK30KKworLSAodm9pZClfZGlkSGFuZGxlQWNjZXB0
ZWRDYW5kaWRhdGUKK3sKKyAgICBfaXNEb25lV2FpdGluZ0ZvckNhbmRpZGF0ZSA9IHRydWU7Cit9
CisKK0BlbmQKKworVEVTVChXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cywgU29mdFNwYWNlUmVwbGFj
ZW1lbnRBZnRlckNhbmRpZGF0ZUluc2VydGlvbkRvZXNOb3RTY3JvbGwpCit7CisgICAgQ2FuZGlk
YXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldOworCisgICAgTlNVUkwg
KmNvbnRlbnRVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiaW5w
dXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgW3drV2ViVmlldyBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOmNvbnRlbnRVUkxdXTsKKwor
ICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJmb2N1c2VkIl07CisgICAgW3drV2ViVmll
dyBfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107CisgICAgW3drV2ViVmlldyBpbnNlcnRDYW5kaWRh
dGVzQW5kV2FpdEZvclJlc3BvbnNlOkAiYXBwbGUgIiByYW5nZTpOU01ha2VSYW5nZSgwLCAwKV07
CisKKyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS52YWx1ZSJdIGlzRXF1YWxUb1N0
cmluZzpAImFwcGxlICJdKTsKKworICAgIFt3a1dlYlZpZXcgdHlwZUNoYXJhY3RlcjonICddOwor
ICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJpbnB1dCJdOworCisgICAgRVhQRUNUX1RS
VUUoW1t3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJ2lucHV0JykudmFsdWUiXSBpc0VxdWFsVG9TdHJpbmc6QCJhcHBsZSAiXSk7
CisgICAgRVhQRUNUX0VRKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCJdIGRvdWJsZVZhbHVlXSwgMCk7Cit9CisKK1RFU1Qo
V0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMsIEluc2VydENoYXJhY3RlcnNBZnRlckNhbmRpZGF0ZUlu
c2VydGlvbldpdGhTb2Z0U3BhY2UpCit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndrV2Vi
VmlldyA9IFtbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCldOworCisgICAgTlNVUkwgKmNvbnRlbnRVUkwgPSBbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJs
ZS1kb2N1bWVudCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CisgICAgW3drV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOmNvbnRlbnRVUkxdXTsKKworICAgIFt3a1dlYlZpZXcgd2FpdEZv
ck1lc3NhZ2U6QCJmb2N1c2VkIl07CisgICAgW3drV2ViVmlldyBfZm9yY2VSZXF1ZXN0Q2FuZGlk
YXRlc107CisgICAgW3drV2ViVmlldyBpbnNlcnRDYW5kaWRhdGVzQW5kV2FpdEZvclJlc3BvbnNl
OkAiZm9vICIgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwgMCldOworCisgICAgRVhQRUNUX1RSVUUoW1t3
a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ2lucHV0JykudmFsdWUiXSBpc0VxdWFsVG9TdHJpbmc6QCJmb28gIl0pOworCisgICAg
W3drV2ViVmlldyB0eXBlQ2hhcmFjdGVyOidhJ107CisgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVz
c2FnZTpAImlucHV0Il07CisKKyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS52YWx1
ZSJdIGlzRXF1YWxUb1N0cmluZzpAImZvbyBhIl0pOworfQorCisjZW5kaWYgLyogV0tfQVBJX0VO
QUJMRUQgJiYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTIwMCAqLwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5o
dG1sCmluZGV4IGI2YTViODJlMjYxYWQ0YTM5NTVhZWM4M2UzZjFlYTZkYTRlNjg3ZDQuLjUzYjQ1
NjM4OGYxOTZlOTg5NzUxMThmY2E3Mzk2NWYzMDc1NmVmYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2F1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVk
aW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9hdXRv
cGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAKICAgICAgICAg
Ly8gV2FpdCB1bnRpbCB0aGUgbmV4dCBydW5sb29wIHRvIGFsbG93IG1lZGlhIGNvbnRyb2xzIHRv
IHVwZGF0ZS4KICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRy
eSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWlu
Z0hhbmRsZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsK
ICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KQEAgLTIw
LDcgKzIwLDcgQEAKICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2Fn
ZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3Vy
Y2Utb24tY2xpY2suaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2NoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbAppbmRleCBjOGMxZDI4NjUyNTNhZTYy
ZDAyNTY4ZDE3YTNiMTAwODY0MTQ1Mzg0Li41NjBlNjg1MGExNWQxMTlhMjE3YzMzNGY3YjEzYmZj
ZjhjMmE5NDgyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5o
dG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgICAgICAgICB2aWRlby5wbGF5KCk7CiAgICAgICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5k
bGVyLnBvc3RNZXNzYWdlKCJjaGFuZ2VkIik7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJjaGFuZ2VkIik7
CiAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfSk7CkBAIC0yMSw3ICsyMSw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVBsYXlp
bmcoKSB7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAg
ICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwgMCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVv
LXNvdXJjZS1vbi1lbmQuaHRtbAppbmRleCA4ZmRjYmRhNWM5ZTIyMjgzMzEzYjQwYTY2MGIzOTJi
NTM1MDkzNjhkLi5mODRmN2Y3YWMxYjE0YzU3NTU4NzQ0MDYyOWU5ODhjMjg4NDg0MDFiIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2Utdmlk
ZW8tc291cmNlLW9uLWVuZC5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwKQEAgLTE0LDcgKzE0LDcg
QEAKICAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImNo
YW5nZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKICAgICAgICAgICAgICAgICB9
IGNhdGNoKGUpIHsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Z1bGwtc2l6ZS1hdXRv
cGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9mdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1s
CmluZGV4IDFiYzYwZWI0ZTE2MDUyM2M5NjZjZjNlMDBkMjEyNWM4MTYxOTAwZDEuLjQ4MzAxZTYz
MDU0MDU4Y2NjYzBjYTlhNjU5YWQ3MTMwODA5YTk3ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Z1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13
aXRoLWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbApAQCAtMTEsNyAr
MTEsNyBAQAogICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5n
Iik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9
CiAgICAgICAgIH0sIDApOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2lucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRt
bCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2lucHV0LWZpZWxkLWlu
LXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWVkZjM3NWM3NjU2YTZiN2Nk
ZDFhZmQ1YTg5MjY3NmZkODA2NGYwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVu
dC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzxodG1sPgorCis8aGVhZD4KKyAgICA8c3R5bGU+Cisg
ICAgICAgIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisKKyAgICAg
ICAgaW5wdXQgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6
IDQwMHB4OworICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTAwMHB4OworICAgICAgICB9Cisg
ICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAg
IGZ1bmN0aW9uIGxvYWRlZCgpIHsKKyAgICAgICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoImlucHV0Iik7CisgICAgICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5n
ZSgwLCAwKTsKKyAgICAgICAgICAgIGlucHV0LmZvY3VzKCk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBmb2N1c2VkKCkgeworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiZm9jdXNl
ZCIpLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGlucHV0KCkgeworICAgICAg
ICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZSgiaW5wdXQiKSwgMCk7CisgICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPWxvYWRlZCgpPgorICAgIDxpbnB1dCBvbmZvY3Vz
PWZvY3VzZWQoKSBvbmlucHV0PWlucHV0KCk+PC9pbnB1dD4KKzwvYm9keT4KKworPC9odG1sPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFm
dGVyLXNlZWstdG8tZW5kLmh0bWwKaW5kZXggZTQyNjdjNDMxZDdhYWZmMDZhOTFkZGI4MjI4YWFl
NTk4Y2YyOWE2OC4uMDEwMmU5NjI5ZjM2MTFiZGMyOGJlMTllMWM2NmY4ZTE5M2UwOGIwZCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1h
ZnRlci1zZWVrLXRvLWVuZC5odG1sCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAvLyBUaGUgbWVk
aWEgY29udHJvbHMgc2hvdWxkIGJlIHVwZGF0ZWQgb24gdGhlIG5leHQgcnVubG9vcC4KICAgICAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1l
c3NhZ2UoImVuZGVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImVuZGVkIik7CiAgICAgICAgICAgICB9IGNh
dGNoKGUpIHsgfQogICAgICAgICB9LCAwKTsKICAgICB9CkBAIC0yNiw3ICsyNiw3IEBACiAgICAg
ZnVuY3Rpb24gYmVnYW5BdXRvcGxheWluZygpIHsKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsK
KyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRtbCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11dGVz
LW9ucGxheWluZy5odG1sCmluZGV4IGI1Y2FmMjNhNWFjZWFlNGM2M2YyZjUwMzUzM2I2ZTI2MWE1
OWUzZjQuLjM4ZmIzMjU1MjIzNGZlYjA4YTlkODU0ODVhNWI5MWEyYjM0ZGM2ODkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11
dGVzLW9ucGxheWluZy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2xhcmdlLXZpZGVvLW11dGVzLW9ucGxheWluZy5odG1sCkBAIC0zLDcgKzMsNyBAQAog
PHNjcmlwdD4KICAgICBmdW5jdGlvbiBoYW5kbGVQbGF5aW5nKCkgewogICAgICAgICB0cnkgewot
ICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIu
cG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CiAgICAgICAgIH0g
Y2F0Y2goZSkgewogICAgICAgICB9CiAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZp
ZGVvIikubXV0ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbAppbmRl
eCA1MGE2ODVmZjY1OWE5OGQ3N2UxNjU0MWYxZDkwMTIzMTdiNTJkNTNlLi4zOWNmNDc2YWIzNTBi
MTRhYzQyMzFhNjhjNTQ3YTk4NTY4YmYzZmE5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3Jl
ZW4uaHRtbApAQCAtMTYsNyArMTYsNyBAQAogICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigidmlkZW8iKS5jbGFzc0xpc3QuYWRkKCJvZmZzY3JlZW4iKTsKICAgICAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9z
dE1lc3NhZ2UoIm1vdmVkIik7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJtb3ZlZCIpOwogICAgICAgICAg
ICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sIDAp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFy
Z2UtdmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5odG1sCmlu
ZGV4IDk1OTYwMDNjYjdmMGFiNTc4MTAzYjY2M2ZkNDYzZDMzMDIwMmQ0OWIuLjBiN2UwOWEzMjYw
MzM5NjMzODI3ZWIwZWQ5Y2Y3MWRhMDFlNDlhMGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXku
aHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12
aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWwKQEAgLTE0LDE0ICsxNCwxNCBAQAogICAgICAg
ICAgICAgZnVuY3Rpb24gc2Nyb2xsVmlkZW9PdXRPZlZpZXcoKSB7CiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2Iikuc2Nyb2xsSW50b1ZpZXcoKTsKICAgICAgICAg
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgic2Ny
b2xsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInNjcm9sbGVkIik7CiAgICAgICAgICAgICAgICAg
fSwgMCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3Bs
YXlpbmcoKSB7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVk
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgICAg
ICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9sYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbApp
bmRleCBlMzE2N2Y1NzRjNDYwYjI2M2IzNzMyMWM2ODY0NjFiNTQxZTlkYzkyLi4wMzg2NTQwYTNj
Yjk2OGYzMmY1OWYzYTVmYzIyNWNjMmIzY2RmZDA5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5o
dG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwKQEAgLTYsNyArNiw3IEBACiAgICAgICAgICAgICBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdGVzdC12aWRlbyIpLmN1cnJlbnRUaW1lID0gMDsKICAg
ICAgICAgICAgIC8vIFRoZSBtZWRpYSBjb250cm9scyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUg
bmV4dCBydW5sb29wLgogICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5w
b3N0TWVzc2FnZSgiZW5kZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiZW5kZWQiKTsKICAgICAgICAgICAg
IH0sIDApOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFm
dGVyLWVuZGluZy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwK
aW5kZXggMDdhOGViMTBlYjE0ZjE5YTE5Mjc3MTJkMzQ1OTMxYWVkYmMzZWIwMy4uYWRhOWEyZDEy
NzFjOThmZTQ3M2NlNjdjMzlmZWViMWZlYjViNDllOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmct
YW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0
ZXItZW5kaW5nLmh0bWwKQEAgLTgsNyArOCw3IEBACiAgICAgICAgICAgICB2aWRlby5wbGF5KCk7
CiAgICAgICAgICAgICAvLyBUaGUgbWVkaWEgY29udHJvbHMgc2hvdWxkIGJlIHVwZGF0ZWQgb24g
dGhlIG5leHQgcnVubG9vcC4KICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRs
ZXIucG9zdE1lc3NhZ2UoInJlcGxheWluZyIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJyZXBsYXlpbmciKTsK
ICAgICAgICAgICAgIH0sIDApOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGgt
YXVkaW8uaHRtbAppbmRleCBkMjMzNDYzY2ViOGZhYTMyMmUzNmYwYzIyYmFjMTkxYTMzM2U4YWZh
Li44NTgyYjQ1N2YzMWQ5MDAzYTI2NWZmMWUxOTIwNjU0NWQwOWZlY2NjIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRoLWF1
ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFy
Z2UtdmlkZW8td2l0aC1hdWRpby5odG1sCkBAIC0xNCw3ICsxNCw3IEBACiAgICAgICAgIHdpbmRv
dy5jbGVhclRpbWVvdXQodGltZW91dCk7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoJ3BsYXlpbmcnKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAg
ICAgIHdpbmRvdy5sb2NhdGlvbiA9ICdjYWxsYmFjazpwbGF5aW5nJzsKICAgICAgICAgICAgIH0K
QEAgLTIzLDcgKzIzLDcgQEAKIAogICAgIGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CiAgICAgICAg
IHRyeSB7Ci0gICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5n
SGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWlu
ZycpOwogICAgICAgICB9IGNhdGNoKGUpIHsgfQogICAgIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0
aG91dC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW8td2l0aG91dC1hdWRpby5odG1sCmluZGV4IDNhYjc1MmU4NThjMTQxMWRmYjQy
NGQwNzgyNmQ1NjFhNmQ3ZWE3NTkuLmY0OTJmYTRkMzUyM2RkMzg3NmQ1NmRjODRhNTE3YjQxMjUy
YmZkOWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2xhcmdlLXZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRob3V0LWF1ZGlvLmh0bWwKQEAgLTEz
LDcgKzEzLDcgQEAKICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAgICAgICB3aW5kb3cuY2xl
YXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcn
KTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVy
LnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAg
ICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICB9CkBAIC0y
MSw3ICsyMSw3IEBACiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkgewogICAgICAgICB0cnkg
ewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRs
ZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsK
ICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxh
eWluZy1jbGljay10by1wYXVzZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWwKaW5k
ZXggYzgxYTMxZTZjOWNkZjlkYzQ1MjdkNDI2YmM2NTRhZjkwZWE1NzZjNS4uMjJkYmViZjEyZGZm
MDk2NmE1MTFlZjE0NWI4YmNiZjk5Y2Y2NGJjYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRv
LXBhdXNlLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWwKQEAgLTE3LDcgKzE3
LDcgQEAKICAgICAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZUZpcnN0UGF1c2UoKSB7CiAgICAgICAg
ICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgdHJ5
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCJwYXVzZWQiKTsKICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAg
ICAgICAgICAgICB9LCAwKTsKICAgICAgICAgICAgIH0KQEAgLTI1LDcgKzI1LDcgQEAKICAgICAg
ICAgICAgIGZ1bmN0aW9uIGhhbmRsZVNlY29uZFBhdXNlKCkgewogICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFu
ZGxlci5wb3N0TWVzc2FnZSgicGF1c2VkIik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgicGF1c2Vk
Iik7CiAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgICAgICAgICAg
fSwgMCk7CiAgICAgICAgICAgICB9CkBAIC0zMyw3ICszMyw3IEBACiAgICAgICAgICAgICBmdW5j
dGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVz
c2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsK
ICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLXNjcm9sbC10by12aWRl
by5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW9zLWF1dG9wbGF5aW5nLXNjcm9sbC10by12aWRlby5odG1sCmluZGV4IGRiNDNkNGJiNDVjYmE3
ZjdhMGI1Yzc3MGJlNzVhZGE4OTgxMjgwN2QuLmQxYzFhYWVhOTAyZDRhNjEzNjFjZDZhOTk0NzRj
NzExYWVmYzIzYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWluZy1zY3JvbGwtdG8tdmlkZW8uaHRtbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0
b3BsYXlpbmctc2Nyb2xsLXRvLXZpZGVvLmh0bWwKQEAgLTE0LDEzICsxNCwxMyBAQAogICAgICAg
ICAgICAgZnVuY3Rpb24gc2Nyb2xsVG9TZWNvbmRWaWV3KCkgewogICAgICAgICAgICAgICAgIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzZWNvbmQiKS5zY3JvbGxJbnRvVmlldygpOwogICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJz
Y3JvbGxlZCIpOworICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKICAgICAgICAgICAgICAg
ICB9LCAwKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3Bs
YXlpbmcoKSB7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVk
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgICAg
ICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9sYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVv
LWhpZGVzLWNvbnRyb2xzLmh0bWwKaW5kZXggZWE1MDQ5NTMwNjkyZTI2ZTQzZTI3OTkyNjRjZDhi
MjUwY2M5NGZkYy4uMzFmODZjYmM5NjM1NTNlYzc2OGM0NGJjNzJhZTg3Njc5ZWNhMzhhMiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW9zLXBhdXNlZC12aWRlby1oaWRlcy1jb250cm9scy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMt
Y29udHJvbHMuaHRtbApAQCAtMTcsMTQgKzE3LDE0IEBACiAgICAgZnVuY3Rpb24gaGFuZGxlUGF1
c2VkKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5
IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5n
SGFuZGxlci5wb3N0TWVzc2FnZSgicGF1c2VkIik7CisgICAgICAgICAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIpOwog
ICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIGZ1
bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7Cisg
ICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIu
cG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAg
ICAgICAgICAgfQogICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlk
ZXMtY29udHJvbHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2xhcmdlLXZpZGVvcy1wbGF5aW5nLW11dGVkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwKaW5k
ZXggMmU1N2RmNzhiMWZlYjA0ZTgzMmUzZDlmMzFjZjliMmZhM2FmZGYyNy4uMzQ0ODZlMmUzZmQ2
N2E1Y2Q3MTY4YzNiNzU1YjEyZmYwMWI3M2M2YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8t
aGlkZXMtY29udHJvbHMuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy1tdXRlZC12aWRlby1oaWRlcy1jb250cm9scy5o
dG1sCkBAIC0xNSwxNCArMTUsMTQgQEAKICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
I2JhciIpLnNjcm9sbEludG9WaWV3KCk7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CisgICAgICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0s
IDApOwogICAgIH0KICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2Fn
ZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5
aW5nLXZpZGVvLWtlZXBzLWNvbnRyb2xzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy12aWRlby1rZWVwcy1jb250cm9scy5o
dG1sCmluZGV4IGRiN2NhYzZiOTkxOTQ2MzMyM2IzMzMxYWMzODhiZWU3ZWE1YzQ1MWYuLmI2ZmNm
N2EwNTBjNWUwNmUxZTM2NmJmZTQyZDMxNWFhMjM3MDQ3OTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVv
LWtlZXBzLWNvbnRyb2xzLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctdmlkZW8ta2VlcHMtY29udHJvbHMuaHRtbApA
QCAtMTQsMTQgKzE0LDE0IEBACiAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNiYXIi
KS5zY3JvbGxJbnRvVmlldygpOwogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKKyAgICAgICAgICAg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2Fn
ZSgic2Nyb2xsZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDAp
OwogICAgIH0KICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgi
YXV0b3BsYXllZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9
IGNhdGNoKGUpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1
ZGlvLWF1dG9wbGF5Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9sYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sCmluZGV4IDc2NTI1NGQyM2Y4
ODhhNTU2YjNkN2Y4ODFjMzZmMGRlNTk3ZjE3MDUuLjNlMTcwY2VkNWQyOWRlYTJlMGQzN2JmZTg2
MTZmZGVkNTNmYTkzODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVk
aW8tYXV0b3BsYXkuaHRtbApAQCAtNCw3ICs0LDcgQEAKICAgICBmdW5jdGlvbiBiZWdhbkF1dG9w
bGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5
aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRv
cGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL3NraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9za2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0
aC1hdWRpby5odG1sCmluZGV4IGJhNDhkNGQ3MjA5NzZlNTI0OTg2MGZkYWZkOTNiZDM5ZGJmNzg0
YWYuLjI2ZWY1M2RjMjM0Y2MyYmZkM2FjMTk3N2Q5MjI5NTA1ZjUwNjBlNmUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3NraW5ueS1hdXRvcGxheWlu
Zy12aWRlby13aXRoLWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2Evc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbApAQCAt
MTEsNyArMTEsNyBAQAogICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJw
bGF5aW5nIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgICAgIH0gY2F0Y2go
ZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3dpZGUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRp
by5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRv
cGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKaW5kZXggMGViOWFmNmFjN2U1Mzg1MTQyNjI0
MzY2ODA0MWM2Yjk0YzI4OTVkNS4uZWEyY2I1MDYzMjMwYTc2ZDMyZTZjNjc1Yzk4YTU3M2E0ZGZh
YzVlZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
d2lkZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1
ZGlvLmh0bWwKQEAgLTExLDcgKzExLDcgQEAKICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewog
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5w
b3N0TWVzc2FnZSgicGxheWluZyIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CiAgICAgICAg
ICAgICB9IGNhdGNoKGUpIHsgfQogICAgICAgICB9LCAwKTsKICAgICB9CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9DYW5kaWRhdGVUZXN0cy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmRpZGF0ZVRlc3RzLm1tCmluZGV4IGRmYWZlOTRmNTFh
M2JjODNjOTE1ZDVhMTFmZjBkNmI1M2VjNzA0ZmYuLmNhZWZkNTZkZjBlMGZlZmExZmYzZGQ0ODE0
NTU2ZWMyMmM4MzY0MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0NhbmRpZGF0ZVRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nh
bmRpZGF0ZVRlc3RzLm1tCkBAIC0yNSw3ICsyNSwxNCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKyNp
bXBvcnQgPENhcmJvbi9DYXJib24uaD4KKyNlbmRpZgorCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxp
dGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdl
YktpdC9XZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmggYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTcxNzNh
ZGU0ZDE0MTcxYTAxYzYxNTMxYjQ5ZWM3YThkMjY3MDEyMgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaApAQCAtMCwwICsxLDQ5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXN0V0tXZWJWaWV3TWFjX2gKKyNkZWZpbmUgVGVzdFdL
V2ViVmlld01hY19oCisKKyNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KKworI2lmIFdLX0FQSV9F
TkFCTEVEICYmIFBMQVRGT1JNKE1BQykKKworQGludGVyZmFjZSBUZXN0TWVzc2FnZUhhbmRsZXIg
OiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KKy0gKGluc3RhbmNldHlwZSlpbml0
V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBoYW5kbGVyOihkaXNwYXRjaF9ibG9ja190
KWhhbmRsZXI7CitAZW5kCisKK0BpbnRlcmZhY2UgVGVzdFdLV2ViVmlldyA6IFdLV2ViVmlldwor
LSAodm9pZCltb3VzZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50OworLSAodm9pZClwZXJmb3Jt
QWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRj
aF9ibG9ja190KWFjdGlvbjsKKy0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICop
cGFnZU5hbWU7CistICh2b2lkKXR5cGVDaGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyOworLSAoTlNT
dHJpbmcgKilzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdDsK
Ky0gKHZvaWQpd2FpdEZvck1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZTsKKy0gKHZvaWQpcGVy
Zm9ybUFmdGVyTG9hZGluZzooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb25zOworQGVuZAorCisjZW5k
aWYgLyogV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKSAqLworCisjZW5kaWYgLyogVGVz
dFdLV2ViVmlld01hY19oICovCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9U
ZXN0V0tXZWJWaWV3TWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmll
d01hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42ZDYzOTJiZWU1YzdjNjE1YjRhZmM1MmViYjU3OTdjMzllNmMx
NzhhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2Vi
Vmlld01hYy5tbQpAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlld01hYy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQg
JiYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJVdGlsaXRpZXMuaCIKKworI2ltcG9ydCA8Q2Fy
Ym9uL0NhcmJvbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYktpdFByaXZhdGUuaD4KKyNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKworQGltcGxlbWVudGF0aW9uIFRlc3RNZXNzYWdlSGFuZGxlciB7
CisgICAgZGlzcGF0Y2hfYmxvY2tfdCBfaGFuZGxlcjsKKyAgICBOU1N0cmluZyAqX21lc3NhZ2U7
Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2Fn
ZSBoYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXIKK3sKKyAgICBpZiAoIShzZWxmID0g
W3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9oYW5kbGVyID0gW2hh
bmRsZXIgY29weV07CisgICAgX21lc3NhZ2UgPSBtZXNzYWdlOworCisgICAgcmV0dXJuIHNlbGY7
Cit9CisKKy0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJv
bGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tT
Y3JpcHRNZXNzYWdlICopbWVzc2FnZQoreworICAgIGlmIChbKE5TU3RyaW5nICopW21lc3NhZ2Ug
Ym9keV0gaXNFcXVhbFRvU3RyaW5nOl9tZXNzYWdlXSAmJiBfaGFuZGxlcikKKyAgICAgICAgX2hh
bmRsZXIoKTsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldworCist
ICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKK3sKKyAgICBbc2VsZiBtb3Vz
ZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93
biBsb2NhdGlvbjpOU01ha2VQb2ludChwb2ludC54LCBwb2ludC55KSBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0OltO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjAgcHJlc3N1cmU6MF1dOworfQorCistICh2b2lkKXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uCit7
CisgICAgUmV0YWluUHRyPFRlc3RNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tU
ZXN0TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoTWVzc2FnZTptZXNzYWdlIGhhbmRsZXI6
YWN0aW9uXSk7CisgICAgV0tVc2VyQ29udGVudENvbnRyb2xsZXIqIGNvbnRlbnRDb250cm9sbGVy
ID0gW1tzZWxmIGNvbmZpZ3VyYXRpb25dIHVzZXJDb250ZW50Q29udHJvbGxlcl07CisgICAgW2Nv
bnRlbnRDb250cm9sbGVyIHJlbW92ZVNjcmlwdE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTpAInRlc3RI
YW5kbGVyIl07CisgICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07Cit9CisKKy0gKHZvaWQpbG9hZFRl
c3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWUKK3sKKyAgICBOU1VSTFJlcXVlc3QgKnJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6cGFnZU5hbWUgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFtzZWxmIGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOworfQorCistICh2b2lkKXR5cGVDaGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyIHsK
KyAgICBOU1N0cmluZyAqY2hhcmFjdGVyQXNTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIiVjIiAsIGNoYXJhY3Rlcl07CisgICAgW3NlbGYga2V5RG93bjpbTlNFdmVudCBrZXlF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93biBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2Rp
ZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6
MCBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25v
cmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFy
YWN0ZXJdXTsKKyAgICBbc2VsZiBrZXlVcDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZl
bnRUeXBlS2V5VXAgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFt
cDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgY2hhcmFj
dGVyczpjaGFyYWN0ZXJBc1N0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFj
dGVyQXNTdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6Y2hhcmFjdGVyXV07Cit9CisKKy0gKE5T
U3RyaW5nICopc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDooTlNTdHJpbmcgKilzY3JpcHQK
K3sKKyAgICBfX2Jsb2NrIGJvb2wgaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCA9IGZhbHNlOworICAg
IF9fYmxvY2sgTlNTdHJpbmcgKmV2YWxSZXN1bHQgPSBuaWw7CisgICAgW3NlbGYgZXZhbHVhdGVK
YXZhU2NyaXB0OnNjcmlwdCBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAq
ZXJyb3IpCisgICAgeworICAgICAgICBldmFsUmVzdWx0ID0gW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCIlQCIsIHJlc3VsdF07CisgICAgICAgIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSB0
cnVlOworICAgICAgICBFWFBFQ1RfVFJVRSghZXJyb3IpOworICAgIH1dOworCisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpc1dhaXRpbmdGb3JKYXZhU2NyaXB0KTsKKyAgICByZXR1cm4g
ZXZhbFJlc3VsdDsKK30KKworLSAodm9pZCl3YWl0Rm9yTWVzc2FnZTooTlNTdHJpbmcgKiltZXNz
YWdlCit7CisgICAgX19ibG9jayBib29sIGlzRG9uZVdhaXRpbmcgPSBmYWxzZTsKKyAgICBbc2Vs
ZiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOm1lc3NhZ2UgYWN0aW9uOl4oKQorICAgIHsK
KyAgICAgICAgaXNEb25lV2FpdGluZyA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmVXYWl0aW5nKTsKK30KKworLSAodm9pZClwZXJmb3JtQWZ0ZXJM
b2FkaW5nOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbnMgeworICAgIFRlc3RNZXNzYWdlSGFuZGxl
ciAqaGFuZGxlciA9IFtbVGVzdE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0V2l0aE1lc3NhZ2U6
QCJsb2FkZWQiIGhhbmRsZXI6YWN0aW9uc107CisgICAgTlNTdHJpbmcgKm9ubG9hZFNjcmlwdCA9
IEAid2luZG93Lm9ubG9hZCA9ICgpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLm9u
bG9hZEhhbmRsZXIucG9zdE1lc3NhZ2UoJ2xvYWRlZCcpIjsKKyAgICBXS1VzZXJTY3JpcHQgKnNj
cmlwdCA9IFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpvbmxvYWRTY3JpcHQg
aW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZv
ck1haW5GcmFtZU9ubHk6Tk9dOworCisgICAgV0tVc2VyQ29udGVudENvbnRyb2xsZXIqIGNvbnRl
bnRDb250cm9sbGVyID0gW1tzZWxmIGNvbmZpZ3VyYXRpb25dIHVzZXJDb250ZW50Q29udHJvbGxl
cl07CisgICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFVzZXJTY3JpcHQ6c2NyaXB0XTsKKyAgICBb
Y29udGVudENvbnRyb2xsZXIgYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlciBuYW1lOkAi
b25sb2FkSGFuZGxlciJdOworfQorCitAZW5kCisKKyNlbmRpZiAvKiBXS19BUElfRU5BQkxFRCAm
JiBQTEFURk9STShNQUMpICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288977</attachid>
            <date>2016-09-15 11:36:18 -0700</date>
            <delta_ts>2016-09-15 12:00:07 -0700</delta_ts>
            <desc>Another attempt to address build failures.</desc>
            <filename>bug-162009-20160915113340.patch</filename>
            <type>text/plain</type>
            <size>81537</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWIxMzhkNTU1OWRiNGMx
MmVjMjVhMDFmYzkyYjk5YzhkM2YyZGFiZC4uZWQxMWUyNmZkYTJlMmZiZDU5NmJlZTc5YTM4MWEw
ZmRmNTZhYjNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE2LTA5LTE1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEluc2VydGluZyBh
IHNwYWNlIGFmdGVyIGluc2VydGluZyBhbiBhY2NlcHRlZCBjYW5kaWRhdGUgc2Nyb2xscyB0aGUg
ZG9jdW1lbnQgYW5kIGNhdXNlcyBhIGZsaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjAwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgw
ODYyMzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWZ0ZXIgaW5zZXJ0aW5nIGEgdGV4dCBjYW5kaWRhdGUsIGlmIHRoZSBjYW5kaWRhdGUgZW5kZWQg
d2l0aCBhIHNvZnQgc3BhY2UsIHRoZSBuZXh0IHNwYWNlIHdlIGluc2VydCBzaG91bGQganVzdAor
ICAgICAgICByZXBsYWNlIHRoZSBzb2Z0IHNwYWNlLiBUaGlzIGN1cnJlbnRseSB3b3JrcyBiZWNh
dXNlIHdlIGxlYXZlIHRoZSB0ZXh0IGluc2VydGlvbiBvdXQgb2YgdGhlIGxpc3Qgb2YKKyAgICAg
ICAgS2V5cHJlc3NDb21tYW5kcyBzZW50IHRvIHRoZSB3ZWIgcHJvY2VzcyBhbmQgaW5zdGVhZCBy
ZXBsYWNlIHRoZSBzb2Z0IHNwYWNlIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMuCisgICAg
ICAgIEhvd2V2ZXIsIHRoaXMgbWVhbnMgd2hlbiB0aGUgd2ViIHByb2Nlc3MgaGFuZGxlcyB0aGlz
IGtleWRvd24gZXZlbnQsIHRoZSBjdXJyZW50IGVkaXRvciB3aWxsIG5vdCBoYW5kbGUgaXQsCisg
ICAgICAgIHNpbmNlIHRoZSBsaXN0IG9mIGtleSBjb21tYW5kcyBpcyBlbXB0eSBkZXNwaXRlIHRo
ZSB0ZXh0IGFuZCB1bm1vZGlmaWVkIHRleHQgYmVpbmcgbm9uLWVtcHR5LgorCisgICAgICAgIFRv
IGZpeCB0aGlzLCB3aGVuIHNlbmRpbmcga2V5ZG93biBvciBrZXl1cCBldmVudHMgd2hlcmUgd2Ug
cmVwbGFjZSBhIHNvZnQgc3BhY2UsIHdlIHNldCB0aGUga2V5IGV2ZW50J3MgdGV4dCB0bworICAg
ICAgICBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiBhIHNwYWNlLiBUaGlzIGFsbG93cyB1cyB0
byByZXR1cm4gZWFybHkgaW4gRXZlbnRIYW5kbGVyOjprZXlFdmVudCBhbmQgYXZvaWQgdGhlCisg
ICAgICAgIGNvZGVwYXRoIHRoYXQgdHJpZXMgdG8gaW5zZXJ0IHRleHQgaW50byB0aGUgY3VycmVu
dCBlZGl0b3IgYW5kIChpbiB0aGUgY2FzZSBvZiBpbnNlcnRpbmcgYSAnICcpIHNjcm9sbHMgdGhl
CisgICAgICAgIGRvY3VtZW50IGlmIG5lY2Vzc2FyeS4gU2luY2Ugd2UndmUgYWxyZWFkeSBoYW5k
bGVkIHRleHQgaW5zZXJ0aW9uIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMsIHRoZXJlIGlz
IG5vIG5lZWQKKyAgICAgICAgdG8gYWxzbyBkaXNwYXRjaCB0aGUga2V5cHJlc3MgdG8gdGhlIGVk
aXRvci4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGZsaWNr
ZXJpbmcgaW4gdGhlIGNhbmRpZGF0ZXMgVUkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgd2UncmUgYXN5
bmNocm9ub3VzbHkKKyAgICAgICAgcmVwbGFjaW5nIHRoZSBsYXN0IHNvZnQgc3BhY2UuIER1cmlu
ZyB0aGlzIG9wZXJhdGlvbiwgd2Ugc2VsZWN0IHRoZSByYW5nZSBvZiB0aGUgc29mdCBzcGFjZSBh
bmQgdGhlbiBpbnNlcnQgdGhlCisgICAgICAgIG5ldyB0ZXh0LiBUaGlzIGNhdXNlcyBhIG1vbWVu
dGFyeSByYW5nZSBzZWxlY3Rpb24gd2hpY2ggdGhlIHdlYiBwcm9jZXNzIG5vdGlmaWVzIHRoZSBV
SSBwcm9jZXNzIGFib3V0LCBwcm9tcHRpbmcKKyAgICAgICAgdXMgdG8gaGlkZSB0aGUgY2FuZGlk
YXRlcyBsaXN0LiBUbyBhZGRyZXNzIHRoaXMsIHdlIHB1dCBndWFyZHMgYXJvdW5kIHRoaXMgcHJv
Y2VzcyBvZiBhc3luY2hyb25vdXMgdGV4dAorICAgICAgICBpbnNlcnRpb24gYW5kIG1ha2Ugc3Vy
ZSB0aGF0IHdlIGRvbid0IHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY2FuZGlkYXRlcyBs
aXN0IGR1cmluZyB0aGlzIHRpbWUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIDIgbmV3IFdl
YktpdCBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dC5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaDoKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6dGV4
dEZyb21FdmVudCk6CisgICAgICAgIChXZWJLaXQ6OnVubW9kaWZpZWRUZXh0RnJvbUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYW5k
bGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2U6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc0lu
c2VydGluZ1RleHRBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp3aWxsSW5zZXJ0VGV4dEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmRpZEluc2VydFRleHRBc3luY2hyb25vdXNseSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Zm9y
Y2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6ZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6aW5zZXJ0VGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3Jt
S2V5RXF1aXZhbGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlVcCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlEb3duKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRJbnNlcnRUZXh0QXN5bmMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6Omluc2VydFRleHRBc3luYyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjp3aWxsSW5zZXJ0VGV4dEFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmRpZEluc2VydFRleHRBc3luYyk6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp3aWxsSW5zZXJ0VGV4
dEFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEluc2VydFRleHRB
c3luYyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjppbnNlcnRUZXh0QXN5bmMpOgorCiAyMDE2LTA5LTE0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhIGNvbnRy
b2xzIGJlaGF2ZSBzdHJhbmdlbHkgd2hlbiBjaGFuZ2luZyBtZWRpYSBzb3VyY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAppbmRleCAyM2NjNzRh
NWM4ODE4NGE2NzgyODYwNzNlODI2ZDQwZDhlNzJkM2ViLi4yMmNhNjFlMzRjOGZiYThhMTQyNzNl
MDYzY2Y0M2RhNTUwOTUxYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50LmgKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBj
bGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYktleWJvYXJkRXZlbnQgewog
cHVibGljOgogI2lmIFVTRShBUFBLSVQpCi0gICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChOU0V2
ZW50ICosIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpL
ZXlwcmVzc0NvbW1hbmQ+Jik7CisgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICos
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2UsIGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+Jik7CiAjZWxpZiBQTEFURk9STShHVEsp
CiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50
Jik7CiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChHZGtFdmVudCosIGNvbnN0IFdlYkNvcmU6
OkNvbXBvc2l0aW9uUmVzdWx0cyYsIElucHV0TWV0aG9kRmlsdGVyOjpFdmVudEZha2VkRm9yQ29t
cG9zaXRpb24sIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tCmluZGV4IGFm
YjNiNjA3MTBjNmFiZGE4ZWM2NjhkY2ZiNTVmNWVhYWNmYjJlN2YuLjZmNTljYmI0MzgyODMyZjA1
MjdjNzE1ZWVkNmNhZTcyMDYzMmRhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL05hdGl2ZVdlYktleWJvYXJkRXZlbnRNYWMubW0KQEAgLTM1LDggKzM1LDggQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYg
Y29tbWFuZHMpCi0gICAgOiBXZWJLZXlib2FyZEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRl
V2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSkK
K05hdGl2ZVdlYktleWJvYXJkRXZlbnQ6Ok5hdGl2ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAq
ZXZlbnQsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2Us
IGNvbnN0IFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykKKyAgICA6IFdlYktleWJv
YXJkRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBo
YW5kbGVkQnlJbnB1dE1ldGhvZCwgcmVwbGFjZXNTb2Z0U3BhY2UsIGNvbW1hbmRzKSkKICAgICAs
IG1fbmF0aXZlRXZlbnQoZXZlbnQpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkuaAppbmRleCA1OTk5NWY4NzNmNDM0Mjk0YTQ4ODQyNjU1NWYxYTZmZjc2
ZGIzY2Q1Li5iZTg3MmNlYjY4YTVhY2NmN2JjNmJmYWJkMjFkMjM0ZGRkOTY0MjZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5LmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgcHVibGljOgogI2lmIFVTRShBUFBLSVQpCiAgICAgc3RhdGljIFdlYk1vdXNlRXZlbnQgY3Jl
YXRlV2ViTW91c2VFdmVudChOU0V2ZW50ICosIE5TRXZlbnQgKmxhc3RQcmVzc3VyZUV2ZW50LCBO
U1ZpZXcgKndpbmRvd1ZpZXcpOwogICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldo
ZWVsRXZlbnQoTlNFdmVudCAqLCBOU1ZpZXcgKndpbmRvd1ZpZXcpOwotICAgIHN0YXRpYyBXZWJL
ZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqLCBib29sIGhhbmRs
ZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYp
OworICAgIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNF
dmVudCAqLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBib29sIHJlcGxhY2VzU29mdFNwYWNl
LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYpOwogICAgIHN0YXRpYyBi
b29sIHNob3VsZEJlSGFuZGxlZEFzQ29udGV4dENsaWNrKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3Jt
TW91c2VFdmVudCYpOwogI2VuZGlmIC8vIFVTRShBUFBLSVQpCiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQppbmRleCA1YmRiYzhmZDZkZTE4OTEwNTk0
NDVmNDQ0NTcxYWYzYjZjYTc0Mjg2Li41ZjNiYTkyOGJmYjE4ZWFiYmNjNTVhNTg1NWU3YTU2NjY5
YWJhM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFj
dG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5t
bQpAQCAtMjM2LDggKzIzNiwxMCBAQCBzdGF0aWMgV2ViV2hlZWxFdmVudDo6UGhhc2UgbW9tZW50
dW1QaGFzZUZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxX
ZWJXaGVlbEV2ZW50OjpQaGFzZT4ocGhhc2UpOwogfQogCi1zdGF0aWMgaW5saW5lIFN0cmluZyB0
ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50KQorc3RhdGljIGlubGluZSBTdHJpbmcgdGV4dEZy
b21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSkKIHsKKyAgICBp
ZiAocmVwbGFjZXNTb2Z0U3BhY2UpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0g
TlNGbGFnc0NoYW5nZWQpCkBAIC0yNDYsOCArMjQ4LDEwIEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5n
IHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQpCiAgICAgcmV0dXJuIFN0cmluZyhbZXZlbnQg
Y2hhcmFjdGVyc10pOwogfQogCi1zdGF0aWMgaW5saW5lIFN0cmluZyB1bm1vZGlmaWVkVGV4dEZy
b21FdmVudChOU0V2ZW50KiBldmVudCkKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIHVubW9kaWZpZWRU
ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxhY2VzU29mdFNwYWNlKQogewor
ICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaWYgKFtldmVudCB0eXBl
XSA9PSBOU0ZsYWdzQ2hhbmdlZCkKQEAgLTQ1NywxMSArNDYxLDExIEBAIFdlYldoZWVsRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1Zp
ZXcgKndpbmRvCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQ
b2ludChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRh
WCwgZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFy
aXR5LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBo
YXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9s
bGluZ0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CiB9CiAKLVdlYktleWJvYXJkRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiYgY29tbWFuZHMpCitXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBoYW5kbGVkQnlJbnB1dE1l
dGhvZCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQogewogICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgICAgICAg
ICAgICAgPSBpc0tleVVwRXZlbnQoZXZlbnQpID8gV2ViRXZlbnQ6OktleVVwIDogV2ViRXZlbnQ6
OktleURvd247Ci0gICAgU3RyaW5nIHRleHQgICAgICAgICAgICAgICAgICAgICA9IHRleHRGcm9t
RXZlbnQoZXZlbnQpOwotICAgIFN0cmluZyB1bm1vZGlmaWVkVGV4dCAgICAgICAgICAgPSB1bm1v
ZGlmaWVkVGV4dEZyb21FdmVudChldmVudCk7CisgICAgU3RyaW5nIHRleHQgICAgICAgICAgICAg
ICAgICAgICA9IHRleHRGcm9tRXZlbnQoZXZlbnQsIHJlcGxhY2VzU29mdFNwYWNlKTsKKyAgICBT
dHJpbmcgdW5tb2RpZmllZFRleHQgICAgICAgICAgID0gdW5tb2RpZmllZFRleHRGcm9tRXZlbnQo
ZXZlbnQsIHJlcGxhY2VzU29mdFNwYWNlKTsKICAgICBTdHJpbmcga2V5SWRlbnRpZmllciAgICAg
ICAgICAgID0ga2V5SWRlbnRpZmllckZvcktleUV2ZW50KGV2ZW50KTsKICAgICBpbnQgd2luZG93
c1ZpcnR1YWxLZXlDb2RlICAgICAgID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7
CiAgICAgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlICAgICAgICA9IFtldmVudCBrZXlDb2RlXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5k
ZXggMmI4NDQ5ODYyYTRiNzRkODU2ODE4MTQxYTdiYzk3OGQwYzRhOTNiNi4uZDM4OTZhNjJmZTUz
ZGUyM2ZiZmFiMWE1MWEwMmM3YzYwODg4MDQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ1NjQsNiArNDU2NCwyMyBAQCAtICh2
b2lkKV9oYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2U6KE5TU3RyaW5nICopaWRlbnRp
ZmllcgogewogICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KIH0KKworLSAodm9pZClf
aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGU6KE5TVGV4dENoZWNraW5nUmVzdWx0ICopY2FuZGlkYXRl
Cit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKyAgICBf
aW1wbC0+aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoY2FuZGlkYXRlKTsKKyNlbmRpZgorfQorCist
ICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZQoreworICAgIC8vIE92ZXJyaWRkZW4g
Ynkgc3ViY2xhc3Nlcy4KK30KKworLSAodm9pZClfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlcworewor
ICAgIF9pbXBsLT5mb3JjZVJlcXVlc3RDYW5kaWRhdGVzRm9yVGVzdGluZygpOworfQogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKIAogLy8gRXhlY3V0ZSB0aGUgc3VwcGxpZWQgYmxvY2sgYWZ0ZXIg
dGhlIG5leHQgdHJhbnNhY3Rpb24gZnJvbSB0aGUgV2ViUHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXgg
M2MzNDMzYzNkMTBlNzFhNjFhZGZhY2MzOWZlNWJkMDgxNmVhYTgxNy4uZTA1NTE2NTc5NzFjNWI3
ZTgwYmFmNDZhNTYyYTQ5YjY4MjViZGQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTI3Myw2ICsyNzMsOSBA
QCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2hhc0FjdGl2ZVZpZGVvRm9yQ29u
dHJvbHNNYW5hZ2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSk7CiAtICh2b2lkKV9y
ZXF1ZXN0Q29udHJvbGxlZEVsZW1lbnRJRCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSk7CiAtICh2b2lkKV9oYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2U6KE5TU3Ry
aW5nICopaWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7Cist
ICh2b2lkKV9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTooTlNUZXh0Q2hlY2tpbmdSZXN1bHQgKilj
YW5kaWRhdGU7CistICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTsKKy0gKHZvaWQp
X2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXM7CiAjZW5kaWYKIAogLSAodm9pZClfZG9BZnRlck5leHRQ
cmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggNDk5NDNmMTZjYjVlZGMzNWU5Y2E3Njk1Njc2
ZGE4MzA3ZWQ4ODQ0Zi4uYmQwN2VhOGFmYTdkMDc1NzUzMTI5NjVhOTU1ZWRlZjRkMjNlZTViZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTg0
LDYgKzg0LDcgQEAgT0JKQ19DTEFTUyBfV0tUaHVtYm5haWxWaWV3OwogQG9wdGlvbmFsCiAtICh2
b2lkKV93ZWJfZGlkQWRkTWVkaWFDb250cm9sc01hbmFnZXI6KGlkKWNvbnRyb2xzTWFuYWdlcjsK
IC0gKHZvaWQpX3dlYl9kaWRSZW1vdmVNZWRpYUNvbnRyb2xzTWFuYWdlcjsKKy0gKHZvaWQpX2Rp
ZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOwogCiBAZW5kCiAKQEAgLTM1OSw2ICszNjAsMTAgQEAg
cHVibGljOgogICAgIE5TU3RyaW5nICpzdHJpbmdGb3JUb29sVGlwKE5TVG9vbFRpcFRhZyB0YWcp
OwogICAgIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiBvbGRUb29sVGlwLCBjb25z
dCBTdHJpbmcmIG5ld1Rvb2xUaXApOwogCisgICAgYm9vbCBpc0luc2VydGluZ1RleHRBc3luY2hy
b25vdXNseSgpIGNvbnN0IHsgcmV0dXJuIG1fcGVuZGluZ0FzeW5jaHJvbm91c1RleHRJbnNlcnRp
b25Db3VudDsgfQorICAgIHZvaWQgd2lsbEluc2VydFRleHRBc3luY2hyb25vdXNseSgpIHsgbV9w
ZW5kaW5nQXN5bmNocm9ub3VzVGV4dEluc2VydGlvbkNvdW50Kys7IH0KKyAgICB2b2lkIGRpZElu
c2VydFRleHRBc3luY2hyb25vdXNseSgpIHsgbV9wZW5kaW5nQXN5bmNocm9ub3VzVGV4dEluc2Vy
dGlvbkNvdW50LS07IH0KKwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RM
YXllcihDQUxheWVyICopOwogICAgIENBTGF5ZXIgKmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RMYXllci5nZXQoKTsgfQogCkBAIC00NzgsNiAr
NDgzLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmlnaHRNb3VzZVVwKE5TRXZlbnQgKik7CiAKICAg
ICB2b2lkIHVwZGF0ZVdlYlZpZXdJbXBsQWRkaXRpb25zKCk7CisgICAgdm9pZCBmb3JjZVJlcXVl
c3RDYW5kaWRhdGVzRm9yVGVzdGluZygpOwogICAgIGJvb2wgc2hvdWxkUmVxdWVzdENhbmRpZGF0
ZXMoKSBjb25zdDsKICAgICB2b2lkIHNob3dDYW5kaWRhdGVzKE5TQXJyYXkgKmNhbmRpZGF0ZXMs
IE5TU3RyaW5nICosIE5TUmVjdCByZWN0T2ZUeXBlZFN0cmluZywgTlNSYW5nZSBzZWxlY3RlZFJh
bmdlLCBOU1ZpZXcgKiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShOU1RleHRDaGVja2luZ1Jl
c3VsdCAqYWNjZXB0ZWRDYW5kaWRhdGUpKTsKICAgICB2b2lkIHdlYlZpZXdJbXBsQWRkaXRpb25z
V2lsbERlc3Ryb3lWaWV3KCk7CkBAIC02NDksNiArNjU1LDggQEAgcHJpdmF0ZToKICAgICBib29s
IG1faXNIYW5kbGluZ0FjY2VwdGVkQ2FuZGlkYXRlIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVx
dWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2VkaXRhYmxlRWxlbWVudElzRm9jdXNlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lz
VGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSB7IGZhbHNlIH07CisgICAgdW5zaWduZWQg
bV9wZW5kaW5nQXN5bmNocm9ub3VzVGV4dEluc2VydGlvbkNvdW50IHsgMCB9OwogfTsKICAgICAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCmluZGV4IDY1MTY5ZWQ5M2U0ZDAyNTAzZmYxMzQ1ZjIwZGUwOTMwOTRm
ODMwYTEuLmNlN2E4M2UxMGJlZDU1MGVhNDdhZTQwNGNlNjVmOGM5NWNmYjY1OTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTQ0MSw2ICs0
NDEsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlV2ViVmlld0ltcGxBZGRpdGlvbnMoKQog
ewogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpmb3JjZVJlcXVlc3RDYW5kaWRhdGVzRm9yVGVzdGlu
ZygpCit7Cit9CisKIGJvb2wgV2ViVmlld0ltcGw6OnNob3VsZFJlcXVlc3RDYW5kaWRhdGVzKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CkBAIC02MjAsNyArNjI0LDcgQEAgYm9vbCBXZWJW
aWV3SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIoKQogICAgICAgICBpZiAoW2V2ZW50IHR5cGVd
ID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkKICAgICAgICAgICAgIGtl
eWJvYXJkRXZlbnQgPSBldmVudDsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAg
ICAgbV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5nTmV4dCwg
a2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVu
dCwgZmFsc2UsIHsgfSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKKyAg
ICAgICAgbV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5nTmV4
dCwga2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9hcmRF
dmVudCwgZmFsc2UsIGZhbHNlLCB7IH0pLCBbXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3Ip
IHsgfSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjQzNiw2ICsyNDQwLDkgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ2hhbmdlQ29udGVudFNpemUoQ0dTaXplIG5ld1NpemUpCiB2
b2lkIFdlYlZpZXdJbXBsOjpkaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSgpCiB7CiAgICAgbV9p
c0hhbmRsaW5nQWNjZXB0ZWRDYW5kaWRhdGUgPSBmYWxzZTsKKworICAgIGlmIChbbV92aWV3IHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKV0p
CisgICAgICAgIFttX3ZpZXcgX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlXTsKIH0KIAogdm9p
ZCBXZWJWaWV3SW1wbDo6dmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKQpAQCAtMzU2Nywx
MSArMzU3NCwxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnNlcnRUZXh0KGlkIHN0cmluZywgTlNS
YW5nZSByZXBsYWNlbWVudFJhbmdlKQogICAgIH0gZWxzZQogICAgICAgICB0ZXh0ID0gc3RyaW5n
OwogCi0gICAgQk9PTCBuZWVkVG9SZW1vdmVTb2Z0U3BhY2UgPSBOTzsKKyAgICBtX2lzVGV4dElu
c2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA9IGZhbHNlOwogI2lmIEhBVkUoQURWQU5DRURfU1BF
TExfQ0hFQ0tJTkcpCiAgICAgaWYgKG1fc29mdFNwYWNlUmFuZ2UubG9jYXRpb24gIT0gTlNOb3RG
b3VuZCAmJiAocmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlvbiA9PSBOU01heFJhbmdlKG1fc29mdFNw
YWNlUmFuZ2UpIHx8IHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkgJiYg
cmVwbGFjZW1lbnRSYW5nZS5sZW5ndGggPT0gMCAmJiBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNw
ZWxsQ2hlY2tlcl0gZGVsZXRlc0F1dG9zcGFjZUJlZm9yZVN0cmluZzp0ZXh0IGxhbmd1YWdlOm5p
bF0pIHsKICAgICAgICAgcmVwbGFjZW1lbnRSYW5nZSA9IG1fc29mdFNwYWNlUmFuZ2U7Ci0gICAg
ICAgIG5lZWRUb1JlbW92ZVNvZnRTcGFjZSA9IFlFUzsKKyAgICAgICAgbV9pc1RleHRJbnNlcnRp
b25SZXBsYWNpbmdTb2Z0U3BhY2UgPSB0cnVlOwogICAgIH0KICNlbmRpZgogICAgIG1fc29mdFNw
YWNlUmFuZ2UgPSBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKTsKQEAgLTM1ODIsNyArMzU4OSw3
IEBAIHZvaWQgV2ViVmlld0ltcGw6Omluc2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxh
Y2VtZW50UmFuZ2UpCiAgICAgLy8gLSBJZiBpdCdzIHNlbnQgb3V0c2lkZSBvZiBrZXlib2FyZCBl
dmVudCBwcm9jZXNzaW5nIChlLmcuIGZyb20gQ2hhcmFjdGVyIFZpZXdlciwgb3Igd2hlbiBjb25m
aXJtaW5nIGFuIGlubGluZSBpbnB1dCBhcmVhIHdpdGggYSBtb3VzZSksCiAgICAgLy8gdGhlbiB3
ZSBhbHNvIGV4ZWN1dGUgaXQgaW1tZWRpYXRlbHksIGFzIHRoZXJlIHdpbGwgYmUgbm8gb3RoZXIg
Y2hhbmNlLgogICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+KiBrZXlwcmVzc0Nv
bW1hbmRzID0gbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzOwotICAgIGlmIChrZXlwcmVzc0Nv
bW1hbmRzICYmICFuZWVkVG9SZW1vdmVTb2Z0U3BhY2UpIHsKKyAgICBpZiAoa2V5cHJlc3NDb21t
YW5kcyAmJiAhbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UpIHsKICAgICAgICAg
QVNTRVJUKHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCk7CiAgICAgICAg
IFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCBjb21tYW5kKCJpbnNlcnRUZXh0OiIsIHRleHQpOwog
ICAgICAgICBrZXlwcmVzc0NvbW1hbmRzLT5hcHBlbmQoY29tbWFuZCk7CkBAIC0zNTk2LDcgKzM2
MDMsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnNlcnRUZXh0KGlkIHN0cmluZywgTlNSYW5nZSBy
ZXBsYWNlbWVudFJhbmdlKQogICAgIGlmICghZGljdGF0aW9uQWx0ZXJuYXRpdmVzLmlzRW1wdHko
KSkKICAgICAgICAgbV9wYWdlLT5pbnNlcnREaWN0YXRlZFRleHRBc3luYyhldmVudFRleHQsIHJl
cGxhY2VtZW50UmFuZ2UsIGRpY3RhdGlvbkFsdGVybmF0aXZlcywgcmVnaXN0ZXJVbmRvR3JvdXAp
OwogICAgIGVsc2UKLSAgICAgICAgbV9wYWdlLT5pbnNlcnRUZXh0QXN5bmMoZXZlbnRUZXh0LCBy
ZXBsYWNlbWVudFJhbmdlLCByZWdpc3RlclVuZG9Hcm91cCwgbmVlZFRvUmVtb3ZlU29mdFNwYWNl
ID8gRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpQYXJhZ3JhcGggOiBFZGl0aW5nUmFuZ2VJc1Jl
bGF0aXZlVG86OkVkaXRhYmxlUm9vdCk7CisgICAgICAgIG1fcGFnZS0+aW5zZXJ0VGV4dEFzeW5j
KGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXAsIG1faXNUZXh0
SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlID8gRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpQ
YXJhZ3JhcGggOiBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG86OkVkaXRhYmxlUm9vdCk7CiB9CiAK
IHZvaWQgV2ViVmlld0ltcGw6OnNlbGVjdGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9p
ZCheY29tcGxldGlvbkhhbmRsZXJQdHIpKE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSkpCkBAIC0zODcw
LDcgKzM4NzcsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2
ZW50ICpldmVudCkKICAgICAvLyBGSVhNRTogV2h5IGlzIHRoZSBmaXJzdFJlc3BvbmRlciBjaGVj
ayBuZWVkZWQ/CiAgICAgaWYgKG1fdmlldyA9PSBtX3ZpZXcud2luZG93LmZpcnN0UmVzcG9uZGVy
KSB7CiAgICAgICAgIGludGVycHJldEtleUV2ZW50KGV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5w
dXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5k
cykgewotICAgICAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOworICAg
ICAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBmYWxzZSwgY29tbWFuZHMpKTsKICAgICAg
ICAgfSk7CiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQpAQCAtMzg4NSw5ICszODkyLDEwIEBA
IHZvaWQgV2ViVmlld0ltcGw6OmtleVVwKE5TRXZlbnQgKmV2ZW50KQogCiAgICAgTE9HKFRleHRJ
bnB1dCwgImtleVVwOiVwICVAIiwgZXZlbnQsIGV2ZW50KTsKIAorICAgIG1faXNUZXh0SW5zZXJ0
aW9uUmVwbGFjaW5nU29mdFNwYWNlID0gZmFsc2U7CiAgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZl
bnQsIF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6Oktl
eXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7CiAgICAgICAgIEFTU0VSVCghaGFuZGxlZEJ5SW5w
dXRNZXRob2QgfHwgY29tbWFuZHMuaXNFbXB0eSgpKTsKLSAgICAgICAgbV9wYWdlLT5oYW5kbGVL
ZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0
TWV0aG9kLCBjb21tYW5kcykpOworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQo
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIG1faXNU
ZXh0SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlLCBjb21tYW5kcykpOwogICAgIH0pOwogfQog
CkBAIC0zOTEyLDkgKzM5MjAsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6a2V5RG93bihOU0V2ZW50
ICpldmVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1faXNUZXh0SW5zZXJ0aW9u
UmVwbGFjaW5nU29mdFNwYWNlID0gZmFsc2U7CiAgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQs
IF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7CiAgICAgICAgIEFTU0VSVCghaGFuZGxlZEJ5SW5wdXRN
ZXRob2QgfHwgY29tbWFuZHMuaXNFbXB0eSgpKTsKLSAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXli
b2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0
aG9kLCBjb21tYW5kcykpOworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIG1faXNUZXh0
SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlLCBjb21tYW5kcykpOwogICAgIH0pOwogfQogCkBA
IC0zOTMwLDcgKzM5MzksNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmbGFnc0NoYW5nZWQoTlNFdmVu
dCAqZXZlbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGludGVycHJldEtleUV2ZW50KGV2ZW50
LCBeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewotICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJk
RXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IGNvbW1hbmRzKSk7CisgICAgICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgZmFsc2UsIGNvbW1h
bmRzKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmlu
ZGV4IDFiMjRkYjI3NWU4Y2UwYjIwYjZjZWU0ZjMwNWI1YmY1OWM4MWVhN2QuLjQ4Nzc3MzE0OTcw
MTZmYzZhNjIyMTQ4M2U3ZDZjZDg0ZWNlMDM2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaApAQCAtMTgwLDYgKzE4MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihMYXllck9yVmlldyAqKSA9IDA7CiAg
ICAgdmlydHVhbCBMYXllck9yVmlldyAqYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiB0YWtlVmll
d1NuYXBzaG90KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsSW5zZXJ0VGV4dEFzeW5jKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRUZXh0QXN5bmMoKSA9IDA7CiAjaWYgRU5B
QkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICB2aXJ0dWFsIHZvaWQgZ2VzdHVyZUV2ZW50V2Fz
Tm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJHZXN0dXJlRXZlbnQmKSA9IDA7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDJj
MmMyMjA4YjliOTg3ZTc3M2QwYmU0ZWMwMjczNmI4NjJlZDk4Ny4uMmQ4MjFkY2IxYzMyNDQ0ZDI3
MzAxMjEzMTlmODlhNDgyOTFmMGI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTYxMzksMTEgKzYxMzksMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmFk
ZE1JTUVUeXBlV2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRJbnNlcnRU
ZXh0QXN5bmMoKQoreworICAgIG1fcGFnZUNsaWVudC5kaWRJbnNlcnRUZXh0QXN5bmMoKTsKK30K
Kwogdm9pZCBXZWJQYWdlUHJveHk6Omluc2VydFRleHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbnRSYW5nZSwgYm9vbCByZWdpc3RlclVuZG9H
cm91cCwgRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvIGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbykK
IHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9wYWdlQ2xp
ZW50LndpbGxJbnNlcnRUZXh0QXN5bmMoKTsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6SW5zZXJ0VGV4dEFzeW5jKHRleHQsIHJlcGxhY2VtZW50UmFuZ2UsIHJlZ2lzdGVy
VW5kb0dyb3VwLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRv
KSksIG1fcGFnZUlEKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDZmYTU5NzViMzU4MjI1ZDc5NzNjNDNlMDMwZDM5ZThmYTg4ZGIzNGEuLjM0MzM4NjEz
Yjg2YjlkZDhiY2JhNDA4NTEyMDBlMDM5MDA2OGI3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTU2Myw2ICs1NjMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKExheWVyT3JWaWV3Kik7CiAgICAgTGF5
ZXJPclZpZXcqIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBjb25zdDsKIAorICAg
IHZvaWQgd2lsbEluc2VydFRleHRBc3luYygpOworICAgIHZvaWQgZGlkSW5zZXJ0VGV4dEFzeW5j
KCk7CiAgICAgdm9pZCBpbnNlcnRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBF
ZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGJvb2wgcmVnaXN0ZXJVbmRvR3JvdXAgPSBm
YWxzZSwgRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvID0gRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRv
OjpFZGl0YWJsZVJvb3QpOwogICAgIHZvaWQgZ2V0TWFya2VkUmFuZ2VBc3luYyhzdGQ6OmZ1bmN0
aW9uPHZvaWQgKEVkaXRpbmdSYW5nZSwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+KTsKICAgICB2b2lk
IGdldFNlbGVjdGVkUmFuZ2VBc3luYyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKEVkaXRpbmdSYW5nZSwg
Q2FsbGJhY2tCYXNlOjpFcnJvcik+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDBkYmIxNGNlMDIzYWY3Nzk3M2IyOTM2NjFh
ZDFjZGFlNDRlNGU4MDEuLmM3MWEzNGU5YTE2MzA2Yjk4NGMyZTQyYjJiOWQ5MjBkZTQ4YmI2ZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgpAQCAtNDYyLDQgKzQ2Miw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIERpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKCkKICNlbmRpZgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgRGlkSW5zZXJ0VGV4dEFzeW5jKCkKKyNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CmluZGV4IDAxYWIxMGQ4NzUzMTQ3YTZmNTk1ZDlkNzFhMTQzNThhZDg0NzkxN2IuLjg1YzY0ZWRm
Y2Q1NWFiOTdmZjQ2ODlmMzc4YjQxNzNjZGRlZjllZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTEwOCw2ICsxMDgsOCBAQCBw
cml2YXRlOgogICAgIExheWVySG9zdGluZ01vZGUgdmlld0xheWVySG9zdGluZ01vZGUoKSBvdmVy
cmlkZSB7IHJldHVybiBMYXllckhvc3RpbmdNb2RlOjpPdXRPZlByb2Nlc3M7IH0KIAogICAgIFBh
c3NSZWZQdHI8Vmlld1NuYXBzaG90PiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CisgICAg
dm9pZCB3aWxsSW5zZXJ0VGV4dEFzeW5jKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRJbnNlcnRU
ZXh0QXN5bmMoKSBvdmVycmlkZTsKICAgICB2b2lkIHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlX
ZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBvdmVycmlkZTsKIAogICAgIHZvaWQg
Y29tbWl0UG90ZW50aWFsVGFwRmFpbGVkKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA1ZmMyMmFkOTI5ZDc0
MTZiNzRkNDQ2MDMzZjUxNmVkYTk3MTY3OTNlLi43NjgxMmMyYjAzZDZjMThkM2U2OTkwMTQyYzE0
NzhlYmYyNTI5YWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KQEAgLTQ3Miw2ICs0NzIsMTQgQEAgUGFzc1JlZlB0cjxWaWV3U25h
cHNob3Q+IFBhZ2VDbGllbnRJbXBsOjp0YWtlVmlld1NuYXBzaG90KCkKICAgICByZXR1cm4gW21f
d2ViVmlldyBfdGFrZVZpZXdTbmFwc2hvdF07CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6Ondp
bGxJbnNlcnRUZXh0QXN5bmMoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRJbnNl
cnRUZXh0QXN5bmMoKQoreworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2Fz
Tm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbC5oCmluZGV4IDUyNTlmYjViNzI1Y2E0NzY5MmVhZDdhYTQ4NTkwMTIxM2M3
YWI2ZTkuLjg1YzU0Y2Q2MDI0Yjc5ZmM4YzZhNDFiYzRkYzAwYmFmMjc0NTkwYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTE0MCw2ICsx
NDAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwogCiAgICAgUGFzc1JlZlB0cjxW
aWV3U25hcHNob3Q+IHRha2VWaWV3U25hcHNob3QoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxJ
bnNlcnRUZXh0QXN5bmMoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEluc2VydFRleHRBc3luYygp
IG92ZXJyaWRlOwogICAgIHZvaWQgd2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29u
c3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShNQUNfR0VTVFVS
RV9FVkVOVFMpCiAgICAgdm9pZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNv
bnN0IE5hdGl2ZVdlYkdlc3R1cmVFdmVudCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggNWI1YTEyMWE2OTM5NzZmZjYw
YTE4ZGIyNTU2ZjVmNGI5NWUyOTI1OC4uNmJmYjNhYjc0ZDUwYjc2Y2E4MjE4OTcyNDEwMTA4YTFh
NjE0ODQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsLm1tCkBAIC00OTUsNiArNDk1LDE2IEBAIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBQYWdl
Q2xpZW50SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAgICAgcmV0dXJuIG1faW1wbC0+dGFrZVZp
ZXdTbmFwc2hvdCgpOwogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aWxsSW5zZXJ0VGV4dEFz
eW5jKCkKK3sKKyAgICBtX2ltcGwtPndpbGxJbnNlcnRUZXh0QXN5bmNocm9ub3VzbHkoKTsKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkSW5zZXJ0VGV4dEFzeW5jKCkKK3sKKyAgICBtX2lt
cGwtPmRpZEluc2VydFRleHRBc3luY2hyb25vdXNseSgpOworfQorCiB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpzZWxlY3Rpb25EaWRDaGFuZ2UoKQogewogICAgIG1faW1wbC0+c2VsZWN0aW9uRGlkQ2hh
bmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggMDBiMjgxZTI0ZmQzMmJmZjJjNmJmOTAzOTliM2FiMzczNGQyYzc5Yi4uYTZlN2JiZmMw
ZGJiZTZkMzk3NmM5N2NiOWM1NGZiYWRiMDZkNzA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDYyOSw2ICs0NjI5LDggQEAgdm9pZCBX
ZWJQYWdlOjppbnNlcnRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5n
UmFuZ2UmIHJlcGxhY2VtZW4KICAgICAgICAgZnJhbWUuZWRpdG9yKCkuaW5zZXJ0VGV4dCh0ZXh0
LCBudWxscHRyKTsKICAgICB9IGVsc2UKICAgICAgICAgZnJhbWUuZWRpdG9yKCkuY29uZmlybUNv
bXBvc2l0aW9uKHRleHQpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRJ
bnNlcnRUZXh0QXN5bmMoKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Z2V0TWFya2VkUmFuZ2VBc3lu
Yyh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGZmOGI3NTMxODBmNmQ1NGRkZTY3MWEwMjQzOWNiNjUwNWFkYWU2
NjguLjU4YmU5ZDllNTY2OTEyN2U3MzRkNGQ1NzdkZmUwNDhjOTZlM2QzMGQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MSBAQAor
MjAxNi0wOS0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbnNlcnRpbmcgYSBzcGFjZSBhZnRlciBpbnNlcnRpbmcgYW4gYWNjZXB0ZWQgY2FuZGlk
YXRlIHNjcm9sbHMgdGhlIGRvY3VtZW50IGFuZCBjYXVzZXMgYSBmbGlja2VyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIwMDkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI4MDg2MjM3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZHMgMiBuZXcgdGV4dCBlZGl0aW5nIEFQSSB0ZXN0cyBjb3Zlcmlu
ZyBjYW5kaWRhdGUgaW5zZXJ0aW9uLCBhcyB3ZWxsIGFzIHN1cHBvcnQgZm9yIHRlc3RpbmcgY2Fu
ZGlkYXRlcyBpbgorICAgICAgICBXS1dlYlZpZXdzLiBSZWZhY3RvcnMgY29tbW9uIFdLV2ViVmll
dyBoZWxwZXJzIGFjcm9zcyBib3RoIFZpZGVvQ29udHJvbHNNYW5hZ2VyIHRlc3RzIGFuZCB0aGUg
bmV3CisgICAgICAgIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzIGludG8gYSBuZXcgdXRpbGl0eSBj
bGFzcywgVGVzdFdLV2ViVmlldyBpbiBUZXN0V0tXZWJWaWV3Lm1tLCB3aGljaCBpcyBjYXBhYmxl
IG9mCisgICAgICAgIHNpbXVsYXRpbmcgbW91c2UgYW5kIGtleWJvYXJkIGV2ZW50cyBhcyB3ZWxs
IGFzIHdhaXRpbmcgZm9yIEphdmFTY3JpcHQgbWVzc2FnZXMgc2VudCBmcm9tIHRoZSB3ZWIgcHJv
Y2VzcyBhbmQKKyAgICAgICAgcGVyZm9ybWluZyBhY3Rpb25zIGluIHJlc3BvbnNlLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL2F1ZGlvLW9ubHku
aHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0
aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92
aWRlby13aXRob3V0LWF1ZGlvLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKC1bTWVzc2FnZUhhbmRsZXIgaW5pdFdpdGhNZXNzYWdlOmhh
bmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW01lc3NhZ2VIYW5kbGVyIHVzZXJDb250ZW50
Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyBtb3VzZURvd25BdFBvaW50Ol0pOiBE
ZWxldGVkLgorICAgICAgICAoLVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IHBlcmZv
cm1BZnRlckxvYWRpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNNYW5h
Z2VyVGVzdFdlYlZpZXcgY2FsbEphdmFzY3JpcHRGdW5jdGlvbjpdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyBw
ZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOmFjdGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0
cy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RDYW5kaWRhdGUgaW5pdFdpdGhSZXBsYWNlbWVu
dFN0cmluZzppblJhbmdlOl0pOgorICAgICAgICAoLVtUZXN0Q2FuZGlkYXRlIHJlcGxhY2VtZW50
U3RyaW5nXSk6CisgICAgICAgICgtW1Rlc3RDYW5kaWRhdGUgcmVzdWx0VHlwZV0pOgorICAgICAg
ICAoLVtUZXN0Q2FuZGlkYXRlIHJhbmdlXSk6CisgICAgICAgICgtW0NhbmRpZGF0ZVRlc3RXZWJW
aWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6cmFuZ2U6XSk6CisgICAgICAg
ICgtW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZV0pOgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRt
bDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2Utdmlk
ZW8tc291cmNlLW9uLWVuZC5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2Z1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWw6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW5wdXQtZmllbGQtaW4t
c2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVr
LXRvLWVuZC5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2xhcmdlLXZpZGVvLW11dGVzLW9ucGxheWluZy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXBsYXlpbmct
c2Nyb2xsLWF3YXkuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5n
LWFuZC1wbGF5LWFmdGVyLWVuZGluZy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRob3V0LWF1ZGlv
Lmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWw6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLXNjcm9s
bC10by12aWRlby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2xhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWlu
Zy1tdXRlZC12aWRlby1oaWRlcy1jb250cm9scy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNv
bnRyb2xzLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbDoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9za2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1h
dWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3dp
ZGUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RNZXNz
YWdlSGFuZGxlciBpbml0V2l0aE1lc3NhZ2U6aGFuZGxlcjpdKToKKyAgICAgICAgKC1bVGVzdE1l
c3NhZ2VIYW5kbGVyIHVzZXJDb250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2Fn
ZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBtb3VzZURvd25BdFBvaW50Ol0pOgorICAg
ICAgICAoLVtUZXN0V0tXZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6YWN0aW9u
Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOl0pOgorICAg
ICAgICAoLVtUZXN0V0tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6XSk6CisgICAgICAgICgtW1Rlc3RX
S1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpdKToKKyAgICAgICAgKC1bVGVz
dFdLV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBw
ZXJmb3JtQWZ0ZXJMb2FkaW5nOl0pOgorCiAyMDE2LTA5LTE0ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhIGNvbnRyb2xzIGJlaGF2ZSBzdHJh
bmdlbHkgd2hlbiBjaGFuZ2luZyBtZWRpYSBzb3VyY2VzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDhhNDljM2JjYjc5YTQ2ZDA2YzBmOTE0NDM4YzRiYTQ5NjM5NDYxOTcuLjNlOWU0ZDVlZTIw
NjAxMDhhOTNmMGRlNTljMjY1Mjk5MDU0NjU4OWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC03OCw2ICs3OCw5IEBACiAJCTJFRkYwNkMzMUQ4ODYyMUUwMDA0QkIzMCAvKiBsYXJnZS12aWRl
by1vZmZzY3JlZW4uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRUZGMDZDMjFEODg2MjEyMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zm
c2NyZWVuLmh0bWwgKi87IH07CiAJCTJFRkYwNkM1MUQ4ODY3NzYwMDA0QkIzMCAvKiBjaGFuZ2Ut
dmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5n
ZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCAqLzsgfTsKIAkJMkVGRjA2QzcxRDg4NkE1ODAw
MDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2QzYxRDg4NkE1NjAw
MDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi87IH07CisJCTJFRkYw
NkNEMUQ4QTQyOUEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkVGRjA2Q0MxRDhBNDI5MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUt
ZG9jdW1lbnQuaHRtbCAqLzsgfTsKKwkJMkVGRjA2RDQxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RX
S1dlYlZpZXdNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRUZGMDZEMzFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5tbSAqLzsg
fTsKKwkJMkVGRjA2RDcxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3Rz
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2
RDYxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICovOyB9Owog
CQkzM0JFNUFGOTEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCRTVB
RjgxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCAqLzsg
fTsKIAkJMzNEQzg5MTIxNDE5NTVGRTAwNzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0RDODkw
RTE0MTk1MzkzMDA3NDdFRjcgLyogc2ltcGxlLWlmcmFtZS5odG1sICovOyB9OwogCQkzM0RDODkx
NDE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNr
X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzM0RDODkxMzE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVj
dENhbGxiYWNrX0J1bmRsZS5jcHAgKi87IH07CkBAIC01NDEsNiArNTQ0LDcgQEAKIAkJCWRzdFBh
dGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3Owog
CQkJZmlsZXMgPSAoCisJCQkJMkVGRjA2Q0QxRDhBNDI5QTAwMDRCQjMwIC8qIGlucHV0LWZpZWxk
LWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQky
RUZGMDZDNzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRUZGMDZDNTFEODg2Nzc2MDAwNEJCMzAgLyog
Y2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTJFRkYwNkMzMUQ4ODYyMUUwMDA0QkIzMCAvKiBsYXJnZS12aWRlby1vZmZzY3JlZW4uaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTc4OSw2ICs3OTMsMTAgQEAKIAkJMkVGRjA2QzIx
RDg4NjIxMjAwMDRCQjMwIC8qIGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12
aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJj
aGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyRUZGMDZDNjFEODg2QTU2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1v
bi1lbmQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjaGFuZ2UtdmlkZW8tc291
cmNlLW9uLWVuZC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVGRjA2Q0Mx
RDhBNDI5MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxl
LWRvY3VtZW50Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZEMjFE
OEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUZXN0V0tXZWJWaWV3TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJFRkYwNkQzMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdFdLV2ViVmlld01hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVGRjA2RDYxRDhBRjM0QTAwMDRCQjMw
IC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMzM0I5Q0UxMTI3N0YyMzEwMEZFRkNFMyAvKiBQcmV2ZW50RW1wdHlV
c2VyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJldmVu
dEVtcHR5VXNlckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzNCRTVB
RjQxMzdCNUE2QzAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3Vz
ZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzc1LDYgKzEzODMsNyBAQAogCQkJCTM3QjQ3RTJFMUQ2NEU3Q0EwMDVG
NEVGRiAvKiBXS09iamVjdC5tbSAqLywKIAkJCQkyRDAwMDY1RDFDMUY1ODk0MDA4OEU2QTcgLyog
V0tQREZWaWV3UmVzaXplQ3Jhc2gubW0gKi8sCiAJCQkJNUU0QjFEMkMxRDQwNEM2MTAwMDUzNjIx
IC8qIFdLU2Nyb2xsVmlld0RlbGVnYXRlQ3Jhc2gubW0gKi8sCisJCQkJMkVGRjA2RDYxRDhBRjM0
QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICovLAogCQkJCTdDNDE3RjMx
MUQxOUUxNDgwMEI4RUY1MyAvKiBXS1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1t
ICovLAogCQkJCTBGM0I5NEE1MUE3NzI2NkMwMERFMzI3MiAvKiBXS1dlYlZpZXdFdmFsdWF0ZUph
dmFTY3JpcHQubW0gKi8sCiAJCQkJOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmll
d1RleHRJbnB1dC5tbSAqLywKQEAgLTE0NjQsNiArMTQ3Myw3IEBACiAJCUExNkY2NkI4MUM0MEU5
RTEwMEJENEQyNCAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1p
bi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgKi8sCiAJCQkJMkVGRjA2QzYxRDg4NkE1NjAwMDRC
QjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzQx
RDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCAqLywK
IAkJCQkyRUZGMDZDMjFEODg2MjEyMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0
bWwgKi8sCkBAIC0xODE5LDYgKzE4MjksOCBAQAogCQkJCUMwODEyMjQ0MTNGQzE5RUMwMERDMzlB
RSAvKiBTeW50aGV0aWNCYWNraW5nU2NhbGVGYWN0b3JXaW5kb3cubSAqLywKIAkJCQkyOUFCOEFB
MzE2NEM3QTkzMDBENDlCRUMgLyogVGVzdEJyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZS5oICov
LAogCQkJCTI5QUI4QUEyMTY0QzdBOTMwMEQ0OUJFQyAvKiBUZXN0QnJvd3NpbmdDb250ZXh0TG9h
ZERlbGVnYXRlLm1tICovLAorCQkJCTJFRkYwNkQyMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tX
ZWJWaWV3TWFjLmggKi8sCisJCQkJMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dl
YlZpZXdNYWMubW0gKi8sCiAJCQkJQzA4NTg3QkUxM0ZFOTU2QzAwMUVGNEU1IC8qIFdlYktpdEFn
bm9zdGljVGVzdC5oICovLAogCQkJCUMwODU4N0JEMTNGRTk1NkMwMDFFRjRFNSAvKiBXZWJLaXRB
Z25vc3RpY1Rlc3QubW0gKi8sCiAJCQkpOwpAQCAtMjM0Miw2ICsyMzU0LDcgQEAKIAkJCQk3Q0NF
N0VGQjFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3Q0NFN0VGQzFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVGcmFt
ZUhpdFRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkQxQTQxMUFFNjAwNDQ3QzRD
IC8qIEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkyRUZGMDZENDFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2Vi
Vmlld01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEI4MUQwQTY0QkQwMEZFQkNGMyAv
KiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdFQzMxQTQxMUE3RTAwNDQ3QzRDIC8qIEluc3BlY3RvckJhci5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RURBMUE0MTFBODcwMDQ0N0M0QyAvKiBJbnN0YW5jZU1ldGhvZFN3
aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yNDYxLDYgKzI0NzQsNyBAQAogCQkJCTdDQ0U3
RUQ4MUE0MTFBN0UwMDQ0N0M0QyAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NDRTdFRDkxQTQxMUE3RTAwNDQ3QzRDIC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0
aE1lZGlhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUY4MzU3MUIxRDNGRkIyMzAwRTM5NjdCIC8q
IFdLQmFja0ZvcndhcmRMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkVGRjA2RDcxRDhBRjM0
QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0NDRTdGMkUxQTQxMUIxMDAwNDQ3QzRDIC8qIFdLQnJvd3NpbmdDb250ZXh0R3JvdXBUZXN0
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMkYxQTQxMUIxMDAwNDQ3QzRDIC8qIFdLQnJv
d3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDNTRB
NEJFMUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvYXVk
aW8tb25seS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL2F1ZGlv
LW9ubHkuaHRtbAppbmRleCA3NDAwZjY2Mjg0ZTI5OTEzZGE1OWI0NmNlMzU2YjhjYTZiZGZkZmNm
Li5jNGEyNGZhZWU3NjdjYTExZTVmNmEwNTdkNmVhZTA4ZGZjYzEyMWFkIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvYXVkaW8tb25seS5odG1sCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy9hdWRpby1vbmx5Lmh0bWwKQEAg
LTEyLDcgKzEyLDcgQEAKICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAgICAgICB3aW5kb3cu
Y2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlp
bmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAg
ICAgICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICB9CkBA
IC0yMCw3ICsyMCw3IEBACiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkgewogICAgICAgICB0
cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hh
bmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcn
KTsKICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICB9CiAgICAgPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aC1hdWRp
by5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGgt
YXVkaW8uaHRtbAppbmRleCBjODkyNGI2Yjk4YWE4M2Y2ZDJiZTE1ZGI0ODk4NDg0MzUzZjVhOWU5
Li44MDhkZGNlYzg2OWQ3NGEzY2ZkYzU5NWUxNjllMTA2MzliYjZmMzM5IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aC1hdWRpby5odG1s
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRoLWF1
ZGlvLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAg
ICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgICB0cnkgewotICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1l
c3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2go
ZSkgewogICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwog
ICAgICAgICB9CkBAIC0yMiw3ICsyMiw3IEBACiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkg
ewogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgn
bm90IHBsYXlpbmcnKTsKICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICB9CiAgICA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRl
by13aXRob3V0LWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9p
b3MvdmlkZW8td2l0aG91dC1hdWRpby5odG1sCmluZGV4IDg0NTg2ZjMyNWMxYmViOTFmYzdmZTA1
YTI3OWFkMDJiZTE4ZTJjNDAuLjI3NWU3ZTFjNTk2Y2JmOWM4N2VmMjczMjc0YzBjY2Q2ZjRlNGU5
MzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRl
by13aXRob3V0LWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvaW9zL3ZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbApAQCAtMTIsNyArMTIsNyBAQAogICAgIGZ1
bmN0aW9uIHBsYXlpbmcoKSB7CiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dCk7
CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycpOworICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlp
bmcnKTsKICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24g
PSAnY2FsbGJhY2s6cGxheWluZyc7CiAgICAgICAgIH0KQEAgLTIwLDcgKzIwLDcgQEAKIAogICAg
IGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgnbm90
IHBsYXlpbmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOwogICAgICAgICB9IGNhdGNoKGUp
IHsgfQogICAgIH0KICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KaW5k
ZXggYmQzMTg2MmFlNDJlY2I0MmNhNDFmMTJiNmFkNmY4N2ZjOTkyMWZiNy4uNjc0NWNjNzI2ZTk1
ZmFjOWNjODYzZGI1NDljMjlmYjIyZDY2MGNjZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIu
bW0KQEAgLTI2LDEwICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCi0KLSNpZiBQTEFURk9STShNQUMpCi0jaW1wb3J0IDxDYXJib24v
Q2FyYm9uLmg+Ci0jZW5kaWYKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMuaCIKIAogI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgpAQCAtNDMsMzQgKzQwLDcgQEAgLSAodm9pZClfaW50ZXJh
Y3RXaXRoTWVkaWFDb250cm9sc0ZvclRlc3Rpbmc7CiAKIEBlbmQKIAotQGludGVyZmFjZSBNZXNz
YWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgotQGVuZAotCi1A
aW1wbGVtZW50YXRpb24gTWVzc2FnZUhhbmRsZXIgewotICAgIGRpc3BhdGNoX2Jsb2NrX3QgX2hh
bmRsZXI7Ci0gICAgTlNTdHJpbmcgKl9tZXNzYWdlOwotfQotCi0tIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaGFuZGxlcjooZGlzcGF0Y2hfYmxvY2tf
dCloYW5kbGVyCi17Ci0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIHJl
dHVybiBuaWw7Ci0KLSAgICBfaGFuZGxlciA9IFtoYW5kbGVyIGNvcHldOwotICAgIF9tZXNzYWdl
ID0gbWVzc2FnZTsKLQotICAgIHJldHVybiBzZWxmOwotfQotCi0tICh2b2lkKXVzZXJDb250ZW50
Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xs
ZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKLXsK
LSAgICBpZiAoWyhOU1N0cmluZyAqKVttZXNzYWdlIGJvZHldIGlzRXF1YWxUb1N0cmluZzpfbWVz
c2FnZV0gJiYgX2hhbmRsZXIpCi0gICAgICAgIF9oYW5kbGVyKCk7Ci19Ci0KLUBlbmQKLQotQGlu
dGVyZmFjZSBWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IDogV0tXZWJWaWV3CitAaW50
ZXJmYWNlIFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcgOiBUZXN0V0tXZWJWaWV3CiBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IHsK
QEAgLTc4LDMyICs0OCw2IEBAIEBpbXBsZW1lbnRhdGlvbiBWaWRlb0NvbnRyb2xzTWFuYWdlclRl
c3RXZWJWaWV3IHsKICAgICBOU1N0cmluZyAqX2NvbnRyb2xsZWRFbGVtZW50SUQ7CiB9CiAKLS0g
KHZvaWQpbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCB7Ci0gICAgW3NlbGYgbW91c2VE
b3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24g
bG9jYXRpb246TlNNYWtlUG9pbnQocG9pbnQueCwgcG9pbnQueSkgbW9kaWZpZXJGbGFnczowIHRp
bWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpbTlNH
cmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDow
IHByZXNzdXJlOjBdXTsKLX0KLQotLSAodm9pZClwZXJmb3JtQWZ0ZXJMb2FkaW5nOihkaXNwYXRj
aF9ibG9ja190KWFjdGlvbnMgewotICAgIE1lc3NhZ2VIYW5kbGVyICpoYW5kbGVyID0gW1tNZXNz
YWdlSGFuZGxlciBhbGxvY10gaW5pdFdpdGhNZXNzYWdlOkAibG9hZGVkIiBoYW5kbGVyOmFjdGlv
bnNdOwotICAgIE5TU3RyaW5nICpvbmxvYWRTY3JpcHQgPSBAIndpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpIHsgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMub25sb2FkSGFuZGxlci5wb3N0
TWVzc2FnZSgnbG9hZGVkJyk7IH0iOwotICAgIFdLVXNlclNjcmlwdCAqc2NyaXB0ID0gW1tXS1Vz
ZXJTY3JpcHQgYWxsb2NdIGluaXRXaXRoU291cmNlOm9ubG9hZFNjcmlwdCBpbmplY3Rpb25UaW1l
OldLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25s
eTpOT107Ci0KLSAgICBXS1VzZXJDb250ZW50Q29udHJvbGxlciogY29udGVudENvbnRyb2xsZXIg
PSBbW3NlbGYgY29uZmlndXJhdGlvbl0gdXNlckNvbnRlbnRDb250cm9sbGVyXTsKLSAgICBbY29u
dGVudENvbnRyb2xsZXIgYWRkVXNlclNjcmlwdDpzY3JpcHRdOwotICAgIFtjb250ZW50Q29udHJv
bGxlciBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyIG5hbWU6QCJvbmxvYWRIYW5kbGVy
Il07Ci19Ci0KLS0gKHZvaWQpY2FsbEphdmFzY3JpcHRGdW5jdGlvbjooTlNTdHJpbmcgKilmdW5j
dGlvbk5hbWUKLXsKLSAgICBOU1N0cmluZyAqY29tbWFuZCA9IFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiJUAoKSIsIGZ1bmN0aW9uTmFtZV07Ci0gICAgW3NlbGYgZXZhbHVhdGVKYXZhU2Ny
aXB0OmNvbW1hbmQgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKLX0KLQotLSAodm9pZClsb2FkVGVz
dFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZQotewotICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpwYWdlTmFtZSB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07Ci0gICAgW3NlbGYgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07Ci19Ci0KIC0gKHZvaWQpZXhwZWN0Q29udHJvbHNNYW5hZ2VyOihCT09MKWV4cGVj
dENvbnRyb2xzTWFuYWdlciBhZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2Fn
ZQogewogICAgIF9fYmxvY2sgYm9vbCBkb25lV2FpdGluZyA9IGZhbHNlOwpAQCAtMTMxLDE0ICs3
NSw2IEBAIC0gKHZvaWQpd2FpdEZvck1lZGlhQ29udHJvbHNUb0hpZGUKICAgICAgICAgW1tOU1J1
bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3Jl
RGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV07CiB9CiAKLS0gKHZvaWQpcGVyZm9ybUFmdGVyUmVj
ZWl2aW5nTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGFjdGlvbjooZGlzcGF0Y2hfYmxvY2tf
dClhY3Rpb24KLXsKLSAgICBSZXRhaW5QdHI8TWVzc2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9w
dE5TKFtbTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoTWVzc2FnZTptZXNzYWdlIGhhbmRs
ZXI6YWN0aW9uXSk7Ci0gICAgV0tVc2VyQ29udGVudENvbnRyb2xsZXIqIGNvbnRlbnRDb250cm9s
bGVyID0gW1tzZWxmIGNvbmZpZ3VyYXRpb25dIHVzZXJDb250ZW50Q29udHJvbGxlcl07Ci0gICAg
W2NvbnRlbnRDb250cm9sbGVyIHJlbW92ZVNjcmlwdE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTpAInBs
YXlpbmdIYW5kbGVyIl07Ci0gICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInBsYXlpbmdIYW5kbGVyIl07Ci19Ci0KIC0gKHZv
aWQpd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6KGludCludW1iZXJPZkF1
dG9wbGF5aW5nVmlkZW9zCiB7CiAgICAgX19ibG9jayBpbnQgcmVtYWluaW5nQXV0b3BsYXllZENv
dW50ID0gbnVtYmVyT2ZBdXRvcGxheWluZ1ZpZGVvczsKQEAgLTI0MCw3ICsxNzYsNyBAQCBURVNU
KFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdlck11bHRpcGxlVmlkZW9z
U2Nyb2xsUGF1c2VkVmlkZW9PdQogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAibGFy
Z2UtdmlkZW9zLXBhdXNlZC12aWRlby1oaWRlcy1jb250cm9scyJdOwogICAgIFt3ZWJWaWV3IHdh
aXRGb3JQYWdlVG9Mb2FkV2l0aEF1dG9wbGF5aW5nVmlkZW9zOjFdOwogCi0gICAgW3dlYlZpZXcg
Y2FsbEphdmFzY3JpcHRGdW5jdGlvbjpAInBhdXNlRmlyc3RWaWRlb0FuZFNjcm9sbFRvU2Vjb25k
VmlkZW8iXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAicGF1
c2VGaXJzdFZpZGVvQW5kU2Nyb2xsVG9TZWNvbmRWaWRlbygpIl07CiAgICAgW3dlYlZpZXcgZXhw
ZWN0Q29udHJvbHNNYW5hZ2VyOk5PIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBhdXNlZCJdOwog
fQogCkBAIC0yNTEsNyArMTg3LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9D
b250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVvc1Njcm9sbFBsYXlpbmdWaWRlb1cKICAgICBbd2Vi
VmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBz
LWNvbnRyb2xzIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlp
bmdWaWRlb3M6MV07CiAKLSAgICBbd2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1bmN0aW9uOkAic2Ny
b2xsVG9TZWNvbmRWaWRlbyJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJzY3JvbGxUb1NlY29uZFZpZGVvKCkiXTsKICAgICBbd2ViVmlldyBleHBlY3RDb250
cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInNjcm9sbGVkIl07CiB9CiAK
QEAgLTI2Miw3ICsxOTgsNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRy
b2xzTWFuYWdlck11bHRpcGxlVmlkZW9zU2Nyb2xsUGxheWluZ011dGVkVgogICAgIFt3ZWJWaWV3
IGxvYWRUZXN0UGFnZU5hbWVkOkAibGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlk
ZXMtY29udHJvbHMiXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxh
eWluZ1ZpZGVvczoxXTsKIAotICAgIFt3ZWJWaWV3IGNhbGxKYXZhc2NyaXB0RnVuY3Rpb246QCJt
dXRlRmlyc3RWaWRlb0FuZFNjcm9sbFRvU2Vjb25kVmlkZW8iXTsKKyAgICBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAibXV0ZUZpcnN0VmlkZW9BbmRTY3JvbGxUb1NlY29u
ZFZpZGVvKCkiXTsKICAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6Tk8gYWZ0ZXJS
ZWNlaXZpbmdNZXNzYWdlOkAicGxheWluZyJdOwogfQogCkBAIC0zMDAsNyArMjM2LDcgQEAgVEVT
VChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVv
c1N3aXRjaENvbnRyb2xsZWRWaWQKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxh
cmdlLXZpZGVvcy1hdXRvcGxheWluZy1zY3JvbGwtdG8tdmlkZW8iXTsKICAgICBbd2ViVmlldyB3
YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVvczoyXTsKIAotICAgIFt3ZWJWaWV3
IGNhbGxKYXZhc2NyaXB0RnVuY3Rpb246QCJzY3JvbGxUb1NlY29uZFZpZXciXTsKKyAgICBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVG9TZWNvbmRWaWV3KCki
XTsKICAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5n
TWVzc2FnZTpAInNjcm9sbGVkIl07CiAKICAgICBFWFBFQ1RfVFJVRShbW3dlYlZpZXcgY29udHJv
bGxlZEVsZW1lbnRJRF0gaXNFcXVhbFRvU3RyaW5nOkAic2Vjb25kIl0pOwpAQCAtMzEyLDcgKzI0
OCw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVs
dGlwbGVWaWRlb3NTY3JvbGxPbmx5TGFyZ2VWaWRlCiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBh
Z2VOYW1lZDpAImxhcmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkiXTsKICAgICBbd2ViVmll
dyB3YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVvczoxXTsKLSAgICBbd2ViVmll
dyBjYWxsSmF2YXNjcmlwdEZ1bmN0aW9uOkAic2Nyb2xsVmlkZW9PdXRPZlZpZXciXTsKKyAgICBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVmlkZW9PdXRPZlZp
ZXcoKSJdOwogICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpZRVMgYWZ0ZXJSZWNl
aXZpbmdNZXNzYWdlOkAic2Nyb2xsZWQiXTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVU
ZXN0cy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NmE3YzQ1ZmJiMjYyY2IwNmYxY2Y0OGExYjg1YTZkZDA3MmY0
NmZkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0KQEAgLTAsMCArMSwxMjkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKwor
I2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMu
aCIKKworI2ltcG9ydCA8V2ViS2l0L1dlYktpdFByaXZhdGUuaD4KKworQGludGVyZmFjZSBUZXN0
Q2FuZGlkYXRlIDogTlNUZXh0Q2hlY2tpbmdSZXN1bHQKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFRlc3RDYW5kaWRhdGUgeworICAgIE5TU3RyaW5nICpfc3RyaW5nOworICAgIE5TUmFuZ2UgX3Jh
bmdlOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZXBsYWNlbWVudFN0cmluZzooTlNT
dHJpbmcgKilzdHJpbmcgaW5SYW5nZTooTlNSYW5nZSlyYW5nZQoreworICAgIGlmIChzZWxmID0g
W3N1cGVyIGluaXRdKSB7CisgICAgICAgIF9zdHJpbmcgPSBzdHJpbmc7CisgICAgICAgIF9yYW5n
ZSA9IHJhbmdlOworICAgIH0KKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoTlNTdHJpbmcgKily
ZXBsYWNlbWVudFN0cmluZworeworICAgIHJldHVybiBfc3RyaW5nOworfQorCistIChOU1RleHRD
aGVja2luZ1R5cGUpcmVzdWx0VHlwZQoreworICAgIHJldHVybiBOU1RleHRDaGVja2luZ1R5cGVS
ZXBsYWNlbWVudDsKK30KKworLSAoTlNSYW5nZSlyYW5nZQoreworICAgIHJldHVybiBfcmFuZ2U7
Cit9CisKK0BlbmQKKworQGludGVyZmFjZSBDYW5kaWRhdGVUZXN0V2ViVmlldyA6IFRlc3RXS1dl
YlZpZXcKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIENhbmRpZGF0ZVRlc3RXZWJWaWV3IHsKKyAg
ICBib29sIF9pc0RvbmVXYWl0aW5nRm9yQ2FuZGlkYXRlOworfQorCistICh2b2lkKWluc2VydENh
bmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6KE5TU3RyaW5nICopcmVwbGFjZW1lbnRTdHJpbmcg
cmFuZ2U6KE5TUmFuZ2UpcmFuZ2UKK3sKKyAgICBfaXNEb25lV2FpdGluZ0ZvckNhbmRpZGF0ZSA9
IGZhbHNlOworICAgIFtzZWxmIF9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTpbW1Rlc3RDYW5kaWRh
dGUgYWxsb2NdIGluaXRXaXRoUmVwbGFjZW1lbnRTdHJpbmc6cmVwbGFjZW1lbnRTdHJpbmcgaW5S
YW5nZTpyYW5nZV1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2lzRG9uZVdhaXRp
bmdGb3JDYW5kaWRhdGUpOworfQorCistICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0
ZQoreworICAgIF9pc0RvbmVXYWl0aW5nRm9yQ2FuZGlkYXRlID0gdHJ1ZTsKK30KKworQGVuZAor
CitURVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBTb2Z0U3BhY2VSZXBsYWNlbWVudEFmdGVy
Q2FuZGlkYXRlSW5zZXJ0aW9uRG9lc05vdFNjcm9sbCkKK3sKKyAgICBDYW5kaWRhdGVUZXN0V2Vi
VmlldyAqd2tXZWJWaWV3ID0gW1tDYW5kaWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV07CisKKyAgICBOU1VSTCAqY29udGVudFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1p
bi1zY3JvbGxhYmxlLWRvY3VtZW50IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVSTF1dOworCisgICAgW3drV2Vi
VmlldyB3YWl0Rm9yTWVzc2FnZTpAImZvY3VzZWQiXTsKKyAgICBbd2tXZWJWaWV3IF9mb3JjZVJl
cXVlc3RDYW5kaWRhdGVzXTsKKyAgICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0
Rm9yUmVzcG9uc2U6QCJhcHBsZSAiIHJhbmdlOk5TTWFrZVJhbmdlKDAsIDApXTsKKworICAgIEVY
UEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlIl0gaXNFcXVhbFRvU3RyaW5nOkAiYXBw
bGUgIl0pOworCisgICAgW3drV2ViVmlldyB0eXBlQ2hhcmFjdGVyOicgJ107CisgICAgW3drV2Vi
VmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CisKKyAgICBFWFBFQ1RfVFJVRShbW3drV2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignaW5wdXQnKS52YWx1ZSJdIGlzRXF1YWxUb1N0cmluZzpAImFwcGxlICJdKTsKKyAgICBFWFBF
Q1RfRVEoW1t3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50
LmJvZHkuc2Nyb2xsVG9wIl0gZG91YmxlVmFsdWVdLCAwKTsKK30KKworVEVTVChXS1dlYlZpZXdD
YW5kaWRhdGVUZXN0cywgSW5zZXJ0Q2hhcmFjdGVyc0FmdGVyQ2FuZGlkYXRlSW5zZXJ0aW9uV2l0
aFNvZnRTcGFjZSkKK3sKKyAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAqd2tXZWJWaWV3ID0gW1tD
YW5kaWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKV07CisKKyAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKKyAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6Y29udGVudFVSTF1dOworCisgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpA
ImZvY3VzZWQiXTsKKyAgICBbd2tXZWJWaWV3IF9mb3JjZVJlcXVlc3RDYW5kaWRhdGVzXTsKKyAg
ICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6QCJmb28gIiBy
YW5nZTpOU01ha2VSYW5nZSgwLCAwKV07CisKKyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5w
dXQnKS52YWx1ZSJdIGlzRXF1YWxUb1N0cmluZzpAImZvbyAiXSk7CisKKyAgICBbd2tXZWJWaWV3
IHR5cGVDaGFyYWN0ZXI6J2EnXTsKKyAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiaW5w
dXQiXTsKKworICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlIl0gaXNFcXVh
bFRvU3RyaW5nOkAiZm9vIGEiXSk7Cit9CisKKyNlbmRpZiAvKiBXS19BUElfRU5BQkxFRCAmJiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAw
ICovCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9h
dXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKaW5kZXgg
YjZhNWI4MmUyNjFhZDRhMzk1NWFlYzgzZTNmMWVhNmRhNGU2ODdkNC4uNTNiNDU2Mzg4ZjE5NmU5
ODk3NTExOGZjYTczOTY1ZjMwNzU2ZWZiYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2F1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbApAQCAtMTIsNyArMTIsNyBAQAogICAgICAgICAvLyBXYWl0IHVu
dGlsIHRoZSBuZXh0IHJ1bmxvb3AgdG8gYWxsb3cgbWVkaWEgY29udHJvbHMgdG8gdXBkYXRlLgog
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5w
b3N0TWVzc2FnZSgicGF1c2VkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIpOwogICAgICAgICAg
ICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAgICAgfQpAQCAtMjAsNyArMjAsNyBA
QAogICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxh
eWVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2go
ZSkgewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGlj
ay5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZp
ZGVvLXNvdXJjZS1vbi1jbGljay5odG1sCmluZGV4IGM4YzFkMjg2NTI1M2FlNjJkMDI1NjhkMTdh
M2IxMDA4NjQxNDUzODQuLjU2MGU2ODUwYTE1ZDExOWEyMTdjMzM0ZjdiMTNiZmNmOGMyYTk0ODIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5n
ZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwKQEAgLTEy
LDcgKzEyLDcgQEAKICAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKICAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1l
c3NhZ2UoImNoYW5nZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKICAgICAgICAg
ICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9KTsK
QEAgLTIxLDcgKzIxLDcgQEAKICAgICAgICAgZnVuY3Rpb24gaGFuZGxlUGxheWluZygpIHsKICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWlu
Z0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1
dG9wbGF5ZWQiKTsKICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9LCAwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9u
LWVuZC5odG1sCmluZGV4IDhmZGNiZGE1YzllMjIyODMzMTNiNDBhNjYwYjM5MmI1MzUwOTM2OGQu
LmY4NGY3ZjdhYzFiMTRjNTc1NTg3NDQwNjI5ZTk4OGMyODg0ODQwMWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Ut
b24tZW5kLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
Y2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbApAQCAtMTQsNyArMTQsNyBAQAogICAgICAg
ICAgICAgdmlkZW8ucGxheSgpOwogICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiY2hhbmdlZCIpOwor
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgiY2hhbmdlZCIpOwogICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkg
ewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2Z1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKaW5kZXggMWJj
NjBlYjRlMTYwNTIzYzk2NmNmM2UwMGQyMTI1YzgxNjE5MDBkMS4uNDgzMDFlNjMwNTQwNThjY2Nj
MGNhOWE2NTlhZDcxMzA4MDlhOTdlMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8u
aHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9mdWxsLXNp
emUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCkBAIC0xMSw3ICsxMSw3IEBACiAg
ICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKKyAgICAg
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZSgicGxheWluZyIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAg
fSwgMCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJs
ZS1kb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlZWRmMzc1Yzc2NTZhNmI3Y2RkMWFmZDVhODky
Njc2ZmQ4MDY0ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9pbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwKQEAg
LTAsMCArMSwzNiBAQAorPGh0bWw+CisKKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9k
eSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKworICAgICAgICBpbnB1dCB7
CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogNDAwcHg7Cisg
ICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxl
PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24g
bG9hZGVkKCkgeworICAgICAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaW5wdXQiKTsKKyAgICAgICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKDAsIDApOwor
ICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IGZvY3VzZWQoKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJmb2N1c2VkIiksIDApOwor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaW5wdXQoKSB7CisgICAgICAgICAgICBzZXRU
aW1lb3V0KCgpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBv
c3RNZXNzYWdlKCJpbnB1dCIpLCAwKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorCis8Ym9keSBvbmxvYWQ9bG9hZGVkKCk+CisgICAgPGlucHV0IG9uZm9jdXM9Zm9jdXNlZCgp
IG9uaW5wdXQ9aW5wdXQoKT48L2lucHV0PgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1oaWRl
cy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10
by1lbmQuaHRtbAppbmRleCBlNDI2N2M0MzFkN2FhZmYwNmE5MWRkYjgyMjhhYWU1OThjZjI5YTY4
Li4wMTAyZTk2MjlmMzYxMWJkYzI4YmUxOWUxYzY2ZjhlMTkzZTA4YjBkIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1oaWRlcy1j
b250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWst
dG8tZW5kLmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgICAgIC8vIFRoZSBtZWRpYSBjb250cm9s
cyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBydW5sb29wLgogICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiZW5k
ZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZSgiZW5kZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9
CiAgICAgICAgIH0sIDApOwogICAgIH0KQEAgLTI2LDcgKzI2LDcgQEAKICAgICBmdW5jdGlvbiBi
ZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11dGVzLW9ucGxheWluZy5odG1sIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tbXV0ZXMtb25wbGF5aW5n
Lmh0bWwKaW5kZXggYjVjYWYyM2E1YWNlYWU0YzYzZjJmNTAzNTMzYjZlMjYxYTU5ZTNmNC4uMzhm
YjMyNTUyMjM0ZmViMDhhOWQ4NTQ4NWE1YjkxYTJiMzRkYzY4OSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tbXV0ZXMtb25wbGF5
aW5nLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFy
Z2UtdmlkZW8tbXV0ZXMtb25wbGF5aW5nLmh0bWwKQEAgLTMsNyArMyw3IEBACiA8c2NyaXB0Pgog
ICAgIGZ1bmN0aW9uIGhhbmRsZVBsYXlpbmcoKSB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2Fn
ZSgicGxheWluZyIpOworICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgfSBjYXRjaChlKSB7
CiAgICAgICAgIH0KICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKS5tdXRl
ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sCmluZGV4IDUwYTY4NWZm
NjU5YTk4ZDc3ZTE2NTQxZjFkOTAxMjMxN2I1MmQ1M2UuLjM5Y2Y0NzZhYjM1MGIxNGFjNDIzMWE2
OGM1NDdhOTg1NjhiZjNmYTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sCkBA
IC0xNiw3ICsxNiw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRl
byIpLmNsYXNzTGlzdC5hZGQoIm9mZnNjcmVlbiIpOwogICAgICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgi
bW92ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIm1vdmVkIik7CiAgICAgICAgICAgICAgICAgfSBj
YXRjaChlKSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwgMCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1w
bGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9sYXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWwKaW5kZXggOTU5NjAw
M2NiN2YwYWI1NzgxMDNiNjYzZmQ0NjNkMzMwMjAyZDQ5Yi4uMGI3ZTA5YTMyNjAzMzk2MzM4Mjdl
YjBlZDljZjcxZGEwMWU0OWEwYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5odG1sCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXBsYXlp
bmctc2Nyb2xsLWF3YXkuaHRtbApAQCAtMTQsMTQgKzE0LDE0IEBACiAgICAgICAgICAgICBmdW5j
dGlvbiBzY3JvbGxWaWRlb091dE9mVmlldygpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJkaXYiKS5zY3JvbGxJbnRvVmlldygpOwogICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIpOwor
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKICAgICAgICAgICAgICAgICB9LCAwKTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gYmVnYW5BdXRvcGxheWluZygpIHsK
ICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg
ICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICAgICAgICAgIH0gY2F0
Y2goZSkgewogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSwgMCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sCmluZGV4IGUzMTY3
ZjU3NGM0NjBiMjYzYjM3MzIxYzY4NjQ2MWI1NDFlOWRjOTIuLjAzODY1NDBhM2NiOTY4ZjMyZjU5
ZjNhNWZjMjI1Y2MyYjNjZGZkMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay1h
ZnRlci1lbmRpbmcuaHRtbApAQCAtNiw3ICs2LDcgQEAKICAgICAgICAgICAgIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoIiN0ZXN0LXZpZGVvIikuY3VycmVudFRpbWUgPSAwOwogICAgICAgICAgICAg
Ly8gVGhlIG1lZGlhIGNvbnRyb2xzIHNob3VsZCBiZSB1cGRhdGVkIG9uIHRoZSBuZXh0IHJ1bmxv
b3AuCiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdl
KCJlbmRlZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJlbmRlZCIpOwogICAgICAgICAgICAgfSwgMCk7CiAg
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5n
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
by1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbAppbmRleCAwN2E4
ZWIxMGViMTRmMTlhMTkyNzcxMmQzNDU5MzFhZWRiYzNlYjAzLi5hZGE5YTJkMTI3MWM5OGZlNDcz
Y2U2N2MzOWZlZWIxZmViNWI0OWU4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1h
ZnRlci1lbmRpbmcuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcu
aHRtbApAQCAtOCw3ICs4LDcgQEAKICAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKICAgICAgICAg
ICAgIC8vIFRoZSBtZWRpYSBjb250cm9scyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBy
dW5sb29wLgogICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVz
c2FnZSgicmVwbGF5aW5nIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInJlcGxheWluZyIpOwogICAgICAgICAg
ICAgfSwgMCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aC1hdWRpby5odG1sIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aC1hdWRpby5odG1s
CmluZGV4IGQyMzM0NjNjZWI4ZmFhMzIyZTM2ZjBjMjJiYWMxOTFhMzMzZThhZmEuLjg1ODJiNDU3
ZjMxZDkwMDNhMjY1ZmYxZTE5MjA2NTQ1ZDA5ZmVjY2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13
aXRoLWF1ZGlvLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgICAgICAgd2luZG93LmNsZWFyVGlt
ZW91dCh0aW1lb3V0KTsKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
cGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGxh
eWluZycpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgd2luZG93
LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICAgICAgfQpAQCAtMjMsNyAr
MjMsNyBAQAogCiAgICAgZnVuY3Rpb24gbm90UGxheWluZygpIHsKICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBv
c3RNZXNzYWdlKCdub3QgcGxheWluZycpOworICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CiAgICAg
ICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRob3V0LWF1ZGlv
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
by13aXRob3V0LWF1ZGlvLmh0bWwKaW5kZXggM2FiNzUyZTg1OGMxNDExZGZiNDI0ZDA3ODI2ZDU2
MWE2ZDdlYTc1OS4uZjQ5MmZhNGQzNTIzZGQzODc2ZDU2ZGM4NGE1MTdiNDEyNTJiZmQ5YSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW8td2l0aG91dC1hdWRpby5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbApAQCAtMTMsNyArMTMsNyBA
QAogICAgIGZ1bmN0aW9uIHBsYXlpbmcoKSB7CiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQo
dGltZW91dCk7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycpOworICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoJ3BsYXlpbmcnKTsKICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICB3aW5kb3cu
bG9jYXRpb24gPSAnY2FsbGJhY2s6cGxheWluZyc7CiAgICAgICAgIH0KQEAgLTIxLDcgKzIxLDcg
QEAKIAogICAgIGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVz
c2FnZSgnbm90IHBsYXlpbmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOwogICAgICAgICB9
IGNhdGNoKGUpIHsgfQogICAgIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNr
LXRvLXBhdXNlLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
YXJnZS12aWRlb3MtYXV0b3BsYXlpbmctY2xpY2stdG8tcGF1c2UuaHRtbAppbmRleCBjODFhMzFl
NmM5Y2RmOWRjNDUyN2Q0MjZiYzY1NGFmOTBlYTU3NmM1Li4yMmRiZWJmMTJkZmYwOTY2YTUxMWVm
MTQ1YjhiY2JmOTljZjY0YmNhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctY2xpY2stdG8tcGF1c2UuaHRt
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
b3MtYXV0b3BsYXlpbmctY2xpY2stdG8tcGF1c2UuaHRtbApAQCAtMTcsNyArMTcsNyBAQAogICAg
ICAgICAgICAgZnVuY3Rpb24gaGFuZGxlRmlyc3RQYXVzZSgpIHsKICAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICB0cnkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hh
bmRsZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBhdXNl
ZCIpOwogICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsgfQogICAgICAgICAgICAgICAg
IH0sIDApOwogICAgICAgICAgICAgfQpAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgICAgZnVu
Y3Rpb24gaGFuZGxlU2Vjb25kUGF1c2UoKSB7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RN
ZXNzYWdlKCJwYXVzZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsKICAgICAg
ICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgICAgICAgICB9LCAwKTsKICAg
ICAgICAgICAgIH0KQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgICAgIGZ1bmN0aW9uIGJlZ2Fu
QXV0b3BsYXlpbmcoKSB7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRv
cGxheWVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAg
ICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctc2Nyb2xsLXRvLXZpZGVvLmh0bWwgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3Bs
YXlpbmctc2Nyb2xsLXRvLXZpZGVvLmh0bWwKaW5kZXggZGI0M2Q0YmI0NWNiYTdmN2EwYjVjNzcw
YmU3NWFkYTg5ODEyODA3ZC4uZDFjMWFhZWE5MDJkNGE2MTM2MWNkNmE5OTQ3NGM3MTFhZWZjMjNi
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFy
Z2UtdmlkZW9zLWF1dG9wbGF5aW5nLXNjcm9sbC10by12aWRlby5odG1sCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWluZy1z
Y3JvbGwtdG8tdmlkZW8uaHRtbApAQCAtMTQsMTMgKzE0LDEzIEBACiAgICAgICAgICAgICBmdW5j
dGlvbiBzY3JvbGxUb1NlY29uZFZpZXcoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiI3NlY29uZCIpLnNjcm9sbEludG9WaWV3KCk7CiAgICAgICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInNjcm9sbGVkIik7
CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RI
YW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIpOwogICAgICAgICAgICAgICAgIH0sIDApOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgZnVuY3Rpb24gYmVnYW5BdXRvcGxheWluZygpIHsK
ICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg
ICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICAgICAgICAgIH0gY2F0
Y2goZSkgewogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSwgMCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29u
dHJvbHMuaHRtbAppbmRleCBlYTUwNDk1MzA2OTJlMjZlNDNlMjc5OTI2NGNkOGIyNTBjYzk0ZmRj
Li4zMWY4NmNiYzk2MzU1M2VjNzY4YzQ0YmM3MmFlODc2NzllY2EzOGEyIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGF1c2Vk
LXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBhdXNlZC12aWRlby1oaWRlcy1jb250cm9scy5o
dG1sCkBAIC0xNywxNCArMTcsMTQgQEAKICAgICBmdW5jdGlvbiBoYW5kbGVQYXVzZWQoKSB7CiAg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAg
ICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBv
c3RNZXNzYWdlKCJwYXVzZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgicGF1c2VkIik7CiAgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsgfQogICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgZnVuY3Rpb24gYmVn
YW5BdXRvcGxheWluZygpIHsKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKKyAgICAgICAgICAg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2Fn
ZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy1tdXRlZC12aWRlby1oaWRlcy1jb250cm9s
cy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbAppbmRleCAyZTU3ZGY3
OGIxZmViMDRlODMyZTNkOWYzMWNmOWIyZmEzYWZkZjI3Li4zNDQ4NmUyZTNmZDY3YTVjZDcxNjhj
M2I3NTViMTJmZjAxYjczYzZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy1tdXRlZC12aWRlby1oaWRlcy1jb250
cm9scy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xh
cmdlLXZpZGVvcy1wbGF5aW5nLW11dGVkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwKQEAgLTE1
LDE0ICsxNSwxNCBAQAogICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYmFyIikuc2Ny
b2xsSW50b1ZpZXcoKTsKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
cGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKKyAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgicGxh
eWluZyIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAgICAg
fQogICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxh
eWVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2go
ZSkgewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctdmlkZW8t
a2VlcHMtY29udHJvbHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNvbnRyb2xzLmh0bWwKaW5kZXgg
ZGI3Y2FjNmI5OTE5NDYzMzIzYjMzMzFhYzM4OGJlZTdlYTVjNDUxZi4uYjZmY2Y3YTA1MGM1ZTA2
ZTFlMzY2YmZlNDJkMzE1YWEyMzcwNDc5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctdmlkZW8ta2VlcHMtY29u
dHJvbHMuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
YXJnZS12aWRlb3MtcGxheWluZy12aWRlby1rZWVwcy1jb250cm9scy5odG1sCkBAIC0xNCwxNCAr
MTQsMTQgQEAKICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2JhciIpLnNjcm9sbElu
dG9WaWV3KCk7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0
cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlp
bmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIpOworICAgICAgICAgICAgICAgIHdpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxl
ZCIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAgICAgfQog
ICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVk
Iik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkg
ewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3Bs
YXkuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwKaW5kZXggNzY1MjU0ZDIzZjg4OGE1NTZiM2Q3
Zjg4MWMzNmYwZGU1OTdmMTcwNS4uM2UxNzBjZWQ1ZDI5ZGVhMmUwZDM3YmZlODYxNmZkZWQ1M2Zh
OTM4MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxh
eS5odG1sCkBAIC00LDcgKzQsNyBAQAogICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7
CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAg
ICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVy
LnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsK
ICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evc2tpbm55
LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL3NraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0
bWwKaW5kZXggYmE0OGQ0ZDcyMDk3NmU1MjQ5ODYwZmRhZmQ5M2JkMzlkYmY3ODRhZi4uMjZlZjUz
ZGMyMzRjYzJiZmQzYWMxOTc3ZDkyMjk1MDVmNTA2MGU2ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdp
dGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9za2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCkBAIC0xMSw3ICsxMSw3
IEBACiAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsK
KyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgicGxheWluZyIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAg
ICAgICAgfSwgMCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS93aWRlLWF1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbAppbmRleCAwZWI5YWY2YWM3ZTUzODUxNDI2MjQzNjY4MDQxYzZi
OTRjMjg5NWQ1Li5lYTJjYjUwNjMyMzBhNzZkMzJlNmM2NzVjOThhNTczYTRkZmFjNWVlIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS93aWRlLWF1dG9w
bGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS93aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbApA
QCAtMTEsNyArMTEsNyBAQAogICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdl
KCJwbGF5aW5nIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgICAgIH0gY2F0
Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFj
L1Rlc3RXS1dlYlZpZXdNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzE3M2FkZTRkMTQxNzFhMDFjNjE1MzFi
NDllYzdhOGQyNjcwMTIyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9t
YWMvVGVzdFdLV2ViVmlld01hYy5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFRlc3RXS1dlYlZpZXdNYWNfaAorI2RlZmluZSBUZXN0V0tXZWJWaWV3TWFjX2gKKworI2lt
cG9ydCA8V2ViS2l0L1dlYktpdC5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0o
TUFDKQorCitAaW50ZXJmYWNlIFRlc3RNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1Njcmlw
dE1lc3NhZ2VIYW5kbGVyPgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVzc2FnZTooTlNTdHJp
bmcgKiltZXNzYWdlIGhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcjsKK0BlbmQKKwor
QGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IDogV0tXZWJWaWV3CistICh2b2lkKW1vdXNlRG93bkF0
UG9pbnQ6KE5TUG9pbnQpcG9pbnQ7CistICh2b2lkKXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uOwor
LSAodm9pZClsb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZTsKKy0gKHZvaWQp
dHlwZUNoYXJhY3RlcjooY2hhciljaGFyYWN0ZXI7CistIChOU1N0cmluZyAqKXN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6KE5TU3RyaW5nICopc2NyaXB0OworLSAodm9pZCl3YWl0Rm9yTWVz
c2FnZTooTlNTdHJpbmcgKiltZXNzYWdlOworLSAodm9pZClwZXJmb3JtQWZ0ZXJMb2FkaW5nOihk
aXNwYXRjaF9ibG9ja190KWFjdGlvbnM7CitAZW5kCisKKyNlbmRpZiAvKiBXS19BUElfRU5BQkxF
RCAmJiBQTEFURk9STShNQUMpICovCisKKyNlbmRpZiAvKiBUZXN0V0tXZWJWaWV3TWFjX2ggKi8K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4OWM4ZDdiZDlmMDAyMDU0NDAxZmUwZDM2ZDhlOWRkMGI1OTMzNzgKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tCkBAIC0wLDAg
KzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJUZXN0
V0tXZWJWaWV3TWFjLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpCisK
KyNpbXBvcnQgIlV0aWxpdGllcy5oIgorCisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CisjaW1w
b3J0IDxDYXJib24vQ2FyYm9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViS2l0UHJpdmF0ZS5oPgor
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW1wbGVtZW50YXRpb24gVGVzdE1lc3NhZ2VI
YW5kbGVyIHsKKyAgICBkaXNwYXRjaF9ibG9ja190IF9oYW5kbGVyOworICAgIE5TU3RyaW5nICpf
bWVzc2FnZTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVzc2FnZTooTlNTdHJpbmcg
KiltZXNzYWdlIGhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcgoreworICAgIGlmICgh
KHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2hhbmRs
ZXIgPSBbaGFuZGxlciBjb3B5XTsKKyAgICBfbWVzc2FnZSA9IG1lc3NhZ2U7CisKKyAgICByZXR1
cm4gc2VsZjsKK30KKworLSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRl
bnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNz
YWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCit7CisgICAgaWYgKFsoTlNTdHJpbmcgKilb
bWVzc2FnZSBib2R5XSBpc0VxdWFsVG9TdHJpbmc6X21lc3NhZ2VdICYmIF9oYW5kbGVyKQorICAg
ICAgICBfaGFuZGxlcigpOworfQorCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJW
aWV3CisKKy0gKHZvaWQpbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludAoreworICAgIFtz
ZWxmIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0
TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KHBvaW50LngsIHBvaW50LnkpIG1vZGlmaWVy
RmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjowIGNv
bnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBldmVudE51bWJlcjowIGNs
aWNrQ291bnQ6MCBwcmVzc3VyZTowXV07Cit9CisKKy0gKHZvaWQpcGVyZm9ybUFmdGVyUmVjZWl2
aW5nTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGFjdGlvbjooZGlzcGF0Y2hfYmxvY2tfdClh
Y3Rpb24KK3sKKyAgICBSZXRhaW5QdHI8VGVzdE1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRv
cHROUyhbW1Rlc3RNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdFdpdGhNZXNzYWdlOm1lc3NhZ2Ug
aGFuZGxlcjphY3Rpb25dKTsKKyAgICBXS1VzZXJDb250ZW50Q29udHJvbGxlciogY29udGVudENv
bnRyb2xsZXIgPSBbW3NlbGYgY29uZmlndXJhdGlvbl0gdXNlckNvbnRlbnRDb250cm9sbGVyXTsK
KyAgICBbY29udGVudENvbnRyb2xsZXIgcmVtb3ZlU2NyaXB0TWVzc2FnZUhhbmRsZXJGb3JOYW1l
OkAidGVzdEhhbmRsZXIiXTsKKyAgICBbY29udGVudENvbnRyb2xsZXIgYWRkU2NyaXB0TWVzc2Fn
ZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiXTsKK30KKworLSAodm9p
ZClsb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZQoreworICAgIE5TVVJMUmVx
dWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpwYWdlTmFtZSB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3NlbGYgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07Cit9CisKKy0gKHZvaWQpdHlwZUNoYXJhY3RlcjooY2hhciljaGFy
YWN0ZXIgeworICAgIE5TU3RyaW5nICpjaGFyYWN0ZXJBc1N0cmluZyA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiJWMiICwgY2hhcmFjdGVyXTsKKyAgICBbc2VsZiBrZXlEb3duOltOU0V2
ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duIGxvY2F0aW9uOk5TWmVyb1Bv
aW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRv
d051bWJlcjowIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcgY2hhcmFj
dGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlD
b2RlOmNoYXJhY3Rlcl1dOworICAgIFtzZWxmIGtleVVwOltOU0V2ZW50IGtleUV2ZW50V2l0aFR5
cGU6TlNFdmVudFR5cGVLZXlVcCBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5p
bCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVy
czpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKK30K
KworLSAoTlNTdHJpbmcgKilzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OihOU1N0cmluZyAq
KXNjcmlwdAoreworICAgIF9fYmxvY2sgYm9vbCBpc1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gZmFs
c2U7CisgICAgX19ibG9jayBOU1N0cmluZyAqZXZhbFJlc3VsdCA9IG5pbDsKKyAgICBbc2VsZiBl
dmFsdWF0ZUphdmFTY3JpcHQ6c2NyaXB0IGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBO
U0Vycm9yICplcnJvcikKKyAgICB7CisgICAgICAgIGV2YWxSZXN1bHQgPSBbTlNTdHJpbmcgc3Ry
aW5nV2l0aEZvcm1hdDpAIiVAIiwgcmVzdWx0XTsKKyAgICAgICAgaXNXYWl0aW5nRm9ySmF2YVNj
cmlwdCA9IHRydWU7CisgICAgICAgIEVYUEVDVF9UUlVFKCFlcnJvcik7CisgICAgfV07CisKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzV2FpdGluZ0ZvckphdmFTY3JpcHQpOworICAg
IHJldHVybiBldmFsUmVzdWx0OworfQorCistICh2b2lkKXdhaXRGb3JNZXNzYWdlOihOU1N0cmlu
ZyAqKW1lc3NhZ2UKK3sKKyAgICBfX2Jsb2NrIGJvb2wgaXNEb25lV2FpdGluZyA9IGZhbHNlOwor
ICAgIFtzZWxmIHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6bWVzc2FnZSBhY3Rpb246Xigp
CisgICAgeworICAgICAgICBpc0RvbmVXYWl0aW5nID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZVdhaXRpbmcpOworfQorCistICh2b2lkKXBlcmZv
cm1BZnRlckxvYWRpbmc6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9ucyB7CisgICAgVGVzdE1lc3Nh
Z2VIYW5kbGVyICpoYW5kbGVyID0gW1tUZXN0TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRo
TWVzc2FnZTpAImxvYWRlZCIgaGFuZGxlcjphY3Rpb25zXTsKKyAgICBOU1N0cmluZyAqb25sb2Fk
U2NyaXB0ID0gQCJ3aW5kb3cub25sb2FkID0gKCkgPT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMub25sb2FkSGFuZGxlci5wb3N0TWVzc2FnZSgnbG9hZGVkJykiOworICAgIFdLVXNlclNj
cmlwdCAqc2NyaXB0ID0gW1tXS1VzZXJTY3JpcHQgYWxsb2NdIGluaXRXaXRoU291cmNlOm9ubG9h
ZFNjcmlwdCBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50
U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOT107CisKKyAgICBXS1VzZXJDb250ZW50Q29udHJvbGxl
ciogY29udGVudENvbnRyb2xsZXIgPSBbW3NlbGYgY29uZmlndXJhdGlvbl0gdXNlckNvbnRlbnRD
b250cm9sbGVyXTsKKyAgICBbY29udGVudENvbnRyb2xsZXIgYWRkVXNlclNjcmlwdDpzY3JpcHRd
OworICAgIFtjb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVy
IG5hbWU6QCJvbmxvYWRIYW5kbGVyIl07Cit9CisKK0BlbmQKKworI2VuZGlmIC8qIFdLX0FQSV9F
TkFCTEVEICYmIFBMQVRGT1JNKE1BQykgKi8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288982</attachid>
            <date>2016-09-15 12:00:10 -0700</date>
            <delta_ts>2016-09-15 20:41:59 -0700</delta_ts>
            <desc>Address build failures on 10.11 and earlier.</desc>
            <filename>bug-162009-20160915115732.patch</filename>
            <type>text/plain</type>
            <size>81956</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWIxMzhkNTU1OWRiNGMx
MmVjMjVhMDFmYzkyYjk5YzhkM2YyZGFiZC4uZWQxMWUyNmZkYTJlMmZiZDU5NmJlZTc5YTM4MWEw
ZmRmNTZhYjNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE2LTA5LTE1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEluc2VydGluZyBh
IHNwYWNlIGFmdGVyIGluc2VydGluZyBhbiBhY2NlcHRlZCBjYW5kaWRhdGUgc2Nyb2xscyB0aGUg
ZG9jdW1lbnQgYW5kIGNhdXNlcyBhIGZsaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjAwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgw
ODYyMzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWZ0ZXIgaW5zZXJ0aW5nIGEgdGV4dCBjYW5kaWRhdGUsIGlmIHRoZSBjYW5kaWRhdGUgZW5kZWQg
d2l0aCBhIHNvZnQgc3BhY2UsIHRoZSBuZXh0IHNwYWNlIHdlIGluc2VydCBzaG91bGQganVzdAor
ICAgICAgICByZXBsYWNlIHRoZSBzb2Z0IHNwYWNlLiBUaGlzIGN1cnJlbnRseSB3b3JrcyBiZWNh
dXNlIHdlIGxlYXZlIHRoZSB0ZXh0IGluc2VydGlvbiBvdXQgb2YgdGhlIGxpc3Qgb2YKKyAgICAg
ICAgS2V5cHJlc3NDb21tYW5kcyBzZW50IHRvIHRoZSB3ZWIgcHJvY2VzcyBhbmQgaW5zdGVhZCBy
ZXBsYWNlIHRoZSBzb2Z0IHNwYWNlIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMuCisgICAg
ICAgIEhvd2V2ZXIsIHRoaXMgbWVhbnMgd2hlbiB0aGUgd2ViIHByb2Nlc3MgaGFuZGxlcyB0aGlz
IGtleWRvd24gZXZlbnQsIHRoZSBjdXJyZW50IGVkaXRvciB3aWxsIG5vdCBoYW5kbGUgaXQsCisg
ICAgICAgIHNpbmNlIHRoZSBsaXN0IG9mIGtleSBjb21tYW5kcyBpcyBlbXB0eSBkZXNwaXRlIHRo
ZSB0ZXh0IGFuZCB1bm1vZGlmaWVkIHRleHQgYmVpbmcgbm9uLWVtcHR5LgorCisgICAgICAgIFRv
IGZpeCB0aGlzLCB3aGVuIHNlbmRpbmcga2V5ZG93biBvciBrZXl1cCBldmVudHMgd2hlcmUgd2Ug
cmVwbGFjZSBhIHNvZnQgc3BhY2UsIHdlIHNldCB0aGUga2V5IGV2ZW50J3MgdGV4dCB0bworICAg
ICAgICBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiBhIHNwYWNlLiBUaGlzIGFsbG93cyB1cyB0
byByZXR1cm4gZWFybHkgaW4gRXZlbnRIYW5kbGVyOjprZXlFdmVudCBhbmQgYXZvaWQgdGhlCisg
ICAgICAgIGNvZGVwYXRoIHRoYXQgdHJpZXMgdG8gaW5zZXJ0IHRleHQgaW50byB0aGUgY3VycmVu
dCBlZGl0b3IgYW5kIChpbiB0aGUgY2FzZSBvZiBpbnNlcnRpbmcgYSAnICcpIHNjcm9sbHMgdGhl
CisgICAgICAgIGRvY3VtZW50IGlmIG5lY2Vzc2FyeS4gU2luY2Ugd2UndmUgYWxyZWFkeSBoYW5k
bGVkIHRleHQgaW5zZXJ0aW9uIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMsIHRoZXJlIGlz
IG5vIG5lZWQKKyAgICAgICAgdG8gYWxzbyBkaXNwYXRjaCB0aGUga2V5cHJlc3MgdG8gdGhlIGVk
aXRvci4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGZsaWNr
ZXJpbmcgaW4gdGhlIGNhbmRpZGF0ZXMgVUkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgd2UncmUgYXN5
bmNocm9ub3VzbHkKKyAgICAgICAgcmVwbGFjaW5nIHRoZSBsYXN0IHNvZnQgc3BhY2UuIER1cmlu
ZyB0aGlzIG9wZXJhdGlvbiwgd2Ugc2VsZWN0IHRoZSByYW5nZSBvZiB0aGUgc29mdCBzcGFjZSBh
bmQgdGhlbiBpbnNlcnQgdGhlCisgICAgICAgIG5ldyB0ZXh0LiBUaGlzIGNhdXNlcyBhIG1vbWVu
dGFyeSByYW5nZSBzZWxlY3Rpb24gd2hpY2ggdGhlIHdlYiBwcm9jZXNzIG5vdGlmaWVzIHRoZSBV
SSBwcm9jZXNzIGFib3V0LCBwcm9tcHRpbmcKKyAgICAgICAgdXMgdG8gaGlkZSB0aGUgY2FuZGlk
YXRlcyBsaXN0LiBUbyBhZGRyZXNzIHRoaXMsIHdlIHB1dCBndWFyZHMgYXJvdW5kIHRoaXMgcHJv
Y2VzcyBvZiBhc3luY2hyb25vdXMgdGV4dAorICAgICAgICBpbnNlcnRpb24gYW5kIG1ha2Ugc3Vy
ZSB0aGF0IHdlIGRvbid0IHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY2FuZGlkYXRlcyBs
aXN0IGR1cmluZyB0aGlzIHRpbWUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIDIgbmV3IFdl
YktpdCBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dC5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaDoKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6dGV4
dEZyb21FdmVudCk6CisgICAgICAgIChXZWJLaXQ6OnVubW9kaWZpZWRUZXh0RnJvbUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYW5k
bGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2U6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc0lu
c2VydGluZ1RleHRBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp3aWxsSW5zZXJ0VGV4dEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmRpZEluc2VydFRleHRBc3luY2hyb25vdXNseSk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Zm9y
Y2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6ZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6aW5zZXJ0VGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3Jt
S2V5RXF1aXZhbGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlVcCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlEb3duKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRJbnNlcnRUZXh0QXN5bmMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6Omluc2VydFRleHRBc3luYyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjp3aWxsSW5zZXJ0VGV4dEFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmRpZEluc2VydFRleHRBc3luYyk6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp3aWxsSW5zZXJ0VGV4
dEFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEluc2VydFRleHRB
c3luYyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjppbnNlcnRUZXh0QXN5bmMpOgorCiAyMDE2LTA5LTE0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhIGNvbnRy
b2xzIGJlaGF2ZSBzdHJhbmdlbHkgd2hlbiBjaGFuZ2luZyBtZWRpYSBzb3VyY2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAppbmRleCAyM2NjNzRh
NWM4ODE4NGE2NzgyODYwNzNlODI2ZDQwZDhlNzJkM2ViLi4yMmNhNjFlMzRjOGZiYThhMTQyNzNl
MDYzY2Y0M2RhNTUwOTUxYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50LmgKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBj
bGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYktleWJvYXJkRXZlbnQgewog
cHVibGljOgogI2lmIFVTRShBUFBLSVQpCi0gICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChOU0V2
ZW50ICosIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpL
ZXlwcmVzc0NvbW1hbmQ+Jik7CisgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICos
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2UsIGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+Jik7CiAjZWxpZiBQTEFURk9STShHVEsp
CiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50
Jik7CiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChHZGtFdmVudCosIGNvbnN0IFdlYkNvcmU6
OkNvbXBvc2l0aW9uUmVzdWx0cyYsIElucHV0TWV0aG9kRmlsdGVyOjpFdmVudEZha2VkRm9yQ29t
cG9zaXRpb24sIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tCmluZGV4IGFm
YjNiNjA3MTBjNmFiZGE4ZWM2NjhkY2ZiNTVmNWVhYWNmYjJlN2YuLjZmNTljYmI0MzgyODMyZjA1
MjdjNzE1ZWVkNmNhZTcyMDYzMmRhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL05hdGl2ZVdlYktleWJvYXJkRXZlbnRNYWMubW0KQEAgLTM1LDggKzM1LDggQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYg
Y29tbWFuZHMpCi0gICAgOiBXZWJLZXlib2FyZEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRl
V2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSkK
K05hdGl2ZVdlYktleWJvYXJkRXZlbnQ6Ok5hdGl2ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAq
ZXZlbnQsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2Us
IGNvbnN0IFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykKKyAgICA6IFdlYktleWJv
YXJkRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBo
YW5kbGVkQnlJbnB1dE1ldGhvZCwgcmVwbGFjZXNTb2Z0U3BhY2UsIGNvbW1hbmRzKSkKICAgICAs
IG1fbmF0aXZlRXZlbnQoZXZlbnQpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkuaAppbmRleCA1OTk5NWY4NzNmNDM0Mjk0YTQ4ODQyNjU1NWYxYTZmZjc2
ZGIzY2Q1Li5iZTg3MmNlYjY4YTVhY2NmN2JjNmJmYWJkMjFkMjM0ZGRkOTY0MjZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5LmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgcHVibGljOgogI2lmIFVTRShBUFBLSVQpCiAgICAgc3RhdGljIFdlYk1vdXNlRXZlbnQgY3Jl
YXRlV2ViTW91c2VFdmVudChOU0V2ZW50ICosIE5TRXZlbnQgKmxhc3RQcmVzc3VyZUV2ZW50LCBO
U1ZpZXcgKndpbmRvd1ZpZXcpOwogICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldo
ZWVsRXZlbnQoTlNFdmVudCAqLCBOU1ZpZXcgKndpbmRvd1ZpZXcpOwotICAgIHN0YXRpYyBXZWJL
ZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqLCBib29sIGhhbmRs
ZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYp
OworICAgIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNF
dmVudCAqLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBib29sIHJlcGxhY2VzU29mdFNwYWNl
LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYpOwogICAgIHN0YXRpYyBi
b29sIHNob3VsZEJlSGFuZGxlZEFzQ29udGV4dENsaWNrKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3Jt
TW91c2VFdmVudCYpOwogI2VuZGlmIC8vIFVTRShBUFBLSVQpCiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQppbmRleCA1YmRiYzhmZDZkZTE4OTEwNTk0
NDVmNDQ0NTcxYWYzYjZjYTc0Mjg2Li41ZjNiYTkyOGJmYjE4ZWFiYmNjNTVhNTg1NWU3YTU2NjY5
YWJhM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFj
dG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5t
bQpAQCAtMjM2LDggKzIzNiwxMCBAQCBzdGF0aWMgV2ViV2hlZWxFdmVudDo6UGhhc2UgbW9tZW50
dW1QaGFzZUZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxX
ZWJXaGVlbEV2ZW50OjpQaGFzZT4ocGhhc2UpOwogfQogCi1zdGF0aWMgaW5saW5lIFN0cmluZyB0
ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50KQorc3RhdGljIGlubGluZSBTdHJpbmcgdGV4dEZy
b21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSkKIHsKKyAgICBp
ZiAocmVwbGFjZXNTb2Z0U3BhY2UpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0g
TlNGbGFnc0NoYW5nZWQpCkBAIC0yNDYsOCArMjQ4LDEwIEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5n
IHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQpCiAgICAgcmV0dXJuIFN0cmluZyhbZXZlbnQg
Y2hhcmFjdGVyc10pOwogfQogCi1zdGF0aWMgaW5saW5lIFN0cmluZyB1bm1vZGlmaWVkVGV4dEZy
b21FdmVudChOU0V2ZW50KiBldmVudCkKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIHVubW9kaWZpZWRU
ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxhY2VzU29mdFNwYWNlKQogewor
ICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaWYgKFtldmVudCB0eXBl
XSA9PSBOU0ZsYWdzQ2hhbmdlZCkKQEAgLTQ1NywxMSArNDYxLDExIEBAIFdlYldoZWVsRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1Zp
ZXcgKndpbmRvCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQ
b2ludChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRh
WCwgZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFy
aXR5LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBo
YXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9s
bGluZ0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CiB9CiAKLVdlYktleWJvYXJkRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiYgY29tbWFuZHMpCitXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBoYW5kbGVkQnlJbnB1dE1l
dGhvZCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQogewogICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgICAgICAg
ICAgICAgPSBpc0tleVVwRXZlbnQoZXZlbnQpID8gV2ViRXZlbnQ6OktleVVwIDogV2ViRXZlbnQ6
OktleURvd247Ci0gICAgU3RyaW5nIHRleHQgICAgICAgICAgICAgICAgICAgICA9IHRleHRGcm9t
RXZlbnQoZXZlbnQpOwotICAgIFN0cmluZyB1bm1vZGlmaWVkVGV4dCAgICAgICAgICAgPSB1bm1v
ZGlmaWVkVGV4dEZyb21FdmVudChldmVudCk7CisgICAgU3RyaW5nIHRleHQgICAgICAgICAgICAg
ICAgICAgICA9IHRleHRGcm9tRXZlbnQoZXZlbnQsIHJlcGxhY2VzU29mdFNwYWNlKTsKKyAgICBT
dHJpbmcgdW5tb2RpZmllZFRleHQgICAgICAgICAgID0gdW5tb2RpZmllZFRleHRGcm9tRXZlbnQo
ZXZlbnQsIHJlcGxhY2VzU29mdFNwYWNlKTsKICAgICBTdHJpbmcga2V5SWRlbnRpZmllciAgICAg
ICAgICAgID0ga2V5SWRlbnRpZmllckZvcktleUV2ZW50KGV2ZW50KTsKICAgICBpbnQgd2luZG93
c1ZpcnR1YWxLZXlDb2RlICAgICAgID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7
CiAgICAgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlICAgICAgICA9IFtldmVudCBrZXlDb2RlXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5k
ZXggMmI4NDQ5ODYyYTRiNzRkODU2ODE4MTQxYTdiYzk3OGQwYzRhOTNiNi4uZDM4OTZhNjJmZTUz
ZGUyM2ZiZmFiMWE1MWEwMmM3YzYwODg4MDQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ1NjQsNiArNDU2NCwyMyBAQCAtICh2
b2lkKV9oYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2U6KE5TU3RyaW5nICopaWRlbnRp
ZmllcgogewogICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KIH0KKworLSAodm9pZClf
aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGU6KE5TVGV4dENoZWNraW5nUmVzdWx0ICopY2FuZGlkYXRl
Cit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKyAgICBf
aW1wbC0+aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoY2FuZGlkYXRlKTsKKyNlbmRpZgorfQorCist
ICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZQoreworICAgIC8vIE92ZXJyaWRkZW4g
Ynkgc3ViY2xhc3Nlcy4KK30KKworLSAodm9pZClfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlcworewor
ICAgIF9pbXBsLT5mb3JjZVJlcXVlc3RDYW5kaWRhdGVzRm9yVGVzdGluZygpOworfQogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKIAogLy8gRXhlY3V0ZSB0aGUgc3VwcGxpZWQgYmxvY2sgYWZ0ZXIg
dGhlIG5leHQgdHJhbnNhY3Rpb24gZnJvbSB0aGUgV2ViUHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXgg
M2MzNDMzYzNkMTBlNzFhNjFhZGZhY2MzOWZlNWJkMDgxNmVhYTgxNy4uZTA1NTE2NTc5NzFjNWI3
ZTgwYmFmNDZhNTYyYTQ5YjY4MjViZGQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTI3Myw2ICsyNzMsOSBA
QCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2hhc0FjdGl2ZVZpZGVvRm9yQ29u
dHJvbHNNYW5hZ2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSk7CiAtICh2b2lkKV9y
ZXF1ZXN0Q29udHJvbGxlZEVsZW1lbnRJRCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSk7CiAtICh2b2lkKV9oYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2U6KE5TU3Ry
aW5nICopaWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7Cist
ICh2b2lkKV9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTooTlNUZXh0Q2hlY2tpbmdSZXN1bHQgKilj
YW5kaWRhdGU7CistICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTsKKy0gKHZvaWQp
X2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXM7CiAjZW5kaWYKIAogLSAodm9pZClfZG9BZnRlck5leHRQ
cmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggNDk5NDNmMTZjYjVlZGMzNWU5Y2E3Njk1Njc2
ZGE4MzA3ZWQ4ODQ0Zi4uYmQwN2VhOGFmYTdkMDc1NzUzMTI5NjVhOTU1ZWRlZjRkMjNlZTViZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTg0
LDYgKzg0LDcgQEAgT0JKQ19DTEFTUyBfV0tUaHVtYm5haWxWaWV3OwogQG9wdGlvbmFsCiAtICh2
b2lkKV93ZWJfZGlkQWRkTWVkaWFDb250cm9sc01hbmFnZXI6KGlkKWNvbnRyb2xzTWFuYWdlcjsK
IC0gKHZvaWQpX3dlYl9kaWRSZW1vdmVNZWRpYUNvbnRyb2xzTWFuYWdlcjsKKy0gKHZvaWQpX2Rp
ZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOwogCiBAZW5kCiAKQEAgLTM1OSw2ICszNjAsMTAgQEAg
cHVibGljOgogICAgIE5TU3RyaW5nICpzdHJpbmdGb3JUb29sVGlwKE5TVG9vbFRpcFRhZyB0YWcp
OwogICAgIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiBvbGRUb29sVGlwLCBjb25z
dCBTdHJpbmcmIG5ld1Rvb2xUaXApOwogCisgICAgYm9vbCBpc0luc2VydGluZ1RleHRBc3luY2hy
b25vdXNseSgpIGNvbnN0IHsgcmV0dXJuIG1fcGVuZGluZ0FzeW5jaHJvbm91c1RleHRJbnNlcnRp
b25Db3VudDsgfQorICAgIHZvaWQgd2lsbEluc2VydFRleHRBc3luY2hyb25vdXNseSgpIHsgbV9w
ZW5kaW5nQXN5bmNocm9ub3VzVGV4dEluc2VydGlvbkNvdW50Kys7IH0KKyAgICB2b2lkIGRpZElu
c2VydFRleHRBc3luY2hyb25vdXNseSgpIHsgbV9wZW5kaW5nQXN5bmNocm9ub3VzVGV4dEluc2Vy
dGlvbkNvdW50LS07IH0KKwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RM
YXllcihDQUxheWVyICopOwogICAgIENBTGF5ZXIgKmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RMYXllci5nZXQoKTsgfQogCkBAIC00NzgsNiAr
NDgzLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmlnaHRNb3VzZVVwKE5TRXZlbnQgKik7CiAKICAg
ICB2b2lkIHVwZGF0ZVdlYlZpZXdJbXBsQWRkaXRpb25zKCk7CisgICAgdm9pZCBmb3JjZVJlcXVl
c3RDYW5kaWRhdGVzRm9yVGVzdGluZygpOwogICAgIGJvb2wgc2hvdWxkUmVxdWVzdENhbmRpZGF0
ZXMoKSBjb25zdDsKICAgICB2b2lkIHNob3dDYW5kaWRhdGVzKE5TQXJyYXkgKmNhbmRpZGF0ZXMs
IE5TU3RyaW5nICosIE5TUmVjdCByZWN0T2ZUeXBlZFN0cmluZywgTlNSYW5nZSBzZWxlY3RlZFJh
bmdlLCBOU1ZpZXcgKiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShOU1RleHRDaGVja2luZ1Jl
c3VsdCAqYWNjZXB0ZWRDYW5kaWRhdGUpKTsKICAgICB2b2lkIHdlYlZpZXdJbXBsQWRkaXRpb25z
V2lsbERlc3Ryb3lWaWV3KCk7CkBAIC02NDksNiArNjU1LDggQEAgcHJpdmF0ZToKICAgICBib29s
IG1faXNIYW5kbGluZ0FjY2VwdGVkQ2FuZGlkYXRlIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVx
dWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2VkaXRhYmxlRWxlbWVudElzRm9jdXNlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lz
VGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSB7IGZhbHNlIH07CisgICAgdW5zaWduZWQg
bV9wZW5kaW5nQXN5bmNocm9ub3VzVGV4dEluc2VydGlvbkNvdW50IHsgMCB9OwogfTsKICAgICAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCmluZGV4IDY1MTY5ZWQ5M2U0ZDAyNTAzZmYxMzQ1ZjIwZGUwOTMwOTRm
ODMwYTEuLmNlN2E4M2UxMGJlZDU1MGVhNDdhZTQwNGNlNjVmOGM5NWNmYjY1OTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTQ0MSw2ICs0
NDEsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlV2ViVmlld0ltcGxBZGRpdGlvbnMoKQog
ewogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpmb3JjZVJlcXVlc3RDYW5kaWRhdGVzRm9yVGVzdGlu
ZygpCit7Cit9CisKIGJvb2wgV2ViVmlld0ltcGw6OnNob3VsZFJlcXVlc3RDYW5kaWRhdGVzKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CkBAIC02MjAsNyArNjI0LDcgQEAgYm9vbCBXZWJW
aWV3SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIoKQogICAgICAgICBpZiAoW2V2ZW50IHR5cGVd
ID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkKICAgICAgICAgICAgIGtl
eWJvYXJkRXZlbnQgPSBldmVudDsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICAg
ICAgbV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5nTmV4dCwg
a2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVu
dCwgZmFsc2UsIHsgfSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKKyAg
ICAgICAgbV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5nTmV4
dCwga2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9hcmRF
dmVudCwgZmFsc2UsIGZhbHNlLCB7IH0pLCBbXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3Ip
IHsgfSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjQzNiw2ICsyNDQwLDkgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ2hhbmdlQ29udGVudFNpemUoQ0dTaXplIG5ld1NpemUpCiB2
b2lkIFdlYlZpZXdJbXBsOjpkaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSgpCiB7CiAgICAgbV9p
c0hhbmRsaW5nQWNjZXB0ZWRDYW5kaWRhdGUgPSBmYWxzZTsKKworICAgIGlmIChbbV92aWV3IHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKV0p
CisgICAgICAgIFttX3ZpZXcgX2RpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlXTsKIH0KIAogdm9p
ZCBXZWJWaWV3SW1wbDo6dmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKQpAQCAtMzU2Nywx
MSArMzU3NCwxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnNlcnRUZXh0KGlkIHN0cmluZywgTlNS
YW5nZSByZXBsYWNlbWVudFJhbmdlKQogICAgIH0gZWxzZQogICAgICAgICB0ZXh0ID0gc3RyaW5n
OwogCi0gICAgQk9PTCBuZWVkVG9SZW1vdmVTb2Z0U3BhY2UgPSBOTzsKKyAgICBtX2lzVGV4dElu
c2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA9IGZhbHNlOwogI2lmIEhBVkUoQURWQU5DRURfU1BF
TExfQ0hFQ0tJTkcpCiAgICAgaWYgKG1fc29mdFNwYWNlUmFuZ2UubG9jYXRpb24gIT0gTlNOb3RG
b3VuZCAmJiAocmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlvbiA9PSBOU01heFJhbmdlKG1fc29mdFNw
YWNlUmFuZ2UpIHx8IHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkgJiYg
cmVwbGFjZW1lbnRSYW5nZS5sZW5ndGggPT0gMCAmJiBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNw
ZWxsQ2hlY2tlcl0gZGVsZXRlc0F1dG9zcGFjZUJlZm9yZVN0cmluZzp0ZXh0IGxhbmd1YWdlOm5p
bF0pIHsKICAgICAgICAgcmVwbGFjZW1lbnRSYW5nZSA9IG1fc29mdFNwYWNlUmFuZ2U7Ci0gICAg
ICAgIG5lZWRUb1JlbW92ZVNvZnRTcGFjZSA9IFlFUzsKKyAgICAgICAgbV9pc1RleHRJbnNlcnRp
b25SZXBsYWNpbmdTb2Z0U3BhY2UgPSB0cnVlOwogICAgIH0KICNlbmRpZgogICAgIG1fc29mdFNw
YWNlUmFuZ2UgPSBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKTsKQEAgLTM1ODIsNyArMzU4OSw3
IEBAIHZvaWQgV2ViVmlld0ltcGw6Omluc2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxh
Y2VtZW50UmFuZ2UpCiAgICAgLy8gLSBJZiBpdCdzIHNlbnQgb3V0c2lkZSBvZiBrZXlib2FyZCBl
dmVudCBwcm9jZXNzaW5nIChlLmcuIGZyb20gQ2hhcmFjdGVyIFZpZXdlciwgb3Igd2hlbiBjb25m
aXJtaW5nIGFuIGlubGluZSBpbnB1dCBhcmVhIHdpdGggYSBtb3VzZSksCiAgICAgLy8gdGhlbiB3
ZSBhbHNvIGV4ZWN1dGUgaXQgaW1tZWRpYXRlbHksIGFzIHRoZXJlIHdpbGwgYmUgbm8gb3RoZXIg
Y2hhbmNlLgogICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+KiBrZXlwcmVzc0Nv
bW1hbmRzID0gbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzOwotICAgIGlmIChrZXlwcmVzc0Nv
bW1hbmRzICYmICFuZWVkVG9SZW1vdmVTb2Z0U3BhY2UpIHsKKyAgICBpZiAoa2V5cHJlc3NDb21t
YW5kcyAmJiAhbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UpIHsKICAgICAgICAg
QVNTRVJUKHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCk7CiAgICAgICAg
IFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCBjb21tYW5kKCJpbnNlcnRUZXh0OiIsIHRleHQpOwog
ICAgICAgICBrZXlwcmVzc0NvbW1hbmRzLT5hcHBlbmQoY29tbWFuZCk7CkBAIC0zNTk2LDcgKzM2
MDMsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnNlcnRUZXh0KGlkIHN0cmluZywgTlNSYW5nZSBy
ZXBsYWNlbWVudFJhbmdlKQogICAgIGlmICghZGljdGF0aW9uQWx0ZXJuYXRpdmVzLmlzRW1wdHko
KSkKICAgICAgICAgbV9wYWdlLT5pbnNlcnREaWN0YXRlZFRleHRBc3luYyhldmVudFRleHQsIHJl
cGxhY2VtZW50UmFuZ2UsIGRpY3RhdGlvbkFsdGVybmF0aXZlcywgcmVnaXN0ZXJVbmRvR3JvdXAp
OwogICAgIGVsc2UKLSAgICAgICAgbV9wYWdlLT5pbnNlcnRUZXh0QXN5bmMoZXZlbnRUZXh0LCBy
ZXBsYWNlbWVudFJhbmdlLCByZWdpc3RlclVuZG9Hcm91cCwgbmVlZFRvUmVtb3ZlU29mdFNwYWNl
ID8gRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpQYXJhZ3JhcGggOiBFZGl0aW5nUmFuZ2VJc1Jl
bGF0aXZlVG86OkVkaXRhYmxlUm9vdCk7CisgICAgICAgIG1fcGFnZS0+aW5zZXJ0VGV4dEFzeW5j
KGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXAsIG1faXNUZXh0
SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlID8gRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpQ
YXJhZ3JhcGggOiBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG86OkVkaXRhYmxlUm9vdCk7CiB9CiAK
IHZvaWQgV2ViVmlld0ltcGw6OnNlbGVjdGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9p
ZCheY29tcGxldGlvbkhhbmRsZXJQdHIpKE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSkpCkBAIC0zODcw
LDcgKzM4NzcsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2
ZW50ICpldmVudCkKICAgICAvLyBGSVhNRTogV2h5IGlzIHRoZSBmaXJzdFJlc3BvbmRlciBjaGVj
ayBuZWVkZWQ/CiAgICAgaWYgKG1fdmlldyA9PSBtX3ZpZXcud2luZG93LmZpcnN0UmVzcG9uZGVy
KSB7CiAgICAgICAgIGludGVycHJldEtleUV2ZW50KGV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5w
dXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5k
cykgewotICAgICAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOworICAg
ICAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBmYWxzZSwgY29tbWFuZHMpKTsKICAgICAg
ICAgfSk7CiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQpAQCAtMzg4NSw5ICszODkyLDEwIEBA
IHZvaWQgV2ViVmlld0ltcGw6OmtleVVwKE5TRXZlbnQgKmV2ZW50KQogCiAgICAgTE9HKFRleHRJ
bnB1dCwgImtleVVwOiVwICVAIiwgZXZlbnQsIGV2ZW50KTsKIAorICAgIG1faXNUZXh0SW5zZXJ0
aW9uUmVwbGFjaW5nU29mdFNwYWNlID0gZmFsc2U7CiAgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZl
bnQsIF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6Oktl
eXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7CiAgICAgICAgIEFTU0VSVCghaGFuZGxlZEJ5SW5w
dXRNZXRob2QgfHwgY29tbWFuZHMuaXNFbXB0eSgpKTsKLSAgICAgICAgbV9wYWdlLT5oYW5kbGVL
ZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0
TWV0aG9kLCBjb21tYW5kcykpOworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQo
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIG1faXNU
ZXh0SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlLCBjb21tYW5kcykpOwogICAgIH0pOwogfQog
CkBAIC0zOTEyLDkgKzM5MjAsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6a2V5RG93bihOU0V2ZW50
ICpldmVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1faXNUZXh0SW5zZXJ0aW9u
UmVwbGFjaW5nU29mdFNwYWNlID0gZmFsc2U7CiAgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQs
IF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7CiAgICAgICAgIEFTU0VSVCghaGFuZGxlZEJ5SW5wdXRN
ZXRob2QgfHwgY29tbWFuZHMuaXNFbXB0eSgpKTsKLSAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXli
b2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0
aG9kLCBjb21tYW5kcykpOworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIG1faXNUZXh0
SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlLCBjb21tYW5kcykpOwogICAgIH0pOwogfQogCkBA
IC0zOTMwLDcgKzM5MzksNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmbGFnc0NoYW5nZWQoTlNFdmVu
dCAqZXZlbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGludGVycHJldEtleUV2ZW50KGV2ZW50
LCBeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewotICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJk
RXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IGNvbW1hbmRzKSk7CisgICAgICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgZmFsc2UsIGNvbW1h
bmRzKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmlu
ZGV4IDFiMjRkYjI3NWU4Y2UwYjIwYjZjZWU0ZjMwNWI1YmY1OWM4MWVhN2QuLjQ4Nzc3MzE0OTcw
MTZmYzZhNjIyMTQ4M2U3ZDZjZDg0ZWNlMDM2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaApAQCAtMTgwLDYgKzE4MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihMYXllck9yVmlldyAqKSA9IDA7CiAg
ICAgdmlydHVhbCBMYXllck9yVmlldyAqYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiB0YWtlVmll
d1NuYXBzaG90KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3aWxsSW5zZXJ0VGV4dEFzeW5jKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRJbnNlcnRUZXh0QXN5bmMoKSA9IDA7CiAjaWYgRU5B
QkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICB2aXJ0dWFsIHZvaWQgZ2VzdHVyZUV2ZW50V2Fz
Tm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJHZXN0dXJlRXZlbnQmKSA9IDA7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDJj
MmMyMjA4YjliOTg3ZTc3M2QwYmU0ZWMwMjczNmI4NjJlZDk4Ny4uMmQ4MjFkY2IxYzMyNDQ0ZDI3
MzAxMjEzMTlmODlhNDgyOTFmMGI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTYxMzksMTEgKzYxMzksMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmFk
ZE1JTUVUeXBlV2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRJbnNlcnRU
ZXh0QXN5bmMoKQoreworICAgIG1fcGFnZUNsaWVudC5kaWRJbnNlcnRUZXh0QXN5bmMoKTsKK30K
Kwogdm9pZCBXZWJQYWdlUHJveHk6Omluc2VydFRleHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbnRSYW5nZSwgYm9vbCByZWdpc3RlclVuZG9H
cm91cCwgRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvIGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbykK
IHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9wYWdlQ2xp
ZW50LndpbGxJbnNlcnRUZXh0QXN5bmMoKTsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6SW5zZXJ0VGV4dEFzeW5jKHRleHQsIHJlcGxhY2VtZW50UmFuZ2UsIHJlZ2lzdGVy
VW5kb0dyb3VwLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRv
KSksIG1fcGFnZUlEKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDZmYTU5NzViMzU4MjI1ZDc5NzNjNDNlMDMwZDM5ZThmYTg4ZGIzNGEuLjM0MzM4NjEz
Yjg2YjlkZDhiY2JhNDA4NTEyMDBlMDM5MDA2OGI3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTU2Myw2ICs1NjMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKExheWVyT3JWaWV3Kik7CiAgICAgTGF5
ZXJPclZpZXcqIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBjb25zdDsKIAorICAg
IHZvaWQgd2lsbEluc2VydFRleHRBc3luYygpOworICAgIHZvaWQgZGlkSW5zZXJ0VGV4dEFzeW5j
KCk7CiAgICAgdm9pZCBpbnNlcnRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBF
ZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGJvb2wgcmVnaXN0ZXJVbmRvR3JvdXAgPSBm
YWxzZSwgRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvID0gRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRv
OjpFZGl0YWJsZVJvb3QpOwogICAgIHZvaWQgZ2V0TWFya2VkUmFuZ2VBc3luYyhzdGQ6OmZ1bmN0
aW9uPHZvaWQgKEVkaXRpbmdSYW5nZSwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+KTsKICAgICB2b2lk
IGdldFNlbGVjdGVkUmFuZ2VBc3luYyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKEVkaXRpbmdSYW5nZSwg
Q2FsbGJhY2tCYXNlOjpFcnJvcik+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDBkYmIxNGNlMDIzYWY3Nzk3M2IyOTM2NjFh
ZDFjZGFlNDRlNGU4MDEuLmM3MWEzNGU5YTE2MzA2Yjk4NGMyZTQyYjJiOWQ5MjBkZTQ4YmI2ZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgpAQCAtNDYyLDQgKzQ2Miw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIERpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKCkKICNlbmRpZgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgRGlkSW5zZXJ0VGV4dEFzeW5jKCkKKyNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CmluZGV4IDAxYWIxMGQ4NzUzMTQ3YTZmNTk1ZDlkNzFhMTQzNThhZDg0NzkxN2IuLjg1YzY0ZWRm
Y2Q1NWFiOTdmZjQ2ODlmMzc4YjQxNzNjZGRlZjllZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTEwOCw2ICsxMDgsOCBAQCBw
cml2YXRlOgogICAgIExheWVySG9zdGluZ01vZGUgdmlld0xheWVySG9zdGluZ01vZGUoKSBvdmVy
cmlkZSB7IHJldHVybiBMYXllckhvc3RpbmdNb2RlOjpPdXRPZlByb2Nlc3M7IH0KIAogICAgIFBh
c3NSZWZQdHI8Vmlld1NuYXBzaG90PiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CisgICAg
dm9pZCB3aWxsSW5zZXJ0VGV4dEFzeW5jKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRJbnNlcnRU
ZXh0QXN5bmMoKSBvdmVycmlkZTsKICAgICB2b2lkIHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlX
ZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBvdmVycmlkZTsKIAogICAgIHZvaWQg
Y29tbWl0UG90ZW50aWFsVGFwRmFpbGVkKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA1ZmMyMmFkOTI5ZDc0
MTZiNzRkNDQ2MDMzZjUxNmVkYTk3MTY3OTNlLi43NjgxMmMyYjAzZDZjMThkM2U2OTkwMTQyYzE0
NzhlYmYyNTI5YWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KQEAgLTQ3Miw2ICs0NzIsMTQgQEAgUGFzc1JlZlB0cjxWaWV3U25h
cHNob3Q+IFBhZ2VDbGllbnRJbXBsOjp0YWtlVmlld1NuYXBzaG90KCkKICAgICByZXR1cm4gW21f
d2ViVmlldyBfdGFrZVZpZXdTbmFwc2hvdF07CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6Ondp
bGxJbnNlcnRUZXh0QXN5bmMoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRJbnNl
cnRUZXh0QXN5bmMoKQoreworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2Fz
Tm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbC5oCmluZGV4IDUyNTlmYjViNzI1Y2E0NzY5MmVhZDdhYTQ4NTkwMTIxM2M3
YWI2ZTkuLjg1YzU0Y2Q2MDI0Yjc5ZmM4YzZhNDFiYzRkYzAwYmFmMjc0NTkwYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTE0MCw2ICsx
NDAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwogCiAgICAgUGFzc1JlZlB0cjxW
aWV3U25hcHNob3Q+IHRha2VWaWV3U25hcHNob3QoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxJ
bnNlcnRUZXh0QXN5bmMoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEluc2VydFRleHRBc3luYygp
IG92ZXJyaWRlOwogICAgIHZvaWQgd2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29u
c3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShNQUNfR0VTVFVS
RV9FVkVOVFMpCiAgICAgdm9pZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNv
bnN0IE5hdGl2ZVdlYkdlc3R1cmVFdmVudCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggNWI1YTEyMWE2OTM5NzZmZjYw
YTE4ZGIyNTU2ZjVmNGI5NWUyOTI1OC4uNmJmYjNhYjc0ZDUwYjc2Y2E4MjE4OTcyNDEwMTA4YTFh
NjE0ODQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsLm1tCkBAIC00OTUsNiArNDk1LDE2IEBAIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBQYWdl
Q2xpZW50SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAgICAgcmV0dXJuIG1faW1wbC0+dGFrZVZp
ZXdTbmFwc2hvdCgpOwogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aWxsSW5zZXJ0VGV4dEFz
eW5jKCkKK3sKKyAgICBtX2ltcGwtPndpbGxJbnNlcnRUZXh0QXN5bmNocm9ub3VzbHkoKTsKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkSW5zZXJ0VGV4dEFzeW5jKCkKK3sKKyAgICBtX2lt
cGwtPmRpZEluc2VydFRleHRBc3luY2hyb25vdXNseSgpOworfQorCiB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpzZWxlY3Rpb25EaWRDaGFuZ2UoKQogewogICAgIG1faW1wbC0+c2VsZWN0aW9uRGlkQ2hh
bmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggMDBiMjgxZTI0ZmQzMmJmZjJjNmJmOTAzOTliM2FiMzczNGQyYzc5Yi4uYTZlN2JiZmMw
ZGJiZTZkMzk3NmM5N2NiOWM1NGZiYWRiMDZkNzA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDYyOSw2ICs0NjI5LDggQEAgdm9pZCBX
ZWJQYWdlOjppbnNlcnRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5n
UmFuZ2UmIHJlcGxhY2VtZW4KICAgICAgICAgZnJhbWUuZWRpdG9yKCkuaW5zZXJ0VGV4dCh0ZXh0
LCBudWxscHRyKTsKICAgICB9IGVsc2UKICAgICAgICAgZnJhbWUuZWRpdG9yKCkuY29uZmlybUNv
bXBvc2l0aW9uKHRleHQpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRJ
bnNlcnRUZXh0QXN5bmMoKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Z2V0TWFya2VkUmFuZ2VBc3lu
Yyh1aW50NjRfdCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGZmOGI3NTMxODBmNmQ1NGRkZTY3MWEwMjQzOWNiNjUwNWFkYWU2
NjguLjU4YmU5ZDllNTY2OTEyN2U3MzRkNGQ1NzdkZmUwNDhjOTZlM2QzMGQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MSBAQAor
MjAxNi0wOS0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbnNlcnRpbmcgYSBzcGFjZSBhZnRlciBpbnNlcnRpbmcgYW4gYWNjZXB0ZWQgY2FuZGlk
YXRlIHNjcm9sbHMgdGhlIGRvY3VtZW50IGFuZCBjYXVzZXMgYSBmbGlja2VyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIwMDkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI4MDg2MjM3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZHMgMiBuZXcgdGV4dCBlZGl0aW5nIEFQSSB0ZXN0cyBjb3Zlcmlu
ZyBjYW5kaWRhdGUgaW5zZXJ0aW9uLCBhcyB3ZWxsIGFzIHN1cHBvcnQgZm9yIHRlc3RpbmcgY2Fu
ZGlkYXRlcyBpbgorICAgICAgICBXS1dlYlZpZXdzLiBSZWZhY3RvcnMgY29tbW9uIFdLV2ViVmll
dyBoZWxwZXJzIGFjcm9zcyBib3RoIFZpZGVvQ29udHJvbHNNYW5hZ2VyIHRlc3RzIGFuZCB0aGUg
bmV3CisgICAgICAgIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzIGludG8gYSBuZXcgdXRpbGl0eSBj
bGFzcywgVGVzdFdLV2ViVmlldyBpbiBUZXN0V0tXZWJWaWV3Lm1tLCB3aGljaCBpcyBjYXBhYmxl
IG9mCisgICAgICAgIHNpbXVsYXRpbmcgbW91c2UgYW5kIGtleWJvYXJkIGV2ZW50cyBhcyB3ZWxs
IGFzIHdhaXRpbmcgZm9yIEphdmFTY3JpcHQgbWVzc2FnZXMgc2VudCBmcm9tIHRoZSB3ZWIgcHJv
Y2VzcyBhbmQKKyAgICAgICAgcGVyZm9ybWluZyBhY3Rpb25zIGluIHJlc3BvbnNlLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL2F1ZGlvLW9ubHku
aHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0
aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92
aWRlby13aXRob3V0LWF1ZGlvLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKC1bTWVzc2FnZUhhbmRsZXIgaW5pdFdpdGhNZXNzYWdlOmhh
bmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW01lc3NhZ2VIYW5kbGVyIHVzZXJDb250ZW50
Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyBtb3VzZURvd25BdFBvaW50Ol0pOiBE
ZWxldGVkLgorICAgICAgICAoLVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IHBlcmZv
cm1BZnRlckxvYWRpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNNYW5h
Z2VyVGVzdFdlYlZpZXcgY2FsbEphdmFzY3JpcHRGdW5jdGlvbjpdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyBw
ZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOmFjdGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0
cy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RDYW5kaWRhdGUgaW5pdFdpdGhSZXBsYWNlbWVu
dFN0cmluZzppblJhbmdlOl0pOgorICAgICAgICAoLVtUZXN0Q2FuZGlkYXRlIHJlcGxhY2VtZW50
U3RyaW5nXSk6CisgICAgICAgICgtW1Rlc3RDYW5kaWRhdGUgcmVzdWx0VHlwZV0pOgorICAgICAg
ICAoLVtUZXN0Q2FuZGlkYXRlIHJhbmdlXSk6CisgICAgICAgICgtW0NhbmRpZGF0ZVRlc3RXZWJW
aWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6cmFuZ2U6XSk6CisgICAgICAg
ICgtW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZV0pOgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRt
bDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2Utdmlk
ZW8tc291cmNlLW9uLWVuZC5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2Z1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWw6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW5wdXQtZmllbGQtaW4t
c2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVr
LXRvLWVuZC5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2xhcmdlLXZpZGVvLW11dGVzLW9ucGxheWluZy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXBsYXlpbmct
c2Nyb2xsLWF3YXkuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5n
LWFuZC1wbGF5LWFmdGVyLWVuZGluZy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRob3V0LWF1ZGlv
Lmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWw6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLXNjcm9s
bC10by12aWRlby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2xhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWlu
Zy1tdXRlZC12aWRlby1oaWRlcy1jb250cm9scy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNv
bnRyb2xzLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbDoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9za2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1h
dWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3dp
ZGUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RNZXNz
YWdlSGFuZGxlciBpbml0V2l0aE1lc3NhZ2U6aGFuZGxlcjpdKToKKyAgICAgICAgKC1bVGVzdE1l
c3NhZ2VIYW5kbGVyIHVzZXJDb250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2Fn
ZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBtb3VzZURvd25BdFBvaW50Ol0pOgorICAg
ICAgICAoLVtUZXN0V0tXZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6YWN0aW9u
Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOl0pOgorICAg
ICAgICAoLVtUZXN0V0tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6XSk6CisgICAgICAgICgtW1Rlc3RX
S1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpdKToKKyAgICAgICAgKC1bVGVz
dFdLV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBw
ZXJmb3JtQWZ0ZXJMb2FkaW5nOl0pOgorCiAyMDE2LTA5LTE0ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhIGNvbnRyb2xzIGJlaGF2ZSBzdHJh
bmdlbHkgd2hlbiBjaGFuZ2luZyBtZWRpYSBzb3VyY2VzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDhhNDljM2JjYjc5YTQ2ZDA2YzBmOTE0NDM4YzRiYTQ5NjM5NDYxOTcuLjNlOWU0ZDVlZTIw
NjAxMDhhOTNmMGRlNTljMjY1Mjk5MDU0NjU4OWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC03OCw2ICs3OCw5IEBACiAJCTJFRkYwNkMzMUQ4ODYyMUUwMDA0QkIzMCAvKiBsYXJnZS12aWRl
by1vZmZzY3JlZW4uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRUZGMDZDMjFEODg2MjEyMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zm
c2NyZWVuLmh0bWwgKi87IH07CiAJCTJFRkYwNkM1MUQ4ODY3NzYwMDA0QkIzMCAvKiBjaGFuZ2Ut
dmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5n
ZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCAqLzsgfTsKIAkJMkVGRjA2QzcxRDg4NkE1ODAw
MDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2QzYxRDg4NkE1NjAw
MDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi87IH07CisJCTJFRkYw
NkNEMUQ4QTQyOUEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkVGRjA2Q0MxRDhBNDI5MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUt
ZG9jdW1lbnQuaHRtbCAqLzsgfTsKKwkJMkVGRjA2RDQxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RX
S1dlYlZpZXdNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRUZGMDZEMzFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5tbSAqLzsg
fTsKKwkJMkVGRjA2RDcxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3Rz
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2
RDYxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICovOyB9Owog
CQkzM0JFNUFGOTEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCRTVB
RjgxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCAqLzsg
fTsKIAkJMzNEQzg5MTIxNDE5NTVGRTAwNzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0RDODkw
RTE0MTk1MzkzMDA3NDdFRjcgLyogc2ltcGxlLWlmcmFtZS5odG1sICovOyB9OwogCQkzM0RDODkx
NDE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNr
X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzM0RDODkxMzE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVj
dENhbGxiYWNrX0J1bmRsZS5jcHAgKi87IH07CkBAIC01NDEsNiArNTQ0LDcgQEAKIAkJCWRzdFBh
dGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3Owog
CQkJZmlsZXMgPSAoCisJCQkJMkVGRjA2Q0QxRDhBNDI5QTAwMDRCQjMwIC8qIGlucHV0LWZpZWxk
LWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQky
RUZGMDZDNzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRUZGMDZDNTFEODg2Nzc2MDAwNEJCMzAgLyog
Y2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTJFRkYwNkMzMUQ4ODYyMUUwMDA0QkIzMCAvKiBsYXJnZS12aWRlby1vZmZzY3JlZW4uaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTc4OSw2ICs3OTMsMTAgQEAKIAkJMkVGRjA2QzIx
RDg4NjIxMjAwMDRCQjMwIC8qIGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12
aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJj
aGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyRUZGMDZDNjFEODg2QTU2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1v
bi1lbmQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjaGFuZ2UtdmlkZW8tc291
cmNlLW9uLWVuZC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVGRjA2Q0Mx
RDhBNDI5MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxl
LWRvY3VtZW50Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZEMjFE
OEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUZXN0V0tXZWJWaWV3TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJFRkYwNkQzMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdFdLV2ViVmlld01hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVGRjA2RDYxRDhBRjM0QTAwMDRCQjMw
IC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMzM0I5Q0UxMTI3N0YyMzEwMEZFRkNFMyAvKiBQcmV2ZW50RW1wdHlV
c2VyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJldmVu
dEVtcHR5VXNlckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzNCRTVB
RjQxMzdCNUE2QzAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3Vz
ZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzc1LDYgKzEzODMsNyBAQAogCQkJCTM3QjQ3RTJFMUQ2NEU3Q0EwMDVG
NEVGRiAvKiBXS09iamVjdC5tbSAqLywKIAkJCQkyRDAwMDY1RDFDMUY1ODk0MDA4OEU2QTcgLyog
V0tQREZWaWV3UmVzaXplQ3Jhc2gubW0gKi8sCiAJCQkJNUU0QjFEMkMxRDQwNEM2MTAwMDUzNjIx
IC8qIFdLU2Nyb2xsVmlld0RlbGVnYXRlQ3Jhc2gubW0gKi8sCisJCQkJMkVGRjA2RDYxRDhBRjM0
QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICovLAogCQkJCTdDNDE3RjMx
MUQxOUUxNDgwMEI4RUY1MyAvKiBXS1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1t
ICovLAogCQkJCTBGM0I5NEE1MUE3NzI2NkMwMERFMzI3MiAvKiBXS1dlYlZpZXdFdmFsdWF0ZUph
dmFTY3JpcHQubW0gKi8sCiAJCQkJOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmll
d1RleHRJbnB1dC5tbSAqLywKQEAgLTE0NjQsNiArMTQ3Myw3IEBACiAJCUExNkY2NkI4MUM0MEU5
RTEwMEJENEQyNCAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1p
bi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgKi8sCiAJCQkJMkVGRjA2QzYxRDg4NkE1NjAwMDRC
QjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzQx
RDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCAqLywK
IAkJCQkyRUZGMDZDMjFEODg2MjEyMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0
bWwgKi8sCkBAIC0xODE5LDYgKzE4MjksOCBAQAogCQkJCUMwODEyMjQ0MTNGQzE5RUMwMERDMzlB
RSAvKiBTeW50aGV0aWNCYWNraW5nU2NhbGVGYWN0b3JXaW5kb3cubSAqLywKIAkJCQkyOUFCOEFB
MzE2NEM3QTkzMDBENDlCRUMgLyogVGVzdEJyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZS5oICov
LAogCQkJCTI5QUI4QUEyMTY0QzdBOTMwMEQ0OUJFQyAvKiBUZXN0QnJvd3NpbmdDb250ZXh0TG9h
ZERlbGVnYXRlLm1tICovLAorCQkJCTJFRkYwNkQyMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tX
ZWJWaWV3TWFjLmggKi8sCisJCQkJMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dl
YlZpZXdNYWMubW0gKi8sCiAJCQkJQzA4NTg3QkUxM0ZFOTU2QzAwMUVGNEU1IC8qIFdlYktpdEFn
bm9zdGljVGVzdC5oICovLAogCQkJCUMwODU4N0JEMTNGRTk1NkMwMDFFRjRFNSAvKiBXZWJLaXRB
Z25vc3RpY1Rlc3QubW0gKi8sCiAJCQkpOwpAQCAtMjM0Miw2ICsyMzU0LDcgQEAKIAkJCQk3Q0NF
N0VGQjFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3Q0NFN0VGQzFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVGcmFt
ZUhpdFRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkQxQTQxMUFFNjAwNDQ3QzRD
IC8qIEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkyRUZGMDZENDFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2Vi
Vmlld01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEI4MUQwQTY0QkQwMEZFQkNGMyAv
KiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdFQzMxQTQxMUE3RTAwNDQ3QzRDIC8qIEluc3BlY3RvckJhci5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RURBMUE0MTFBODcwMDQ0N0M0QyAvKiBJbnN0YW5jZU1ldGhvZFN3
aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yNDYxLDYgKzI0NzQsNyBAQAogCQkJCTdDQ0U3
RUQ4MUE0MTFBN0UwMDQ0N0M0QyAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NDRTdFRDkxQTQxMUE3RTAwNDQ3QzRDIC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0
aE1lZGlhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUY4MzU3MUIxRDNGRkIyMzAwRTM5NjdCIC8q
IFdLQmFja0ZvcndhcmRMaXN0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkVGRjA2RDcxRDhBRjM0
QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0NDRTdGMkUxQTQxMUIxMDAwNDQ3QzRDIC8qIFdLQnJvd3NpbmdDb250ZXh0R3JvdXBUZXN0
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMkYxQTQxMUIxMDAwNDQ3QzRDIC8qIFdLQnJv
d3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDNTRB
NEJFMUFBMTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvYXVk
aW8tb25seS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL2F1ZGlv
LW9ubHkuaHRtbAppbmRleCA3NDAwZjY2Mjg0ZTI5OTEzZGE1OWI0NmNlMzU2YjhjYTZiZGZkZmNm
Li5jNGEyNGZhZWU3NjdjYTExZTVmNmEwNTdkNmVhZTA4ZGZjYzEyMWFkIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvYXVkaW8tb25seS5odG1sCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy9hdWRpby1vbmx5Lmh0bWwKQEAg
LTEyLDcgKzEyLDcgQEAKICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAgICAgICB3aW5kb3cu
Y2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlp
bmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAg
ICAgICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICB9CkBA
IC0yMCw3ICsyMCw3IEBACiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkgewogICAgICAgICB0
cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hh
bmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcn
KTsKICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICB9CiAgICAgPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aC1hdWRp
by5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGgt
YXVkaW8uaHRtbAppbmRleCBjODkyNGI2Yjk4YWE4M2Y2ZDJiZTE1ZGI0ODk4NDg0MzUzZjVhOWU5
Li44MDhkZGNlYzg2OWQ3NGEzY2ZkYzU5NWUxNjllMTA2MzliYjZmMzM5IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aC1hdWRpby5odG1s
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRoLWF1
ZGlvLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAg
ICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgICB0cnkgewotICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1l
c3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2go
ZSkgewogICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwog
ICAgICAgICB9CkBAIC0yMiw3ICsyMiw3IEBACiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkg
ewogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgn
bm90IHBsYXlpbmcnKTsKICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICB9CiAgICA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRl
by13aXRob3V0LWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9p
b3MvdmlkZW8td2l0aG91dC1hdWRpby5odG1sCmluZGV4IDg0NTg2ZjMyNWMxYmViOTFmYzdmZTA1
YTI3OWFkMDJiZTE4ZTJjNDAuLjI3NWU3ZTFjNTk2Y2JmOWM4N2VmMjczMjc0YzBjY2Q2ZjRlNGU5
MzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRl
by13aXRob3V0LWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvaW9zL3ZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbApAQCAtMTIsNyArMTIsNyBAQAogICAgIGZ1
bmN0aW9uIHBsYXlpbmcoKSB7CiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dCk7
CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycpOworICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlp
bmcnKTsKICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24g
PSAnY2FsbGJhY2s6cGxheWluZyc7CiAgICAgICAgIH0KQEAgLTIwLDcgKzIwLDcgQEAKIAogICAg
IGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgnbm90
IHBsYXlpbmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOwogICAgICAgICB9IGNhdGNoKGUp
IHsgfQogICAgIH0KICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KaW5k
ZXggYmQzMTg2MmFlNDJlY2I0MmNhNDFmMTJiNmFkNmY4N2ZjOTkyMWZiNy4uNjc0NWNjNzI2ZTk1
ZmFjOWNjODYzZGI1NDljMjlmYjIyZDY2MGNjZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIu
bW0KQEAgLTI2LDEwICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCi0KLSNpZiBQTEFURk9STShNQUMpCi0jaW1wb3J0IDxDYXJib24v
Q2FyYm9uLmg+Ci0jZW5kaWYKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMuaCIKIAogI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgpAQCAtNDMsMzQgKzQwLDcgQEAgLSAodm9pZClfaW50ZXJh
Y3RXaXRoTWVkaWFDb250cm9sc0ZvclRlc3Rpbmc7CiAKIEBlbmQKIAotQGludGVyZmFjZSBNZXNz
YWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgotQGVuZAotCi1A
aW1wbGVtZW50YXRpb24gTWVzc2FnZUhhbmRsZXIgewotICAgIGRpc3BhdGNoX2Jsb2NrX3QgX2hh
bmRsZXI7Ci0gICAgTlNTdHJpbmcgKl9tZXNzYWdlOwotfQotCi0tIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaGFuZGxlcjooZGlzcGF0Y2hfYmxvY2tf
dCloYW5kbGVyCi17Ci0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIHJl
dHVybiBuaWw7Ci0KLSAgICBfaGFuZGxlciA9IFtoYW5kbGVyIGNvcHldOwotICAgIF9tZXNzYWdl
ID0gbWVzc2FnZTsKLQotICAgIHJldHVybiBzZWxmOwotfQotCi0tICh2b2lkKXVzZXJDb250ZW50
Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xs
ZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKLXsK
LSAgICBpZiAoWyhOU1N0cmluZyAqKVttZXNzYWdlIGJvZHldIGlzRXF1YWxUb1N0cmluZzpfbWVz
c2FnZV0gJiYgX2hhbmRsZXIpCi0gICAgICAgIF9oYW5kbGVyKCk7Ci19Ci0KLUBlbmQKLQotQGlu
dGVyZmFjZSBWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IDogV0tXZWJWaWV3CitAaW50
ZXJmYWNlIFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcgOiBUZXN0V0tXZWJWaWV3CiBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IHsK
QEAgLTc4LDMyICs0OCw2IEBAIEBpbXBsZW1lbnRhdGlvbiBWaWRlb0NvbnRyb2xzTWFuYWdlclRl
c3RXZWJWaWV3IHsKICAgICBOU1N0cmluZyAqX2NvbnRyb2xsZWRFbGVtZW50SUQ7CiB9CiAKLS0g
KHZvaWQpbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCB7Ci0gICAgW3NlbGYgbW91c2VE
b3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24g
bG9jYXRpb246TlNNYWtlUG9pbnQocG9pbnQueCwgcG9pbnQueSkgbW9kaWZpZXJGbGFnczowIHRp
bWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpbTlNH
cmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDow
IHByZXNzdXJlOjBdXTsKLX0KLQotLSAodm9pZClwZXJmb3JtQWZ0ZXJMb2FkaW5nOihkaXNwYXRj
aF9ibG9ja190KWFjdGlvbnMgewotICAgIE1lc3NhZ2VIYW5kbGVyICpoYW5kbGVyID0gW1tNZXNz
YWdlSGFuZGxlciBhbGxvY10gaW5pdFdpdGhNZXNzYWdlOkAibG9hZGVkIiBoYW5kbGVyOmFjdGlv
bnNdOwotICAgIE5TU3RyaW5nICpvbmxvYWRTY3JpcHQgPSBAIndpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpIHsgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMub25sb2FkSGFuZGxlci5wb3N0
TWVzc2FnZSgnbG9hZGVkJyk7IH0iOwotICAgIFdLVXNlclNjcmlwdCAqc2NyaXB0ID0gW1tXS1Vz
ZXJTY3JpcHQgYWxsb2NdIGluaXRXaXRoU291cmNlOm9ubG9hZFNjcmlwdCBpbmplY3Rpb25UaW1l
OldLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25s
eTpOT107Ci0KLSAgICBXS1VzZXJDb250ZW50Q29udHJvbGxlciogY29udGVudENvbnRyb2xsZXIg
PSBbW3NlbGYgY29uZmlndXJhdGlvbl0gdXNlckNvbnRlbnRDb250cm9sbGVyXTsKLSAgICBbY29u
dGVudENvbnRyb2xsZXIgYWRkVXNlclNjcmlwdDpzY3JpcHRdOwotICAgIFtjb250ZW50Q29udHJv
bGxlciBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyIG5hbWU6QCJvbmxvYWRIYW5kbGVy
Il07Ci19Ci0KLS0gKHZvaWQpY2FsbEphdmFzY3JpcHRGdW5jdGlvbjooTlNTdHJpbmcgKilmdW5j
dGlvbk5hbWUKLXsKLSAgICBOU1N0cmluZyAqY29tbWFuZCA9IFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiJUAoKSIsIGZ1bmN0aW9uTmFtZV07Ci0gICAgW3NlbGYgZXZhbHVhdGVKYXZhU2Ny
aXB0OmNvbW1hbmQgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKLX0KLQotLSAodm9pZClsb2FkVGVz
dFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZQotewotICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpwYWdlTmFtZSB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07Ci0gICAgW3NlbGYgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07Ci19Ci0KIC0gKHZvaWQpZXhwZWN0Q29udHJvbHNNYW5hZ2VyOihCT09MKWV4cGVj
dENvbnRyb2xzTWFuYWdlciBhZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2Fn
ZQogewogICAgIF9fYmxvY2sgYm9vbCBkb25lV2FpdGluZyA9IGZhbHNlOwpAQCAtMTMxLDE0ICs3
NSw2IEBAIC0gKHZvaWQpd2FpdEZvck1lZGlhQ29udHJvbHNUb0hpZGUKICAgICAgICAgW1tOU1J1
bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3Jl
RGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV07CiB9CiAKLS0gKHZvaWQpcGVyZm9ybUFmdGVyUmVj
ZWl2aW5nTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGFjdGlvbjooZGlzcGF0Y2hfYmxvY2tf
dClhY3Rpb24KLXsKLSAgICBSZXRhaW5QdHI8TWVzc2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9w
dE5TKFtbTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoTWVzc2FnZTptZXNzYWdlIGhhbmRs
ZXI6YWN0aW9uXSk7Ci0gICAgV0tVc2VyQ29udGVudENvbnRyb2xsZXIqIGNvbnRlbnRDb250cm9s
bGVyID0gW1tzZWxmIGNvbmZpZ3VyYXRpb25dIHVzZXJDb250ZW50Q29udHJvbGxlcl07Ci0gICAg
W2NvbnRlbnRDb250cm9sbGVyIHJlbW92ZVNjcmlwdE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTpAInBs
YXlpbmdIYW5kbGVyIl07Ci0gICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInBsYXlpbmdIYW5kbGVyIl07Ci19Ci0KIC0gKHZv
aWQpd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6KGludCludW1iZXJPZkF1
dG9wbGF5aW5nVmlkZW9zCiB7CiAgICAgX19ibG9jayBpbnQgcmVtYWluaW5nQXV0b3BsYXllZENv
dW50ID0gbnVtYmVyT2ZBdXRvcGxheWluZ1ZpZGVvczsKQEAgLTI0MCw3ICsxNzYsNyBAQCBURVNU
KFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdlck11bHRpcGxlVmlkZW9z
U2Nyb2xsUGF1c2VkVmlkZW9PdQogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAibGFy
Z2UtdmlkZW9zLXBhdXNlZC12aWRlby1oaWRlcy1jb250cm9scyJdOwogICAgIFt3ZWJWaWV3IHdh
aXRGb3JQYWdlVG9Mb2FkV2l0aEF1dG9wbGF5aW5nVmlkZW9zOjFdOwogCi0gICAgW3dlYlZpZXcg
Y2FsbEphdmFzY3JpcHRGdW5jdGlvbjpAInBhdXNlRmlyc3RWaWRlb0FuZFNjcm9sbFRvU2Vjb25k
VmlkZW8iXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAicGF1
c2VGaXJzdFZpZGVvQW5kU2Nyb2xsVG9TZWNvbmRWaWRlbygpIl07CiAgICAgW3dlYlZpZXcgZXhw
ZWN0Q29udHJvbHNNYW5hZ2VyOk5PIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBhdXNlZCJdOwog
fQogCkBAIC0yNTEsNyArMTg3LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9D
b250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVvc1Njcm9sbFBsYXlpbmdWaWRlb1cKICAgICBbd2Vi
VmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBz
LWNvbnRyb2xzIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlp
bmdWaWRlb3M6MV07CiAKLSAgICBbd2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1bmN0aW9uOkAic2Ny
b2xsVG9TZWNvbmRWaWRlbyJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJzY3JvbGxUb1NlY29uZFZpZGVvKCkiXTsKICAgICBbd2ViVmlldyBleHBlY3RDb250
cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInNjcm9sbGVkIl07CiB9CiAK
QEAgLTI2Miw3ICsxOTgsNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRy
b2xzTWFuYWdlck11bHRpcGxlVmlkZW9zU2Nyb2xsUGxheWluZ011dGVkVgogICAgIFt3ZWJWaWV3
IGxvYWRUZXN0UGFnZU5hbWVkOkAibGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlk
ZXMtY29udHJvbHMiXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxh
eWluZ1ZpZGVvczoxXTsKIAotICAgIFt3ZWJWaWV3IGNhbGxKYXZhc2NyaXB0RnVuY3Rpb246QCJt
dXRlRmlyc3RWaWRlb0FuZFNjcm9sbFRvU2Vjb25kVmlkZW8iXTsKKyAgICBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAibXV0ZUZpcnN0VmlkZW9BbmRTY3JvbGxUb1NlY29u
ZFZpZGVvKCkiXTsKICAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6Tk8gYWZ0ZXJS
ZWNlaXZpbmdNZXNzYWdlOkAicGxheWluZyJdOwogfQogCkBAIC0zMDAsNyArMjM2LDcgQEAgVEVT
VChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVv
c1N3aXRjaENvbnRyb2xsZWRWaWQKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxh
cmdlLXZpZGVvcy1hdXRvcGxheWluZy1zY3JvbGwtdG8tdmlkZW8iXTsKICAgICBbd2ViVmlldyB3
YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVvczoyXTsKIAotICAgIFt3ZWJWaWV3
IGNhbGxKYXZhc2NyaXB0RnVuY3Rpb246QCJzY3JvbGxUb1NlY29uZFZpZXciXTsKKyAgICBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVG9TZWNvbmRWaWV3KCki
XTsKICAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5n
TWVzc2FnZTpAInNjcm9sbGVkIl07CiAKICAgICBFWFBFQ1RfVFJVRShbW3dlYlZpZXcgY29udHJv
bGxlZEVsZW1lbnRJRF0gaXNFcXVhbFRvU3RyaW5nOkAic2Vjb25kIl0pOwpAQCAtMzEyLDcgKzI0
OCw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVs
dGlwbGVWaWRlb3NTY3JvbGxPbmx5TGFyZ2VWaWRlCiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBh
Z2VOYW1lZDpAImxhcmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkiXTsKICAgICBbd2ViVmll
dyB3YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVvczoxXTsKLSAgICBbd2ViVmll
dyBjYWxsSmF2YXNjcmlwdEZ1bmN0aW9uOkAic2Nyb2xsVmlkZW9PdXRPZlZpZXciXTsKKyAgICBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVmlkZW9PdXRPZlZp
ZXcoKSJdOwogICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpZRVMgYWZ0ZXJSZWNl
aXZpbmdNZXNzYWdlOkAic2Nyb2xsZWQiXTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVU
ZXN0cy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41NmE3YzQ1ZmJiMjYyY2IwNmYxY2Y0OGExYjg1YTZkZDA3MmY0
NmZkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0KQEAgLTAsMCArMSwxMjkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKwor
I2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMu
aCIKKworI2ltcG9ydCA8V2ViS2l0L1dlYktpdFByaXZhdGUuaD4KKworQGludGVyZmFjZSBUZXN0
Q2FuZGlkYXRlIDogTlNUZXh0Q2hlY2tpbmdSZXN1bHQKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFRlc3RDYW5kaWRhdGUgeworICAgIE5TU3RyaW5nICpfc3RyaW5nOworICAgIE5TUmFuZ2UgX3Jh
bmdlOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZXBsYWNlbWVudFN0cmluZzooTlNT
dHJpbmcgKilzdHJpbmcgaW5SYW5nZTooTlNSYW5nZSlyYW5nZQoreworICAgIGlmIChzZWxmID0g
W3N1cGVyIGluaXRdKSB7CisgICAgICAgIF9zdHJpbmcgPSBzdHJpbmc7CisgICAgICAgIF9yYW5n
ZSA9IHJhbmdlOworICAgIH0KKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoTlNTdHJpbmcgKily
ZXBsYWNlbWVudFN0cmluZworeworICAgIHJldHVybiBfc3RyaW5nOworfQorCistIChOU1RleHRD
aGVja2luZ1R5cGUpcmVzdWx0VHlwZQoreworICAgIHJldHVybiBOU1RleHRDaGVja2luZ1R5cGVS
ZXBsYWNlbWVudDsKK30KKworLSAoTlNSYW5nZSlyYW5nZQoreworICAgIHJldHVybiBfcmFuZ2U7
Cit9CisKK0BlbmQKKworQGludGVyZmFjZSBDYW5kaWRhdGVUZXN0V2ViVmlldyA6IFRlc3RXS1dl
YlZpZXcKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIENhbmRpZGF0ZVRlc3RXZWJWaWV3IHsKKyAg
ICBib29sIF9pc0RvbmVXYWl0aW5nRm9yQ2FuZGlkYXRlOworfQorCistICh2b2lkKWluc2VydENh
bmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6KE5TU3RyaW5nICopcmVwbGFjZW1lbnRTdHJpbmcg
cmFuZ2U6KE5TUmFuZ2UpcmFuZ2UKK3sKKyAgICBfaXNEb25lV2FpdGluZ0ZvckNhbmRpZGF0ZSA9
IGZhbHNlOworICAgIFtzZWxmIF9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTpbW1Rlc3RDYW5kaWRh
dGUgYWxsb2NdIGluaXRXaXRoUmVwbGFjZW1lbnRTdHJpbmc6cmVwbGFjZW1lbnRTdHJpbmcgaW5S
YW5nZTpyYW5nZV1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2lzRG9uZVdhaXRp
bmdGb3JDYW5kaWRhdGUpOworfQorCistICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0
ZQoreworICAgIF9pc0RvbmVXYWl0aW5nRm9yQ2FuZGlkYXRlID0gdHJ1ZTsKK30KKworQGVuZAor
CitURVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBTb2Z0U3BhY2VSZXBsYWNlbWVudEFmdGVy
Q2FuZGlkYXRlSW5zZXJ0aW9uRG9lc05vdFNjcm9sbCkKK3sKKyAgICBDYW5kaWRhdGVUZXN0V2Vi
VmlldyAqd2tXZWJWaWV3ID0gW1tDYW5kaWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV07CisKKyAgICBOU1VSTCAqY29udGVudFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1p
bi1zY3JvbGxhYmxlLWRvY3VtZW50IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVSTF1dOworCisgICAgW3drV2Vi
VmlldyB3YWl0Rm9yTWVzc2FnZTpAImZvY3VzZWQiXTsKKyAgICBbd2tXZWJWaWV3IF9mb3JjZVJl
cXVlc3RDYW5kaWRhdGVzXTsKKyAgICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0
Rm9yUmVzcG9uc2U6QCJhcHBsZSAiIHJhbmdlOk5TTWFrZVJhbmdlKDAsIDApXTsKKworICAgIEVY
UEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlIl0gaXNFcXVhbFRvU3RyaW5nOkAiYXBw
bGUgIl0pOworCisgICAgW3drV2ViVmlldyB0eXBlQ2hhcmFjdGVyOicgJ107CisgICAgW3drV2Vi
VmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CisKKyAgICBFWFBFQ1RfVFJVRShbW3drV2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignaW5wdXQnKS52YWx1ZSJdIGlzRXF1YWxUb1N0cmluZzpAImFwcGxlICJdKTsKKyAgICBFWFBF
Q1RfRVEoW1t3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50
LmJvZHkuc2Nyb2xsVG9wIl0gZG91YmxlVmFsdWVdLCAwKTsKK30KKworVEVTVChXS1dlYlZpZXdD
YW5kaWRhdGVUZXN0cywgSW5zZXJ0Q2hhcmFjdGVyc0FmdGVyQ2FuZGlkYXRlSW5zZXJ0aW9uV2l0
aFNvZnRTcGFjZSkKK3sKKyAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAqd2tXZWJWaWV3ID0gW1tD
YW5kaWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKV07CisKKyAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKKyAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6Y29udGVudFVSTF1dOworCisgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpA
ImZvY3VzZWQiXTsKKyAgICBbd2tXZWJWaWV3IF9mb3JjZVJlcXVlc3RDYW5kaWRhdGVzXTsKKyAg
ICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6QCJmb28gIiBy
YW5nZTpOU01ha2VSYW5nZSgwLCAwKV07CisKKyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5w
dXQnKS52YWx1ZSJdIGlzRXF1YWxUb1N0cmluZzpAImZvbyAiXSk7CisKKyAgICBbd2tXZWJWaWV3
IHR5cGVDaGFyYWN0ZXI6J2EnXTsKKyAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiaW5w
dXQiXTsKKworICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlIl0gaXNFcXVh
bFRvU3RyaW5nOkAiZm9vIGEiXSk7Cit9CisKKyNlbmRpZiAvKiBXS19BUElfRU5BQkxFRCAmJiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAw
ICovCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9h
dXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKaW5kZXgg
YjZhNWI4MmUyNjFhZDRhMzk1NWFlYzgzZTNmMWVhNmRhNGU2ODdkNC4uNTNiNDU2Mzg4ZjE5NmU5
ODk3NTExOGZjYTczOTY1ZjMwNzU2ZWZiYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2F1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbApAQCAtMTIsNyArMTIsNyBAQAogICAgICAgICAvLyBXYWl0IHVu
dGlsIHRoZSBuZXh0IHJ1bmxvb3AgdG8gYWxsb3cgbWVkaWEgY29udHJvbHMgdG8gdXBkYXRlLgog
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5w
b3N0TWVzc2FnZSgicGF1c2VkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIpOwogICAgICAgICAg
ICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAgICAgfQpAQCAtMjAsNyArMjAsNyBA
QAogICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxh
eWVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2go
ZSkgewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGlj
ay5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZp
ZGVvLXNvdXJjZS1vbi1jbGljay5odG1sCmluZGV4IGM4YzFkMjg2NTI1M2FlNjJkMDI1NjhkMTdh
M2IxMDA4NjQxNDUzODQuLjU2MGU2ODUwYTE1ZDExOWEyMTdjMzM0ZjdiMTNiZmNmOGMyYTk0ODIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5n
ZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwKQEAgLTEy
LDcgKzEyLDcgQEAKICAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKICAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1l
c3NhZ2UoImNoYW5nZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKICAgICAgICAg
ICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9KTsK
QEAgLTIxLDcgKzIxLDcgQEAKICAgICAgICAgZnVuY3Rpb24gaGFuZGxlUGxheWluZygpIHsKICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWlu
Z0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1
dG9wbGF5ZWQiKTsKICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9LCAwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9u
LWVuZC5odG1sCmluZGV4IDhmZGNiZGE1YzllMjIyODMzMTNiNDBhNjYwYjM5MmI1MzUwOTM2OGQu
LmY4NGY3ZjdhYzFiMTRjNTc1NTg3NDQwNjI5ZTk4OGMyODg0ODQwMWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Ut
b24tZW5kLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
Y2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbApAQCAtMTQsNyArMTQsNyBAQAogICAgICAg
ICAgICAgdmlkZW8ucGxheSgpOwogICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiY2hhbmdlZCIpOwor
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgiY2hhbmdlZCIpOwogICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkg
ewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2Z1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKaW5kZXggMWJj
NjBlYjRlMTYwNTIzYzk2NmNmM2UwMGQyMTI1YzgxNjE5MDBkMS4uNDgzMDFlNjMwNTQwNThjY2Nj
MGNhOWE2NTlhZDcxMzA4MDlhOTdlMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8u
aHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9mdWxsLXNp
emUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCkBAIC0xMSw3ICsxMSw3IEBACiAg
ICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKKyAgICAg
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZSgicGxheWluZyIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAg
fSwgMCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJs
ZS1kb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlZWRmMzc1Yzc2NTZhNmI3Y2RkMWFmZDVhODky
Njc2ZmQ4MDY0ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9pbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwKQEAg
LTAsMCArMSwzNiBAQAorPGh0bWw+CisKKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9k
eSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKworICAgICAgICBpbnB1dCB7
CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogNDAwcHg7Cisg
ICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxl
PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24g
bG9hZGVkKCkgeworICAgICAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaW5wdXQiKTsKKyAgICAgICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKDAsIDApOwor
ICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IGZvY3VzZWQoKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJmb2N1c2VkIiksIDApOwor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaW5wdXQoKSB7CisgICAgICAgICAgICBzZXRU
aW1lb3V0KCgpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBv
c3RNZXNzYWdlKCJpbnB1dCIpLCAwKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorCis8Ym9keSBvbmxvYWQ9bG9hZGVkKCk+CisgICAgPGlucHV0IG9uZm9jdXM9Zm9jdXNlZCgp
IG9uaW5wdXQ9aW5wdXQoKT48L2lucHV0PgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1oaWRl
cy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10
by1lbmQuaHRtbAppbmRleCBlNDI2N2M0MzFkN2FhZmYwNmE5MWRkYjgyMjhhYWU1OThjZjI5YTY4
Li4wMTAyZTk2MjlmMzYxMWJkYzI4YmUxOWUxYzY2ZjhlMTkzZTA4YjBkIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1oaWRlcy1j
b250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWst
dG8tZW5kLmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgICAgIC8vIFRoZSBtZWRpYSBjb250cm9s
cyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBydW5sb29wLgogICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiZW5k
ZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZSgiZW5kZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9
CiAgICAgICAgIH0sIDApOwogICAgIH0KQEAgLTI2LDcgKzI2LDcgQEAKICAgICBmdW5jdGlvbiBi
ZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11dGVzLW9ucGxheWluZy5odG1sIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tbXV0ZXMtb25wbGF5aW5n
Lmh0bWwKaW5kZXggYjVjYWYyM2E1YWNlYWU0YzYzZjJmNTAzNTMzYjZlMjYxYTU5ZTNmNC4uMzhm
YjMyNTUyMjM0ZmViMDhhOWQ4NTQ4NWE1YjkxYTJiMzRkYzY4OSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tbXV0ZXMtb25wbGF5
aW5nLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFy
Z2UtdmlkZW8tbXV0ZXMtb25wbGF5aW5nLmh0bWwKQEAgLTMsNyArMyw3IEBACiA8c2NyaXB0Pgog
ICAgIGZ1bmN0aW9uIGhhbmRsZVBsYXlpbmcoKSB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2Fn
ZSgicGxheWluZyIpOworICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgfSBjYXRjaChlKSB7
CiAgICAgICAgIH0KICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKS5tdXRl
ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sCmluZGV4IDUwYTY4NWZm
NjU5YTk4ZDc3ZTE2NTQxZjFkOTAxMjMxN2I1MmQ1M2UuLjM5Y2Y0NzZhYjM1MGIxNGFjNDIzMWE2
OGM1NDdhOTg1NjhiZjNmYTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sCkBA
IC0xNiw3ICsxNiw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRl
byIpLmNsYXNzTGlzdC5hZGQoIm9mZnNjcmVlbiIpOwogICAgICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgi
bW92ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIm1vdmVkIik7CiAgICAgICAgICAgICAgICAgfSBj
YXRjaChlKSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwgMCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1w
bGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9sYXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWwKaW5kZXggOTU5NjAw
M2NiN2YwYWI1NzgxMDNiNjYzZmQ0NjNkMzMwMjAyZDQ5Yi4uMGI3ZTA5YTMyNjAzMzk2MzM4Mjdl
YjBlZDljZjcxZGEwMWU0OWEwYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5odG1sCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXBsYXlp
bmctc2Nyb2xsLWF3YXkuaHRtbApAQCAtMTQsMTQgKzE0LDE0IEBACiAgICAgICAgICAgICBmdW5j
dGlvbiBzY3JvbGxWaWRlb091dE9mVmlldygpIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJkaXYiKS5zY3JvbGxJbnRvVmlldygpOwogICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIpOwor
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKICAgICAgICAgICAgICAgICB9LCAwKTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gYmVnYW5BdXRvcGxheWluZygpIHsK
ICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg
ICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICAgICAgICAgIH0gY2F0
Y2goZSkgewogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSwgMCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sCmluZGV4IGUzMTY3
ZjU3NGM0NjBiMjYzYjM3MzIxYzY4NjQ2MWI1NDFlOWRjOTIuLjAzODY1NDBhM2NiOTY4ZjMyZjU5
ZjNhNWZjMjI1Y2MyYjNjZGZkMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay1h
ZnRlci1lbmRpbmcuaHRtbApAQCAtNiw3ICs2LDcgQEAKICAgICAgICAgICAgIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoIiN0ZXN0LXZpZGVvIikuY3VycmVudFRpbWUgPSAwOwogICAgICAgICAgICAg
Ly8gVGhlIG1lZGlhIGNvbnRyb2xzIHNob3VsZCBiZSB1cGRhdGVkIG9uIHRoZSBuZXh0IHJ1bmxv
b3AuCiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdl
KCJlbmRlZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJlbmRlZCIpOwogICAgICAgICAgICAgfSwgMCk7CiAg
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5n
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
by1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbAppbmRleCAwN2E4
ZWIxMGViMTRmMTlhMTkyNzcxMmQzNDU5MzFhZWRiYzNlYjAzLi5hZGE5YTJkMTI3MWM5OGZlNDcz
Y2U2N2MzOWZlZWIxZmViNWI0OWU4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1h
ZnRlci1lbmRpbmcuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcu
aHRtbApAQCAtOCw3ICs4LDcgQEAKICAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKICAgICAgICAg
ICAgIC8vIFRoZSBtZWRpYSBjb250cm9scyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBy
dW5sb29wLgogICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVz
c2FnZSgicmVwbGF5aW5nIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInJlcGxheWluZyIpOwogICAgICAgICAg
ICAgfSwgMCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aC1hdWRpby5odG1sIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aC1hdWRpby5odG1s
CmluZGV4IGQyMzM0NjNjZWI4ZmFhMzIyZTM2ZjBjMjJiYWMxOTFhMzMzZThhZmEuLjg1ODJiNDU3
ZjMxZDkwMDNhMjY1ZmYxZTE5MjA2NTQ1ZDA5ZmVjY2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13
aXRoLWF1ZGlvLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgICAgICAgd2luZG93LmNsZWFyVGlt
ZW91dCh0aW1lb3V0KTsKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
cGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGxh
eWluZycpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgd2luZG93
LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICAgICAgfQpAQCAtMjMsNyAr
MjMsNyBAQAogCiAgICAgZnVuY3Rpb24gbm90UGxheWluZygpIHsKICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBv
c3RNZXNzYWdlKCdub3QgcGxheWluZycpOworICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CiAgICAg
ICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRob3V0LWF1ZGlv
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
by13aXRob3V0LWF1ZGlvLmh0bWwKaW5kZXggM2FiNzUyZTg1OGMxNDExZGZiNDI0ZDA3ODI2ZDU2
MWE2ZDdlYTc1OS4uZjQ5MmZhNGQzNTIzZGQzODc2ZDU2ZGM4NGE1MTdiNDEyNTJiZmQ5YSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW8td2l0aG91dC1hdWRpby5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbApAQCAtMTMsNyArMTMsNyBA
QAogICAgIGZ1bmN0aW9uIHBsYXlpbmcoKSB7CiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQo
dGltZW91dCk7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycpOworICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoJ3BsYXlpbmcnKTsKICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICB3aW5kb3cu
bG9jYXRpb24gPSAnY2FsbGJhY2s6cGxheWluZyc7CiAgICAgICAgIH0KQEAgLTIxLDcgKzIxLDcg
QEAKIAogICAgIGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVz
c2FnZSgnbm90IHBsYXlpbmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOwogICAgICAgICB9
IGNhdGNoKGUpIHsgfQogICAgIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNr
LXRvLXBhdXNlLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
YXJnZS12aWRlb3MtYXV0b3BsYXlpbmctY2xpY2stdG8tcGF1c2UuaHRtbAppbmRleCBjODFhMzFl
NmM5Y2RmOWRjNDUyN2Q0MjZiYzY1NGFmOTBlYTU3NmM1Li4yMmRiZWJmMTJkZmYwOTY2YTUxMWVm
MTQ1YjhiY2JmOTljZjY0YmNhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctY2xpY2stdG8tcGF1c2UuaHRt
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
b3MtYXV0b3BsYXlpbmctY2xpY2stdG8tcGF1c2UuaHRtbApAQCAtMTcsNyArMTcsNyBAQAogICAg
ICAgICAgICAgZnVuY3Rpb24gaGFuZGxlRmlyc3RQYXVzZSgpIHsKICAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICB0cnkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hh
bmRsZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBhdXNl
ZCIpOwogICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsgfQogICAgICAgICAgICAgICAg
IH0sIDApOwogICAgICAgICAgICAgfQpAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgICAgZnVu
Y3Rpb24gaGFuZGxlU2Vjb25kUGF1c2UoKSB7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RN
ZXNzYWdlKCJwYXVzZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsKICAgICAg
ICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgICAgICAgICB9LCAwKTsKICAg
ICAgICAgICAgIH0KQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgICAgIGZ1bmN0aW9uIGJlZ2Fu
QXV0b3BsYXlpbmcoKSB7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRv
cGxheWVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAg
ICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctc2Nyb2xsLXRvLXZpZGVvLmh0bWwgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3Bs
YXlpbmctc2Nyb2xsLXRvLXZpZGVvLmh0bWwKaW5kZXggZGI0M2Q0YmI0NWNiYTdmN2EwYjVjNzcw
YmU3NWFkYTg5ODEyODA3ZC4uZDFjMWFhZWE5MDJkNGE2MTM2MWNkNmE5OTQ3NGM3MTFhZWZjMjNi
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFy
Z2UtdmlkZW9zLWF1dG9wbGF5aW5nLXNjcm9sbC10by12aWRlby5odG1sCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWluZy1z
Y3JvbGwtdG8tdmlkZW8uaHRtbApAQCAtMTQsMTMgKzE0LDEzIEBACiAgICAgICAgICAgICBmdW5j
dGlvbiBzY3JvbGxUb1NlY29uZFZpZXcoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiI3NlY29uZCIpLnNjcm9sbEludG9WaWV3KCk7CiAgICAgICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInNjcm9sbGVkIik7
CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RI
YW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIpOwogICAgICAgICAgICAgICAgIH0sIDApOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgZnVuY3Rpb24gYmVnYW5BdXRvcGxheWluZygpIHsK
ICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg
ICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICAgICAgICAgIH0gY2F0
Y2goZSkgewogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSwgMCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29u
dHJvbHMuaHRtbAppbmRleCBlYTUwNDk1MzA2OTJlMjZlNDNlMjc5OTI2NGNkOGIyNTBjYzk0ZmRj
Li4zMWY4NmNiYzk2MzU1M2VjNzY4YzQ0YmM3MmFlODc2NzllY2EzOGEyIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGF1c2Vk
LXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBhdXNlZC12aWRlby1oaWRlcy1jb250cm9scy5o
dG1sCkBAIC0xNywxNCArMTcsMTQgQEAKICAgICBmdW5jdGlvbiBoYW5kbGVQYXVzZWQoKSB7CiAg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAg
ICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBv
c3RNZXNzYWdlKCJwYXVzZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgicGF1c2VkIik7CiAgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsgfQogICAgICAgICB9LCAwKTsKICAgICB9CiAgICAgZnVuY3Rpb24gYmVn
YW5BdXRvcGxheWluZygpIHsKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKKyAgICAgICAgICAg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2Fn
ZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy1tdXRlZC12aWRlby1oaWRlcy1jb250cm9s
cy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbAppbmRleCAyZTU3ZGY3
OGIxZmViMDRlODMyZTNkOWYzMWNmOWIyZmEzYWZkZjI3Li4zNDQ4NmUyZTNmZDY3YTVjZDcxNjhj
M2I3NTViMTJmZjAxYjczYzZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy1tdXRlZC12aWRlby1oaWRlcy1jb250
cm9scy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xh
cmdlLXZpZGVvcy1wbGF5aW5nLW11dGVkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwKQEAgLTE1
LDE0ICsxNSwxNCBAQAogICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYmFyIikuc2Ny
b2xsSW50b1ZpZXcoKTsKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
cGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKKyAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgicGxh
eWluZyIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAgICAg
fQogICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxh
eWVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2go
ZSkgewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctdmlkZW8t
a2VlcHMtY29udHJvbHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNvbnRyb2xzLmh0bWwKaW5kZXgg
ZGI3Y2FjNmI5OTE5NDYzMzIzYjMzMzFhYzM4OGJlZTdlYTVjNDUxZi4uYjZmY2Y3YTA1MGM1ZTA2
ZTFlMzY2YmZlNDJkMzE1YWEyMzcwNDc5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctdmlkZW8ta2VlcHMtY29u
dHJvbHMuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
YXJnZS12aWRlb3MtcGxheWluZy12aWRlby1rZWVwcy1jb250cm9scy5odG1sCkBAIC0xNCwxNCAr
MTQsMTQgQEAKICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2JhciIpLnNjcm9sbElu
dG9WaWV3KCk7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0
cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlp
bmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIpOworICAgICAgICAgICAgICAgIHdpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxl
ZCIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAgICAgfQog
ICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVk
Iik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkg
ewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3Bs
YXkuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwKaW5kZXggNzY1MjU0ZDIzZjg4OGE1NTZiM2Q3
Zjg4MWMzNmYwZGU1OTdmMTcwNS4uM2UxNzBjZWQ1ZDI5ZGVhMmUwZDM3YmZlODYxNmZkZWQ1M2Zh
OTM4MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxh
eS5odG1sCkBAIC00LDcgKzQsNyBAQAogICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7
CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAg
ICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVy
LnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsK
ICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evc2tpbm55
LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL3NraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0
bWwKaW5kZXggYmE0OGQ0ZDcyMDk3NmU1MjQ5ODYwZmRhZmQ5M2JkMzlkYmY3ODRhZi4uMjZlZjUz
ZGMyMzRjYzJiZmQzYWMxOTc3ZDkyMjk1MDVmNTA2MGU2ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdp
dGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9za2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCkBAIC0xMSw3ICsxMSw3
IEBACiAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsK
KyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgicGxheWluZyIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAg
ICAgICAgfSwgMCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS93aWRlLWF1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbAppbmRleCAwZWI5YWY2YWM3ZTUzODUxNDI2MjQzNjY4MDQxYzZi
OTRjMjg5NWQ1Li5lYTJjYjUwNjMyMzBhNzZkMzJlNmM2NzVjOThhNTczYTRkZmFjNWVlIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS93aWRlLWF1dG9w
bGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS93aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbApA
QCAtMTEsNyArMTEsNyBAQAogICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdl
KCJwbGF5aW5nIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgICAgIH0gY2F0
Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFj
L1Rlc3RXS1dlYlZpZXdNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzE3M2FkZTRkMTQxNzFhMDFjNjE1MzFi
NDllYzdhOGQyNjcwMTIyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9t
YWMvVGVzdFdLV2ViVmlld01hYy5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFRlc3RXS1dlYlZpZXdNYWNfaAorI2RlZmluZSBUZXN0V0tXZWJWaWV3TWFjX2gKKworI2lt
cG9ydCA8V2ViS2l0L1dlYktpdC5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0o
TUFDKQorCitAaW50ZXJmYWNlIFRlc3RNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1Njcmlw
dE1lc3NhZ2VIYW5kbGVyPgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVzc2FnZTooTlNTdHJp
bmcgKiltZXNzYWdlIGhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcjsKK0BlbmQKKwor
QGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IDogV0tXZWJWaWV3CistICh2b2lkKW1vdXNlRG93bkF0
UG9pbnQ6KE5TUG9pbnQpcG9pbnQ7CistICh2b2lkKXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uOwor
LSAodm9pZClsb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZTsKKy0gKHZvaWQp
dHlwZUNoYXJhY3RlcjooY2hhciljaGFyYWN0ZXI7CistIChOU1N0cmluZyAqKXN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6KE5TU3RyaW5nICopc2NyaXB0OworLSAodm9pZCl3YWl0Rm9yTWVz
c2FnZTooTlNTdHJpbmcgKiltZXNzYWdlOworLSAodm9pZClwZXJmb3JtQWZ0ZXJMb2FkaW5nOihk
aXNwYXRjaF9ibG9ja190KWFjdGlvbnM7CitAZW5kCisKKyNlbmRpZiAvKiBXS19BUElfRU5BQkxF
RCAmJiBQTEFURk9STShNQUMpICovCisKKyNlbmRpZiAvKiBUZXN0V0tXZWJWaWV3TWFjX2ggKi8K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNjOTM3YjRkOWZiMTY5NTExMWMxNjk5NjgwYzVjMDAwOTYxOTBlMmEKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tCkBAIC0wLDAg
KzEsMTM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJUZXN0
V0tXZWJWaWV3TWFjLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpCisK
KyNpbXBvcnQgIlV0aWxpdGllcy5oIgorCisjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CisjaW1w
b3J0IDxDYXJib24vQ2FyYm9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViS2l0UHJpdmF0ZS5oPgor
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW1wbGVtZW50YXRpb24gVGVzdE1lc3NhZ2VI
YW5kbGVyIHsKKyAgICBkaXNwYXRjaF9ibG9ja190IF9oYW5kbGVyOworICAgIE5TU3RyaW5nICpf
bWVzc2FnZTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVzc2FnZTooTlNTdHJpbmcg
KiltZXNzYWdlIGhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcgoreworICAgIGlmICgh
KHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2hhbmRs
ZXIgPSBbaGFuZGxlciBjb3B5XTsKKyAgICBfbWVzc2FnZSA9IG1lc3NhZ2U7CisKKyAgICByZXR1
cm4gc2VsZjsKK30KKworLSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRl
bnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNz
YWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCit7CisgICAgaWYgKFsoTlNTdHJpbmcgKilb
bWVzc2FnZSBib2R5XSBpc0VxdWFsVG9TdHJpbmc6X21lc3NhZ2VdICYmIF9oYW5kbGVyKQorICAg
ICAgICBfaGFuZGxlcigpOworfQorCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJW
aWV3CisKKy0gKHZvaWQpbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludAoreworI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCisgICAgTlNFdmVudFR5cGUg
bW91c2VFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CisjZWxzZQorICAgIE5T
RXZlbnRUeXBlIG1vdXNlRXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEb3duOworI2VuZGlmCisgICAg
W3NlbGYgbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTptb3VzZUV2ZW50VHlw
ZSBsb2NhdGlvbjpOU01ha2VQb2ludChwb2ludC54LCBwb2ludC55KSBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0OltO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjAgcHJlc3N1cmU6MF1dOworfQorCistICh2b2lkKXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uCit7
CisgICAgUmV0YWluUHRyPFRlc3RNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tU
ZXN0TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoTWVzc2FnZTptZXNzYWdlIGhhbmRsZXI6
YWN0aW9uXSk7CisgICAgV0tVc2VyQ29udGVudENvbnRyb2xsZXIqIGNvbnRlbnRDb250cm9sbGVy
ID0gW1tzZWxmIGNvbmZpZ3VyYXRpb25dIHVzZXJDb250ZW50Q29udHJvbGxlcl07CisgICAgW2Nv
bnRlbnRDb250cm9sbGVyIHJlbW92ZVNjcmlwdE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTpAInRlc3RI
YW5kbGVyIl07CisgICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07Cit9CisKKy0gKHZvaWQpbG9hZFRl
c3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWUKK3sKKyAgICBOU1VSTFJlcXVlc3QgKnJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6cGFnZU5hbWUgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFtzZWxmIGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOworfQorCistICh2b2lkKXR5cGVDaGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyIHsK
KyAgICBOU1N0cmluZyAqY2hhcmFjdGVyQXNTdHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIiVjIiAsIGNoYXJhY3Rlcl07CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEyMDAKKyAgICBOU0V2ZW50VHlwZSBrZXlEb3duRXZlbnRUeXBlID0gTlNFdmVu
dFR5cGVLZXlEb3duOworICAgIE5TRXZlbnRUeXBlIGtleVVwRXZlbnRUeXBlID0gTlNFdmVudFR5
cGVLZXlVcDsKKyNlbHNlCisgICAgTlNFdmVudFR5cGUga2V5RG93bkV2ZW50VHlwZSA9IE5TS2V5
RG93bjsKKyAgICBOU0V2ZW50VHlwZSBrZXlVcEV2ZW50VHlwZSA9IE5TS2V5VXA7CisjZW5kaWYK
KyAgICBbc2VsZiBrZXlEb3duOltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6a2V5RG93bkV2ZW50
VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1
cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNo
YXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0
cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKKyAgICBbc2VsZiBrZXlVcDpb
TlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleVVwRXZlbnRUeXBlIGxvY2F0aW9uOk5TWmVyb1Bv
aW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRv
d051bWJlcjowIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcgY2hhcmFj
dGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlD
b2RlOmNoYXJhY3Rlcl1dOworfQorCistIChOU1N0cmluZyAqKXN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6KE5TU3RyaW5nICopc2NyaXB0Cit7CisgICAgX19ibG9jayBib29sIGlzV2FpdGlu
Z0ZvckphdmFTY3JpcHQgPSBmYWxzZTsKKyAgICBfX2Jsb2NrIE5TU3RyaW5nICpldmFsUmVzdWx0
ID0gbmlsOworICAgIFtzZWxmIGV2YWx1YXRlSmF2YVNjcmlwdDpzY3JpcHQgY29tcGxldGlvbkhh
bmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKQorICAgIHsKKyAgICAgICAgZXZhbFJl
c3VsdCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAiLCByZXN1bHRdOworICAgICAg
ICBpc1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgRVhQRUNUX1RSVUUoIWVy
cm9yKTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNXYWl0aW5n
Rm9ySmF2YVNjcmlwdCk7CisgICAgcmV0dXJuIGV2YWxSZXN1bHQ7Cit9CisKKy0gKHZvaWQpd2Fp
dEZvck1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZQoreworICAgIF9fYmxvY2sgYm9vbCBpc0Rv
bmVXYWl0aW5nID0gZmFsc2U7CisgICAgW3NlbGYgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2Fn
ZTptZXNzYWdlIGFjdGlvbjpeKCkKKyAgICB7CisgICAgICAgIGlzRG9uZVdhaXRpbmcgPSB0cnVl
OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lV2FpdGluZyk7
Cit9CisKKy0gKHZvaWQpcGVyZm9ybUFmdGVyTG9hZGluZzooZGlzcGF0Y2hfYmxvY2tfdClhY3Rp
b25zIHsKKyAgICBUZXN0TWVzc2FnZUhhbmRsZXIgKmhhbmRsZXIgPSBbW1Rlc3RNZXNzYWdlSGFu
ZGxlciBhbGxvY10gaW5pdFdpdGhNZXNzYWdlOkAibG9hZGVkIiBoYW5kbGVyOmFjdGlvbnNdOwor
ICAgIE5TU3RyaW5nICpvbmxvYWRTY3JpcHQgPSBAIndpbmRvdy5vbmxvYWQgPSAoKSA9PiB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5vbmxvYWRIYW5kbGVyLnBvc3RNZXNzYWdlKCdsb2Fk
ZWQnKSI7CisgICAgV0tVc2VyU2NyaXB0ICpzY3JpcHQgPSBbW1dLVXNlclNjcmlwdCBhbGxvY10g
aW5pdFdpdGhTb3VyY2U6b25sb2FkU2NyaXB0IGluamVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJhbWVPbmx5Ok5PXTsKKworICAgIFdL
VXNlckNvbnRlbnRDb250cm9sbGVyKiBjb250ZW50Q29udHJvbGxlciA9IFtbc2VsZiBjb25maWd1
cmF0aW9uXSB1c2VyQ29udGVudENvbnRyb2xsZXJdOworICAgIFtjb250ZW50Q29udHJvbGxlciBh
ZGRVc2VyU2NyaXB0OnNjcmlwdF07CisgICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFNjcmlwdE1l
c3NhZ2VIYW5kbGVyOmhhbmRsZXIgbmFtZTpAIm9ubG9hZEhhbmRsZXIiXTsKK30KKworQGVuZAor
CisjZW5kaWYgLyogV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKSAqLwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289031</attachid>
            <date>2016-09-15 20:42:04 -0700</date>
            <delta_ts>2016-09-15 23:14:56 -0700</delta_ts>
            <desc>New unit test, and addresses Tim&apos;s review comments.</desc>
            <filename>bug-162009-20160915203925.patch</filename>
            <type>text/plain</type>
            <size>85317</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzBlNWFmZTEwNTc1ZGRj
N2E1ZDllYzEzY2E4YjIzNDFjZTY1Mzk1NC4uNTZmNzgxNzk0ZjcyYmI2MTAwM2Q5MzYzM2U4MjY2
Y2EwNTAxMjRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDE2LTA5LTE1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEluc2VydGluZyBh
IHNwYWNlIGFmdGVyIGluc2VydGluZyBhbiBhY2NlcHRlZCBjYW5kaWRhdGUgc2Nyb2xscyB0aGUg
ZG9jdW1lbnQgYW5kIGNhdXNlcyBhIGZsaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjAwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgw
ODYyMzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWZ0ZXIgaW5zZXJ0aW5nIGEgdGV4dCBjYW5kaWRhdGUsIGlmIHRoZSBjYW5kaWRhdGUgZW5kZWQg
d2l0aCBhIHNvZnQgc3BhY2UsIHRoZSBuZXh0IHNwYWNlIHdlIGluc2VydCBzaG91bGQganVzdAor
ICAgICAgICByZXBsYWNlIHRoZSBzb2Z0IHNwYWNlLiBUaGlzIGN1cnJlbnRseSB3b3JrcyBiZWNh
dXNlIHdlIGxlYXZlIHRoZSB0ZXh0IGluc2VydGlvbiBvdXQgb2YgdGhlIGxpc3Qgb2YKKyAgICAg
ICAgS2V5cHJlc3NDb21tYW5kcyBzZW50IHRvIHRoZSB3ZWIgcHJvY2VzcyBhbmQgaW5zdGVhZCBy
ZXBsYWNlIHRoZSBzb2Z0IHNwYWNlIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMuCisgICAg
ICAgIEhvd2V2ZXIsIHRoaXMgbWVhbnMgd2hlbiB0aGUgd2ViIHByb2Nlc3MgaGFuZGxlcyB0aGlz
IGtleWRvd24gZXZlbnQsIHRoZSBjdXJyZW50IGVkaXRvciB3aWxsIG5vdCBoYW5kbGUgaXQsCisg
ICAgICAgIHNpbmNlIHRoZSBsaXN0IG9mIGtleSBjb21tYW5kcyBpcyBlbXB0eSBkZXNwaXRlIHRo
ZSB0ZXh0IGFuZCB1bm1vZGlmaWVkIHRleHQgYmVpbmcgbm9uLWVtcHR5LgorCisgICAgICAgIFRv
IGZpeCB0aGlzLCB3aGVuIHNlbmRpbmcga2V5ZG93biBvciBrZXl1cCBldmVudHMgd2hlcmUgd2Ug
cmVwbGFjZSBhIHNvZnQgc3BhY2UsIHdlIHNldCB0aGUga2V5IGV2ZW50J3MgdGV4dCB0bworICAg
ICAgICBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiBhIHNwYWNlLiBUaGlzIGFsbG93cyB1cyB0
byByZXR1cm4gZWFybHkgaW4gRXZlbnRIYW5kbGVyOjprZXlFdmVudCBhbmQgYXZvaWQgdGhlCisg
ICAgICAgIGNvZGVwYXRoIHRoYXQgdHJpZXMgdG8gaW5zZXJ0IHRleHQgaW50byB0aGUgY3VycmVu
dCBlZGl0b3IgYW5kIChpbiB0aGUgY2FzZSBvZiBpbnNlcnRpbmcgYSAnICcpIHNjcm9sbHMgdGhl
CisgICAgICAgIGRvY3VtZW50IGlmIG5lY2Vzc2FyeS4gU2luY2Ugd2UndmUgYWxyZWFkeSBoYW5k
bGVkIHRleHQgaW5zZXJ0aW9uIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMsIHRoZXJlIGlz
IG5vIG5lZWQKKyAgICAgICAgdG8gYWxzbyBkaXNwYXRjaCB0aGUga2V5cHJlc3MgdG8gdGhlIGVk
aXRvci4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGZsaWNr
ZXJpbmcgaW4gdGhlIGNhbmRpZGF0ZXMgVUkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgd2UncmUgYXN5
bmNocm9ub3VzbHkKKyAgICAgICAgcmVwbGFjaW5nIHRoZSBsYXN0IHNvZnQgc3BhY2UuIER1cmlu
ZyB0aGlzIG9wZXJhdGlvbiwgd2Ugc2VsZWN0IHRoZSByYW5nZSBvZiB0aGUgc29mdCBzcGFjZSBh
bmQgdGhlbiBpbnNlcnQgdGhlCisgICAgICAgIG5ldyB0ZXh0LiBUaGlzIGNhdXNlcyBhIG1vbWVu
dGFyeSByYW5nZSBzZWxlY3Rpb24gd2hpY2ggdGhlIHdlYiBwcm9jZXNzIG5vdGlmaWVzIHRoZSBV
SSBwcm9jZXNzIGFib3V0LCBwcm9tcHRpbmcKKyAgICAgICAgdXMgdG8gaGlkZSB0aGUgY2FuZGlk
YXRlcyBsaXN0LiBUbyBhZGRyZXNzIHRoaXMsIHdlIHB1dCBndWFyZHMgYXJvdW5kIHRoaXMgcHJv
Y2VzcyBvZiBhc3luY2hyb25vdXMgdGV4dAorICAgICAgICBpbnNlcnRpb24gYW5kIG1ha2Ugc3Vy
ZSB0aGF0IHdlIGRvbid0IHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY2FuZGlkYXRlcyBs
aXN0IGR1cmluZyB0aGlzIHRpbWUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIDMgbmV3IFdl
YktpdCBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dC5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaDoKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6dGV4
dEZyb21FdmVudCk6CisgICAgICAgIChXZWJLaXQ6OnVubW9kaWZpZWRUZXh0RnJvbUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5Ol0pOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9o
YW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2U6XSk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpp
c0luc2VydGluZ1RleHRBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjp3aWxsSW5zZXJ0VGV4dEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmRpZEluc2VydFRleHRBc3luY2hyb25vdXNseSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
Zm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6ZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6aW5zZXJ0VGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJm
b3JtS2V5RXF1aXZhbGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlVcCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlEb3duKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRJbnNlcnRUZXh0QXN5bmMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6Omluc2VydFRleHRBc3luYyk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjp3aWxsSW5zZXJ0VGV4dEFzeW5jKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmRpZEluc2VydFRleHRBc3luYyk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp3aWxsSW5zZXJ0
VGV4dEFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEluc2VydFRl
eHRBc3luYyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbnNlcnRUZXh0QXN5bmMpOgorCiAyMDE2LTA5LTE1ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWN0dWFsbHkg
YXNzaWduIHRoZSBkZWNvZGVkIGVudW0gdmFsdWUgdG8gdGhlIG91dHB1dCB2YWx1ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKaW5kZXggMjNjYzc0
YTVjODgxODRhNjc4Mjg2MDczZTgyNmQ0MGQ4ZTcyZDNlYi4uMjJjYTYxZTM0YzhmYmE4YTE0Mjcz
ZTA2M2NmNDNkYTU1MDk1MWE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05h
dGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudC5oCkBAIC02MCw3ICs2MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
Y2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCA6IHB1YmxpYyBXZWJLZXlib2FyZEV2ZW50IHsK
IHB1YmxpYzoKICNpZiBVU0UoQVBQS0lUKQotICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoTlNF
dmVudCAqLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiYpOworICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAq
LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBib29sIHJlcGxhY2VzU29mdFNwYWNlLCBjb25z
dCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYpOwogI2VsaWYgUExBVEZPUk0oR1RL
KQogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dCYpOwogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoR2RrRXZlbnQqLCBjb25zdCBXZWJDb3Jl
OjpDb21wb3NpdGlvblJlc3VsdHMmLCBJbnB1dE1ldGhvZEZpbHRlcjo6RXZlbnRGYWtlZEZvckNv
bXBvc2l0aW9uLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbQppbmRleCBh
ZmIzYjYwNzEwYzZhYmRhOGVjNjY4ZGNmYjU1ZjVlYWFjZmIyZTdmLi42ZjU5Y2JiNDM4MjgzMmYw
NTI3YzcxNWVlZDZjYWU3MjA2MzJkYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL05hdGl2ZVdlYktleWJvYXJkRXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tCkBAIC0zNSw4ICszNSw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwg
Ym9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4m
IGNvbW1hbmRzKQotICAgIDogV2ViS2V5Ym9hcmRFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykp
CitOYXRpdmVXZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQg
KmV2ZW50LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBib29sIHJlcGxhY2VzU29mdFNwYWNl
LCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpCisgICAgOiBXZWJLZXli
b2FyZEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChldmVudCwg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIHJlcGxhY2VzU29mdFNwYWNlLCBjb21tYW5kcykpCiAgICAg
LCBtX25hdGl2ZUV2ZW50KGV2ZW50KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
V2ViRXZlbnRGYWN0b3J5LmgKaW5kZXggNTk5OTVmODczZjQzNDI5NGE0ODg0MjY1NTVmMWE2ZmY3
NmRiM2NkNS4uYmU4NzJjZWI2OGE1YWNjZjdiYzZiZmFiZDIxZDIzNGRkZDk2NDI2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oCkBAIC00NCw3ICs0NCw3
IEBAIHB1YmxpYzoKICNpZiBVU0UoQVBQS0lUKQogICAgIHN0YXRpYyBXZWJNb3VzZUV2ZW50IGNy
ZWF0ZVdlYk1vdXNlRXZlbnQoTlNFdmVudCAqLCBOU0V2ZW50ICpsYXN0UHJlc3N1cmVFdmVudCwg
TlNWaWV3ICp3aW5kb3dWaWV3KTsKICAgICBzdGF0aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJX
aGVlbEV2ZW50KE5TRXZlbnQgKiwgTlNWaWV3ICp3aW5kb3dWaWV3KTsKLSAgICBzdGF0aWMgV2Vi
S2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKiwgYm9vbCBoYW5k
bGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4m
KTsKKyAgICBzdGF0aWMgV2ViS2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5T
RXZlbnQgKiwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgYm9vbCByZXBsYWNlc1NvZnRTcGFj
ZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mKTsKICAgICBzdGF0aWMg
Ym9vbCBzaG91bGRCZUhhbmRsZWRBc0NvbnRleHRDbGljayhjb25zdCBXZWJDb3JlOjpQbGF0Zm9y
bU1vdXNlRXZlbnQmKTsKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggNWJkYmM4ZmQ2ZGUxODkxMDU5
NDQ1ZjQ0NDU3MWFmM2I2Y2E3NDI4Ni4uNWYzYmE5MjhiZmIxOGVhYmJjYzU1YTU4NTVlN2E1NjY2
OWFiYTNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZh
Y3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3Rvcnku
bW0KQEAgLTIzNiw4ICsyMzYsMTAgQEAgc3RhdGljIFdlYldoZWVsRXZlbnQ6OlBoYXNlIG1vbWVu
dHVtUGhhc2VGb3JFdmVudChOU0V2ZW50ICpldmVudCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
V2ViV2hlZWxFdmVudDo6UGhhc2U+KHBoYXNlKTsKIH0KIAotc3RhdGljIGlubGluZSBTdHJpbmcg
dGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCkKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIHRleHRG
cm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2UpCiB7CisgICAg
aWYgKHJlcGxhY2VzU29mdFNwYWNlKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpZiAoW2V2ZW50IHR5cGVdID09
IE5TRmxhZ3NDaGFuZ2VkKQpAQCAtMjQ2LDggKzI0OCwxMCBAQCBzdGF0aWMgaW5saW5lIFN0cmlu
ZyB0ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogICAgIHJldHVybiBTdHJpbmcoW2V2ZW50
IGNoYXJhY3RlcnNdKTsKIH0KIAotc3RhdGljIGlubGluZSBTdHJpbmcgdW5tb2RpZmllZFRleHRG
cm9tRXZlbnQoTlNFdmVudCogZXZlbnQpCitzdGF0aWMgaW5saW5lIFN0cmluZyB1bm1vZGlmaWVk
VGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSkKIHsK
KyAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygp
OwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGlmIChbZXZlbnQgdHlw
ZV0gPT0gTlNGbGFnc0NoYW5nZWQpCkBAIC00NTcsMTEgKzQ2MSwxMSBAQCBXZWJXaGVlbEV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChOU0V2ZW50ICpldmVudCwgTlNW
aWV3ICp3aW5kbwogICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgSW50
UG9pbnQocG9zaXRpb24pLCBJbnRQb2ludChnbG9iYWxQb3NpdGlvbiksIEZsb2F0U2l6ZShkZWx0
YVgsIGRlbHRhWSksIEZsb2F0U2l6ZSh3aGVlbFRpY2tzWCwgd2hlZWxUaWNrc1kpLCBncmFudWxh
cml0eSwgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBwaGFzZSwgbW9tZW50dW1QaGFzZSwg
aGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgc2Nyb2xsQ291bnQsIHVuYWNjZWxlcmF0ZWRTY3Jv
bGxpbmdEZWx0YSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApOwogfQogCi1XZWJLZXlib2FyZEV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwg
Ym9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNz
Q29tbWFuZD4mIGNvbW1hbmRzKQorV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGFuZGxlZEJ5SW5wdXRN
ZXRob2QsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2UsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+JiBjb21tYW5kcykKIHsKICAgICBXZWJFdmVudDo6VHlwZSB0eXBlICAgICAg
ICAgICAgID0gaXNLZXlVcEV2ZW50KGV2ZW50KSA/IFdlYkV2ZW50OjpLZXlVcCA6IFdlYkV2ZW50
OjpLZXlEb3duOwotICAgIFN0cmluZyB0ZXh0ICAgICAgICAgICAgICAgICAgICAgPSB0ZXh0RnJv
bUV2ZW50KGV2ZW50KTsKLSAgICBTdHJpbmcgdW5tb2RpZmllZFRleHQgICAgICAgICAgID0gdW5t
b2RpZmllZFRleHRGcm9tRXZlbnQoZXZlbnQpOworICAgIFN0cmluZyB0ZXh0ICAgICAgICAgICAg
ICAgICAgICAgPSB0ZXh0RnJvbUV2ZW50KGV2ZW50LCByZXBsYWNlc1NvZnRTcGFjZSk7CisgICAg
U3RyaW5nIHVubW9kaWZpZWRUZXh0ICAgICAgICAgICA9IHVubW9kaWZpZWRUZXh0RnJvbUV2ZW50
KGV2ZW50LCByZXBsYWNlc1NvZnRTcGFjZSk7CiAgICAgU3RyaW5nIGtleUlkZW50aWZpZXIgICAg
ICAgICAgICA9IGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChldmVudCk7CiAgICAgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSAgICAgICA9IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQoZXZlbnQp
OwogICAgIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSAgICAgICAgPSBbZXZlbnQga2V5Q29kZV07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmlu
ZGV4IDJiODQ0OTg2MmE0Yjc0ZDg1NjgxODE0MWE3YmM5NzhkMGM0YTkzYjYuLjhmNTk3M2JjMmEy
MTc3ZGEyMWFlZjY3Mjc3NjRmNWQ1MTZjZWI5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC00NTY0LDYgKzQ1NjQsMjggQEAgLSAo
dm9pZClfaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlOihOU1N0cmluZyAqKWlkZW50
aWZpZXIKIHsKICAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMuCiB9CisKKy0gKHZvaWQp
X2hhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOihOU1RleHRDaGVja2luZ1Jlc3VsdCAqKWNhbmRpZGF0
ZQoreworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCisgICAg
X2ltcGwtPmhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7CisjZW5kaWYKK30KKwor
LSAodm9pZClfZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUKK3sKKyAgICAvLyBPdmVycmlkZGVu
IGJ5IHN1YmNsYXNzZXMuCit9CisKKy0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RWaXNp
YmlsaXR5OihCT09MKXZpc2libGUKK3sKKyAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMu
Cit9CisKKy0gKHZvaWQpX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXMKK3sKKyAgICBfaW1wbC0+Zm9y
Y2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3RpbmcoKTsKK30KICNlbmRpZiAvLyBQTEFURk9STShN
QUMpCiAKIC8vIEV4ZWN1dGUgdGhlIHN1cHBsaWVkIGJsb2NrIGFmdGVyIHRoZSBuZXh0IHRyYW5z
YWN0aW9uIGZyb20gdGhlIFdlYlByb2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDNjMzQzM2MzZDEwZTcx
YTYxYWRmYWNjMzlmZTViZDA4MTZlYWE4MTcuLjhlY2EwMjA3NGU1NTg5NDdmNmZiODRmZmQ0MWZm
MTVhZTI4M2NiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0yNzMsNiArMjczLDEwIEBAIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpKTsKIC0gKHZvaWQpX3JlcXVlc3RDb250cm9s
bGVkRWxlbWVudElEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZv
aWQpX2hhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZTooTlNTdHJpbmcgKilpZGVudGlm
aWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX2hhbmRs
ZUFjY2VwdGVkQ2FuZGlkYXRlOihOU1RleHRDaGVja2luZ1Jlc3VsdCAqKWNhbmRpZGF0ZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9kaWRIYW5kbGVBY2Nl
cHRlZENhbmRpZGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CistICh2
b2lkKV9mb3JjZVJlcXVlc3RDYW5kaWRhdGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpKTsKKy0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5OihCT09M
KXZpc2libGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAK
IC0gKHZvaWQpX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlOih2b2lkICheKSh2b2lkKSl1
cGRhdGVCbG9jayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDQ5OTQz
ZjE2Y2I1ZWRjMzVlOWNhNzY5NTY3NmRhODMwN2VkODg0NGYuLmI1ZDMwYmFjYWU0N2FhYWYzNjgy
ODc0MjBkMzEyNmQ4YjQxODBhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oCkBAIC04NCw2ICs4NCw4IEBAIE9CSkNfQ0xBU1MgX1dLVGh1bWJuYWls
VmlldzsKIEBvcHRpb25hbAogLSAodm9pZClfd2ViX2RpZEFkZE1lZGlhQ29udHJvbHNNYW5hZ2Vy
OihpZCljb250cm9sc01hbmFnZXI7CiAtICh2b2lkKV93ZWJfZGlkUmVtb3ZlTWVkaWFDb250cm9s
c01hbmFnZXI7CistICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTsKKy0gKHZvaWQp
X2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5OihCT09MKXZpc2libGU7CiAKIEBlbmQK
IApAQCAtMzU5LDYgKzM2MSwxMCBAQCBwdWJsaWM6CiAgICAgTlNTdHJpbmcgKnN0cmluZ0ZvclRv
b2xUaXAoTlNUb29sVGlwVGFnIHRhZyk7CiAgICAgdm9pZCB0b29sVGlwQ2hhbmdlZChjb25zdCBT
dHJpbmcmIG9sZFRvb2xUaXAsIGNvbnN0IFN0cmluZyYgbmV3VG9vbFRpcCk7CiAKKyAgICBib29s
IGlzSW5zZXJ0aW5nVGV4dEFzeW5jaHJvbm91c2x5KCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5n
QXN5bmNocm9ub3VzVGV4dEluc2VydGlvbkNvdW50OyB9CisgICAgdm9pZCB3aWxsSW5zZXJ0VGV4
dEFzeW5jaHJvbm91c2x5KCkgeyBtX3BlbmRpbmdBc3luY2hyb25vdXNUZXh0SW5zZXJ0aW9uQ291
bnQrKzsgfQorICAgIHZvaWQgZGlkSW5zZXJ0VGV4dEFzeW5jaHJvbm91c2x5KCkgeyBtX3BlbmRp
bmdBc3luY2hyb25vdXNUZXh0SW5zZXJ0aW9uQ291bnQtLTsgfQorCiAgICAgdm9pZCBzZXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKENBTGF5ZXIgKik7CiAgICAgQ0FMYXllciAqYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdExheWVy
LmdldCgpOyB9CiAKQEAgLTQ3OCw2ICs0ODQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByaWdodE1v
dXNlVXAoTlNFdmVudCAqKTsKIAogICAgIHZvaWQgdXBkYXRlV2ViVmlld0ltcGxBZGRpdGlvbnMo
KTsKKyAgICB2b2lkIGZvcmNlUmVxdWVzdENhbmRpZGF0ZXNGb3JUZXN0aW5nKCk7CiAgICAgYm9v
bCBzaG91bGRSZXF1ZXN0Q2FuZGlkYXRlcygpIGNvbnN0OwogICAgIHZvaWQgc2hvd0NhbmRpZGF0
ZXMoTlNBcnJheSAqY2FuZGlkYXRlcywgTlNTdHJpbmcgKiwgTlNSZWN0IHJlY3RPZlR5cGVkU3Ry
aW5nLCBOU1JhbmdlIHNlbGVjdGVkUmFuZ2UsIE5TVmlldyAqLCB2b2lkICheY29tcGxldGlvbkhh
bmRsZXIpKE5TVGV4dENoZWNraW5nUmVzdWx0ICphY2NlcHRlZENhbmRpZGF0ZSkpOwogICAgIHZv
aWQgd2ViVmlld0ltcGxBZGRpdGlvbnNXaWxsRGVzdHJveVZpZXcoKTsKQEAgLTY0OSw2ICs2NTYs
OCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0hhbmRsaW5nQWNjZXB0ZWRDYW5kaWRhdGUgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNN
YW5hZ2VyIHsgZmFsc2UgfTsKICAgICBib29sIG1fZWRpdGFibGVFbGVtZW50SXNGb2N1c2VkIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faXNUZXh0SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlIHsg
ZmFsc2UgfTsKKyAgICB1bnNpZ25lZCBtX3BlbmRpbmdBc3luY2hyb25vdXNUZXh0SW5zZXJ0aW9u
Q291bnQgeyAwIH07CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggNjUxNjllZDkzZTRk
MDI1MDNmZjEzNDVmMjBkZTA5MzA5NGY4MzBhMS4uY2U3YTgzZTEwYmVkNTUwZWE0N2FlNDA0Y2U2
NWY4Yzk1Y2ZiNjU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQpAQCAtNDQxLDYgKzQ0MSwxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVX
ZWJWaWV3SW1wbEFkZGl0aW9ucygpCiB7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OmZvcmNlUmVx
dWVzdENhbmRpZGF0ZXNGb3JUZXN0aW5nKCkKK3sKK30KKwogYm9vbCBXZWJWaWV3SW1wbDo6c2hv
dWxkUmVxdWVzdENhbmRpZGF0ZXMoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKQEAgLTYy
MCw3ICs2MjQsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcigpCiAg
ICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBO
U0tleVVwKQogICAgICAgICAgICAga2V5Ym9hcmRFdmVudCA9IGV2ZW50OwogI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAotICAgICAgICBtX3BhZ2UtPnNldEluaXRpYWxGb2N1cyhkaXJlY3Rp
b24gPT0gTlNTZWxlY3RpbmdOZXh0LCBrZXlib2FyZEV2ZW50ICE9IG5pbCwgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50LCBmYWxzZSwgeyB9KSwgW10oV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yKSB7IH0pOworICAgICAgICBtX3BhZ2UtPnNldEluaXRpYWxGb2N1cyhkaXJl
Y3Rpb24gPT0gTlNTZWxlY3RpbmdOZXh0LCBrZXlib2FyZEV2ZW50ICE9IG5pbCwgTmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50LCBmYWxzZSwgZmFsc2UsIHsgfSksIFtdKFdlYktp
dDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9
CkBAIC0yNDM2LDYgKzI0NDAsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaWRDaGFuZ2VDb250ZW50
U2l6ZShDR1NpemUgbmV3U2l6ZSkKIHZvaWQgV2ViVmlld0ltcGw6OmRpZEhhbmRsZUFjY2VwdGVk
Q2FuZGlkYXRlKCkKIHsKICAgICBtX2lzSGFuZGxpbmdBY2NlcHRlZENhbmRpZGF0ZSA9IGZhbHNl
OworCisgICAgaWYgKFttX3ZpZXcgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfZGlkSGFu
ZGxlQWNjZXB0ZWRDYW5kaWRhdGUpXSkKKyAgICAgICAgW21fdmlldyBfZGlkSGFuZGxlQWNjZXB0
ZWRDYW5kaWRhdGVdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp2aWRlb0NvbnRyb2xzTWFuYWdl
ckRpZENoYW5nZSgpCkBAIC0zNTY3LDExICszNTc0LDExIEBAIHZvaWQgV2ViVmlld0ltcGw6Omlu
c2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpCiAgICAgfSBlbHNl
CiAgICAgICAgIHRleHQgPSBzdHJpbmc7CiAKLSAgICBCT09MIG5lZWRUb1JlbW92ZVNvZnRTcGFj
ZSA9IE5POworICAgIG1faXNUZXh0SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlID0gZmFsc2U7
CiAjaWYgSEFWRShBRFZBTkNFRF9TUEVMTF9DSEVDS0lORykKICAgICBpZiAobV9zb2Z0U3BhY2VS
YW5nZS5sb2NhdGlvbiAhPSBOU05vdEZvdW5kICYmIChyZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9u
ID09IE5TTWF4UmFuZ2UobV9zb2Z0U3BhY2VSYW5nZSkgfHwgcmVwbGFjZW1lbnRSYW5nZS5sb2Nh
dGlvbiA9PSBOU05vdEZvdW5kKSAmJiByZXBsYWNlbWVudFJhbmdlLmxlbmd0aCA9PSAwICYmIFtb
TlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBkZWxldGVzQXV0b3NwYWNlQmVmb3Jl
U3RyaW5nOnRleHQgbGFuZ3VhZ2U6bmlsXSkgewogICAgICAgICByZXBsYWNlbWVudFJhbmdlID0g
bV9zb2Z0U3BhY2VSYW5nZTsKLSAgICAgICAgbmVlZFRvUmVtb3ZlU29mdFNwYWNlID0gWUVTOwor
ICAgICAgICBtX2lzVGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA9IHRydWU7CiAgICAg
fQogI2VuZGlmCiAgICAgbV9zb2Z0U3BhY2VSYW5nZSA9IE5TTWFrZVJhbmdlKE5TTm90Rm91bmQs
IDApOwpAQCAtMzU4Miw3ICszNTg5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChp
ZCBzdHJpbmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkKICAgICAvLyAtIElmIGl0J3Mgc2Vu
dCBvdXRzaWRlIG9mIGtleWJvYXJkIGV2ZW50IHByb2Nlc3NpbmcgKGUuZy4gZnJvbSBDaGFyYWN0
ZXIgVmlld2VyLCBvciB3aGVuIGNvbmZpcm1pbmcgYW4gaW5saW5lIGlucHV0IGFyZWEgd2l0aCBh
IG1vdXNlKSwKICAgICAvLyB0aGVuIHdlIGFsc28gZXhlY3V0ZSBpdCBpbW1lZGlhdGVseSwgYXMg
dGhlcmUgd2lsbCBiZSBubyBvdGhlciBjaGFuY2UuCiAgICAgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4qIGtleXByZXNzQ29tbWFuZHMgPSBtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFu
ZHM7Ci0gICAgaWYgKGtleXByZXNzQ29tbWFuZHMgJiYgIW5lZWRUb1JlbW92ZVNvZnRTcGFjZSkg
eworICAgIGlmIChrZXlwcmVzc0NvbW1hbmRzICYmICFtX2lzVGV4dEluc2VydGlvblJlcGxhY2lu
Z1NvZnRTcGFjZSkgewogICAgICAgICBBU1NFUlQocmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlvbiA9
PSBOU05vdEZvdW5kKTsKICAgICAgICAgV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kIGNvbW1hbmQo
Imluc2VydFRleHQ6IiwgdGV4dCk7CiAgICAgICAgIGtleXByZXNzQ29tbWFuZHMtPmFwcGVuZChj
b21tYW5kKTsKQEAgLTM1OTYsNyArMzYwMyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Omluc2VydFRl
eHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpCiAgICAgaWYgKCFkaWN0YXRp
b25BbHRlcm5hdGl2ZXMuaXNFbXB0eSgpKQogICAgICAgICBtX3BhZ2UtPmluc2VydERpY3RhdGVk
VGV4dEFzeW5jKGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgZGljdGF0aW9uQWx0ZXJuYXRp
dmVzLCByZWdpc3RlclVuZG9Hcm91cCk7CiAgICAgZWxzZQotICAgICAgICBtX3BhZ2UtPmluc2Vy
dFRleHRBc3luYyhldmVudFRleHQsIHJlcGxhY2VtZW50UmFuZ2UsIHJlZ2lzdGVyVW5kb0dyb3Vw
LCBuZWVkVG9SZW1vdmVTb2Z0U3BhY2UgPyBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG86OlBhcmFn
cmFwaCA6IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbzo6RWRpdGFibGVSb290KTsKKyAgICAgICAg
bV9wYWdlLT5pbnNlcnRUZXh0QXN5bmMoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlLCByZWdp
c3RlclVuZG9Hcm91cCwgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgPyBFZGl0
aW5nUmFuZ2VJc1JlbGF0aXZlVG86OlBhcmFncmFwaCA6IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVU
bzo6RWRpdGFibGVSb290KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2VsZWN0ZWRSYW5nZVdp
dGhDb21wbGV0aW9uSGFuZGxlcih2b2lkKF5jb21wbGV0aW9uSGFuZGxlclB0cikoTlNSYW5nZSBz
ZWxlY3RlZFJhbmdlKSkKQEAgLTM4NzAsNyArMzg3Nyw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBl
cmZvcm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIC8vIEZJWE1FOiBXaHkgaXMg
dGhlIGZpcnN0UmVzcG9uZGVyIGNoZWNrIG5lZWRlZD8KICAgICBpZiAobV92aWV3ID09IG1fdmll
dy53aW5kb3cuZmlyc3RSZXNwb25kZXIpIHsKICAgICAgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZl
bnQsIF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6Oktl
eXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7Ci0gICAgICAgICAgICBtX3BhZ2UtPmhhbmRsZUtl
eWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRN
ZXRob2QsIGNvbW1hbmRzKSk7CisgICAgICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZl
bnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGZh
bHNlLCBjb21tYW5kcykpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9
CkBAIC0zODg1LDkgKzM4OTIsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6a2V5VXAoTlNFdmVudCAq
ZXZlbnQpCiAKICAgICBMT0coVGV4dElucHV0LCAia2V5VXA6JXAgJUAiLCBldmVudCwgZXZlbnQp
OwogCisgICAgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgPSBmYWxzZTsKICAg
ICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKICAgICAg
ICAgQVNTRVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0VtcHR5KCkpOwot
ICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgICAgIG1fcGFn
ZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5k
bGVkQnlJbnB1dE1ldGhvZCwgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UsIGNv
bW1hbmRzKSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5MTIsOSArMzkyMCwxMCBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjprZXlEb3duKE5TRXZlbnQgKmV2ZW50KQogICAgICAgICByZXR1cm47CiAgICAgfQog
CisgICAgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgPSBmYWxzZTsKICAgICBp
bnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25z
dCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKICAgICAgICAg
QVNTRVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0VtcHR5KCkpOwotICAg
ICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChl
dmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgICAgIG1fcGFnZS0+
aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVk
QnlJbnB1dE1ldGhvZCwgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UsIGNvbW1h
bmRzKSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5MzAsNyArMzkzOSw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7Ci0gICAgICAg
IG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50
LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgbV9wYWdlLT5oYW5k
bGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBmYWxzZSwgY29tbWFuZHMpKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMWIyNGRiMjc1ZThjZTBiMjBiNmNlZTRmMzA1YjVi
ZjU5YzgxZWE3ZC4uNDg3NzczMTQ5NzAxNmZjNmE2MjIxNDgzZTdkNmNkODRlY2UwMzY5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xODAsNiArMTgwLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVy
KExheWVyT3JWaWV3ICopID0gMDsKICAgICB2aXJ0dWFsIExheWVyT3JWaWV3ICphY2NlbGVyYXRl
ZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxWaWV3U25hcHNob3Q+IHRha2VWaWV3U25hcHNob3QoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHdpbGxJbnNlcnRUZXh0QXN5bmMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEluc2VydFRl
eHRBc3luYygpID0gMDsKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgIHZpcnR1
YWwgdm9pZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdl
Ykdlc3R1cmVFdmVudCYpID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCA0YmU5M2YwN2YyNWEyZWY1MTFhMjNhOTNmN2JmNTIwYjE3OWVj
NmMwLi42OWEyMjViNzRmOTFlNmU5YjFmZjFlYmVkNmM1ZTFiNzM2OWI2MWQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjEzOSwxMSArNjEzOSwxNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6YWRkTUlNRVR5cGVXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVy
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiAKICNpZiBQTEFURk9STShDT0NPQSkKIAordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEluc2VydFRleHRBc3luYygpCit7CisgICAgbV9wYWdlQ2xpZW50LmRp
ZEluc2VydFRleHRBc3luYygpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6aW5zZXJ0VGV4dEFz
eW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVudFJh
bmdlLCBib29sIHJlZ2lzdGVyVW5kb0dyb3VwLCBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8gZWRp
dGluZ1JhbmdlSXNSZWxhdGl2ZVRvKQogewogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICBy
ZXR1cm47CiAKKyAgICBtX3BhZ2VDbGllbnQud2lsbEluc2VydFRleHRBc3luYygpOwogICAgIHBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmModGV4dCwgcmVw
bGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXAsIHN0YXRpY19jYXN0PHVpbnQzMl90Pihl
ZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pKSwgbV9wYWdlSUQpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmZhNTk3NWIzNTgyMjVkNzk3M2M0M2UwMzBk
MzllOGZhODhkYjM0YS4uMzQzMzg2MTNiODZiOWRkOGJjYmE0MDg1MTIwMGUwMzkwMDY4YjdlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTYzLDYgKzU2Myw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIo
TGF5ZXJPclZpZXcqKTsKICAgICBMYXllck9yVmlldyogYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jv
b3RMYXllcigpIGNvbnN0OwogCisgICAgdm9pZCB3aWxsSW5zZXJ0VGV4dEFzeW5jKCk7CisgICAg
dm9pZCBkaWRJbnNlcnRUZXh0QXN5bmMoKTsKICAgICB2b2lkIGluc2VydFRleHRBc3luYyhjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbnRSYW5nZSwgYm9v
bCByZWdpc3RlclVuZG9Hcm91cCA9IGZhbHNlLCBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8gPSBF
ZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG86OkVkaXRhYmxlUm9vdCk7CiAgICAgdm9pZCBnZXRNYXJr
ZWRSYW5nZUFzeW5jKHN0ZDo6ZnVuY3Rpb248dm9pZCAoRWRpdGluZ1JhbmdlLCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4pOwogICAgIHZvaWQgZ2V0U2VsZWN0ZWRSYW5nZUFzeW5jKHN0ZDo6ZnVuY3Rp
b248dm9pZCAoRWRpdGluZ1JhbmdlLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMGRi
YjE0Y2UwMjNhZjc3OTczYjI5MzY2MWFkMWNkYWU0NGU0ZTgwMS4uYzcxYTM0ZTlhMTYzMDZiOTg0
YzJlNDJiMmI5ZDkyMGRlNDhiYjZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC00NjIsNCArNDYyLDggQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgRGlkSGFuZGxlQWNjZXB0
ZWRDYW5kaWRhdGUoKQogI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBEaWRJbnNl
cnRUZXh0QXN5bmMoKQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggMDFhYjEwZDg3NTMxNDdhNmY1OTVkOWQ3MWEx
NDM1OGFkODQ3OTE3Yi4uODVjNjRlZGZjZDU1YWI5N2ZmNDY4OWYzNzhiNDE3M2NkZGVmOWVlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
aApAQCAtMTA4LDYgKzEwOCw4IEBAIHByaXZhdGU6CiAgICAgTGF5ZXJIb3N0aW5nTW9kZSB2aWV3
TGF5ZXJIb3N0aW5nTW9kZSgpIG92ZXJyaWRlIHsgcmV0dXJuIExheWVySG9zdGluZ01vZGU6Ok91
dE9mUHJvY2VzczsgfQogCiAgICAgUGFzc1JlZlB0cjxWaWV3U25hcHNob3Q+IHRha2VWaWV3U25h
cHNob3QoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxJbnNlcnRUZXh0QXN5bmMoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZEluc2VydFRleHRBc3luYygpIG92ZXJyaWRlOwogICAgIHZvaWQgd2hl
ZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYp
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tCmluZGV4IDVmYzIyYWQ5MjlkNzQxNmI3NGQ0NDYwMzNmNTE2ZWRhOTcxNjc5M2UuLjc2ODEy
YzJiMDNkNmMxOGQzZTY5OTAxNDJjMTQ3OGViZjI1MjlhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNDcyLDYgKzQ3Miwx
NCBAQCBQYXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4gUGFnZUNsaWVudEltcGw6OnRha2VWaWV3U25h
cHNob3QoKQogICAgIHJldHVybiBbbV93ZWJWaWV3IF90YWtlVmlld1NuYXBzaG90XTsKIH0KIAor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6d2lsbEluc2VydFRleHRBc3luYygpCit7Cit9CisKK3ZvaWQg
UGFnZUNsaWVudEltcGw6OmRpZEluc2VydFRleHRBc3luYygpCit7Cit9CisKIHZvaWQgUGFnZUNs
aWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdl
YldoZWVsRXZlbnQmIGV2ZW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggNTI1OWZiNWI3MjVj
YTQ3NjkyZWFkN2FhNDg1OTAxMjEzYzdhYjZlOS4uODVjNTRjZDYwMjRiNzlmYzhjNmE0MWJjNGRj
MDBiYWYyNzQ1OTBhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGwuaApAQCAtMTQwLDYgKzE0MCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJp
ZGU7CiAKICAgICBQYXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4gdGFrZVZpZXdTbmFwc2hvdCgpIG92
ZXJyaWRlOworICAgIHZvaWQgd2lsbEluc2VydFRleHRBc3luYygpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkSW5zZXJ0VGV4dEFzeW5jKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aGVlbEV2ZW50V2Fz
Tm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jikgb3ZlcnJpZGU7
CiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICB2b2lkIGdlc3R1cmVFdmVudFdh
c05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViR2VzdHVyZUV2ZW50Jikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpp
bmRleCA1YjVhMTIxYTY5Mzk3NmZmNjBhMThkYjI1NTZmNWY0Yjk1ZTI5MjU4Li42YmZiM2FiNzRk
NTBiNzZjYTgyMTg5NzI0MTAxMDhhMWE2MTQ4NDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTQ5NSw2ICs0OTUsMTYgQEAgUGFzc1Jl
ZlB0cjxWaWV3U25hcHNob3Q+IFBhZ2VDbGllbnRJbXBsOjp0YWtlVmlld1NuYXBzaG90KCkKICAg
ICByZXR1cm4gbV9pbXBsLT50YWtlVmlld1NuYXBzaG90KCk7CiB9CiAKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OndpbGxJbnNlcnRUZXh0QXN5bmMoKQoreworICAgIG1faW1wbC0+d2lsbEluc2VydFRl
eHRBc3luY2hyb25vdXNseSgpOworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRJbnNlcnRU
ZXh0QXN5bmMoKQoreworICAgIG1faW1wbC0+ZGlkSW5zZXJ0VGV4dEFzeW5jaHJvbm91c2x5KCk7
Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNlbGVjdGlvbkRpZENoYW5nZSgpCiB7CiAgICAg
bV9pbXBsLT5zZWxlY3Rpb25EaWRDaGFuZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjNDZhMzg5MmEwNjBmMjhlMzg0M2RlNTA1ODdk
ZmM5ODU4NTc0Y2IyLi4zNWQ0ZWQ2OGQ2ZWRiMjQ1ZDg3MDhmMTE3NTYyYzFlNGZlZWY0YWM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00
NjI5LDYgKzQ2MjksOCBAQCB2b2lkIFdlYlBhZ2U6Omluc2VydFRleHRBc3luYyhjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbgogICAgICAgICBmcmFtZS5l
ZGl0b3IoKS5pbnNlcnRUZXh0KHRleHQsIG51bGxwdHIpOwogICAgIH0gZWxzZQogICAgICAgICBm
cmFtZS5lZGl0b3IoKS5jb25maXJtQ29tcG9zaXRpb24odGV4dCk7CisKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRpZEluc2VydFRleHRBc3luYygpKTsKIH0KIAogdm9pZCBXZWJQ
YWdlOjpnZXRNYXJrZWRSYW5nZUFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDU5YzQ2MmE4Zjk3MmNi
ZGM1YTIzYTFjYWY4NzM0Zjc1Y2UzYWFkNC4uMGZjMThhMjAyYWUwNmZhNDZjZDE3NTBmOWIwMDJm
Y2FkNWZhMTMxYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDE2LTA5LTE1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEluc2VydGluZyBhIHNwYWNlIGFmdGVyIGluc2Vy
dGluZyBhbiBhY2NlcHRlZCBjYW5kaWRhdGUgc2Nyb2xscyB0aGUgZG9jdW1lbnQgYW5kIGNhdXNl
cyBhIGZsaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MjAwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgwODYyMzc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyAzIG5ldyB0ZXh0IGVk
aXRpbmcgQVBJIHRlc3RzIGNvdmVyaW5nIGNhbmRpZGF0ZSBpbnNlcnRpb24sIGFzIHdlbGwgYXMg
c3VwcG9ydCBmb3IgdGVzdGluZyBjYW5kaWRhdGVzIGluCisgICAgICAgIFdLV2ViVmlld3MuIFJl
ZmFjdG9ycyBjb21tb24gV0tXZWJWaWV3IGhlbHBlcnMgYWNyb3NzIGJvdGggVmlkZW9Db250cm9s
c01hbmFnZXIgdGVzdHMgYW5kIHRoZSBuZXcKKyAgICAgICAgV0tXZWJWaWV3Q2FuZGlkYXRlVGVz
dHMgaW50byBhIG5ldyB1dGlsaXR5IGNsYXNzLCBUZXN0V0tXZWJWaWV3IGluIFRlc3RXS1dlYlZp
ZXcubW0sIHdoaWNoIGlzIGNhcGFibGUgb2YKKyAgICAgICAgc2ltdWxhdGluZyBtb3VzZSBhbmQg
a2V5Ym9hcmQgZXZlbnRzIGFzIHdlbGwgYXMgd2FpdGluZyBmb3IgSmF2YVNjcmlwdCBtZXNzYWdl
cyBzZW50IGZyb20gdGhlIHdlYiBwcm9jZXNzIGFuZAorICAgICAgICBwZXJmb3JtaW5nIGFjdGlv
bnMgaW4gcmVzcG9uc2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9pb3MvYXVkaW8tb25seS5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L2lvcy92aWRlby13aXRoLWF1ZGlvLmh0bWw6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbDoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAoLVtNZXNzYWdlSGFu
ZGxlciBpbml0V2l0aE1lc3NhZ2U6aGFuZGxlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bTWVz
c2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdl
Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3
IG1vdXNlRG93bkF0UG9pbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNN
YW5hZ2VyVGVzdFdlYlZpZXcgcGVyZm9ybUFmdGVyTG9hZGluZzpdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1bmN0
aW9uOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJW
aWV3IGxvYWRUZXN0UGFnZU5hbWVkOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtWaWRlb0NvbnRy
b2xzTWFuYWdlclRlc3RXZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6YWN0aW9u
Ol0pOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bVGVzdENhbmRp
ZGF0ZSBpbml0V2l0aFJlcGxhY2VtZW50U3RyaW5nOmluUmFuZ2U6XSk6CisgICAgICAgICgtW1Rl
c3RDYW5kaWRhdGUgcmVwbGFjZW1lbnRTdHJpbmddKToKKyAgICAgICAgKC1bVGVzdENhbmRpZGF0
ZSByZXN1bHRUeXBlXSk6CisgICAgICAgICgtW1Rlc3RDYW5kaWRhdGUgcmFuZ2VdKToKKyAgICAg
ICAgKC1bQ2FuZGlkYXRlVGVzdFdlYlZpZXcgaW5zZXJ0Q2FuZGlkYXRlc0FuZFdhaXRGb3JSZXNw
b25zZTpyYW5nZTpdKToKKyAgICAgICAgKC1bQ2FuZGlkYXRlVGVzdFdlYlZpZXcgX2RpZEhhbmRs
ZUFjY2VwdGVkQ2FuZGlkYXRlXSk6CisgICAgICAgICgtW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IGV4
cGVjdENhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5VXBkYXRlczp3aGVuUGVyZm9ybWluZ0FjdGlvbnM6
XSk6CisgICAgICAgICgtW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IF9kaWRVcGRhdGVDYW5kaWRhdGVM
aXN0VmlzaWJpbGl0eTpdKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2F1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8t
c291cmNlLW9uLWNsaWNrLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbDoKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9mdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8t
d2l0aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2lucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlkZXMt
Y29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRtbDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZz
Y3JlZW4uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
YXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWw6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRt
bDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
by1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbDoKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRoLWF1ZGlv
Lmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW8td2l0aG91dC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWluZy1jbGljay10by1wYXVzZS5odG1s
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVv
cy1hdXRvcGxheWluZy1zY3JvbGwtdG8tdmlkZW8uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNv
bnRyb2xzLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxh
eWluZy12aWRlby1rZWVwcy1jb250cm9scy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWw6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evc2tpbm55LWF1dG9w
bGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS93aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmg6IEFkZGVkLgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW06IEFkZGVkLgor
ICAgICAgICAoLVtUZXN0TWVzc2FnZUhhbmRsZXIgaW5pdFdpdGhNZXNzYWdlOmhhbmRsZXI6XSk6
CisgICAgICAgICgtW1Rlc3RNZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlk
UmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91c2VE
b3duQXRQb2ludDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNl
aXZpbmdNZXNzYWdlOmFjdGlvbjpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBsb2FkVGVz
dFBhZ2VOYW1lZDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyB0eXBlQ2hhcmFjdGVyOl0p
OgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6XSk6CisgICAgICAg
ICgtW1Rlc3RXS1dlYlZpZXcgcGVyZm9ybUFmdGVyTG9hZGluZzpdKToKKwogMjAxNi0wOS0xNSAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVS
TFBhcnNlcjogQ2hlY2sgZm9yIGludmFsaWQgY2hhcmFjdGVycyBpbiB0aGUgaG9zdApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA4YTQ5YzNiY2I3OWE0NmQwNmMwZjkxNDQzOGM0YmE0OTYzOTQ2
MTk3Li4zZTllNGQ1ZWUyMDYwMTA4YTkzZjBkZTU5YzI2NTI5OTA1NDY1ODljIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNzgsNiArNzgsOSBAQAogCQkyRUZGMDZDMzFEODg2MjFFMDAwNEJC
MzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2QzIxRDg4NjIxMjAwMDRCQjMwIC8q
IGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sICovOyB9OwogCQkyRUZGMDZDNTFEODg2Nzc2MDAw
NEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkM0MUQ4ODY3NzAw
MDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgKi87IH07CiAJCTJF
RkYwNkM3MUQ4ODZBNTgwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJF
RkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1s
ICovOyB9OworCQkyRUZGMDZDRDFEOEE0MjlBMDAwNEJCMzAgLyogaW5wdXQtZmllbGQtaW4tc2Ny
b2xsYWJsZS1kb2N1bWVudC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVs
ZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgKi87IH07CisJCTJFRkYwNkQ0MUQ4QUVEQkIw
MDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dl
YlZpZXdNYWMubW0gKi87IH07CisJCTJFRkYwNkQ3MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZp
ZXdDYW5kaWRhdGVUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJFRkYwNkQ2MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVU
ZXN0cy5tbSAqLzsgfTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFm
dGVyQ3Jhc2hfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNo
X0J1bmRsZS5jcHAgKi87IH07CiAJCTMzREM4OTEyMTQxOTU1RkUwMDc0N0VGNyAvKiBzaW1wbGUt
aWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzNEQzg5MEUxNDE5NTM5MzAwNzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCAq
LzsgfTsKIAkJMzNEQzg5MTQxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVy
UmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzNEQzg5MTMxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxl
ZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3BwICovOyB9OwpAQCAtNTQxLDYgKzU0
NCw3IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJm
b2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCTJFRkYwNkNEMUQ4QTQyOUEwMDA0QkIz
MCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1z
b3VyY2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzUxRDg4
Njc3NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQkyRUZGMDZDMzFEODg2MjFFMDAwNEJCMzAgLyogbGFyZ2Utdmlk
ZW8tb2Zmc2NyZWVuLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC03ODksNiArNzkzLDEw
IEBACiAJCTJFRkYwNkMyMUQ4ODYyMTIwMDA0QkIzMCAvKiBsYXJnZS12aWRlby1vZmZzY3JlZW4u
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby1vZmZzY3JlZW4u
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRkYwNkM0MUQ4ODY3NzAwMDA0
QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5n
ZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
Y2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxh
YmxlLWRvY3VtZW50Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiaW5wdXQtZmll
bGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkVGRjA2RDIxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdFdLV2ViVmlld01hYy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZEMzFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdL
V2ViVmlld01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRl
c3RXS1dlYlZpZXdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRkYwNkQ2
MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMg
LyogUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMzQkU1QUY0MTM3QjVBNkMwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNo
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlTW92ZUFmdGVy
Q3Jhc2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzM0JFNUFGODEzN0I1QUFF
MDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM3NSw2ICsxMzgzLDcgQEAKIAkJCQkzN0I0
N0UyRTFENjRFN0NBMDA1RjRFRkYgLyogV0tPYmplY3QubW0gKi8sCiAJCQkJMkQwMDA2NUQxQzFG
NTg5NDAwODhFNkE3IC8qIFdLUERGVmlld1Jlc2l6ZUNyYXNoLm1tICovLAogCQkJCTVFNEIxRDJD
MUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tICovLAorCQkJ
CTJFRkYwNkQ2MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSAq
LywKIAkJCQk3QzQxN0YzMTFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVsdE5hdmln
YXRpb25EZWxlZ2F0ZS5tbSAqLywKIAkJCQkwRjNCOTRBNTFBNzcyNjZDMDBERTMyNzIgLyogV0tX
ZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovLAogCQkJCTk5ODRGQUNBMUNGRkFFRUUwMDhE
MTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8sCkBAIC0xNDY0LDYgKzE0NzMsNyBAQAog
CQlBMTZGNjZCODFDNDBFOUUxMDBCRDREMjQgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyRUZGMDZDQzFEOEE0MjkxMDAwNEJCMzAg
LyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sICovLAogCQkJCTJFRkYw
NkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sICov
LAogCQkJCTJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9u
LWNsaWNrLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzIxRDg4NjIxMjAwMDRCQjMwIC8qIGxhcmdlLXZp
ZGVvLW9mZnNjcmVlbi5odG1sICovLApAQCAtMTgxOSw2ICsxODI5LDggQEAKIAkJCQlDMDgxMjI0
NDEzRkMxOUVDMDBEQzM5QUUgLyogU3ludGhldGljQmFja2luZ1NjYWxlRmFjdG9yV2luZG93Lm0g
Ki8sCiAJCQkJMjlBQjhBQTMxNjRDN0E5MzAwRDQ5QkVDIC8qIFRlc3RCcm93c2luZ0NvbnRleHRM
b2FkRGVsZWdhdGUuaCAqLywKIAkJCQkyOUFCOEFBMjE2NEM3QTkzMDBENDlCRUMgLyogVGVzdEJy
b3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZS5tbSAqLywKKwkJCQkyRUZGMDZEMjFEOEFFREJCMDAw
NEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5oICovLAorCQkJCTJFRkYwNkQzMUQ4QUVEQkIwMDA0
QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tICovLAogCQkJCUMwODU4N0JFMTNGRTk1NkMwMDFF
RjRFNSAvKiBXZWJLaXRBZ25vc3RpY1Rlc3QuaCAqLywKIAkJCQlDMDg1ODdCRDEzRkU5NTZDMDAx
RUY0RTUgLyogV2ViS2l0QWdub3N0aWNUZXN0Lm1tICovLAogCQkJKTsKQEAgLTIzNDIsNiArMjM1
NCw3IEBACiAJCQkJN0NDRTdFRkIxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxlQmFz
aWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkMxQTQxMUFFNjAwNDQ3QzRDIC8qIElu
amVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUZE
MUE0MTFBRTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFD
YWxsYmFja1dpbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkVGRjA2RDQxRDhBRURCQjAwMDRC
QjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCODFE
MEE2NEJEMDBGRUJDRjMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUMzMUE0MTFBN0UwMDQ0N0M0QyAvKiBJbnNwZWN0
b3JCYXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQTFBNDExQTg3MDA0NDdDNEMgLyog
SW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjQ2MSw2ICsyNDc0
LDcgQEAKIAkJCQk3Q0NFN0VEODFBNDExQTdFMDA0NDdDNEMgLyogV2lsbFNlbmRTdWJtaXRFdmVu
dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUQ5MUE0MTFBN0UwMDQ0N0M0QyAvKiBXaW5k
b3dsZXNzV2ViVmlld1dpdGhNZWRpYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFGODM1NzFCMUQz
RkZCMjMwMEUzOTY3QiAvKiBXS0JhY2tGb3J3YXJkTGlzdC5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTJFRkYwNkQ3MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJFMUE0MTFCMTAwMDQ0N0M0QyAvKiBXS0Jyb3dzaW5n
Q29udGV4dEdyb3VwVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJGMUE0MTFCMTAw
MDQ0N0M0QyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QzU0QTRCRTFBQTExQ0NBMDAzODBGNzggLyogV0tCdW5kbGVGaWxlSGFuZGxl
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvaW9zL2F1ZGlvLW9ubHkuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L2lvcy9hdWRpby1vbmx5Lmh0bWwKaW5kZXggNzQwMGY2NjI4NGUyOTkxM2RhNTliNDZj
ZTM1NmI4Y2E2YmRmZGZjZi4uYzRhMjRmYWVlNzY3Y2ExMWU1ZjZhMDU3ZDZlYWUwOGRmY2MxMjFh
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL2F1ZGlv
LW9ubHkuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvYXVk
aW8tb25seS5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgZnVuY3Rpb24gcGxheWluZygpIHsK
ICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBv
c3RNZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycpOwogICAgICAgICB9IGNh
dGNoKGUpIHsKICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICdjYWxsYmFjazpwbGF5aW5n
JzsKICAgICAgICAgfQpAQCAtMjAsNyArMjAsNyBAQAogCiAgICAgZnVuY3Rpb24gbm90UGxheWlu
ZygpIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOworICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoJ25vdCBwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgfQogICAgIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9z
L3ZpZGVvLXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L2lvcy92aWRlby13aXRoLWF1ZGlvLmh0bWwKaW5kZXggYzg5MjRiNmI5OGFhODNmNmQyYmUxNWRi
NDg5ODQ4NDM1M2Y1YTllOS4uODA4ZGRjZWM4NjlkNzRhM2NmZGM1OTVlMTY5ZTEwNjM5YmI2ZjMz
OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVv
LXdpdGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9p
b3MvdmlkZW8td2l0aC1hdWRpby5odG1sCkBAIC0xNCw3ICsxNCw3IEBACiAgICAgZnVuY3Rpb24g
cGxheWluZygpIHsKICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlp
bmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycpOwog
ICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICdjYWxs
YmFjazpwbGF5aW5nJzsKICAgICAgICAgfQpAQCAtMjIsNyArMjIsNyBAQAogCiAgICAgZnVuY3Rp
b24gbm90UGxheWluZygpIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWlu
ZycpOworICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAg
ICAgfQogICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9pb3MvdmlkZW8td2l0aG91dC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbAppbmRleCA4NDU4NmYz
MjVjMWJlYjkxZmM3ZmUwNWEyNzlhZDAyYmUxOGUyYzQwLi4yNzVlN2UxYzU5NmNiZjljODdlZjI3
MzI3NGMwY2NkNmY0ZTRlOTM1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9pb3MvdmlkZW8td2l0aG91dC1hdWRpby5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRob3V0LWF1ZGlvLmh0bWwKQEAgLTEyLDcg
KzEyLDcgQEAKICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAgICAgICB3aW5kb3cuY2xlYXJU
aW1lb3V0KHRpbWVvdXQpOwogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsK
KyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBv
c3RNZXNzYWdlKCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAg
d2luZG93LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICB9CkBAIC0yMCw3
ICsyMCw3IEBACiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkgewogICAgICAgICB0cnkgewot
ICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIu
cG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKICAg
ICAgICAgfSBjYXRjaChlKSB7IH0KICAgICB9CiAgICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdl
ci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJv
bHNNYW5hZ2VyLm1tCmluZGV4IGJkMzE4NjJhZTQyZWNiNDJjYTQxZjEyYjZhZDZmODdmYzk5MjFm
YjcuLjY3NDVjYzcyNmU5NWZhYzljYzg2M2RiNTQ5YzI5ZmIyMmQ2NjBjY2UgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5h
Z2VyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVv
Q29udHJvbHNNYW5hZ2VyLm1tCkBAIC0yNiwxMCArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotCi0jaWYgUExBVEZPUk0oTUFDKQot
I2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgotI2VuZGlmCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3
TWFjLmgiCiAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KQEAgLTQzLDM0ICs0MCw3IEBA
IC0gKHZvaWQpX2ludGVyYWN0V2l0aE1lZGlhQ29udHJvbHNGb3JUZXN0aW5nOwogCiBAZW5kCiAK
LUBpbnRlcmZhY2UgTWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFu
ZGxlcj4KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIE1lc3NhZ2VIYW5kbGVyIHsKLSAgICBkaXNw
YXRjaF9ibG9ja190IF9oYW5kbGVyOwotICAgIE5TU3RyaW5nICpfbWVzc2FnZTsKLX0KLQotLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGhhbmRsZXI6
KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcgotewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5p
dF0pKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgX2hhbmRsZXIgPSBbaGFuZGxlciBjb3B5
XTsKLSAgICBfbWVzc2FnZSA9IG1lc3NhZ2U7Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAo
dm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNl
ckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3Nh
Z2UgKiltZXNzYWdlCi17Ci0gICAgaWYgKFsoTlNTdHJpbmcgKilbbWVzc2FnZSBib2R5XSBpc0Vx
dWFsVG9TdHJpbmc6X21lc3NhZ2VdICYmIF9oYW5kbGVyKQotICAgICAgICBfaGFuZGxlcigpOwot
fQotCi1AZW5kCi0KLUBpbnRlcmZhY2UgVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyA6
IFdLV2ViVmlldworQGludGVyZmFjZSBWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IDog
VGVzdFdLV2ViVmlldwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVmlkZW9Db250cm9sc01hbmFn
ZXJUZXN0V2ViVmlldyB7CkBAIC03OCwzMiArNDgsNiBAQCBAaW1wbGVtZW50YXRpb24gVmlkZW9D
b250cm9sc01hbmFnZXJUZXN0V2ViVmlldyB7CiAgICAgTlNTdHJpbmcgKl9jb250cm9sbGVkRWxl
bWVudElEOwogfQogCi0tICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgewot
ICAgIFtzZWxmIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KHBvaW50LngsIHBvaW50LnkpIG1v
ZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJl
cjowIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBldmVudE51bWJl
cjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXV07Ci19Ci0KLS0gKHZvaWQpcGVyZm9ybUFmdGVy
TG9hZGluZzooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb25zIHsKLSAgICBNZXNzYWdlSGFuZGxlciAq
aGFuZGxlciA9IFtbTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoTWVzc2FnZTpAImxvYWRl
ZCIgaGFuZGxlcjphY3Rpb25zXTsKLSAgICBOU1N0cmluZyAqb25sb2FkU2NyaXB0ID0gQCJ3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKSB7IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLm9u
bG9hZEhhbmRsZXIucG9zdE1lc3NhZ2UoJ2xvYWRlZCcpOyB9IjsKLSAgICBXS1VzZXJTY3JpcHQg
KnNjcmlwdCA9IFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpvbmxvYWRTY3Jp
cHQgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0
IGZvck1haW5GcmFtZU9ubHk6Tk9dOwotCi0gICAgV0tVc2VyQ29udGVudENvbnRyb2xsZXIqIGNv
bnRlbnRDb250cm9sbGVyID0gW1tzZWxmIGNvbmZpZ3VyYXRpb25dIHVzZXJDb250ZW50Q29udHJv
bGxlcl07Ci0gICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFVzZXJTY3JpcHQ6c2NyaXB0XTsKLSAg
ICBbY29udGVudENvbnRyb2xsZXIgYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlciBuYW1l
OkAib25sb2FkSGFuZGxlciJdOwotfQotCi0tICh2b2lkKWNhbGxKYXZhc2NyaXB0RnVuY3Rpb246
KE5TU3RyaW5nICopZnVuY3Rpb25OYW1lCi17Ci0gICAgTlNTdHJpbmcgKmNvbW1hbmQgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAKCkiLCBmdW5jdGlvbk5hbWVdOwotICAgIFtzZWxm
IGV2YWx1YXRlSmF2YVNjcmlwdDpjb21tYW5kIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci19Ci0K
LS0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWUKLXsKLSAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6cGFnZU5hbWUgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwotICAgIFtz
ZWxmIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotfQotCiAtICh2b2lkKWV4cGVjdENvbnRyb2xzTWFu
YWdlcjooQk9PTClleHBlY3RDb250cm9sc01hbmFnZXIgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOihO
U1N0cmluZyAqKW1lc3NhZ2UKIHsKICAgICBfX2Jsb2NrIGJvb2wgZG9uZVdhaXRpbmcgPSBmYWxz
ZTsKQEAgLTEzMSwxNCArNzUsNiBAQCAtICh2b2lkKXdhaXRGb3JNZWRpYUNvbnRyb2xzVG9IaWRl
CiAgICAgICAgIFtbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXSBydW5Nb2RlOk5TRGVmYXVsdFJ1
bkxvb3BNb2RlIGJlZm9yZURhdGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dOwogfQogCi0tICh2b2lk
KXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246
KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uCi17Ci0gICAgUmV0YWluUHRyPE1lc3NhZ2VIYW5kbGVy
PiBoYW5kbGVyID0gYWRvcHROUyhbW01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0V2l0aE1lc3Nh
Z2U6bWVzc2FnZSBoYW5kbGVyOmFjdGlvbl0pOwotICAgIFdLVXNlckNvbnRlbnRDb250cm9sbGVy
KiBjb250ZW50Q29udHJvbGxlciA9IFtbc2VsZiBjb25maWd1cmF0aW9uXSB1c2VyQ29udGVudENv
bnRyb2xsZXJdOwotICAgIFtjb250ZW50Q29udHJvbGxlciByZW1vdmVTY3JpcHRNZXNzYWdlSGFu
ZGxlckZvck5hbWU6QCJwbGF5aW5nSGFuZGxlciJdOwotICAgIFtjb250ZW50Q29udHJvbGxlciBh
ZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJwbGF5aW5nSGFuZGxl
ciJdOwotfQotCiAtICh2b2lkKXdhaXRGb3JQYWdlVG9Mb2FkV2l0aEF1dG9wbGF5aW5nVmlkZW9z
OihpbnQpbnVtYmVyT2ZBdXRvcGxheWluZ1ZpZGVvcwogewogICAgIF9fYmxvY2sgaW50IHJlbWFp
bmluZ0F1dG9wbGF5ZWRDb3VudCA9IG51bWJlck9mQXV0b3BsYXlpbmdWaWRlb3M7CkBAIC0yNDAs
NyArMTc2LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFn
ZXJNdWx0aXBsZVZpZGVvc1Njcm9sbFBhdXNlZFZpZGVvT3UKICAgICBbd2ViVmlldyBsb2FkVGVz
dFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMiXTsK
ICAgICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVvczoxXTsK
IAotICAgIFt3ZWJWaWV3IGNhbGxKYXZhc2NyaXB0RnVuY3Rpb246QCJwYXVzZUZpcnN0VmlkZW9B
bmRTY3JvbGxUb1NlY29uZFZpZGVvIl07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAInBhdXNlRmlyc3RWaWRlb0FuZFNjcm9sbFRvU2Vjb25kVmlkZW8oKSJdOwog
ICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpOTyBhZnRlclJlY2VpdmluZ01lc3Nh
Z2U6QCJwYXVzZWQiXTsKIH0KIApAQCAtMjUxLDcgKzE4Nyw3IEBAIFRFU1QoVmlkZW9Db250cm9s
c01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVsdGlwbGVWaWRlb3NTY3JvbGxQbGF5aW5n
VmlkZW9XCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlb3MtcGxh
eWluZy12aWRlby1rZWVwcy1jb250cm9scyJdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JQYWdlVG9M
b2FkV2l0aEF1dG9wbGF5aW5nVmlkZW9zOjFdOwogCi0gICAgW3dlYlZpZXcgY2FsbEphdmFzY3Jp
cHRGdW5jdGlvbjpAInNjcm9sbFRvU2Vjb25kVmlkZW8iXTsKKyAgICBbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVG9TZWNvbmRWaWRlbygpIl07CiAgICAgW3dl
YlZpZXcgZXhwZWN0Q29udHJvbHNNYW5hZ2VyOllFUyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJz
Y3JvbGxlZCJdOwogfQogCkBAIC0yNjIsNyArMTk4LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFu
YWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVvc1Njcm9sbFBsYXlpbmdNdXRl
ZFYKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvcy1wbGF5aW5n
LW11dGVkLXZpZGVvLWhpZGVzLWNvbnRyb2xzIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VU
b0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6MV07CiAKLSAgICBbd2ViVmlldyBjYWxsSmF2YXNj
cmlwdEZ1bmN0aW9uOkAibXV0ZUZpcnN0VmlkZW9BbmRTY3JvbGxUb1NlY29uZFZpZGVvIl07Cisg
ICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIm11dGVGaXJzdFZpZGVv
QW5kU2Nyb2xsVG9TZWNvbmRWaWRlbygpIl07CiAgICAgW3dlYlZpZXcgZXhwZWN0Q29udHJvbHNN
YW5hZ2VyOk5PIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBsYXlpbmciXTsKIH0KIApAQCAtMzAw
LDcgKzIzNiw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5h
Z2VyTXVsdGlwbGVWaWRlb3NTd2l0Y2hDb250cm9sbGVkVmlkCiAgICAgW3dlYlZpZXcgbG9hZFRl
c3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctc2Nyb2xsLXRvLXZpZGVvIl07
CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6Ml07
CiAKLSAgICBbd2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1bmN0aW9uOkAic2Nyb2xsVG9TZWNvbmRW
aWV3Il07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNjcm9s
bFRvU2Vjb25kVmlldygpIl07CiAgICAgW3dlYlZpZXcgZXhwZWN0Q29udHJvbHNNYW5hZ2VyOllF
UyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJzY3JvbGxlZCJdOwogCiAgICAgRVhQRUNUX1RSVUUo
W1t3ZWJWaWV3IGNvbnRyb2xsZWRFbGVtZW50SURdIGlzRXF1YWxUb1N0cmluZzpAInNlY29uZCJd
KTsKQEAgLTMxMiw3ICsyNDgsNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0Nv
bnRyb2xzTWFuYWdlck11bHRpcGxlVmlkZW9zU2Nyb2xsT25seUxhcmdlVmlkZQogCiAgICAgW3dl
YlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5
Il07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6
MV07Ci0gICAgW3dlYlZpZXcgY2FsbEphdmFzY3JpcHRGdW5jdGlvbjpAInNjcm9sbFZpZGVvT3V0
T2ZWaWV3Il07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNj
cm9sbFZpZGVvT3V0T2ZWaWV3KCkiXTsKICAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFn
ZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInNjcm9sbGVkIl07CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRp
ZGF0ZVRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tX
ZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM4NzhlYjlmYWZiNGJiMWJkZmI5
ZWE5OGRjNDdlYTY3MTA4NWEwMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tCkBAIC0wLDAg
KzEsMTkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBXS19BUElf
RU5BQkxFRCAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMjAwCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJU
ZXN0V0tXZWJWaWV3TWFjLmgiCisKKyNpbXBvcnQgPFdlYktpdC9XZWJLaXRQcml2YXRlLmg+CisK
K3N0YXRpYyBOU1N0cmluZyAqR2V0SW5wdXRWYWx1ZUpTRXhwcmVzc2lvbiA9IEAiZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignaW5wdXQnKS52YWx1ZSI7CitzdGF0aWMgTlNTdHJpbmcgKkdldERvY3Vt
ZW50U2Nyb2xsVG9wSlNFeHByZXNzaW9uID0gQCJkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCI7CisK
K0BpbnRlcmZhY2UgVGVzdENhbmRpZGF0ZSA6IE5TVGV4dENoZWNraW5nUmVzdWx0CitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBUZXN0Q2FuZGlkYXRlIHsKKyAgICBOU1N0cmluZyAqX3N0cmluZzsK
KyAgICBOU1JhbmdlIF9yYW5nZTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmVwbGFj
ZW1lbnRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGluUmFuZ2U6KE5TUmFuZ2UpcmFuZ2UKK3sK
KyAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICAgICAgICBfc3RyaW5nID0gc3RyaW5n
OworICAgICAgICBfcmFuZ2UgPSByYW5nZTsKKyAgICB9CisgICAgcmV0dXJuIHNlbGY7Cit9CisK
Ky0gKE5TU3RyaW5nICopcmVwbGFjZW1lbnRTdHJpbmcKK3sKKyAgICByZXR1cm4gX3N0cmluZzsK
K30KKworLSAoTlNUZXh0Q2hlY2tpbmdUeXBlKXJlc3VsdFR5cGUKK3sKKyAgICByZXR1cm4gTlNU
ZXh0Q2hlY2tpbmdUeXBlUmVwbGFjZW1lbnQ7Cit9CisKKy0gKE5TUmFuZ2UpcmFuZ2UKK3sKKyAg
ICByZXR1cm4gX3JhbmdlOworfQorCitAZW5kCisKK0BpbnRlcmZhY2UgQ2FuZGlkYXRlVGVzdFdl
YlZpZXcgOiBUZXN0V0tXZWJWaWV3CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdl
dHRlcj1pc0NhbmRpZGF0ZUxpc3RWaXNpYmxlKSBCT09MIGNhbmRpZGF0ZUxpc3RWaXNpYmxlOwor
QGVuZAorCitAaW1wbGVtZW50YXRpb24gQ2FuZGlkYXRlVGVzdFdlYlZpZXcgeworICAgIGJvb2wg
X2lzRG9uZVdhaXRpbmdGb3JDYW5kaWRhdGU7CisgICAgYm9vbCBfaXNMaXN0ZW5pbmdGb3JDYW5k
aWRhdGVMaXN0VmlzaWJpbGl0eUNoYW5nZXM7CisgICAgTlNVSW50ZWdlciBfY2FuZGlkYXRlTGlz
dFZpc2liaWxpdHlDaGFuZ2VDb3VudDsKK30KKworLSAodm9pZClpbnNlcnRDYW5kaWRhdGVzQW5k
V2FpdEZvclJlc3BvbnNlOihOU1N0cmluZyAqKXJlcGxhY2VtZW50U3RyaW5nIHJhbmdlOihOU1Jh
bmdlKXJhbmdlCit7CisgICAgX2lzRG9uZVdhaXRpbmdGb3JDYW5kaWRhdGUgPSBmYWxzZTsKKyAg
ICBbc2VsZiBfaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGU6W1tUZXN0Q2FuZGlkYXRlIGFsbG9jXSBp
bml0V2l0aFJlcGxhY2VtZW50U3RyaW5nOnJlcGxhY2VtZW50U3RyaW5nIGluUmFuZ2U6cmFuZ2Vd
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9pc0RvbmVXYWl0aW5nRm9yQ2FuZGlk
YXRlKTsKK30KKworLSAodm9pZClfZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUKK3sKKyAgICBf
aXNEb25lV2FpdGluZ0ZvckNhbmRpZGF0ZSA9IHRydWU7Cit9CisKKy0gKHZvaWQpZXhwZWN0Q2Fu
ZGlkYXRlTGlzdFZpc2liaWxpdHlVcGRhdGVzOihOU1VJbnRlZ2VyKWV4cGVjdGVkVXBkYXRlQ291
bnQgd2hlblBlcmZvcm1pbmdBY3Rpb25zOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbnMKK3sKKyAg
ICBfY2FuZGlkYXRlTGlzdFZpc2liaWxpdHlDaGFuZ2VDb3VudCA9IDA7CisgICAgX2lzTGlzdGVu
aW5nRm9yQ2FuZGlkYXRlTGlzdFZpc2liaWxpdHlDaGFuZ2VzID0gWUVTOworCisgICAgYWN0aW9u
cygpOworCisgICAgX2lzTGlzdGVuaW5nRm9yQ2FuZGlkYXRlTGlzdFZpc2liaWxpdHlDaGFuZ2Vz
ID0gTk87CisgICAgRVhQRUNUX0VRKF9jYW5kaWRhdGVMaXN0VmlzaWJpbGl0eUNoYW5nZUNvdW50
LCBleHBlY3RlZFVwZGF0ZUNvdW50KTsKK30KKworLSAodm9pZClfZGlkVXBkYXRlQ2FuZGlkYXRl
TGlzdFZpc2liaWxpdHk6KEJPT0wpdmlzaWJsZQoreworICAgIGlmIChfY2FuZGlkYXRlTGlzdFZp
c2libGUgPT0gdmlzaWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgX2NhbmRpZGF0ZUxpc3RW
aXNpYmxlID0gdmlzaWJsZTsKKyAgICBpZiAoX2lzTGlzdGVuaW5nRm9yQ2FuZGlkYXRlTGlzdFZp
c2liaWxpdHlDaGFuZ2VzKQorICAgICAgICBfY2FuZGlkYXRlTGlzdFZpc2liaWxpdHlDaGFuZ2VD
b3VudCsrOworfQorCitAZW5kCisKK1RFU1QoV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMsIFNvZnRT
cGFjZVJlcGxhY2VtZW50QWZ0ZXJDYW5kaWRhdGVJbnNlcnRpb25XaXRob3V0UmVwbGFjZW1lbnQp
Cit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtbQ2FuZGlkYXRlVGVz
dFdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCld
OworCisgICAgTlNVUkwgKmNvbnRlbnRVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAiaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudCIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07Cisg
ICAgW3drV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOmNv
bnRlbnRVUkxdXTsKKworICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJmb2N1c2VkIl07
CisgICAgW3drV2ViVmlldyBfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107CisgICAgW3drV2ViVmll
dyBpbnNlcnRDYW5kaWRhdGVzQW5kV2FpdEZvclJlc3BvbnNlOkAiYXBwbGUgIiByYW5nZTpOU01h
a2VSYW5nZSgwLCAwKV07CisKKyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0
cmluZzpAImFwcGxlICJdKTsKKworICAgIFt3a1dlYlZpZXcgZXhwZWN0Q2FuZGlkYXRlTGlzdFZp
c2liaWxpdHlVcGRhdGVzOjAgd2hlblBlcmZvcm1pbmdBY3Rpb25zOl4oKQorICAgIHsKKyAgICAg
ICAgW3drV2ViVmlldyB0eXBlQ2hhcmFjdGVyOicgJ107CisgICAgICAgIFt3a1dlYlZpZXcgd2Fp
dEZvck1lc3NhZ2U6QCJpbnB1dCJdOworICAgIH1dOworCisgICAgRVhQRUNUX1RSVUUoW1t3a1dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpHZXRJbnB1dFZhbHVlSlNFeHByZXNz
aW9uXSBpc0VxdWFsVG9TdHJpbmc6QCJhcHBsZSAiXSk7CisgICAgRVhQRUNUX0VRKFtbd2tXZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0RG9jdW1lbnRTY3JvbGxUb3BKU0V4
cHJlc3Npb25dIGRvdWJsZVZhbHVlXSwgMCk7Cit9CisKK1RFU1QoV0tXZWJWaWV3Q2FuZGlkYXRl
VGVzdHMsIEluc2VydENoYXJhY3RlcnNBZnRlckNhbmRpZGF0ZUluc2VydGlvbldpdGhTb2Z0U3Bh
Y2UpCit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtbQ2FuZGlkYXRl
VGVzdFdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYw
MCldOworCisgICAgTlNVUkwgKmNvbnRlbnRVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAiaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudCIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CisgICAgW3drV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OmNvbnRlbnRVUkxdXTsKKworICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJmb2N1c2Vk
Il07CisgICAgW3drV2ViVmlldyBfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107CisgICAgW3drV2Vi
VmlldyBpbnNlcnRDYW5kaWRhdGVzQW5kV2FpdEZvclJlc3BvbnNlOkAiZm9vICIgcmFuZ2U6TlNN
YWtlUmFuZ2UoMCwgMCldOworCisgICAgRVhQRUNUX1RSVUUoW1t3a1dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpHZXRJbnB1dFZhbHVlSlNFeHByZXNzaW9uXSBpc0VxdWFsVG9T
dHJpbmc6QCJmb28gIl0pOworCisgICAgW3drV2ViVmlldyB0eXBlQ2hhcmFjdGVyOidhJ107Cisg
ICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CisKKyAgICBFWFBFQ1RfVFJV
RShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVK
U0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImZvbyBhIl0pOworfQorCitURVNUKFdLV2Vi
Vmlld0NhbmRpZGF0ZVRlc3RzLCBJbnNlcnRDYW5kaWRhdGVGcm9tUGFydGlhbGx5VHlwZWRQaHJh
c2VXaXRoU29mdFNwYWNlKQoreworICAgIENhbmRpZGF0ZVRlc3RXZWJWaWV3ICp3a1dlYlZpZXcg
PSBbW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApXTsKKworICAgIE5TVVJMICpjb250ZW50VVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9j
dW1lbnQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOworICAgIFt3a1dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpjb250ZW50VVJMXV07CisKKyAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNz
YWdlOkAiZm9jdXNlZCJdOworICAgIFt3a1dlYlZpZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNd
OworCisgICAgTlNTdHJpbmcgKmluaXRpYWxWYWx1ZSA9IEAiaGVsIjsKKyAgICBmb3IgKHVpbnQ2
NF90IGkgPSAwOyBpIDwgaW5pdGlhbFZhbHVlLmxlbmd0aDsgKytpKSB7CisgICAgICAgIFt3a1dl
YlZpZXcgdHlwZUNoYXJhY3RlcjpbaW5pdGlhbFZhbHVlIGNoYXJhY3RlckF0SW5kZXg6aV1dOwor
ICAgICAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiaW5wdXQiXTsKKyAgICB9CisKKyAg
ICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6QCJoZWxsbyAi
IHJhbmdlOk5TTWFrZVJhbmdlKDAsIDMpXTsKKyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlz
RXF1YWxUb1N0cmluZzpAImhlbGxvICJdKTsKKworICAgIFt3a1dlYlZpZXcgZXhwZWN0Q2FuZGlk
YXRlTGlzdFZpc2liaWxpdHlVcGRhdGVzOjAgd2hlblBlcmZvcm1pbmdBY3Rpb25zOl4oKQorICAg
IHsKKyAgICAgICAgW3drV2ViVmlldyB0eXBlQ2hhcmFjdGVyOicgJ107CisgICAgICAgIFt3a1dl
YlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJpbnB1dCJdOworICAgICAgICBFWFBFQ1RfVFJVRShbW3dr
V2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4cHJl
c3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImhlbGxvICJdKTsKKyAgICAgICAgRVhQRUNUX0VRKFtb
d2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0RG9jdW1lbnRTY3JvbGxU
b3BKU0V4cHJlc3Npb25dIGRvdWJsZVZhbHVlXSwgMCk7CisKKyAgICAgICAgW3drV2ViVmlldyB0
eXBlQ2hhcmFjdGVyOicgJ107CisgICAgICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJp
bnB1dCJdOworICAgICAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpA
ImhlbGxvICAiXSk7CisgICAgICAgIEVYUEVDVF9FUShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkdldERvY3VtZW50U2Nyb2xsVG9wSlNFeHByZXNzaW9uXSBkb3VibGVW
YWx1ZV0sIDApOworICAgIH1dOworfQorCisjZW5kaWYgLyogV0tfQVBJX0VOQUJMRUQgJiYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCAq
LwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0
b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCmluZGV4IGI2
YTViODJlMjYxYWQ0YTM5NTVhZWM4M2UzZjFlYTZkYTRlNjg3ZDQuLjUzYjQ1NjM4OGYxOTZlOTg5
NzUxMThmY2E3Mzk2NWYzMDc1NmVmYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2F1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9hdXRvcGxheWluZy12aWRl
by13aXRoLWF1ZGlvLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAKICAgICAgICAgLy8gV2FpdCB1bnRp
bCB0aGUgbmV4dCBydW5sb29wIHRvIGFsbG93IG1lZGlhIGNvbnRyb2xzIHRvIHVwZGF0ZS4KICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9z
dE1lc3NhZ2UoInBhdXNlZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsKICAgICAgICAgICAg
IH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KQEAgLTIwLDcgKzIwLDcgQEAK
ICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXll
ZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RI
YW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUp
IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2su
aHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRl
by1zb3VyY2Utb24tY2xpY2suaHRtbAppbmRleCBjOGMxZDI4NjUyNTNhZTYyZDAyNTY4ZDE3YTNi
MTAwODY0MTQ1Mzg0Li41NjBlNjg1MGExNWQxMTlhMjE3YzMzNGY3YjEzYmZjZjhjMmE5NDgyIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2Ut
dmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sCkBAIC0xMiw3
ICsxMiw3IEBACiAgICAgICAgICAgICB2aWRlby5wbGF5KCk7CiAgICAgICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNz
YWdlKCJjaGFuZ2VkIik7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJjaGFuZ2VkIik7CiAgICAgICAgICAg
ICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSk7CkBA
IC0yMSw3ICsyMSw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVBsYXlpbmcoKSB7CiAgICAg
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHRyeSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdI
YW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRv
cGxheWVkIik7CiAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSwgMCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1l
bmQuaHRtbAppbmRleCA4ZmRjYmRhNWM5ZTIyMjgzMzEzYjQwYTY2MGIzOTJiNTM1MDkzNjhkLi5m
ODRmN2Y3YWMxYjE0YzU3NTU4NzQ0MDYyOWU5ODhjMjg4NDg0MDFiIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9u
LWVuZC5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2No
YW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgICAgICAg
ICAgIHZpZGVvLnBsYXkoKTsKICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKKyAg
ICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Z1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRl
by13aXRoLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9mdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCmluZGV4IDFiYzYw
ZWI0ZTE2MDUyM2M5NjZjZjNlMDBkMjEyNWM4MTYxOTAwZDEuLjQ4MzAxZTYzMDU0MDU4Y2NjYzBj
YTlhNjU5YWQ3MTMwODA5YTk3ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2Z1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0
bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZnVsbC1zaXpl
LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbApAQCAtMTEsNyArMTEsNyBAQAogICAg
IGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CisgICAgICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0s
IDApOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2lucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2lucHV0LWZpZWxkLWluLXNjcm9sbGFibGUt
ZG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWVkZjM3NWM3NjU2YTZiN2NkZDFhZmQ1YTg5MjY3
NmZkODA2NGYwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sCkBAIC0w
LDAgKzEsMzYgQEAKKzxodG1sPgorCis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkg
eworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisKKyAgICAgICAgaW5wdXQgewor
ICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAg
ICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTAwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4K
KyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9uIGxv
YWRlZCgpIHsKKyAgICAgICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
ImlucHV0Iik7CisgICAgICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSgwLCAwKTsKKyAg
ICAgICAgICAgIGlucHV0LmZvY3VzKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBm
b2N1c2VkKCkgeworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiZm9jdXNlZCIpLCAwKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGlucHV0KCkgeworICAgICAgICAgICAgc2V0VGlt
ZW91dCgoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZSgiaW5wdXQiKSwgMCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
KworPGJvZHkgb25sb2FkPWxvYWRlZCgpPgorICAgIDxpbnB1dCBvbmZvY3VzPWZvY3VzZWQoKSBv
bmlucHV0PWlucHV0KCk+PC9pbnB1dD4KKzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlkZXMt
Y29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8t
ZW5kLmh0bWwKaW5kZXggZTQyNjdjNDMxZDdhYWZmMDZhOTFkZGI4MjI4YWFlNTk4Y2YyOWE2OC4u
MDEwMmU5NjI5ZjM2MTFiZGMyOGJlMTllMWM2NmY4ZTE5M2UwOGIwZCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlkZXMtY29u
dHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRv
LWVuZC5odG1sCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAvLyBUaGUgbWVkaWEgY29udHJvbHMg
c2hvdWxkIGJlIHVwZGF0ZWQgb24gdGhlIG5leHQgcnVubG9vcC4KICAgICAgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImVuZGVk
Iik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoImVuZGVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsgfQog
ICAgICAgICB9LCAwKTsKICAgICB9CkBAIC0yNiw3ICsyNiw3IEBACiAgICAgZnVuY3Rpb24gYmVn
YW5BdXRvcGxheWluZygpIHsKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKKyAgICAgICAgICAg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2Fn
ZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11dGVzLW9ucGxheWluZy5o
dG1sCmluZGV4IGI1Y2FmMjNhNWFjZWFlNGM2M2YyZjUwMzUzM2I2ZTI2MWE1OWUzZjQuLjM4ZmIz
MjU1MjIzNGZlYjA4YTlkODU0ODVhNWI5MWEyYjM0ZGM2ODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11dGVzLW9ucGxheWlu
Zy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdl
LXZpZGVvLW11dGVzLW9ucGxheWluZy5odG1sCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4KICAg
ICBmdW5jdGlvbiBoYW5kbGVQbGF5aW5nKCkgewogICAgICAgICB0cnkgewotICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2Uo
InBsYXlpbmciKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CiAgICAgICAgIH0gY2F0Y2goZSkgewog
ICAgICAgICB9CiAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIikubXV0ZWQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbAppbmRleCA1MGE2ODVmZjY1
OWE5OGQ3N2UxNjU0MWYxZDkwMTIzMTdiNTJkNTNlLi4zOWNmNDc2YWIzNTBiMTRhYzQyMzFhNjhj
NTQ3YTk4NTY4YmYzZmE5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbApAQCAt
MTYsNyArMTYsNyBAQAogICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8i
KS5jbGFzc0xpc3QuYWRkKCJvZmZzY3JlZW4iKTsKICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoIm1v
dmVkIik7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJtb3ZlZCIpOwogICAgICAgICAgICAgICAgIH0gY2F0
Y2goZSkgewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sIDApOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tcGxh
eWluZy1zY3JvbGwtYXdheS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5odG1sCmluZGV4IDk1OTYwMDNj
YjdmMGFiNTc4MTAzYjY2M2ZkNDYzZDMzMDIwMmQ0OWIuLjBiN2UwOWEzMjYwMzM5NjMzODI3ZWIw
ZWQ5Y2Y3MWRhMDFlNDlhMGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRtbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1wbGF5aW5n
LXNjcm9sbC1hd2F5Lmh0bWwKQEAgLTE0LDE0ICsxNCwxNCBAQAogICAgICAgICAgICAgZnVuY3Rp
b24gc2Nyb2xsVmlkZW9PdXRPZlZpZXcoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiZGl2Iikuc2Nyb2xsSW50b1ZpZXcoKTsKICAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKKyAg
ICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoInNjcm9sbGVkIik7CiAgICAgICAgICAgICAgICAgfSwgMCk7CiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAg
ICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgICAgICAgICB9IGNhdGNo
KGUpIHsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0sIDApCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
by1zZWVrLWFmdGVyLWVuZGluZy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbAppbmRleCBlMzE2N2Y1
NzRjNDYwYjI2M2IzNzMyMWM2ODY0NjFiNTQxZTlkYzkyLi4wMzg2NTQwYTNjYjk2OGYzMmY1OWYz
YTVmYzIyNWNjMmIzY2RmZDA5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNlZWstYWZ0
ZXItZW5kaW5nLmh0bWwKQEAgLTYsNyArNiw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCIjdGVzdC12aWRlbyIpLmN1cnJlbnRUaW1lID0gMDsKICAgICAgICAgICAgIC8v
IFRoZSBtZWRpYSBjb250cm9scyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBydW5sb29w
LgogICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgi
ZW5kZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50
ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiZW5kZWQiKTsKICAgICAgICAgICAgIH0sIDApOwogICAg
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2xhcmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGluZy5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8t
c2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwKaW5kZXggMDdhOGVi
MTBlYjE0ZjE5YTE5Mjc3MTJkMzQ1OTMxYWVkYmMzZWIwMy4uYWRhOWEyZDEyNzFjOThmZTQ3M2Nl
NjdjMzlmZWViMWZlYjViNDllOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0
ZXItZW5kaW5nLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0
bWwKQEAgLTgsNyArOCw3IEBACiAgICAgICAgICAgICB2aWRlby5wbGF5KCk7CiAgICAgICAgICAg
ICAvLyBUaGUgbWVkaWEgY29udHJvbHMgc2hvdWxkIGJlIHVwZGF0ZWQgb24gdGhlIG5leHQgcnVu
bG9vcC4KICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3Nh
Z2UoInJlcGxheWluZyIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJyZXBsYXlpbmciKTsKICAgICAgICAgICAg
IH0sIDApOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbApp
bmRleCBkMjMzNDYzY2ViOGZhYTMyMmUzNmYwYzIyYmFjMTkxYTMzM2U4YWZhLi44NTgyYjQ1N2Yz
MWQ5MDAzYTI2NWZmMWUxOTIwNjU0NWQwOWZlY2NjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRoLWF1ZGlvLmh0bWwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0
aC1hdWRpby5odG1sCkBAIC0xNCw3ICsxNCw3IEBACiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVv
dXQodGltZW91dCk7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBs
YXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlp
bmcnKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgICAgIHdpbmRvdy5s
b2NhdGlvbiA9ICdjYWxsYmFjazpwbGF5aW5nJzsKICAgICAgICAgICAgIH0KQEAgLTIzLDcgKzIz
LDcgQEAKIAogICAgIGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CiAgICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0
TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOwogICAgICAg
ICB9IGNhdGNoKGUpIHsgfQogICAgIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aG91dC1hdWRpby5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8t
d2l0aG91dC1hdWRpby5odG1sCmluZGV4IDNhYjc1MmU4NThjMTQxMWRmYjQyNGQwNzgyNmQ1NjFh
NmQ3ZWE3NTkuLmY0OTJmYTRkMzUyM2RkMzg3NmQ1NmRjODRhNTE3YjQxMjUyYmZkOWEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVv
LXdpdGhvdXQtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9sYXJnZS12aWRlby13aXRob3V0LWF1ZGlvLmh0bWwKQEAgLTEzLDcgKzEzLDcgQEAK
ICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRp
bWVvdXQpOwogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAgICAg
ICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgd2luZG93Lmxv
Y2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICB9CkBAIC0yMSw3ICsyMSw3IEBA
CiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkgewogICAgICAgICB0cnkgewotICAgICAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3Nh
Z2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKICAgICAgICAgfSBj
YXRjaChlKSB7IH0KICAgICB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWluZy1jbGljay10
by1wYXVzZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFy
Z2UtdmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWwKaW5kZXggYzgxYTMxZTZj
OWNkZjlkYzQ1MjdkNDI2YmM2NTRhZjkwZWE1NzZjNS4uMjJkYmViZjEyZGZmMDk2NmE1MTFlZjE0
NWI4YmNiZjk5Y2Y2NGJjYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9z
LWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAKICAgICAg
ICAgICAgIGZ1bmN0aW9uIGhhbmRsZUZpcnN0UGF1c2UoKSB7CiAgICAgICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5k
bGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQi
KTsKICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgICAgICAgICB9
LCAwKTsKICAgICAgICAgICAgIH0KQEAgLTI1LDcgKzI1LDcgQEAKICAgICAgICAgICAgIGZ1bmN0
aW9uIGhhbmRsZVNlY29uZFBhdXNlKCkgewogICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVz
c2FnZSgicGF1c2VkIik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgicGF1c2VkIik7CiAgICAgICAg
ICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgICAgICAgICAgfSwgMCk7CiAgICAg
ICAgICAgICB9CkBAIC0zMyw3ICszMyw3IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBiZWdhbkF1
dG9wbGF5aW5nKCkgewogICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3Bs
YXllZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAg
ICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLXNjcm9sbC10by12aWRlby5odG1sIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5
aW5nLXNjcm9sbC10by12aWRlby5odG1sCmluZGV4IGRiNDNkNGJiNDVjYmE3ZjdhMGI1Yzc3MGJl
NzVhZGE4OTgxMjgwN2QuLmQxYzFhYWVhOTAyZDRhNjEzNjFjZDZhOTk0NzRjNzExYWVmYzIzYjEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdl
LXZpZGVvcy1hdXRvcGxheWluZy1zY3JvbGwtdG8tdmlkZW8uaHRtbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctc2Ny
b2xsLXRvLXZpZGVvLmh0bWwKQEAgLTE0LDEzICsxNCwxMyBAQAogICAgICAgICAgICAgZnVuY3Rp
b24gc2Nyb2xsVG9TZWNvbmRWaWV3KCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoIiNzZWNvbmQiKS5zY3JvbGxJbnRvVmlldygpOwogICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIpOwor
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKICAgICAgICAgICAgICAgICB9LCAwKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAg
ICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgICAgICAgICB9IGNhdGNo
KGUpIHsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0sIDApCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
b3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNvbnRy
b2xzLmh0bWwKaW5kZXggZWE1MDQ5NTMwNjkyZTI2ZTQzZTI3OTkyNjRjZDhiMjUwY2M5NGZkYy4u
MzFmODZjYmM5NjM1NTNlYzc2OGM0NGJjNzJhZTg3Njc5ZWNhMzhhMiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBhdXNlZC12
aWRlby1oaWRlcy1jb250cm9scy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRt
bApAQCAtMTcsMTQgKzE3LDE0IEBACiAgICAgZnVuY3Rpb24gaGFuZGxlUGF1c2VkKCkgewogICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0
TWVzc2FnZSgicGF1c2VkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIpOwogICAgICAgICAgICAg
fSBjYXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIGZ1bmN0aW9uIGJlZ2Fu
QXV0b3BsYXlpbmcoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
ImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgfQog
ICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJvbHMu
aHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVv
cy1wbGF5aW5nLW11dGVkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwKaW5kZXggMmU1N2RmNzhi
MWZlYjA0ZTgzMmUzZDlmMzFjZjliMmZhM2FmZGYyNy4uMzQ0ODZlMmUzZmQ2N2E1Y2Q3MTY4YzNi
NzU1YjEyZmYwMWI3M2M2YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJv
bHMuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJn
ZS12aWRlb3MtcGxheWluZy1tdXRlZC12aWRlby1oaWRlcy1jb250cm9scy5odG1sCkBAIC0xNSwx
NCArMTUsMTQgQEAKICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2JhciIpLnNjcm9s
bEludG9WaWV3KCk7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBs
YXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CisgICAgICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlp
bmciKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0K
ICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXll
ZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RI
YW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUp
IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtl
ZXBzLWNvbnRyb2xzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9sYXJnZS12aWRlb3MtcGxheWluZy12aWRlby1rZWVwcy1jb250cm9scy5odG1sCmluZGV4IGRi
N2NhYzZiOTkxOTQ2MzMyM2IzMzMxYWMzODhiZWU3ZWE1YzQ1MWYuLmI2ZmNmN2EwNTBjNWUwNmUx
ZTM2NmJmZTQyZDMxNWFhMjM3MDQ3OTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNvbnRy
b2xzLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFy
Z2UtdmlkZW9zLXBsYXlpbmctdmlkZW8ta2VlcHMtY29udHJvbHMuaHRtbApAQCAtMTQsMTQgKzE0
LDE0IEBACiAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNiYXIiKS5zY3JvbGxJbnRv
VmlldygpOwogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5
IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5n
SGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQi
KTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KICAg
ICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIp
OworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
b3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sCmluZGV4IDc2NTI1NGQyM2Y4ODhhNTU2YjNkN2Y4
ODFjMzZmMGRlNTk3ZjE3MDUuLjNlMTcwY2VkNWQyOWRlYTJlMGQzN2JmZTg2MTZmZGVkNTNmYTkz
ODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xh
cmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXku
aHRtbApAQCAtNCw3ICs0LDcgQEAKICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewog
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5w
b3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAg
ICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3NraW5ueS1h
dXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9za2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1s
CmluZGV4IGJhNDhkNGQ3MjA5NzZlNTI0OTg2MGZkYWZkOTNiZDM5ZGJmNzg0YWYuLjI2ZWY1M2Rj
MjM0Y2MyYmZkM2FjMTk3N2Q5MjI5NTA1ZjUwNjBlNmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3NraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRo
LWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
c2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbApAQCAtMTEsNyArMTEsNyBA
QAogICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7Cisg
ICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIu
cG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAg
ICAgIH0sIDApOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL3dpZGUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRvcGxheWluZy12aWRl
by13aXRoLWF1ZGlvLmh0bWwKaW5kZXggMGViOWFmNmFjN2U1Mzg1MTQyNjI0MzY2ODA0MWM2Yjk0
YzI4OTVkNS4uZWEyY2I1MDYzMjMwYTc2ZDMyZTZjNjc1Yzk4YTU3M2E0ZGZhYzVlZSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRvcGxh
eWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKQEAg
LTExLDcgKzExLDcgQEAKICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgi
cGxheWluZyIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CiAgICAgICAgICAgICB9IGNhdGNo
KGUpIHsgfQogICAgICAgICB9LCAwKTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9U
ZXN0V0tXZWJWaWV3TWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTcxNzNhZGU0ZDE0MTcxYTAxYzYxNTMxYjQ5
ZWM3YThkMjY3MDEyMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFj
L1Rlc3RXS1dlYlZpZXdNYWMuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBUZXN0V0tXZWJWaWV3TWFjX2gKKyNkZWZpbmUgVGVzdFdLV2ViVmlld01hY19oCisKKyNpbXBv
cnQgPFdlYktpdC9XZWJLaXQuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1B
QykKKworQGludGVyZmFjZSBUZXN0TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRN
ZXNzYWdlSGFuZGxlcj4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3RyaW5n
ICopbWVzc2FnZSBoYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXI7CitAZW5kCisKK0Bp
bnRlcmZhY2UgVGVzdFdLV2ViVmlldyA6IFdLV2ViVmlldworLSAodm9pZCltb3VzZURvd25BdFBv
aW50OihOU1BvaW50KXBvaW50OworLSAodm9pZClwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdl
OihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbjsKKy0g
KHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7CistICh2b2lkKXR5
cGVDaGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyOworLSAoTlNTdHJpbmcgKilzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdDsKKy0gKHZvaWQpd2FpdEZvck1lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZTsKKy0gKHZvaWQpcGVyZm9ybUFmdGVyTG9hZGluZzooZGlz
cGF0Y2hfYmxvY2tfdClhY3Rpb25zOworQGVuZAorCisjZW5kaWYgLyogV0tfQVBJX0VOQUJMRUQg
JiYgUExBVEZPUk0oTUFDKSAqLworCisjZW5kaWYgLyogVGVzdFdLV2ViVmlld01hY19oICovCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YzkzN2I0ZDlmYjE2OTUxMTFjMTY5OTY4MGM1YzAwMDk2MTkwZTJhCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbQpAQCAtMCwwICsx
LDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVGVzdFdL
V2ViVmlld01hYy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKQorCisj
aW1wb3J0ICJVdGlsaXRpZXMuaCIKKworI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorI2ltcG9y
dCA8Q2FyYm9uL0NhcmJvbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYktpdFByaXZhdGUuaD4KKyNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGltcGxlbWVudGF0aW9uIFRlc3RNZXNzYWdlSGFu
ZGxlciB7CisgICAgZGlzcGF0Y2hfYmxvY2tfdCBfaGFuZGxlcjsKKyAgICBOU1N0cmluZyAqX21l
c3NhZ2U7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICop
bWVzc2FnZSBoYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXIKK3sKKyAgICBpZiAoIShz
ZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9oYW5kbGVy
ID0gW2hhbmRsZXIgY29weV07CisgICAgX21lc3NhZ2UgPSBtZXNzYWdlOworCisgICAgcmV0dXJu
IHNlbGY7Cit9CisKKy0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50
Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2Fn
ZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZQoreworICAgIGlmIChbKE5TU3RyaW5nICopW21l
c3NhZ2UgYm9keV0gaXNFcXVhbFRvU3RyaW5nOl9tZXNzYWdlXSAmJiBfaGFuZGxlcikKKyAgICAg
ICAgX2hhbmRsZXIoKTsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmll
dworCistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKK3sKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAorICAgIE5TRXZlbnRUeXBlIG1v
dXNlRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOworI2Vsc2UKKyAgICBOU0V2
ZW50VHlwZSBtb3VzZUV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRG93bjsKKyNlbmRpZgorICAgIFtz
ZWxmIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6bW91c2VFdmVudFR5cGUg
bG9jYXRpb246TlNNYWtlUG9pbnQocG9pbnQueCwgcG9pbnQueSkgbW9kaWZpZXJGbGFnczowIHRp
bWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpbTlNH
cmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDow
IHByZXNzdXJlOjBdXTsKK30KKworLSAodm9pZClwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdl
OihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbgorewor
ICAgIFJldGFpblB0cjxUZXN0TWVzc2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtbVGVz
dE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0V2l0aE1lc3NhZ2U6bWVzc2FnZSBoYW5kbGVyOmFj
dGlvbl0pOworICAgIFdLVXNlckNvbnRlbnRDb250cm9sbGVyKiBjb250ZW50Q29udHJvbGxlciA9
IFtbc2VsZiBjb25maWd1cmF0aW9uXSB1c2VyQ29udGVudENvbnRyb2xsZXJdOworICAgIFtjb250
ZW50Q29udHJvbGxlciByZW1vdmVTY3JpcHRNZXNzYWdlSGFuZGxlckZvck5hbWU6QCJ0ZXN0SGFu
ZGxlciJdOworICAgIFtjb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpo
YW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworfQorCistICh2b2lkKWxvYWRUZXN0
UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lCit7CisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOnBhZ2VOYW1lIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rv
cnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbc2VsZiBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKK30KKworLSAodm9pZCl0eXBlQ2hhcmFjdGVyOihjaGFyKWNoYXJhY3RlciB7Cisg
ICAgTlNTdHJpbmcgKmNoYXJhY3RlckFzU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCIlYyIgLCBjaGFyYWN0ZXJdOworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMjAwCisgICAgTlNFdmVudFR5cGUga2V5RG93bkV2ZW50VHlwZSA9IE5TRXZlbnRU
eXBlS2V5RG93bjsKKyAgICBOU0V2ZW50VHlwZSBrZXlVcEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBl
S2V5VXA7CisjZWxzZQorICAgIE5TRXZlbnRUeXBlIGtleURvd25FdmVudFR5cGUgPSBOU0tleURv
d247CisgICAgTlNFdmVudFR5cGUga2V5VXBFdmVudFR5cGUgPSBOU0tleVVwOworI2VuZGlmCisg
ICAgW3NlbGYga2V5RG93bjpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleURvd25FdmVudFR5
cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJy
ZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFy
YWN0ZXJBc1N0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVyQXNTdHJp
bmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6Y2hhcmFjdGVyXV07CisgICAgW3NlbGYga2V5VXA6W05T
RXZlbnQga2V5RXZlbnRXaXRoVHlwZTprZXlVcEV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dO
dW1iZXI6MCBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3Rl
cnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29k
ZTpjaGFyYWN0ZXJdXTsKK30KKworLSAoTlNTdHJpbmcgKilzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdAoreworICAgIF9fYmxvY2sgYm9vbCBpc1dhaXRpbmdG
b3JKYXZhU2NyaXB0ID0gZmFsc2U7CisgICAgX19ibG9jayBOU1N0cmluZyAqZXZhbFJlc3VsdCA9
IG5pbDsKKyAgICBbc2VsZiBldmFsdWF0ZUphdmFTY3JpcHQ6c2NyaXB0IGNvbXBsZXRpb25IYW5k
bGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikKKyAgICB7CisgICAgICAgIGV2YWxSZXN1
bHQgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAIiwgcmVzdWx0XTsKKyAgICAgICAg
aXNXYWl0aW5nRm9ySmF2YVNjcmlwdCA9IHRydWU7CisgICAgICAgIEVYUEVDVF9UUlVFKCFlcnJv
cik7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzV2FpdGluZ0Zv
ckphdmFTY3JpcHQpOworICAgIHJldHVybiBldmFsUmVzdWx0OworfQorCistICh2b2lkKXdhaXRG
b3JNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UKK3sKKyAgICBfX2Jsb2NrIGJvb2wgaXNEb25l
V2FpdGluZyA9IGZhbHNlOworICAgIFtzZWxmIHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6
bWVzc2FnZSBhY3Rpb246XigpCisgICAgeworICAgICAgICBpc0RvbmVXYWl0aW5nID0gdHJ1ZTsK
KyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZVdhaXRpbmcpOwor
fQorCistICh2b2lkKXBlcmZvcm1BZnRlckxvYWRpbmc6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9u
cyB7CisgICAgVGVzdE1lc3NhZ2VIYW5kbGVyICpoYW5kbGVyID0gW1tUZXN0TWVzc2FnZUhhbmRs
ZXIgYWxsb2NdIGluaXRXaXRoTWVzc2FnZTpAImxvYWRlZCIgaGFuZGxlcjphY3Rpb25zXTsKKyAg
ICBOU1N0cmluZyAqb25sb2FkU2NyaXB0ID0gQCJ3aW5kb3cub25sb2FkID0gKCkgPT4gd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMub25sb2FkSGFuZGxlci5wb3N0TWVzc2FnZSgnbG9hZGVk
JykiOworICAgIFdLVXNlclNjcmlwdCAqc2NyaXB0ID0gW1tXS1VzZXJTY3JpcHQgYWxsb2NdIGlu
aXRXaXRoU291cmNlOm9ubG9hZFNjcmlwdCBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVj
dGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOT107CisKKyAgICBXS1Vz
ZXJDb250ZW50Q29udHJvbGxlciogY29udGVudENvbnRyb2xsZXIgPSBbW3NlbGYgY29uZmlndXJh
dGlvbl0gdXNlckNvbnRlbnRDb250cm9sbGVyXTsKKyAgICBbY29udGVudENvbnRyb2xsZXIgYWRk
VXNlclNjcmlwdDpzY3JpcHRdOworICAgIFtjb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjpoYW5kbGVyIG5hbWU6QCJvbmxvYWRIYW5kbGVyIl07Cit9CisKK0BlbmQKKwor
I2VuZGlmIC8qIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgKi8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289035</attachid>
            <date>2016-09-15 23:15:01 -0700</date>
            <delta_ts>2016-09-16 10:43:33 -0700</delta_ts>
            <desc>Suppresses EditorStateChanged while selecting text when replacing a soft space.</desc>
            <filename>bug-162009-20160915231222.patch</filename>
            <type>text/plain</type>
            <size>84656</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWEyZTNjYjRhZTU3Yjdh
Mzg2ZjRhMmI2ZTVhZjQ4ZjcxZjhkNmI3My4uY2E4ZTIyYTcwMTNmOWI1MDcwYzYxZjM5ZmEzMDRm
ZTZhNTVmZTA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE2LTA5LTE1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEluc2VydGluZyBh
IHNwYWNlIGFmdGVyIGluc2VydGluZyBhbiBhY2NlcHRlZCBjYW5kaWRhdGUgc2Nyb2xscyB0aGUg
ZG9jdW1lbnQgYW5kIGNhdXNlcyBhIGZsaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjAwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgw
ODYyMzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWZ0ZXIgaW5zZXJ0aW5nIGEgdGV4dCBjYW5kaWRhdGUsIGlmIHRoZSBjYW5kaWRhdGUgZW5kZWQg
d2l0aCBhIHNvZnQgc3BhY2UsIHRoZSBuZXh0IHNwYWNlIHdlIGluc2VydCBzaG91bGQganVzdAor
ICAgICAgICByZXBsYWNlIHRoZSBzb2Z0IHNwYWNlLiBUaGlzIGN1cnJlbnRseSB3b3JrcyBiZWNh
dXNlIHdlIGxlYXZlIHRoZSB0ZXh0IGluc2VydGlvbiBvdXQgb2YgdGhlIGxpc3Qgb2YKKyAgICAg
ICAgS2V5cHJlc3NDb21tYW5kcyBzZW50IHRvIHRoZSB3ZWIgcHJvY2VzcyBhbmQgaW5zdGVhZCBy
ZXBsYWNlIHRoZSBzb2Z0IHNwYWNlIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMuCisgICAg
ICAgIEhvd2V2ZXIsIHRoaXMgbWVhbnMgd2hlbiB0aGUgd2ViIHByb2Nlc3MgaGFuZGxlcyB0aGlz
IGtleWRvd24gZXZlbnQsIHRoZSBjdXJyZW50IGVkaXRvciB3aWxsIG5vdCBoYW5kbGUgaXQsCisg
ICAgICAgIHNpbmNlIHRoZSBsaXN0IG9mIGtleSBjb21tYW5kcyBpcyBlbXB0eSBkZXNwaXRlIHRo
ZSB0ZXh0IGFuZCB1bm1vZGlmaWVkIHRleHQgYmVpbmcgbm9uLWVtcHR5LgorCisgICAgICAgIFRv
IGZpeCB0aGlzLCB3aGVuIHNlbmRpbmcga2V5ZG93biBvciBrZXl1cCBldmVudHMgd2hlcmUgd2Ug
cmVwbGFjZSBhIHNvZnQgc3BhY2UsIHdlIHNldCB0aGUga2V5IGV2ZW50J3MgdGV4dCB0bworICAg
ICAgICBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiBhIHNwYWNlLiBUaGlzIGFsbG93cyB1cyB0
byByZXR1cm4gZWFybHkgaW4gRXZlbnRIYW5kbGVyOjprZXlFdmVudCBhbmQgYXZvaWQgdGhlCisg
ICAgICAgIGNvZGVwYXRoIHRoYXQgdHJpZXMgdG8gaW5zZXJ0IHRleHQgaW50byB0aGUgY3VycmVu
dCBlZGl0b3IgYW5kIChpbiB0aGUgY2FzZSBvZiBpbnNlcnRpbmcgYSAnICcpIHNjcm9sbHMgdGhl
CisgICAgICAgIGRvY3VtZW50IGlmIG5lY2Vzc2FyeS4gU2luY2Ugd2UndmUgYWxyZWFkeSBoYW5k
bGVkIHRleHQgaW5zZXJ0aW9uIHZpYSBXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmMsIHRoZXJlIGlz
IG5vIG5lZWQKKyAgICAgICAgdG8gYWxzbyBkaXNwYXRjaCB0aGUga2V5cHJlc3MgdG8gdGhlIGVk
aXRvci4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGZsaWNr
ZXJpbmcgaW4gdGhlIGNhbmRpZGF0ZXMgVUkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgd2UncmUgYXN5
bmNocm9ub3VzbHkKKyAgICAgICAgcmVwbGFjaW5nIHRoZSBsYXN0IHNvZnQgc3BhY2UuIER1cmlu
ZyB0aGlzIG9wZXJhdGlvbiwgd2Ugc2VsZWN0IHRoZSByYW5nZSBvZiB0aGUgc29mdCBzcGFjZSBh
bmQgdGhlbiBpbnNlcnQgdGhlCisgICAgICAgIG5ldyB0ZXh0LiBUaGlzIGNhdXNlcyBhIG1vbWVu
dGFyeSByYW5nZSBzZWxlY3Rpb24gd2hpY2ggdGhlIHdlYiBwcm9jZXNzIG5vdGlmaWVzIHRoZSBV
SSBwcm9jZXNzIGFib3V0LCBwcm9tcHRpbmcKKyAgICAgICAgdXMgdG8gaGlkZSB0aGUgY2FuZGlk
YXRlcyBsaXN0LiBUbyBhZGRyZXNzIHRoaXMsIHdlIHN1cHByZXNzIHRoZSBFZGl0b3JTdGF0ZUNo
YW5nZWQgbWVzc2FnZSBmaXJlZCBmcm9tIHRoZSB3ZWIKKyAgICAgICAgcHJvY2VzcyB0byB0aGUg
VUkgcHJvY2VzcyB3aGlsZSB3ZSdyZSBzZWxlY3RpbmcgdGhlIG9yaWdpbmFsIHJhbmdlIHRvIHJl
cGxhY2UuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIDMgbmV3IFdlYktpdCBBUEkgdGVzdHMu
CisKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAq
IFNoYXJlZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCk6CisgICAg
ICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFj
L1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdlYktpdDo6dGV4dEZyb21FdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OnVubW9kaWZpZWRUZXh0RnJvbUV2ZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9o
YW5kbGVBY2NlcHRlZENhbmRpZGF0ZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRIYW5k
bGVBY2NlcHRlZENhbmRpZGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZFVwZGF0ZUNh
bmRpZGF0ZUxpc3RWaXNpYmlsaXR5Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2ZvcmNlUmVx
dWVzdENhbmRpZGF0ZXNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oYW5kbGVDb250cm9sbGVk
RWxlbWVudElEUmVzcG9uc2U6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Zm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3Rp
bmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlVcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjprZXlEb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6aW5zZXJ0VGV4dEFzeW5jKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbnNlcnRUZXh0QXN5bmMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW46CisKIDIwMTYtMDktMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdLV2ViVmlldy5oYXNPbmx5U2VjdXJlQ29udGVudCBhbHdheXMgcmV0
dXJucyAiWUVTIiBhZnRlciBnb2luZyBiYWNrIHRvIGEgQ2FjaGVkUGFnZSAoZXZlbiBpZiBpdCBo
YXMgaHR0cCByZXNvdXJjZXMpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05h
dGl2ZVdlYktleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJL
ZXlib2FyZEV2ZW50LmgKaW5kZXggMjNjYzc0YTVjODgxODRhNjc4Mjg2MDczZTgyNmQ0MGQ4ZTcy
ZDNlYi4uMjJjYTYxZTM0YzhmYmE4YTE0MjczZTA2M2NmNDNkYTU1MDk1MWE0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC02MCw3ICs2
MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCA6
IHB1YmxpYyBXZWJLZXlib2FyZEV2ZW50IHsKIHB1YmxpYzoKICNpZiBVU0UoQVBQS0lUKQotICAg
IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqLCBib29sIGhhbmRsZWRCeUlucHV0TWV0
aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYpOworICAgIE5hdGl2
ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBi
b29sIHJlcGxhY2VzU29mdFNwYWNlLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21t
YW5kPiYpOwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQo
Y29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYpOwogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQoR2RrRXZlbnQqLCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblJlc3VsdHMmLCBJbnB1dE1l
dGhvZEZpbHRlcjo6RXZlbnRGYWtlZEZvckNvbXBvc2l0aW9uLCBWZWN0b3I8U3RyaW5nPiYmIGNv
bW1hbmRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvTmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvTmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudE1hYy5tbQppbmRleCBhZmIzYjYwNzEwYzZhYmRhOGVjNjY4ZGNmYjU1ZjVl
YWFjZmIyZTdmLi42ZjU5Y2JiNDM4MjgzMmYwNTI3YzcxNWVlZDZjYWU3MjA2MzJkYTMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL05hdGl2ZVdlYktleWJvYXJkRXZlbnRN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2
ZW50TWFjLm1tCkBAIC0zNSw4ICszNSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAotTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29u
c3QgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQotICAgIDogV2ViS2V5Ym9hcmRF
dmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRs
ZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpCitOYXRpdmVXZWJLZXlib2FyZEV2ZW50OjpOYXRp
dmVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGhhbmRsZWRCeUlucHV0TWV0
aG9kLCBib29sIHJlcGxhY2VzU29mdFNwYWNlLCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5k
PiYgY29tbWFuZHMpCisgICAgOiBXZWJLZXlib2FyZEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIHJlcGxhY2Vz
U29mdFNwYWNlLCBjb21tYW5kcykpCiAgICAgLCBtX25hdGl2ZUV2ZW50KGV2ZW50KQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5LmgKaW5kZXggNTk5OTVm
ODczZjQzNDI5NGE0ODg0MjY1NTVmMWE2ZmY3NmRiM2NkNS4uYmU4NzJjZWI2OGE1YWNjZjdiYzZi
ZmFiZDIxZDIzNGRkZDk2NDI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9XZWJFdmVudEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICNpZiBVU0UoQVBQS0lUKQog
ICAgIHN0YXRpYyBXZWJNb3VzZUV2ZW50IGNyZWF0ZVdlYk1vdXNlRXZlbnQoTlNFdmVudCAqLCBO
U0V2ZW50ICpsYXN0UHJlc3N1cmVFdmVudCwgTlNWaWV3ICp3aW5kb3dWaWV3KTsKICAgICBzdGF0
aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKiwgTlNWaWV3ICp3
aW5kb3dWaWV3KTsKLSAgICBzdGF0aWMgV2ViS2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KE5TRXZlbnQgKiwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9y
PFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mKTsKKyAgICBzdGF0aWMgV2ViS2V5Ym9hcmRFdmVu
dCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKiwgYm9vbCBoYW5kbGVkQnlJbnB1dE1l
dGhvZCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mKTsKICAgICBzdGF0aWMgYm9vbCBzaG91bGRCZUhhbmRsZWRBc0NvbnRleHRD
bGljayhjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKICNlbmRpZiAvLyBVU0Uo
QVBQS0lUKQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZl
bnRGYWN0b3J5Lm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3Rvcnku
bW0KaW5kZXggNWJkYmM4ZmQ2ZGUxODkxMDU5NDQ1ZjQ0NDU3MWFmM2I2Y2E3NDI4Ni4uNWYzYmE5
MjhiZmIxOGVhYmJjYzU1YTU4NTVlN2E1NjY2OWFiYTNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KQEAgLTIzNiw4ICsyMzYsMTAgQEAgc3RhdGlj
IFdlYldoZWVsRXZlbnQ6OlBoYXNlIG1vbWVudHVtUGhhc2VGb3JFdmVudChOU0V2ZW50ICpldmVu
dCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViV2hlZWxFdmVudDo6UGhhc2U+KHBoYXNlKTsK
IH0KIAotc3RhdGljIGlubGluZSBTdHJpbmcgdGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCkK
K3N0YXRpYyBpbmxpbmUgU3RyaW5nIHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQsIGJvb2wg
cmVwbGFjZXNTb2Z0U3BhY2UpCiB7CisgICAgaWYgKHJlcGxhY2VzU29mdFNwYWNlKQorICAgICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCiAj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKICAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQpAQCAtMjQ2LDggKzI0
OCwxMCBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyB0ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50
KQogICAgIHJldHVybiBTdHJpbmcoW2V2ZW50IGNoYXJhY3RlcnNdKTsKIH0KIAotc3RhdGljIGlu
bGluZSBTdHJpbmcgdW5tb2RpZmllZFRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQpCitzdGF0
aWMgaW5saW5lIFN0cmluZyB1bm1vZGlmaWVkVGV4dEZyb21FdmVudChOU0V2ZW50KiBldmVudCwg
Ym9vbCByZXBsYWNlc1NvZnRTcGFjZSkKIHsKKyAgICBpZiAocmVwbGFjZXNTb2Z0U3BhY2UpCisg
ICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCkBAIC00NTcs
MTEgKzQ2MSwxMSBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hl
ZWxFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kbwogICAgIHJldHVybiBXZWJXaGVl
bEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgSW50UG9pbnQocG9zaXRpb24pLCBJbnRQb2ludChnbG9i
YWxQb3NpdGlvbiksIEZsb2F0U2l6ZShkZWx0YVgsIGRlbHRhWSksIEZsb2F0U2l6ZSh3aGVlbFRp
Y2tzWCwgd2hlZWxUaWNrc1kpLCBncmFudWxhcml0eSwgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2
aWNlLCBwaGFzZSwgbW9tZW50dW1QaGFzZSwgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgc2Ny
b2xsQ291bnQsIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgbW9kaWZpZXJzLCB0aW1lc3Rh
bXApOwogfQogCi1XZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5
Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQorV2ViS2V5Ym9h
cmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAq
ZXZlbnQsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2Us
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykKIHsKICAg
ICBXZWJFdmVudDo6VHlwZSB0eXBlICAgICAgICAgICAgID0gaXNLZXlVcEV2ZW50KGV2ZW50KSA/
IFdlYkV2ZW50OjpLZXlVcCA6IFdlYkV2ZW50OjpLZXlEb3duOwotICAgIFN0cmluZyB0ZXh0ICAg
ICAgICAgICAgICAgICAgICAgPSB0ZXh0RnJvbUV2ZW50KGV2ZW50KTsKLSAgICBTdHJpbmcgdW5t
b2RpZmllZFRleHQgICAgICAgICAgID0gdW5tb2RpZmllZFRleHRGcm9tRXZlbnQoZXZlbnQpOwor
ICAgIFN0cmluZyB0ZXh0ICAgICAgICAgICAgICAgICAgICAgPSB0ZXh0RnJvbUV2ZW50KGV2ZW50
LCByZXBsYWNlc1NvZnRTcGFjZSk7CisgICAgU3RyaW5nIHVubW9kaWZpZWRUZXh0ICAgICAgICAg
ICA9IHVubW9kaWZpZWRUZXh0RnJvbUV2ZW50KGV2ZW50LCByZXBsYWNlc1NvZnRTcGFjZSk7CiAg
ICAgU3RyaW5nIGtleUlkZW50aWZpZXIgICAgICAgICAgICA9IGtleUlkZW50aWZpZXJGb3JLZXlF
dmVudChldmVudCk7CiAgICAgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSAgICAgICA9IHdpbmRv
d3NLZXlDb2RlRm9yS2V5RXZlbnQoZXZlbnQpOwogICAgIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29k
ZSAgICAgICAgPSBbZXZlbnQga2V5Q29kZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDJiODQ0OTg2MmE0Yjc0ZDg1NjgxODE0MWE3
YmM5NzhkMGM0YTkzYjYuLjhmNTk3M2JjMmEyMTc3ZGEyMWFlZjY3Mjc3NjRmNWQ1MTZjZWI5ZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC00NTY0LDYgKzQ1NjQsMjggQEAgLSAodm9pZClfaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJ
RFJlc3BvbnNlOihOU1N0cmluZyAqKWlkZW50aWZpZXIKIHsKICAgICAvLyBPdmVycmlkZGVuIGJ5
IHN1YmNsYXNzZXMuCiB9CisKKy0gKHZvaWQpX2hhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOihOU1Rl
eHRDaGVja2luZ1Jlc3VsdCAqKWNhbmRpZGF0ZQoreworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMjAwCisgICAgX2ltcGwtPmhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRl
KGNhbmRpZGF0ZSk7CisjZW5kaWYKK30KKworLSAodm9pZClfZGlkSGFuZGxlQWNjZXB0ZWRDYW5k
aWRhdGUKK3sKKyAgICAvLyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMuCit9CisKKy0gKHZvaWQp
X2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5OihCT09MKXZpc2libGUKK3sKKyAgICAv
LyBPdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMuCit9CisKKy0gKHZvaWQpX2ZvcmNlUmVxdWVzdENh
bmRpZGF0ZXMKK3sKKyAgICBfaW1wbC0+Zm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3Rpbmco
KTsKK30KICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIC8vIEV4ZWN1dGUgdGhlIHN1cHBsaWVk
IGJsb2NrIGFmdGVyIHRoZSBuZXh0IHRyYW5zYWN0aW9uIGZyb20gdGhlIFdlYlByb2Nlc3MuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCmluZGV4IDNjMzQzM2MzZDEwZTcxYTYxYWRmYWNjMzlmZTViZDA4MTZlYWE4MTcuLjhl
Y2EwMjA3NGU1NTg5NDdmNmZiODRmZmQ0MWZmMTVhZTI4M2NiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0y
NzMsNiArMjczLDEwIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFj
dGlvblR5cGUpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzQWN0
aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIp
KTsKIC0gKHZvaWQpX3JlcXVlc3RDb250cm9sbGVkRWxlbWVudElEIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX2hhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURS
ZXNwb25zZTooTlNTdHJpbmcgKilpZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpKTsKKy0gKHZvaWQpX2hhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlOihOU1RleHRDaGVj
a2luZ1Jlc3VsdCAqKWNhbmRpZGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSk7CistICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSk7CistICh2b2lkKV9mb3JjZVJlcXVlc3RDYW5kaWRhdGVzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX2RpZFVwZGF0ZUNh
bmRpZGF0ZUxpc3RWaXNpYmlsaXR5OihCT09MKXZpc2libGUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKIC0gKHZvaWQpX2RvQWZ0ZXJOZXh0UHJlc2VudGF0
aW9uVXBkYXRlOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jayBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMiksIGlvcygxMC4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oCmluZGV4IDQ5OTQzZjE2Y2I1ZWRjMzVlOWNhNzY5NTY3NmRhODMwN2Vk
ODg0NGYuLmMyZjNhZjVlYmYzNzQ2Nzk2NmNiZGE0MWYzZTcyOWIwM2JjM2JlM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC04NCw2ICs4NCw4
IEBAIE9CSkNfQ0xBU1MgX1dLVGh1bWJuYWlsVmlldzsKIEBvcHRpb25hbAogLSAodm9pZClfd2Vi
X2RpZEFkZE1lZGlhQ29udHJvbHNNYW5hZ2VyOihpZCljb250cm9sc01hbmFnZXI7CiAtICh2b2lk
KV93ZWJfZGlkUmVtb3ZlTWVkaWFDb250cm9sc01hbmFnZXI7CistICh2b2lkKV9kaWRIYW5kbGVB
Y2NlcHRlZENhbmRpZGF0ZTsKKy0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RWaXNpYmls
aXR5OihCT09MKXZpc2libGU7CiAKIEBlbmQKIApAQCAtNDc4LDYgKzQ4MCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJpZ2h0TW91c2VVcChOU0V2ZW50ICopOwogCiAgICAgdm9pZCB1cGRhdGVXZWJW
aWV3SW1wbEFkZGl0aW9ucygpOworICAgIHZvaWQgZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRl
c3RpbmcoKTsKICAgICBib29sIHNob3VsZFJlcXVlc3RDYW5kaWRhdGVzKCkgY29uc3Q7CiAgICAg
dm9pZCBzaG93Q2FuZGlkYXRlcyhOU0FycmF5ICpjYW5kaWRhdGVzLCBOU1N0cmluZyAqLCBOU1Jl
Y3QgcmVjdE9mVHlwZWRTdHJpbmcsIE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSwgTlNWaWV3ICosIHZv
aWQgKF5jb21wbGV0aW9uSGFuZGxlcikoTlNUZXh0Q2hlY2tpbmdSZXN1bHQgKmFjY2VwdGVkQ2Fu
ZGlkYXRlKSk7CiAgICAgdm9pZCB3ZWJWaWV3SW1wbEFkZGl0aW9uc1dpbGxEZXN0cm95Vmlldygp
OwpAQCAtNjQ5LDYgKzY1Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzSGFuZGxpbmdBY2Nl
cHRlZENhbmRpZGF0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlcXVpcmVzVXNlckFjdGlvbkZv
ckVkaXRpbmdDb250cm9sc01hbmFnZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lZGl0YWJsZUVs
ZW1lbnRJc0ZvY3VzZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1RleHRJbnNlcnRpb25SZXBs
YWNpbmdTb2Z0U3BhY2UgeyBmYWxzZSB9OworICAgIHVuc2lnbmVkIG1fcGVuZGluZ0FzeW5jaHJv
bm91c1RleHRJbnNlcnRpb25Db3VudCB7IDAgfTsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpp
bmRleCA2NTE2OWVkOTNlNGQwMjUwM2ZmMTM0NWYyMGRlMDkzMDk0ZjgzMGExLi4xMjE4NDVlMmVi
MDU2OGE5YTgwNjIzMDUyNDMxMDEzY2U4MDFkYzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00NDEsNiArNDQxLDEwIEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnVwZGF0ZVdlYlZpZXdJbXBsQWRkaXRpb25zKCkKIHsKIH0KIAordm9pZCBXZWJW
aWV3SW1wbDo6Zm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3RpbmcoKQoreworfQorCiBib29s
IFdlYlZpZXdJbXBsOjpzaG91bGRSZXF1ZXN0Q2FuZGlkYXRlcygpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtNjIwLDcgKzYyNCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmJlY29tZUZp
cnN0UmVzcG9uZGVyKCkKICAgICAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0tleURvd24gfHwg
W2V2ZW50IHR5cGVdID09IE5TS2V5VXApCiAgICAgICAgICAgICBrZXlib2FyZEV2ZW50ID0gZXZl
bnQ7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIG1fcGFnZS0+c2V0SW5p
dGlhbEZvY3VzKGRpcmVjdGlvbiA9PSBOU1NlbGVjdGluZ05leHQsIGtleWJvYXJkRXZlbnQgIT0g
bmlsLCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQsIGZhbHNlLCB7IH0pLCBb
XShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsgfSk7CisgICAgICAgIG1fcGFnZS0+c2V0
SW5pdGlhbEZvY3VzKGRpcmVjdGlvbiA9PSBOU1NlbGVjdGluZ05leHQsIGtleWJvYXJkRXZlbnQg
IT0gbmlsLCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQsIGZhbHNlLCBmYWxz
ZSwgeyB9KSwgW10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7IH0pOwogICAgIH0KICAg
ICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI0MzYsNiArMjQ0MCw5IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmRpZENoYW5nZUNvbnRlbnRTaXplKENHU2l6ZSBuZXdTaXplKQogdm9pZCBXZWJWaWV3SW1wbDo6
ZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoKQogewogICAgIG1faXNIYW5kbGluZ0FjY2VwdGVk
Q2FuZGlkYXRlID0gZmFsc2U7CisKKyAgICBpZiAoW21fdmlldyByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSldKQorICAgICAgICBbbV92aWV3
IF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZV07CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnZp
ZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCkKQEAgLTM1NjcsMTEgKzM1NzQsMTEgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJpbmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRS
YW5nZSkKICAgICB9IGVsc2UKICAgICAgICAgdGV4dCA9IHN0cmluZzsKIAotICAgIEJPT0wgbmVl
ZFRvUmVtb3ZlU29mdFNwYWNlID0gTk87CisgICAgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdT
b2Z0U3BhY2UgPSBmYWxzZTsKICNpZiBIQVZFKEFEVkFOQ0VEX1NQRUxMX0NIRUNLSU5HKQogICAg
IGlmIChtX3NvZnRTcGFjZVJhbmdlLmxvY2F0aW9uICE9IE5TTm90Rm91bmQgJiYgKHJlcGxhY2Vt
ZW50UmFuZ2UubG9jYXRpb24gPT0gTlNNYXhSYW5nZShtX3NvZnRTcGFjZVJhbmdlKSB8fCByZXBs
YWNlbWVudFJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQpICYmIHJlcGxhY2VtZW50UmFuZ2Uu
bGVuZ3RoID09IDAgJiYgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIGRlbGV0
ZXNBdXRvc3BhY2VCZWZvcmVTdHJpbmc6dGV4dCBsYW5ndWFnZTpuaWxdKSB7CiAgICAgICAgIHJl
cGxhY2VtZW50UmFuZ2UgPSBtX3NvZnRTcGFjZVJhbmdlOwotICAgICAgICBuZWVkVG9SZW1vdmVT
b2Z0U3BhY2UgPSBZRVM7CisgICAgICAgIG1faXNUZXh0SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNw
YWNlID0gdHJ1ZTsKICAgICB9CiAjZW5kaWYKICAgICBtX3NvZnRTcGFjZVJhbmdlID0gTlNNYWtl
UmFuZ2UoTlNOb3RGb3VuZCwgMCk7CkBAIC0zNTgyLDcgKzM1ODksNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjppbnNlcnRUZXh0KGlkIHN0cmluZywgTlNSYW5nZSByZXBsYWNlbWVudFJhbmdlKQogICAg
IC8vIC0gSWYgaXQncyBzZW50IG91dHNpZGUgb2Yga2V5Ym9hcmQgZXZlbnQgcHJvY2Vzc2luZyAo
ZS5nLiBmcm9tIENoYXJhY3RlciBWaWV3ZXIsIG9yIHdoZW4gY29uZmlybWluZyBhbiBpbmxpbmUg
aW5wdXQgYXJlYSB3aXRoIGEgbW91c2UpLAogICAgIC8vIHRoZW4gd2UgYWxzbyBleGVjdXRlIGl0
IGltbWVkaWF0ZWx5LCBhcyB0aGVyZSB3aWxsIGJlIG5vIG90aGVyIGNoYW5jZS4KICAgICBWZWN0
b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPioga2V5cHJlc3NDb21tYW5kcyA9IG1fY29sbGVj
dGVkS2V5cHJlc3NDb21tYW5kczsKLSAgICBpZiAoa2V5cHJlc3NDb21tYW5kcyAmJiAhbmVlZFRv
UmVtb3ZlU29mdFNwYWNlKSB7CisgICAgaWYgKGtleXByZXNzQ29tbWFuZHMgJiYgIW1faXNUZXh0
SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlKSB7CiAgICAgICAgIEFTU0VSVChyZXBsYWNlbWVu
dFJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQpOwogICAgICAgICBXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQgY29tbWFuZCgiaW5zZXJ0VGV4dDoiLCB0ZXh0KTsKICAgICAgICAga2V5cHJlc3ND
b21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOwpAQCAtMzU5Niw3ICszNjAzLDcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJpbmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkK
ICAgICBpZiAoIWRpY3RhdGlvbkFsdGVybmF0aXZlcy5pc0VtcHR5KCkpCiAgICAgICAgIG1fcGFn
ZS0+aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlLCBk
aWN0YXRpb25BbHRlcm5hdGl2ZXMsIHJlZ2lzdGVyVW5kb0dyb3VwKTsKICAgICBlbHNlCi0gICAg
ICAgIG1fcGFnZS0+aW5zZXJ0VGV4dEFzeW5jKGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwg
cmVnaXN0ZXJVbmRvR3JvdXAsIG5lZWRUb1JlbW92ZVNvZnRTcGFjZSA/IEVkaXRpbmdSYW5nZUlz
UmVsYXRpdmVUbzo6UGFyYWdyYXBoIDogRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpFZGl0YWJs
ZVJvb3QpOworICAgICAgICBtX3BhZ2UtPmluc2VydFRleHRBc3luYyhldmVudFRleHQsIHJlcGxh
Y2VtZW50UmFuZ2UsIHJlZ2lzdGVyVW5kb0dyb3VwLCBtX2lzVGV4dEluc2VydGlvblJlcGxhY2lu
Z1NvZnRTcGFjZSA/IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbzo6UGFyYWdyYXBoIDogRWRpdGlu
Z1JhbmdlSXNSZWxhdGl2ZVRvOjpFZGl0YWJsZVJvb3QsIG1faXNUZXh0SW5zZXJ0aW9uUmVwbGFj
aW5nU29mdFNwYWNlKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2VsZWN0ZWRSYW5nZVdpdGhD
b21wbGV0aW9uSGFuZGxlcih2b2lkKF5jb21wbGV0aW9uSGFuZGxlclB0cikoTlNSYW5nZSBzZWxl
Y3RlZFJhbmdlKSkKQEAgLTM4NzAsNyArMzg3Nyw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBlcmZv
cm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhl
IGZpcnN0UmVzcG9uZGVyIGNoZWNrIG5lZWRlZD8KICAgICBpZiAobV92aWV3ID09IG1fdmlldy53
aW5kb3cuZmlyc3RSZXNwb25kZXIpIHsKICAgICAgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQs
IF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7Ci0gICAgICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJv
YXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRo
b2QsIGNvbW1hbmRzKSk7CisgICAgICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQo
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGZhbHNl
LCBjb21tYW5kcykpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9CkBA
IC0zODg1LDkgKzM4OTIsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6a2V5VXAoTlNFdmVudCAqZXZl
bnQpCiAKICAgICBMT0coVGV4dElucHV0LCAia2V5VXA6JXAgJUAiLCBldmVudCwgZXZlbnQpOwog
CisgICAgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgPSBmYWxzZTsKICAgICBp
bnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25z
dCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKICAgICAgICAg
QVNTRVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0VtcHR5KCkpOwotICAg
ICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChl
dmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgICAgIG1fcGFnZS0+
aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVk
QnlJbnB1dE1ldGhvZCwgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UsIGNvbW1h
bmRzKSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5MTIsOSArMzkyMCwxMCBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjprZXlEb3duKE5TRXZlbnQgKmV2ZW50KQogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgPSBmYWxzZTsKICAgICBpbnRl
cnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKICAgICAgICAgQVNT
RVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0VtcHR5KCkpOwotICAgICAg
ICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVu
dCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgICAgIG1fcGFnZS0+aGFu
ZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UsIGNvbW1hbmRz
KSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5MzAsNyArMzkzOSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaW50
ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7Ci0gICAgICAgIG1f
cGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBo
YW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgbV9wYWdlLT5oYW5kbGVL
ZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0
TWV0aG9kLCBmYWxzZSwgY29tbWFuZHMpKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjZDU3N2ZhOGUwZDQ4Yzc0NmYyOTJhMTdj
ZjAwYTc3YzkzZDZmNzcwLi4zYzA2MDJjMzRkZDc2MmFmYTQwMTI0MWU5ZTcxYzQ2MDE0MmRiNzI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjE0NSwx
MiArNjE0NSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YWRkTUlNRVR5cGVXaXRoQ3VzdG9tQ29u
dGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiAKICNpZiBQTEFURk9STShDT0NP
QSkKIAotdm9pZCBXZWJQYWdlUHJveHk6Omluc2VydFRleHRBc3luYyhjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbnRSYW5nZSwgYm9vbCByZWdpc3RlclVu
ZG9Hcm91cCwgRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvIGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVU
bykKK3ZvaWQgV2ViUGFnZVByb3h5OjppbnNlcnRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGJvb2wgcmVnaXN0ZXJVbmRv
R3JvdXAsIEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8s
IGJvb2wgc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGUpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpJ
bnNlcnRUZXh0QXN5bmModGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXAs
IHN0YXRpY19jYXN0PHVpbnQzMl90PihlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pKSwgbV9wYWdl
SUQpOworICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpJbnNlcnRUZXh0QXN5
bmModGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXAsIHN0YXRpY19jYXN0
PHVpbnQzMl90PihlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pLCBzdXBwcmVzc1NlbGVjdGlvblVw
ZGF0ZSksIG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmdldE1hcmtlZFJhbmdl
QXN5bmMoc3RkOjpmdW5jdGlvbjx2b2lkIChFZGl0aW5nUmFuZ2UsIENhbGxiYWNrQmFzZTo6RXJy
b3IpPiBjYWxsYmFja0Z1bmN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IDRiNmMxOTc2MmZmNTMzZTMwNzY5ZTdiOTYzNDc1MTI3MWQ2NDhjNjEuLjg2MTJm
N2MxMzIyMDMxYWY4MDlhOGUwMDIxMTc0MjMxNmEyYTJlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU2NCw3ICs1NjQsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKExheWVyT3JWaWV3Kik7CiAgICAg
TGF5ZXJPclZpZXcqIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBjb25zdDsKIAot
ICAgIHZvaWQgaW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgRWRpdGlu
Z1JhbmdlJiByZXBsYWNlbWVudFJhbmdlLCBib29sIHJlZ2lzdGVyVW5kb0dyb3VwID0gZmFsc2Us
IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyA9IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbzo6RWRp
dGFibGVSb290KTsKKyAgICB2b2lkIGluc2VydFRleHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbnRSYW5nZSwgYm9vbCByZWdpc3RlclVuZG9H
cm91cCA9IGZhbHNlLCBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8gPSBFZGl0aW5nUmFuZ2VJc1Jl
bGF0aXZlVG86OkVkaXRhYmxlUm9vdCwgYm9vbCBzdXBwcmVzc1NlbGVjdGlvblVwZGF0ZSA9IGZh
bHNlKTsKICAgICB2b2lkIGdldE1hcmtlZFJhbmdlQXN5bmMoc3RkOjpmdW5jdGlvbjx2b2lkIChF
ZGl0aW5nUmFuZ2UsIENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CiAgICAgdm9pZCBnZXRTZWxlY3Rl
ZFJhbmdlQXN5bmMoc3RkOjpmdW5jdGlvbjx2b2lkIChFZGl0aW5nUmFuZ2UsIENhbGxiYWNrQmFz
ZTo6RXJyb3IpPik7CiAgICAgdm9pZCBjaGFyYWN0ZXJJbmRleEZvclBvaW50QXN5bmMoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKHVpbnQ2NF90LCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IGM0NmEzODkyYTA2MGYyOGUzODQzZGU1MDU4N2RmYzk4NTg1NzRjYjIu
LmEwN2RhOWVjYTE4MDM5ODNmOTZmMzRkOWUwYWQyMDFlNWQ4ZDQwMDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2MTAsMTQgKzQ2MTAs
MTYgQEAgYm9vbCBXZWJQYWdlOjpzaG91bGRVc2VDdXN0b21Db250ZW50UHJvdmlkZXJGb3JSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKLXZv
aWQgV2ViUGFnZTo6aW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgRWRp
dGluZ1JhbmdlJiByZXBsYWNlbWVudEVkaXRpbmdSYW5nZSwgYm9vbCByZWdpc3RlclVuZG9Hcm91
cCwgdWludDMyX3QgZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvKQordm9pZCBXZWJQYWdlOjppbnNl
cnRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxh
Y2VtZW50RWRpdGluZ1JhbmdlLCBib29sIHJlZ2lzdGVyVW5kb0dyb3VwLCB1aW50MzJfdCBlZGl0
aW5nUmFuZ2VJc1JlbGF0aXZlVG8sIGJvb2wgc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGUpCiB7CiAg
ICAgRnJhbWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWlu
RnJhbWUoKTsKIAogICAgIGlmIChyZXBsYWNlbWVudEVkaXRpbmdSYW5nZS5sb2NhdGlvbiAhPSBu
b3RGb3VuZCkgewogICAgICAgICBSZWZQdHI8UmFuZ2U+IHJlcGxhY2VtZW50UmFuZ2UgPSByYW5n
ZUZyb21FZGl0aW5nUmFuZ2UoZnJhbWUsIHJlcGxhY2VtZW50RWRpdGluZ1JhbmdlLCBzdGF0aWNf
Y2FzdDxFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8+KGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbykp
OwotICAgICAgICBpZiAocmVwbGFjZW1lbnRSYW5nZSkKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50
UmFuZ2UpIHsKKyAgICAgICAgICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBpc1NlbGVjdGluZ1Rl
eHRXaGlsZUluc2VydGluZ0FzeW5jaHJvbm91c2x5KG1faXNTZWxlY3RpbmdUZXh0V2hpbGVJbnNl
cnRpbmdBc3luY2hyb25vdXNseSwgc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGUpOwogICAgICAgICAg
ICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oKnJlcGxh
Y2VtZW50UmFuZ2UsIFNFTF9ERUZBVUxUX0FGRklOSVRZKSk7CisgICAgICAgIH0KICAgICB9CiAg
ICAgCiAgICAgaWYgKHJlZ2lzdGVyVW5kb0dyb3VwKQpAQCAtNDg0Miw2ICs0ODQ0LDExIEBAIHZv
aWQgV2ViUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKCkKICAgICBpZiAobV9pc0dldHRpbmdEaWN0
aW9uYXJ5UG9wdXBJbmZvKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBTaW1pbGFybHksIHdl
IGRvbid0IHdhbnQgdG8gcHJvcGFnYXRlIGNoYW5nZXMgdG8gdGhlIHdlYiBwcm9jZXNzIHdoZW4g
aW5zZXJ0aW5nIHRleHQgYXN5bmNocm9ub3VzbHksIHNpbmNlIHdlIHdpbGwKKyAgICAvLyBlbmQg
dXAgd2l0aCBhIHJhbmdlIHNlbGVjdGlvbiB2ZXJ5IGJyaWVmbHkgcmlnaHQgYmVmb3JlIGluc2Vy
dGluZyB0aGUgdGV4dC4KKyAgICBpZiAobV9pc1NlbGVjdGluZ1RleHRXaGlsZUluc2VydGluZ0Fz
eW5jaHJvbm91c2x5KQorICAgICAgICByZXR1cm47CisKICAgICBGcmFtZSYgZnJhbWUgPSBtX3Bh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIEZyYW1lVmll
dyogdmlldyA9IGZyYW1lLnZpZXcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKaW5kZXggZmM5NTJhM2U4MmJjMDY4ZTY0YjMxOWY0NDExOGU4NDgwOGIy
ZTdjOS4uYTQ2NTFhYzgxNzMwYzkzM2U3NzNmNzNmMTU0NTQ0YjI5ODBlMTYxYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02NjYsNyArNjY2LDcg
QEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1
aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0
ZXh0SW5wdXQpOwogCi0gICAgdm9pZCBpbnNlcnRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50UmFuZ2UsIGJvb2wgcmVnaXN0ZXJVbmRv
R3JvdXAgPSBmYWxzZSwgdWludDMyX3QgZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvID0gKHVpbnQz
Ml90KUVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbzo6RWRpdGFibGVSb290KTsKKyAgICB2b2lkIGlu
c2VydFRleHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVw
bGFjZW1lbnRSYW5nZSwgYm9vbCByZWdpc3RlclVuZG9Hcm91cCA9IGZhbHNlLCB1aW50MzJfdCBl
ZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8gPSAodWludDMyX3QpRWRpdGluZ1JhbmdlSXNSZWxhdGl2
ZVRvOjpFZGl0YWJsZVJvb3QsIGJvb2wgc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGUgPSBmYWxzZSk7
CiAgICAgdm9pZCBnZXRNYXJrZWRSYW5nZUFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAg
IHZvaWQgZ2V0U2VsZWN0ZWRSYW5nZUFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZv
aWQgY2hhcmFjdGVySW5kZXhGb3JQb2ludEFzeW5jKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jiwg
dWludDY0X3QgY2FsbGJhY2tJRCk7CkBAIC0xNDg4LDYgKzE0ODgsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9zaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHM7CiAgICAgYm9vbCBtX2lz
RWRpdG9yU3RhdGVNaXNzaW5nUG9zdExheW91dERhdGEgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9p
c0dldHRpbmdEaWN0aW9uYXJ5UG9wdXBJbmZvIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNTZWxl
Y3RpbmdUZXh0V2hpbGVJbnNlcnRpbmdBc3luY2hyb25vdXNseSB7IGZhbHNlIH07CiAKICAgICBl
bnVtIGNsYXNzIEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGUgeyBObywgWWVzLCBVbnNldCB9
OwogICAgIG11dGFibGUgRWRpdG9yU3RhdGVJc0NvbnRlbnRFZGl0YWJsZSBtX2xhc3RFZGl0b3JT
dGF0ZVdhc0NvbnRlbnRFZGl0YWJsZSB7IEVkaXRvclN0YXRlSXNDb250ZW50RWRpdGFibGU6OlVu
c2V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCmluZGV4IDUwMjMzMDgyMWJlZmI3OWFjMGEzYjdiZjE1MmY3ZjQzNWE1
MDg0NjguLjBkMjI4ODcwMzFhNjA4ODUxZDE1NTY0Y2QxOTA5ZmUzMDAwMzI4YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCkBAIC0zNjYsNyArMzY2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgU2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0V2ZW50KFdlYktpdDo6V2ViTW91c2VF
dmVudCBldmVudCkgLT4gKGJvb2wgcmVzdWx0KQogICAgIEFjY2VwdHNGaXJzdE1vdXNlKGludCBl
dmVudE51bWJlciwgV2ViS2l0OjpXZWJNb3VzZUV2ZW50IGV2ZW50KSAtPiAoYm9vbCByZXN1bHQp
CiAKLSAgICBJbnNlcnRUZXh0QXN5bmMoU3RyaW5nIHRleHQsIHN0cnVjdCBXZWJLaXQ6OkVkaXRp
bmdSYW5nZSByZXBsYWNlbWVudFJhbmdlLCBib29sIHJlZ2lzdGVyVW5kb0dyb3VwLCB1aW50MzJf
dCBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pCisgICAgSW5zZXJ0VGV4dEFzeW5jKFN0cmluZyB0
ZXh0LCBzdHJ1Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSwgYm9vbCBy
ZWdpc3RlclVuZG9Hcm91cCwgdWludDMyX3QgZWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvLCBib29s
IHN1cHByZXNzU2VsZWN0aW9uVXBkYXRlKQogICAgIEdldE1hcmtlZFJhbmdlQXN5bmModWludDY0
X3QgY2FsbGJhY2tJRCkKICAgICBHZXRTZWxlY3RlZFJhbmdlQXN5bmModWludDY0X3QgY2FsbGJh
Y2tJRCkKICAgICBDaGFyYWN0ZXJJbmRleEZvclBvaW50QXN5bmMoV2ViQ29yZTo6SW50UG9pbnQg
cG9pbnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ1OWM0NjJhOGY5NzJjYmRjNWEyM2ExY2FmODczNGY3
NWNlM2FhZDQuLjQ1MWQ1MTdlMGFhZDk0OWQwZDQ0NzU4NjU3MTQ3NDdiOTk4ODQ2NDUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MiBAQAorMjAxNi0wOS0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBJbnNlcnRpbmcgYSBzcGFjZSBhZnRlciBpbnNlcnRpbmcgYW4gYWNjZXB0ZWQg
Y2FuZGlkYXRlIHNjcm9sbHMgdGhlIGRvY3VtZW50IGFuZCBjYXVzZXMgYSBmbGlja2VyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIwMDkKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI4MDg2MjM3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgMyBuZXcgdGV4dCBlZGl0aW5nIEFQSSB0ZXN0cyBj
b3ZlcmluZyBjYW5kaWRhdGUgaW5zZXJ0aW9uLCBhcyB3ZWxsIGFzIHN1cHBvcnQgZm9yIHRlc3Rp
bmcgY2FuZGlkYXRlcyBpbgorICAgICAgICBXS1dlYlZpZXdzLiBSZWZhY3RvcnMgY29tbW9uIFdL
V2ViVmlldyBoZWxwZXJzIGFjcm9zcyBib3RoIFZpZGVvQ29udHJvbHNNYW5hZ2VyIHRlc3RzIGFu
ZCB0aGUgbmV3CisgICAgICAgIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzIGludG8gYSBuZXcgdXRp
bGl0eSBjbGFzcywgVGVzdFdLV2ViVmlldyBpbiBUZXN0V0tXZWJWaWV3Lm1tLCB3aGljaCBpcyBj
YXBhYmxlIG9mCisgICAgICAgIHNpbXVsYXRpbmcgbW91c2UgYW5kIGtleWJvYXJkIGV2ZW50cyBh
cyB3ZWxsIGFzIHdhaXRpbmcgZm9yIEphdmFTY3JpcHQgbWVzc2FnZXMgc2VudCBmcm9tIHRoZSB3
ZWIgcHJvY2VzcyBhbmQKKyAgICAgICAgcGVyZm9ybWluZyBhY3Rpb25zIGluIHJlc3BvbnNlLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL2F1ZGlv
LW9ubHkuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3Mvdmlk
ZW8td2l0aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L2lvcy92aWRlby13aXRob3V0LWF1ZGlvLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKC1bTWVzc2FnZUhhbmRsZXIgaW5pdFdpdGhNZXNz
YWdlOmhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW01lc3NhZ2VIYW5kbGVyIHVzZXJD
b250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKTogRGVsZXRlZC4KKyAg
ICAgICAgKC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyBtb3VzZURvd25BdFBvaW50
Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3
IHBlcmZvcm1BZnRlckxvYWRpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1ZpZGVvQ29udHJv
bHNNYW5hZ2VyVGVzdFdlYlZpZXcgY2FsbEphdmFzY3JpcHRGdW5jdGlvbjpdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyBsb2FkVGVzdFBhZ2VO
YW1lZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2Vi
VmlldyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOmFjdGlvbjpdKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRh
dGVUZXN0cy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RDYW5kaWRhdGUgaW5pdFdpdGhSZXBs
YWNlbWVudFN0cmluZzppblJhbmdlOl0pOgorICAgICAgICAoLVtUZXN0Q2FuZGlkYXRlIHJlcGxh
Y2VtZW50U3RyaW5nXSk6CisgICAgICAgICgtW1Rlc3RDYW5kaWRhdGUgcmVzdWx0VHlwZV0pOgor
ICAgICAgICAoLVtUZXN0Q2FuZGlkYXRlIHJhbmdlXSk6CisgICAgICAgICgtW0NhbmRpZGF0ZVRl
c3RXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6cmFuZ2U6XSk6Cisg
ICAgICAgICgtW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0
ZV0pOgorICAgICAgICAoLVtDYW5kaWRhdGVUZXN0V2ViVmlldyBleHBlY3RDYW5kaWRhdGVMaXN0
VmlzaWJpbGl0eVVwZGF0ZXM6d2hlblBlcmZvcm1pbmdBY3Rpb25zOl0pOgorICAgICAgICAoLVtD
YW5kaWRhdGVUZXN0V2ViVmlldyBfZGlkVXBkYXRlQ2FuZGlkYXRlTGlzdFZpc2liaWxpdHk6XSk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0b3BsYXlpbmct
dmlkZW8td2l0aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbDoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVu
ZC5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Z1bGwt
c2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWw6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1
bWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11
dGVzLW9ucGxheWluZy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRt
bDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
by1zZWVrLWFmdGVyLWVuZGluZy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVy
LWVuZGluZy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRob3V0LWF1ZGlvLmh0bWw6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5
aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLXNjcm9sbC10by12aWRlby5odG1s
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVv
cy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy1tdXRlZC12aWRlby1o
aWRlcy1jb250cm9scy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNvbnRyb2xzLmh0bWw6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdp
dGgtYXVkaW8tYXV0b3BsYXkuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9za2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3dpZGUtYXV0b3BsYXlpbmct
dmlkZW8td2l0aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1Rlc3RX
S1dlYlZpZXdNYWMuaDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdL
V2ViVmlld01hYy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RNZXNzYWdlSGFuZGxlciBpbml0
V2l0aE1lc3NhZ2U6aGFuZGxlcjpdKToKKyAgICAgICAgKC1bVGVzdE1lc3NhZ2VIYW5kbGVyIHVz
ZXJDb250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKToKKyAgICAgICAg
KC1bVGVzdFdLV2ViVmlldyBtb3VzZURvd25BdFBvaW50Ol0pOgorICAgICAgICAoLVtUZXN0V0tX
ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6YWN0aW9uOl0pOgorICAgICAgICAo
LVtUZXN0V0tXZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOl0pOgorICAgICAgICAoLVtUZXN0V0tX
ZWJWaWV3IHR5cGVDaGFyYWN0ZXI6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyB3YWl0
Rm9yTWVzc2FnZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBwZXJmb3JtQWZ0ZXJMb2Fk
aW5nOl0pOgorCiAyMDE2LTA5LTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVVJMUGFyc2VyOiBDaGVjayBmb3IgaW52YWxpZCBjaGFyYWN0
ZXJzIGluIHRoZSBob3N0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhhNDljM2JjYjc5YTQ2
ZDA2YzBmOTE0NDM4YzRiYTQ5NjM5NDYxOTcuLjNlOWU0ZDVlZTIwNjAxMDhhOTNmMGRlNTljMjY1
Mjk5MDU0NjU4OWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03OCw2ICs3OCw5IEBACiAJ
CTJFRkYwNkMzMUQ4ODYyMUUwMDA0QkIzMCAvKiBsYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZG
MDZDMjFEODg2MjEyMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgKi87IH07
CiAJCTJFRkYwNkM1MUQ4ODY3NzYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNs
aWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24t
Y2xpY2suaHRtbCAqLzsgfTsKIAkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNoYW5nZS12
aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12
aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi87IH07CisJCTJFRkYwNkNEMUQ4QTQyOUEwMDA0QkIz
MCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2Q0MxRDhBNDI5
MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCAqLzsg
fTsKKwkJMkVGRjA2RDQxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZEMzFEOEFF
REJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5tbSAqLzsgfTsKKwkJMkVGRjA2RDcxRDhB
RjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2RDYxRDhBRjM0QTAwMDRCQjMw
IC8qIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tICovOyB9OwogCQkzM0JFNUFGOTEzN0I1QUFF
MDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCRTVBRjgxMzdCNUFBRTAwNzA1ODEz
IC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCAqLzsgfTsKIAkJMzNEQzg5MTIxNDE5
NTVGRTAwNzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0RDODkwRTE0MTk1MzkzMDA3NDdFRjcg
Lyogc2ltcGxlLWlmcmFtZS5odG1sICovOyB9OwogCQkzM0RDODkxNDE0MTk1NzlGMDA3NDdFRjcg
LyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0RDODkxMzE0MTk1NzlG
MDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5j
cHAgKi87IH07CkBAIC01NDEsNiArNTQ0LDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJ
LnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJ
MkVGRjA2Q0QxRDhBNDI5QTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9j
dW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRUZGMDZDNzFEODg2QTU4MDAw
NEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQkyRUZGMDZDNTFEODg2Nzc2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJj
ZS1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFRkYwNkMzMUQ4ODYy
MUUwMDA0QkIzMCAvKiBsYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKQEAgLTc4OSw2ICs3OTMsMTAgQEAKIAkJMkVGRjA2QzIxRDg4NjIxMjAwMDRCQjMwIC8q
IGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xp
Y2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjaGFuZ2UtdmlkZW8tc291cmNl
LW9uLWNsaWNrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUZGMDZDNjFE
ODg2QTU2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVGRjA2Q0MxRDhBNDI5MTAwMDRCQjMwIC8q
IGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZEMjFEOEFFREJCMDAwNEJCMzAgLyog
VGVzdFdLV2ViVmlld01hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXN0
V0tXZWJWaWV3TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRkYwNkQzMUQ4
QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gVGVzdFdLV2ViVmlld01hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkVGRjA2RDYxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2ViVmlld0NhbmRp
ZGF0ZVRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tX
ZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMz
M0I5Q0UxMTI3N0YyMzEwMEZFRkNFMyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJldmVudEVtcHR5VXNlckFnZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzNCRTVBRjQxMzdCNUE2QzAwNzA1ODEz
IC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1
bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb3VzZU1vdmVB
ZnRlckNyYXNoX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzc1
LDYgKzEzODMsNyBAQAogCQkJCTM3QjQ3RTJFMUQ2NEU3Q0EwMDVGNEVGRiAvKiBXS09iamVjdC5t
bSAqLywKIAkJCQkyRDAwMDY1RDFDMUY1ODk0MDA4OEU2QTcgLyogV0tQREZWaWV3UmVzaXplQ3Jh
c2gubW0gKi8sCiAJCQkJNUU0QjFEMkMxRDQwNEM2MTAwMDUzNjIxIC8qIFdLU2Nyb2xsVmlld0Rl
bGVnYXRlQ3Jhc2gubW0gKi8sCisJCQkJMkVGRjA2RDYxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2Vi
Vmlld0NhbmRpZGF0ZVRlc3RzLm1tICovLAogCQkJCTdDNDE3RjMxMUQxOUUxNDgwMEI4RUY1MyAv
KiBXS1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1tICovLAogCQkJCTBGM0I5NEE1
MUE3NzI2NkMwMERFMzI3MiAvKiBXS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0gKi8sCiAJ
CQkJOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLywK
QEAgLTE0NjQsNiArMTQ3Myw3IEBACiAJCUExNkY2NkI4MUM0MEU5RTEwMEJENEQyNCAvKiBSZXNv
dXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJF
RkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3Vt
ZW50Lmh0bWwgKi8sCiAJCQkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRl
by1zb3VyY2Utb24tZW5kLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8q
IGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCAqLywKIAkJCQkyRUZGMDZDMjFEODg2
MjEyMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgKi8sCkBAIC0xODE5LDYg
KzE4MjksOCBAQAogCQkJCUMwODEyMjQ0MTNGQzE5RUMwMERDMzlBRSAvKiBTeW50aGV0aWNCYWNr
aW5nU2NhbGVGYWN0b3JXaW5kb3cubSAqLywKIAkJCQkyOUFCOEFBMzE2NEM3QTkzMDBENDlCRUMg
LyogVGVzdEJyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZS5oICovLAogCQkJCTI5QUI4QUEyMTY0
QzdBOTMwMEQ0OUJFQyAvKiBUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLm1tICovLAor
CQkJCTJFRkYwNkQyMUQ4QUVEQkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLmggKi8sCisJ
CQkJMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMubW0gKi8sCiAJ
CQkJQzA4NTg3QkUxM0ZFOTU2QzAwMUVGNEU1IC8qIFdlYktpdEFnbm9zdGljVGVzdC5oICovLAog
CQkJCUMwODU4N0JEMTNGRTk1NkMwMDFFRjRFNSAvKiBXZWJLaXRBZ25vc3RpY1Rlc3QubW0gKi8s
CiAJCQkpOwpAQCAtMjM0Miw2ICsyMzU0LDcgQEAKIAkJCQk3Q0NFN0VGQjFBNDExQUU2MDA0NDdD
NEMgLyogSW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VG
QzFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVGcmFtZUhpdFRlc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFRkQxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxl
SW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkyRUZGMDZENDFEOEFFREJCMDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDODNFMEI4MUQwQTY0QkQwMEZFQkNGMyAvKiBJbmplY3RlZEJ1bmRsZU1h
a2VBbGxTaGFkb3dSb290c09wZW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQzMxQTQx
MUE3RTAwNDQ3QzRDIC8qIEluc3BlY3RvckJhci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RURBMUE0MTFBODcwMDQ0N0M0QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJj
ZXMgKi8sCkBAIC0yNDYxLDYgKzI0NzQsNyBAQAogCQkJCTdDQ0U3RUQ4MUE0MTFBN0UwMDQ0N0M0
QyAvKiBXaWxsU2VuZFN1Ym1pdEV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRDkx
QTQxMUE3RTAwNDQ3QzRDIC8qIFdpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUY4MzU3MUIxRDNGRkIyMzAwRTM5NjdCIC8qIFdLQmFja0ZvcndhcmRMaXN0
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkVGRjA2RDcxRDhBRjM0QTAwMDRCQjMwIC8qIFdLV2Vi
Vmlld0NhbmRpZGF0ZVRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMkUxQTQxMUIx
MDAwNDQ3QzRDIC8qIFdLQnJvd3NpbmdDb250ZXh0R3JvdXBUZXN0Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdGMkYxQTQxMUIxMDAwNDQ3QzRDIC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERl
bGVnYXRlVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDNTRBNEJFMUFBMTFDQ0EwMDM4MEY3
OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvYXVkaW8tb25seS5odG1sIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL2F1ZGlvLW9ubHkuaHRtbAppbmRleCA3
NDAwZjY2Mjg0ZTI5OTEzZGE1OWI0NmNlMzU2YjhjYTZiZGZkZmNmLi5jNGEyNGZhZWU3NjdjYTEx
ZTVmNmEwNTdkNmVhZTA4ZGZjYzEyMWFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9pb3MvYXVkaW8tb25seS5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L2lvcy9hdWRpby1vbmx5Lmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAKICAg
ICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVv
dXQpOwogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdw
bGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgd2luZG93LmxvY2F0
aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICB9CkBAIC0yMCw3ICsyMCw3IEBACiAK
ICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkgewogICAgICAgICB0cnkgewotICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2Uo
J25vdCBwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKICAgICAgICAgfSBjYXRj
aChlKSB7IH0KICAgICB9CiAgICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aC1hdWRpby5odG1sIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGgtYXVkaW8uaHRtbAppbmRleCBj
ODkyNGI2Yjk4YWE4M2Y2ZDJiZTE1ZGI0ODk4NDg0MzUzZjVhOWU5Li44MDhkZGNlYzg2OWQ3NGEz
Y2ZkYzU5NWUxNjllMTA2MzliYjZmMzM5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aC1hdWRpby5odG1sCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRoLWF1ZGlvLmh0bWwKQEAgLTE0LDcg
KzE0LDcgQEAKICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAgICAgICB3aW5kb3cuY2xlYXJU
aW1lb3V0KHRpbWVvdXQpOwogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsK
KyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBv
c3RNZXNzYWdlKCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAg
d2luZG93LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICB9CkBAIC0yMiw3
ICsyMiw3IEBACiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkgewogICAgICAgICB0cnkgewot
ICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIu
cG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKICAg
ICAgICAgfSBjYXRjaChlKSB7IH0KICAgICB9CiAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRob3V0LWF1ZGlvLmh0
bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aG91dC1h
dWRpby5odG1sCmluZGV4IDg0NTg2ZjMyNWMxYmViOTFmYzdmZTA1YTI3OWFkMDJiZTE4ZTJjNDAu
LjI3NWU3ZTFjNTk2Y2JmOWM4N2VmMjczMjc0YzBjY2Q2ZjRlNGU5MzUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRob3V0LWF1ZGlvLmh0
bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGhv
dXQtYXVkaW8uaHRtbApAQCAtMTIsNyArMTIsNyBAQAogICAgIGZ1bmN0aW9uIHBsYXlpbmcoKSB7
CiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dCk7CiAgICAgICAgIHRyeSB7Ci0g
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5w
b3N0TWVzc2FnZSgncGxheWluZycpOworICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsKICAgICAgICAgfSBj
YXRjaChlKSB7CiAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAnY2FsbGJhY2s6cGxheWlu
Zyc7CiAgICAgICAgIH0KQEAgLTIwLDcgKzIwLDcgQEAKIAogICAgIGZ1bmN0aW9uIG5vdFBsYXlp
bmcoKSB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKKyAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCdub3QgcGxheWluZycpOwogICAgICAgICB9IGNhdGNoKGUpIHsgfQogICAgIH0KICAgICA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KaW5kZXggYmQzMTg2MmFlNDJlY2I0
MmNhNDFmMTJiNmFkNmY4N2ZjOTkyMWZiNy4uNjc0NWNjNzI2ZTk1ZmFjOWNjODYzZGI1NDljMjlm
YjIyZDY2MGNjZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KQEAgLTI2LDEwICsyNiw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgi
Ci0KLSNpZiBQTEFURk9STShNQUMpCi0jaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+Ci0jZW5kaWYK
KyNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMuaCIKIAogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmll
d0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0
ZS5oPgpAQCAtNDMsMzQgKzQwLDcgQEAgLSAodm9pZClfaW50ZXJhY3RXaXRoTWVkaWFDb250cm9s
c0ZvclRlc3Rpbmc7CiAKIEBlbmQKIAotQGludGVyZmFjZSBNZXNzYWdlSGFuZGxlciA6IE5TT2Jq
ZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gTWVz
c2FnZUhhbmRsZXIgewotICAgIGRpc3BhdGNoX2Jsb2NrX3QgX2hhbmRsZXI7Ci0gICAgTlNTdHJp
bmcgKl9tZXNzYWdlOwotfQotCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhNZXNzYWdlOihOU1N0
cmluZyAqKW1lc3NhZ2UgaGFuZGxlcjooZGlzcGF0Y2hfYmxvY2tfdCloYW5kbGVyCi17Ci0gICAg
aWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBf
aGFuZGxlciA9IFtoYW5kbGVyIGNvcHldOwotICAgIF9tZXNzYWdlID0gbWVzc2FnZTsKLQotICAg
IHJldHVybiBzZWxmOwotfQotCi0tICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2Vy
Q29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlw
dE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKLXsKLSAgICBpZiAoWyhOU1N0cmlu
ZyAqKVttZXNzYWdlIGJvZHldIGlzRXF1YWxUb1N0cmluZzpfbWVzc2FnZV0gJiYgX2hhbmRsZXIp
Ci0gICAgICAgIF9oYW5kbGVyKCk7Ci19Ci0KLUBlbmQKLQotQGludGVyZmFjZSBWaWRlb0NvbnRy
b2xzTWFuYWdlclRlc3RXZWJWaWV3IDogV0tXZWJWaWV3CitAaW50ZXJmYWNlIFZpZGVvQ29udHJv
bHNNYW5hZ2VyVGVzdFdlYlZpZXcgOiBUZXN0V0tXZWJWaWV3CiBAZW5kCiAKIEBpbXBsZW1lbnRh
dGlvbiBWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IHsKQEAgLTc4LDMyICs0OCw2IEBA
IEBpbXBsZW1lbnRhdGlvbiBWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IHsKICAgICBO
U1N0cmluZyAqX2NvbnRyb2xsZWRFbGVtZW50SUQ7CiB9CiAKLS0gKHZvaWQpbW91c2VEb3duQXRQ
b2ludDooTlNQb2ludClwb2ludCB7Ci0gICAgW3NlbGYgbW91c2VEb3duOltOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9p
bnQocG9pbnQueCwgcG9pbnQueSkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJyZW50
RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3Vy
cmVudENvbnRleHRdIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdXTsKLX0K
LQotLSAodm9pZClwZXJmb3JtQWZ0ZXJMb2FkaW5nOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbnMg
ewotICAgIE1lc3NhZ2VIYW5kbGVyICpoYW5kbGVyID0gW1tNZXNzYWdlSGFuZGxlciBhbGxvY10g
aW5pdFdpdGhNZXNzYWdlOkAibG9hZGVkIiBoYW5kbGVyOmFjdGlvbnNdOwotICAgIE5TU3RyaW5n
ICpvbmxvYWRTY3JpcHQgPSBAIndpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMub25sb2FkSGFuZGxlci5wb3N0TWVzc2FnZSgnbG9hZGVkJyk7
IH0iOwotICAgIFdLVXNlclNjcmlwdCAqc2NyaXB0ID0gW1tXS1VzZXJTY3JpcHQgYWxsb2NdIGlu
aXRXaXRoU291cmNlOm9ubG9hZFNjcmlwdCBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVj
dGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOT107Ci0KLSAgICBXS1Vz
ZXJDb250ZW50Q29udHJvbGxlciogY29udGVudENvbnRyb2xsZXIgPSBbW3NlbGYgY29uZmlndXJh
dGlvbl0gdXNlckNvbnRlbnRDb250cm9sbGVyXTsKLSAgICBbY29udGVudENvbnRyb2xsZXIgYWRk
VXNlclNjcmlwdDpzY3JpcHRdOwotICAgIFtjb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjpoYW5kbGVyIG5hbWU6QCJvbmxvYWRIYW5kbGVyIl07Ci19Ci0KLS0gKHZvaWQp
Y2FsbEphdmFzY3JpcHRGdW5jdGlvbjooTlNTdHJpbmcgKilmdW5jdGlvbk5hbWUKLXsKLSAgICBO
U1N0cmluZyAqY29tbWFuZCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAoKSIsIGZ1
bmN0aW9uTmFtZV07Ci0gICAgW3NlbGYgZXZhbHVhdGVKYXZhU2NyaXB0OmNvbW1hbmQgY29tcGxl
dGlvbkhhbmRsZXI6bmlsXTsKLX0KLQotLSAodm9pZClsb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJp
bmcgKilwYWdlTmFtZQotewotICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpw
YWdlTmFtZSB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXV07Ci0gICAgW3NlbGYgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci19Ci0KIC0g
KHZvaWQpZXhwZWN0Q29udHJvbHNNYW5hZ2VyOihCT09MKWV4cGVjdENvbnRyb2xzTWFuYWdlciBh
ZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZQogewogICAgIF9fYmxvY2sg
Ym9vbCBkb25lV2FpdGluZyA9IGZhbHNlOwpAQCAtMTMxLDE0ICs3NSw2IEBAIC0gKHZvaWQpd2Fp
dEZvck1lZGlhQ29udHJvbHNUb0hpZGUKICAgICAgICAgW1tOU1J1bkxvb3AgY3VycmVudFJ1bkxv
b3BdIHJ1bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3JlRGF0ZTpbTlNEYXRlIGRpc3Rh
bnRQYXN0XV07CiB9CiAKLS0gKHZvaWQpcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTooTlNT
dHJpbmcgKiltZXNzYWdlIGFjdGlvbjooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb24KLXsKLSAgICBS
ZXRhaW5QdHI8TWVzc2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtbTWVzc2FnZUhhbmRs
ZXIgYWxsb2NdIGluaXRXaXRoTWVzc2FnZTptZXNzYWdlIGhhbmRsZXI6YWN0aW9uXSk7Ci0gICAg
V0tVc2VyQ29udGVudENvbnRyb2xsZXIqIGNvbnRlbnRDb250cm9sbGVyID0gW1tzZWxmIGNvbmZp
Z3VyYXRpb25dIHVzZXJDb250ZW50Q29udHJvbGxlcl07Ci0gICAgW2NvbnRlbnRDb250cm9sbGVy
IHJlbW92ZVNjcmlwdE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTpAInBsYXlpbmdIYW5kbGVyIl07Ci0g
ICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0
KCkgbmFtZTpAInBsYXlpbmdIYW5kbGVyIl07Ci19Ci0KIC0gKHZvaWQpd2FpdEZvclBhZ2VUb0xv
YWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6KGludCludW1iZXJPZkF1dG9wbGF5aW5nVmlkZW9zCiB7
CiAgICAgX19ibG9jayBpbnQgcmVtYWluaW5nQXV0b3BsYXllZENvdW50ID0gbnVtYmVyT2ZBdXRv
cGxheWluZ1ZpZGVvczsKQEAgLTI0MCw3ICsxNzYsNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5h
Z2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdlck11bHRpcGxlVmlkZW9zU2Nyb2xsUGF1c2VkVmlkZW9P
dQogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAibGFyZ2UtdmlkZW9zLXBhdXNlZC12
aWRlby1oaWRlcy1jb250cm9scyJdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JQYWdlVG9Mb2FkV2l0
aEF1dG9wbGF5aW5nVmlkZW9zOjFdOwogCi0gICAgW3dlYlZpZXcgY2FsbEphdmFzY3JpcHRGdW5j
dGlvbjpAInBhdXNlRmlyc3RWaWRlb0FuZFNjcm9sbFRvU2Vjb25kVmlkZW8iXTsKKyAgICBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAicGF1c2VGaXJzdFZpZGVvQW5kU2Ny
b2xsVG9TZWNvbmRWaWRlbygpIl07CiAgICAgW3dlYlZpZXcgZXhwZWN0Q29udHJvbHNNYW5hZ2Vy
Ok5PIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBhdXNlZCJdOwogfQogCkBAIC0yNTEsNyArMTg3
LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJNdWx0
aXBsZVZpZGVvc1Njcm9sbFBsYXlpbmdWaWRlb1cKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VO
YW1lZDpAImxhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNvbnRyb2xzIl07CiAgICAg
W3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6MV07CiAKLSAg
ICBbd2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1bmN0aW9uOkAic2Nyb2xsVG9TZWNvbmRWaWRlbyJd
OworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJzY3JvbGxUb1Nl
Y29uZFZpZGVvKCkiXTsKICAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6WUVTIGFm
dGVyUmVjZWl2aW5nTWVzc2FnZTpAInNjcm9sbGVkIl07CiB9CiAKQEAgLTI2Miw3ICsxOTgsNyBA
QCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdlck11bHRpcGxl
VmlkZW9zU2Nyb2xsUGxheWluZ011dGVkVgogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVk
OkAibGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJvbHMiXTsKICAg
ICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVvczoxXTsKIAot
ICAgIFt3ZWJWaWV3IGNhbGxKYXZhc2NyaXB0RnVuY3Rpb246QCJtdXRlRmlyc3RWaWRlb0FuZFNj
cm9sbFRvU2Vjb25kVmlkZW8iXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAibXV0ZUZpcnN0VmlkZW9BbmRTY3JvbGxUb1NlY29uZFZpZGVvKCkiXTsKICAgICBb
d2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6Tk8gYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAi
cGxheWluZyJdOwogfQogCkBAIC0zMDAsNyArMjM2LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFu
YWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVvc1N3aXRjaENvbnRyb2xsZWRW
aWQKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvcy1hdXRvcGxh
eWluZy1zY3JvbGwtdG8tdmlkZW8iXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdp
dGhBdXRvcGxheWluZ1ZpZGVvczoyXTsKIAotICAgIFt3ZWJWaWV3IGNhbGxKYXZhc2NyaXB0RnVu
Y3Rpb246QCJzY3JvbGxUb1NlY29uZFZpZXciXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVG9TZWNvbmRWaWV3KCkiXTsKICAgICBbd2ViVmlldyBl
eHBlY3RDb250cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInNjcm9sbGVk
Il07CiAKICAgICBFWFBFQ1RfVFJVRShbW3dlYlZpZXcgY29udHJvbGxlZEVsZW1lbnRJRF0gaXNF
cXVhbFRvU3RyaW5nOkAic2Vjb25kIl0pOwpAQCAtMzEyLDcgKzI0OCw3IEBAIFRFU1QoVmlkZW9D
b250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVsdGlwbGVWaWRlb3NTY3JvbGxP
bmx5TGFyZ2VWaWRlCiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZp
ZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkiXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9h
ZFdpdGhBdXRvcGxheWluZ1ZpZGVvczoxXTsKLSAgICBbd2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1
bmN0aW9uOkAic2Nyb2xsVmlkZW9PdXRPZlZpZXciXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVmlkZW9PdXRPZlZpZXcoKSJdOwogICAgIFt3ZWJW
aWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpZRVMgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAic2Ny
b2xsZWQiXTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xZGI5NDc5YTRiZDdiYjlhOTJlNjcxODY5ZjA5Nzg0ZmJkZTE5NzA3Ci0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2Fu
ZGlkYXRlVGVzdHMubW0KQEAgLTAsMCArMSwxOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKworI2ltcG9ydCAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMuaCIKKworI2ltcG9ydCA8V2Vi
S2l0L1dlYktpdFByaXZhdGUuaD4KKworc3RhdGljIE5TU3RyaW5nICpHZXRJbnB1dFZhbHVlSlNF
eHByZXNzaW9uID0gQCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlIjsKK3N0
YXRpYyBOU1N0cmluZyAqR2V0RG9jdW1lbnRTY3JvbGxUb3BKU0V4cHJlc3Npb24gPSBAImRvY3Vt
ZW50LmJvZHkuc2Nyb2xsVG9wIjsKKworQGludGVyZmFjZSBUZXN0Q2FuZGlkYXRlIDogTlNUZXh0
Q2hlY2tpbmdSZXN1bHQKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRlc3RDYW5kaWRhdGUgewor
ICAgIE5TU3RyaW5nICpfc3RyaW5nOworICAgIE5TUmFuZ2UgX3JhbmdlOworfQorCistIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhSZXBsYWNlbWVudFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgaW5S
YW5nZTooTlNSYW5nZSlyYW5nZQoreworICAgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKSB7Cisg
ICAgICAgIF9zdHJpbmcgPSBzdHJpbmc7CisgICAgICAgIF9yYW5nZSA9IHJhbmdlOworICAgIH0K
KyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoTlNTdHJpbmcgKilyZXBsYWNlbWVudFN0cmluZwor
eworICAgIHJldHVybiBfc3RyaW5nOworfQorCistIChOU1RleHRDaGVja2luZ1R5cGUpcmVzdWx0
VHlwZQoreworICAgIHJldHVybiBOU1RleHRDaGVja2luZ1R5cGVSZXBsYWNlbWVudDsKK30KKwor
LSAoTlNSYW5nZSlyYW5nZQoreworICAgIHJldHVybiBfcmFuZ2U7Cit9CisKK0BlbmQKKworQGlu
dGVyZmFjZSBDYW5kaWRhdGVUZXN0V2ViVmlldyA6IFRlc3RXS1dlYlZpZXcKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzQ2FuZGlkYXRlTGlzdFZpc2libGUpIEJPT0wg
Y2FuZGlkYXRlTGlzdFZpc2libGU7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBDYW5kaWRhdGVU
ZXN0V2ViVmlldyB7CisgICAgYm9vbCBfaXNEb25lV2FpdGluZ0ZvckNhbmRpZGF0ZTsKKyAgICBi
b29sIF9pc0xpc3RlbmluZ0ZvckNhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5Q2hhbmdlczsKKyAgICBO
U1VJbnRlZ2VyIF9jYW5kaWRhdGVMaXN0VmlzaWJpbGl0eUNoYW5nZUNvdW50OworfQorCistICh2
b2lkKWluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6KE5TU3RyaW5nICopcmVwbGFj
ZW1lbnRTdHJpbmcgcmFuZ2U6KE5TUmFuZ2UpcmFuZ2UKK3sKKyAgICBfaXNEb25lV2FpdGluZ0Zv
ckNhbmRpZGF0ZSA9IGZhbHNlOworICAgIFtzZWxmIF9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTpb
W1Rlc3RDYW5kaWRhdGUgYWxsb2NdIGluaXRXaXRoUmVwbGFjZW1lbnRTdHJpbmc6cmVwbGFjZW1l
bnRTdHJpbmcgaW5SYW5nZTpyYW5nZV1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
X2lzRG9uZVdhaXRpbmdGb3JDYW5kaWRhdGUpOworfQorCistICh2b2lkKV9kaWRIYW5kbGVBY2Nl
cHRlZENhbmRpZGF0ZQoreworICAgIF9pc0RvbmVXYWl0aW5nRm9yQ2FuZGlkYXRlID0gdHJ1ZTsK
K30KKworLSAodm9pZClleHBlY3RDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eVVwZGF0ZXM6KE5TVUlu
dGVnZXIpZXhwZWN0ZWRVcGRhdGVDb3VudCB3aGVuUGVyZm9ybWluZ0FjdGlvbnM6KGRpc3BhdGNo
X2Jsb2NrX3QpYWN0aW9ucworeworICAgIF9jYW5kaWRhdGVMaXN0VmlzaWJpbGl0eUNoYW5nZUNv
dW50ID0gMDsKKyAgICBfaXNMaXN0ZW5pbmdGb3JDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eUNoYW5n
ZXMgPSBZRVM7CisKKyAgICBhY3Rpb25zKCk7CisKKyAgICBfaXNMaXN0ZW5pbmdGb3JDYW5kaWRh
dGVMaXN0VmlzaWJpbGl0eUNoYW5nZXMgPSBOTzsKKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRVcGRh
dGVDb3VudCwgX2NhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5Q2hhbmdlQ291bnQpOworfQorCistICh2
b2lkKV9kaWRVcGRhdGVDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eTooQk9PTCl2aXNpYmxlCit7Cisg
ICAgaWYgKF9jYW5kaWRhdGVMaXN0VmlzaWJsZSA9PSB2aXNpYmxlKQorICAgICAgICByZXR1cm47
CisKKyAgICBfY2FuZGlkYXRlTGlzdFZpc2libGUgPSB2aXNpYmxlOworICAgIGlmIChfaXNMaXN0
ZW5pbmdGb3JDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eUNoYW5nZXMpCisgICAgICAgIF9jYW5kaWRh
dGVMaXN0VmlzaWJpbGl0eUNoYW5nZUNvdW50Kys7Cit9CisKK0BlbmQKKworVEVTVChXS1dlYlZp
ZXdDYW5kaWRhdGVUZXN0cywgU29mdFNwYWNlUmVwbGFjZW1lbnRBZnRlckNhbmRpZGF0ZUluc2Vy
dGlvbldpdGhvdXRSZXBsYWNlbWVudCkKK3sKKyAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAqd2tX
ZWJWaWV3ID0gW1tDYW5kaWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKV07CisKKyAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxh
YmxlLWRvY3VtZW50IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVSTF1dOworCisgICAgW3drV2ViVmlldyB3YWl0
Rm9yTWVzc2FnZTpAImZvY3VzZWQiXTsKKyAgICBbd2tXZWJWaWV3IF9mb3JjZVJlcXVlc3RDYW5k
aWRhdGVzXTsKKyAgICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9u
c2U6QCJhcHBsZSAiIHJhbmdlOk5TTWFrZVJhbmdlKDAsIDApXTsKKworICAgIEVYUEVDVF9UUlVF
KFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0SW5wdXRWYWx1ZUpT
RXhwcmVzc2lvbl0gaXNFcXVhbFRvU3RyaW5nOkAiYXBwbGUgIl0pOworCisgICAgW3drV2ViVmll
dyBleHBlY3RDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eVVwZGF0ZXM6MCB3aGVuUGVyZm9ybWluZ0Fj
dGlvbnM6XigpCisgICAgeworICAgICAgICBbd2tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6JyAnXTsK
KyAgICAgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CisgICAgfV07CisK
KyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImFwcGxlICJdKTsK
KyAgICBFWFBFQ1RfRVEoW1t3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpH
ZXREb2N1bWVudFNjcm9sbFRvcEpTRXhwcmVzc2lvbl0gZG91YmxlVmFsdWVdLCAwKTsKK30KKwor
VEVTVChXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cywgSW5zZXJ0Q2hhcmFjdGVyc0FmdGVyQ2FuZGlk
YXRlSW5zZXJ0aW9uV2l0aFNvZnRTcGFjZSkKK3sKKyAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAq
d2tXZWJWaWV3ID0gW1tDYW5kaWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV07CisKKyAgICBOU1VSTCAqY29udGVudFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3Jv
bGxhYmxlLWRvY3VtZW50IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVSTF1dOworCisgICAgW3drV2ViVmlldyB3
YWl0Rm9yTWVzc2FnZTpAImZvY3VzZWQiXTsKKyAgICBbd2tXZWJWaWV3IF9mb3JjZVJlcXVlc3RD
YW5kaWRhdGVzXTsKKyAgICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVz
cG9uc2U6QCJmb28gIiByYW5nZTpOU01ha2VSYW5nZSgwLCAwKV07CisKKyAgICBFWFBFQ1RfVFJV
RShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVK
U0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImZvbyAiXSk7CisKKyAgICBbd2tXZWJWaWV3
IHR5cGVDaGFyYWN0ZXI6J2EnXTsKKyAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiaW5w
dXQiXTsKKworICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6R2V0SW5wdXRWYWx1ZUpTRXhwcmVzc2lvbl0gaXNFcXVhbFRvU3RyaW5nOkAiZm9v
IGEiXSk7Cit9CisKK1RFU1QoV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMsIEluc2VydENhbmRpZGF0
ZUZyb21QYXJ0aWFsbHlUeXBlZFBocmFzZVdpdGhTb2Z0U3BhY2UpCit7CisgICAgQ2FuZGlkYXRl
VGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldOworCisgICAgTlNVUkwgKmNv
bnRlbnRVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiaW5wdXQt
ZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgW3drV2ViVmlldyBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOmNvbnRlbnRVUkxdXTsKKworICAg
IFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJmb2N1c2VkIl07CisgICAgW3drV2ViVmlldyBf
Zm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107CisKKyAgICBOU1N0cmluZyAqaW5pdGlhbFZhbHVlID0g
QCJoZWwiOworICAgIGZvciAodWludDY0X3QgaSA9IDA7IGkgPCBpbml0aWFsVmFsdWUubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgW3drV2ViVmlldyB0eXBlQ2hhcmFjdGVyOltpbml0aWFsVmFsdWUg
Y2hhcmFjdGVyQXRJbmRleDppXV07CisgICAgICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6
QCJpbnB1dCJdOworICAgIH0KKworICAgIFt3a1dlYlZpZXcgaW5zZXJ0Q2FuZGlkYXRlc0FuZFdh
aXRGb3JSZXNwb25zZTpAImhlbGxvICIgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwgMyldOworICAgIEVY
UEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0SW5w
dXRWYWx1ZUpTRXhwcmVzc2lvbl0gaXNFcXVhbFRvU3RyaW5nOkAiaGVsbG8gIl0pOworCisgICAg
W3drV2ViVmlldyBleHBlY3RDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eVVwZGF0ZXM6MCB3aGVuUGVy
Zm9ybWluZ0FjdGlvbnM6XigpCisgICAgeworICAgICAgICBbd2tXZWJWaWV3IHR5cGVDaGFyYWN0
ZXI6JyAnXTsKKyAgICAgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07Cisg
ICAgICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6R2V0SW5wdXRWYWx1ZUpTRXhwcmVzc2lvbl0gaXNFcXVhbFRvU3RyaW5nOkAiaGVsbG8gIl0p
OworICAgICAgICBFWFBFQ1RfRVEoW1t3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpHZXREb2N1bWVudFNjcm9sbFRvcEpTRXhwcmVzc2lvbl0gZG91YmxlVmFsdWVdLCAwKTsK
KworICAgICAgICBbd2tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6JyAnXTsKKyAgICAgICAgW3drV2Vi
VmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CisgICAgICAgIEVYUEVDVF9UUlVFKFtbd2tX
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0SW5wdXRWYWx1ZUpTRXhwcmVz
c2lvbl0gaXNFcXVhbFRvU3RyaW5nOkAiaGVsbG8gICJdKTsKKyAgICAgICAgRVhQRUNUX0VRKFtb
d2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0RG9jdW1lbnRTY3JvbGxU
b3BKU0V4cHJlc3Npb25dIGRvdWJsZVZhbHVlXSwgMCk7CisgICAgfV07Cit9CisKKyNlbmRpZiAv
KiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMjAwICovCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9hdXRvcGxheWluZy12aWRlby13
aXRoLWF1ZGlvLmh0bWwKaW5kZXggYjZhNWI4MmUyNjFhZDRhMzk1NWFlYzgzZTNmMWVhNmRhNGU2
ODdkNC4uNTNiNDU2Mzg4ZjE5NmU5ODk3NTExOGZjYTczOTY1ZjMwNzU2ZWZiYSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0b3BsYXlpbmctdmlk
ZW8td2l0aC1hdWRpby5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2F1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbApAQCAtMTIsNyArMTIsNyBA
QAogICAgICAgICAvLyBXYWl0IHVudGlsIHRoZSBuZXh0IHJ1bmxvb3AgdG8gYWxsb3cgbWVkaWEg
Y29udHJvbHMgdG8gdXBkYXRlLgogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgicGF1c2VkIik7CisgICAgICAgICAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
InBhdXNlZCIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAg
ICAgfQpAQCAtMjAsNyArMjAsNyBAQAogICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7
CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAg
ICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVy
LnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsK
ICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdl
LXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sCmluZGV4IGM4YzFk
Mjg2NTI1M2FlNjJkMDI1NjhkMTdhM2IxMDA4NjQxNDUzODQuLjU2MGU2ODUwYTE1ZDExOWEyMTdj
MzM0ZjdiMTNiZmNmOGMyYTk0ODIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNl
LW9uLWNsaWNrLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAKICAgICAgICAgICAgIHZpZGVvLnBsYXko
KTsKICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
cGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKKyAgICAgICAgICAgICAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
ImNoYW5nZWQiKTsKICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9KTsKQEAgLTIxLDcgKzIxLDcgQEAKICAgICAgICAgZnVuY3Rpb24g
aGFuZGxlUGxheWluZygpIHsKICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsK
KyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgICAgICB9IGNhdGNo
KGUpIHsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LCAwKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3Vy
Y2Utb24tZW5kLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9j
aGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sCmluZGV4IDhmZGNiZGE1YzllMjIyODMzMTNi
NDBhNjYwYjM5MmI1MzUwOTM2OGQuLmY4NGY3ZjdhYzFiMTRjNTc1NTg3NDQwNjI5ZTk4OGMyODg0
ODQwMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2NoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbApAQCAt
MTQsNyArMTQsNyBAQAogICAgICAgICAgICAgdmlkZW8ucGxheSgpOwogICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAg
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0
TWVzc2FnZSgiY2hhbmdlZCIpOworICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiY2hhbmdlZCIpOwogICAgICAg
ICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0p
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZnVs
bC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Z1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRo
LWF1ZGlvLmh0bWwKaW5kZXggMWJjNjBlYjRlMTYwNTIzYzk2NmNmM2UwMGQyMTI1YzgxNjE5MDBk
MS4uNDgzMDFlNjMwNTQwNThjY2NjMGNhOWE2NTlhZDcxMzA4MDlhOTdlMyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZnVsbC1zaXplLWF1dG9wbGF5
aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9mdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1s
CkBAIC0xMSw3ICsxMSw3IEBACiAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3Nh
Z2UoInBsYXlpbmciKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgicGxheWluZyIpOwogICAgICAgICAgICAgfSBj
YXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1k
b2N1bWVudC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvaW5w
dXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlZWRmMzc1
Yzc2NTZhNmI3Y2RkMWFmZDVhODkyNjc2ZmQ4MDY0ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9pbnB1dC1maWVsZC1pbi1zY3JvbGxh
YmxlLWRvY3VtZW50Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPGh0bWw+CisKKzxoZWFkPgorICAg
IDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAg
IH0KKworICAgICAgICBpbnB1dCB7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAg
ICAgIGhlaWdodDogNDAwcHg7CisgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MDAwcHg7Cisg
ICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKyAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkgeworICAgICAgICAgICAgdmFyIGlucHV0ID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKTsKKyAgICAgICAgICAgIGlucHV0LnNldFNl
bGVjdGlvblJhbmdlKDAsIDApOworICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIGZvY3VzZWQoKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0
KCgpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCJmb2N1c2VkIiksIDApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaW5wdXQo
KSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJpbnB1dCIpLCAwKTsKKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9bG9hZGVkKCk+CisgICAgPGlu
cHV0IG9uZm9jdXM9Zm9jdXNlZCgpIG9uaW5wdXQ9aW5wdXQoKT48L2lucHV0PgorPC9ib2R5Pgor
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlkZXMt
Y29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbAppbmRleCBlNDI2N2M0MzFkN2FhZmYwNmE5
MWRkYjgyMjhhYWU1OThjZjI5YTY4Li4wMTAyZTk2MjlmMzYxMWJkYzI4YmUxOWUxYzY2ZjhlMTkz
ZTA4YjBkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9sYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLWhpZGVz
LWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwKQEAgLTcsNyArNyw3IEBACiAgICAgICAg
IC8vIFRoZSBtZWRpYSBjb250cm9scyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBydW5s
b29wLgogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFu
ZGxlci5wb3N0TWVzc2FnZSgiZW5kZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiZW5kZWQiKTsKICAgICAg
ICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KQEAgLTI2LDcgKzI2
LDcgQEAKICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0
b3BsYXllZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNh
dGNoKGUpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11dGVzLW9ucGxh
eWluZy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW8tbXV0ZXMtb25wbGF5aW5nLmh0bWwKaW5kZXggYjVjYWYyM2E1YWNlYWU0YzYzZjJmNTAz
NTMzYjZlMjYxYTU5ZTNmNC4uMzhmYjMyNTUyMjM0ZmViMDhhOWQ4NTQ4NWE1YjkxYTJiMzRkYzY4
OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFy
Z2UtdmlkZW8tbXV0ZXMtb25wbGF5aW5nLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tbXV0ZXMtb25wbGF5aW5nLmh0bWwKQEAgLTMs
NyArMyw3IEBACiA8c2NyaXB0PgogICAgIGZ1bmN0aW9uIGhhbmRsZVBsYXlpbmcoKSB7CiAgICAg
ICAgIHRyeSB7Ci0gICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5
aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgicGxheWluZyIpOworICAgICAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsK
ICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgIH0KICAgICAgICAgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigidmlkZW8iKS5tdXRlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVl
bi5odG1sCmluZGV4IDUwYTY4NWZmNjU5YTk4ZDc3ZTE2NTQxZjFkOTAxMjMxN2I1MmQ1M2UuLjM5
Y2Y0NzZhYjM1MGIxNGFjNDIzMWE2OGM1NDdhOTg1NjhiZjNmYTkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5o
dG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvLW9mZnNjcmVlbi5odG1sCkBAIC0xNiw3ICsxNiw3IEBACiAgICAgICAgICAgICBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpLmNsYXNzTGlzdC5hZGQoIm9mZnNjcmVlbiIpOwogICAg
ICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICB0cnkgewot
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5n
SGFuZGxlci5wb3N0TWVzc2FnZSgibW92ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIm1vdmVkIik7
CiAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfSwgMCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9sYXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWwgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1h
d2F5Lmh0bWwKaW5kZXggOTU5NjAwM2NiN2YwYWI1NzgxMDNiNjYzZmQ0NjNkMzMwMjAyZDQ5Yi4u
MGI3ZTA5YTMyNjAzMzk2MzM4MjdlYjBlZDljZjcxZGEwMWU0OWEwYiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tcGxheWluZy1z
Y3JvbGwtYXdheS5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL2xhcmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRtbApAQCAtMTQsMTQgKzE0LDE0
IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBzY3JvbGxWaWRlb091dE9mVmlldygpIHsKICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYiKS5zY3JvbGxJbnRvVmlldygp
OwogICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RN
ZXNzYWdlKCJzY3JvbGxlZCIpOworICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKICAgICAg
ICAgICAgICAgICB9LCAwKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24g
YmVnYW5BdXRvcGxheWluZygpIHsKICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2Uo
ImF1dG9wbGF5ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAg
ICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLWFmdGVyLWVu
ZGluZy5odG1sCmluZGV4IGUzMTY3ZjU3NGM0NjBiMjYzYjM3MzIxYzY4NjQ2MWI1NDFlOWRjOTIu
LjAzODY1NDBhM2NiOTY4ZjMyZjU5ZjNhNWZjMjI1Y2MyYjNjZGZkMDkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNlZWstYWZ0
ZXItZW5kaW5nLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbApAQCAtNiw3ICs2LDcgQEAKICAg
ICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN0ZXN0LXZpZGVvIikuY3VycmVudFRp
bWUgPSAwOwogICAgICAgICAgICAgLy8gVGhlIG1lZGlhIGNvbnRyb2xzIHNob3VsZCBiZSB1cGRh
dGVkIG9uIHRoZSBuZXh0IHJ1bmxvb3AuCiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlp
bmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJlbmRlZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJlbmRlZCIpOwog
ICAgICAgICAgICAgfSwgMCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmct
YW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1l
bmRpbmcuaHRtbAppbmRleCAwN2E4ZWIxMGViMTRmMTlhMTkyNzcxMmQzNDU5MzFhZWRiYzNlYjAz
Li5hZGE5YTJkMTI3MWM5OGZlNDczY2U2N2MzOWZlZWIxZmViNWI0OWU4IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLXRv
LWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1h
bmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbApAQCAtOCw3ICs4LDcgQEAKICAgICAgICAgICAgIHZp
ZGVvLnBsYXkoKTsKICAgICAgICAgICAgIC8vIFRoZSBtZWRpYSBjb250cm9scyBzaG91bGQgYmUg
dXBkYXRlZCBvbiB0aGUgbmV4dCBydW5sb29wLgogICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5w
bGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgicmVwbGF5aW5nIik7CisgICAgICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInJl
cGxheWluZyIpOwogICAgICAgICAgICAgfSwgMCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aC1h
dWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW8td2l0aC1hdWRpby5odG1sCmluZGV4IGQyMzM0NjNjZWI4ZmFhMzIyZTM2ZjBjMjJiYWMx
OTFhMzMzZThhZmEuLjg1ODJiNDU3ZjMxZDkwMDNhMjY1ZmYxZTE5MjA2NTQ1ZDA5ZmVjY2MgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9sYXJnZS12aWRlby13aXRoLWF1ZGlvLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAg
ICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcn
KTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAg
ICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAg
ICAgICAgICAgfQpAQCAtMjMsNyArMjMsNyBAQAogCiAgICAgZnVuY3Rpb24gbm90UGxheWluZygp
IHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOworICAgICAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
J25vdCBwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgfQogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJn
ZS12aWRlby13aXRob3V0LWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRob3V0LWF1ZGlvLmh0bWwKaW5kZXggM2FiNzUyZTg1
OGMxNDExZGZiNDI0ZDA3ODI2ZDU2MWE2ZDdlYTc1OS4uZjQ5MmZhNGQzNTIzZGQzODc2ZDU2ZGM4
NGE1MTdiNDEyNTJiZmQ5YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aG91dC1hdWRpby5odG1sCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGhvdXQtYXVkaW8u
aHRtbApAQCAtMTMsNyArMTMsNyBAQAogICAgIGZ1bmN0aW9uIHBsYXlpbmcoKSB7CiAgICAgICAg
IHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dCk7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2Fn
ZSgncGxheWluZycpOworICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsKICAgICAgICAgfSBjYXRjaChlKSB7
CiAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAnY2FsbGJhY2s6cGxheWluZyc7CiAgICAg
ICAgIH0KQEAgLTIxLDcgKzIxLDcgQEAKIAogICAgIGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CiAg
ICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5w
bGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKKyAgICAgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3Qg
cGxheWluZycpOwogICAgICAgICB9IGNhdGNoKGUpIHsgfQogICAgIH0KIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctY2xpY2stdG8tcGF1
c2UuaHRtbAppbmRleCBjODFhMzFlNmM5Y2RmOWRjNDUyN2Q0MjZiYzY1NGFmOTBlYTU3NmM1Li4y
MmRiZWJmMTJkZmYwOTY2YTUxMWVmMTQ1YjhiY2JmOTljZjY0YmNhIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3BsYXlp
bmctY2xpY2stdG8tcGF1c2UuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctY2xpY2stdG8tcGF1c2UuaHRtbApA
QCAtMTcsNyArMTcsNyBAQAogICAgICAgICAgICAgZnVuY3Rpb24gaGFuZGxlRmlyc3RQYXVzZSgp
IHsKICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIpOwogICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUp
IHsgfQogICAgICAgICAgICAgICAgIH0sIDApOwogICAgICAgICAgICAgfQpAQCAtMjUsNyArMjUs
NyBAQAogICAgICAgICAgICAgZnVuY3Rpb24gaGFuZGxlU2Vjb25kUGF1c2UoKSB7CiAgICAgICAg
ICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgdHJ5
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCJwYXVzZWQiKTsKICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAg
ICAgICAgICAgICB9LCAwKTsKICAgICAgICAgICAgIH0KQEAgLTMzLDcgKzMzLDcgQEAKICAgICAg
ICAgICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5k
bGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0
b3BsYXllZCIpOwogICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctc2Ny
b2xsLXRvLXZpZGVvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9sYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctc2Nyb2xsLXRvLXZpZGVvLmh0bWwKaW5kZXggZGI0
M2Q0YmI0NWNiYTdmN2EwYjVjNzcwYmU3NWFkYTg5ODEyODA3ZC4uZDFjMWFhZWE5MDJkNGE2MTM2
MWNkNmE5OTQ3NGM3MTFhZWZjMjNiMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLXNjcm9sbC10by12aWRl
by5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdl
LXZpZGVvcy1hdXRvcGxheWluZy1zY3JvbGwtdG8tdmlkZW8uaHRtbApAQCAtMTQsMTMgKzE0LDEz
IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBzY3JvbGxUb1NlY29uZFZpZXcoKSB7CiAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NlY29uZCIpLnNjcm9sbEludG9WaWV3
KCk7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9z
dE1lc3NhZ2UoInNjcm9sbGVkIik7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIpOwogICAg
ICAgICAgICAgICAgIH0sIDApOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZnVuY3Rpb24g
YmVnYW5BdXRvcGxheWluZygpIHsKICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2Uo
ImF1dG9wbGF5ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAg
ICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRt
bCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1w
YXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbAppbmRleCBlYTUwNDk1MzA2OTJlMjZlNDNl
Mjc5OTI2NGNkOGIyNTBjYzk0ZmRjLi4zMWY4NmNiYzk2MzU1M2VjNzY4YzQ0YmM3MmFlODc2Nzll
Y2EzOGEyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9sYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBhdXNlZC12
aWRlby1oaWRlcy1jb250cm9scy5odG1sCkBAIC0xNywxNCArMTcsMTQgQEAKICAgICBmdW5jdGlv
biBoYW5kbGVQYXVzZWQoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsKKyAgICAgICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgi
cGF1c2VkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsgfQogICAgICAgICB9LCAwKTsKICAg
ICB9CiAgICAgZnVuY3Rpb24gYmVnYW5BdXRvcGxheWluZygpIHsKICAgICAgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9w
bGF5ZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50
ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgfSBjYXRj
aChlKSB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy1tdXRl
ZC12aWRlby1oaWRlcy1jb250cm9scy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJv
bHMuaHRtbAppbmRleCAyZTU3ZGY3OGIxZmViMDRlODMyZTNkOWYzMWNmOWIyZmEzYWZkZjI3Li4z
NDQ4NmUyZTNmZDY3YTVjZDcxNjhjM2I3NTViMTJmZjAxYjczYzZjIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy1t
dXRlZC12aWRlby1oaWRlcy1jb250cm9scy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLW11dGVkLXZpZGVvLWhpZGVz
LWNvbnRyb2xzLmh0bWwKQEAgLTE1LDE0ICsxNSwxNCBAQAogICAgICAgICBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCIjYmFyIikuc2Nyb2xsSW50b1ZpZXcoKTsKICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmci
KTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgicGxheWluZyIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0K
ICAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7
CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAg
ICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVy
LnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsK
ICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW9zLXBsYXlpbmctdmlkZW8ta2VlcHMtY29udHJvbHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBz
LWNvbnRyb2xzLmh0bWwKaW5kZXggZGI3Y2FjNmI5OTE5NDYzMzIzYjMzMzFhYzM4OGJlZTdlYTVj
NDUxZi4uYjZmY2Y3YTA1MGM1ZTA2ZTFlMzY2YmZlNDJkMzE1YWEyMzcwNDc5NCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBs
YXlpbmctdmlkZW8ta2VlcHMtY29udHJvbHMuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy12aWRlby1rZWVwcy1jb250
cm9scy5odG1sCkBAIC0xNCwxNCArMTQsMTQgQEAKICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiI2JhciIpLnNjcm9sbEludG9WaWV3KCk7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIpOwor
ICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVy
LnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAg
ICAgICAgfSwgMCk7CiAgICAgfQogICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAg
ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAg
ICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBv
c3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAg
ICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgfQogICAgICAgICB9LCAwKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwKaW5kZXgg
NzY1MjU0ZDIzZjg4OGE1NTZiM2Q3Zjg4MWMzNmYwZGU1OTdmMTcwNS4uM2UxNzBjZWQ1ZDI5ZGVh
MmUwZDM3YmZlODYxNmZkZWQ1M2ZhOTM4MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRt
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
b3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sCkBAIC00LDcgKzQsNyBAQAogICAgIGZ1bmN0aW9u
IGJlZ2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAg
ICAgfQogICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2Evc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3NraW5ueS1hdXRvcGxheWlu
Zy12aWRlby13aXRoLWF1ZGlvLmh0bWwKaW5kZXggYmE0OGQ0ZDcyMDk3NmU1MjQ5ODYwZmRhZmQ5
M2JkMzlkYmY3ODRhZi4uMjZlZjUzZGMyMzRjYzJiZmQzYWMxOTc3ZDkyMjk1MDVmNTA2MGU2ZSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evc2tpbm55
LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9za2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRp
by5odG1sCkBAIC0xMSw3ICsxMSw3IEBACiAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9z
dE1lc3NhZ2UoInBsYXlpbmciKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgicGxheWluZyIpOwogICAgICAgICAg
ICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRvcGxheWluZy12aWRl
by13aXRoLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS93aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAppbmRleCAwZWI5YWY2YWM3
ZTUzODUxNDI2MjQzNjY4MDQxYzZiOTRjMjg5NWQ1Li5lYTJjYjUwNjMyMzBhNzZkMzJlNmM2NzVj
OThhNTczYTRkZmFjNWVlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS93aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS93aWRlLWF1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbApAQCAtMTEsNyArMTEsNyBAQAogICAgIGZ1bmN0aW9uIGZpbmlz
aFRlc3QoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0
cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlp
bmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CisgICAgICAgICAgICAgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBsYXlpbmci
KTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzE3
M2FkZTRkMTQxNzFhMDFjNjE1MzFiNDllYzdhOGQyNjcwMTIyCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oCkBAIC0wLDAgKzEsNDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRlc3RXS1dlYlZpZXdNYWNfaAorI2RlZmluZSBUZXN0
V0tXZWJWaWV3TWFjX2gKKworI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgorCisjaWYgV0tfQVBJ
X0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKQorCitAaW50ZXJmYWNlIFRlc3RNZXNzYWdlSGFuZGxl
ciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgorLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGhhbmRsZXI6KGRpc3BhdGNoX2Jsb2Nr
X3QpaGFuZGxlcjsKK0BlbmQKKworQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IDogV0tXZWJWaWV3
CistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQ7CistICh2b2lkKXBlcmZv
cm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3Bh
dGNoX2Jsb2NrX3QpYWN0aW9uOworLSAodm9pZClsb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcg
KilwYWdlTmFtZTsKKy0gKHZvaWQpdHlwZUNoYXJhY3RlcjooY2hhciljaGFyYWN0ZXI7CistIChO
U1N0cmluZyAqKXN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6KE5TU3RyaW5nICopc2NyaXB0
OworLSAodm9pZCl3YWl0Rm9yTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlOworLSAodm9pZClw
ZXJmb3JtQWZ0ZXJMb2FkaW5nOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbnM7CitAZW5kCisKKyNl
bmRpZiAvKiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpICovCisKKyNlbmRpZiAvKiBU
ZXN0V0tXZWJWaWV3TWFjX2ggKi8KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFj
L1Rlc3RXS1dlYlZpZXdNYWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJW
aWV3TWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjOTM3YjRkOWZiMTY5NTExMWMxNjk5NjgwYzVjMDAwOTYx
OTBlMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tX
ZWJWaWV3TWFjLm1tCkBAIC0wLDAgKzEsMTM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3TWFjLmgiCisKKyNpZiBXS19BUElfRU5BQkxF
RCAmJiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIlV0aWxpdGllcy5oIgorCisjaW1wb3J0IDxB
cHBLaXQvQXBwS2l0Lmg+CisjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CisjaW1wb3J0IDxXZWJL
aXQvV2ViS2l0UHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW1wbGVt
ZW50YXRpb24gVGVzdE1lc3NhZ2VIYW5kbGVyIHsKKyAgICBkaXNwYXRjaF9ibG9ja190IF9oYW5k
bGVyOworICAgIE5TU3RyaW5nICpfbWVzc2FnZTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGhhbmRsZXI6KGRpc3BhdGNoX2Jsb2NrX3Qp
aGFuZGxlcgoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1
cm4gbmlsOworCisgICAgX2hhbmRsZXIgPSBbaGFuZGxlciBjb3B5XTsKKyAgICBfbWVzc2FnZSA9
IG1lc3NhZ2U7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZCl1c2VyQ29udGVudENv
bnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVy
IGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCit7Cisg
ICAgaWYgKFsoTlNTdHJpbmcgKilbbWVzc2FnZSBib2R5XSBpc0VxdWFsVG9TdHJpbmc6X21lc3Nh
Z2VdICYmIF9oYW5kbGVyKQorICAgICAgICBfaGFuZGxlcigpOworfQorCitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBUZXN0V0tXZWJWaWV3CisKKy0gKHZvaWQpbW91c2VEb3duQXRQb2ludDooTlNQ
b2ludClwb2ludAoreworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MjAwCisgICAgTlNFdmVudFR5cGUgbW91c2VFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURvd247CisjZWxzZQorICAgIE5TRXZlbnRUeXBlIG1vdXNlRXZlbnRUeXBlID0gTlNMZWZ0TW91
c2VEb3duOworI2VuZGlmCisgICAgW3NlbGYgbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTptb3VzZUV2ZW50VHlwZSBsb2NhdGlvbjpOU01ha2VQb2ludChwb2ludC54LCBwb2lu
dC55KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5k
b3dOdW1iZXI6MCBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZl
bnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF1dOworfQorCistICh2b2lkKXBlcmZv
cm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3Bh
dGNoX2Jsb2NrX3QpYWN0aW9uCit7CisgICAgUmV0YWluUHRyPFRlc3RNZXNzYWdlSGFuZGxlcj4g
aGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoTWVz
c2FnZTptZXNzYWdlIGhhbmRsZXI6YWN0aW9uXSk7CisgICAgV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIqIGNvbnRlbnRDb250cm9sbGVyID0gW1tzZWxmIGNvbmZpZ3VyYXRpb25dIHVzZXJDb250ZW50
Q29udHJvbGxlcl07CisgICAgW2NvbnRlbnRDb250cm9sbGVyIHJlbW92ZVNjcmlwdE1lc3NhZ2VI
YW5kbGVyRm9yTmFtZTpAInRlc3RIYW5kbGVyIl07CisgICAgW2NvbnRlbnRDb250cm9sbGVyIGFk
ZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07
Cit9CisKKy0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWUKK3sK
KyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6cGFnZU5hbWUgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwor
ICAgIFtzZWxmIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworfQorCistICh2b2lkKXR5cGVDaGFyYWN0
ZXI6KGNoYXIpY2hhcmFjdGVyIHsKKyAgICBOU1N0cmluZyAqY2hhcmFjdGVyQXNTdHJpbmcgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVjIiAsIGNoYXJhY3Rlcl07CisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKyAgICBOU0V2ZW50VHlwZSBrZXlE
b3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlEb3duOworICAgIE5TRXZlbnRUeXBlIGtleVVw
RXZlbnRUeXBlID0gTlNFdmVudFR5cGVLZXlVcDsKKyNlbHNlCisgICAgTlNFdmVudFR5cGUga2V5
RG93bkV2ZW50VHlwZSA9IE5TS2V5RG93bjsKKyAgICBOU0V2ZW50VHlwZSBrZXlVcEV2ZW50VHlw
ZSA9IE5TS2V5VXA7CisjZW5kaWYKKyAgICBbc2VsZiBrZXlEb3duOltOU0V2ZW50IGtleUV2ZW50
V2l0aFR5cGU6a2V5RG93bkV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZs
YWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6MCBjb250
ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01v
ZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJd
XTsKKyAgICBbc2VsZiBrZXlVcDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleVVwRXZlbnRU
eXBlIGxvY2F0aW9uOk5TWmVyb1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3Vy
cmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjowIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hh
cmFjdGVyQXNTdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlckFzU3Ry
aW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmNoYXJhY3Rlcl1dOworfQorCistIChOU1N0cmluZyAq
KXN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6KE5TU3RyaW5nICopc2NyaXB0Cit7CisgICAg
X19ibG9jayBib29sIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSBmYWxzZTsKKyAgICBfX2Jsb2Nr
IE5TU3RyaW5nICpldmFsUmVzdWx0ID0gbmlsOworICAgIFtzZWxmIGV2YWx1YXRlSmF2YVNjcmlw
dDpzY3JpcHQgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKQor
ICAgIHsKKyAgICAgICAgZXZhbFJlc3VsdCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
JUAiLCByZXN1bHRdOworICAgICAgICBpc1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gdHJ1ZTsKKyAg
ICAgICAgRVhQRUNUX1RSVUUoIWVycm9yKTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCk7CisgICAgcmV0dXJuIGV2YWxSZXN1
bHQ7Cit9CisKKy0gKHZvaWQpd2FpdEZvck1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZQorewor
ICAgIF9fYmxvY2sgYm9vbCBpc0RvbmVXYWl0aW5nID0gZmFsc2U7CisgICAgW3NlbGYgcGVyZm9y
bUFmdGVyUmVjZWl2aW5nTWVzc2FnZTptZXNzYWdlIGFjdGlvbjpeKCkKKyAgICB7CisgICAgICAg
IGlzRG9uZVdhaXRpbmcgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmaXNEb25lV2FpdGluZyk7Cit9CisKKy0gKHZvaWQpcGVyZm9ybUFmdGVyTG9hZGluZzoo
ZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb25zIHsKKyAgICBUZXN0TWVzc2FnZUhhbmRsZXIgKmhhbmRs
ZXIgPSBbW1Rlc3RNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdFdpdGhNZXNzYWdlOkAibG9hZGVk
IiBoYW5kbGVyOmFjdGlvbnNdOworICAgIE5TU3RyaW5nICpvbmxvYWRTY3JpcHQgPSBAIndpbmRv
dy5vbmxvYWQgPSAoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5vbmxvYWRIYW5k
bGVyLnBvc3RNZXNzYWdlKCdsb2FkZWQnKSI7CisgICAgV0tVc2VyU2NyaXB0ICpzY3JpcHQgPSBb
W1dLVXNlclNjcmlwdCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6b25sb2FkU2NyaXB0IGluamVjdGlv
blRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJh
bWVPbmx5Ok5PXTsKKworICAgIFdLVXNlckNvbnRlbnRDb250cm9sbGVyKiBjb250ZW50Q29udHJv
bGxlciA9IFtbc2VsZiBjb25maWd1cmF0aW9uXSB1c2VyQ29udGVudENvbnRyb2xsZXJdOworICAg
IFtjb250ZW50Q29udHJvbGxlciBhZGRVc2VyU2NyaXB0OnNjcmlwdF07CisgICAgW2NvbnRlbnRD
b250cm9sbGVyIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIgbmFtZTpAIm9ubG9hZEhh
bmRsZXIiXTsKK30KKworQGVuZAorCisjZW5kaWYgLyogV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZP
Uk0oTUFDKSAqLwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289073</attachid>
            <date>2016-09-16 10:43:38 -0700</date>
            <delta_ts>2016-09-16 11:16:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-162009-20160916104058.patch</filename>
            <type>text/plain</type>
            <size>85263</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWEyZTNjYjRhZTU3Yjdh
Mzg2ZjRhMmI2ZTVhZjQ4ZjcxZjhkNmI3My4uNGRmOWQ3MDc0NDY4MTQ4OGQzMDEyYzg4YzdkMWU1
MGQ1MWFlMTNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE2LTA5LTE2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEluc2VydGluZyBh
IHNwYWNlIGFmdGVyIGluc2VydGluZyBhbiBhY2NlcHRlZCBjYW5kaWRhdGUgc2Nyb2xscyB0aGUg
ZG9jdW1lbnQgYW5kIGNhdXNlcyBhIGZsaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjAwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgw
ODYyMzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZnRl
ciBpbnNlcnRpbmcgYSB0ZXh0IGNhbmRpZGF0ZSwgaWYgdGhlIGNhbmRpZGF0ZSBlbmRlZCB3aXRo
IGEgc29mdCBzcGFjZSwgdGhlIG5leHQgc3BhY2Ugd2UgaW5zZXJ0IHNob3VsZCBqdXN0CisgICAg
ICAgIHJlcGxhY2UgdGhlIHNvZnQgc3BhY2UuIFRoaXMgY3VycmVudGx5IHdvcmtzIGJlY2F1c2Ug
d2UgbGVhdmUgdGhlIHRleHQgaW5zZXJ0aW9uIG91dCBvZiB0aGUgbGlzdCBvZgorICAgICAgICBL
ZXlwcmVzc0NvbW1hbmRzIHNlbnQgdG8gdGhlIHdlYiBwcm9jZXNzIGFuZCBpbnN0ZWFkIHJlcGxh
Y2UgdGhlIHNvZnQgc3BhY2UgdmlhIFdlYlBhZ2U6Okluc2VydFRleHRBc3luYy4KKyAgICAgICAg
SG93ZXZlciwgdGhpcyBtZWFucyB3aGVuIHRoZSB3ZWIgcHJvY2VzcyBoYW5kbGVzIHRoaXMga2V5
ZG93biBldmVudCwgdGhlIGN1cnJlbnQgZWRpdG9yIHdpbGwgbm90IGhhbmRsZSBpdCwKKyAgICAg
ICAgc2luY2UgdGhlIGxpc3Qgb2Yga2V5IGNvbW1hbmRzIGlzIGVtcHR5IGRlc3BpdGUgdGhlIHRl
eHQgYW5kIHVubW9kaWZpZWQgdGV4dCBiZWluZyBub24tZW1wdHkuCisKKyAgICAgICAgVG8gZml4
IHRoaXMsIHdoZW4gc2VuZGluZyBrZXlkb3duIG9yIGtleXVwIGV2ZW50cyB3aGVyZSB3ZSByZXBs
YWNlIGEgc29mdCBzcGFjZSwgd2Ugc2V0IHRoZSBrZXkgZXZlbnQncyB0ZXh0IHRvCisgICAgICAg
IGFuIGVtcHR5IHN0cmluZyBpbnN0ZWFkIG9mIGEgc3BhY2UuIFRoaXMgYWxsb3dzIHVzIHRvIHJl
dHVybiBlYXJseSBpbiBFdmVudEhhbmRsZXI6OmtleUV2ZW50IGFuZCBhdm9pZCB0aGUKKyAgICAg
ICAgY29kZXBhdGggdGhhdCB0cmllcyB0byBpbnNlcnQgdGV4dCBpbnRvIHRoZSBjdXJyZW50IGVk
aXRvciBhbmQgKGluIHRoZSBjYXNlIG9mIGluc2VydGluZyBhICcgJykgc2Nyb2xscyB0aGUKKyAg
ICAgICAgZG9jdW1lbnQgaWYgbmVjZXNzYXJ5LiBTaW5jZSB3ZSd2ZSBhbHJlYWR5IGhhbmRsZWQg
dGV4dCBpbnNlcnRpb24gdmlhIFdlYlBhZ2U6Okluc2VydFRleHRBc3luYywgdGhlcmUgaXMgbm8g
bmVlZAorICAgICAgICB0byBhbHNvIGRpc3BhdGNoIHRoZSBrZXlwcmVzcyB0byB0aGUgZWRpdG9y
LgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgdGhpcyBwYXRjaCBhZGRyZXNzZXMgZmxpY2tlcmlu
ZyBpbiB0aGUgY2FuZGlkYXRlcyBVSSBkdWUgdG8gdGhlIGZhY3QgdGhhdCB3ZSdyZSBhc3luY2hy
b25vdXNseQorICAgICAgICByZXBsYWNpbmcgdGhlIGxhc3Qgc29mdCBzcGFjZS4gRHVyaW5nIHRo
aXMgb3BlcmF0aW9uLCB3ZSBzZWxlY3QgdGhlIHJhbmdlIG9mIHRoZSBzb2Z0IHNwYWNlIGFuZCB0
aGVuIGluc2VydCB0aGUKKyAgICAgICAgbmV3IHRleHQuIFRoaXMgY2F1c2VzIGEgbW9tZW50YXJ5
IHJhbmdlIHNlbGVjdGlvbiB3aGljaCB0aGUgd2ViIHByb2Nlc3Mgbm90aWZpZXMgdGhlIFVJIHBy
b2Nlc3MgYWJvdXQsIHByb21wdGluZworICAgICAgICB1cyB0byBoaWRlIHRoZSBjYW5kaWRhdGVz
IGxpc3QuIFRvIGFkZHJlc3MgdGhpcywgd2Ugc3VwcHJlc3MgdGhlIEVkaXRvclN0YXRlQ2hhbmdl
ZCBtZXNzYWdlIGZpcmVkIGZyb20gdGhlIHdlYgorICAgICAgICBwcm9jZXNzIHRvIHRoZSBVSSBw
cm9jZXNzIHdoaWxlIHdlJ3JlIHNlbGVjdGluZyB0aGUgb3JpZ2luYWwgcmFuZ2UgdG8gcmVwbGFj
ZS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgMyBuZXcgV2ViS2l0IEFQSSB0ZXN0cy4KKwor
ICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogU2hh
cmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpO
YXRpdmVXZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KToKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2Vi
RXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0Ojp0ZXh0RnJvbUV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6dW5tb2RpZmllZFRleHRGcm9tRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2hhbmRs
ZUFjY2VwdGVkQ2FuZGlkYXRlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZEhhbmRsZUFj
Y2VwdGVkQ2FuZGlkYXRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkVXBkYXRlQ2FuZGlk
YXRlTGlzdFZpc2liaWxpdHk6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZm9yY2VSZXF1ZXN0
Q2FuZGlkYXRlc10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2hhbmRsZUNvbnRyb2xsZWRFbGVt
ZW50SURSZXNwb25zZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW06CisgICAgICAgICgtW1dLVmlldyBfZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGVdKToKKyAg
ICAgICAgKC1bV0tWaWV3IF9kaWRVcGRhdGVDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eTpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpm
b3JjZVJlcXVlc3RDYW5kaWRhdGVzRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpkaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjppbnNlcnRUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBlcmZv
cm1LZXlFcXVpdmFsZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmtleVVwKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmtleURvd24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6ZmxhZ3NDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjppbnNlcnRUZXh0QXN5
bmMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omlu
c2VydFRleHRBc3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZENoYW5nZVNlbGVj
dGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxNi0wOS0xNSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgV0tXZWJWaWV3Lmhh
c09ubHlTZWN1cmVDb250ZW50IGFsd2F5cyByZXR1cm5zICJZRVMiIGFmdGVyIGdvaW5nIGJhY2sg
dG8gYSBDYWNoZWRQYWdlIChldmVuIGlmIGl0IGhhcyBodHRwIHJlc291cmNlcykuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAppbmRleCAyM2NjNzRh
NWM4ODE4NGE2NzgyODYwNzNlODI2ZDQwZDhlNzJkM2ViLi4yMmNhNjFlMzRjOGZiYThhMTQyNzNl
MDYzY2Y0M2RhNTUwOTUxYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50LmgKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBj
bGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYktleWJvYXJkRXZlbnQgewog
cHVibGljOgogI2lmIFVTRShBUFBLSVQpCi0gICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChOU0V2
ZW50ICosIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpL
ZXlwcmVzc0NvbW1hbmQ+Jik7CisgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICos
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2UsIGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+Jik7CiAjZWxpZiBQTEFURk9STShHVEsp
CiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50
Jik7CiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChHZGtFdmVudCosIGNvbnN0IFdlYkNvcmU6
OkNvbXBvc2l0aW9uUmVzdWx0cyYsIElucHV0TWV0aG9kRmlsdGVyOjpFdmVudEZha2VkRm9yQ29t
cG9zaXRpb24sIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9OYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tCmluZGV4IGFm
YjNiNjA3MTBjNmFiZGE4ZWM2NjhkY2ZiNTVmNWVhYWNmYjJlN2YuLjZmNTljYmI0MzgyODMyZjA1
MjdjNzE1ZWVkNmNhZTcyMDYzMmRhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL05hdGl2ZVdlYktleWJvYXJkRXZlbnRNYWMubW0KQEAgLTM1LDggKzM1LDggQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYg
Y29tbWFuZHMpCi0gICAgOiBXZWJLZXlib2FyZEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRl
V2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSkK
K05hdGl2ZVdlYktleWJvYXJkRXZlbnQ6Ok5hdGl2ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAq
ZXZlbnQsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJvb2wgcmVwbGFjZXNTb2Z0U3BhY2Us
IGNvbnN0IFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykKKyAgICA6IFdlYktleWJv
YXJkRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBo
YW5kbGVkQnlJbnB1dE1ldGhvZCwgcmVwbGFjZXNTb2Z0U3BhY2UsIGNvbW1hbmRzKSkKICAgICAs
IG1fbmF0aXZlRXZlbnQoZXZlbnQpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkuaAppbmRleCA1OTk5NWY4NzNmNDM0Mjk0YTQ4ODQyNjU1NWYxYTZmZjc2
ZGIzY2Q1Li5iZTg3MmNlYjY4YTVhY2NmN2JjNmJmYWJkMjFkMjM0ZGRkOTY0MjZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5LmgKQEAgLTQ0LDcgKzQ0LDcg
QEAgcHVibGljOgogI2lmIFVTRShBUFBLSVQpCiAgICAgc3RhdGljIFdlYk1vdXNlRXZlbnQgY3Jl
YXRlV2ViTW91c2VFdmVudChOU0V2ZW50ICosIE5TRXZlbnQgKmxhc3RQcmVzc3VyZUV2ZW50LCBO
U1ZpZXcgKndpbmRvd1ZpZXcpOwogICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldo
ZWVsRXZlbnQoTlNFdmVudCAqLCBOU1ZpZXcgKndpbmRvd1ZpZXcpOwotICAgIHN0YXRpYyBXZWJL
ZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqLCBib29sIGhhbmRs
ZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYp
OworICAgIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNF
dmVudCAqLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBib29sIHJlcGxhY2VzU29mdFNwYWNl
LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYpOwogICAgIHN0YXRpYyBi
b29sIHNob3VsZEJlSGFuZGxlZEFzQ29udGV4dENsaWNrKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3Jt
TW91c2VFdmVudCYpOwogI2VuZGlmIC8vIFVTRShBUFBLSVQpCiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQppbmRleCA1YmRiYzhmZDZkZTE4OTEwNTk0
NDVmNDQ0NTcxYWYzYjZjYTc0Mjg2Li41ZjNiYTkyOGJmYjE4ZWFiYmNjNTVhNTg1NWU3YTU2NjY5
YWJhM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFj
dG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5t
bQpAQCAtMjM2LDggKzIzNiwxMCBAQCBzdGF0aWMgV2ViV2hlZWxFdmVudDo6UGhhc2UgbW9tZW50
dW1QaGFzZUZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxX
ZWJXaGVlbEV2ZW50OjpQaGFzZT4ocGhhc2UpOwogfQogCi1zdGF0aWMgaW5saW5lIFN0cmluZyB0
ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50KQorc3RhdGljIGlubGluZSBTdHJpbmcgdGV4dEZy
b21FdmVudChOU0V2ZW50KiBldmVudCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSkKIHsKKyAgICBp
ZiAocmVwbGFjZXNTb2Z0U3BhY2UpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGlmIChbZXZlbnQgdHlwZV0gPT0g
TlNGbGFnc0NoYW5nZWQpCkBAIC0yNDYsOCArMjQ4LDEwIEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5n
IHRleHRGcm9tRXZlbnQoTlNFdmVudCogZXZlbnQpCiAgICAgcmV0dXJuIFN0cmluZyhbZXZlbnQg
Y2hhcmFjdGVyc10pOwogfQogCi1zdGF0aWMgaW5saW5lIFN0cmluZyB1bm1vZGlmaWVkVGV4dEZy
b21FdmVudChOU0V2ZW50KiBldmVudCkKK3N0YXRpYyBpbmxpbmUgU3RyaW5nIHVubW9kaWZpZWRU
ZXh0RnJvbUV2ZW50KE5TRXZlbnQqIGV2ZW50LCBib29sIHJlcGxhY2VzU29mdFNwYWNlKQogewor
ICAgIGlmIChyZXBsYWNlc1NvZnRTcGFjZSkKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaWYgKFtldmVudCB0eXBl
XSA9PSBOU0ZsYWdzQ2hhbmdlZCkKQEAgLTQ1NywxMSArNDYxLDExIEBAIFdlYldoZWVsRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1Zp
ZXcgKndpbmRvCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQ
b2ludChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRh
WCwgZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFy
aXR5LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBo
YXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9s
bGluZ0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CiB9CiAKLVdlYktleWJvYXJkRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiYgY29tbWFuZHMpCitXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBoYW5kbGVkQnlJbnB1dE1l
dGhvZCwgYm9vbCByZXBsYWNlc1NvZnRTcGFjZSwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQogewogICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgICAgICAg
ICAgICAgPSBpc0tleVVwRXZlbnQoZXZlbnQpID8gV2ViRXZlbnQ6OktleVVwIDogV2ViRXZlbnQ6
OktleURvd247Ci0gICAgU3RyaW5nIHRleHQgICAgICAgICAgICAgICAgICAgICA9IHRleHRGcm9t
RXZlbnQoZXZlbnQpOwotICAgIFN0cmluZyB1bm1vZGlmaWVkVGV4dCAgICAgICAgICAgPSB1bm1v
ZGlmaWVkVGV4dEZyb21FdmVudChldmVudCk7CisgICAgU3RyaW5nIHRleHQgICAgICAgICAgICAg
ICAgICAgICA9IHRleHRGcm9tRXZlbnQoZXZlbnQsIHJlcGxhY2VzU29mdFNwYWNlKTsKKyAgICBT
dHJpbmcgdW5tb2RpZmllZFRleHQgICAgICAgICAgID0gdW5tb2RpZmllZFRleHRGcm9tRXZlbnQo
ZXZlbnQsIHJlcGxhY2VzU29mdFNwYWNlKTsKICAgICBTdHJpbmcga2V5SWRlbnRpZmllciAgICAg
ICAgICAgID0ga2V5SWRlbnRpZmllckZvcktleUV2ZW50KGV2ZW50KTsKICAgICBpbnQgd2luZG93
c1ZpcnR1YWxLZXlDb2RlICAgICAgID0gd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChldmVudCk7
CiAgICAgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlICAgICAgICA9IFtldmVudCBrZXlDb2RlXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5k
ZXggMmI4NDQ5ODYyYTRiNzRkODU2ODE4MTQxYTdiYzk3OGQwYzRhOTNiNi4uOGY1OTczYmMyYTIx
NzdkYTIxYWVmNjcyNzc2NGY1ZDUxNmNlYjlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ1NjQsNiArNDU2NCwyOCBAQCAtICh2
b2lkKV9oYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2U6KE5TU3RyaW5nICopaWRlbnRp
ZmllcgogewogICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KIH0KKworLSAodm9pZClf
aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGU6KE5TVGV4dENoZWNraW5nUmVzdWx0ICopY2FuZGlkYXRl
Cit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKyAgICBf
aW1wbC0+aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoY2FuZGlkYXRlKTsKKyNlbmRpZgorfQorCist
ICh2b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZQoreworICAgIC8vIE92ZXJyaWRkZW4g
Ynkgc3ViY2xhc3Nlcy4KK30KKworLSAodm9pZClfZGlkVXBkYXRlQ2FuZGlkYXRlTGlzdFZpc2li
aWxpdHk6KEJPT0wpdmlzaWJsZQoreworICAgIC8vIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4K
K30KKworLSAodm9pZClfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlcworeworICAgIF9pbXBsLT5mb3Jj
ZVJlcXVlc3RDYW5kaWRhdGVzRm9yVGVzdGluZygpOworfQogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKIAogLy8gRXhlY3V0ZSB0aGUgc3VwcGxpZWQgYmxvY2sgYWZ0ZXIgdGhlIG5leHQgdHJhbnNh
Y3Rpb24gZnJvbSB0aGUgV2ViUHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggM2MzNDMzYzNkMTBlNzFh
NjFhZGZhY2MzOWZlNWJkMDgxNmVhYTgxNy4uOGVjYTAyMDc0ZTU1ODk0N2Y2ZmI4NGZmZDQxZmYx
NWFlMjgzY2I2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTI3Myw2ICsyNzMsMTAgQEAgdHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBCT09MIF9oYXNBY3RpdmVWaWRlb0ZvckNvbnRyb2xzTWFuYWdlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMikpOwogLSAodm9pZClfcmVxdWVzdENvbnRyb2xs
ZWRFbGVtZW50SUQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogLSAodm9p
ZClfaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlOihOU1N0cmluZyAqKWlkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAodm9pZClfaGFuZGxl
QWNjZXB0ZWRDYW5kaWRhdGU6KE5TVGV4dENoZWNraW5nUmVzdWx0ICopY2FuZGlkYXRlIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX2RpZEhhbmRsZUFjY2Vw
dGVkQ2FuZGlkYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKHZv
aWQpX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSkpOworLSAodm9pZClfZGlkVXBkYXRlQ2FuZGlkYXRlTGlzdFZpc2liaWxpdHk6KEJPT0wp
dmlzaWJsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAjZW5kaWYKIAog
LSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVw
ZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCA0NmFmYjVjZWZj
YzZhMWNjZDMxMDhkZTBlMThiZDE3Zjk5NzhhOThjLi4xZjkwM2VlN2Q2YjcyOTZjNDlkYzkwZTk5
ZjRlYWM4MjhhNmM0ZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCkBAIC05NjksNiArOTY5LDE0IEBAIC0gKHZvaWQpX3dlYl9nZXN0dXJlRXZlbnRXYXNO
b3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQKICAgICBbc2VsZiBfZ2VzdHVyZUV2
ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTpldmVudF07CiB9CiAKKy0gKHZvaWQpX2RpZEhhbmRs
ZUFjY2VwdGVkQ2FuZGlkYXRlCit7Cit9CisKKy0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0ZUxp
c3RWaXNpYmlsaXR5OihCT09MKXZpc2libGUKK3sKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRp
b24gV0tWaWV3IChQcml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaAppbmRleCA0OTk0M2YxNmNiNWVkYzM1ZTljYTc2OTU2NzZkYTgzMDdlZDg4NDRm
Li41NWM2Y2NlMDI1MWM4MzZkMDJkNWZmNjkwM2RiYjc2OGI5YTEzMDRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtODQsNiArODQsOCBAQCBP
QkpDX0NMQVNTIF9XS1RodW1ibmFpbFZpZXc7CiBAb3B0aW9uYWwKIC0gKHZvaWQpX3dlYl9kaWRB
ZGRNZWRpYUNvbnRyb2xzTWFuYWdlcjooaWQpY29udHJvbHNNYW5hZ2VyOwogLSAodm9pZClfd2Vi
X2RpZFJlbW92ZU1lZGlhQ29udHJvbHNNYW5hZ2VyOworLSAodm9pZClfZGlkSGFuZGxlQWNjZXB0
ZWRDYW5kaWRhdGU7CistICh2b2lkKV9kaWRVcGRhdGVDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eToo
Qk9PTCl2aXNpYmxlOwogCiBAZW5kCiAKQEAgLTQ3OCw2ICs0ODAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCByaWdodE1vdXNlVXAoTlNFdmVudCAqKTsKIAogICAgIHZvaWQgdXBkYXRlV2ViVmlld0lt
cGxBZGRpdGlvbnMoKTsKKyAgICB2b2lkIGZvcmNlUmVxdWVzdENhbmRpZGF0ZXNGb3JUZXN0aW5n
KCk7CiAgICAgYm9vbCBzaG91bGRSZXF1ZXN0Q2FuZGlkYXRlcygpIGNvbnN0OwogICAgIHZvaWQg
c2hvd0NhbmRpZGF0ZXMoTlNBcnJheSAqY2FuZGlkYXRlcywgTlNTdHJpbmcgKiwgTlNSZWN0IHJl
Y3RPZlR5cGVkU3RyaW5nLCBOU1JhbmdlIHNlbGVjdGVkUmFuZ2UsIE5TVmlldyAqLCB2b2lkIChe
Y29tcGxldGlvbkhhbmRsZXIpKE5TVGV4dENoZWNraW5nUmVzdWx0ICphY2NlcHRlZENhbmRpZGF0
ZSkpOwogICAgIHZvaWQgd2ViVmlld0ltcGxBZGRpdGlvbnNXaWxsRGVzdHJveVZpZXcoKTsKQEAg
LTY0OSw2ICs2NTIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0hhbmRsaW5nQWNjZXB0ZWRD
YW5kaWRhdGUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0
aW5nQ29udHJvbHNNYW5hZ2VyIHsgZmFsc2UgfTsKICAgICBib29sIG1fZWRpdGFibGVFbGVtZW50
SXNGb2N1c2VkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNUZXh0SW5zZXJ0aW9uUmVwbGFjaW5n
U29mdFNwYWNlIHsgZmFsc2UgfTsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA2NTE2
OWVkOTNlNGQwMjUwM2ZmMTM0NWYyMGRlMDkzMDk0ZjgzMGExLi44YWUzNmJlMWY1Y2JiNWI1NTFi
ODQ2YTE5OTc1ZWI0OTQ3ODk4MWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCkBAIC00NDEsNiArNDQxLDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6
OnVwZGF0ZVdlYlZpZXdJbXBsQWRkaXRpb25zKCkKIHsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6
Zm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3RpbmcoKQoreworfQorCiBib29sIFdlYlZpZXdJ
bXBsOjpzaG91bGRSZXF1ZXN0Q2FuZGlkYXRlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtNjIwLDcgKzYyNCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9u
ZGVyKCkKICAgICAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5
cGVdID09IE5TS2V5VXApCiAgICAgICAgICAgICBrZXlib2FyZEV2ZW50ID0gZXZlbnQ7CiAjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIG1fcGFnZS0+c2V0SW5pdGlhbEZvY3Vz
KGRpcmVjdGlvbiA9PSBOU1NlbGVjdGluZ05leHQsIGtleWJvYXJkRXZlbnQgIT0gbmlsLCBOYXRp
dmVXZWJLZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQsIGZhbHNlLCB7IH0pLCBbXShXZWJLaXQ6
OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsgfSk7CisgICAgICAgIG1fcGFnZS0+c2V0SW5pdGlhbEZv
Y3VzKGRpcmVjdGlvbiA9PSBOU1NlbGVjdGluZ05leHQsIGtleWJvYXJkRXZlbnQgIT0gbmlsLCBO
YXRpdmVXZWJLZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQsIGZhbHNlLCBmYWxzZSwgeyB9KSwg
W10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7IH0pOwogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTI0MzYsNiArMjQ0MCw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZENoYW5n
ZUNvbnRlbnRTaXplKENHU2l6ZSBuZXdTaXplKQogdm9pZCBXZWJWaWV3SW1wbDo6ZGlkSGFuZGxl
QWNjZXB0ZWRDYW5kaWRhdGUoKQogewogICAgIG1faXNIYW5kbGluZ0FjY2VwdGVkQ2FuZGlkYXRl
ID0gZmFsc2U7CisKKyAgICBbbV92aWV3IF9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZV07CiB9
CiAKIHZvaWQgV2ViVmlld0ltcGw6OnZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCkKQEAg
LTM1NjcsMTEgKzM1NzMsMTEgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJp
bmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkKICAgICB9IGVsc2UKICAgICAgICAgdGV4dCA9
IHN0cmluZzsKIAotICAgIEJPT0wgbmVlZFRvUmVtb3ZlU29mdFNwYWNlID0gTk87CisgICAgbV9p
c1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0U3BhY2UgPSBmYWxzZTsKICNpZiBIQVZFKEFEVkFO
Q0VEX1NQRUxMX0NIRUNLSU5HKQogICAgIGlmIChtX3NvZnRTcGFjZVJhbmdlLmxvY2F0aW9uICE9
IE5TTm90Rm91bmQgJiYgKHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNNYXhSYW5nZSht
X3NvZnRTcGFjZVJhbmdlKSB8fCByZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91
bmQpICYmIHJlcGxhY2VtZW50UmFuZ2UubGVuZ3RoID09IDAgJiYgW1tOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdIGRlbGV0ZXNBdXRvc3BhY2VCZWZvcmVTdHJpbmc6dGV4dCBsYW5n
dWFnZTpuaWxdKSB7CiAgICAgICAgIHJlcGxhY2VtZW50UmFuZ2UgPSBtX3NvZnRTcGFjZVJhbmdl
OwotICAgICAgICBuZWVkVG9SZW1vdmVTb2Z0U3BhY2UgPSBZRVM7CisgICAgICAgIG1faXNUZXh0
SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlID0gdHJ1ZTsKICAgICB9CiAjZW5kaWYKICAgICBt
X3NvZnRTcGFjZVJhbmdlID0gTlNNYWtlUmFuZ2UoTlNOb3RGb3VuZCwgMCk7CkBAIC0zNTgyLDcg
KzM1ODgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnNlcnRUZXh0KGlkIHN0cmluZywgTlNSYW5n
ZSByZXBsYWNlbWVudFJhbmdlKQogICAgIC8vIC0gSWYgaXQncyBzZW50IG91dHNpZGUgb2Yga2V5
Ym9hcmQgZXZlbnQgcHJvY2Vzc2luZyAoZS5nLiBmcm9tIENoYXJhY3RlciBWaWV3ZXIsIG9yIHdo
ZW4gY29uZmlybWluZyBhbiBpbmxpbmUgaW5wdXQgYXJlYSB3aXRoIGEgbW91c2UpLAogICAgIC8v
IHRoZW4gd2UgYWxzbyBleGVjdXRlIGl0IGltbWVkaWF0ZWx5LCBhcyB0aGVyZSB3aWxsIGJlIG5v
IG90aGVyIGNoYW5jZS4KICAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPioga2V5
cHJlc3NDb21tYW5kcyA9IG1fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5kczsKLSAgICBpZiAoa2V5
cHJlc3NDb21tYW5kcyAmJiAhbmVlZFRvUmVtb3ZlU29mdFNwYWNlKSB7CisgICAgaWYgKGtleXBy
ZXNzQ29tbWFuZHMgJiYgIW1faXNUZXh0SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlKSB7CiAg
ICAgICAgIEFTU0VSVChyZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQpOwog
ICAgICAgICBXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQgY29tbWFuZCgiaW5zZXJ0VGV4dDoiLCB0
ZXh0KTsKICAgICAgICAga2V5cHJlc3NDb21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOwpAQCAtMzU5
Niw3ICszNjAyLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJpbmcsIE5T
UmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkKICAgICBpZiAoIWRpY3RhdGlvbkFsdGVybmF0aXZlcy5p
c0VtcHR5KCkpCiAgICAgICAgIG1fcGFnZS0+aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoZXZlbnRU
ZXh0LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMsIHJlZ2lzdGVyVW5k
b0dyb3VwKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGFnZS0+aW5zZXJ0VGV4dEFzeW5jKGV2ZW50
VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXAsIG5lZWRUb1JlbW92ZVNv
ZnRTcGFjZSA/IEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbzo6UGFyYWdyYXBoIDogRWRpdGluZ1Jh
bmdlSXNSZWxhdGl2ZVRvOjpFZGl0YWJsZVJvb3QpOworICAgICAgICBtX3BhZ2UtPmluc2VydFRl
eHRBc3luYyhldmVudFRleHQsIHJlcGxhY2VtZW50UmFuZ2UsIHJlZ2lzdGVyVW5kb0dyb3VwLCBt
X2lzVGV4dEluc2VydGlvblJlcGxhY2luZ1NvZnRTcGFjZSA/IEVkaXRpbmdSYW5nZUlzUmVsYXRp
dmVUbzo6UGFyYWdyYXBoIDogRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpFZGl0YWJsZVJvb3Qs
IG1faXNUZXh0SW5zZXJ0aW9uUmVwbGFjaW5nU29mdFNwYWNlKTsKIH0KIAogdm9pZCBXZWJWaWV3
SW1wbDo6c2VsZWN0ZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkKF5jb21wbGV0aW9u
SGFuZGxlclB0cikoTlNSYW5nZSBzZWxlY3RlZFJhbmdlKSkKQEAgLTM4NzAsNyArMzg3Niw3IEBA
IGJvb2wgV2ViVmlld0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQog
ICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhlIGZpcnN0UmVzcG9uZGVyIGNoZWNrIG5lZWRlZD8KICAg
ICBpZiAobV92aWV3ID09IG1fdmlldy53aW5kb3cuZmlyc3RSZXNwb25kZXIpIHsKICAgICAgICAg
aW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7Ci0gICAgICAg
ICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChl
dmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgICAgICAgICBtX3Bh
Z2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFu
ZGxlZEJ5SW5wdXRNZXRob2QsIGZhbHNlLCBjb21tYW5kcykpOwogICAgICAgICB9KTsKICAgICAg
ICAgcmV0dXJuIFlFUzsKICAgICB9CkBAIC0zODg1LDkgKzM4OTEsMTAgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6a2V5VXAoTlNFdmVudCAqZXZlbnQpCiAKICAgICBMT0coVGV4dElucHV0LCAia2V5VXA6
JXAgJUAiLCBldmVudCwgZXZlbnQpOwogCisgICAgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdT
b2Z0U3BhY2UgPSBmYWxzZTsKICAgICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhh
bmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5k
PiYgY29tbWFuZHMpIHsKICAgICAgICAgQVNTRVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBj
b21tYW5kcy5pc0VtcHR5KCkpOwotICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQo
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1h
bmRzKSk7CisgICAgICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXli
b2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgbV9pc1RleHRJbnNlcnRpb25S
ZXBsYWNpbmdTb2Z0U3BhY2UsIGNvbW1hbmRzKSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5MTIsOSAr
MzkxOSwxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjprZXlEb3duKE5TRXZlbnQgKmV2ZW50KQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgbV9pc1RleHRJbnNlcnRpb25SZXBsYWNpbmdTb2Z0
U3BhY2UgPSBmYWxzZTsKICAgICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhhbmRs
ZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYg
Y29tbWFuZHMpIHsKICAgICAgICAgQVNTRVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBjb21t
YW5kcy5pc0VtcHR5KCkpOwotICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRz
KSk7CisgICAgICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgbV9pc1RleHRJbnNlcnRpb25SZXBs
YWNpbmdTb2Z0U3BhY2UsIGNvbW1hbmRzKSk7CiAgICAgfSk7CiB9CiAKQEAgLTM5MzAsNyArMzkz
OCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIF4oQk9PTCBoYW5k
bGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4m
IGNvbW1hbmRzKSB7Ci0gICAgICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsK
KyAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBmYWxzZSwgY29tbWFuZHMpKTsKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBj
ZDU3N2ZhOGUwZDQ4Yzc0NmYyOTJhMTdjZjAwYTc3YzkzZDZmNzcwLi4zYzA2MDJjMzRkZDc2MmFm
YTQwMTI0MWU5ZTcxYzQ2MDE0MmRiNzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtNjE0NSwxMiArNjE0NSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
YWRkTUlNRVR5cGVXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpCiAKICNpZiBQTEFURk9STShDT0NPQSkKIAotdm9pZCBXZWJQYWdlUHJveHk6Omluc2VydFRl
eHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1l
bnRSYW5nZSwgYm9vbCByZWdpc3RlclVuZG9Hcm91cCwgRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRv
IGVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbykKK3ZvaWQgV2ViUGFnZVByb3h5OjppbnNlcnRUZXh0
QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50
UmFuZ2UsIGJvb2wgcmVnaXN0ZXJVbmRvR3JvdXAsIEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyBl
ZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8sIGJvb2wgc3VwcHJlc3NTZWxlY3Rpb25VcGRhdGUpCiB7
CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmModGV4dCwgcmVwbGFjZW1lbnRS
YW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXAsIHN0YXRpY19jYXN0PHVpbnQzMl90PihlZGl0aW5nUmFu
Z2VJc1JlbGF0aXZlVG8pKSwgbV9wYWdlSUQpOworICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpJbnNlcnRUZXh0QXN5bmModGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0
ZXJVbmRvR3JvdXAsIHN0YXRpY19jYXN0PHVpbnQzMl90PihlZGl0aW5nUmFuZ2VJc1JlbGF0aXZl
VG8pLCBzdXBwcmVzc1NlbGVjdGlvblVwZGF0ZSksIG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQ
YWdlUHJveHk6OmdldE1hcmtlZFJhbmdlQXN5bmMoc3RkOjpmdW5jdGlvbjx2b2lkIChFZGl0aW5n
UmFuZ2UsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDRiNmMxOTc2MmZmNTMzZTMwNzY5ZTdi
OTYzNDc1MTI3MWQ2NDhjNjEuLjg2MTJmN2MxMzIyMDMxYWY4MDlhOGUwMDIxMTc0MjMxNmEyYTJl
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU2NCw3ICs1
NjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExh
eWVyKExheWVyT3JWaWV3Kik7CiAgICAgTGF5ZXJPclZpZXcqIGFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdSb290TGF5ZXIoKSBjb25zdDsKIAotICAgIHZvaWQgaW5zZXJ0VGV4dEFzeW5jKGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVudFJhbmdlLCBib29sIHJl
Z2lzdGVyVW5kb0dyb3VwID0gZmFsc2UsIEVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbyA9IEVkaXRp
bmdSYW5nZUlzUmVsYXRpdmVUbzo6RWRpdGFibGVSb290KTsKKyAgICB2b2lkIGluc2VydFRleHRB
c3luYyhjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbnRS
YW5nZSwgYm9vbCByZWdpc3RlclVuZG9Hcm91cCA9IGZhbHNlLCBFZGl0aW5nUmFuZ2VJc1JlbGF0
aXZlVG8gPSBFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG86OkVkaXRhYmxlUm9vdCwgYm9vbCBzdXBw
cmVzc1NlbGVjdGlvblVwZGF0ZSA9IGZhbHNlKTsKICAgICB2b2lkIGdldE1hcmtlZFJhbmdlQXN5
bmMoc3RkOjpmdW5jdGlvbjx2b2lkIChFZGl0aW5nUmFuZ2UsIENhbGxiYWNrQmFzZTo6RXJyb3Ip
Pik7CiAgICAgdm9pZCBnZXRTZWxlY3RlZFJhbmdlQXN5bmMoc3RkOjpmdW5jdGlvbjx2b2lkIChF
ZGl0aW5nUmFuZ2UsIENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CiAgICAgdm9pZCBjaGFyYWN0ZXJJ
bmRleEZvclBvaW50QXN5bmMoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQgKHVpbnQ2NF90LCBDYWxsYmFja0Jhc2U6OkVycm9yKT4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGM0NmEzODkyYTA2MGYyOGUz
ODQzZGU1MDU4N2RmYzk4NTg1NzRjYjIuLmEwN2RhOWVjYTE4MDM5ODNmOTZmMzRkOWUwYWQyMDFl
NWQ4ZDQwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTQ2MTAsMTQgKzQ2MTAsMTYgQEAgYm9vbCBXZWJQYWdlOjpzaG91bGRVc2VDdXN0
b21Db250ZW50UHJvdmlkZXJGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJgogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAKLXZvaWQgV2ViUGFnZTo6aW5zZXJ0VGV4dEFzeW5jKGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgRWRpdGluZ1JhbmdlJiByZXBsYWNlbWVudEVkaXRpbmdSYW5n
ZSwgYm9vbCByZWdpc3RlclVuZG9Hcm91cCwgdWludDMyX3QgZWRpdGluZ1JhbmdlSXNSZWxhdGl2
ZVRvKQordm9pZCBXZWJQYWdlOjppbnNlcnRUZXh0QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50RWRpdGluZ1JhbmdlLCBib29sIHJlZ2lzdGVy
VW5kb0dyb3VwLCB1aW50MzJfdCBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8sIGJvb2wgc3VwcHJl
c3NTZWxlY3Rpb25VcGRhdGUpCiB7CiAgICAgRnJhbWUmIGZyYW1lID0gbV9wYWdlLT5mb2N1c0Nv
bnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKIAogICAgIGlmIChyZXBsYWNlbWVudEVk
aXRpbmdSYW5nZS5sb2NhdGlvbiAhPSBub3RGb3VuZCkgewogICAgICAgICBSZWZQdHI8UmFuZ2U+
IHJlcGxhY2VtZW50UmFuZ2UgPSByYW5nZUZyb21FZGl0aW5nUmFuZ2UoZnJhbWUsIHJlcGxhY2Vt
ZW50RWRpdGluZ1JhbmdlLCBzdGF0aWNfY2FzdDxFZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8+KGVk
aXRpbmdSYW5nZUlzUmVsYXRpdmVUbykpOwotICAgICAgICBpZiAocmVwbGFjZW1lbnRSYW5nZSkK
KyAgICAgICAgaWYgKHJlcGxhY2VtZW50UmFuZ2UpIHsKKyAgICAgICAgICAgIFRlbXBvcmFyeUNo
YW5nZTxib29sPiBpc1NlbGVjdGluZ1RleHRXaGlsZUluc2VydGluZ0FzeW5jaHJvbm91c2x5KG1f
aXNTZWxlY3RpbmdUZXh0V2hpbGVJbnNlcnRpbmdBc3luY2hyb25vdXNseSwgc3VwcHJlc3NTZWxl
Y3Rpb25VcGRhdGUpOwogICAgICAgICAgICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9u
KFZpc2libGVTZWxlY3Rpb24oKnJlcGxhY2VtZW50UmFuZ2UsIFNFTF9ERUZBVUxUX0FGRklOSVRZ
KSk7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgaWYgKHJlZ2lzdGVyVW5kb0dyb3VwKQpA
QCAtNDg0Miw2ICs0ODQ0LDExIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKCkK
ICAgICBpZiAobV9pc0dldHRpbmdEaWN0aW9uYXJ5UG9wdXBJbmZvKQogICAgICAgICByZXR1cm47
CiAKKyAgICAvLyBTaW1pbGFybHksIHdlIGRvbid0IHdhbnQgdG8gcHJvcGFnYXRlIGNoYW5nZXMg
dG8gdGhlIHdlYiBwcm9jZXNzIHdoZW4gaW5zZXJ0aW5nIHRleHQgYXN5bmNocm9ub3VzbHksIHNp
bmNlIHdlIHdpbGwKKyAgICAvLyBlbmQgdXAgd2l0aCBhIHJhbmdlIHNlbGVjdGlvbiB2ZXJ5IGJy
aWVmbHkgcmlnaHQgYmVmb3JlIGluc2VydGluZyB0aGUgdGV4dC4KKyAgICBpZiAobV9pc1NlbGVj
dGluZ1RleHRXaGlsZUluc2VydGluZ0FzeW5jaHJvbm91c2x5KQorICAgICAgICByZXR1cm47CisK
ICAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1h
aW5GcmFtZSgpOwogICAgIEZyYW1lVmlldyogdmlldyA9IGZyYW1lLnZpZXcoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZmM5NTJhM2U4MmJj
MDY4ZTY0YjMxOWY0NDExOGU4NDgwOGIyZTdjOS4uYTQ2NTFhYzgxNzMwYzkzM2U3NzNmNzNmMTU0
NTQ0YjI5ODBlMTYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC02NjYsNyArNjY2LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2VuZENv
bXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwogCi0gICAgdm9pZCBpbnNlcnRUZXh0
QXN5bmMoY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIHJlcGxhY2VtZW50
UmFuZ2UsIGJvb2wgcmVnaXN0ZXJVbmRvR3JvdXAgPSBmYWxzZSwgdWludDMyX3QgZWRpdGluZ1Jh
bmdlSXNSZWxhdGl2ZVRvID0gKHVpbnQzMl90KUVkaXRpbmdSYW5nZUlzUmVsYXRpdmVUbzo6RWRp
dGFibGVSb290KTsKKyAgICB2b2lkIGluc2VydFRleHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IEVkaXRpbmdSYW5nZSYgcmVwbGFjZW1lbnRSYW5nZSwgYm9vbCByZWdpc3RlclVuZG9H
cm91cCA9IGZhbHNlLCB1aW50MzJfdCBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8gPSAodWludDMy
X3QpRWRpdGluZ1JhbmdlSXNSZWxhdGl2ZVRvOjpFZGl0YWJsZVJvb3QsIGJvb2wgc3VwcHJlc3NT
ZWxlY3Rpb25VcGRhdGUgPSBmYWxzZSk7CiAgICAgdm9pZCBnZXRNYXJrZWRSYW5nZUFzeW5jKHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0U2VsZWN0ZWRSYW5nZUFzeW5jKHVpbnQ2
NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgY2hhcmFjdGVySW5kZXhGb3JQb2ludEFzeW5jKGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CkBAIC0xNDg4LDYg
KzE0ODgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGREaXNwYXRjaEZha2VNb3VzZU1v
dmVFdmVudHM7CiAgICAgYm9vbCBtX2lzRWRpdG9yU3RhdGVNaXNzaW5nUG9zdExheW91dERhdGEg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0dldHRpbmdEaWN0aW9uYXJ5UG9wdXBJbmZvIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faXNTZWxlY3RpbmdUZXh0V2hpbGVJbnNlcnRpbmdBc3luY2hyb25v
dXNseSB7IGZhbHNlIH07CiAKICAgICBlbnVtIGNsYXNzIEVkaXRvclN0YXRlSXNDb250ZW50RWRp
dGFibGUgeyBObywgWWVzLCBVbnNldCB9OwogICAgIG11dGFibGUgRWRpdG9yU3RhdGVJc0NvbnRl
bnRFZGl0YWJsZSBtX2xhc3RFZGl0b3JTdGF0ZVdhc0NvbnRlbnRFZGl0YWJsZSB7IEVkaXRvclN0
YXRlSXNDb250ZW50RWRpdGFibGU6OlVuc2V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDUwMjMzMDgyMWJl
ZmI3OWFjMGEzYjdiZjE1MmY3ZjQzNWE1MDg0NjguLjBkMjI4ODcwMzFhNjA4ODUxZDE1NTY0Y2Qx
OTA5ZmUzMDAwMzI4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zNjYsNyArMzY2LDcgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2hvdWxkRGVsYXlXaW5kb3dPcmRlcmlu
Z0V2ZW50KFdlYktpdDo6V2ViTW91c2VFdmVudCBldmVudCkgLT4gKGJvb2wgcmVzdWx0KQogICAg
IEFjY2VwdHNGaXJzdE1vdXNlKGludCBldmVudE51bWJlciwgV2ViS2l0OjpXZWJNb3VzZUV2ZW50
IGV2ZW50KSAtPiAoYm9vbCByZXN1bHQpCiAKLSAgICBJbnNlcnRUZXh0QXN5bmMoU3RyaW5nIHRl
eHQsIHN0cnVjdCBXZWJLaXQ6OkVkaXRpbmdSYW5nZSByZXBsYWNlbWVudFJhbmdlLCBib29sIHJl
Z2lzdGVyVW5kb0dyb3VwLCB1aW50MzJfdCBlZGl0aW5nUmFuZ2VJc1JlbGF0aXZlVG8pCisgICAg
SW5zZXJ0VGV4dEFzeW5jKFN0cmluZyB0ZXh0LCBzdHJ1Y3QgV2ViS2l0OjpFZGl0aW5nUmFuZ2Ug
cmVwbGFjZW1lbnRSYW5nZSwgYm9vbCByZWdpc3RlclVuZG9Hcm91cCwgdWludDMyX3QgZWRpdGlu
Z1JhbmdlSXNSZWxhdGl2ZVRvLCBib29sIHN1cHByZXNzU2VsZWN0aW9uVXBkYXRlKQogICAgIEdl
dE1hcmtlZFJhbmdlQXN5bmModWludDY0X3QgY2FsbGJhY2tJRCkKICAgICBHZXRTZWxlY3RlZFJh
bmdlQXN5bmModWludDY0X3QgY2FsbGJhY2tJRCkKICAgICBDaGFyYWN0ZXJJbmRleEZvclBvaW50
QXN5bmMoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ1OWM0NjJh
OGY5NzJjYmRjNWEyM2ExY2FmODczNGY3NWNlM2FhZDQuLmJjZjE4NTg2ZmI0MWI1NTVmZDA0MTU0
NDk4NWU4Y2RjZjVlNjk1NjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAxNi0wOS0xNiAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBJbnNlcnRpbmcgYSBzcGFjZSBhZnRl
ciBpbnNlcnRpbmcgYW4gYWNjZXB0ZWQgY2FuZGlkYXRlIHNjcm9sbHMgdGhlIGRvY3VtZW50IGFu
ZCBjYXVzZXMgYSBmbGlja2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjIwMDkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4MDg2MjM3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkcyAzIG5ldyB0ZXh0
IGVkaXRpbmcgQVBJIHRlc3RzIGNvdmVyaW5nIGNhbmRpZGF0ZSBpbnNlcnRpb24sIGFzIHdlbGwg
YXMgc3VwcG9ydCBmb3IgdGVzdGluZyBjYW5kaWRhdGVzIGluCisgICAgICAgIFdLV2ViVmlld3Mu
IFJlZmFjdG9ycyBjb21tb24gV0tXZWJWaWV3IGhlbHBlcnMgYWNyb3NzIGJvdGggVmlkZW9Db250
cm9sc01hbmFnZXIgdGVzdHMgYW5kIHRoZSBuZXcKKyAgICAgICAgV0tXZWJWaWV3Q2FuZGlkYXRl
VGVzdHMgaW50byBhIG5ldyB1dGlsaXR5IGNsYXNzLCBUZXN0V0tXZWJWaWV3IGluIFRlc3RXS1dl
YlZpZXcubW0sIHdoaWNoIGlzIGNhcGFibGUgb2YKKyAgICAgICAgc2ltdWxhdGluZyBtb3VzZSBh
bmQga2V5Ym9hcmQgZXZlbnRzIGFzIHdlbGwgYXMgd2FpdGluZyBmb3IgSmF2YVNjcmlwdCBtZXNz
YWdlcyBzZW50IGZyb20gdGhlIHdlYiBwcm9jZXNzIGFuZAorICAgICAgICBwZXJmb3JtaW5nIGFj
dGlvbnMgaW4gcmVzcG9uc2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9pb3MvYXVkaW8tb25seS5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRoLWF1ZGlvLmh0bWw6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdl
ci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAoLVtNZXNzYWdl
SGFuZGxlciBpbml0V2l0aE1lc3NhZ2U6aGFuZGxlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
TWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNz
YWdlOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJW
aWV3IG1vdXNlRG93bkF0UG9pbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1ZpZGVvQ29udHJv
bHNNYW5hZ2VyVGVzdFdlYlZpZXcgcGVyZm9ybUFmdGVyTG9hZGluZzpdKTogRGVsZXRlZC4KKyAg
ICAgICAgKC1bVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1
bmN0aW9uOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RX
ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtWaWRlb0Nv
bnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6YWN0
aW9uOl0pOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bVGVzdENh
bmRpZGF0ZSBpbml0V2l0aFJlcGxhY2VtZW50U3RyaW5nOmluUmFuZ2U6XSk6CisgICAgICAgICgt
W1Rlc3RDYW5kaWRhdGUgcmVwbGFjZW1lbnRTdHJpbmddKToKKyAgICAgICAgKC1bVGVzdENhbmRp
ZGF0ZSByZXN1bHRUeXBlXSk6CisgICAgICAgICgtW1Rlc3RDYW5kaWRhdGUgcmFuZ2VdKToKKyAg
ICAgICAgKC1bQ2FuZGlkYXRlVGVzdFdlYlZpZXcgaW5zZXJ0Q2FuZGlkYXRlc0FuZFdhaXRGb3JS
ZXNwb25zZTpyYW5nZTpdKToKKyAgICAgICAgKC1bQ2FuZGlkYXRlVGVzdFdlYlZpZXcgX2RpZEhh
bmRsZUFjY2VwdGVkQ2FuZGlkYXRlXSk6CisgICAgICAgICgtW0NhbmRpZGF0ZVRlc3RXZWJWaWV3
IGV4cGVjdENhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5VXBkYXRlczp3aGVuUGVyZm9ybWluZ0FjdGlv
bnM6XSk6CisgICAgICAgICgtW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IF9kaWRVcGRhdGVDYW5kaWRh
dGVMaXN0VmlzaWJpbGl0eTpdKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2F1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRt
bDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2Utdmlk
ZW8tc291cmNlLW9uLWNsaWNrLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbDoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9mdWxsLXNpemUtYXV0b3BsYXlpbmctdmlk
ZW8td2l0aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2lucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlk
ZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRtbDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1v
ZmZzY3JlZW4uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9sYXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWw6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcu
aHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12
aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRoLWF1
ZGlvLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFy
Z2UtdmlkZW8td2l0aG91dC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWluZy1jbGljay10by1wYXVzZS5o
dG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvcy1hdXRvcGxheWluZy1zY3JvbGwtdG8tdmlkZW8uaHRtbDoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVz
LWNvbnRyb2xzLmh0bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJvbHMuaHRtbDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3Mt
cGxheWluZy12aWRlby1rZWVwcy1jb250cm9scy5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0
bWw6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evc2tpbm55LWF1
dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS93aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRt
bDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmg6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW06IEFkZGVk
LgorICAgICAgICAoLVtUZXN0TWVzc2FnZUhhbmRsZXIgaW5pdFdpdGhNZXNzYWdlOmhhbmRsZXI6
XSk6CisgICAgICAgICgtW1Rlc3RNZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6
ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91
c2VEb3duQXRQb2ludDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBwZXJmb3JtQWZ0ZXJS
ZWNlaXZpbmdNZXNzYWdlOmFjdGlvbjpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBsb2Fk
VGVzdFBhZ2VOYW1lZDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyB0eXBlQ2hhcmFjdGVy
Ol0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6XSk6CisgICAg
ICAgICgtW1Rlc3RXS1dlYlZpZXcgcGVyZm9ybUFmdGVyTG9hZGluZzpdKToKKwogMjAxNi0wOS0x
NSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVSTFBhcnNlcjogQ2hlY2sgZm9yIGludmFsaWQgY2hhcmFjdGVycyBpbiB0aGUgaG9zdApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA4YTQ5YzNiY2I3OWE0NmQwNmMwZjkxNDQzOGM0YmE0OTYz
OTQ2MTk3Li4zZTllNGQ1ZWUyMDYwMTA4YTkzZjBkZTU5YzI2NTI5OTA1NDY1ODljIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNzgsNiArNzgsOSBAQAogCQkyRUZGMDZDMzFEODg2MjFFMDAw
NEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2QzIxRDg4NjIxMjAwMDRCQjMw
IC8qIGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sICovOyB9OwogCQkyRUZGMDZDNTFEODg2Nzc2
MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkM0MUQ4ODY3
NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgKi87IH07CiAJ
CTJFRkYwNkM3MUQ4ODZBNTgwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5o
dG1sICovOyB9OworCQkyRUZGMDZDRDFEOEE0MjlBMDAwNEJCMzAgLyogaW5wdXQtZmllbGQtaW4t
c2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1m
aWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgKi87IH07CisJCTJFRkYwNkQ0MUQ4QUVE
QkIwMDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2RDMxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RX
S1dlYlZpZXdNYWMubW0gKi87IH07CisJCTJFRkYwNkQ3MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dl
YlZpZXdDYW5kaWRhdGVUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJFRkYwNkQ2MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRh
dGVUZXN0cy5tbSAqLzsgfTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92
ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNy
YXNoX0J1bmRsZS5jcHAgKi87IH07CiAJCTMzREM4OTEyMTQxOTU1RkUwMDc0N0VGNyAvKiBzaW1w
bGUtaWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzNEQzg5MEUxNDE5NTM5MzAwNzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRt
bCAqLzsgfTsKIAkJMzNEQzg5MTQxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2Vy
dmVyUmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzNEQzg5MTMxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5j
ZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3BwICovOyB9OwpAQCAtNTQxLDYg
KzU0NCw3IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RT
dWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCTJFRkYwNkNEMUQ4QTQyOUEwMDA0
QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNoYW5nZS12aWRl
by1zb3VyY2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzUx
RDg4Njc3NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQkyRUZGMDZDMzFEODg2MjFFMDAwNEJCMzAgLyogbGFyZ2Ut
dmlkZW8tb2Zmc2NyZWVuLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC03ODksNiArNzkz
LDEwIEBACiAJCTJFRkYwNkMyMUQ4ODYyMTIwMDA0QkIzMCAvKiBsYXJnZS12aWRlby1vZmZzY3Jl
ZW4uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby1vZmZzY3Jl
ZW4uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRkYwNkM0MUQ4ODY3NzAw
MDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNo
YW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJFRkYwNkNDMUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3Jv
bGxhYmxlLWRvY3VtZW50Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiaW5wdXQt
ZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkVGRjA2RDIxRDhBRURCQjAwMDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGVzdFdLV2ViVmlld01hYy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZEMzFEOEFFREJCMDAwNEJCMzAgLyogVGVz
dFdLV2ViVmlld01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFRlc3RXS1dlYlZpZXdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRkYw
NkQ2MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0NhbmRpZGF0ZVRlc3Rz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZD
RTMgLyogUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTMzQkU1QUY0MTM3QjVBNkMwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNy
YXNoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlTW92ZUFm
dGVyQ3Jhc2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzM0JFNUFGODEzN0I1
QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM3NSw2ICsxMzgzLDcgQEAKIAkJCQkz
N0I0N0UyRTFENjRFN0NBMDA1RjRFRkYgLyogV0tPYmplY3QubW0gKi8sCiAJCQkJMkQwMDA2NUQx
QzFGNTg5NDAwODhFNkE3IC8qIFdLUERGVmlld1Jlc2l6ZUNyYXNoLm1tICovLAogCQkJCTVFNEIx
RDJDMUQ0MDRDNjEwMDA1MzYyMSAvKiBXS1Njcm9sbFZpZXdEZWxlZ2F0ZUNyYXNoLm1tICovLAor
CQkJCTJFRkYwNkQ2MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5t
bSAqLywKIAkJCQk3QzQxN0YzMTFEMTlFMTQ4MDBCOEVGNTMgLyogV0tXZWJWaWV3RGVmYXVsdE5h
dmlnYXRpb25EZWxlZ2F0ZS5tbSAqLywKIAkJCQkwRjNCOTRBNTFBNzcyNjZDMDBERTMyNzIgLyog
V0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovLAogCQkJCTk5ODRGQUNBMUNGRkFFRUUw
MDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8sCkBAIC0xNDY0LDYgKzE0NzMsNyBA
QAogCQlBMTZGNjZCODFDNDBFOUUxMDBCRDREMjQgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyRUZGMDZDQzFEOEE0MjkxMDAwNEJC
MzAgLyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sICovLAogCQkJCTJF
RkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1s
ICovLAogCQkJCTJFRkYwNkM0MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNl
LW9uLWNsaWNrLmh0bWwgKi8sCiAJCQkJMkVGRjA2QzIxRDg4NjIxMjAwMDRCQjMwIC8qIGxhcmdl
LXZpZGVvLW9mZnNjcmVlbi5odG1sICovLApAQCAtMTgxOSw2ICsxODI5LDggQEAKIAkJCQlDMDgx
MjI0NDEzRkMxOUVDMDBEQzM5QUUgLyogU3ludGhldGljQmFja2luZ1NjYWxlRmFjdG9yV2luZG93
Lm0gKi8sCiAJCQkJMjlBQjhBQTMxNjRDN0E5MzAwRDQ5QkVDIC8qIFRlc3RCcm93c2luZ0NvbnRl
eHRMb2FkRGVsZWdhdGUuaCAqLywKIAkJCQkyOUFCOEFBMjE2NEM3QTkzMDBENDlCRUMgLyogVGVz
dEJyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZS5tbSAqLywKKwkJCQkyRUZGMDZEMjFEOEFFREJC
MDAwNEJCMzAgLyogVGVzdFdLV2ViVmlld01hYy5oICovLAorCQkJCTJFRkYwNkQzMUQ4QUVEQkIw
MDA0QkIzMCAvKiBUZXN0V0tXZWJWaWV3TWFjLm1tICovLAogCQkJCUMwODU4N0JFMTNGRTk1NkMw
MDFFRjRFNSAvKiBXZWJLaXRBZ25vc3RpY1Rlc3QuaCAqLywKIAkJCQlDMDg1ODdCRDEzRkU5NTZD
MDAxRUY0RTUgLyogV2ViS2l0QWdub3N0aWNUZXN0Lm1tICovLAogCQkJKTsKQEAgLTIzNDIsNiAr
MjM1NCw3IEBACiAJCQkJN0NDRTdFRkIxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxl
QmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkMxQTQxMUFFNjAwNDQ3QzRDIC8q
IEluamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RUZEMUE0MTFBRTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRh
dGFDYWxsYmFja1dpbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkVGRjA2RDQxRDhBRURCQjAw
MDRCQjMwIC8qIFRlc3RXS1dlYlZpZXdNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBC
ODFEMEE2NEJEMDBGRUJDRjMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVu
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUMzMUE0MTFBN0UwMDQ0N0M0QyAvKiBJbnNw
ZWN0b3JCYXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQTFBNDExQTg3MDA0NDdDNEMg
LyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLApAQCAtMjQ2MSw2ICsy
NDc0LDcgQEAKIAkJCQk3Q0NFN0VEODFBNDExQTdFMDA0NDdDNEMgLyogV2lsbFNlbmRTdWJtaXRF
dmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUQ5MUE0MTFBN0UwMDQ0N0M0QyAvKiBX
aW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFGODM1NzFC
MUQzRkZCMjMwMEUzOTY3QiAvKiBXS0JhY2tGb3J3YXJkTGlzdC5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTJFRkYwNkQ3MUQ4QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJFMUE0MTFCMTAwMDQ0N0M0QyAvKiBXS0Jyb3dz
aW5nQ29udGV4dEdyb3VwVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjJGMUE0MTFC
MTAwMDQ0N0M0QyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QzU0QTRCRTFBQTExQ0NBMDAzODBGNzggLyogV0tCdW5kbGVGaWxlSGFu
ZGxlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvaW9zL2F1ZGlvLW9ubHkuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L2lvcy9hdWRpby1vbmx5Lmh0bWwKaW5kZXggNzQwMGY2NjI4NGUyOTkxM2RhNTli
NDZjZTM1NmI4Y2E2YmRmZGZjZi4uYzRhMjRmYWVlNzY3Y2ExMWU1ZjZhMDU3ZDZlYWUwOGRmY2Mx
MjFhZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL2F1
ZGlvLW9ubHkuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9pb3Mv
YXVkaW8tb25seS5odG1sCkBAIC0xMiw3ICsxMiw3IEBACiAgICAgZnVuY3Rpb24gcGxheWluZygp
IHsKICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVy
LnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycpOwogICAgICAgICB9
IGNhdGNoKGUpIHsKICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICdjYWxsYmFjazpwbGF5
aW5nJzsKICAgICAgICAgfQpAQCAtMjAsNyArMjAsNyBAQAogCiAgICAgZnVuY3Rpb24gbm90UGxh
eWluZygpIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOworICAg
ICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoJ25vdCBwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgfQogICAg
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
aW9zL3ZpZGVvLXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L2lvcy92aWRlby13aXRoLWF1ZGlvLmh0bWwKaW5kZXggYzg5MjRiNmI5OGFhODNmNmQyYmUx
NWRiNDg5ODQ4NDM1M2Y1YTllOS4uODA4ZGRjZWM4NjlkNzRhM2NmZGM1OTVlMTY5ZTEwNjM5YmI2
ZjMzOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvaW9zL3Zp
ZGVvLXdpdGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9pb3MvdmlkZW8td2l0aC1hdWRpby5odG1sCkBAIC0xNCw3ICsxNCw3IEBACiAgICAgZnVuY3Rp
b24gcGxheWluZygpIHsKICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBs
YXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgncGxheWluZycp
OwogICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICdj
YWxsYmFjazpwbGF5aW5nJzsKICAgICAgICAgfQpAQCAtMjIsNyArMjIsNyBAQAogCiAgICAgZnVu
Y3Rpb24gbm90UGxheWluZygpIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxh
eWluZycpOworICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgeyB9
CiAgICAgfQogICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aG91dC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvaW9zL3ZpZGVvLXdpdGhvdXQtYXVkaW8uaHRtbAppbmRleCA4NDU4
NmYzMjVjMWJlYjkxZmM3ZmUwNWEyNzlhZDAyYmUxOGUyYzQwLi4yNzVlN2UxYzU5NmNiZjljODdl
ZjI3MzI3NGMwY2NkNmY0ZTRlOTM1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9pb3MvdmlkZW8td2l0aG91dC1hdWRpby5odG1sCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L2lvcy92aWRlby13aXRob3V0LWF1ZGlvLmh0bWwKQEAgLTEy
LDcgKzEyLDcgQEAKICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAgICAgICB3aW5kb3cuY2xl
YXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcn
KTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVy
LnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAg
ICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICB9CkBAIC0y
MCw3ICsyMCw3IEBACiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkgewogICAgICAgICB0cnkg
ewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRs
ZXIucG9zdE1lc3NhZ2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsK
ICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICB9CiAgICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFu
YWdlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29u
dHJvbHNNYW5hZ2VyLm1tCmluZGV4IGJkMzE4NjJhZTQyZWNiNDJjYTQxZjEyYjZhZDZmODdmYzk5
MjFmYjcuLjY3NDVjYzcyNmU5NWZhYzljYzg2M2RiNTQ5YzI5ZmIyMmQ2NjBjY2UgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNN
YW5hZ2VyLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1Zp
ZGVvQ29udHJvbHNNYW5hZ2VyLm1tCkBAIC0yNiwxMCArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgotCi0jaWYgUExBVEZPUk0oTUFD
KQotI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgotI2VuZGlmCisjaW1wb3J0ICJUZXN0V0tXZWJW
aWV3TWFjLmgiCiAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0
ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KQEAgLTQzLDM0ICs0MCw3
IEBAIC0gKHZvaWQpX2ludGVyYWN0V2l0aE1lZGlhQ29udHJvbHNGb3JUZXN0aW5nOwogCiBAZW5k
CiAKLUBpbnRlcmZhY2UgTWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdl
SGFuZGxlcj4KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIE1lc3NhZ2VIYW5kbGVyIHsKLSAgICBk
aXNwYXRjaF9ibG9ja190IF9oYW5kbGVyOwotICAgIE5TU3RyaW5nICpfbWVzc2FnZTsKLX0KLQot
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGhhbmRs
ZXI6KGRpc3BhdGNoX2Jsb2NrX3QpaGFuZGxlcgotewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIg
aW5pdF0pKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgX2hhbmRsZXIgPSBbaGFuZGxlciBj
b3B5XTsKLSAgICBfbWVzc2FnZSA9IG1lc3NhZ2U7Ci0KLSAgICByZXR1cm4gc2VsZjsKLX0KLQot
LSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICop
dXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1l
c3NhZ2UgKiltZXNzYWdlCi17Ci0gICAgaWYgKFsoTlNTdHJpbmcgKilbbWVzc2FnZSBib2R5XSBp
c0VxdWFsVG9TdHJpbmc6X21lc3NhZ2VdICYmIF9oYW5kbGVyKQotICAgICAgICBfaGFuZGxlcigp
OwotfQotCi1AZW5kCi0KLUBpbnRlcmZhY2UgVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmll
dyA6IFdLV2ViVmlldworQGludGVyZmFjZSBWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3
IDogVGVzdFdLV2ViVmlldwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVmlkZW9Db250cm9sc01h
bmFnZXJUZXN0V2ViVmlldyB7CkBAIC03OCwzMiArNDgsNiBAQCBAaW1wbGVtZW50YXRpb24gVmlk
ZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyB7CiAgICAgTlNTdHJpbmcgKl9jb250cm9sbGVk
RWxlbWVudElEOwogfQogCi0tICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQg
ewotICAgIFtzZWxmIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVu
dFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KHBvaW50LngsIHBvaW50Lnkp
IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051
bWJlcjowIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBldmVudE51
bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXV07Ci19Ci0KLS0gKHZvaWQpcGVyZm9ybUFm
dGVyTG9hZGluZzooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb25zIHsKLSAgICBNZXNzYWdlSGFuZGxl
ciAqaGFuZGxlciA9IFtbTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoTWVzc2FnZTpAImxv
YWRlZCIgaGFuZGxlcjphY3Rpb25zXTsKLSAgICBOU1N0cmluZyAqb25sb2FkU2NyaXB0ID0gQCJ3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
Lm9ubG9hZEhhbmRsZXIucG9zdE1lc3NhZ2UoJ2xvYWRlZCcpOyB9IjsKLSAgICBXS1VzZXJTY3Jp
cHQgKnNjcmlwdCA9IFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpvbmxvYWRT
Y3JpcHQgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0
YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk9dOwotCi0gICAgV0tVc2VyQ29udGVudENvbnRyb2xsZXIq
IGNvbnRlbnRDb250cm9sbGVyID0gW1tzZWxmIGNvbmZpZ3VyYXRpb25dIHVzZXJDb250ZW50Q29u
dHJvbGxlcl07Ci0gICAgW2NvbnRlbnRDb250cm9sbGVyIGFkZFVzZXJTY3JpcHQ6c2NyaXB0XTsK
LSAgICBbY29udGVudENvbnRyb2xsZXIgYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlciBu
YW1lOkAib25sb2FkSGFuZGxlciJdOwotfQotCi0tICh2b2lkKWNhbGxKYXZhc2NyaXB0RnVuY3Rp
b246KE5TU3RyaW5nICopZnVuY3Rpb25OYW1lCi17Ci0gICAgTlNTdHJpbmcgKmNvbW1hbmQgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAKCkiLCBmdW5jdGlvbk5hbWVdOwotICAgIFtz
ZWxmIGV2YWx1YXRlSmF2YVNjcmlwdDpjb21tYW5kIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci19
Ci0KLS0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWUKLXsKLSAg
ICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6cGFnZU5hbWUgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwotICAg
IFtzZWxmIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotfQotCiAtICh2b2lkKWV4cGVjdENvbnRyb2xz
TWFuYWdlcjooQk9PTClleHBlY3RDb250cm9sc01hbmFnZXIgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdl
OihOU1N0cmluZyAqKW1lc3NhZ2UKIHsKICAgICBfX2Jsb2NrIGJvb2wgZG9uZVdhaXRpbmcgPSBm
YWxzZTsKQEAgLTEzMSwxNCArNzUsNiBAQCAtICh2b2lkKXdhaXRGb3JNZWRpYUNvbnRyb2xzVG9I
aWRlCiAgICAgICAgIFtbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXSBydW5Nb2RlOk5TRGVmYXVs
dFJ1bkxvb3BNb2RlIGJlZm9yZURhdGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dOwogfQogCi0tICh2
b2lkKXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rp
b246KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uCi17Ci0gICAgUmV0YWluUHRyPE1lc3NhZ2VIYW5k
bGVyPiBoYW5kbGVyID0gYWRvcHROUyhbW01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0V2l0aE1l
c3NhZ2U6bWVzc2FnZSBoYW5kbGVyOmFjdGlvbl0pOwotICAgIFdLVXNlckNvbnRlbnRDb250cm9s
bGVyKiBjb250ZW50Q29udHJvbGxlciA9IFtbc2VsZiBjb25maWd1cmF0aW9uXSB1c2VyQ29udGVu
dENvbnRyb2xsZXJdOwotICAgIFtjb250ZW50Q29udHJvbGxlciByZW1vdmVTY3JpcHRNZXNzYWdl
SGFuZGxlckZvck5hbWU6QCJwbGF5aW5nSGFuZGxlciJdOwotICAgIFtjb250ZW50Q29udHJvbGxl
ciBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJwbGF5aW5nSGFu
ZGxlciJdOwotfQotCiAtICh2b2lkKXdhaXRGb3JQYWdlVG9Mb2FkV2l0aEF1dG9wbGF5aW5nVmlk
ZW9zOihpbnQpbnVtYmVyT2ZBdXRvcGxheWluZ1ZpZGVvcwogewogICAgIF9fYmxvY2sgaW50IHJl
bWFpbmluZ0F1dG9wbGF5ZWRDb3VudCA9IG51bWJlck9mQXV0b3BsYXlpbmdWaWRlb3M7CkBAIC0y
NDAsNyArMTc2LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01h
bmFnZXJNdWx0aXBsZVZpZGVvc1Njcm9sbFBhdXNlZFZpZGVvT3UKICAgICBbd2ViVmlldyBsb2Fk
VGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMi
XTsKICAgICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVvczox
XTsKIAotICAgIFt3ZWJWaWV3IGNhbGxKYXZhc2NyaXB0RnVuY3Rpb246QCJwYXVzZUZpcnN0Vmlk
ZW9BbmRTY3JvbGxUb1NlY29uZFZpZGVvIl07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAInBhdXNlRmlyc3RWaWRlb0FuZFNjcm9sbFRvU2Vjb25kVmlkZW8oKSJd
OwogICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpOTyBhZnRlclJlY2VpdmluZ01l
c3NhZ2U6QCJwYXVzZWQiXTsKIH0KIApAQCAtMjUxLDcgKzE4Nyw3IEBAIFRFU1QoVmlkZW9Db250
cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVsdGlwbGVWaWRlb3NTY3JvbGxQbGF5
aW5nVmlkZW9XCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlb3Mt
cGxheWluZy12aWRlby1rZWVwcy1jb250cm9scyJdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JQYWdl
VG9Mb2FkV2l0aEF1dG9wbGF5aW5nVmlkZW9zOjFdOwogCi0gICAgW3dlYlZpZXcgY2FsbEphdmFz
Y3JpcHRGdW5jdGlvbjpAInNjcm9sbFRvU2Vjb25kVmlkZW8iXTsKKyAgICBbd2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVG9TZWNvbmRWaWRlbygpIl07CiAgICAg
W3dlYlZpZXcgZXhwZWN0Q29udHJvbHNNYW5hZ2VyOllFUyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6
QCJzY3JvbGxlZCJdOwogfQogCkBAIC0yNjIsNyArMTk4LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xz
TWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVvc1Njcm9sbFBsYXlpbmdN
dXRlZFYKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvcy1wbGF5
aW5nLW11dGVkLXZpZGVvLWhpZGVzLWNvbnRyb2xzIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBh
Z2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6MV07CiAKLSAgICBbd2ViVmlldyBjYWxsSmF2
YXNjcmlwdEZ1bmN0aW9uOkAibXV0ZUZpcnN0VmlkZW9BbmRTY3JvbGxUb1NlY29uZFZpZGVvIl07
CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIm11dGVGaXJzdFZp
ZGVvQW5kU2Nyb2xsVG9TZWNvbmRWaWRlbygpIl07CiAgICAgW3dlYlZpZXcgZXhwZWN0Q29udHJv
bHNNYW5hZ2VyOk5PIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBsYXlpbmciXTsKIH0KIApAQCAt
MzAwLDcgKzIzNiw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNN
YW5hZ2VyTXVsdGlwbGVWaWRlb3NTd2l0Y2hDb250cm9sbGVkVmlkCiAgICAgW3dlYlZpZXcgbG9h
ZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlb3MtYXV0b3BsYXlpbmctc2Nyb2xsLXRvLXZpZGVv
Il07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6
Ml07CiAKLSAgICBbd2ViVmlldyBjYWxsSmF2YXNjcmlwdEZ1bmN0aW9uOkAic2Nyb2xsVG9TZWNv
bmRWaWV3Il07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNj
cm9sbFRvU2Vjb25kVmlldygpIl07CiAgICAgW3dlYlZpZXcgZXhwZWN0Q29udHJvbHNNYW5hZ2Vy
OllFUyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJzY3JvbGxlZCJdOwogCiAgICAgRVhQRUNUX1RS
VUUoW1t3ZWJWaWV3IGNvbnRyb2xsZWRFbGVtZW50SURdIGlzRXF1YWxUb1N0cmluZzpAInNlY29u
ZCJdKTsKQEAgLTMxMiw3ICsyNDgsNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRl
b0NvbnRyb2xzTWFuYWdlck11bHRpcGxlVmlkZW9zU2Nyb2xsT25seUxhcmdlVmlkZQogCiAgICAg
W3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1h
d2F5Il07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRl
b3M6MV07Ci0gICAgW3dlYlZpZXcgY2FsbEphdmFzY3JpcHRGdW5jdGlvbjpAInNjcm9sbFZpZGVv
T3V0T2ZWaWV3Il07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
InNjcm9sbFZpZGVvT3V0T2ZWaWV3KCkiXTsKICAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01h
bmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInNjcm9sbGVkIl07CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0Nh
bmRpZGF0ZVRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
V0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRiOTQ3OWE0YmQ3YmI5YTky
ZTY3MTg2OWYwOTc4NGZiZGUxOTcwNwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tCkBAIC0w
LDAgKzEsMTkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBXS19B
UElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMjAwCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0
ICJUZXN0V0tXZWJWaWV3TWFjLmgiCisKKyNpbXBvcnQgPFdlYktpdC9XZWJLaXRQcml2YXRlLmg+
CisKK3N0YXRpYyBOU1N0cmluZyAqR2V0SW5wdXRWYWx1ZUpTRXhwcmVzc2lvbiA9IEAiZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS52YWx1ZSI7CitzdGF0aWMgTlNTdHJpbmcgKkdldERv
Y3VtZW50U2Nyb2xsVG9wSlNFeHByZXNzaW9uID0gQCJkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCI7
CisKK0BpbnRlcmZhY2UgVGVzdENhbmRpZGF0ZSA6IE5TVGV4dENoZWNraW5nUmVzdWx0CitAZW5k
CisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0Q2FuZGlkYXRlIHsKKyAgICBOU1N0cmluZyAqX3N0cmlu
ZzsKKyAgICBOU1JhbmdlIF9yYW5nZTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmVw
bGFjZW1lbnRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGluUmFuZ2U6KE5TUmFuZ2UpcmFuZ2UK
K3sKKyAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICAgICAgICBfc3RyaW5nID0gc3Ry
aW5nOworICAgICAgICBfcmFuZ2UgPSByYW5nZTsKKyAgICB9CisgICAgcmV0dXJuIHNlbGY7Cit9
CisKKy0gKE5TU3RyaW5nICopcmVwbGFjZW1lbnRTdHJpbmcKK3sKKyAgICByZXR1cm4gX3N0cmlu
ZzsKK30KKworLSAoTlNUZXh0Q2hlY2tpbmdUeXBlKXJlc3VsdFR5cGUKK3sKKyAgICByZXR1cm4g
TlNUZXh0Q2hlY2tpbmdUeXBlUmVwbGFjZW1lbnQ7Cit9CisKKy0gKE5TUmFuZ2UpcmFuZ2UKK3sK
KyAgICByZXR1cm4gX3JhbmdlOworfQorCitAZW5kCisKK0BpbnRlcmZhY2UgQ2FuZGlkYXRlVGVz
dFdlYlZpZXcgOiBUZXN0V0tXZWJWaWV3CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHks
IGdldHRlcj1pc0NhbmRpZGF0ZUxpc3RWaXNpYmxlKSBCT09MIGNhbmRpZGF0ZUxpc3RWaXNpYmxl
OworQGVuZAorCitAaW1wbGVtZW50YXRpb24gQ2FuZGlkYXRlVGVzdFdlYlZpZXcgeworICAgIGJv
b2wgX2lzRG9uZVdhaXRpbmdGb3JDYW5kaWRhdGU7CisgICAgYm9vbCBfaXNMaXN0ZW5pbmdGb3JD
YW5kaWRhdGVMaXN0VmlzaWJpbGl0eUNoYW5nZXM7CisgICAgTlNVSW50ZWdlciBfY2FuZGlkYXRl
TGlzdFZpc2liaWxpdHlDaGFuZ2VDb3VudDsKK30KKworLSAodm9pZClpbnNlcnRDYW5kaWRhdGVz
QW5kV2FpdEZvclJlc3BvbnNlOihOU1N0cmluZyAqKXJlcGxhY2VtZW50U3RyaW5nIHJhbmdlOihO
U1JhbmdlKXJhbmdlCit7CisgICAgX2lzRG9uZVdhaXRpbmdGb3JDYW5kaWRhdGUgPSBmYWxzZTsK
KyAgICBbc2VsZiBfaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGU6W1tUZXN0Q2FuZGlkYXRlIGFsbG9j
XSBpbml0V2l0aFJlcGxhY2VtZW50U3RyaW5nOnJlcGxhY2VtZW50U3RyaW5nIGluUmFuZ2U6cmFu
Z2VdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9pc0RvbmVXYWl0aW5nRm9yQ2Fu
ZGlkYXRlKTsKK30KKworLSAodm9pZClfZGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUKK3sKKyAg
ICBfaXNEb25lV2FpdGluZ0ZvckNhbmRpZGF0ZSA9IHRydWU7Cit9CisKKy0gKHZvaWQpZXhwZWN0
Q2FuZGlkYXRlTGlzdFZpc2liaWxpdHlVcGRhdGVzOihOU1VJbnRlZ2VyKWV4cGVjdGVkVXBkYXRl
Q291bnQgd2hlblBlcmZvcm1pbmdBY3Rpb25zOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbnMKK3sK
KyAgICBfY2FuZGlkYXRlTGlzdFZpc2liaWxpdHlDaGFuZ2VDb3VudCA9IDA7CisgICAgX2lzTGlz
dGVuaW5nRm9yQ2FuZGlkYXRlTGlzdFZpc2liaWxpdHlDaGFuZ2VzID0gWUVTOworCisgICAgYWN0
aW9ucygpOworCisgICAgX2lzTGlzdGVuaW5nRm9yQ2FuZGlkYXRlTGlzdFZpc2liaWxpdHlDaGFu
Z2VzID0gTk87CisgICAgRVhQRUNUX0VRKGV4cGVjdGVkVXBkYXRlQ291bnQsIF9jYW5kaWRhdGVM
aXN0VmlzaWJpbGl0eUNoYW5nZUNvdW50KTsKK30KKworLSAodm9pZClfZGlkVXBkYXRlQ2FuZGlk
YXRlTGlzdFZpc2liaWxpdHk6KEJPT0wpdmlzaWJsZQoreworICAgIGlmIChfY2FuZGlkYXRlTGlz
dFZpc2libGUgPT0gdmlzaWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgX2NhbmRpZGF0ZUxp
c3RWaXNpYmxlID0gdmlzaWJsZTsKKyAgICBpZiAoX2lzTGlzdGVuaW5nRm9yQ2FuZGlkYXRlTGlz
dFZpc2liaWxpdHlDaGFuZ2VzKQorICAgICAgICBfY2FuZGlkYXRlTGlzdFZpc2liaWxpdHlDaGFu
Z2VDb3VudCsrOworfQorCitAZW5kCisKK1RFU1QoV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMsIFNv
ZnRTcGFjZVJlcGxhY2VtZW50QWZ0ZXJDYW5kaWRhdGVJbnNlcnRpb25XaXRob3V0UmVwbGFjZW1l
bnQpCit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtbQ2FuZGlkYXRl
VGVzdFdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYw
MCldOworCisgICAgTlNVUkwgKmNvbnRlbnRVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAiaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudCIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CisgICAgW3drV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OmNvbnRlbnRVUkxdXTsKKworICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJmb2N1c2Vk
Il07CisgICAgW3drV2ViVmlldyBfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107CisgICAgW3drV2Vi
VmlldyBpbnNlcnRDYW5kaWRhdGVzQW5kV2FpdEZvclJlc3BvbnNlOkAiYXBwbGUgIiByYW5nZTpO
U01ha2VSYW5nZSgwLCAwKV07CisKKyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxU
b1N0cmluZzpAImFwcGxlICJdKTsKKworICAgIFt3a1dlYlZpZXcgZXhwZWN0Q2FuZGlkYXRlTGlz
dFZpc2liaWxpdHlVcGRhdGVzOjAgd2hlblBlcmZvcm1pbmdBY3Rpb25zOl4oKQorICAgIHsKKyAg
ICAgICAgW3drV2ViVmlldyB0eXBlQ2hhcmFjdGVyOicgJ107CisgICAgICAgIFt3a1dlYlZpZXcg
d2FpdEZvck1lc3NhZ2U6QCJpbnB1dCJdOworICAgIH1dOworCisgICAgRVhQRUNUX1RSVUUoW1t3
a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpHZXRJbnB1dFZhbHVlSlNFeHBy
ZXNzaW9uXSBpc0VxdWFsVG9TdHJpbmc6QCJhcHBsZSAiXSk7CisgICAgRVhQRUNUX0VRKFtbd2tX
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0RG9jdW1lbnRTY3JvbGxUb3BK
U0V4cHJlc3Npb25dIGRvdWJsZVZhbHVlXSwgMCk7Cit9CisKK1RFU1QoV0tXZWJWaWV3Q2FuZGlk
YXRlVGVzdHMsIEluc2VydENoYXJhY3RlcnNBZnRlckNhbmRpZGF0ZUluc2VydGlvbldpdGhTb2Z0
U3BhY2UpCit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtbQ2FuZGlk
YXRlVGVzdFdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAs
IDYwMCldOworCisgICAgTlNVUkwgKmNvbnRlbnRVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAiaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudCIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CisgICAgW3drV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOmNvbnRlbnRVUkxdXTsKKworICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJmb2N1
c2VkIl07CisgICAgW3drV2ViVmlldyBfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107CisgICAgW3dr
V2ViVmlldyBpbnNlcnRDYW5kaWRhdGVzQW5kV2FpdEZvclJlc3BvbnNlOkAiZm9vICIgcmFuZ2U6
TlNNYWtlUmFuZ2UoMCwgMCldOworCisgICAgRVhQRUNUX1RSVUUoW1t3a1dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpHZXRJbnB1dFZhbHVlSlNFeHByZXNzaW9uXSBpc0VxdWFs
VG9TdHJpbmc6QCJmb28gIl0pOworCisgICAgW3drV2ViVmlldyB0eXBlQ2hhcmFjdGVyOidhJ107
CisgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CisKKyAgICBFWFBFQ1Rf
VFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFs
dWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImZvbyBhIl0pOworfQorCitURVNUKFdL
V2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBJbnNlcnRDYW5kaWRhdGVGcm9tUGFydGlhbGx5VHlwZWRQ
aHJhc2VXaXRoU29mdFNwYWNlKQoreworICAgIENhbmRpZGF0ZVRlc3RXZWJWaWV3ICp3a1dlYlZp
ZXcgPSBbW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApXTsKKworICAgIE5TVVJMICpjb250ZW50VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUt
ZG9jdW1lbnQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOworICAgIFt3a1dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpjb250ZW50VVJMXV07CisKKyAgICBbd2tXZWJWaWV3IHdhaXRGb3JN
ZXNzYWdlOkAiZm9jdXNlZCJdOworICAgIFt3a1dlYlZpZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0
ZXNdOworCisgICAgTlNTdHJpbmcgKmluaXRpYWxWYWx1ZSA9IEAiaGVsIjsKKyAgICBmb3IgKHVp
bnQ2NF90IGkgPSAwOyBpIDwgaW5pdGlhbFZhbHVlLmxlbmd0aDsgKytpKSB7CisgICAgICAgIFt3
a1dlYlZpZXcgdHlwZUNoYXJhY3RlcjpbaW5pdGlhbFZhbHVlIGNoYXJhY3RlckF0SW5kZXg6aV1d
OworICAgICAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiaW5wdXQiXTsKKyAgICB9CisK
KyAgICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6QCJoZWxs
byAiIHJhbmdlOk5TTWFrZVJhbmdlKDAsIDMpXTsKKyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25d
IGlzRXF1YWxUb1N0cmluZzpAImhlbGxvICJdKTsKKworICAgIFt3a1dlYlZpZXcgZXhwZWN0Q2Fu
ZGlkYXRlTGlzdFZpc2liaWxpdHlVcGRhdGVzOjAgd2hlblBlcmZvcm1pbmdBY3Rpb25zOl4oKQor
ICAgIHsKKyAgICAgICAgW3drV2ViVmlldyB0eXBlQ2hhcmFjdGVyOicgJ107CisgICAgICAgIFt3
a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJpbnB1dCJdOworICAgICAgICBFWFBFQ1RfVFJVRShb
W3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4
cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImhlbGxvICJdKTsKKyAgICAgICAgRVhQRUNUX0VR
KFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0RG9jdW1lbnRTY3Jv
bGxUb3BKU0V4cHJlc3Npb25dIGRvdWJsZVZhbHVlXSwgMCk7CisKKyAgICAgICAgW3drV2ViVmll
dyB0eXBlQ2hhcmFjdGVyOicgJ107CisgICAgICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6
QCJpbnB1dCJdOworICAgICAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmlu
ZzpAImhlbGxvICAiXSk7CisgICAgICAgIEVYUEVDVF9FUShbW3drV2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkdldERvY3VtZW50U2Nyb2xsVG9wSlNFeHByZXNzaW9uXSBkb3Vi
bGVWYWx1ZV0sIDApOworICAgIH1dOworfQorCisjZW5kaWYgLyogV0tfQVBJX0VOQUJMRUQgJiYg
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIw
MCAqLwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
YXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCmluZGV4
IGI2YTViODJlMjYxYWQ0YTM5NTVhZWM4M2UzZjFlYTZkYTRlNjg3ZDQuLjUzYjQ1NjM4OGYxOTZl
OTg5NzUxMThmY2E3Mzk2NWYzMDc1NmVmYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2F1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9hdXRvcGxheWluZy12
aWRlby13aXRoLWF1ZGlvLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAKICAgICAgICAgLy8gV2FpdCB1
bnRpbCB0aGUgbmV4dCBydW5sb29wIHRvIGFsbG93IG1lZGlhIGNvbnRyb2xzIHRvIHVwZGF0ZS4K
ICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIu
cG9zdE1lc3NhZ2UoInBhdXNlZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsKICAgICAgICAg
ICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0KQEAgLTIwLDcgKzIwLDcg
QEAKICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3Bs
YXllZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNo
KGUpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tY2xp
Y2suaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12
aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbAppbmRleCBjOGMxZDI4NjUyNTNhZTYyZDAyNTY4ZDE3
YTNiMTAwODY0MTQ1Mzg0Li41NjBlNjg1MGExNWQxMTlhMjE3YzMzNGY3YjEzYmZjZjhjMmE5NDgy
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFu
Z2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sCkBAIC0x
Miw3ICsxMiw3IEBACiAgICAgICAgICAgICB2aWRlby5wbGF5KCk7CiAgICAgICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RN
ZXNzYWdlKCJjaGFuZ2VkIik7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJjaGFuZ2VkIik7CiAgICAgICAg
ICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSk7
CkBAIC0yMSw3ICsyMSw3IEBACiAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVBsYXlpbmcoKSB7CiAg
ICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHRyeSB7
Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlp
bmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAgICAgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJh
dXRvcGxheWVkIik7CiAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfSwgMCk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1v
bi1lbmQuaHRtbAppbmRleCA4ZmRjYmRhNWM5ZTIyMjgzMzEzYjQwYTY2MGIzOTJiNTM1MDkzNjhk
Li5mODRmN2Y3YWMxYjE0YzU3NTU4NzQ0MDYyOWU5ODhjMjg4NDg0MDFiIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNl
LW9uLWVuZC5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2NoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgICAg
ICAgICAgIHZpZGVvLnBsYXkoKTsKICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsK
KyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKICAgICAgICAgICAgICAgICB9IGNhdGNoKGUp
IHsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Z1bGwtc2l6ZS1hdXRvcGxheWluZy12
aWRlby13aXRoLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9mdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sCmluZGV4IDFi
YzYwZWI0ZTE2MDUyM2M5NjZjZjNlMDBkMjEyNWM4MTYxOTAwZDEuLjQ4MzAxZTYzMDU0MDU4Y2Nj
YzBjYTlhNjU5YWQ3MTMwODA5YTk3ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2Z1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlv
Lmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvZnVsbC1z
aXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbApAQCAtMTEsNyArMTEsNyBAQAog
ICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CisgICAg
ICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9z
dE1lc3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAg
IH0sIDApOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL2lucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2lucHV0LWZpZWxkLWluLXNjcm9sbGFi
bGUtZG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWVkZjM3NWM3NjU2YTZiN2NkZDFhZmQ1YTg5
MjY3NmZkODA2NGYwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sCkBA
IC0wLDAgKzEsMzYgQEAKKzxodG1sPgorCis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJv
ZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICB9CisKKyAgICAgICAgaW5wdXQg
eworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4Owor
ICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNTAwMHB4OworICAgICAgICB9CisgICAgPC9zdHls
ZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIGZ1bmN0aW9u
IGxvYWRlZCgpIHsKKyAgICAgICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImlucHV0Iik7CisgICAgICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSgwLCAwKTsK
KyAgICAgICAgICAgIGlucHV0LmZvY3VzKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBmb2N1c2VkKCkgeworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiZm9jdXNlZCIpLCAwKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGlucHV0KCkgeworICAgICAgICAgICAgc2V0
VGltZW91dCgoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5w
b3N0TWVzc2FnZSgiaW5wdXQiKSwgMCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKworPGJvZHkgb25sb2FkPWxvYWRlZCgpPgorICAgIDxpbnB1dCBvbmZvY3VzPWZvY3VzZWQo
KSBvbmlucHV0PWlucHV0KCk+PC9pbnB1dD4KKzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlk
ZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWst
dG8tZW5kLmh0bWwKaW5kZXggZTQyNjdjNDMxZDdhYWZmMDZhOTFkZGI4MjI4YWFlNTk4Y2YyOWE2
OC4uMDEwMmU5NjI5ZjM2MTFiZGMyOGJlMTllMWM2NmY4ZTE5M2UwOGIwZCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8taGlkZXMt
Y29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVr
LXRvLWVuZC5odG1sCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAvLyBUaGUgbWVkaWEgY29udHJv
bHMgc2hvdWxkIGJlIHVwZGF0ZWQgb24gdGhlIG5leHQgcnVubG9vcC4KICAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImVu
ZGVkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoImVuZGVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsg
fQogICAgICAgICB9LCAwKTsKICAgICB9CkBAIC0yNiw3ICsyNiw3IEBACiAgICAgZnVuY3Rpb24g
YmVnYW5BdXRvcGxheWluZygpIHsKICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKKyAgICAgICAg
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVz
c2FnZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0sIDApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRtbCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11dGVzLW9ucGxheWlu
Zy5odG1sCmluZGV4IGI1Y2FmMjNhNWFjZWFlNGM2M2YyZjUwMzUzM2I2ZTI2MWE1OWUzZjQuLjM4
ZmIzMjU1MjIzNGZlYjA4YTlkODU0ODVhNWI5MWEyYjM0ZGM2ODkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW11dGVzLW9ucGxh
eWluZy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xh
cmdlLXZpZGVvLW11dGVzLW9ucGxheWluZy5odG1sCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4K
ICAgICBmdW5jdGlvbiBoYW5kbGVQbGF5aW5nKCkgewogICAgICAgICB0cnkgewotICAgICAgICAg
ICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3Nh
Z2UoInBsYXlpbmciKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CiAgICAgICAgIH0gY2F0Y2goZSkg
ewogICAgICAgICB9CiAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIikubXV0
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbAppbmRleCA1MGE2ODVm
ZjY1OWE5OGQ3N2UxNjU0MWYxZDkwMTIzMTdiNTJkNTNlLi4zOWNmNDc2YWIzNTBiMTRhYzQyMzFh
NjhjNTQ3YTk4NTY4YmYzZmE5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbApA
QCAtMTYsNyArMTYsNyBAQAogICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigidmlk
ZW8iKS5jbGFzc0xpc3QuYWRkKCJvZmZzY3JlZW4iKTsKICAgICAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2Uo
Im1vdmVkIik7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJtb3ZlZCIpOwogICAgICAgICAgICAgICAgIH0g
Y2F0Y2goZSkgewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sIDApOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8t
cGxheWluZy1zY3JvbGwtYXdheS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5odG1sCmluZGV4IDk1OTYw
MDNjYjdmMGFiNTc4MTAzYjY2M2ZkNDYzZDMzMDIwMmQ0OWIuLjBiN2UwOWEzMjYwMzM5NjMzODI3
ZWIwZWQ5Y2Y3MWRhMDFlNDlhMGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRtbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1wbGF5
aW5nLXNjcm9sbC1hd2F5Lmh0bWwKQEAgLTE0LDE0ICsxNCwxNCBAQAogICAgICAgICAgICAgZnVu
Y3Rpb24gc2Nyb2xsVmlkZW9PdXRPZlZpZXcoKSB7CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiZGl2Iikuc2Nyb2xsSW50b1ZpZXcoKTsKICAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsK
KyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoInNjcm9sbGVkIik7CiAgICAgICAgICAgICAgICAgfSwgMCk7CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7
CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgICAgICAgICB9IGNh
dGNoKGUpIHsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0sIDApCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12
aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbAppbmRleCBlMzE2
N2Y1NzRjNDYwYjI2M2IzNzMyMWM2ODY0NjFiNTQxZTlkYzkyLi4wMzg2NTQwYTNjYjk2OGYzMmY1
OWYzYTVmYzIyNWNjMmIzY2RmZDA5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXNlZWst
YWZ0ZXItZW5kaW5nLmh0bWwKQEAgLTYsNyArNiw3IEBACiAgICAgICAgICAgICBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCIjdGVzdC12aWRlbyIpLmN1cnJlbnRUaW1lID0gMDsKICAgICAgICAgICAg
IC8vIFRoZSBtZWRpYSBjb250cm9scyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBydW5s
b29wLgogICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2Fn
ZSgiZW5kZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiZW5kZWQiKTsKICAgICAgICAgICAgIH0sIDApOwog
ICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2xhcmdlLXZpZGVvLXNlZWstdG8tYmVnaW5uaW5nLWFuZC1wbGF5LWFmdGVyLWVuZGlu
Zy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwKaW5kZXggMDdh
OGViMTBlYjE0ZjE5YTE5Mjc3MTJkMzQ1OTMxYWVkYmMzZWIwMy4uYWRhOWEyZDEyNzFjOThmZTQ3
M2NlNjdjMzlmZWViMWZlYjViNDllOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXkt
YWZ0ZXItZW5kaW5nLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5n
Lmh0bWwKQEAgLTgsNyArOCw3IEBACiAgICAgICAgICAgICB2aWRlby5wbGF5KCk7CiAgICAgICAg
ICAgICAvLyBUaGUgbWVkaWEgY29udHJvbHMgc2hvdWxkIGJlIHVwZGF0ZWQgb24gdGhlIG5leHQg
cnVubG9vcC4KICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1l
c3NhZ2UoInJlcGxheWluZyIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJyZXBsYXlpbmciKTsKICAgICAgICAg
ICAgIH0sIDApOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRt
bAppbmRleCBkMjMzNDYzY2ViOGZhYTMyMmUzNmYwYzIyYmFjMTkxYTMzM2U4YWZhLi44NTgyYjQ1
N2YzMWQ5MDAzYTI2NWZmMWUxOTIwNjU0NWQwOWZlY2NjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRoLWF1ZGlvLmh0bWwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8t
d2l0aC1hdWRpby5odG1sCkBAIC0xNCw3ICsxNCw3IEBACiAgICAgICAgIHdpbmRvdy5jbGVhclRp
bWVvdXQodGltZW91dCk7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ3Bs
YXlpbmcnKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgICAgIHdpbmRv
dy5sb2NhdGlvbiA9ICdjYWxsYmFjazpwbGF5aW5nJzsKICAgICAgICAgICAgIH0KQEAgLTIzLDcg
KzIzLDcgQEAKIAogICAgIGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CiAgICAgICAgIHRyeSB7Ci0g
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5w
b3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdub3QgcGxheWluZycpOwogICAg
ICAgICB9IGNhdGNoKGUpIHsgfQogICAgIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0aG91dC1hdWRp
by5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW8td2l0aG91dC1hdWRpby5odG1sCmluZGV4IDNhYjc1MmU4NThjMTQxMWRmYjQyNGQwNzgyNmQ1
NjFhNmQ3ZWE3NTkuLmY0OTJmYTRkMzUyM2RkMzg3NmQ1NmRjODRhNTE3YjQxMjUyYmZkOWEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvLXdpdGhvdXQtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRob3V0LWF1ZGlvLmh0bWwKQEAgLTEzLDcgKzEzLDcg
QEAKICAgICBmdW5jdGlvbiBwbGF5aW5nKCkgewogICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0
KHRpbWVvdXQpOwogICAgICAgICB0cnkgewotICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoJ3BsYXlpbmcnKTsKKyAgICAg
ICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCdwbGF5aW5nJyk7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgd2luZG93
LmxvY2F0aW9uID0gJ2NhbGxiYWNrOnBsYXlpbmcnOwogICAgICAgICB9CkBAIC0yMSw3ICsyMSw3
IEBACiAKICAgICBmdW5jdGlvbiBub3RQbGF5aW5nKCkgewogICAgICAgICB0cnkgewotICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1l
c3NhZ2UoJ25vdCBwbGF5aW5nJyk7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnbm90IHBsYXlpbmcnKTsKICAgICAgICAg
fSBjYXRjaChlKSB7IH0KICAgICB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1hdXRvcGxheWluZy1jbGlj
ay10by1wYXVzZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWwKaW5kZXggYzgxYTMx
ZTZjOWNkZjlkYzQ1MjdkNDI2YmM2NTRhZjkwZWE1NzZjNS4uMjJkYmViZjEyZGZmMDk2NmE1MTFl
ZjE0NWI4YmNiZjk5Y2Y2NGJjYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0
bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAKICAg
ICAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZUZpcnN0UGF1c2UoKSB7CiAgICAgICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdI
YW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVzZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXVz
ZWQiKTsKICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgICAgICAg
ICB9LCAwKTsKICAgICAgICAgICAgIH0KQEAgLTI1LDcgKzI1LDcgQEAKICAgICAgICAgICAgIGZ1
bmN0aW9uIGhhbmRsZVNlY29uZFBhdXNlKCkgewogICAgICAgICAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0
TWVzc2FnZSgicGF1c2VkIik7CisgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgicGF1c2VkIik7CiAgICAg
ICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgICAgICAgICAgfSwgMCk7CiAg
ICAgICAgICAgICB9CkBAIC0zMyw3ICszMyw3IEBACiAgICAgICAgICAgICBmdW5jdGlvbiBiZWdh
bkF1dG9wbGF5aW5nKCkgewogICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0
b3BsYXllZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAg
ICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLXNjcm9sbC10by12aWRlby5odG1sIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLWF1dG9w
bGF5aW5nLXNjcm9sbC10by12aWRlby5odG1sCmluZGV4IGRiNDNkNGJiNDVjYmE3ZjdhMGI1Yzc3
MGJlNzVhZGE4OTgxMjgwN2QuLmQxYzFhYWVhOTAyZDRhNjEzNjFjZDZhOTk0NzRjNzExYWVmYzIz
YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xh
cmdlLXZpZGVvcy1hdXRvcGxheWluZy1zY3JvbGwtdG8tdmlkZW8uaHRtbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtYXV0b3BsYXlpbmct
c2Nyb2xsLXRvLXZpZGVvLmh0bWwKQEAgLTE0LDEzICsxNCwxMyBAQAogICAgICAgICAgICAgZnVu
Y3Rpb24gc2Nyb2xsVG9TZWNvbmRWaWV3KCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoIiNzZWNvbmQiKS5zY3JvbGxJbnRvVmlldygpOwogICAgICAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJzY3JvbGxlZCIp
OworICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKICAgICAgICAgICAgICAgICB9LCAwKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZ1bmN0aW9uIGJlZ2FuQXV0b3BsYXlpbmcoKSB7
CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAg
ICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwogICAgICAgICAgICAgICAgICAgICB9IGNh
dGNoKGUpIHsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0sIDApCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12
aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3MtcGF1c2VkLXZpZGVvLWhpZGVzLWNv
bnRyb2xzLmh0bWwKaW5kZXggZWE1MDQ5NTMwNjkyZTI2ZTQzZTI3OTkyNjRjZDhiMjUwY2M5NGZk
Yy4uMzFmODZjYmM5NjM1NTNlYzc2OGM0NGJjNzJhZTg3Njc5ZWNhMzhhMiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBhdXNl
ZC12aWRlby1oaWRlcy1jb250cm9scy5odG1sCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wYXVzZWQtdmlkZW8taGlkZXMtY29udHJvbHMu
aHRtbApAQCAtMTcsMTQgKzE3LDE0IEBACiAgICAgZnVuY3Rpb24gaGFuZGxlUGF1c2VkKCkgewog
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5w
b3N0TWVzc2FnZSgicGF1c2VkIik7CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBhdXNlZCIpOwogICAgICAgICAg
ICAgfSBjYXRjaChlKSB7IH0KICAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIGZ1bmN0aW9uIGJl
Z2FuQXV0b3BsYXlpbmcoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CisgICAgICAgICAg
ICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoImF1dG9wbGF5ZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAg
fQogICAgICAgICB9LCAwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29udHJv
bHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvcy1wbGF5aW5nLW11dGVkLXZpZGVvLWhpZGVzLWNvbnRyb2xzLmh0bWwKaW5kZXggMmU1N2Rm
NzhiMWZlYjA0ZTgzMmUzZDlmMzFjZjliMmZhM2FmZGYyNy4uMzQ0ODZlMmUzZmQ2N2E1Y2Q3MTY4
YzNiNzU1YjEyZmYwMWI3M2M2YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXBsYXlpbmctbXV0ZWQtdmlkZW8taGlkZXMtY29u
dHJvbHMuaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
YXJnZS12aWRlb3MtcGxheWluZy1tdXRlZC12aWRlby1oaWRlcy1jb250cm9scy5odG1sCkBAIC0x
NSwxNCArMTUsMTQgQEAKICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2JhciIpLnNj
cm9sbEludG9WaWV3KCk7CiAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CisgICAgICAgICAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBs
YXlpbmciKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAg
IH0KICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3Bs
YXllZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNo
KGUpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVv
LWtlZXBzLWNvbnRyb2xzLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlb3MtcGxheWluZy12aWRlby1rZWVwcy1jb250cm9scy5odG1sCmluZGV4
IGRiN2NhYzZiOTkxOTQ2MzMyM2IzMzMxYWMzODhiZWU3ZWE1YzQ1MWYuLmI2ZmNmN2EwNTBjNWUw
NmUxZTM2NmJmZTQyZDMxNWFhMjM3MDQ3OTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy1wbGF5aW5nLXZpZGVvLWtlZXBzLWNv
bnRyb2xzLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW9zLXBsYXlpbmctdmlkZW8ta2VlcHMtY29udHJvbHMuaHRtbApAQCAtMTQsMTQg
KzE0LDE0IEBACiAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNiYXIiKS5zY3JvbGxJ
bnRvVmlldygpOwogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
dHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5
aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xsZWQiKTsKKyAgICAgICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgic2Nyb2xs
ZWQiKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAgICAgICAgIH0sIDApOwogICAgIH0K
ICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXll
ZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RI
YW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7CiAgICAgICAgICAgICB9IGNhdGNoKGUp
IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9w
bGF5Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12
aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sCmluZGV4IDc2NTI1NGQyM2Y4ODhhNTU2YjNk
N2Y4ODFjMzZmMGRlNTk3ZjE3MDUuLjNlMTcwY2VkNWQyOWRlYTJlMGQzN2JmZTg2MTZmZGVkNTNm
YTkzODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3Bs
YXkuaHRtbApAQCAtNCw3ICs0LDcgQEAKICAgICBmdW5jdGlvbiBiZWdhbkF1dG9wbGF5aW5nKCkg
ewogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAg
ICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxl
ci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJhdXRvcGxheWVkIik7
CiAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIH0KICAgICAgICAgfSwgMCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3NraW5u
eS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9za2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5o
dG1sCmluZGV4IGJhNDhkNGQ3MjA5NzZlNTI0OTg2MGZkYWZkOTNiZDM5ZGJmNzg0YWYuLjI2ZWY1
M2RjMjM0Y2MyYmZkM2FjMTk3N2Q5MjI5NTA1ZjUwNjBlNmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3NraW5ueS1hdXRvcGxheWluZy12aWRlby13
aXRoLWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2Evc2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbApAQCAtMTEsNyArMTEs
NyBAQAogICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7
CisgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoInBsYXlpbmciKTsKICAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CiAg
ICAgICAgIH0sIDApOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL3dpZGUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRvcGxheWluZy12
aWRlby13aXRoLWF1ZGlvLmh0bWwKaW5kZXggMGViOWFmNmFjN2U1Mzg1MTQyNjI0MzY2ODA0MWM2
Yjk0YzI4OTVkNS4uZWEyY2I1MDYzMjMwYTc2ZDMyZTZjNjc1Yzk4YTU3M2E0ZGZhYzVlZSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRv
cGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2Evd2lkZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwK
QEAgLTExLDcgKzExLDcgQEAKICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogICAgICAgICBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2Fn
ZSgicGxheWluZyIpOworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwbGF5aW5nIik7CiAgICAgICAgICAgICB9IGNh
dGNoKGUpIHsgfQogICAgICAgICB9LCAwKTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL21h
Yy9UZXN0V0tXZWJWaWV3TWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTcxNzNhZGU0ZDE0MTcxYTAxYzYxNTMx
YjQ5ZWM3YThkMjY3MDEyMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
bWFjL1Rlc3RXS1dlYlZpZXdNYWMuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBUZXN0V0tXZWJWaWV3TWFjX2gKKyNkZWZpbmUgVGVzdFdLV2ViVmlld01hY19oCisKKyNp
bXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JN
KE1BQykKKworQGludGVyZmFjZSBUZXN0TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3Jp
cHRNZXNzYWdlSGFuZGxlcj4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3Ry
aW5nICopbWVzc2FnZSBoYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXI7CitAZW5kCisK
K0BpbnRlcmZhY2UgVGVzdFdLV2ViVmlldyA6IFdLV2ViVmlldworLSAodm9pZCltb3VzZURvd25B
dFBvaW50OihOU1BvaW50KXBvaW50OworLSAodm9pZClwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNz
YWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbjsK
Ky0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7CistICh2b2lk
KXR5cGVDaGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyOworLSAoTlNTdHJpbmcgKilzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdDsKKy0gKHZvaWQpd2FpdEZvck1l
c3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZTsKKy0gKHZvaWQpcGVyZm9ybUFmdGVyTG9hZGluZzoo
ZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb25zOworQGVuZAorCisjZW5kaWYgLyogV0tfQVBJX0VOQUJM
RUQgJiYgUExBVEZPUk0oTUFDKSAqLworCisjZW5kaWYgLyogVGVzdFdLV2ViVmlld01hY19oICov
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zYzkzN2I0ZDlmYjE2OTUxMTFjMTY5OTY4MGM1YzAwMDk2MTkwZTJhCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbQpAQCAtMCww
ICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVGVz
dFdLV2ViVmlld01hYy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKQor
CisjaW1wb3J0ICJVdGlsaXRpZXMuaCIKKworI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgorI2lt
cG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYktpdFByaXZhdGUuaD4K
KyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGltcGxlbWVudGF0aW9uIFRlc3RNZXNzYWdl
SGFuZGxlciB7CisgICAgZGlzcGF0Y2hfYmxvY2tfdCBfaGFuZGxlcjsKKyAgICBOU1N0cmluZyAq
X21lc3NhZ2U7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3RyaW5n
ICopbWVzc2FnZSBoYW5kbGVyOihkaXNwYXRjaF9ibG9ja190KWhhbmRsZXIKK3sKKyAgICBpZiAo
IShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9oYW5k
bGVyID0gW2hhbmRsZXIgY29weV07CisgICAgX21lc3NhZ2UgPSBtZXNzYWdlOworCisgICAgcmV0
dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250
ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVz
c2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZQoreworICAgIGlmIChbKE5TU3RyaW5nICop
W21lc3NhZ2UgYm9keV0gaXNFcXVhbFRvU3RyaW5nOl9tZXNzYWdlXSAmJiBfaGFuZGxlcikKKyAg
ICAgICAgX2hhbmRsZXIoKTsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gVGVzdFdLV2Vi
VmlldworCistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKK3sKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAorICAgIE5TRXZlbnRUeXBl
IG1vdXNlRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOworI2Vsc2UKKyAgICBO
U0V2ZW50VHlwZSBtb3VzZUV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRG93bjsKKyNlbmRpZgorICAg
IFtzZWxmIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6bW91c2VFdmVudFR5
cGUgbG9jYXRpb246TlNNYWtlUG9pbnQocG9pbnQueCwgcG9pbnQueSkgbW9kaWZpZXJGbGFnczow
IHRpbWVzdGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpb
TlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3Vu
dDowIHByZXNzdXJlOjBdXTsKK30KKworLSAodm9pZClwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNz
YWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbgor
eworICAgIFJldGFpblB0cjxUZXN0TWVzc2FnZUhhbmRsZXI+IGhhbmRsZXIgPSBhZG9wdE5TKFtb
VGVzdE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0V2l0aE1lc3NhZ2U6bWVzc2FnZSBoYW5kbGVy
OmFjdGlvbl0pOworICAgIFdLVXNlckNvbnRlbnRDb250cm9sbGVyKiBjb250ZW50Q29udHJvbGxl
ciA9IFtbc2VsZiBjb25maWd1cmF0aW9uXSB1c2VyQ29udGVudENvbnRyb2xsZXJdOworICAgIFtj
b250ZW50Q29udHJvbGxlciByZW1vdmVTY3JpcHRNZXNzYWdlSGFuZGxlckZvck5hbWU6QCJ0ZXN0
SGFuZGxlciJdOworICAgIFtjb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRNZXNzYWdlSGFuZGxl
cjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworfQorCistICh2b2lkKWxvYWRU
ZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lCit7CisgICAgTlNVUkxSZXF1ZXN0ICpy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOnBhZ2VOYW1lIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbc2VsZiBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKK30KKworLSAodm9pZCl0eXBlQ2hhcmFjdGVyOihjaGFyKWNoYXJhY3RlciB7
CisgICAgTlNTdHJpbmcgKmNoYXJhY3RlckFzU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCIlYyIgLCBjaGFyYWN0ZXJdOworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMjAwCisgICAgTlNFdmVudFR5cGUga2V5RG93bkV2ZW50VHlwZSA9IE5TRXZl
bnRUeXBlS2V5RG93bjsKKyAgICBOU0V2ZW50VHlwZSBrZXlVcEV2ZW50VHlwZSA9IE5TRXZlbnRU
eXBlS2V5VXA7CisjZWxzZQorICAgIE5TRXZlbnRUeXBlIGtleURvd25FdmVudFR5cGUgPSBOU0tl
eURvd247CisgICAgTlNFdmVudFR5cGUga2V5VXBFdmVudFR5cGUgPSBOU0tleVVwOworI2VuZGlm
CisgICAgW3NlbGYga2V5RG93bjpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleURvd25FdmVu
dFR5cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRD
dXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOjAgY29udGV4dDpuaWwgY2hhcmFjdGVyczpj
aGFyYWN0ZXJBc1N0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVyQXNT
dHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6Y2hhcmFjdGVyXV07CisgICAgW3NlbGYga2V5VXA6
W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTprZXlVcEV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Q
b2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5k
b3dOdW1iZXI6MCBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJh
Y3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5
Q29kZTpjaGFyYWN0ZXJdXTsKK30KKworLSAoTlNTdHJpbmcgKilzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OihOU1N0cmluZyAqKXNjcmlwdAoreworICAgIF9fYmxvY2sgYm9vbCBpc1dhaXRp
bmdGb3JKYXZhU2NyaXB0ID0gZmFsc2U7CisgICAgX19ibG9jayBOU1N0cmluZyAqZXZhbFJlc3Vs
dCA9IG5pbDsKKyAgICBbc2VsZiBldmFsdWF0ZUphdmFTY3JpcHQ6c2NyaXB0IGNvbXBsZXRpb25I
YW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikKKyAgICB7CisgICAgICAgIGV2YWxS
ZXN1bHQgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAIiwgcmVzdWx0XTsKKyAgICAg
ICAgaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCA9IHRydWU7CisgICAgICAgIEVYUEVDVF9UUlVFKCFl
cnJvcik7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzV2FpdGlu
Z0ZvckphdmFTY3JpcHQpOworICAgIHJldHVybiBldmFsUmVzdWx0OworfQorCistICh2b2lkKXdh
aXRGb3JNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UKK3sKKyAgICBfX2Jsb2NrIGJvb2wgaXNE
b25lV2FpdGluZyA9IGZhbHNlOworICAgIFtzZWxmIHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3Nh
Z2U6bWVzc2FnZSBhY3Rpb246XigpCisgICAgeworICAgICAgICBpc0RvbmVXYWl0aW5nID0gdHJ1
ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZVdhaXRpbmcp
OworfQorCistICh2b2lkKXBlcmZvcm1BZnRlckxvYWRpbmc6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0
aW9ucyB7CisgICAgVGVzdE1lc3NhZ2VIYW5kbGVyICpoYW5kbGVyID0gW1tUZXN0TWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRXaXRoTWVzc2FnZTpAImxvYWRlZCIgaGFuZGxlcjphY3Rpb25zXTsK
KyAgICBOU1N0cmluZyAqb25sb2FkU2NyaXB0ID0gQCJ3aW5kb3cub25sb2FkID0gKCkgPT4gd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMub25sb2FkSGFuZGxlci5wb3N0TWVzc2FnZSgnbG9h
ZGVkJykiOworICAgIFdLVXNlclNjcmlwdCAqc2NyaXB0ID0gW1tXS1VzZXJTY3JpcHQgYWxsb2Nd
IGluaXRXaXRoU291cmNlOm9ubG9hZFNjcmlwdCBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdElu
amVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOT107CisKKyAgICBX
S1VzZXJDb250ZW50Q29udHJvbGxlciogY29udGVudENvbnRyb2xsZXIgPSBbW3NlbGYgY29uZmln
dXJhdGlvbl0gdXNlckNvbnRlbnRDb250cm9sbGVyXTsKKyAgICBbY29udGVudENvbnRyb2xsZXIg
YWRkVXNlclNjcmlwdDpzY3JpcHRdOworICAgIFtjb250ZW50Q29udHJvbGxlciBhZGRTY3JpcHRN
ZXNzYWdlSGFuZGxlcjpoYW5kbGVyIG5hbWU6QCJvbmxvYWRIYW5kbGVyIl07Cit9CisKK0BlbmQK
KworI2VuZGlmIC8qIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykgKi8K
</data>

          </attachment>
      

    </bug>

</bugzilla>