<?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>234015</bug_id>
          
          <creation_ts>2021-12-08 10:12:38 -0800</creation_ts>
          <short_desc>Propagate app-initiated state to new ResourceRequests</short_desc>
          <delta_ts>2021-12-21 22:37:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>toyoshim</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821607</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-08 10:12:38 -0800</bug_when>
    <thetext>While reviewing logging we have found that some ResourceRequest objects are missing the correct state for app-initiated loads. Typically, these are cases where a new ResourceRequest is created from a URL string, losing the context that came with the original load (or the context of the page triggering the load).

This patch corrects a number of such cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821608</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-08 10:14:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/86128638&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821611</commentid>
    <comment_count>2</comment_count>
      <attachid>446382</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-08 10:17:39 -0800</bug_when>
    <thetext>Created attachment 446382
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821629</commentid>
    <comment_count>3</comment_count>
      <attachid>446382</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-12-08 10:48:35 -0800</bug_when>
    <thetext>Comment on attachment 446382
WIP Patch

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

Thanks for covering these cases. r=me with gtk/wpe/wincairo/win fixes.

&gt; Source/WebCore/Modules/websockets/WebSocketChannel.cpp:97
&gt; +    if (auto* documentLoader = m_document-&gt;loader())

Seems like you may need to #include DocumentLoader.h here for GTK and WPE.

&gt; Source/WebCore/loader/FrameLoader.cpp:3058
&gt; +    workingResourceRequest.setIsAppInitiated(inRequest.isAppInitiated());

We set this in updateRequestAndAddExtraFields which is called below, so no need to do it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821654</commentid>
    <comment_count>4</comment_count>
      <attachid>446382</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-08 11:17:29 -0800</bug_when>
    <thetext>Comment on attachment 446382
WIP Patch

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

&gt;&gt; Source/WebCore/Modules/websockets/WebSocketChannel.cpp:97
&gt;&gt; +    if (auto* documentLoader = m_document-&gt;loader())
&gt; 
&gt; Seems like you may need to #include DocumentLoader.h here for GTK and WPE.

Will do!

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:3058
&gt;&gt; +    workingResourceRequest.setIsAppInitiated(inRequest.isAppInitiated());
&gt; 
&gt; We set this in updateRequestAndAddExtraFields which is called below, so no need to do it here.

Ah! Good catch. Will remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821656</commentid>
    <comment_count>5</comment_count>
      <attachid>446391</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-08 11:18:19 -0800</bug_when>
    <thetext>Created attachment 446391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825829</commentid>
    <comment_count>6</comment_count>
      <attachid>447671</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-20 17:55:52 -0800</bug_when>
    <thetext>Created attachment 447671
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825830</commentid>
    <comment_count>7</comment_count>
      <attachid>447671</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-20 17:56:35 -0800</bug_when>
    <thetext>Comment on attachment 447671
WIP Patch

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

&gt; Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:239
&gt; +            WTFReportBacktraceWithPrefix(&quot;WebLoaderStrategy&quot;);

This debugging code should not be landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826040</commentid>
    <comment_count>8</comment_count>
      <attachid>447731</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-21 10:28:52 -0800</bug_when>
    <thetext>Created attachment 447731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826051</commentid>
    <comment_count>9</comment_count>
      <attachid>447731</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-12-21 10:45:01 -0800</bug_when>
    <thetext>Comment on attachment 447731
Patch

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

One thing to note is only the main frame&apos;s document loader holds the correct value, so there may be some places where we need to check that value instead of the current document&apos;s loader.

&gt; Source/WebCore/loader/FrameLoader.cpp:978
&gt; +        frameLoadRequest.resourceRequest().setIsAppInitiated(*appInitiated);

I think this one is unnecessary because loadURL() called below will call updateRequestAndAddExtraFields which will set the value.

&gt; Source/WebKit/NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:50
&gt; +    encoder &lt;&lt; m_isAppInitiated;

Good catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826058</commentid>
    <comment_count>10</comment_count>
      <attachid>447731</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-12-21 11:05:06 -0800</bug_when>
    <thetext>Comment on attachment 447731
Patch

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

&gt; Source/WebCore/loader/NavigationScheduler.cpp:198
&gt; +            resourceRequest.setIsAppInitiated(documentLoader-&gt;lastNavigationWasAppInitiated());

I think this will also always end up in a frame loader function that calls updateRequestAndAddExtraFields, so it is not needed.

&gt; Source/WebCore/loader/NavigationScheduler.cpp:232
&gt; +            resourceRequest.setIsAppInitiated(documentLoader-&gt;lastNavigationWasAppInitiated());

Ditto

&gt; Source/WebCore/loader/NavigationScheduler.cpp:261
&gt; +            resourceRequest.setIsAppInitiated(documentLoader-&gt;lastNavigationWasAppInitiated());

Ditto.

&gt; Source/WebCore/loader/NavigationScheduler.cpp:378
&gt; +            resourceRequest.setIsAppInitiated(documentLoader-&gt;lastNavigationWasAppInitiated());

Ditto.

&gt; Source/WebCore/loader/NavigationScheduler.cpp:482
&gt; +            resourceRequest.setIsAppInitiated(documentLoader-&gt;lastNavigationWasAppInitiated());

Ditto.

&gt; Source/WebCore/page/DOMWindow.cpp:2545
&gt; +            resourceRequest.setIsAppInitiated(documentLoader-&gt;lastNavigationWasAppInitiated());

Ditto here. changeLocation calls loadFrameRequest which calls loadURL or loadPostRequest which will both eventually call updateRequestAndAddExtraFields.

&gt; Source/WebCore/page/DragController.cpp:300
&gt; +        resourceRequest.setIsAppInitiated(documentLoader-&gt;lastNavigationWasAppInitiated());

Here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826084</commentid>
    <comment_count>11</comment_count>
      <attachid>447742</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-21 12:31:13 -0800</bug_when>
    <thetext>Created attachment 447742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826157</commentid>
    <comment_count>12</comment_count>
      <attachid>447763</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-12-21 16:22:58 -0800</bug_when>
    <thetext>Created attachment 447763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826222</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-21 22:37:27 -0800</bug_when>
    <thetext>Committed r287348 (245490@main): &lt;https://commits.webkit.org/245490@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447763.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446382</attachid>
            <date>2021-12-08 10:17:39 -0800</date>
            <delta_ts>2021-12-08 11:33:16 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>bug-234015-20211208101738.patch</filename>
            <type>text/plain</type>
            <size>16806</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJmOWEyYWYyZGExYjFh
NjY0YWE3YTRlODE3NDhjZTA1ZThiOTkwNy4uYjg4OTgzNjNiY2RlYjdjM2M4MGVlMzljZWI4YmZl
OTc1YzUzYTAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTEyLTA4ICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFByb3BhZ2F0ZSBhcHAt
aW5pdGlhdGVkIHN0YXRlIHRvIG5ldyBSZXNvdXJjZVJlcXVlc3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg2MTI4NjM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdoaWxlIHJldmlld2luZyBsb2dnaW5nIHdlIGhhdmUgZm91bmQgdGhhdCBzb21l
IFJlc291cmNlUmVxdWVzdCBvYmplY3RzCisgICAgICAgIGFyZSBtaXNzaW5nIHRoZSBjb3JyZWN0
IHN0YXRlIGZvciBhcHAtaW5pdGlhdGVkIGxvYWRzLiBUeXBpY2FsbHksIHRoZXNlCisgICAgICAg
IGFyZSBjYXNlcyB3aGVyZSBhIG5ldyBSZXNvdXJjZVJlcXVlc3QgaXMgY3JlYXRlZCBmcm9tIGEg
VVJMIHN0cmluZywgbG9zaW5nCisgICAgICAgIHRoZSBjb250ZXh0IHRoYXQgY2FtZSB3aXRoIHRo
ZSBvcmlnaW5hbCBsb2FkIChvciB0aGUgY29udGV4dCBvZiB0aGUgcGFnZQorICAgICAgICB0cmln
Z2VyaW5nIHRoZSBsb2FkKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgbnVtYmVy
IG9mIHN1Y2ggY2FzZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFj
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmVhY29uOjpzZW5kQmVhY29uKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlUmVxdWVzdCBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oOgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6d2lsbExvYWRNZWRpYUVsZW1lbnRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6bG9hZFBvc3RSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUxv
Y2F0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURy
YWdPcGVyYXRpb24pOgorCiAyMDIxLTEyLTA3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQ29jb2EgV2ViR0wgc2hvdWxkIHN1cHBvcnQgVUkgc2lkZSBj
b21wb3NpdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2
aWdhdG9yQmVhY29uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmVhY29uL05hdmlnYXRv
ckJlYWNvbi5jcHAKaW5kZXggNjlkZWM1Y2I2ZmJjNWJmOWQ4YjcxOGNjZTIxMDE3YTNkYmI3ZDk0
Zi4uMzhlZDQyYTIyYTg4MWViMjFlNzU2YTBmODI5ZjU1MTNjMDQyNDk3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24uY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIK
ICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKQEAgLTEyMiw2ICsxMjMsOCBAQCBFeGNlcHRpb25Pcjxi
b29sPiBOYXZpZ2F0b3JCZWFjb246OnNlbmRCZWFjb24oRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBTdHJpbmcmCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocGFyc2VkVXJsKTsKICAgICBy
ZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1QiX3MpOwogICAgIHJlcXVlc3Quc2V0UmVxdWVzdGVy
KFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpCZWFjb24pOworICAgIGlmIChhdXRvKiBkb2N1
bWVudExvYWRlciA9IGRvY3VtZW50LmxvYWRlcigpKQorICAgICAgICByZXF1ZXN0LnNldElzQXBw
SW5pdGlhdGVkKGRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgp
KTsKIAogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwogICAgIG9wdGlvbnMuY3Jl
ZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
CmluZGV4IDMzODVkMjc2NjQ1YjEyZGQ2NTQwNDYxYTZjNjdmMjg1MmI5NWRiNDQuLmJjMjVjMDA1
ZDk1ZGFiODljMTMwMGViYzNiYmU2MzcxOGY0OWUxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTkyLDcg
KzkyLDEyIEBAIFdlYlNvY2tldENoYW5uZWw6OkNvbm5lY3RTdGF0dXMgV2ViU29ja2V0Q2hhbm5l
bDo6Y29ubmVjdChjb25zdCBVUkwmIHJlcXVlc3RlZFVSCiAgICAgbV9hbGxvd0Nvb2tpZXMgPSB2
YWxpZGF0ZWRVUkwtPmFyZUNvb2tpZXNBbGxvd2VkOwogICAgIFN0cmluZyB1c2VyQWdlbnQgPSBt
X2RvY3VtZW50LT51c2VyQWdlbnQobV9kb2N1bWVudC0+dXJsKCkpOwogICAgIFN0cmluZyBjbGll
bnRPcmlnaW4gPSBtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCk7Ci0gICAg
bV9oYW5kc2hha2UgPSBtYWtlVW5pcXVlPFdlYlNvY2tldEhhbmRzaGFrZT4odmFsaWRhdGVkVVJM
LT51cmwsIHByb3RvY29sLCB1c2VyQWdlbnQsIGNsaWVudE9yaWdpbiwgbV9hbGxvd0Nvb2tpZXMp
OworCisgICAgYm9vbCBpc0FwcEluaXRpYXRlZCA9IHRydWU7CisgICAgaWYgKGF1dG8qIGRvY3Vt
ZW50TG9hZGVyID0gbV9kb2N1bWVudC0+bG9hZGVyKCkpCisgICAgICAgIGlzQXBwSW5pdGlhdGVk
ID0gZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCk7CisKKyAg
ICBtX2hhbmRzaGFrZSA9IG1ha2VVbmlxdWU8V2ViU29ja2V0SGFuZHNoYWtlPih2YWxpZGF0ZWRV
UkwtPnVybCwgcHJvdG9jb2wsIHVzZXJBZ2VudCwgY2xpZW50T3JpZ2luLCBtX2FsbG93Q29va2ll
cywgaXNBcHBJbml0aWF0ZWQpOwogICAgIG1faGFuZHNoYWtlLT5yZXNldCgpOwogICAgIG1faGFu
ZHNoYWtlLT5hZGRFeHRlbnNpb25Qcm9jZXNzb3IobV9kZWZsYXRlRnJhbWVyLmNyZWF0ZUV4dGVu
c2lvblByb2Nlc3NvcigpKTsKICAgICBpZiAobV9wcm9ncmVzc0lkZW50aWZpZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hh
a2UuY3BwCmluZGV4IGQ4MjgyMjQwYTJiYmNiOTJhMzc3MjE1MDcxNWM3NzRhMzFhZjQ0ZjguLmNj
ZTZhNDZlNjllYmFmOTdkNWMzYTAxNzUyZGQzNzFjZjg2YTU5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3Bw
CkBAIC0xMTIsNyArMTEyLDcgQEAgU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Z2V0RXhwZWN0
ZWRXZWJTb2NrZXRBY2NlcHQoY29uc3QgU3RyaW5nJiBzZWNXZWJTb2NrZXQKICAgICByZXR1cm4g
YmFzZTY0RW5jb2RlVG9TdHJpbmcoaGFzaC5kYXRhKCksIFNIQTE6Omhhc2hTaXplKTsKIH0KIAot
V2ViU29ja2V0SGFuZHNoYWtlOjpXZWJTb2NrZXRIYW5kc2hha2UoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgcHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJp
bmcmIGNsaWVudE9yaWdpbiwgYm9vbCBhbGxvd0Nvb2tpZXMpCitXZWJTb2NrZXRIYW5kc2hha2U6
OldlYlNvY2tldEhhbmRzaGFrZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2Nv
bCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgY2xpZW50T3JpZ2luLCBi
b29sIGFsbG93Q29va2llcywgYm9vbCBpc0FwcEluaXRpYXRlZCkKICAgICA6IG1fdXJsKHVybCkK
ICAgICAsIG1fY2xpZW50UHJvdG9jb2wocHJvdG9jb2wpCiAgICAgLCBtX3NlY3VyZShtX3VybC5w
cm90b2NvbElzKCJ3c3MiKSkKQEAgLTEyMCw2ICsxMjAsNyBAQCBXZWJTb2NrZXRIYW5kc2hha2U6
OldlYlNvY2tldEhhbmRzaGFrZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2Nv
bCwgYwogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50KQogICAgICwgbV9jbGllbnRPcmlnaW4o
Y2xpZW50T3JpZ2luKQogICAgICwgbV9hbGxvd0Nvb2tpZXMoYWxsb3dDb29raWVzKQorICAgICwg
bV9pc0FwcEluaXRpYXRlZChpc0FwcEluaXRpYXRlZCkKIHsKICAgICBtX3NlY1dlYlNvY2tldEtl
eSA9IGdlbmVyYXRlU2VjV2ViU29ja2V0S2V5KCk7CiAgICAgbV9leHBlY3RlZEFjY2VwdCA9IGdl
dEV4cGVjdGVkV2ViU29ja2V0QWNjZXB0KG1fc2VjV2ViU29ja2V0S2V5KTsKQEAgLTIxMiw2ICsy
MTMsNyBAQCBSZXNvdXJjZVJlcXVlc3QgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hh
a2VSZXF1ZXN0KGNvbnN0IEZ1bmN0aW9uPFN0cmluZwogICAgIGlmICghZXh0ZW5zaW9ucy5pc0Vt
cHR5KCkpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1l
OjpTZWNXZWJTb2NrZXRFeHRlbnNpb25zLCBleHRlbnNpb25zKTsKICAgICByZXF1ZXN0LnNldEhU
VFBVc2VyQWdlbnQobV91c2VyQWdlbnQpOworICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQo
bV9pc0FwcEluaXRpYXRlZCk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuaApp
bmRleCA1ZTY0YzE4MzRmNmU4MzYxNGQzMDFjNGZlZGQzOWQ4ODNjYWQ3YzEyLi42NzljODRmMDVk
ZWZjNWZiNTYwM2U3Mzc2MDc3OWYyNWVmNGMwOWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oCkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICBlbnVtIE1vZGUgewogICAgICAgICBJbmNvbXBsZXRlLCBOb3Jt
YWwsIEZhaWxlZCwgQ29ubmVjdGVkCiAgICAgfTsKLSAgICBXZWJTb2NrZXRIYW5kc2hha2UoY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IFN0cmluZyYgY2xpZW50T3JpZ2luLCBib29sIGFsbG93Q29va2llcyk7CisgICAgV2Vi
U29ja2V0SGFuZHNoYWtlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIGNsaWVudE9yaWdpbiwgYm9vbCBhbGxv
d0Nvb2tpZXMsIGJvb2wgaXNBcHBJbml0aWF0ZWQpOwogICAgIH5XZWJTb2NrZXRIYW5kc2hha2Uo
KTsKIAogICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3Q7CkBAIC0xMDIsNiArMTAyLDcgQEAgcHJp
dmF0ZToKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiAgICAgU3RyaW5nIG1fY2xpZW50T3JpZ2lu
OwogICAgIGJvb2wgbV9hbGxvd0Nvb2tpZXM7CisgICAgYm9vbCBtX2lzQXBwSW5pdGlhdGVkOwog
CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3NlcnZlckhhbmRzaGFrZVJlc3BvbnNlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA1NjYxMDgzODA1NjY0ZTAxMTlmMTFm
ZmMzMmVhN2UxOTI3ZmM2NTdiLi4zODQ0YTUyOGU1ZGEwMDc5MTg1YjVlZTA4MDBmNjcxMjM0MDQ3
MDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE2ODEsNyArMTY4
MSw5IEBAIGJvb2wgRnJhbWVMb2FkZXI6OndpbGxMb2FkTWVkaWFFbGVtZW50VVJMKFVSTCYgdXJs
LCBOb2RlJiBpbml0aWF0b3JOb2RlKQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJs
KTsKICAgICByZXF1ZXN0LnNldEluc3BlY3RvckluaXRpYXRvck5vZGVJZGVudGlmaWVyKEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6aWRlbnRpZmllckZvck5vZGUoaW5pdGlhdG9yTm9kZSkpOwot
CisgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpCisgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0
aWF0ZWQobV9kb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7
CisgICAgCiAgICAgUmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgUmVz
b3VyY2VFcnJvciBlcnJvcjsKICAgICByZXF1ZXN0RnJvbURlbGVnYXRlKHJlcXVlc3QsIGlkZW50
aWZpZXIsIGVycm9yKTsKQEAgLTIxMjgsNiArMjEzMCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNv
bW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgICAgICAgICBSZXNvdXJjZUVycm9yIGVycm9yOwog
ICAgICAgICAgICAgUmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgICAg
ICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChyZXNwb25zZS51cmwoKSk7CisgICAgICAgICAg
ICBpZiAobV9kb2N1bWVudExvYWRlcikKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldElzQXBw
SW5pdGlhdGVkKG1fZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVk
KCkpOwogICAgICAgICAgICAgcmVxdWVzdEZyb21EZWxlZ2F0ZShyZXF1ZXN0LCBpZGVudGlmaWVy
LCBlcnJvcik7CiAgICAgICAgICAgICAvLyBGSVhNRTogSWYgd2UgZ2V0IGEgcmVzb3VyY2Ugd2l0
aCBtb3JlIHRoYW4gMkIgYnl0ZXMsIHRoaXMgY29kZSB3b24ndCBkbyB0aGUgcmlnaHQgdGhpbmcu
CiAgICAgICAgICAgICAvLyBIb3dldmVyLCB3aXRoIHRvZGF5J3MgY29tcHV0ZXJzIGFuZCBuZXR3
b3JraW5nIHNwZWVkcywgdGhpcyB3b24ndCBoYXBwZW4gaW4gcHJhY3RpY2UuCkBAIC0zMDUwLDcg
KzMwNTQsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoRnJhbWVMb2FkUmVx
dWVzdCYmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmZQogICAgIGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUgPSBpblJlcXVlc3QuaHR0cENvbnRlbnRUeXBlKCk7CiAgICAgU3RyaW5nIG9yaWdp
biA9IGluUmVxdWVzdC5odHRwT3JpZ2luKCk7CiAKLSAgICBSZXNvdXJjZVJlcXVlc3Qgd29ya2lu
Z1Jlc291cmNlUmVxdWVzdCh1cmwpOyAgICAKKyAgICBSZXNvdXJjZVJlcXVlc3Qgd29ya2luZ1Jl
c291cmNlUmVxdWVzdCh1cmwpOworICAgIHdvcmtpbmdSZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJ
bml0aWF0ZWQoaW5SZXF1ZXN0LmlzQXBwSW5pdGlhdGVkKCkpOwogCiAgICAgaWYgKCFyZWZlcnJl
ci5pc0VtcHR5KCkpCiAgICAgICAgIHdvcmtpbmdSZXNvdXJjZVJlcXVlc3Quc2V0SFRUUFJlZmVy
cmVyKHJlZmVycmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0
aW9uU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1
bGVyLmNwcAppbmRleCA3NjRmODg2ODQ0N2I2ZTVhNjQ3ZDk5MDgxOWZjNGRlZDRmZDIxYzFjLi5j
Y2Q3Zjg3Y2FhYWZjYWMyNzZjNDZhMDA5YTlmZGUxMTY2MWRkYjhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCkBAIC0xOTQsNiArMTk0LDggQEAg
cHVibGljOgogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0IHsgdXJsKCks
IHJlZmVycmVyKCksIHJlZnJlc2ggPyBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVsb2Fk
SWdub3JpbmdDYWNoZURhdGEgOiBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6VXNlUHJvdG9j
b2xDYWNoZVBvbGljeSB9OwogICAgICAgICBpZiAoaW5pdGlhdGVkQnlNYWluRnJhbWUoKSA9PSBJ
bml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzKQogICAgICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNl
dFJlcXVlc3RlcihSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbik7CisgICAgICAgIGlm
IChhdXRvKiBkb2N1bWVudExvYWRlciA9IGluaXRpYXRpbmdEb2N1bWVudCgpLmxvYWRlcigpKQor
ICAgICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKGRvY3VtZW50TG9h
ZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsKICAgICAgICAgRnJhbWVMb2Fk
UmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0RvY3VtZW50KCksICpzZWN1cml0
eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIHNlbGZUYXJnZXRGcmFtZU5hbWUo
KSwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9OwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNl
dExvY2tIaXN0b3J5KGxvY2tIaXN0b3J5KCkpOwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNl
dExvY2tCYWNrRm9yd2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKQEAgLTIyNiw2ICsy
MjgsOCBAQCBwdWJsaWM6CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRp
Y2F0b3IgeyB1c2VyR2VzdHVyZVRvRm9yd2FyZCgpIH07CiAKICAgICAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlc291cmNlUmVxdWVzdCB7IHVybCgpLCByZWZlcnJlcigpLCBSZXNvdXJjZVJlcXVlc3RD
YWNoZVBvbGljeTo6VXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9OworICAgICAgICBpZiAoYXV0byog
ZG9jdW1lbnRMb2FkZXIgPSBpbml0aWF0aW5nRG9jdW1lbnQoKS5sb2FkZXIoKSkKKyAgICAgICAg
ICAgIHJlc291cmNlUmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChkb2N1bWVudExvYWRlci0+bGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7CiAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVMb2FkUmVxdWVzdCB7IGluaXRpYXRpbmdEb2N1bWVudCgpLCAqc2VjdXJpdHlPcmlnaW4o
KSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBzZWxmVGFyZ2V0RnJhbWVOYW1lKCksIGluaXRp
YXRlZEJ5TWFpbkZyYW1lKCkgfTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrSGlz
dG9yeShsb2NrSGlzdG9yeSgpKTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrQmFj
a0ZvcndhcmRMaXN0KGxvY2tCYWNrRm9yd2FyZExpc3QoKSk7CkBAIC0yNTMsNiArMjU3LDggQEAg
cHVibGljOgogICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yIHsg
dXNlckdlc3R1cmVUb0ZvcndhcmQoKSB9OwogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNv
dXJjZVJlcXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xp
Y3k6OlJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhIH07CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVu
dExvYWRlciA9IGluaXRpYXRpbmdEb2N1bWVudCgpLmxvYWRlcigpKQorICAgICAgICAgICAgcmVz
b3VyY2VSZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKGRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdh
dGlvbldhc0FwcEluaXRpYXRlZCgpKTsKICAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxv
YWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0RvY3VtZW50KCksICpzZWN1cml0eU9yaWdpbigpLCBXVEZN
b3ZlKHJlc291cmNlUmVxdWVzdCksIHNlbGZUYXJnZXRGcmFtZU5hbWUoKSwgaW5pdGlhdGVkQnlN
YWluRnJhbWUoKSB9OwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGxv
Y2tIaXN0b3J5KCkpOwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tCYWNrRm9yd2Fy
ZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKQEAgLTM2OCw2ICszNzQsOCBAQCBwdWJsaWM6
CiAgICAgICAgIFN1YnN0aXR1dGVEYXRhIHJlcGxhY2VtZW50RGF0YSB7IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKCksIG1fb3JpZ2luRG9jdW1lbnQudXJsKCksIHJlcGxhY2VtZW50UmVzcG9uc2UsIFN1
YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6OkhpZGRlbiB9OwogCiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyBtX29yaWdpbkRvY3VtZW50LnVy
bCgpLCBlbXB0eVN0cmluZygpLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVsb2FkSWdu
b3JpbmdDYWNoZURhdGEgfTsKKyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gbV9v
cmlnaW5Eb2N1bWVudC5sb2FkZXIoKSkKKyAgICAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRJ
c0FwcEluaXRpYXRlZChkb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0
ZWQoKSk7CiAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IG1fb3Jp
Z2luRG9jdW1lbnQsIG1fb3JpZ2luRG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShy
ZXNvdXJjZVJlcXVlc3QpLCB7IH0sIGluaXRpYXRlZEJ5TWFpbkZyYW1lKCkgfTsKICAgICAgICAg
ZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrSGlzdG9yeShsb2NrSGlzdG9yeSgpKTsKICAgICAgICAg
ZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrQmFja0ZvcndhcmRMaXN0KGxvY2tCYWNrRm9yd2FyZExp
c3QoKSk7CkBAIC00NzAsNyArNDc4LDkgQEAgdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hl
ZHVsZUxvY2F0aW9uQ2hhbmdlKERvY3VtZW50JiBpbml0aWF0aW5nRG9jdW1lbnQsIFMKICAgICAg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IG1fZnJhbWUuZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwodXJsLnN0cmluZygpKSwgcmVmZXJyZXIsIFJlc291cmNlUmVxdWVzdENhY2hl
UG9saWN5OjpVc2VQcm90b2NvbENhY2hlUG9saWN5IH07CiAgICAgICAgIGF1dG8qIGZyYW1lID0g
bGV4aWNhbEZyYW1lRnJvbUNvbW1vblZNKCk7CiAgICAgICAgIGF1dG8gaW5pdGlhdGVkQnlNYWlu
RnJhbWUgPSBmcmFtZSAmJiBmcmFtZS0+aXNNYWluRnJhbWUoKSA/IEluaXRpYXRlZEJ5TWFpbkZy
YW1lOjpZZXMgOiBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93bjsKLSAgICAgICAgCisgICAg
ICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IGluaXRpYXRpbmdEb2N1bWVudC5sb2FkZXIo
KSkKKyAgICAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChkb2N1bWVu
dExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7CisKICAgICAgICAgRnJh
bWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0RvY3VtZW50LCBzZWN1
cml0eU9yaWdpbiwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBzZWxmVGFyZ2V0RnJhbWVOYW1l
KCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lIH07CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0
TG9ja0hpc3RvcnkobG9ja0hpc3RvcnkpOwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExv
Y2tCYWNrRm9yd2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKaW5kZXggYWM3OGE0NTRmZjM5ZTZjZWRhMmJlOTVmYmM1Y2I4MmNiNWJmODAzNC4u
NmY0ZTUzOGYwZTk3YTkzNjYxNjdlZjAwYjkwYzBlMDFlMjkyMTBkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CkBAIC0yNTE0LDYgKzI1MTQsOCBAQCBFeGNlcHRpb25PcjxSZWZQdHI8RnJh
bWU+PiBET01XaW5kb3c6OmNyZWF0ZVdpbmRvdyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29u
cwogICAgIGF1dG8gaW5pdGlhdGVkQnlNYWluRnJhbWUgPSBhY3RpdmVGcmFtZS0+aXNNYWluRnJh
bWUoKSA/IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpZZXMgOiBJbml0aWF0ZWRCeU1haW5GcmFtZTo6
VW5rbm93bjsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyBjb21wbGV0
ZWRVUkwsIHJlZmVycmVyIH07CisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gYWN0aXZl
RG9jdW1lbnQtPmxvYWRlcigpKQorICAgICAgICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJbml0
aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwog
ICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICphY3RpdmVEb2N1bWVudCwg
YWN0aXZlRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0
KSwgZnJhbWVOYW1lLCBpbml0aWF0ZWRCeU1haW5GcmFtZSB9OwogICAgIGZyYW1lTG9hZFJlcXVl
c3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShhY3RpdmVEb2N1bWVudC0+c2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkpOwogCkBAIC0yNTM5LDggKzI1NDEs
MTAgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPEZyYW1lPj4gRE9NV2luZG93OjpjcmVhdGVXaW5kb3co
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnMKIAogICAgIGlmIChjcmVhdGVkKSB7CiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyBjb21wbGV0ZWRVUkwsIHJlZmVy
cmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6VXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9
OworICAgICAgICBpZiAoYXV0byogZG9jdW1lbnRMb2FkZXIgPSBhY3RpdmVEb2N1bWVudC0+bG9h
ZGVyKCkpCisgICAgICAgICAgICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9j
dW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogICAgICAgICBG
cmFtZUxvYWRlcjo6YWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQocmVzb3VyY2VSZXF1
ZXN0LCBvcGVuZXJGcmFtZS5kb2N1bWVudCgpKTsKLSAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBm
cmFtZUxvYWRSZXF1ZXN0IHsgKmFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLCBhY3RpdmVXaW5kb3cu
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBz
ZWxmVGFyZ2V0RnJhbWVOYW1lKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lIH07CisgICAgICAgIEZy
YW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICphY3RpdmVEb2N1bWVudCwgYWN0aXZl
RG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgc2Vs
ZlRhcmdldEZyYW1lTmFtZSgpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSB9OwogICAgICAgICBmcmFt
ZUxvYWRSZXF1ZXN0LnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koYWN0aXZlRG9jdW1l
bnQtPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsKICAgICAgICAg
bmV3RnJhbWUtPmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVz
dCkpOwogICAgIH0gZWxzZSBpZiAoIXVybFN0cmluZy5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMTM5OTU2ODkzMTlkOTQwYmEzYmY5ZDRiNDI4
ZDI3MmE2YTM1YTQwMi4uNGQ5YWQzYTM1ODBlNmE0ZWZlYzIzNGY3MzIxMGM2ZDU5ZjAyZWU2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw2ICszOCw3IEBA
CiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNp
bmNsdWRlICJEcmFnQWN0aW9ucy5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnQuaCIKICNpbmNsdWRl
ICJEcmFnRGF0YS5oIgpAQCAtMjk0LDYgKzI5NSw5IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnBl
cmZvcm1EcmFnT3BlcmF0aW9uKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgY2xpZW50KCkud2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rp
b24oRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uOjpMb2FkLCBkcmFnRGF0YSk7CisgICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IHVybFN0cmluZyB9OworICAgIGlmIChhdXRvKiBkb2N1
bWVudExvYWRlciA9IG1fcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigp
KQorICAgICAgICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2Fk
ZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogICAgIEZyYW1lTG9hZFJlcXVl
c3QgZnJhbWVMb2FkUmVxdWVzdCB7IG1fcGFnZS5tYWluRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0
IHsgdXJsU3RyaW5nIH0gfTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3koc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgZnJhbWVM
b2FkUmVxdWVzdC5zZXRJc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5wdXQoKTsK
</data>
<flag name="commit-queue"
          id="471792"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446391</attachid>
            <date>2021-12-08 11:18:19 -0800</date>
            <delta_ts>2021-12-20 17:55:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234015-20211208111818.patch</filename>
            <type>text/plain</type>
            <size>18280</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJmOWEyYWYyZGExYjFh
NjY0YWE3YTRlODE3NDhjZTA1ZThiOTkwNy4uYjg4OTgzNjNiY2RlYjdjM2M4MGVlMzljZWI4YmZl
OTc1YzUzYTAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTEyLTA4ICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFByb3BhZ2F0ZSBhcHAt
aW5pdGlhdGVkIHN0YXRlIHRvIG5ldyBSZXNvdXJjZVJlcXVlc3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg2MTI4NjM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdoaWxlIHJldmlld2luZyBsb2dnaW5nIHdlIGhhdmUgZm91bmQgdGhhdCBzb21l
IFJlc291cmNlUmVxdWVzdCBvYmplY3RzCisgICAgICAgIGFyZSBtaXNzaW5nIHRoZSBjb3JyZWN0
IHN0YXRlIGZvciBhcHAtaW5pdGlhdGVkIGxvYWRzLiBUeXBpY2FsbHksIHRoZXNlCisgICAgICAg
IGFyZSBjYXNlcyB3aGVyZSBhIG5ldyBSZXNvdXJjZVJlcXVlc3QgaXMgY3JlYXRlZCBmcm9tIGEg
VVJMIHN0cmluZywgbG9zaW5nCisgICAgICAgIHRoZSBjb250ZXh0IHRoYXQgY2FtZSB3aXRoIHRo
ZSBvcmlnaW5hbCBsb2FkIChvciB0aGUgY29udGV4dCBvZiB0aGUgcGFnZQorICAgICAgICB0cmln
Z2VyaW5nIHRoZSBsb2FkKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgbnVtYmVy
IG9mIHN1Y2ggY2FzZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFj
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmVhY29uOjpzZW5kQmVhY29uKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlUmVxdWVzdCBjb25zdCk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oOgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6d2lsbExvYWRNZWRpYUVsZW1lbnRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6bG9hZFBvc3RSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUxv
Y2F0aW9uQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURy
YWdPcGVyYXRpb24pOgorCiAyMDIxLTEyLTA3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQ29jb2EgV2ViR0wgc2hvdWxkIHN1cHBvcnQgVUkgc2lkZSBj
b21wb3NpdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2
aWdhdG9yQmVhY29uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmVhY29uL05hdmlnYXRv
ckJlYWNvbi5jcHAKaW5kZXggNjlkZWM1Y2I2ZmJjNWJmOWQ4YjcxOGNjZTIxMDE3YTNkYmI3ZDk0
Zi4uMzhlZDQyYTIyYTg4MWViMjFlNzU2YTBmODI5ZjU1MTNjMDQyNDk3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24uY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIK
ICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKQEAgLTEyMiw2ICsxMjMsOCBAQCBFeGNlcHRpb25Pcjxi
b29sPiBOYXZpZ2F0b3JCZWFjb246OnNlbmRCZWFjb24oRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBTdHJpbmcmCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocGFyc2VkVXJsKTsKICAgICBy
ZXF1ZXN0LnNldEhUVFBNZXRob2QoIlBPU1QiX3MpOwogICAgIHJlcXVlc3Quc2V0UmVxdWVzdGVy
KFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpCZWFjb24pOworICAgIGlmIChhdXRvKiBkb2N1
bWVudExvYWRlciA9IGRvY3VtZW50LmxvYWRlcigpKQorICAgICAgICByZXF1ZXN0LnNldElzQXBw
SW5pdGlhdGVkKGRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgp
KTsKIAogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwogICAgIG9wdGlvbnMuY3Jl
ZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
CmluZGV4IDMzODVkMjc2NjQ1YjEyZGQ2NTQwNDYxYTZjNjdmMjg1MmI5NWRiNDQuLjJmN2I4MzM3
YjA0YjZmOWUwYzgxMjQ4NTMwMjA4YjUyNDdiZmE0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEdvb2dsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKQEAgLTkyLDcgKzkzLDEyIEBAIFdlYlNvY2tldENoYW5uZWw6OkNv
bm5lY3RTdGF0dXMgV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwmIHJlcXVlc3Rl
ZFVSCiAgICAgbV9hbGxvd0Nvb2tpZXMgPSB2YWxpZGF0ZWRVUkwtPmFyZUNvb2tpZXNBbGxvd2Vk
OwogICAgIFN0cmluZyB1c2VyQWdlbnQgPSBtX2RvY3VtZW50LT51c2VyQWdlbnQobV9kb2N1bWVu
dC0+dXJsKCkpOwogICAgIFN0cmluZyBjbGllbnRPcmlnaW4gPSBtX2RvY3VtZW50LT5zZWN1cml0
eU9yaWdpbigpLnRvU3RyaW5nKCk7Ci0gICAgbV9oYW5kc2hha2UgPSBtYWtlVW5pcXVlPFdlYlNv
Y2tldEhhbmRzaGFrZT4odmFsaWRhdGVkVVJMLT51cmwsIHByb3RvY29sLCB1c2VyQWdlbnQsIGNs
aWVudE9yaWdpbiwgbV9hbGxvd0Nvb2tpZXMpOworCisgICAgYm9vbCBpc0FwcEluaXRpYXRlZCA9
IHRydWU7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gbV9kb2N1bWVudC0+bG9hZGVy
KCkpCisgICAgICAgIGlzQXBwSW5pdGlhdGVkID0gZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0
aW9uV2FzQXBwSW5pdGlhdGVkKCk7CisKKyAgICBtX2hhbmRzaGFrZSA9IG1ha2VVbmlxdWU8V2Vi
U29ja2V0SGFuZHNoYWtlPih2YWxpZGF0ZWRVUkwtPnVybCwgcHJvdG9jb2wsIHVzZXJBZ2VudCwg
Y2xpZW50T3JpZ2luLCBtX2FsbG93Q29va2llcywgaXNBcHBJbml0aWF0ZWQpOwogICAgIG1faGFu
ZHNoYWtlLT5yZXNldCgpOwogICAgIG1faGFuZHNoYWtlLT5hZGRFeHRlbnNpb25Qcm9jZXNzb3Io
bV9kZWZsYXRlRnJhbWVyLmNyZWF0ZUV4dGVuc2lvblByb2Nlc3NvcigpKTsKICAgICBpZiAobV9w
cm9ncmVzc0lkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4IGQ4MjgyMjQwYTJiYmNiOTJh
Mzc3MjE1MDcxNWM3NzRhMzFhZjQ0ZjguLmM0NTM4Yjk4ZDBiYjkyZWE5ZDYxZDI5YjdmMDk1MTcw
ODY3ZGZmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xMTIsNyArMTEy
LDcgQEAgU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6Z2V0RXhwZWN0ZWRXZWJTb2NrZXRBY2Nl
cHQoY29uc3QgU3RyaW5nJiBzZWNXZWJTb2NrZXQKICAgICByZXR1cm4gYmFzZTY0RW5jb2RlVG9T
dHJpbmcoaGFzaC5kYXRhKCksIFNIQTE6Omhhc2hTaXplKTsKIH0KIAotV2ViU29ja2V0SGFuZHNo
YWtlOjpXZWJTb2NrZXRIYW5kc2hha2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJv
dG9jb2wsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIGNsaWVudE9yaWdp
biwgYm9vbCBhbGxvd0Nvb2tpZXMpCitXZWJTb2NrZXRIYW5kc2hha2U6OldlYlNvY2tldEhhbmRz
aGFrZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgY2xpZW50T3JpZ2luLCBib29sIGFsbG93Q29va2ll
cywgYm9vbCBpc0FwcEluaXRpYXRlZCkKICAgICA6IG1fdXJsKHVybCkKICAgICAsIG1fY2xpZW50
UHJvdG9jb2wocHJvdG9jb2wpCiAgICAgLCBtX3NlY3VyZShtX3VybC5wcm90b2NvbElzKCJ3c3Mi
KSkKQEAgLTEyMCw2ICsxMjAsNyBAQCBXZWJTb2NrZXRIYW5kc2hha2U6OldlYlNvY2tldEhhbmRz
aGFrZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgYwogICAgICwgbV91
c2VyQWdlbnQodXNlckFnZW50KQogICAgICwgbV9jbGllbnRPcmlnaW4oY2xpZW50T3JpZ2luKQog
ICAgICwgbV9hbGxvd0Nvb2tpZXMoYWxsb3dDb29raWVzKQorICAgICwgbV9pc0FwcEluaXRpYXRl
ZChpc0FwcEluaXRpYXRlZCkKIHsKICAgICBtX3NlY1dlYlNvY2tldEtleSA9IGdlbmVyYXRlU2Vj
V2ViU29ja2V0S2V5KCk7CiAgICAgbV9leHBlY3RlZEFjY2VwdCA9IGdldEV4cGVjdGVkV2ViU29j
a2V0QWNjZXB0KG1fc2VjV2ViU29ja2V0S2V5KTsKQEAgLTIxMiw2ICsyMTMsNyBAQCBSZXNvdXJj
ZVJlcXVlc3QgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VSZXF1ZXN0KGNvbnN0
IEZ1bmN0aW9uPFN0cmluZwogICAgIGlmICghZXh0ZW5zaW9ucy5pc0VtcHR5KCkpCiAgICAgICAg
IHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpTZWNXZWJTb2NrZXRF
eHRlbnNpb25zLCBleHRlbnNpb25zKTsKICAgICByZXF1ZXN0LnNldEhUVFBVc2VyQWdlbnQobV91
c2VyQWdlbnQpOworICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQobV9pc0FwcEluaXRpYXRl
ZCk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuaAppbmRleCA1ZTY0YzE4MzRm
NmU4MzYxNGQzMDFjNGZlZGQzOWQ4ODNjYWQ3YzEyLi4zODFmMTU5MDk2NThlY2MwNjg0NmEzZmJl
ODcwOGIwZDU0OTY2ZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00OCw3ICs0OSw3IEBAIHB1YmxpYzoKICAg
ICBlbnVtIE1vZGUgewogICAgICAgICBJbmNvbXBsZXRlLCBOb3JtYWwsIEZhaWxlZCwgQ29ubmVj
dGVkCiAgICAgfTsKLSAgICBXZWJTb2NrZXRIYW5kc2hha2UoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiBwcm90b2NvbCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgY2xp
ZW50T3JpZ2luLCBib29sIGFsbG93Q29va2llcyk7CisgICAgV2ViU29ja2V0SGFuZHNoYWtlKGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBjb25zdCBTdHJpbmcmIGNsaWVudE9yaWdpbiwgYm9vbCBhbGxvd0Nvb2tpZXMsIGJvb2wgaXNB
cHBJbml0aWF0ZWQpOwogICAgIH5XZWJTb2NrZXRIYW5kc2hha2UoKTsKIAogICAgIGNvbnN0IFVS
TCYgdXJsKCkgY29uc3Q7CkBAIC0xMDIsNiArMTAzLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcg
bV91c2VyQWdlbnQ7CiAgICAgU3RyaW5nIG1fY2xpZW50T3JpZ2luOwogICAgIGJvb2wgbV9hbGxv
d0Nvb2tpZXM7CisgICAgYm9vbCBtX2lzQXBwSW5pdGlhdGVkOwogCiAgICAgUmVzb3VyY2VSZXNw
b25zZSBtX3NlcnZlckhhbmRzaGFrZVJlc3BvbnNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAppbmRleCA1NjYxMDgzODA1NjY0ZTAxMTlmMTFmZmMzMmVhN2UxOTI3ZmM2NTdi
Li4wZjFmYzU0NmRmNDdkZjU3OGJjNjc5MDRhOTY0ZDA1MTIxNDM5NDMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KQEAgLTE2ODEsNyArMTY4MSw5
IEBAIGJvb2wgRnJhbWVMb2FkZXI6OndpbGxMb2FkTWVkaWFFbGVtZW50VVJMKFVSTCYgdXJsLCBO
b2RlJiBpbml0aWF0b3JOb2RlKQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsK
ICAgICByZXF1ZXN0LnNldEluc3BlY3RvckluaXRpYXRvck5vZGVJZGVudGlmaWVyKEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6aWRlbnRpZmllckZvck5vZGUoaW5pdGlhdG9yTm9kZSkpOwotCisg
ICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpCisgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0
ZWQobV9kb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7Cisg
ICAgCiAgICAgUmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgUmVzb3Vy
Y2VFcnJvciBlcnJvcjsKICAgICByZXF1ZXN0RnJvbURlbGVnYXRlKHJlcXVlc3QsIGlkZW50aWZp
ZXIsIGVycm9yKTsKQEAgLTIxMjgsNiArMjEzMCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1p
dFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgICAgICAgICBSZXNvdXJjZUVycm9yIGVycm9yOwogICAg
ICAgICAgICAgUmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgICAgICAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChyZXNwb25zZS51cmwoKSk7CisgICAgICAgICAgICBp
ZiAobV9kb2N1bWVudExvYWRlcikKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldElzQXBwSW5p
dGlhdGVkKG1fZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkp
OwogICAgICAgICAgICAgcmVxdWVzdEZyb21EZWxlZ2F0ZShyZXF1ZXN0LCBpZGVudGlmaWVyLCBl
cnJvcik7CiAgICAgICAgICAgICAvLyBGSVhNRTogSWYgd2UgZ2V0IGEgcmVzb3VyY2Ugd2l0aCBt
b3JlIHRoYW4gMkIgYnl0ZXMsIHRoaXMgY29kZSB3b24ndCBkbyB0aGUgcmlnaHQgdGhpbmcuCiAg
ICAgICAgICAgICAvLyBIb3dldmVyLCB3aXRoIHRvZGF5J3MgY29tcHV0ZXJzIGFuZCBuZXR3b3Jr
aW5nIHNwZWVkcywgdGhpcyB3b24ndCBoYXBwZW4gaW4gcHJhY3RpY2UuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKaW5kZXggNzY0Zjg4Njg0NDdiNmU1
YTY0N2Q5OTA4MTlmYzRkZWQ0ZmQyMWMxYy4uMWZlMGI5ODQ1MDFhZjcxMTAzMWY4NGE2YWUwNmEz
ZGMxNTVjZDE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25T
Y2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1
bGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
KGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAqIENvcHlyaWdodCAoQykgMjAwOSBBZGFt
IEJhcnRoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMTk0LDYgKzE5NCw4IEBAIHB1YmxpYzoK
ICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IHVybCgpLCByZWZlcnJl
cigpLCByZWZyZXNoID8gUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlbG9hZElnbm9yaW5n
Q2FjaGVEYXRhIDogUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlVzZVByb3RvY29sQ2FjaGVQ
b2xpY3kgfTsKICAgICAgICAgaWYgKGluaXRpYXRlZEJ5TWFpbkZyYW1lKCkgPT0gSW5pdGlhdGVk
QnlNYWluRnJhbWU6OlllcykKICAgICAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRSZXF1ZXN0
ZXIoUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4pOworICAgICAgICBpZiAoYXV0byog
ZG9jdW1lbnRMb2FkZXIgPSBpbml0aWF0aW5nRG9jdW1lbnQoKS5sb2FkZXIoKSkKKyAgICAgICAg
ICAgIHJlc291cmNlUmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChkb2N1bWVudExvYWRlci0+bGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7CiAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVMb2FkUmVxdWVzdCB7IGluaXRpYXRpbmdEb2N1bWVudCgpLCAqc2VjdXJpdHlPcmlnaW4o
KSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBzZWxmVGFyZ2V0RnJhbWVOYW1lKCksIGluaXRp
YXRlZEJ5TWFpbkZyYW1lKCkgfTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrSGlz
dG9yeShsb2NrSGlzdG9yeSgpKTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrQmFj
a0ZvcndhcmRMaXN0KGxvY2tCYWNrRm9yd2FyZExpc3QoKSk7CkBAIC0yMjYsNiArMjI4LDggQEAg
cHVibGljOgogICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yIHsg
dXNlckdlc3R1cmVUb0ZvcndhcmQoKSB9OwogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNv
dXJjZVJlcXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xp
Y3k6OlVzZVByb3RvY29sQ2FjaGVQb2xpY3kgfTsKKyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50
TG9hZGVyID0gaW5pdGlhdGluZ0RvY3VtZW50KCkubG9hZGVyKCkpCisgICAgICAgICAgICByZXNv
dXJjZVJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0
aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9h
ZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNlY3VyaXR5T3JpZ2luKCksIFdURk1v
dmUocmVzb3VyY2VSZXF1ZXN0KSwgc2VsZlRhcmdldEZyYW1lTmFtZSgpLCBpbml0aWF0ZWRCeU1h
aW5GcmFtZSgpIH07CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0hpc3RvcnkobG9j
a0hpc3RvcnkoKSk7CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0JhY2tGb3J3YXJk
TGlzdChsb2NrQmFja0ZvcndhcmRMaXN0KCkpOwpAQCAtMjUzLDYgKzI1Nyw4IEBAIHB1YmxpYzoK
ICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvciB7IHVzZXJHZXN0
dXJlVG9Gb3J3YXJkKCkgfTsKIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1
ZXN0IHsgdXJsKCksIHJlZmVycmVyKCksIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5OjpSZWxv
YWRJZ25vcmluZ0NhY2hlRGF0YSB9OworICAgICAgICBpZiAoYXV0byogZG9jdW1lbnRMb2FkZXIg
PSBpbml0aWF0aW5nRG9jdW1lbnQoKS5sb2FkZXIoKSkKKyAgICAgICAgICAgIHJlc291cmNlUmVx
dWVzdC5zZXRJc0FwcEluaXRpYXRlZChkb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQoKSk7CiAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVz
dCB7IGluaXRpYXRpbmdEb2N1bWVudCgpLCAqc2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShyZXNv
dXJjZVJlcXVlc3QpLCBzZWxmVGFyZ2V0RnJhbWVOYW1lKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1l
KCkgfTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrSGlzdG9yeShsb2NrSGlzdG9y
eSgpKTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrQmFja0ZvcndhcmRMaXN0KGxv
Y2tCYWNrRm9yd2FyZExpc3QoKSk7CkBAIC0zNjgsNiArMzc0LDggQEAgcHVibGljOgogICAgICAg
ICBTdWJzdGl0dXRlRGF0YSByZXBsYWNlbWVudERhdGEgeyBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgp
LCBtX29yaWdpbkRvY3VtZW50LnVybCgpLCByZXBsYWNlbWVudFJlc3BvbnNlLCBTdWJzdGl0dXRl
RGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5OjpIaWRkZW4gfTsKIAogICAgICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0IHsgbV9vcmlnaW5Eb2N1bWVudC51cmwoKSwgZW1w
dHlTdHJpbmcoKSwgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlbG9hZElnbm9yaW5nQ2Fj
aGVEYXRhIH07CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IG1fb3JpZ2luRG9j
dW1lbnQubG9hZGVyKCkpCisgICAgICAgICAgICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJbml0
aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwog
ICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBtX29yaWdpbkRvY3Vt
ZW50LCBtX29yaWdpbkRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VS
ZXF1ZXN0KSwgeyB9LCBpbml0aWF0ZWRCeU1haW5GcmFtZSgpIH07CiAgICAgICAgIGZyYW1lTG9h
ZFJlcXVlc3Quc2V0TG9ja0hpc3RvcnkobG9ja0hpc3RvcnkoKSk7CiAgICAgICAgIGZyYW1lTG9h
ZFJlcXVlc3Quc2V0TG9ja0JhY2tGb3J3YXJkTGlzdChsb2NrQmFja0ZvcndhcmRMaXN0KCkpOwpA
QCAtNDcwLDcgKzQ3OCw5IEBAIHZvaWQgTmF2aWdhdGlvblNjaGVkdWxlcjo6c2NoZWR1bGVMb2Nh
dGlvbkNoYW5nZShEb2N1bWVudCYgaW5pdGlhdGluZ0RvY3VtZW50LCBTCiAgICAgICAgIFJlc291
cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyBtX2ZyYW1lLmRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKHVybC5zdHJpbmcoKSksIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6
VXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9OwogICAgICAgICBhdXRvKiBmcmFtZSA9IGxleGljYWxG
cmFtZUZyb21Db21tb25WTSgpOwogICAgICAgICBhdXRvIGluaXRpYXRlZEJ5TWFpbkZyYW1lID0g
ZnJhbWUgJiYgZnJhbWUtPmlzTWFpbkZyYW1lKCkgPyBJbml0aWF0ZWRCeU1haW5GcmFtZTo6WWVz
IDogSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd247Ci0gICAgICAgIAorICAgICAgICBpZiAo
YXV0byogZG9jdW1lbnRMb2FkZXIgPSBpbml0aWF0aW5nRG9jdW1lbnQubG9hZGVyKCkpCisgICAg
ICAgICAgICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXIt
Pmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOworCiAgICAgICAgIEZyYW1lTG9hZFJl
cXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IGluaXRpYXRpbmdEb2N1bWVudCwgc2VjdXJpdHlPcmln
aW4sIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgc2VsZlRhcmdldEZyYW1lTmFtZSgpLCBpbml0
aWF0ZWRCeU1haW5GcmFtZSB9OwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tIaXN0
b3J5KGxvY2tIaXN0b3J5KTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrQmFja0Zv
cndhcmRMaXN0KGxvY2tCYWNrRm9yd2FyZExpc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CmluZGV4IGFjNzhhNDU0ZmYzOWU2Y2VkYTJiZTk1ZmJjNWNiODJjYjViZjgwMzQuLjZmNGU1Mzhm
MGU5N2E5MzY2MTY3ZWYwMGI5MGMwZTAxZTI5MjEwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dApAQCAtMjUxNCw2ICsyNTE0LDggQEAgRXhjZXB0aW9uT3I8UmVmUHRyPEZyYW1lPj4gRE9N
V2luZG93OjpjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnMKICAgICBh
dXRvIGluaXRpYXRlZEJ5TWFpbkZyYW1lID0gYWN0aXZlRnJhbWUtPmlzTWFpbkZyYW1lKCkgPyBJ
bml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzIDogSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd247
CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0IHsgY29tcGxldGVkVVJMLCBy
ZWZlcnJlciB9OworICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IGFjdGl2ZURvY3VtZW50
LT5sb2FkZXIoKSkKKyAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKGRv
Y3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsKICAgICBGcmFt
ZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqYWN0aXZlRG9jdW1lbnQsIGFjdGl2ZURv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIGZyYW1l
TmFtZSwgaW5pdGlhdGVkQnlNYWluRnJhbWUgfTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koYWN0aXZlRG9jdW1lbnQtPnNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsKIApAQCAtMjUzOSw4ICsyNTQxLDEwIEBAIEV4
Y2VwdGlvbk9yPFJlZlB0cjxGcmFtZT4+IERPTVdpbmRvdzo6Y3JlYXRlV2luZG93KGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nLCBjb25zCiAKICAgICBpZiAoY3JlYXRlZCkgewogICAgICAgICBSZXNv
dXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0IHsgY29tcGxldGVkVVJMLCByZWZlcnJlciwgUmVz
b3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlVzZVByb3RvY29sQ2FjaGVQb2xpY3kgfTsKKyAgICAg
ICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gYWN0aXZlRG9jdW1lbnQtPmxvYWRlcigpKQor
ICAgICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKGRvY3VtZW50TG9h
ZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsKICAgICAgICAgRnJhbWVMb2Fk
ZXI6OmFkZFNhbWVTaXRlSW5mb1RvUmVxdWVzdElmTmVlZGVkKHJlc291cmNlUmVxdWVzdCwgb3Bl
bmVyRnJhbWUuZG9jdW1lbnQoKSk7Ci0gICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2Fk
UmVxdWVzdCB7ICphY3RpdmVXaW5kb3cuZG9jdW1lbnQoKSwgYWN0aXZlV2luZG93LmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgc2VsZlRhcmdl
dEZyYW1lTmFtZSgpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSB9OworICAgICAgICBGcmFtZUxvYWRS
ZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqYWN0aXZlRG9jdW1lbnQsIGFjdGl2ZURvY3VtZW50
LT5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIHNlbGZUYXJnZXRG
cmFtZU5hbWUoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUgfTsKICAgICAgICAgZnJhbWVMb2FkUmVx
dWVzdC5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KGFjdGl2ZURvY3VtZW50LT5zaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSk7CiAgICAgICAgIG5ld0ZyYW1l
LT5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpKTsKICAg
ICB9IGVsc2UgaWYgKCF1cmxTdHJpbmcuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCmluZGV4IDEzOTk1Njg5MzE5ZDk0MGJhM2JmOWQ0YjQyOGQyNzJhNmEz
NWE0MDIuLjRkOWFkM2EzNTgwZTZhNGVmZWMyMzRmNzMyMTBjNmQ1OWYwMmVlNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1
ZGUgIkRhdGFUcmFuc2Zlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAi
RHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50LmgiCiAjaW5jbHVkZSAiRHJhZ0Rh
dGEuaCIKQEAgLTI5NCw2ICsyOTUsOSBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJh
Z09wZXJhdGlvbihjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGNsaWVudCgpLndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdE
ZXN0aW5hdGlvbkFjdGlvbjo6TG9hZCwgZHJhZ0RhdGEpOworICAgIFJlc291cmNlUmVxdWVzdCBy
ZXNvdXJjZVJlcXVlc3QgeyB1cmxTdHJpbmcgfTsKKyAgICBpZiAoYXV0byogZG9jdW1lbnRMb2Fk
ZXIgPSBtX3BhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSkKKyAgICAg
ICAgcmVzb3VyY2VSZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKGRvY3VtZW50TG9hZGVyLT5sYXN0
TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsKICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1l
TG9hZFJlcXVlc3QgeyBtX3BhZ2UubWFpbkZyYW1lKCksIFJlc291cmNlUmVxdWVzdCB7IHVybFN0
cmluZyB9IH07CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogICAgIGZyYW1lTG9hZFJlcXVl
c3Quc2V0SXNSZXF1ZXN0RnJvbUNsaWVudE9yVXNlcklucHV0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447671</attachid>
            <date>2021-12-20 17:55:52 -0800</date>
            <delta_ts>2021-12-21 10:28:49 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>bug-234015-20211220175551.patch</filename>
            <type>text/plain</type>
            <size>34435</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdjZTRmOGE1ZTljMzFk
OWE4MjIwMzg2NzdjMDZhMGQxOTM5ZjVlMC4uNTUxMDc4NzJjMzY4MzA3YTgwY2Q3OGFkNTI2YzU3
MDM2NDNkNzM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTEyLTIwICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFByb3BhZ2F0ZSBhcHAt
aW5pdGlhdGVkIHN0YXRlIHRvIG5ldyBSZXNvdXJjZVJlcXVlc3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg2MTI4NjM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdoaWxlIHJldmlld2luZyBsb2dnaW5nIHdlIGhhdmUgZm91bmQgdGhhdCBzb21l
IFJlc291cmNlUmVxdWVzdCBvYmplY3RzCisgICAgICAgIGFyZSBtaXNzaW5nIHRoZSBjb3JyZWN0
IHN0YXRlIGZvciBhcHAtaW5pdGlhdGVkIGxvYWRzLiBUeXBpY2FsbHksIHRoZXNlCisgICAgICAg
IGFyZSBjYXNlcyB3aGVyZSBhIG5ldyBSZXNvdXJjZVJlcXVlc3QgaXMgY3JlYXRlZCBmcm9tIGEg
VVJMIHN0cmluZywgbG9zaW5nCisgICAgICAgIHRoZSBjb250ZXh0IHRoYXQgY2FtZSB3aXRoIHRo
ZSBvcmlnaW5hbCBsb2FkIChvciB0aGUgY29udGV4dCBvZiB0aGUgcGFnZQorICAgICAgICB0cmln
Z2VyaW5nIHRoZSBsb2FkKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgbnVtYmVy
IG9mIHN1Y2ggY2FzZXMuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNhcHBpbml0aWF0ZWQuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJl
YWNvbi1pc25vdGFwcGluaXRpYXRlZC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2JlYWNvbi9O
YXZpZ2F0b3JCZWFjb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmVhY29uOjpz
ZW5kQmVhY29uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlUmVxdWVz
dCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFr
ZS5oOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlUG90ZW50aWFsQWNjZXNzQ29udHJvbFJlcXVlc3QpOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZFVSTEludG9DaGlsZEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjp3aWxsTG9hZE1lZGlhRWxlbWVudFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKToK
KyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUpOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y3JlYXRlV2lu
ZG93KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbik6CisKIDIwMjEtMTItMTcg
IEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gVXNl
IHRoZSBpbmxpbmUgYm94J3MgZGlyZWN0aW9uIHRvIGRlY2lkZSBpZiBzdGFydC9lbmQgZGVjb3Jh
dGlvbnMgc2hvdWxkIGJlIGFwcGxpZWQgb24gZmlyc3QvbGFzdCBib3gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2Q3
NTk1ZjY5MGZlZmFiNDNiYzQwMzFlZTBjOGMxNTZjN2RkZjkwNy4uMGVhYTViODY1ZDRjNTdlZTA1
NTdkZjU2NTNkNGFlMmIwZjFjYmI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0x
Mi0yMCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9w
YWdhdGUgYXBwLWluaXRpYXRlZCBzdGF0ZSB0byBuZXcgUmVzb3VyY2VSZXF1ZXN0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MDE1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84NjEyODYzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGlsZSByZXZpZXdpbmcgbG9nZ2luZyB3ZSBoYXZlIGZvdW5k
IHRoYXQgc29tZSBSZXNvdXJjZVJlcXVlc3Qgb2JqZWN0cworICAgICAgICBhcmUgbWlzc2luZyB0
aGUgY29ycmVjdCBzdGF0ZSBmb3IgYXBwLWluaXRpYXRlZCBsb2Fkcy4gVHlwaWNhbGx5LCB0aGVz
ZQorICAgICAgICBhcmUgY2FzZXMgd2hlcmUgYSBuZXcgUmVzb3VyY2VSZXF1ZXN0IGlzIGNyZWF0
ZWQgZnJvbSBhIFVSTCBzdHJpbmcsIGxvc2luZworICAgICAgICB0aGUgY29udGV4dCB0aGF0IGNh
bWUgd2l0aCB0aGUgb3JpZ2luYWwgbG9hZCAob3IgdGhlIGNvbnRleHQgb2YgdGhlIHBhZ2UKKyAg
ICAgICAgdHJpZ2dlcmluZyB0aGUgbG9hZCkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjb3JyZWN0
cyBhIG51bWJlciBvZiBzdWNoIGNhc2VzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OlN1YnJlc291cmNlSW5mbzo6ZW5jb2RlIGNvbnN0KTogQ29ycmVjdCBtaXNz
aW5nIHNlcmlhbGl6YXRpb24gZm9yCisgICAgICAgIGFwcC1pbml0aWF0ZWQgc3RhdGUuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3VicmVzb3VyY2VJbmZvOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN1YnJlc291cmNlSW5mbzo6U3VicmVzb3VyY2VJ
bmZvKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKToKKwog
MjAyMS0xMi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSBBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFnZUdyb3VwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcAppbmRl
eCA2OWRlYzVjYjZmYmM1YmY5ZDhiNzE4Y2NlMjEwMTdhM2RiYjdkOTRmLi4zOGVkNDJhMjJhODgx
ZWIyMWU3NTZhMGY4MjlmNTUxM2MwNDI0OTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYmVhY29uL05hdmlnYXRvckJlYWNvbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkNhY2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk5hdmln
YXRvci5oIgpAQCAtMTIyLDYgKzEyMyw4IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IE5hdmlnYXRvckJl
YWNvbjo6c2VuZEJlYWNvbihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYKICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChwYXJzZWRVcmwpOwogICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZCgiUE9TVCJfcyk7CiAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0ZXIoUmVzb3VyY2VSZXF1ZXN0
OjpSZXF1ZXN0ZXI6OkJlYWNvbik7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZG9j
dW1lbnQubG9hZGVyKCkpCisgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1l
bnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogCiAgICAgUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zIG9wdGlvbnM7CiAgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggMzM4NWQyNzY2
NDViMTJkZDY1NDA0NjFhNmM2N2YyODUyYjk1ZGI0NC4uMmY3YjgzMzdiMDRiNmY5ZTBjODEyNDg1
MzAyMDhiNTI0N2JmYTQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgpAQCAtOTIsNyArOTMsMTIgQEAgV2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0YXR1cyBXZWJT
b2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTCYgcmVxdWVzdGVkVVIKICAgICBtX2FsbG93
Q29va2llcyA9IHZhbGlkYXRlZFVSTC0+YXJlQ29va2llc0FsbG93ZWQ7CiAgICAgU3RyaW5nIHVz
ZXJBZ2VudCA9IG1fZG9jdW1lbnQtPnVzZXJBZ2VudChtX2RvY3VtZW50LT51cmwoKSk7CiAgICAg
U3RyaW5nIGNsaWVudE9yaWdpbiA9IG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkudG9TdHJp
bmcoKTsKLSAgICBtX2hhbmRzaGFrZSA9IG1ha2VVbmlxdWU8V2ViU29ja2V0SGFuZHNoYWtlPih2
YWxpZGF0ZWRVUkwtPnVybCwgcHJvdG9jb2wsIHVzZXJBZ2VudCwgY2xpZW50T3JpZ2luLCBtX2Fs
bG93Q29va2llcyk7CisKKyAgICBib29sIGlzQXBwSW5pdGlhdGVkID0gdHJ1ZTsKKyAgICBpZiAo
YXV0byogZG9jdW1lbnRMb2FkZXIgPSBtX2RvY3VtZW50LT5sb2FkZXIoKSkKKyAgICAgICAgaXNB
cHBJbml0aWF0ZWQgPSBkb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0
ZWQoKTsKKworICAgIG1faGFuZHNoYWtlID0gbWFrZVVuaXF1ZTxXZWJTb2NrZXRIYW5kc2hha2U+
KHZhbGlkYXRlZFVSTC0+dXJsLCBwcm90b2NvbCwgdXNlckFnZW50LCBjbGllbnRPcmlnaW4sIG1f
YWxsb3dDb29raWVzLCBpc0FwcEluaXRpYXRlZCk7CiAgICAgbV9oYW5kc2hha2UtPnJlc2V0KCk7
CiAgICAgbV9oYW5kc2hha2UtPmFkZEV4dGVuc2lvblByb2Nlc3NvcihtX2RlZmxhdGVGcmFtZXIu
Y3JlYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKCkpOwogICAgIGlmIChtX3Byb2dyZXNzSWRlbnRpZmll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRIYW5kc2hha2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldEhhbmRzaGFrZS5jcHAKaW5kZXggZDgyODIyNDBhMmJiY2I5MmEzNzcyMTUwNzE1Yzc3NGEz
MWFmNDRmOC4uYzQ1MzhiOThkMGJiOTJlYTlkNjFkMjliN2YwOTUxNzA4NjdkZmY1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFr
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhh
bmRzaGFrZS5jcHAKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTExMiw3ICsxMTIsNyBAQCBTdHJpbmcgV2Vi
U29ja2V0SGFuZHNoYWtlOjpnZXRFeHBlY3RlZFdlYlNvY2tldEFjY2VwdChjb25zdCBTdHJpbmcm
IHNlY1dlYlNvY2tldAogICAgIHJldHVybiBiYXNlNjRFbmNvZGVUb1N0cmluZyhoYXNoLmRhdGEo
KSwgU0hBMTo6aGFzaFNpemUpOwogfQogCi1XZWJTb2NrZXRIYW5kc2hha2U6OldlYlNvY2tldEhh
bmRzaGFrZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgY2xpZW50T3JpZ2luLCBib29sIGFsbG93Q29v
a2llcykKK1dlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgU3RyaW5nJiBjbGllbnRPcmlnaW4sIGJvb2wgYWxsb3dDb29raWVzLCBib29sIGlzQXBwSW5p
dGlhdGVkKQogICAgIDogbV91cmwodXJsKQogICAgICwgbV9jbGllbnRQcm90b2NvbChwcm90b2Nv
bCkKICAgICAsIG1fc2VjdXJlKG1fdXJsLnByb3RvY29sSXMoIndzcyIpKQpAQCAtMTIwLDYgKzEy
MCw3IEBAIFdlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjCiAgICAgLCBtX3VzZXJBZ2VudCh1c2VyQWdl
bnQpCiAgICAgLCBtX2NsaWVudE9yaWdpbihjbGllbnRPcmlnaW4pCiAgICAgLCBtX2FsbG93Q29v
a2llcyhhbGxvd0Nvb2tpZXMpCisgICAgLCBtX2lzQXBwSW5pdGlhdGVkKGlzQXBwSW5pdGlhdGVk
KQogewogICAgIG1fc2VjV2ViU29ja2V0S2V5ID0gZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkoKTsK
ICAgICBtX2V4cGVjdGVkQWNjZXB0ID0gZ2V0RXhwZWN0ZWRXZWJTb2NrZXRBY2NlcHQobV9zZWNX
ZWJTb2NrZXRLZXkpOwpAQCAtMjEyLDYgKzIxMyw3IEBAIFJlc291cmNlUmVxdWVzdCBXZWJTb2Nr
ZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZVJlcXVlc3QoY29uc3QgRnVuY3Rpb248U3RyaW5n
CiAgICAgaWYgKCFleHRlbnNpb25zLmlzRW1wdHkoKSkKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlNlY1dlYlNvY2tldEV4dGVuc2lvbnMsIGV4dGVu
c2lvbnMpOwogICAgIHJlcXVlc3Quc2V0SFRUUFVzZXJBZ2VudChtX3VzZXJBZ2VudCk7CisgICAg
cmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChtX2lzQXBwSW5pdGlhdGVkKTsKICAgICByZXR1cm4g
cmVxdWVzdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oCmluZGV4IDVlNjRjMTgzNGY2ZTgzNjE0ZDMwMWM0ZmVk
ZDM5ZDg4M2NhZDdjMTIuLjM4MWYxNTkwOTY1OGVjYzA2ODQ2YTNmYmU4NzA4YjBkNTQ5NjZlZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRI
YW5kc2hha2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0SGFuZHNoYWtlLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTQ4LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIGVudW0gTW9kZSB7CiAg
ICAgICAgIEluY29tcGxldGUsIE5vcm1hbCwgRmFpbGVkLCBDb25uZWN0ZWQKICAgICB9OwotICAg
IFdlYlNvY2tldEhhbmRzaGFrZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBjbGllbnRPcmlnaW4sIGJvb2wg
YWxsb3dDb29raWVzKTsKKyAgICBXZWJTb2NrZXRIYW5kc2hha2UoY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBwcm90b2NvbCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYg
Y2xpZW50T3JpZ2luLCBib29sIGFsbG93Q29va2llcywgYm9vbCBpc0FwcEluaXRpYXRlZCk7CiAg
ICAgfldlYlNvY2tldEhhbmRzaGFrZSgpOwogCiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdDsK
QEAgLTEwMiw2ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKICAg
ICBTdHJpbmcgbV9jbGllbnRPcmlnaW47CiAgICAgYm9vbCBtX2FsbG93Q29va2llczsKKyAgICBi
b29sIG1faXNBcHBJbml0aWF0ZWQ7CiAKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fc2VydmVySGFu
ZHNoYWtlUmVzcG9uc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9z
c09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5jcHAKaW5kZXggODc5NmZkZDNlNTcyZTAwNGFlNzBiY2NhYjY5YTM5
ZTVhZTJkNGY0Yi4uNThhMTU5NGM2NzBmYTUzZWU5MDY0NzRmMmQ2MTAyMDRlMjJiYzE5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5j
cHAKQEAgLTEzOSw2ICsxMzksOSBAQCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY3JlYXRlUG90ZW50
aWFsQWNjZXNzQ29udHJvbFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdQogICAgICAgICB9
CiAgICAgfQogCisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZG9jdW1lbnQubG9hZGVy
KCkpCisgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXIoKS0+
bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7CisKICAgICBpZiAoY3Jvc3NPcmlnaW5B
dHRyaWJ1dGUuaXNOdWxsKCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGNhY2hl
ZFJlcXVlc3QgeyBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpIH07CiAgICAgICAg
IGNhY2hlZFJlcXVlc3Quc2V0T3JpZ2luKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggNmM1ZWUzYTliMzFhZThiODRkYjky
MGI2NmViZjIxNGYyNmVjOWFkNi4uYTEwZDgzMjc5YzRiMTVhYjQzYTkwMTZmZTA2NjI3OTQ1MjMy
M2Y0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3Jj
aCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmls
ZS5jb20vKQogICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+
CkBAIC05NDIsNyArOTQyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tDYWxsSW1wbGljaXRD
bG9zZSgpCiAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5pbXBsaWNpdENsb3NlKCk7CiB9CiAKLXZv
aWQgRnJhbWVMb2FkZXI6OmxvYWRVUkxJbnRvQ2hpbGRGcmFtZShjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiByZWZlcmVyLCBGcmFtZSogY2hpbGRGcmFtZSkKK3ZvaWQgRnJhbWVMb2FkZXI6
OmxvYWRVUkxJbnRvQ2hpbGRGcmFtZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZl
cmVyLCBGcmFtZSogY2hpbGRGcmFtZSwgc3RkOjpvcHRpb25hbDxib29sPiYmIGFwcEluaXRpYXRl
ZCkKIHsKICAgICBGUkFNRUxPQURFUl9SRUxFQVNFX0xPRyhSZXNvdXJjZUxvYWRpbmcsICJsb2Fk
VVJMSW50b0NoaWxkRnJhbWU6IGZyYW1lIGxvYWQgc3RhcnRlZCIpOwogCkBAIC05NzQsNiArOTc0
LDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTEludG9DaGlsZEZyYW1lKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHJlZmVyZXIsIEYKICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1l
TG9hZFJlcXVlc3QgeyAqbV9mcmFtZS5kb2N1bWVudCgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCksIHsgdXJsIH0sIHNlbGZUYXJnZXRGcmFtZU5hbWUoKSwgaW5pdGlhdGVk
QnlNYWluRnJhbWUgfTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldE5ld0ZyYW1lT3BlbmVyUG9s
aWN5KE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcyk7CiAgICAgZnJhbWVMb2FkUmVxdWVz
dC5zZXRMb2NrQmFja0ZvcndhcmRMaXN0KExvY2tCYWNrRm9yd2FyZExpc3Q6Olllcyk7CisgICAg
aWYgKCEhYXBwSW5pdGlhdGVkKQorICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnJlc291cmNlUmVx
dWVzdCgpLnNldElzQXBwSW5pdGlhdGVkKCphcHBJbml0aWF0ZWQpOwogICAgIGNoaWxkRnJhbWUt
PmxvYWRlcigpLmxvYWRVUkwoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSwgcmVmZXJlciwgRnJh
bWVMb2FkVHlwZTo6UmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0LCBudWxscHRyLCB7
IH0sIHN0ZDo6bnVsbG9wdCwgW10geyB9KTsKIH0KIApAQCAtMTY4MSw3ICsxNjgzLDkgQEAgYm9v
bCBGcmFtZUxvYWRlcjo6d2lsbExvYWRNZWRpYUVsZW1lbnRVUkwoVVJMJiB1cmwsIE5vZGUmIGlu
aXRpYXRvck5vZGUpCiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwogICAgIHJl
cXVlc3Quc2V0SW5zcGVjdG9ySW5pdGlhdG9yTm9kZUlkZW50aWZpZXIoSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjppZGVudGlmaWVyRm9yTm9kZShpbml0aWF0b3JOb2RlKSk7Ci0KKyAgICBpZiAo
bV9kb2N1bWVudExvYWRlcikKKyAgICAgICAgcmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChtX2Rv
Y3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsKKyAgICAKICAg
ICBSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICBSZXNvdXJjZUVycm9y
IGVycm9yOwogICAgIHJlcXVlc3RGcm9tRGVsZWdhdGUocmVxdWVzdCwgaWRlbnRpZmllciwgZXJy
b3IpOwpAQCAtMjEyOCw2ICsyMTMyLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlz
aW9uYWxMb2FkKCkKICAgICAgICAgICAgIFJlc291cmNlRXJyb3IgZXJyb3I7CiAgICAgICAgICAg
ICBSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICAgICAgICAgIFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KHJlc3BvbnNlLnVybCgpKTsKKyAgICAgICAgICAgIGlmIChtX2Rv
Y3VtZW50TG9hZGVyKQorICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQo
bV9kb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7CiAgICAg
ICAgICAgICByZXF1ZXN0RnJvbURlbGVnYXRlKHJlcXVlc3QsIGlkZW50aWZpZXIsIGVycm9yKTsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBnZXQgYSByZXNvdXJjZSB3aXRoIG1vcmUgdGhh
biAyQiBieXRlcywgdGhpcyBjb2RlIHdvbid0IGRvIHRoZSByaWdodCB0aGluZy4KICAgICAgICAg
ICAgIC8vIEhvd2V2ZXIsIHdpdGggdG9kYXkncyBjb21wdXRlcnMgYW5kIG5ldHdvcmtpbmcgc3Bl
ZWRzLCB0aGlzIHdvbid0IGhhcHBlbiBpbiBwcmFjdGljZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKaW5kZXggNzVhZTI4NGMyYzM0ZmRkODllODU2NGRhNDM5ZGE3NzI1YWZiYzhlNi4u
ZjkwMjAzZGE5MDUyNTIxZWU3ZDA1ZGVkYjA2NzM3YjEzYWY2OGRlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTQxOSw3ICs0MTksNyBAQCBwcml2YXRlOgogICAgIEhpc3Rv
cnlJdGVtKiByZXF1ZXN0ZWRIaXN0b3J5SXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVk
SGlzdG9yeUl0ZW0uZ2V0KCk7IH0KIAogICAgIC8vIFN1YmZyYW1lTG9hZGVyIHNwZWNpZmljLgot
ICAgIHZvaWQgbG9hZFVSTEludG9DaGlsZEZyYW1lKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
cmVmZXJlciwgRnJhbWUqKTsKKyAgICB2b2lkIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZShjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIHJlZmVyZXIsIEZyYW1lKiwgc3RkOjpvcHRpb25hbDxib29sPiYm
IGFwcEluaXRpYXRlZCk7CiAgICAgdm9pZCBzdGFydGVkKCk7CiAKICAgICAvLyBQb2xpY3lDaGVj
a2VyIHNwZWNpZmljLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVs
ZXIuY3BwCmluZGV4IDc2NGY4ODY4NDQ3YjZlNWE2NDdkOTkwODE5ZmM0ZGVkNGZkMjFjMWMuLjFm
ZTBiOTg0NTAxYWY3MTEwMzFmODRhNmFlMDZhM2RjMTU1Y2QxOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmls
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8p
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQWRhbSBCYXJ0aC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
QEAgLTE5NCw2ICsxOTQsOCBAQCBwdWJsaWM6CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNv
dXJjZVJlcXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwgcmVmcmVzaCA/IFJlc291cmNlUmVxdWVz
dENhY2hlUG9saWN5OjpSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSA6IFJlc291cmNlUmVxdWVzdENh
Y2hlUG9saWN5OjpVc2VQcm90b2NvbENhY2hlUG9saWN5IH07CiAgICAgICAgIGlmIChpbml0aWF0
ZWRCeU1haW5GcmFtZSgpID09IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpZZXMpCiAgICAgICAgICAg
ICByZXNvdXJjZVJlcXVlc3Quc2V0UmVxdWVzdGVyKFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVy
OjpNYWluKTsKKyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gaW5pdGlhdGluZ0Rv
Y3VtZW50KCkubG9hZGVyKCkpCisgICAgICAgICAgICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJ
bml0aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkp
OwogICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5n
RG9jdW1lbnQoKSwgKnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwg
c2VsZlRhcmdldEZyYW1lTmFtZSgpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSgpIH07CiAgICAgICAg
IGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0hpc3RvcnkobG9ja0hpc3RvcnkoKSk7CiAgICAgICAg
IGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0JhY2tGb3J3YXJkTGlzdChsb2NrQmFja0ZvcndhcmRM
aXN0KCkpOwpAQCAtMjI2LDYgKzIyOCw4IEBAIHB1YmxpYzoKICAgICAgICAgVXNlckdlc3R1cmVJ
bmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvciB7IHVzZXJHZXN0dXJlVG9Gb3J3YXJkKCkgfTsKIAog
ICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0IHsgdXJsKCksIHJlZmVycmVy
KCksIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5OjpVc2VQcm90b2NvbENhY2hlUG9saWN5IH07
CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IGluaXRpYXRpbmdEb2N1bWVudCgp
LmxvYWRlcigpKQorICAgICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVk
KGRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsKICAgICAg
ICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0RvY3VtZW50
KCksICpzZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIHNlbGZUYXJn
ZXRGcmFtZU5hbWUoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9OwogICAgICAgICBmcmFtZUxv
YWRSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGxvY2tIaXN0b3J5KCkpOwogICAgICAgICBmcmFtZUxv
YWRSZXF1ZXN0LnNldExvY2tCYWNrRm9yd2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsK
QEAgLTI1Myw2ICsyNTcsOCBAQCBwdWJsaWM6CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9y
IGdlc3R1cmVJbmRpY2F0b3IgeyB1c2VyR2VzdHVyZVRvRm9yd2FyZCgpIH07CiAKICAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IHVybCgpLCByZWZlcnJlcigpLCBSZXNv
dXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVsb2FkSWdub3JpbmdDYWNoZURhdGEgfTsKKyAgICAg
ICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gaW5pdGlhdGluZ0RvY3VtZW50KCkubG9hZGVy
KCkpCisgICAgICAgICAgICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1l
bnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogICAgICAgICBGcmFt
ZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNl
Y3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgc2VsZlRhcmdldEZyYW1l
TmFtZSgpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSgpIH07CiAgICAgICAgIGZyYW1lTG9hZFJlcXVl
c3Quc2V0TG9ja0hpc3RvcnkobG9ja0hpc3RvcnkoKSk7CiAgICAgICAgIGZyYW1lTG9hZFJlcXVl
c3Quc2V0TG9ja0JhY2tGb3J3YXJkTGlzdChsb2NrQmFja0ZvcndhcmRMaXN0KCkpOwpAQCAtMzY4
LDYgKzM3NCw4IEBAIHB1YmxpYzoKICAgICAgICAgU3Vic3RpdHV0ZURhdGEgcmVwbGFjZW1lbnRE
YXRhIHsgU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSwgbV9vcmlnaW5Eb2N1bWVudC51cmwoKSwgcmVw
bGFjZW1lbnRSZXNwb25zZSwgU3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0
eTo6SGlkZGVuIH07CiAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7
IG1fb3JpZ2luRG9jdW1lbnQudXJsKCksIGVtcHR5U3RyaW5nKCksIFJlc291cmNlUmVxdWVzdENh
Y2hlUG9saWN5OjpSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSB9OworICAgICAgICBpZiAoYXV0byog
ZG9jdW1lbnRMb2FkZXIgPSBtX29yaWdpbkRvY3VtZW50LmxvYWRlcigpKQorICAgICAgICAgICAg
cmVzb3VyY2VSZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKGRvY3VtZW50TG9hZGVyLT5sYXN0TmF2
aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsKICAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFt
ZUxvYWRSZXF1ZXN0IHsgbV9vcmlnaW5Eb2N1bWVudCwgbV9vcmlnaW5Eb2N1bWVudC5zZWN1cml0
eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIHsgfSwgaW5pdGlhdGVkQnlNYWlu
RnJhbWUoKSB9OwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGxvY2tI
aXN0b3J5KCkpOwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tCYWNrRm9yd2FyZExp
c3QobG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKQEAgLTQ3MCw3ICs0NzgsOSBAQCB2b2lkIE5hdmln
YXRpb25TY2hlZHVsZXI6OnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoRG9jdW1lbnQmIGluaXRpYXRp
bmdEb2N1bWVudCwgUwogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0IHsg
bV9mcmFtZS5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwuc3RyaW5nKCkpLCByZWZlcnJlciwg
UmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlVzZVByb3RvY29sQ2FjaGVQb2xpY3kgfTsKICAg
ICAgICAgYXV0byogZnJhbWUgPSBsZXhpY2FsRnJhbWVGcm9tQ29tbW9uVk0oKTsKICAgICAgICAg
YXV0byBpbml0aWF0ZWRCeU1haW5GcmFtZSA9IGZyYW1lICYmIGZyYW1lLT5pc01haW5GcmFtZSgp
ID8gSW5pdGlhdGVkQnlNYWluRnJhbWU6OlllcyA6IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtu
b3duOwotICAgICAgICAKKyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gaW5pdGlh
dGluZ0RvY3VtZW50LmxvYWRlcigpKQorICAgICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldElz
QXBwSW5pdGlhdGVkKGRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRl
ZCgpKTsKKwogICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0
aWF0aW5nRG9jdW1lbnQsIHNlY3VyaXR5T3JpZ2luLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCks
IHNlbGZUYXJnZXRGcmFtZU5hbWUoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUgfTsKICAgICAgICAg
ZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrSGlzdG9yeShsb2NrSGlzdG9yeSk7CiAgICAgICAgIGZy
YW1lTG9hZFJlcXVlc3Quc2V0TG9ja0JhY2tGb3J3YXJkTGlzdChsb2NrQmFja0ZvcndhcmRMaXN0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IDgyOTAxOGM1
Yzk4MTAwMTQ3MDY0ZmVkNmMxZTRkOWZlZjI5ODFhZWMuLjc5NGNkOTMxOTI5MjhmOTY3ODBhMzhi
ZjY3MDQ5MDkyMDFiMTZjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJm
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVy
LmNwcApAQCAtMjk3LDcgKzI5NywxMSBAQCBSZWZQdHI8RnJhbWU+IEZyYW1lTG9hZGVyOjpTdWJm
cmFtZUxvYWRlcjo6bG9hZFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgbwogICAgICAg
ICBwb2xpY3kgPSBkb2N1bWVudC0+cmVmZXJyZXJQb2xpY3koKTsKICAgICBTdHJpbmcgcmVmZXJy
ZXJUb1VzZSA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVyKHBvbGljeSwg
dXJsLCByZWZlcnJlcik7CiAKLSAgICBtX2ZyYW1lLmxvYWRlcigpLmxvYWRVUkxJbnRvQ2hpbGRG
cmFtZSh1cmwsIHJlZmVycmVyVG9Vc2UsIGZyYW1lLmdldCgpKTsKKyAgICBzdGQ6Om9wdGlvbmFs
PGJvb2w+IGFwcEluaXRpYXRlZDsKKyAgICBpZiAoYXV0byogZG9jdW1lbnRMb2FkZXIgPSBkb2N1
bWVudC5sb2FkZXIoKSkKKyAgICAgICAgYXBwSW5pdGlhdGVkID0gZG9jdW1lbnRMb2FkZXIubGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKTsKKworICAgIG1fZnJhbWUubG9hZGVyKCkubG9h
ZFVSTEludG9DaGlsZEZyYW1lKHVybCwgcmVmZXJyZXJUb1VzZSwgZnJhbWUuZ2V0KCksIFdURk1v
dmUoYXBwSW5pdGlhdGVkKSk7CiAKICAgICBkb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVs
YXlDb3VudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZGVmYzVkNDllMTM5
NjAxNTVhZGRiMjExMzM2YWRlZTc3M2RkODRhZi4uNGE3NmM1ODhhNTQ5ZGYzYmZhNmViNTRiMjE1
MjhlM2RjNjU2ZmViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNTE0LDYgKzI1
MTQsOCBAQCBFeGNlcHRpb25PcjxSZWZQdHI8RnJhbWU+PiBET01XaW5kb3c6OmNyZWF0ZVdpbmRv
dyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29ucwogICAgIGF1dG8gaW5pdGlhdGVkQnlNYWlu
RnJhbWUgPSBhY3RpdmVGcmFtZS0+aXNNYWluRnJhbWUoKSA/IEluaXRpYXRlZEJ5TWFpbkZyYW1l
OjpZZXMgOiBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93bjsKIAogICAgIFJlc291cmNlUmVx
dWVzdCByZXNvdXJjZVJlcXVlc3QgeyBjb21wbGV0ZWRVUkwsIHJlZmVycmVyIH07CisgICAgaWYg
KGF1dG8qIGRvY3VtZW50TG9hZGVyID0gYWN0aXZlRG9jdW1lbnQtPmxvYWRlcigpKQorICAgICAg
ICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3RO
YXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVM
b2FkUmVxdWVzdCB7ICphY3RpdmVEb2N1bWVudCwgYWN0aXZlRG9jdW1lbnQtPnNlY3VyaXR5T3Jp
Z2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgZnJhbWVOYW1lLCBpbml0aWF0ZWRCeU1h
aW5GcmFtZSB9OwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeShhY3RpdmVEb2N1bWVudC0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJv
cGFnYXRlKCkpOwogCkBAIC0yNTM5LDggKzI1NDEsMTAgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPEZy
YW1lPj4gRE9NV2luZG93OjpjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNv
bnMKIAogICAgIGlmIChjcmVhdGVkKSB7CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJj
ZVJlcXVlc3QgeyBjb21wbGV0ZWRVUkwsIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBv
bGljeTo6VXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9OworICAgICAgICBpZiAoYXV0byogZG9jdW1l
bnRMb2FkZXIgPSBhY3RpdmVEb2N1bWVudC0+bG9hZGVyKCkpCisgICAgICAgICAgICByZXNvdXJj
ZVJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9u
V2FzQXBwSW5pdGlhdGVkKCkpOwogICAgICAgICBGcmFtZUxvYWRlcjo6YWRkU2FtZVNpdGVJbmZv
VG9SZXF1ZXN0SWZOZWVkZWQocmVzb3VyY2VSZXF1ZXN0LCBvcGVuZXJGcmFtZS5kb2N1bWVudCgp
KTsKLSAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKmFjdGl2ZVdp
bmRvdy5kb2N1bWVudCgpLCBhY3RpdmVXaW5kb3cuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBzZWxmVGFyZ2V0RnJhbWVOYW1lKCksIGluaXRp
YXRlZEJ5TWFpbkZyYW1lIH07CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVx
dWVzdCB7ICphY3RpdmVEb2N1bWVudCwgYWN0aXZlRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCks
IFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgc2VsZlRhcmdldEZyYW1lTmFtZSgpLCBpbml0aWF0
ZWRCeU1haW5GcmFtZSB9OwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3koYWN0aXZlRG9jdW1lbnQtPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3lUb1Byb3BhZ2F0ZSgpKTsKICAgICAgICAgbmV3RnJhbWUtPmxvYWRlcigpLmNoYW5nZUxv
Y2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOwogICAgIH0gZWxzZSBpZiAoIXVybFN0
cmluZy5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5k
ZXggMTM5OTU2ODkzMTlkOTQwYmEzYmY5ZDRiNDI4ZDI3MmE2YTM1YTQwMi4uNGQ5YWQzYTM1ODBl
NmE0ZWZlYzIzNGY3MzIxMGM2ZDU5ZjAyZWU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgogI2lu
Y2x1ZGUgIkRyYWdDbGllbnQuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgpAQCAtMjk0LDYgKzI5
NSw5IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKGNvbnN0IERy
YWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY2xpZW50KCku
d2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24oRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uOjpM
b2FkLCBkcmFnRGF0YSk7CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IHVy
bFN0cmluZyB9OworICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IG1fcGFnZS5tYWluRnJh
bWUoKS5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQorICAgICAgICByZXNvdXJjZVJlcXVlc3Qu
c2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkKCkpOwogICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IG1fcGFn
ZS5tYWluRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0IHsgdXJsU3RyaW5nIH0gfTsKICAgICBmcmFt
ZUxvYWRSZXF1ZXN0LnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRJc1JlcXVlc3RGcm9t
Q2xpZW50T3JVc2VySW5wdXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5j
cHAKaW5kZXggYzgzM2U0YTkxYjQ4ZGU4YjUwNTUwZThhOTYyZmY5YmRjOGQ3MGRlOC4uMzEyM2Q5
MTllOWNjMzkxNmE2YmZhYmJmNTIzNGY2ZjkzNTAyODkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dWJyZXNvdXJjZXNFbnRyeS5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAgdm9pZCBTdWJyZXNvdXJjZUlu
Zm86OmVuY29kZShXVEY6OlBlcnNpc3RlbmNlOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
ICAgICByZXR1cm47CiAKICAgICBlbmNvZGVyIDw8IG1faXNTYW1lU2l0ZTsKKyAgICBlbmNvZGVy
IDw8IG1faXNBcHBJbml0aWF0ZWQ7CiAgICAgZW5jb2RlciA8PCBtX2ZpcnN0UGFydHlGb3JDb29r
aWVzOwogICAgIGVuY29kZXIgPDwgbV9yZXF1ZXN0SGVhZGVyczsKICAgICBlbmNvZGVyIDw8IG1f
cHJpb3JpdHk7CkBAIC04OSw2ICs5MCwxMiBAQCBzdGQ6Om9wdGlvbmFsPFN1YnJlc291cmNlSW5m
bz4gU3VicmVzb3VyY2VJbmZvOjpkZWNvZGUoV1RGOjpQZXJzaXN0ZW5jZTo6RGVjb2RlcgogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIGluZm8ubV9pc1NhbWVTaXRlID0gV1RGTW92
ZSgqaXNTYW1lU2l0ZSk7CiAKKyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlzQXBwSW5pdGlhdGVk
OworICAgIGRlY29kZXIgPj4gaXNBcHBJbml0aWF0ZWQ7CisgICAgaWYgKCFpc0FwcEluaXRpYXRl
ZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpbmZvLm1faXNBcHBJbml0aWF0
ZWQgPSBXVEZNb3ZlKCppc0FwcEluaXRpYXRlZCk7CisKICAgICBzdGQ6Om9wdGlvbmFsPFVSTD4g
Zmlyc3RQYXJ0eUZvckNvb2tpZXM7CiAgICAgZGVjb2RlciA+PiBmaXJzdFBhcnR5Rm9yQ29va2ll
czsKICAgICBpZiAoIWZpcnN0UGFydHlGb3JDb29raWVzKQpAQCAtMTU4LDYgKzE2NSw3IEBAIFN1
YnJlc291cmNlSW5mbzo6U3VicmVzb3VyY2VJbmZvKGNvbnN0IEtleSYga2V5LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmCiAgICAgLCBtX2ZpcnN0U2VlbihwcmV2aW91c0luZm8gPyBw
cmV2aW91c0luZm8tPmZpcnN0U2VlbigpIDogbV9sYXN0U2VlbikKICAgICAsIG1faXNUcmFuc2ll
bnQoIXByZXZpb3VzSW5mbykKICAgICAsIG1faXNTYW1lU2l0ZShyZXF1ZXN0LmlzU2FtZVNpdGUo
KSkKKyAgICAsIG1faXNBcHBJbml0aWF0ZWQocmVxdWVzdC5pc0FwcEluaXRpYXRlZCgpKQogICAg
ICwgbV9maXJzdFBhcnR5Rm9yQ29va2llcyhyZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkp
CiAgICAgLCBtX3JlcXVlc3RIZWFkZXJzKHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpKQogICAg
ICwgbV9wcmlvcml0eShyZXF1ZXN0LnByaW9yaXR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggYzNkZjE1
M2UwZTZhMjdmYjY3MDQxNzAwM2EzNGQzMGI4MWM1NWMyOS4uYTIzMzFhOGEwM2RkMjRkYzEwNGYy
OGU2Y2E5OTYxOTBmN2U5ZGVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMjM1LDYgKzIzNSw5IEBAIHZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3Vy
Y2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgaWYgKCF0cnlMb2FkaW5nVXNpbmdVUkxTY2hlbWVI
YW5kbGVyKHJlc291cmNlTG9hZGVyLCB0cmFja2luZ1BhcmFtZXRlcnMpKSB7CiAgICAgICAgIFdF
QkxPQURFUlNUUkFURUdZX1JFTEVBU0VfTE9HKCJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIHNj
aGVkdWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyIpOwogCisgICAgICAgIGlmIChyZXNvdXJj
ZUxvYWRlci5yZXF1ZXN0KCkuaXNBcHBJbml0aWF0ZWQoKSkKKyAgICAgICAgICAgIFdURlJlcG9y
dEJhY2t0cmFjZVdpdGhQcmVmaXgoIldlYkxvYWRlclN0cmF0ZWd5Iik7CisKICNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCiAgICAgICAgIGlmICghcmVzb3VyY2VMb2FkZXIub3B0aW9ucygpLnNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyICYmIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbldlYktpdDo6c2hvdWxkSW50ZXJjZXB0UmVxdWVzdChyZXNvdXJjZUxvYWRlci5mcmFtZSgp
LCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkpKSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25XZWJLaXQ6OmludGVyY2VwdFJlcXVlc3QocmVzb3VyY2VMb2FkZXIsIFt0aGlz
LCBwcm90ZWN0ZWRSZXNvdXJjZUxvYWRlciA9IFJlZiB7IHJlc291cmNlTG9hZGVyIH0sIHRyYWNr
aW5nUGFyYW1ldGVycywgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
cmVzb3VyY2VdKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI5N2Ni
NDg0OTFjMjllODA3YTE2YjA1MTEzNmM0N2JiOTZhYTYwNDAuLmIxMmNjMTAxOGYxMWY1ZmYzODAy
OTU1YTBkNTZhZWViNTM4NTNjZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMi0yMCAg
QnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9wYWdhdGUg
YXBwLWluaXRpYXRlZCBzdGF0ZSB0byBuZXcgUmVzb3VyY2VSZXF1ZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MDE1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84NjEyODYzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1
dGlvbi1iZWFjb24taXNhcHBpbml0aWF0ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlz
YXBwaW5pdGlhdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNub3RhcHBpbml0aWF0ZWQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9h
cHAtYXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBwaW5pdGlhdGVkLmh0bWw6IEFkZGVkLgorCiAy
MDIxLTEyLTE3ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWJh
c2VsaW5lIGFmdGVyIHIyODcxOTkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzYXBwaW5pdGlhdGVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNhcHBpbml0aWF0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZmYzkxNmQyNjYyNWFiNTM3MjBlNGYxNGJlMGU2MzZmZWVkZTBjOTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAt
YXR0cmlidXRpb24tYmVhY29uLWlzYXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIwIEBACitFbnN1cmUgYmVhY29ucyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5hdmlnYXRvci5zZW5kQmVhY29uKCIuLi9i
bGluay9zZW5kYmVhY29uL3Jlc291cmNlcy9zYXZlLWJlYWNvbi5weT9uYW1lPWNvb2tpZSIsICJC
bGlwIik7IGlzIHRydWUKK1BBU1MgQmVhY29uIHNlbnQgc3VjY2Vzc2Z1bGx5CitQQVNTIENvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNTIENvb2tpZTogaGVsbG89d29y
bGQKK1BBU1MgT3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAKK1BBU1MgUmVmZXJlcjogaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVh
Y29uLWlzYXBwaW5pdGlhdGVkLmh0bWwKK1BBU1MgUmVxdWVzdC1NZXRob2Q6IFBPU1QKK1BBU1Mg
TGVuZ3RoOiA0CitQQVNTIEJvZHk6IEJsaXAKK1BBU1MKK1BBU1MgU3VjY2Vzc2Z1bGx5IGxvYWRl
ZCBvbmx5IGFwcC1pbml0aWF0ZWQgYmVhY29uIHJlcXVlc3RzCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc2Fw
cGluaXRpYXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc2FwcGluaXRpYXRlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJmYmVjNzlhNTA1MDIxMGVjMzMyZDJiMzM3NTRhMzYyOWU4ODU2MmYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmli
dXRpb24tYmVhY29uLWlzYXBwaW5pdGlhdGVkLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NU
WVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD10cnVlIF0g
LS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdFbnN1cmUgYmVhY29ucyBhcmUgYXR0cmlidXRlZCBjb3Jy
ZWN0bHkuJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gYXNr
Rm9yQXR0cmlidXRpb24oKSB7CisgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0g
dGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworICAgIHZhciBkaWRMb2Fk
Tm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRl
ZFJlcXVlc3QoKTsKKworICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgewor
ICAgICAgICB0ZXN0RmFpbGVkKCJEaWQgbG9hZCBub24tYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJE
aWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1
bGx5IGxvYWRlZCBvbmx5IGFwcC1pbml0aWF0ZWQgYmVhY29uIHJlcXVlc3RzIik7CisKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdHJ5IHsKKyAg
ICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICB4aHIub3Blbigi
R0VUIiwgIi4uL2Nvb2tpZXMvcmVzb3VyY2VzL3NldENvb2tpZXMuY2dpIiwgZmFsc2UpOworICAg
ICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigiU0VULUNPT0tJRSIsICJoZWxsbz13b3JsZDtwYXRo
PS8iKTsKKyAgICAgICAgeGhyLnNlbmQobnVsbCk7CisgICAgICAgIGlmICh4aHIuc3RhdHVzICE9
IDIwMCkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiY29va2llIG5vdCBzZXQiKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICB0ZXN0RmFpbGVkKCJjb29raWUgbm90IHNldCIpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9CisKKyAgICBzaG91bGRCZVRydWUoJ25hdmlnYXRvci5zZW5kQmVhY29uKCIuLi9i
bGluay9zZW5kYmVhY29uL3Jlc291cmNlcy9zYXZlLWJlYWNvbi5weT9uYW1lPWNvb2tpZSIsICJC
bGlwIik7Jyk7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5v
cGVuKCJHRVQiLCAiLi4vYmxpbmsvc2VuZGJlYWNvbi9yZXNvdXJjZXMvY2hlY2stYmVhY29uLnB5
P25hbWU9Y29va2llIik7CisgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
dmFyIGxpbmVzID0geGhyLnJlc3BvbnNlVGV4dC5zcGxpdCgiXG4iKTsKKyAgICAgICAgZm9yICh2
YXIgaSBpbiBsaW5lcykKKyAgICAgICAgICAgIHRlc3RQYXNzZWQobGluZXNbaV0pOworICAgICAg
ICBhc2tGb3JBdHRyaWJ1dGlvbigpOworICAgIH07CisgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlv
biAoKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIlVuYWJsZSB0byBmZXRjaCBiZWFjb24gc3RhdHVz
Iik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH07CisKKyAgICB4aHIuc2VuZCgpOwor
fQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBw
aW5pdGlhdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNub3RhcHBpbml0aWF0ZWQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcyM2NlMzZjZjMxOTFiOWMxNTE2MTQzNGY5YmZiZmNhMjg1OGUz
MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBwaW5pdGlhdGVkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIwIEBACitFbnN1cmUgYmVhY29ucyBhcmUgYXR0cmlidXRlZCBjb3Jy
ZWN0bHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5hdmlnYXRvci5z
ZW5kQmVhY29uKCIuLi9ibGluay9zZW5kYmVhY29uL3Jlc291cmNlcy9zYXZlLWJlYWNvbi5weT9u
YW1lPWNvb2tpZSIsICJCbGlwIik7IGlzIHRydWUKK1BBU1MgQmVhY29uIHNlbnQgc3VjY2Vzc2Z1
bGx5CitQQVNTIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNTIENv
b2tpZTogaGVsbG89d29ybGQKK1BBU1MgT3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAKK1BB
U1MgUmVmZXJlcjogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAt
YXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBwaW5pdGlhdGVkLmh0bWwKK1BBU1MgUmVxdWVzdC1N
ZXRob2Q6IFBPU1QKK1BBU1MgTGVuZ3RoOiA0CitQQVNTIEJvZHk6IEJsaXAKK1BBU1MKK1BBU1Mg
U3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbi1hcHAtaW5pdGlhdGVkIGJlYWNvbiByZXF1ZXN0
cworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1h
dHRyaWJ1dGlvbi1iZWFjb24taXNub3RhcHBpbml0aWF0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNub3Rh
cHBpbml0aWF0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjA1YTIxMWUyMDFkODI4NDRjMDg2NmQ1YzFl
OThlNTUyZGQyNGUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc25vdGFwcGluaXRpYXRl
ZC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0Vu
c3VyZSBiZWFjb25zIGFyZSBhdHRyaWJ1dGVkIGNvcnJlY3RseS4nKTsKKword2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBhc2tGb3JBdHRyaWJ1dGlvbigpIHsKKyAgICB2
YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0
aWF0ZWRSZXF1ZXN0KCk7CisgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0g
dGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgaWYgKCFk
aWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJEaWQg
bm90IGxvYWQgbm9uLWFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChkaWRMb2FkQXBwSW5pdGlh
dGVkUmVxdWVzdCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJEaWQgbG9hZCBhcHAgaW5pdGlhdGVk
IHJlcXVlc3QiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uLWFwcC1p
bml0aWF0ZWQgYmVhY29uIHJlcXVlc3RzIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwor
ZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHhociA9IG5ldyBY
TUxIdHRwUmVxdWVzdCgpOworICAgICAgICB4aHIub3BlbigiR0VUIiwgIi4uL2Nvb2tpZXMvcmVz
b3VyY2VzL3NldENvb2tpZXMuY2dpIiwgZmFsc2UpOworICAgICAgICB4aHIuc2V0UmVxdWVzdEhl
YWRlcigiU0VULUNPT0tJRSIsICJoZWxsbz13b3JsZDtwYXRoPS8iKTsKKyAgICAgICAgeGhyLnNl
bmQobnVsbCk7CisgICAgICAgIGlmICh4aHIuc3RhdHVzICE9IDIwMCkgeworICAgICAgICAgICAg
dGVzdEZhaWxlZCgiY29va2llIG5vdCBzZXQiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0RmFpbGVkKCJjb29r
aWUgbm90IHNldCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisKKyAgICBzaG91
bGRCZVRydWUoJ25hdmlnYXRvci5zZW5kQmVhY29uKCIuLi9ibGluay9zZW5kYmVhY29uL3Jlc291
cmNlcy9zYXZlLWJlYWNvbi5weT9uYW1lPWNvb2tpZSIsICJCbGlwIik7Jyk7CisgICAgdmFyIHho
ciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAiLi4vYmxpbmsv
c2VuZGJlYWNvbi9yZXNvdXJjZXMvY2hlY2stYmVhY29uLnB5P25hbWU9Y29va2llIik7CisgICAg
eGhyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGxpbmVzID0geGhyLnJlc3Bv
bnNlVGV4dC5zcGxpdCgiXG4iKTsKKyAgICAgICAgZm9yICh2YXIgaSBpbiBsaW5lcykKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQobGluZXNbaV0pOworICAgICAgICBhc2tGb3JBdHRyaWJ1dGlvbigp
OworICAgIH07CisgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRlc3RG
YWlsZWQoIlVuYWJsZSB0byBmZXRjaCBiZWFjb24gc3RhdHVzIik7CisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH07CisKKyAgICB4aHIuc2VuZCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447731</attachid>
            <date>2021-12-21 10:28:52 -0800</date>
            <delta_ts>2021-12-21 12:31:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234015-20211221102851.patch</filename>
            <type>text/plain</type>
            <size>34435</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdjZTRmOGE1ZTljMzFk
OWE4MjIwMzg2NzdjMDZhMGQxOTM5ZjVlMC4uNTUxMDc4NzJjMzY4MzA3YTgwY2Q3OGFkNTI2YzU3
MDM2NDNkNzM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTEyLTIwICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFByb3BhZ2F0ZSBhcHAt
aW5pdGlhdGVkIHN0YXRlIHRvIG5ldyBSZXNvdXJjZVJlcXVlc3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg2MTI4NjM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdoaWxlIHJldmlld2luZyBsb2dnaW5nIHdlIGhhdmUgZm91bmQgdGhhdCBzb21l
IFJlc291cmNlUmVxdWVzdCBvYmplY3RzCisgICAgICAgIGFyZSBtaXNzaW5nIHRoZSBjb3JyZWN0
IHN0YXRlIGZvciBhcHAtaW5pdGlhdGVkIGxvYWRzLiBUeXBpY2FsbHksIHRoZXNlCisgICAgICAg
IGFyZSBjYXNlcyB3aGVyZSBhIG5ldyBSZXNvdXJjZVJlcXVlc3QgaXMgY3JlYXRlZCBmcm9tIGEg
VVJMIHN0cmluZywgbG9zaW5nCisgICAgICAgIHRoZSBjb250ZXh0IHRoYXQgY2FtZSB3aXRoIHRo
ZSBvcmlnaW5hbCBsb2FkIChvciB0aGUgY29udGV4dCBvZiB0aGUgcGFnZQorICAgICAgICB0cmln
Z2VyaW5nIHRoZSBsb2FkKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgbnVtYmVy
IG9mIHN1Y2ggY2FzZXMuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNhcHBpbml0aWF0ZWQuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJl
YWNvbi1pc25vdGFwcGluaXRpYXRlZC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2JlYWNvbi9O
YXZpZ2F0b3JCZWFjb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmVhY29uOjpz
ZW5kQmVhY29uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlUmVxdWVz
dCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFr
ZS5oOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlUG90ZW50aWFsQWNjZXNzQ29udHJvbFJlcXVlc3QpOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZFVSTEludG9DaGlsZEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjp3aWxsTG9hZE1lZGlhRWxlbWVudFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKToK
KyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUpOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y3JlYXRlV2lu
ZG93KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbik6CisKIDIwMjEtMTItMTcg
IEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gVXNl
IHRoZSBpbmxpbmUgYm94J3MgZGlyZWN0aW9uIHRvIGRlY2lkZSBpZiBzdGFydC9lbmQgZGVjb3Jh
dGlvbnMgc2hvdWxkIGJlIGFwcGxpZWQgb24gZmlyc3QvbGFzdCBib3gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2Q3
NTk1ZjY5MGZlZmFiNDNiYzQwMzFlZTBjOGMxNTZjN2RkZjkwNy4uMGVhYTViODY1ZDRjNTdlZTA1
NTdkZjU2NTNkNGFlMmIwZjFjYmI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0x
Mi0yMCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9w
YWdhdGUgYXBwLWluaXRpYXRlZCBzdGF0ZSB0byBuZXcgUmVzb3VyY2VSZXF1ZXN0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MDE1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84NjEyODYzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGlsZSByZXZpZXdpbmcgbG9nZ2luZyB3ZSBoYXZlIGZvdW5k
IHRoYXQgc29tZSBSZXNvdXJjZVJlcXVlc3Qgb2JqZWN0cworICAgICAgICBhcmUgbWlzc2luZyB0
aGUgY29ycmVjdCBzdGF0ZSBmb3IgYXBwLWluaXRpYXRlZCBsb2Fkcy4gVHlwaWNhbGx5LCB0aGVz
ZQorICAgICAgICBhcmUgY2FzZXMgd2hlcmUgYSBuZXcgUmVzb3VyY2VSZXF1ZXN0IGlzIGNyZWF0
ZWQgZnJvbSBhIFVSTCBzdHJpbmcsIGxvc2luZworICAgICAgICB0aGUgY29udGV4dCB0aGF0IGNh
bWUgd2l0aCB0aGUgb3JpZ2luYWwgbG9hZCAob3IgdGhlIGNvbnRleHQgb2YgdGhlIHBhZ2UKKyAg
ICAgICAgdHJpZ2dlcmluZyB0aGUgbG9hZCkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjb3JyZWN0
cyBhIG51bWJlciBvZiBzdWNoIGNhc2VzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OlN1YnJlc291cmNlSW5mbzo6ZW5jb2RlIGNvbnN0KTogQ29ycmVjdCBtaXNz
aW5nIHNlcmlhbGl6YXRpb24gZm9yCisgICAgICAgIGFwcC1pbml0aWF0ZWQgc3RhdGUuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3VicmVzb3VyY2VJbmZvOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN1YnJlc291cmNlSW5mbzo6U3VicmVzb3VyY2VJ
bmZvKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKToKKwog
MjAyMS0xMi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSBBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFnZUdyb3VwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcAppbmRl
eCA2OWRlYzVjYjZmYmM1YmY5ZDhiNzE4Y2NlMjEwMTdhM2RiYjdkOTRmLi4zOGVkNDJhMjJhODgx
ZWIyMWU3NTZhMGY4MjlmNTUxM2MwNDI0OTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYmVhY29uL05hdmlnYXRvckJlYWNvbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkNhY2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk5hdmln
YXRvci5oIgpAQCAtMTIyLDYgKzEyMyw4IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IE5hdmlnYXRvckJl
YWNvbjo6c2VuZEJlYWNvbihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYKICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChwYXJzZWRVcmwpOwogICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZCgiUE9TVCJfcyk7CiAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0ZXIoUmVzb3VyY2VSZXF1ZXN0
OjpSZXF1ZXN0ZXI6OkJlYWNvbik7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZG9j
dW1lbnQubG9hZGVyKCkpCisgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1l
bnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogCiAgICAgUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zIG9wdGlvbnM7CiAgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggMzM4NWQyNzY2
NDViMTJkZDY1NDA0NjFhNmM2N2YyODUyYjk1ZGI0NC4uMmY3YjgzMzdiMDRiNmY5ZTBjODEyNDg1
MzAyMDhiNTI0N2JmYTQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgpAQCAtOTIsNyArOTMsMTIgQEAgV2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0YXR1cyBXZWJT
b2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTCYgcmVxdWVzdGVkVVIKICAgICBtX2FsbG93
Q29va2llcyA9IHZhbGlkYXRlZFVSTC0+YXJlQ29va2llc0FsbG93ZWQ7CiAgICAgU3RyaW5nIHVz
ZXJBZ2VudCA9IG1fZG9jdW1lbnQtPnVzZXJBZ2VudChtX2RvY3VtZW50LT51cmwoKSk7CiAgICAg
U3RyaW5nIGNsaWVudE9yaWdpbiA9IG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkudG9TdHJp
bmcoKTsKLSAgICBtX2hhbmRzaGFrZSA9IG1ha2VVbmlxdWU8V2ViU29ja2V0SGFuZHNoYWtlPih2
YWxpZGF0ZWRVUkwtPnVybCwgcHJvdG9jb2wsIHVzZXJBZ2VudCwgY2xpZW50T3JpZ2luLCBtX2Fs
bG93Q29va2llcyk7CisKKyAgICBib29sIGlzQXBwSW5pdGlhdGVkID0gdHJ1ZTsKKyAgICBpZiAo
YXV0byogZG9jdW1lbnRMb2FkZXIgPSBtX2RvY3VtZW50LT5sb2FkZXIoKSkKKyAgICAgICAgaXNB
cHBJbml0aWF0ZWQgPSBkb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0
ZWQoKTsKKworICAgIG1faGFuZHNoYWtlID0gbWFrZVVuaXF1ZTxXZWJTb2NrZXRIYW5kc2hha2U+
KHZhbGlkYXRlZFVSTC0+dXJsLCBwcm90b2NvbCwgdXNlckFnZW50LCBjbGllbnRPcmlnaW4sIG1f
YWxsb3dDb29raWVzLCBpc0FwcEluaXRpYXRlZCk7CiAgICAgbV9oYW5kc2hha2UtPnJlc2V0KCk7
CiAgICAgbV9oYW5kc2hha2UtPmFkZEV4dGVuc2lvblByb2Nlc3NvcihtX2RlZmxhdGVGcmFtZXIu
Y3JlYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKCkpOwogICAgIGlmIChtX3Byb2dyZXNzSWRlbnRpZmll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRIYW5kc2hha2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldEhhbmRzaGFrZS5jcHAKaW5kZXggZDgyODIyNDBhMmJiY2I5MmEzNzcyMTUwNzE1Yzc3NGEz
MWFmNDRmOC4uYzQ1MzhiOThkMGJiOTJlYTlkNjFkMjliN2YwOTUxNzA4NjdkZmY1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFr
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhh
bmRzaGFrZS5jcHAKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTExMiw3ICsxMTIsNyBAQCBTdHJpbmcgV2Vi
U29ja2V0SGFuZHNoYWtlOjpnZXRFeHBlY3RlZFdlYlNvY2tldEFjY2VwdChjb25zdCBTdHJpbmcm
IHNlY1dlYlNvY2tldAogICAgIHJldHVybiBiYXNlNjRFbmNvZGVUb1N0cmluZyhoYXNoLmRhdGEo
KSwgU0hBMTo6aGFzaFNpemUpOwogfQogCi1XZWJTb2NrZXRIYW5kc2hha2U6OldlYlNvY2tldEhh
bmRzaGFrZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgY2xpZW50T3JpZ2luLCBib29sIGFsbG93Q29v
a2llcykKK1dlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgU3RyaW5nJiBjbGllbnRPcmlnaW4sIGJvb2wgYWxsb3dDb29raWVzLCBib29sIGlzQXBwSW5p
dGlhdGVkKQogICAgIDogbV91cmwodXJsKQogICAgICwgbV9jbGllbnRQcm90b2NvbChwcm90b2Nv
bCkKICAgICAsIG1fc2VjdXJlKG1fdXJsLnByb3RvY29sSXMoIndzcyIpKQpAQCAtMTIwLDYgKzEy
MCw3IEBAIFdlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjCiAgICAgLCBtX3VzZXJBZ2VudCh1c2VyQWdl
bnQpCiAgICAgLCBtX2NsaWVudE9yaWdpbihjbGllbnRPcmlnaW4pCiAgICAgLCBtX2FsbG93Q29v
a2llcyhhbGxvd0Nvb2tpZXMpCisgICAgLCBtX2lzQXBwSW5pdGlhdGVkKGlzQXBwSW5pdGlhdGVk
KQogewogICAgIG1fc2VjV2ViU29ja2V0S2V5ID0gZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkoKTsK
ICAgICBtX2V4cGVjdGVkQWNjZXB0ID0gZ2V0RXhwZWN0ZWRXZWJTb2NrZXRBY2NlcHQobV9zZWNX
ZWJTb2NrZXRLZXkpOwpAQCAtMjEyLDYgKzIxMyw3IEBAIFJlc291cmNlUmVxdWVzdCBXZWJTb2Nr
ZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZVJlcXVlc3QoY29uc3QgRnVuY3Rpb248U3RyaW5n
CiAgICAgaWYgKCFleHRlbnNpb25zLmlzRW1wdHkoKSkKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlNlY1dlYlNvY2tldEV4dGVuc2lvbnMsIGV4dGVu
c2lvbnMpOwogICAgIHJlcXVlc3Quc2V0SFRUUFVzZXJBZ2VudChtX3VzZXJBZ2VudCk7CisgICAg
cmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChtX2lzQXBwSW5pdGlhdGVkKTsKICAgICByZXR1cm4g
cmVxdWVzdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oCmluZGV4IDVlNjRjMTgzNGY2ZTgzNjE0ZDMwMWM0ZmVk
ZDM5ZDg4M2NhZDdjMTIuLjM4MWYxNTkwOTY1OGVjYzA2ODQ2YTNmYmU4NzA4YjBkNTQ5NjZlZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRI
YW5kc2hha2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0SGFuZHNoYWtlLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTQ4LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIGVudW0gTW9kZSB7CiAg
ICAgICAgIEluY29tcGxldGUsIE5vcm1hbCwgRmFpbGVkLCBDb25uZWN0ZWQKICAgICB9OwotICAg
IFdlYlNvY2tldEhhbmRzaGFrZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBjbGllbnRPcmlnaW4sIGJvb2wg
YWxsb3dDb29raWVzKTsKKyAgICBXZWJTb2NrZXRIYW5kc2hha2UoY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBwcm90b2NvbCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYg
Y2xpZW50T3JpZ2luLCBib29sIGFsbG93Q29va2llcywgYm9vbCBpc0FwcEluaXRpYXRlZCk7CiAg
ICAgfldlYlNvY2tldEhhbmRzaGFrZSgpOwogCiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdDsK
QEAgLTEwMiw2ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKICAg
ICBTdHJpbmcgbV9jbGllbnRPcmlnaW47CiAgICAgYm9vbCBtX2FsbG93Q29va2llczsKKyAgICBi
b29sIG1faXNBcHBJbml0aWF0ZWQ7CiAKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fc2VydmVySGFu
ZHNoYWtlUmVzcG9uc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9z
c09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5jcHAKaW5kZXggODc5NmZkZDNlNTcyZTAwNGFlNzBiY2NhYjY5YTM5
ZTVhZTJkNGY0Yi4uOWFhYjM5YTllMWQ0YTI2NTliMDE0MDA3MTg2MTQ4ZjY3ZDUyNDdmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5j
cHAKQEAgLTEzOSw2ICsxMzksOSBAQCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY3JlYXRlUG90ZW50
aWFsQWNjZXNzQ29udHJvbFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdQogICAgICAgICB9
CiAgICAgfQogCisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZG9jdW1lbnQubG9hZGVy
KCkpCisgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxh
c3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOworCiAgICAgaWYgKGNyb3NzT3JpZ2luQXR0
cmlidXRlLmlzTnVsbCgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjYWNoZWRS
ZXF1ZXN0IHsgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSB9OwogICAgICAgICBj
YWNoZWRSZXF1ZXN0LnNldE9yaWdpbihkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDZjNWVlM2E5YjMxYWU4Yjg0ZGI5MjBi
NjZlYmYyMTRmMjZlYzlhZDYuLmExMGQ4MzI3OWM0YjE1YWI0M2E5MDE2ZmUwNjYyNzk0NTIzMjNm
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2gg
TW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUu
Y29tLykKICAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgpA
QCAtOTQyLDcgKzk0Miw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ2FsbEltcGxpY2l0Q2xv
c2UoKQogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+aW1wbGljaXRDbG9zZSgpOwogfQogCi12b2lk
IEZyYW1lTG9hZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgcmVmZXJlciwgRnJhbWUqIGNoaWxkRnJhbWUpCit2b2lkIEZyYW1lTG9hZGVyOjps
b2FkVVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJl
ciwgRnJhbWUqIGNoaWxkRnJhbWUsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiBhcHBJbml0aWF0ZWQp
CiB7CiAgICAgRlJBTUVMT0FERVJfUkVMRUFTRV9MT0coUmVzb3VyY2VMb2FkaW5nLCAibG9hZFVS
TEludG9DaGlsZEZyYW1lOiBmcmFtZSBsb2FkIHN0YXJ0ZWQiKTsKIApAQCAtOTc0LDYgKzk3NCw4
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkxJbnRvQ2hpbGRGcmFtZShjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiByZWZlcmVyLCBGCiAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxv
YWRSZXF1ZXN0IHsgKm1fZnJhbWUuZG9jdW1lbnQoKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpLCB7IHVybCB9LCBzZWxmVGFyZ2V0RnJhbWVOYW1lKCksIGluaXRpYXRlZEJ5
TWFpbkZyYW1lIH07CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXROZXdGcmFtZU9wZW5lclBvbGlj
eShOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Qu
c2V0TG9ja0JhY2tGb3J3YXJkTGlzdChMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpOworICAgIGlm
ICghIWFwcEluaXRpYXRlZCkKKyAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKS5zZXRJc0FwcEluaXRpYXRlZCgqYXBwSW5pdGlhdGVkKTsKICAgICBjaGlsZEZyYW1lLT5s
b2FkZXIoKS5sb2FkVVJMKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCksIHJlZmVyZXIsIEZyYW1l
TG9hZFR5cGU6OlJlZGlyZWN0V2l0aExvY2tlZEJhY2tGb3J3YXJkTGlzdCwgbnVsbHB0ciwgeyB9
LCBzdGQ6Om51bGxvcHQsIFtdIHsgfSk7CiB9CiAKQEAgLTE2ODEsNyArMTY4Myw5IEBAIGJvb2wg
RnJhbWVMb2FkZXI6OndpbGxMb2FkTWVkaWFFbGVtZW50VVJMKFVSTCYgdXJsLCBOb2RlJiBpbml0
aWF0b3JOb2RlKQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKICAgICByZXF1
ZXN0LnNldEluc3BlY3RvckluaXRpYXRvck5vZGVJZGVudGlmaWVyKEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6aWRlbnRpZmllckZvck5vZGUoaW5pdGlhdG9yTm9kZSkpOwotCisgICAgaWYgKG1f
ZG9jdW1lbnRMb2FkZXIpCisgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQobV9kb2N1
bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7CisgICAgCiAgICAg
UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgUmVzb3VyY2VFcnJvciBl
cnJvcjsKICAgICByZXF1ZXN0RnJvbURlbGVnYXRlKHJlcXVlc3QsIGlkZW50aWZpZXIsIGVycm9y
KTsKQEAgLTIxMjgsNiArMjEzMiw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lv
bmFsTG9hZCgpCiAgICAgICAgICAgICBSZXNvdXJjZUVycm9yIGVycm9yOwogICAgICAgICAgICAg
UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgICAgICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdChyZXNwb25zZS51cmwoKSk7CisgICAgICAgICAgICBpZiAobV9kb2N1
bWVudExvYWRlcikKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKG1f
ZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogICAgICAg
ICAgICAgcmVxdWVzdEZyb21EZWxlZ2F0ZShyZXF1ZXN0LCBpZGVudGlmaWVyLCBlcnJvcik7CiAg
ICAgICAgICAgICAvLyBGSVhNRTogSWYgd2UgZ2V0IGEgcmVzb3VyY2Ugd2l0aCBtb3JlIHRoYW4g
MkIgYnl0ZXMsIHRoaXMgY29kZSB3b24ndCBkbyB0aGUgcmlnaHQgdGhpbmcuCiAgICAgICAgICAg
ICAvLyBIb3dldmVyLCB3aXRoIHRvZGF5J3MgY29tcHV0ZXJzIGFuZCBuZXR3b3JraW5nIHNwZWVk
cywgdGhpcyB3b24ndCBoYXBwZW4gaW4gcHJhY3RpY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oCmluZGV4IDc1YWUyODRjMmMzNGZkZDg5ZTg1NjRkYTQzOWRhNzcyNWFmYmM4ZTYuLmY5
MDIwM2RhOTA1MjUyMWVlN2QwNWRlZGIwNjczN2IxM2FmNjhkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5oCkBAIC00MTksNyArNDE5LDcgQEAgcHJpdmF0ZToKICAgICBIaXN0b3J5
SXRlbSogcmVxdWVzdGVkSGlzdG9yeUl0ZW0oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZEhp
c3RvcnlJdGVtLmdldCgpOyB9CiAKICAgICAvLyBTdWJmcmFtZUxvYWRlciBzcGVjaWZpYy4KLSAg
ICB2b2lkIGxvYWRVUkxJbnRvQ2hpbGRGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJl
ZmVyZXIsIEZyYW1lKik7CisgICAgdm9pZCBsb2FkVVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiByZWZlcmVyLCBGcmFtZSosIHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiBh
cHBJbml0aWF0ZWQpOwogICAgIHZvaWQgc3RhcnRlZCgpOwogCiAgICAgLy8gUG9saWN5Q2hlY2tl
ciBzcGVjaWZpYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
U2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVy
LmNwcAppbmRleCA3NjRmODg2ODQ0N2I2ZTVhNjQ3ZDk5MDgxOWZjNGRlZDRmZDIxYzFjLi4xZmUw
Yjk4NDUwMWFmNzExMDMxZjg0YTZhZTA2YTNkYzE1NWNkMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQog
ICogQ29weXJpZ2h0IChDKSAyMDA5IEFkYW0gQmFydGguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBA
IC0xOTQsNiArMTk0LDggQEAgcHVibGljOgogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3Vy
Y2VSZXF1ZXN0IHsgdXJsKCksIHJlZmVycmVyKCksIHJlZnJlc2ggPyBSZXNvdXJjZVJlcXVlc3RD
YWNoZVBvbGljeTo6UmVsb2FkSWdub3JpbmdDYWNoZURhdGEgOiBSZXNvdXJjZVJlcXVlc3RDYWNo
ZVBvbGljeTo6VXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9OwogICAgICAgICBpZiAoaW5pdGlhdGVk
QnlNYWluRnJhbWUoKSA9PSBJbml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzKQogICAgICAgICAgICAg
cmVzb3VyY2VSZXF1ZXN0LnNldFJlcXVlc3RlcihSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6
TWFpbik7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IGluaXRpYXRpbmdEb2N1
bWVudCgpLmxvYWRlcigpKQorICAgICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldElzQXBwSW5p
dGlhdGVkKGRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsK
ICAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0Rv
Y3VtZW50KCksICpzZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIHNl
bGZUYXJnZXRGcmFtZU5hbWUoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9OwogICAgICAgICBm
cmFtZUxvYWRSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGxvY2tIaXN0b3J5KCkpOwogICAgICAgICBm
cmFtZUxvYWRSZXF1ZXN0LnNldExvY2tCYWNrRm9yd2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlz
dCgpKTsKQEAgLTIyNiw2ICsyMjgsOCBAQCBwdWJsaWM6CiAgICAgICAgIFVzZXJHZXN0dXJlSW5k
aWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IgeyB1c2VyR2VzdHVyZVRvRm9yd2FyZCgpIH07CiAKICAg
ICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IHVybCgpLCByZWZlcnJlcigp
LCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6VXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9Owor
ICAgICAgICBpZiAoYXV0byogZG9jdW1lbnRMb2FkZXIgPSBpbml0aWF0aW5nRG9jdW1lbnQoKS5s
b2FkZXIoKSkKKyAgICAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChk
b2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7CiAgICAgICAg
IEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IGluaXRpYXRpbmdEb2N1bWVudCgp
LCAqc2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBzZWxmVGFyZ2V0
RnJhbWVOYW1lKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lKCkgfTsKICAgICAgICAgZnJhbWVMb2Fk
UmVxdWVzdC5zZXRMb2NrSGlzdG9yeShsb2NrSGlzdG9yeSgpKTsKICAgICAgICAgZnJhbWVMb2Fk
UmVxdWVzdC5zZXRMb2NrQmFja0ZvcndhcmRMaXN0KGxvY2tCYWNrRm9yd2FyZExpc3QoKSk7CkBA
IC0yNTMsNiArMjU3LDggQEAgcHVibGljOgogICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBn
ZXN0dXJlSW5kaWNhdG9yIHsgdXNlckdlc3R1cmVUb0ZvcndhcmQoKSB9OwogCiAgICAgICAgIFJl
c291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwgUmVzb3Vy
Y2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhIH07CisgICAgICAg
IGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IGluaXRpYXRpbmdEb2N1bWVudCgpLmxvYWRlcigp
KQorICAgICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKGRvY3VtZW50
TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsKICAgICAgICAgRnJhbWVM
b2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0RvY3VtZW50KCksICpzZWN1
cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIHNlbGZUYXJnZXRGcmFtZU5h
bWUoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9OwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0
LnNldExvY2tIaXN0b3J5KGxvY2tIaXN0b3J5KCkpOwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0
LnNldExvY2tCYWNrRm9yd2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKQEAgLTM2OCw2
ICszNzQsOCBAQCBwdWJsaWM6CiAgICAgICAgIFN1YnN0aXR1dGVEYXRhIHJlcGxhY2VtZW50RGF0
YSB7IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCksIG1fb3JpZ2luRG9jdW1lbnQudXJsKCksIHJlcGxh
Y2VtZW50UmVzcG9uc2UsIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6
OkhpZGRlbiB9OwogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyBt
X29yaWdpbkRvY3VtZW50LnVybCgpLCBlbXB0eVN0cmluZygpLCBSZXNvdXJjZVJlcXVlc3RDYWNo
ZVBvbGljeTo6UmVsb2FkSWdub3JpbmdDYWNoZURhdGEgfTsKKyAgICAgICAgaWYgKGF1dG8qIGRv
Y3VtZW50TG9hZGVyID0gbV9vcmlnaW5Eb2N1bWVudC5sb2FkZXIoKSkKKyAgICAgICAgICAgIHJl
c291cmNlUmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChkb2N1bWVudExvYWRlci0+bGFzdE5hdmln
YXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7CiAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVM
b2FkUmVxdWVzdCB7IG1fb3JpZ2luRG9jdW1lbnQsIG1fb3JpZ2luRG9jdW1lbnQuc2VjdXJpdHlP
cmlnaW4oKSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCB7IH0sIGluaXRpYXRlZEJ5TWFpbkZy
YW1lKCkgfTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrSGlzdG9yeShsb2NrSGlz
dG9yeSgpKTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrQmFja0ZvcndhcmRMaXN0
KGxvY2tCYWNrRm9yd2FyZExpc3QoKSk7CkBAIC00NzAsNyArNDc4LDkgQEAgdm9pZCBOYXZpZ2F0
aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKERvY3VtZW50JiBpbml0aWF0aW5n
RG9jdW1lbnQsIFMKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IG1f
ZnJhbWUuZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsLnN0cmluZygpKSwgcmVmZXJyZXIsIFJl
c291cmNlUmVxdWVzdENhY2hlUG9saWN5OjpVc2VQcm90b2NvbENhY2hlUG9saWN5IH07CiAgICAg
ICAgIGF1dG8qIGZyYW1lID0gbGV4aWNhbEZyYW1lRnJvbUNvbW1vblZNKCk7CiAgICAgICAgIGF1
dG8gaW5pdGlhdGVkQnlNYWluRnJhbWUgPSBmcmFtZSAmJiBmcmFtZS0+aXNNYWluRnJhbWUoKSA/
IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpZZXMgOiBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93
bjsKLSAgICAgICAgCisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IGluaXRpYXRp
bmdEb2N1bWVudC5sb2FkZXIoKSkKKyAgICAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRJc0Fw
cEluaXRpYXRlZChkb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQo
KSk7CisKICAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgaW5pdGlh
dGluZ0RvY3VtZW50LCBzZWN1cml0eU9yaWdpbiwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBz
ZWxmVGFyZ2V0RnJhbWVOYW1lKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lIH07CiAgICAgICAgIGZy
YW1lTG9hZFJlcXVlc3Quc2V0TG9ja0hpc3RvcnkobG9ja0hpc3RvcnkpOwogICAgICAgICBmcmFt
ZUxvYWRSZXF1ZXN0LnNldExvY2tCYWNrRm9yd2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCA4MjkwMThjNWM5
ODEwMDE0NzA2NGZlZDZjMWU0ZDlmZWYyOTgxYWVjLi5jNTdmNjNiZWQ0YjUzNzk0N2EyN2ZiZGVk
YjQ4YTVmY2M2NjFlMTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJh
bWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5j
cHAKQEAgLTI5Nyw3ICsyOTcsMTEgQEAgUmVmUHRyPEZyYW1lPiBGcmFtZUxvYWRlcjo6U3ViZnJh
bWVMb2FkZXI6OmxvYWRTdWJmcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQmIG8KICAgICAgICAg
cG9saWN5ID0gZG9jdW1lbnQtPnJlZmVycmVyUG9saWN5KCk7CiAgICAgU3RyaW5nIHJlZmVycmVy
VG9Vc2UgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihwb2xpY3ksIHVy
bCwgcmVmZXJyZXIpOwogCi0gICAgbV9mcmFtZS5sb2FkZXIoKS5sb2FkVVJMSW50b0NoaWxkRnJh
bWUodXJsLCByZWZlcnJlclRvVXNlLCBmcmFtZS5nZXQoKSk7CisgICAgc3RkOjpvcHRpb25hbDxi
b29sPiBhcHBJbml0aWF0ZWQ7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZG9jdW1l
bnQtPmxvYWRlcigpKQorICAgICAgICBhcHBJbml0aWF0ZWQgPSBkb2N1bWVudExvYWRlci0+bGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKTsKKworICAgIG1fZnJhbWUubG9hZGVyKCkubG9h
ZFVSTEludG9DaGlsZEZyYW1lKHVybCwgcmVmZXJyZXJUb1VzZSwgZnJhbWUuZ2V0KCksIFdURk1v
dmUoYXBwSW5pdGlhdGVkKSk7CiAKICAgICBkb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVs
YXlDb3VudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZGVmYzVkNDllMTM5
NjAxNTVhZGRiMjExMzM2YWRlZTc3M2RkODRhZi4uNGE3NmM1ODhhNTQ5ZGYzYmZhNmViNTRiMjE1
MjhlM2RjNjU2ZmViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5k
L29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNTE0LDYgKzI1
MTQsOCBAQCBFeGNlcHRpb25PcjxSZWZQdHI8RnJhbWU+PiBET01XaW5kb3c6OmNyZWF0ZVdpbmRv
dyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29ucwogICAgIGF1dG8gaW5pdGlhdGVkQnlNYWlu
RnJhbWUgPSBhY3RpdmVGcmFtZS0+aXNNYWluRnJhbWUoKSA/IEluaXRpYXRlZEJ5TWFpbkZyYW1l
OjpZZXMgOiBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93bjsKIAogICAgIFJlc291cmNlUmVx
dWVzdCByZXNvdXJjZVJlcXVlc3QgeyBjb21wbGV0ZWRVUkwsIHJlZmVycmVyIH07CisgICAgaWYg
KGF1dG8qIGRvY3VtZW50TG9hZGVyID0gYWN0aXZlRG9jdW1lbnQtPmxvYWRlcigpKQorICAgICAg
ICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3RO
YXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVM
b2FkUmVxdWVzdCB7ICphY3RpdmVEb2N1bWVudCwgYWN0aXZlRG9jdW1lbnQtPnNlY3VyaXR5T3Jp
Z2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgZnJhbWVOYW1lLCBpbml0aWF0ZWRCeU1h
aW5GcmFtZSB9OwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeShhY3RpdmVEb2N1bWVudC0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJv
cGFnYXRlKCkpOwogCkBAIC0yNTM5LDggKzI1NDEsMTAgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPEZy
YW1lPj4gRE9NV2luZG93OjpjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNv
bnMKIAogICAgIGlmIChjcmVhdGVkKSB7CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJj
ZVJlcXVlc3QgeyBjb21wbGV0ZWRVUkwsIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBv
bGljeTo6VXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9OworICAgICAgICBpZiAoYXV0byogZG9jdW1l
bnRMb2FkZXIgPSBhY3RpdmVEb2N1bWVudC0+bG9hZGVyKCkpCisgICAgICAgICAgICByZXNvdXJj
ZVJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9u
V2FzQXBwSW5pdGlhdGVkKCkpOwogICAgICAgICBGcmFtZUxvYWRlcjo6YWRkU2FtZVNpdGVJbmZv
VG9SZXF1ZXN0SWZOZWVkZWQocmVzb3VyY2VSZXF1ZXN0LCBvcGVuZXJGcmFtZS5kb2N1bWVudCgp
KTsKLSAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKmFjdGl2ZVdp
bmRvdy5kb2N1bWVudCgpLCBhY3RpdmVXaW5kb3cuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBzZWxmVGFyZ2V0RnJhbWVOYW1lKCksIGluaXRp
YXRlZEJ5TWFpbkZyYW1lIH07CisgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVx
dWVzdCB7ICphY3RpdmVEb2N1bWVudCwgYWN0aXZlRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCks
IFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgc2VsZlRhcmdldEZyYW1lTmFtZSgpLCBpbml0aWF0
ZWRCeU1haW5GcmFtZSB9OwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3koYWN0aXZlRG9jdW1lbnQtPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3lUb1Byb3BhZ2F0ZSgpKTsKICAgICAgICAgbmV3RnJhbWUtPmxvYWRlcigpLmNoYW5nZUxv
Y2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOwogICAgIH0gZWxzZSBpZiAoIXVybFN0
cmluZy5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5k
ZXggMTM5OTU2ODkzMTlkOTQwYmEzYmY5ZDRiNDI4ZDI3MmE2YTM1YTQwMi4uNGQ5YWQzYTM1ODBl
NmE0ZWZlYzIzNGY3MzIxMGM2ZDU5ZjAyZWU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgogI2lu
Y2x1ZGUgIkRyYWdDbGllbnQuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgpAQCAtMjk0LDYgKzI5
NSw5IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKGNvbnN0IERy
YWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY2xpZW50KCku
d2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24oRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uOjpM
b2FkLCBkcmFnRGF0YSk7CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IHVy
bFN0cmluZyB9OworICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IG1fcGFnZS5tYWluRnJh
bWUoKS5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQorICAgICAgICByZXNvdXJjZVJlcXVlc3Qu
c2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkKCkpOwogICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IG1fcGFn
ZS5tYWluRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0IHsgdXJsU3RyaW5nIH0gfTsKICAgICBmcmFt
ZUxvYWRSZXF1ZXN0LnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRJc1JlcXVlc3RGcm9t
Q2xpZW50T3JVc2VySW5wdXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5j
cHAKaW5kZXggYzgzM2U0YTkxYjQ4ZGU4YjUwNTUwZThhOTYyZmY5YmRjOGQ3MGRlOC4uMzEyM2Q5
MTllOWNjMzkxNmE2YmZhYmJmNTIzNGY2ZjkzNTAyODkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dWJyZXNvdXJjZXNFbnRyeS5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAgdm9pZCBTdWJyZXNvdXJjZUlu
Zm86OmVuY29kZShXVEY6OlBlcnNpc3RlbmNlOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
ICAgICByZXR1cm47CiAKICAgICBlbmNvZGVyIDw8IG1faXNTYW1lU2l0ZTsKKyAgICBlbmNvZGVy
IDw8IG1faXNBcHBJbml0aWF0ZWQ7CiAgICAgZW5jb2RlciA8PCBtX2ZpcnN0UGFydHlGb3JDb29r
aWVzOwogICAgIGVuY29kZXIgPDwgbV9yZXF1ZXN0SGVhZGVyczsKICAgICBlbmNvZGVyIDw8IG1f
cHJpb3JpdHk7CkBAIC04OSw2ICs5MCwxMiBAQCBzdGQ6Om9wdGlvbmFsPFN1YnJlc291cmNlSW5m
bz4gU3VicmVzb3VyY2VJbmZvOjpkZWNvZGUoV1RGOjpQZXJzaXN0ZW5jZTo6RGVjb2RlcgogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIGluZm8ubV9pc1NhbWVTaXRlID0gV1RGTW92
ZSgqaXNTYW1lU2l0ZSk7CiAKKyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlzQXBwSW5pdGlhdGVk
OworICAgIGRlY29kZXIgPj4gaXNBcHBJbml0aWF0ZWQ7CisgICAgaWYgKCFpc0FwcEluaXRpYXRl
ZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpbmZvLm1faXNBcHBJbml0aWF0
ZWQgPSBXVEZNb3ZlKCppc0FwcEluaXRpYXRlZCk7CisKICAgICBzdGQ6Om9wdGlvbmFsPFVSTD4g
Zmlyc3RQYXJ0eUZvckNvb2tpZXM7CiAgICAgZGVjb2RlciA+PiBmaXJzdFBhcnR5Rm9yQ29va2ll
czsKICAgICBpZiAoIWZpcnN0UGFydHlGb3JDb29raWVzKQpAQCAtMTU4LDYgKzE2NSw3IEBAIFN1
YnJlc291cmNlSW5mbzo6U3VicmVzb3VyY2VJbmZvKGNvbnN0IEtleSYga2V5LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmCiAgICAgLCBtX2ZpcnN0U2VlbihwcmV2aW91c0luZm8gPyBw
cmV2aW91c0luZm8tPmZpcnN0U2VlbigpIDogbV9sYXN0U2VlbikKICAgICAsIG1faXNUcmFuc2ll
bnQoIXByZXZpb3VzSW5mbykKICAgICAsIG1faXNTYW1lU2l0ZShyZXF1ZXN0LmlzU2FtZVNpdGUo
KSkKKyAgICAsIG1faXNBcHBJbml0aWF0ZWQocmVxdWVzdC5pc0FwcEluaXRpYXRlZCgpKQogICAg
ICwgbV9maXJzdFBhcnR5Rm9yQ29va2llcyhyZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCkp
CiAgICAgLCBtX3JlcXVlc3RIZWFkZXJzKHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpKQogICAg
ICwgbV9wcmlvcml0eShyZXF1ZXN0LnByaW9yaXR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggYzNkZjE1
M2UwZTZhMjdmYjY3MDQxNzAwM2EzNGQzMGI4MWM1NWMyOS4uYTIzMzFhOGEwM2RkMjRkYzEwNGYy
OGU2Y2E5OTYxOTBmN2U5ZGVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMjM1LDYgKzIzNSw5IEBAIHZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3Vy
Y2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgaWYgKCF0cnlMb2FkaW5nVXNpbmdVUkxTY2hlbWVI
YW5kbGVyKHJlc291cmNlTG9hZGVyLCB0cmFja2luZ1BhcmFtZXRlcnMpKSB7CiAgICAgICAgIFdF
QkxPQURFUlNUUkFURUdZX1JFTEVBU0VfTE9HKCJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIHNj
aGVkdWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyIpOwogCisgICAgICAgIGlmIChyZXNvdXJj
ZUxvYWRlci5yZXF1ZXN0KCkuaXNBcHBJbml0aWF0ZWQoKSkKKyAgICAgICAgICAgIFdURlJlcG9y
dEJhY2t0cmFjZVdpdGhQcmVmaXgoIldlYkxvYWRlclN0cmF0ZWd5Iik7CisKICNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCiAgICAgICAgIGlmICghcmVzb3VyY2VMb2FkZXIub3B0aW9ucygpLnNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyICYmIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbldlYktpdDo6c2hvdWxkSW50ZXJjZXB0UmVxdWVzdChyZXNvdXJjZUxvYWRlci5mcmFtZSgp
LCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkpKSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25XZWJLaXQ6OmludGVyY2VwdFJlcXVlc3QocmVzb3VyY2VMb2FkZXIsIFt0aGlz
LCBwcm90ZWN0ZWRSZXNvdXJjZUxvYWRlciA9IFJlZiB7IHJlc291cmNlTG9hZGVyIH0sIHRyYWNr
aW5nUGFyYW1ldGVycywgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
cmVzb3VyY2VdKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI5N2Ni
NDg0OTFjMjllODA3YTE2YjA1MTEzNmM0N2JiOTZhYTYwNDAuLmIxMmNjMTAxOGYxMWY1ZmYzODAy
OTU1YTBkNTZhZWViNTM4NTNjZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMi0yMCAg
QnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9wYWdhdGUg
YXBwLWluaXRpYXRlZCBzdGF0ZSB0byBuZXcgUmVzb3VyY2VSZXF1ZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MDE1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84NjEyODYzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1
dGlvbi1iZWFjb24taXNhcHBpbml0aWF0ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlz
YXBwaW5pdGlhdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNub3RhcHBpbml0aWF0ZWQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9h
cHAtYXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBwaW5pdGlhdGVkLmh0bWw6IEFkZGVkLgorCiAy
MDIxLTEyLTE3ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWJh
c2VsaW5lIGFmdGVyIHIyODcxOTkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzYXBwaW5pdGlhdGVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNhcHBpbml0aWF0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZmYzkxNmQyNjYyNWFiNTM3MjBlNGYxNGJlMGU2MzZmZWVkZTBjOTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAt
YXR0cmlidXRpb24tYmVhY29uLWlzYXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDIwIEBACitFbnN1cmUgYmVhY29ucyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5hdmlnYXRvci5zZW5kQmVhY29uKCIuLi9i
bGluay9zZW5kYmVhY29uL3Jlc291cmNlcy9zYXZlLWJlYWNvbi5weT9uYW1lPWNvb2tpZSIsICJC
bGlwIik7IGlzIHRydWUKK1BBU1MgQmVhY29uIHNlbnQgc3VjY2Vzc2Z1bGx5CitQQVNTIENvbnRl
bnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNTIENvb2tpZTogaGVsbG89d29y
bGQKK1BBU1MgT3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAKK1BBU1MgUmVmZXJlcjogaHR0
cDovLzEyNy4wLjAuMTo4MDAwL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVh
Y29uLWlzYXBwaW5pdGlhdGVkLmh0bWwKK1BBU1MgUmVxdWVzdC1NZXRob2Q6IFBPU1QKK1BBU1Mg
TGVuZ3RoOiA0CitQQVNTIEJvZHk6IEJsaXAKK1BBU1MKK1BBU1MgU3VjY2Vzc2Z1bGx5IGxvYWRl
ZCBvbmx5IGFwcC1pbml0aWF0ZWQgYmVhY29uIHJlcXVlc3RzCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc2Fw
cGluaXRpYXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc2FwcGluaXRpYXRlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJmYmVjNzlhNTA1MDIxMGVjMzMyZDJiMzM3NTRhMzYyOWU4ODU2MmYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmli
dXRpb24tYmVhY29uLWlzYXBwaW5pdGlhdGVkLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NU
WVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD10cnVlIF0g
LS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdFbnN1cmUgYmVhY29ucyBhcmUgYXR0cmlidXRlZCBjb3Jy
ZWN0bHkuJyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gYXNr
Rm9yQXR0cmlidXRpb24oKSB7CisgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0g
dGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworICAgIHZhciBkaWRMb2Fk
Tm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRl
ZFJlcXVlc3QoKTsKKworICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgewor
ICAgICAgICB0ZXN0RmFpbGVkKCJEaWQgbG9hZCBub24tYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJE
aWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1
bGx5IGxvYWRlZCBvbmx5IGFwcC1pbml0aWF0ZWQgYmVhY29uIHJlcXVlc3RzIik7CisKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdHJ5IHsKKyAg
ICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICB4aHIub3Blbigi
R0VUIiwgIi4uL2Nvb2tpZXMvcmVzb3VyY2VzL3NldENvb2tpZXMuY2dpIiwgZmFsc2UpOworICAg
ICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigiU0VULUNPT0tJRSIsICJoZWxsbz13b3JsZDtwYXRo
PS8iKTsKKyAgICAgICAgeGhyLnNlbmQobnVsbCk7CisgICAgICAgIGlmICh4aHIuc3RhdHVzICE9
IDIwMCkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiY29va2llIG5vdCBzZXQiKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICB0ZXN0RmFpbGVkKCJjb29raWUgbm90IHNldCIpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9CisKKyAgICBzaG91bGRCZVRydWUoJ25hdmlnYXRvci5zZW5kQmVhY29uKCIuLi9i
bGluay9zZW5kYmVhY29uL3Jlc291cmNlcy9zYXZlLWJlYWNvbi5weT9uYW1lPWNvb2tpZSIsICJC
bGlwIik7Jyk7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5v
cGVuKCJHRVQiLCAiLi4vYmxpbmsvc2VuZGJlYWNvbi9yZXNvdXJjZXMvY2hlY2stYmVhY29uLnB5
P25hbWU9Y29va2llIik7CisgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
dmFyIGxpbmVzID0geGhyLnJlc3BvbnNlVGV4dC5zcGxpdCgiXG4iKTsKKyAgICAgICAgZm9yICh2
YXIgaSBpbiBsaW5lcykKKyAgICAgICAgICAgIHRlc3RQYXNzZWQobGluZXNbaV0pOworICAgICAg
ICBhc2tGb3JBdHRyaWJ1dGlvbigpOworICAgIH07CisgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlv
biAoKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIlVuYWJsZSB0byBmZXRjaCBiZWFjb24gc3RhdHVz
Iik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH07CisKKyAgICB4aHIuc2VuZCgpOwor
fQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBw
aW5pdGlhdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNub3RhcHBpbml0aWF0ZWQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcyM2NlMzZjZjMxOTFiOWMxNTE2MTQzNGY5YmZiZmNhMjg1OGUz
MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBwaW5pdGlhdGVkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIwIEBACitFbnN1cmUgYmVhY29ucyBhcmUgYXR0cmlidXRlZCBjb3Jy
ZWN0bHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5hdmlnYXRvci5z
ZW5kQmVhY29uKCIuLi9ibGluay9zZW5kYmVhY29uL3Jlc291cmNlcy9zYXZlLWJlYWNvbi5weT9u
YW1lPWNvb2tpZSIsICJCbGlwIik7IGlzIHRydWUKK1BBU1MgQmVhY29uIHNlbnQgc3VjY2Vzc2Z1
bGx5CitQQVNTIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNTIENv
b2tpZTogaGVsbG89d29ybGQKK1BBU1MgT3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAKK1BB
U1MgUmVmZXJlcjogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAt
YXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBwaW5pdGlhdGVkLmh0bWwKK1BBU1MgUmVxdWVzdC1N
ZXRob2Q6IFBPU1QKK1BBU1MgTGVuZ3RoOiA0CitQQVNTIEJvZHk6IEJsaXAKK1BBU1MKK1BBU1Mg
U3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbi1hcHAtaW5pdGlhdGVkIGJlYWNvbiByZXF1ZXN0
cworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1h
dHRyaWJ1dGlvbi1iZWFjb24taXNub3RhcHBpbml0aWF0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNub3Rh
cHBpbml0aWF0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjA1YTIxMWUyMDFkODI4NDRjMDg2NmQ1YzFl
OThlNTUyZGQyNGUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc25vdGFwcGluaXRpYXRl
ZC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0Vu
c3VyZSBiZWFjb25zIGFyZSBhdHRyaWJ1dGVkIGNvcnJlY3RseS4nKTsKKword2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBhc2tGb3JBdHRyaWJ1dGlvbigpIHsKKyAgICB2
YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0
aWF0ZWRSZXF1ZXN0KCk7CisgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0g
dGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgaWYgKCFk
aWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJEaWQg
bm90IGxvYWQgbm9uLWFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChkaWRMb2FkQXBwSW5pdGlh
dGVkUmVxdWVzdCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJEaWQgbG9hZCBhcHAgaW5pdGlhdGVk
IHJlcXVlc3QiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uLWFwcC1p
bml0aWF0ZWQgYmVhY29uIHJlcXVlc3RzIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKwor
ZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHhociA9IG5ldyBY
TUxIdHRwUmVxdWVzdCgpOworICAgICAgICB4aHIub3BlbigiR0VUIiwgIi4uL2Nvb2tpZXMvcmVz
b3VyY2VzL3NldENvb2tpZXMuY2dpIiwgZmFsc2UpOworICAgICAgICB4aHIuc2V0UmVxdWVzdEhl
YWRlcigiU0VULUNPT0tJRSIsICJoZWxsbz13b3JsZDtwYXRoPS8iKTsKKyAgICAgICAgeGhyLnNl
bmQobnVsbCk7CisgICAgICAgIGlmICh4aHIuc3RhdHVzICE9IDIwMCkgeworICAgICAgICAgICAg
dGVzdEZhaWxlZCgiY29va2llIG5vdCBzZXQiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0RmFpbGVkKCJjb29r
aWUgbm90IHNldCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisKKyAgICBzaG91
bGRCZVRydWUoJ25hdmlnYXRvci5zZW5kQmVhY29uKCIuLi9ibGluay9zZW5kYmVhY29uL3Jlc291
cmNlcy9zYXZlLWJlYWNvbi5weT9uYW1lPWNvb2tpZSIsICJCbGlwIik7Jyk7CisgICAgdmFyIHho
ciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAiLi4vYmxpbmsv
c2VuZGJlYWNvbi9yZXNvdXJjZXMvY2hlY2stYmVhY29uLnB5P25hbWU9Y29va2llIik7CisgICAg
eGhyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGxpbmVzID0geGhyLnJlc3Bv
bnNlVGV4dC5zcGxpdCgiXG4iKTsKKyAgICAgICAgZm9yICh2YXIgaSBpbiBsaW5lcykKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQobGluZXNbaV0pOworICAgICAgICBhc2tGb3JBdHRyaWJ1dGlvbigp
OworICAgIH07CisgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRlc3RG
YWlsZWQoIlVuYWJsZSB0byBmZXRjaCBiZWFjb24gc3RhdHVzIik7CisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH07CisKKyAgICB4aHIuc2VuZCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447742</attachid>
            <date>2021-12-21 12:31:13 -0800</date>
            <delta_ts>2021-12-21 16:22:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234015-20211221123113.patch</filename>
            <type>text/plain</type>
            <size>37580</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdjZTRmOGE1ZTljMzFk
OWE4MjIwMzg2NzdjMDZhMGQxOTM5ZjVlMC4uNTUxMDc4NzJjMzY4MzA3YTgwY2Q3OGFkNTI2YzU3
MDM2NDNkNzM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTEyLTIwICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFByb3BhZ2F0ZSBhcHAt
aW5pdGlhdGVkIHN0YXRlIHRvIG5ldyBSZXNvdXJjZVJlcXVlc3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg2MTI4NjM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdoaWxlIHJldmlld2luZyBsb2dnaW5nIHdlIGhhdmUgZm91bmQgdGhhdCBzb21l
IFJlc291cmNlUmVxdWVzdCBvYmplY3RzCisgICAgICAgIGFyZSBtaXNzaW5nIHRoZSBjb3JyZWN0
IHN0YXRlIGZvciBhcHAtaW5pdGlhdGVkIGxvYWRzLiBUeXBpY2FsbHksIHRoZXNlCisgICAgICAg
IGFyZSBjYXNlcyB3aGVyZSBhIG5ldyBSZXNvdXJjZVJlcXVlc3QgaXMgY3JlYXRlZCBmcm9tIGEg
VVJMIHN0cmluZywgbG9zaW5nCisgICAgICAgIHRoZSBjb250ZXh0IHRoYXQgY2FtZSB3aXRoIHRo
ZSBvcmlnaW5hbCBsb2FkIChvciB0aGUgY29udGV4dCBvZiB0aGUgcGFnZQorICAgICAgICB0cmln
Z2VyaW5nIHRoZSBsb2FkKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgbnVtYmVy
IG9mIHN1Y2ggY2FzZXMuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNhcHBpbml0aWF0ZWQuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJl
YWNvbi1pc25vdGFwcGluaXRpYXRlZC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2JlYWNvbi9O
YXZpZ2F0b3JCZWFjb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmVhY29uOjpz
ZW5kQmVhY29uKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlUmVxdWVz
dCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFr
ZS5oOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlUG90ZW50aWFsQWNjZXNzQ29udHJvbFJlcXVlc3QpOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZFVSTEludG9DaGlsZEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyOjp3aWxsTG9hZE1lZGlhRWxlbWVudFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKToK
KyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OlN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUpOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y3JlYXRlV2lu
ZG93KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbik6CisKIDIwMjEtMTItMTcg
IEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gVXNl
IHRoZSBpbmxpbmUgYm94J3MgZGlyZWN0aW9uIHRvIGRlY2lkZSBpZiBzdGFydC9lbmQgZGVjb3Jh
dGlvbnMgc2hvdWxkIGJlIGFwcGxpZWQgb24gZmlyc3QvbGFzdCBib3gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2Q3
NTk1ZjY5MGZlZmFiNDNiYzQwMzFlZTBjOGMxNTZjN2RkZjkwNy4uMGVhYTViODY1ZDRjNTdlZTA1
NTdkZjU2NTNkNGFlMmIwZjFjYmI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0x
Mi0yMCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9w
YWdhdGUgYXBwLWluaXRpYXRlZCBzdGF0ZSB0byBuZXcgUmVzb3VyY2VSZXF1ZXN0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MDE1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84NjEyODYzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGlsZSByZXZpZXdpbmcgbG9nZ2luZyB3ZSBoYXZlIGZvdW5k
IHRoYXQgc29tZSBSZXNvdXJjZVJlcXVlc3Qgb2JqZWN0cworICAgICAgICBhcmUgbWlzc2luZyB0
aGUgY29ycmVjdCBzdGF0ZSBmb3IgYXBwLWluaXRpYXRlZCBsb2Fkcy4gVHlwaWNhbGx5LCB0aGVz
ZQorICAgICAgICBhcmUgY2FzZXMgd2hlcmUgYSBuZXcgUmVzb3VyY2VSZXF1ZXN0IGlzIGNyZWF0
ZWQgZnJvbSBhIFVSTCBzdHJpbmcsIGxvc2luZworICAgICAgICB0aGUgY29udGV4dCB0aGF0IGNh
bWUgd2l0aCB0aGUgb3JpZ2luYWwgbG9hZCAob3IgdGhlIGNvbnRleHQgb2YgdGhlIHBhZ2UKKyAg
ICAgICAgdHJpZ2dlcmluZyB0aGUgbG9hZCkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjb3JyZWN0
cyBhIG51bWJlciBvZiBzdWNoIGNhc2VzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OlN1YnJlc291cmNlSW5mbzo6ZW5jb2RlIGNvbnN0KTogQ29ycmVjdCBtaXNz
aW5nIHNlcmlhbGl6YXRpb24gZm9yCisgICAgICAgIGFwcC1pbml0aWF0ZWQgc3RhdGUuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3VicmVzb3VyY2VJbmZvOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN1YnJlc291cmNlSW5mbzo6U3VicmVzb3VyY2VJ
bmZvKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKToKKwog
MjAyMS0xMi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSBBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFnZUdyb3VwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29uLmNwcAppbmRl
eCA2OWRlYzVjYjZmYmM1YmY5ZDhiNzE4Y2NlMjEwMTdhM2RiYjdkOTRmLi4zOGVkNDJhMjJhODgx
ZWIyMWU3NTZhMGY4MjlmNTUxM2MwNDI0OTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2JlYWNvbi9OYXZpZ2F0b3JCZWFjb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYmVhY29uL05hdmlnYXRvckJlYWNvbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkNhY2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIk5hdmln
YXRvci5oIgpAQCAtMTIyLDYgKzEyMyw4IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IE5hdmlnYXRvckJl
YWNvbjo6c2VuZEJlYWNvbihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYKICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChwYXJzZWRVcmwpOwogICAgIHJlcXVlc3Quc2V0SFRUUE1l
dGhvZCgiUE9TVCJfcyk7CiAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0ZXIoUmVzb3VyY2VSZXF1ZXN0
OjpSZXF1ZXN0ZXI6OkJlYWNvbik7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZG9j
dW1lbnQubG9hZGVyKCkpCisgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1l
bnRMb2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogCiAgICAgUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zIG9wdGlvbnM7CiAgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggMzM4NWQyNzY2
NDViMTJkZDY1NDA0NjFhNmM2N2YyODUyYjk1ZGI0NC4uMmY3YjgzMzdiMDRiNmY5ZTBjODEyNDg1
MzAyMDhiNTI0N2JmYTQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgpAQCAtOTIsNyArOTMsMTIgQEAgV2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0YXR1cyBXZWJT
b2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTCYgcmVxdWVzdGVkVVIKICAgICBtX2FsbG93
Q29va2llcyA9IHZhbGlkYXRlZFVSTC0+YXJlQ29va2llc0FsbG93ZWQ7CiAgICAgU3RyaW5nIHVz
ZXJBZ2VudCA9IG1fZG9jdW1lbnQtPnVzZXJBZ2VudChtX2RvY3VtZW50LT51cmwoKSk7CiAgICAg
U3RyaW5nIGNsaWVudE9yaWdpbiA9IG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkudG9TdHJp
bmcoKTsKLSAgICBtX2hhbmRzaGFrZSA9IG1ha2VVbmlxdWU8V2ViU29ja2V0SGFuZHNoYWtlPih2
YWxpZGF0ZWRVUkwtPnVybCwgcHJvdG9jb2wsIHVzZXJBZ2VudCwgY2xpZW50T3JpZ2luLCBtX2Fs
bG93Q29va2llcyk7CisKKyAgICBib29sIGlzQXBwSW5pdGlhdGVkID0gdHJ1ZTsKKyAgICBpZiAo
YXV0byogZG9jdW1lbnRMb2FkZXIgPSBtX2RvY3VtZW50LT5sb2FkZXIoKSkKKyAgICAgICAgaXNB
cHBJbml0aWF0ZWQgPSBkb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0
ZWQoKTsKKworICAgIG1faGFuZHNoYWtlID0gbWFrZVVuaXF1ZTxXZWJTb2NrZXRIYW5kc2hha2U+
KHZhbGlkYXRlZFVSTC0+dXJsLCBwcm90b2NvbCwgdXNlckFnZW50LCBjbGllbnRPcmlnaW4sIG1f
YWxsb3dDb29raWVzLCBpc0FwcEluaXRpYXRlZCk7CiAgICAgbV9oYW5kc2hha2UtPnJlc2V0KCk7
CiAgICAgbV9oYW5kc2hha2UtPmFkZEV4dGVuc2lvblByb2Nlc3NvcihtX2RlZmxhdGVGcmFtZXIu
Y3JlYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKCkpOwogICAgIGlmIChtX3Byb2dyZXNzSWRlbnRpZmll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRIYW5kc2hha2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldEhhbmRzaGFrZS5jcHAKaW5kZXggZDgyODIyNDBhMmJiY2I5MmEzNzcyMTUwNzE1Yzc3NGEz
MWFmNDRmOC4uYzQ1MzhiOThkMGJiOTJlYTlkNjFkMjliN2YwOTUxNzA4NjdkZmY1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFr
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhh
bmRzaGFrZS5jcHAKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTExMiw3ICsxMTIsNyBAQCBTdHJpbmcgV2Vi
U29ja2V0SGFuZHNoYWtlOjpnZXRFeHBlY3RlZFdlYlNvY2tldEFjY2VwdChjb25zdCBTdHJpbmcm
IHNlY1dlYlNvY2tldAogICAgIHJldHVybiBiYXNlNjRFbmNvZGVUb1N0cmluZyhoYXNoLmRhdGEo
KSwgU0hBMTo6aGFzaFNpemUpOwogfQogCi1XZWJTb2NrZXRIYW5kc2hha2U6OldlYlNvY2tldEhh
bmRzaGFrZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgY2xpZW50T3JpZ2luLCBib29sIGFsbG93Q29v
a2llcykKK1dlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgU3RyaW5nJiBjbGllbnRPcmlnaW4sIGJvb2wgYWxsb3dDb29raWVzLCBib29sIGlzQXBwSW5p
dGlhdGVkKQogICAgIDogbV91cmwodXJsKQogICAgICwgbV9jbGllbnRQcm90b2NvbChwcm90b2Nv
bCkKICAgICAsIG1fc2VjdXJlKG1fdXJsLnByb3RvY29sSXMoIndzcyIpKQpAQCAtMTIwLDYgKzEy
MCw3IEBAIFdlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjCiAgICAgLCBtX3VzZXJBZ2VudCh1c2VyQWdl
bnQpCiAgICAgLCBtX2NsaWVudE9yaWdpbihjbGllbnRPcmlnaW4pCiAgICAgLCBtX2FsbG93Q29v
a2llcyhhbGxvd0Nvb2tpZXMpCisgICAgLCBtX2lzQXBwSW5pdGlhdGVkKGlzQXBwSW5pdGlhdGVk
KQogewogICAgIG1fc2VjV2ViU29ja2V0S2V5ID0gZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkoKTsK
ICAgICBtX2V4cGVjdGVkQWNjZXB0ID0gZ2V0RXhwZWN0ZWRXZWJTb2NrZXRBY2NlcHQobV9zZWNX
ZWJTb2NrZXRLZXkpOwpAQCAtMjEyLDYgKzIxMyw3IEBAIFJlc291cmNlUmVxdWVzdCBXZWJTb2Nr
ZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZVJlcXVlc3QoY29uc3QgRnVuY3Rpb248U3RyaW5n
CiAgICAgaWYgKCFleHRlbnNpb25zLmlzRW1wdHkoKSkKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQ
SGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlNlY1dlYlNvY2tldEV4dGVuc2lvbnMsIGV4dGVu
c2lvbnMpOwogICAgIHJlcXVlc3Quc2V0SFRUUFVzZXJBZ2VudChtX3VzZXJBZ2VudCk7CisgICAg
cmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChtX2lzQXBwSW5pdGlhdGVkKTsKICAgICByZXR1cm4g
cmVxdWVzdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oCmluZGV4IDVlNjRjMTgzNGY2ZTgzNjE0ZDMwMWM0ZmVk
ZDM5ZDg4M2NhZDdjMTIuLjM4MWYxNTkwOTY1OGVjYzA2ODQ2YTNmYmU4NzA4YjBkNTQ5NjZlZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRI
YW5kc2hha2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0SGFuZHNoYWtlLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTQ4LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIGVudW0gTW9kZSB7CiAg
ICAgICAgIEluY29tcGxldGUsIE5vcm1hbCwgRmFpbGVkLCBDb25uZWN0ZWQKICAgICB9OwotICAg
IFdlYlNvY2tldEhhbmRzaGFrZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBjbGllbnRPcmlnaW4sIGJvb2wg
YWxsb3dDb29raWVzKTsKKyAgICBXZWJTb2NrZXRIYW5kc2hha2UoY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBwcm90b2NvbCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYg
Y2xpZW50T3JpZ2luLCBib29sIGFsbG93Q29va2llcywgYm9vbCBpc0FwcEluaXRpYXRlZCk7CiAg
ICAgfldlYlNvY2tldEhhbmRzaGFrZSgpOwogCiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdDsK
QEAgLTEwMiw2ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKICAg
ICBTdHJpbmcgbV9jbGllbnRPcmlnaW47CiAgICAgYm9vbCBtX2FsbG93Q29va2llczsKKyAgICBi
b29sIG1faXNBcHBJbml0aWF0ZWQ7CiAKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fc2VydmVySGFu
ZHNoYWtlUmVzcG9uc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9z
c09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5jcHAKaW5kZXggODc5NmZkZDNlNTcyZTAwNGFlNzBiY2NhYjY5YTM5
ZTVhZTJkNGY0Yi4uOWFhYjM5YTllMWQ0YTI2NTliMDE0MDA3MTg2MTQ4ZjY3ZDUyNDdmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5j
cHAKQEAgLTEzOSw2ICsxMzksOSBAQCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY3JlYXRlUG90ZW50
aWFsQWNjZXNzQ29udHJvbFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdQogICAgICAgICB9
CiAgICAgfQogCisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZG9jdW1lbnQubG9hZGVy
KCkpCisgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxh
c3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOworCiAgICAgaWYgKGNyb3NzT3JpZ2luQXR0
cmlidXRlLmlzTnVsbCgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBjYWNoZWRS
ZXF1ZXN0IHsgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSB9OwogICAgICAgICBj
YWNoZWRSZXF1ZXN0LnNldE9yaWdpbihkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDZiZjNhYzI5N2VjNmIyNjNh
MDc4NjQwYmNmM2FkNTc3OWRiMGZlZGIuLjk1MGM2ZGE1M2RkYzkyOGNlNjRjZjcyNWNmMTJhMGVm
NjRlMTg5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAt
MTc1LDYgKzE3NSw4IEBAIERvY3VtZW50TG9hZGVyOjpEb2N1bWVudExvYWRlcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1dGVECiAgICAgLCBtX3N1YnN0aXR1
dGVSZXNvdXJjZURlbGl2ZXJ5VGltZXIoKnRoaXMsICZEb2N1bWVudExvYWRlcjo6c3Vic3RpdHV0
ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVkKQogICAgICwgbV9hcHBsaWNhdGlvbkNhY2hlSG9z
dChtYWtlVW5pcXVlPEFwcGxpY2F0aW9uQ2FjaGVIb3N0PigqdGhpcykpCiB7CisgICAgaWYgKHJl
cXVlc3QuaXNBcHBJbml0aWF0ZWQoKSkKKyAgICAgICAgV1RGUmVwb3J0QmFja3RyYWNlV2l0aFBy
ZWZpeCgiRG9jdW1lbnRMb2FkZXJDb25zdHJ1Y3RvciIpOwogfQogCiBGcmFtZUxvYWRlciogRG9j
dW1lbnRMb2FkZXI6OmZyYW1lTG9hZGVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCmluZGV4IDZjNWVlM2E5YjMxYWU4Yjg0ZGI5MjBiNjZlYmYyMTRmMjZlYzlhZDYu
LmExMGQ4MzI3OWM0YjE1YWI0M2E5MDE2ZmUwNjYyNzk0NTIzMjNmNDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAqIENvcHlyaWdo
dCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgpAQCAtOTQyLDcgKzk0Miw3IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrQ2FsbEltcGxpY2l0Q2xvc2UoKQogICAgIG1fZnJhbWUu
ZG9jdW1lbnQoKS0+aW1wbGljaXRDbG9zZSgpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
VVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJlciwg
RnJhbWUqIGNoaWxkRnJhbWUpCit2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJh
bWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJlciwgRnJhbWUqIGNoaWxkRnJh
bWUsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiBhcHBJbml0aWF0ZWQpCiB7CiAgICAgRlJBTUVMT0FE
RVJfUkVMRUFTRV9MT0coUmVzb3VyY2VMb2FkaW5nLCAibG9hZFVSTEludG9DaGlsZEZyYW1lOiBm
cmFtZSBsb2FkIHN0YXJ0ZWQiKTsKIApAQCAtOTc0LDYgKzk3NCw4IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmxvYWRVUkxJbnRvQ2hpbGRGcmFtZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBy
ZWZlcmVyLCBGCiAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKm1fZnJh
bWUuZG9jdW1lbnQoKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB7IHVy
bCB9LCBzZWxmVGFyZ2V0RnJhbWVOYW1lKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lIH07CiAgICAg
ZnJhbWVMb2FkUmVxdWVzdC5zZXROZXdGcmFtZU9wZW5lclBvbGljeShOZXdGcmFtZU9wZW5lclBv
bGljeTo6U3VwcHJlc3MpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0JhY2tGb3J3YXJk
TGlzdChMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMpOworICAgIGlmICghIWFwcEluaXRpYXRlZCkK
KyAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRJc0FwcEluaXRp
YXRlZCgqYXBwSW5pdGlhdGVkKTsKICAgICBjaGlsZEZyYW1lLT5sb2FkZXIoKS5sb2FkVVJMKFdU
Rk1vdmUoZnJhbWVMb2FkUmVxdWVzdCksIHJlZmVyZXIsIEZyYW1lTG9hZFR5cGU6OlJlZGlyZWN0
V2l0aExvY2tlZEJhY2tGb3J3YXJkTGlzdCwgbnVsbHB0ciwgeyB9LCBzdGQ6Om51bGxvcHQsIFtd
IHsgfSk7CiB9CiAKQEAgLTE2ODEsNyArMTY4Myw5IEBAIGJvb2wgRnJhbWVMb2FkZXI6OndpbGxM
b2FkTWVkaWFFbGVtZW50VVJMKFVSTCYgdXJsLCBOb2RlJiBpbml0aWF0b3JOb2RlKQogCiAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKICAgICByZXF1ZXN0LnNldEluc3BlY3Rvcklu
aXRpYXRvck5vZGVJZGVudGlmaWVyKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aWRlbnRpZmll
ckZvck5vZGUoaW5pdGlhdG9yTm9kZSkpOwotCisgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpCisg
ICAgICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQobV9kb2N1bWVudExvYWRlci0+bGFzdE5h
dmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7CisgICAgCiAgICAgUmVzb3VyY2VMb2FkZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXI7CiAgICAgUmVzb3VyY2VFcnJvciBlcnJvcjsKICAgICByZXF1ZXN0
RnJvbURlbGVnYXRlKHJlcXVlc3QsIGlkZW50aWZpZXIsIGVycm9yKTsKQEAgLTIxMjgsNiArMjEz
Miw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgICAg
ICAgICBSZXNvdXJjZUVycm9yIGVycm9yOwogICAgICAgICAgICAgUmVzb3VyY2VMb2FkZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXI7CiAgICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChy
ZXNwb25zZS51cmwoKSk7CisgICAgICAgICAgICBpZiAobV9kb2N1bWVudExvYWRlcikKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKG1fZG9jdW1lbnRMb2FkZXItPmxh
c3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogICAgICAgICAgICAgcmVxdWVzdEZyb21E
ZWxlZ2F0ZShyZXF1ZXN0LCBpZGVudGlmaWVyLCBlcnJvcik7CiAgICAgICAgICAgICAvLyBGSVhN
RTogSWYgd2UgZ2V0IGEgcmVzb3VyY2Ugd2l0aCBtb3JlIHRoYW4gMkIgYnl0ZXMsIHRoaXMgY29k
ZSB3b24ndCBkbyB0aGUgcmlnaHQgdGhpbmcuCiAgICAgICAgICAgICAvLyBIb3dldmVyLCB3aXRo
IHRvZGF5J3MgY29tcHV0ZXJzIGFuZCBuZXR3b3JraW5nIHNwZWVkcywgdGhpcyB3b24ndCBoYXBw
ZW4gaW4gcHJhY3RpY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDc1YWUy
ODRjMmMzNGZkZDg5ZTg1NjRkYTQzOWRhNzcyNWFmYmM4ZTYuLmY5MDIwM2RhOTA1MjUyMWVlN2Qw
NWRlZGIwNjczN2IxM2FmNjhkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBA
IC00MTksNyArNDE5LDcgQEAgcHJpdmF0ZToKICAgICBIaXN0b3J5SXRlbSogcmVxdWVzdGVkSGlz
dG9yeUl0ZW0oKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RlZEhpc3RvcnlJdGVtLmdldCgpOyB9
CiAKICAgICAvLyBTdWJmcmFtZUxvYWRlciBzcGVjaWZpYy4KLSAgICB2b2lkIGxvYWRVUkxJbnRv
Q2hpbGRGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVyZXIsIEZyYW1lKik7Cisg
ICAgdm9pZCBsb2FkVVJMSW50b0NoaWxkRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBy
ZWZlcmVyLCBGcmFtZSosIHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiBhcHBJbml0aWF0ZWQpOwogICAg
IHZvaWQgc3RhcnRlZCgpOwogCiAgICAgLy8gUG9saWN5Q2hlY2tlciBzcGVjaWZpYy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCA3NjRmODg2
ODQ0N2I2ZTVhNjQ3ZDk5MDgxOWZjNGRlZDRmZDIxYzFjLi4xZmUwYjk4NDUwMWFmNzExMDMxZjg0
YTZhZTA2YTNkYzE1NWNkMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvblNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAo
QykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJpZ2h0IChDKSAy
MDA5IEFkYW0gQmFydGguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0xOTQsNiArMTk0LDggQEAg
cHVibGljOgogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0IHsgdXJsKCks
IHJlZmVycmVyKCksIHJlZnJlc2ggPyBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVsb2Fk
SWdub3JpbmdDYWNoZURhdGEgOiBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6VXNlUHJvdG9j
b2xDYWNoZVBvbGljeSB9OwogICAgICAgICBpZiAoaW5pdGlhdGVkQnlNYWluRnJhbWUoKSA9PSBJ
bml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzKQogICAgICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNl
dFJlcXVlc3RlcihSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbik7CisgICAgICAgIGlm
IChhdXRvKiBkb2N1bWVudExvYWRlciA9IGluaXRpYXRpbmdEb2N1bWVudCgpLmxvYWRlcigpKQor
ICAgICAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKGRvY3VtZW50TG9h
ZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsKICAgICAgICAgRnJhbWVMb2Fk
UmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0RvY3VtZW50KCksICpzZWN1cml0
eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIHNlbGZUYXJnZXRGcmFtZU5hbWUo
KSwgaW5pdGlhdGVkQnlNYWluRnJhbWUoKSB9OwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNl
dExvY2tIaXN0b3J5KGxvY2tIaXN0b3J5KCkpOwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNl
dExvY2tCYWNrRm9yd2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKQEAgLTIyNiw2ICsy
MjgsOCBAQCBwdWJsaWM6CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRp
Y2F0b3IgeyB1c2VyR2VzdHVyZVRvRm9yd2FyZCgpIH07CiAKICAgICAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlc291cmNlUmVxdWVzdCB7IHVybCgpLCByZWZlcnJlcigpLCBSZXNvdXJjZVJlcXVlc3RD
YWNoZVBvbGljeTo6VXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9OworICAgICAgICBpZiAoYXV0byog
ZG9jdW1lbnRMb2FkZXIgPSBpbml0aWF0aW5nRG9jdW1lbnQoKS5sb2FkZXIoKSkKKyAgICAgICAg
ICAgIHJlc291cmNlUmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChkb2N1bWVudExvYWRlci0+bGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7CiAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3Qg
ZnJhbWVMb2FkUmVxdWVzdCB7IGluaXRpYXRpbmdEb2N1bWVudCgpLCAqc2VjdXJpdHlPcmlnaW4o
KSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBzZWxmVGFyZ2V0RnJhbWVOYW1lKCksIGluaXRp
YXRlZEJ5TWFpbkZyYW1lKCkgfTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrSGlz
dG9yeShsb2NrSGlzdG9yeSgpKTsKICAgICAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrQmFj
a0ZvcndhcmRMaXN0KGxvY2tCYWNrRm9yd2FyZExpc3QoKSk7CkBAIC0yNTMsNiArMjU3LDggQEAg
cHVibGljOgogICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yIHsg
dXNlckdlc3R1cmVUb0ZvcndhcmQoKSB9OwogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNv
dXJjZVJlcXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xp
Y3k6OlJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhIH07CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVu
dExvYWRlciA9IGluaXRpYXRpbmdEb2N1bWVudCgpLmxvYWRlcigpKQorICAgICAgICAgICAgcmVz
b3VyY2VSZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKGRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdh
dGlvbldhc0FwcEluaXRpYXRlZCgpKTsKICAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxv
YWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0RvY3VtZW50KCksICpzZWN1cml0eU9yaWdpbigpLCBXVEZN
b3ZlKHJlc291cmNlUmVxdWVzdCksIHNlbGZUYXJnZXRGcmFtZU5hbWUoKSwgaW5pdGlhdGVkQnlN
YWluRnJhbWUoKSB9OwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tIaXN0b3J5KGxv
Y2tIaXN0b3J5KCkpOwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExvY2tCYWNrRm9yd2Fy
ZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKQEAgLTM2OCw2ICszNzQsOCBAQCBwdWJsaWM6
CiAgICAgICAgIFN1YnN0aXR1dGVEYXRhIHJlcGxhY2VtZW50RGF0YSB7IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKCksIG1fb3JpZ2luRG9jdW1lbnQudXJsKCksIHJlcGxhY2VtZW50UmVzcG9uc2UsIFN1
YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6OkhpZGRlbiB9OwogCiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyBtX29yaWdpbkRvY3VtZW50LnVy
bCgpLCBlbXB0eVN0cmluZygpLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVsb2FkSWdu
b3JpbmdDYWNoZURhdGEgfTsKKyAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gbV9v
cmlnaW5Eb2N1bWVudC5sb2FkZXIoKSkKKyAgICAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRJ
c0FwcEluaXRpYXRlZChkb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0
ZWQoKSk7CiAgICAgICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7IG1fb3Jp
Z2luRG9jdW1lbnQsIG1fb3JpZ2luRG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShy
ZXNvdXJjZVJlcXVlc3QpLCB7IH0sIGluaXRpYXRlZEJ5TWFpbkZyYW1lKCkgfTsKICAgICAgICAg
ZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrSGlzdG9yeShsb2NrSGlzdG9yeSgpKTsKICAgICAgICAg
ZnJhbWVMb2FkUmVxdWVzdC5zZXRMb2NrQmFja0ZvcndhcmRMaXN0KGxvY2tCYWNrRm9yd2FyZExp
c3QoKSk7CkBAIC00NzAsNyArNDc4LDkgQEAgdm9pZCBOYXZpZ2F0aW9uU2NoZWR1bGVyOjpzY2hl
ZHVsZUxvY2F0aW9uQ2hhbmdlKERvY3VtZW50JiBpbml0aWF0aW5nRG9jdW1lbnQsIFMKICAgICAg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdCB7IG1fZnJhbWUuZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwodXJsLnN0cmluZygpKSwgcmVmZXJyZXIsIFJlc291cmNlUmVxdWVzdENhY2hl
UG9saWN5OjpVc2VQcm90b2NvbENhY2hlUG9saWN5IH07CiAgICAgICAgIGF1dG8qIGZyYW1lID0g
bGV4aWNhbEZyYW1lRnJvbUNvbW1vblZNKCk7CiAgICAgICAgIGF1dG8gaW5pdGlhdGVkQnlNYWlu
RnJhbWUgPSBmcmFtZSAmJiBmcmFtZS0+aXNNYWluRnJhbWUoKSA/IEluaXRpYXRlZEJ5TWFpbkZy
YW1lOjpZZXMgOiBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93bjsKLSAgICAgICAgCisgICAg
ICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IGluaXRpYXRpbmdEb2N1bWVudC5sb2FkZXIo
KSkKKyAgICAgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChkb2N1bWVu
dExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSk7CisKICAgICAgICAgRnJh
bWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgaW5pdGlhdGluZ0RvY3VtZW50LCBzZWN1
cml0eU9yaWdpbiwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBzZWxmVGFyZ2V0RnJhbWVOYW1l
KCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lIH07CiAgICAgICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0
TG9ja0hpc3RvcnkobG9ja0hpc3RvcnkpOwogICAgICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldExv
Y2tCYWNrRm9yd2FyZExpc3QobG9ja0JhY2tGb3J3YXJkTGlzdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCA4MjkwMThjNWM5ODEwMDE0NzA2NGZlZDZjMWU0
ZDlmZWYyOTgxYWVjLi5jNTdmNjNiZWQ0YjUzNzk0N2EyN2ZiZGVkYjQ4YTVmY2M2NjFlMTgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTI5Nyw3ICsyOTcs
MTEgQEAgUmVmUHRyPEZyYW1lPiBGcmFtZUxvYWRlcjo6U3ViZnJhbWVMb2FkZXI6OmxvYWRTdWJm
cmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQmIG8KICAgICAgICAgcG9saWN5ID0gZG9jdW1lbnQt
PnJlZmVycmVyUG9saWN5KCk7CiAgICAgU3RyaW5nIHJlZmVycmVyVG9Vc2UgPSBTZWN1cml0eVBv
bGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihwb2xpY3ksIHVybCwgcmVmZXJyZXIpOwogCi0g
ICAgbV9mcmFtZS5sb2FkZXIoKS5sb2FkVVJMSW50b0NoaWxkRnJhbWUodXJsLCByZWZlcnJlclRv
VXNlLCBmcmFtZS5nZXQoKSk7CisgICAgc3RkOjpvcHRpb25hbDxib29sPiBhcHBJbml0aWF0ZWQ7
CisgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZG9jdW1lbnQtPmxvYWRlcigpKQorICAg
ICAgICBhcHBJbml0aWF0ZWQgPSBkb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNBcHBJ
bml0aWF0ZWQoKTsKKworICAgIG1fZnJhbWUubG9hZGVyKCkubG9hZFVSTEludG9DaGlsZEZyYW1l
KHVybCwgcmVmZXJyZXJUb1VzZSwgZnJhbWUuZ2V0KCksIFdURk1vdmUoYXBwSW5pdGlhdGVkKSk7
CiAKICAgICBkb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZGVmYzVkNDllMTM5NjAxNTVhZGRiMjExMzM2YWRl
ZTc3M2RkODRhZi4uNzJlZWMzMDI3MGQ0NTY1ZGUzYWFmMDc1OWU2NmJjOGU3NjcxM2U1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNTE0LDYgKzI1MTQsMTIgQEAgRXhjZXB0aW9u
T3I8UmVmUHRyPEZyYW1lPj4gRE9NV2luZG93OjpjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcsIGNvbnMKICAgICBhdXRvIGluaXRpYXRlZEJ5TWFpbkZyYW1lID0gYWN0aXZlRnJh
bWUtPmlzTWFpbkZyYW1lKCkgPyBJbml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzIDogSW5pdGlhdGVk
QnlNYWluRnJhbWU6OlVua25vd247CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1
ZXN0IHsgY29tcGxldGVkVVJMLCByZWZlcnJlciB9OworICAgIGF1dG8qIG9wZW5lckRvY3VtZW50
TG9hZGVyID0gb3BlbmVyRnJhbWUuZG9jdW1lbnQoKSA/IG9wZW5lckZyYW1lLmRvY3VtZW50KCkt
PmxvYWRlcigpIDogbnVsbHB0cjsKKyAgICBpZiAob3BlbmVyRG9jdW1lbnRMb2FkZXIpIHsKKyAg
ICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKG9wZW5lckRvY3VtZW50TG9h
ZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsKKyAgICAgICAgaWYgKG9wZW5l
ckRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKQorICAgICAg
ICAgICAgV1RGUmVwb3J0QmFja3RyYWNlV2l0aFByZWZpeCgiRE9NV2luZG93Q3JlYXRlV2luZG93
Iik7CisgICAgfQogICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICphY3Rp
dmVEb2N1bWVudCwgYWN0aXZlRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVz
b3VyY2VSZXF1ZXN0KSwgZnJhbWVOYW1lLCBpbml0aWF0ZWRCeU1haW5GcmFtZSB9OwogICAgIGZy
YW1lTG9hZFJlcXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShhY3RpdmVEb2N1
bWVudC0+c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvUHJvcGFnYXRlKCkpOwogCkBAIC0y
NTM5LDggKzI1NDUsMTAgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPEZyYW1lPj4gRE9NV2luZG93Ojpj
cmVhdGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnMKIAogICAgIGlmIChjcmVh
dGVkKSB7CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyBjb21wbGV0
ZWRVUkwsIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6VXNlUHJvdG9jb2xD
YWNoZVBvbGljeSB9OworICAgICAgICBpZiAob3BlbmVyRG9jdW1lbnRMb2FkZXIpCisgICAgICAg
ICAgICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQob3BlbmVyRG9jdW1lbnRMb2Fk
ZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogICAgICAgICBGcmFtZUxvYWRl
cjo6YWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQocmVzb3VyY2VSZXF1ZXN0LCBvcGVu
ZXJGcmFtZS5kb2N1bWVudCgpKTsKLSAgICAgICAgRnJhbWVMb2FkUmVxdWVzdCBmcmFtZUxvYWRS
ZXF1ZXN0IHsgKmFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLCBhY3RpdmVXaW5kb3cuZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBzZWxmVGFyZ2V0
RnJhbWVOYW1lKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lIH07CisgICAgICAgIEZyYW1lTG9hZFJl
cXVlc3QgZnJhbWVMb2FkUmVxdWVzdCB7ICphY3RpdmVEb2N1bWVudCwgYWN0aXZlRG9jdW1lbnQt
PnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSwgc2VsZlRhcmdldEZy
YW1lTmFtZSgpLCBpbml0aWF0ZWRCeU1haW5GcmFtZSB9OwogICAgICAgICBmcmFtZUxvYWRSZXF1
ZXN0LnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koYWN0aXZlRG9jdW1lbnQtPnNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsKICAgICAgICAgbmV3RnJhbWUt
PmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOwogICAg
IH0gZWxzZSBpZiAoIXVybFN0cmluZy5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKaW5kZXggMTM5OTU2ODkzMTlkOTQwYmEzYmY5ZDRiNDI4ZDI3MmE2YTM1
YTQwMi4uNGQ5YWQzYTM1ODBlNmE0ZWZlYzIzNGY3MzIxMGM2ZDU5ZjAyZWU2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA3LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVk
ZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1
bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJE
cmFnQWN0aW9ucy5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnQuaCIKICNpbmNsdWRlICJEcmFnRGF0
YS5oIgpAQCAtMjk0LDYgKzI5NSw5IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFn
T3BlcmF0aW9uKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgY2xpZW50KCkud2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24oRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uOjpMb2FkLCBkcmFnRGF0YSk7CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
c291cmNlUmVxdWVzdCB7IHVybFN0cmluZyB9OworICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRl
ciA9IG1fcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQorICAgICAg
ICByZXNvdXJjZVJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoZG9jdW1lbnRMb2FkZXItPmxhc3RO
YXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVM
b2FkUmVxdWVzdCB7IG1fcGFnZS5tYWluRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0IHsgdXJsU3Ry
aW5nIH0gfTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3koc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAgICAgZnJhbWVMb2FkUmVxdWVz
dC5zZXRJc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5wdXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50
cnkuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dWJyZXNvdXJjZXNFbnRyeS5jcHAKaW5kZXggYzgzM2U0YTkxYjQ4ZGU4YjUwNTUwZThhOTYyZmY5
YmRjOGQ3MGRlOC4uMzEyM2Q5MTllOWNjMzkxNmE2YmZhYmJmNTIzNGY2ZjkzNTAyODkxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dWJyZXNvdXJjZXNFbnRyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAg
dm9pZCBTdWJyZXNvdXJjZUluZm86OmVuY29kZShXVEY6OlBlcnNpc3RlbmNlOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgICAgICByZXR1cm47CiAKICAgICBlbmNvZGVyIDw8IG1faXNTYW1l
U2l0ZTsKKyAgICBlbmNvZGVyIDw8IG1faXNBcHBJbml0aWF0ZWQ7CiAgICAgZW5jb2RlciA8PCBt
X2ZpcnN0UGFydHlGb3JDb29raWVzOwogICAgIGVuY29kZXIgPDwgbV9yZXF1ZXN0SGVhZGVyczsK
ICAgICBlbmNvZGVyIDw8IG1fcHJpb3JpdHk7CkBAIC04OSw2ICs5MCwxMiBAQCBzdGQ6Om9wdGlv
bmFsPFN1YnJlc291cmNlSW5mbz4gU3VicmVzb3VyY2VJbmZvOjpkZWNvZGUoV1RGOjpQZXJzaXN0
ZW5jZTo6RGVjb2RlcgogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIGluZm8ubV9p
c1NhbWVTaXRlID0gV1RGTW92ZSgqaXNTYW1lU2l0ZSk7CiAKKyAgICBzdGQ6Om9wdGlvbmFsPGJv
b2w+IGlzQXBwSW5pdGlhdGVkOworICAgIGRlY29kZXIgPj4gaXNBcHBJbml0aWF0ZWQ7CisgICAg
aWYgKCFpc0FwcEluaXRpYXRlZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBp
bmZvLm1faXNBcHBJbml0aWF0ZWQgPSBXVEZNb3ZlKCppc0FwcEluaXRpYXRlZCk7CisKICAgICBz
dGQ6Om9wdGlvbmFsPFVSTD4gZmlyc3RQYXJ0eUZvckNvb2tpZXM7CiAgICAgZGVjb2RlciA+PiBm
aXJzdFBhcnR5Rm9yQ29va2llczsKICAgICBpZiAoIWZpcnN0UGFydHlGb3JDb29raWVzKQpAQCAt
MTU4LDYgKzE2NSw3IEBAIFN1YnJlc291cmNlSW5mbzo6U3VicmVzb3VyY2VJbmZvKGNvbnN0IEtl
eSYga2V5LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmCiAgICAgLCBtX2ZpcnN0U2Vl
bihwcmV2aW91c0luZm8gPyBwcmV2aW91c0luZm8tPmZpcnN0U2VlbigpIDogbV9sYXN0U2VlbikK
ICAgICAsIG1faXNUcmFuc2llbnQoIXByZXZpb3VzSW5mbykKICAgICAsIG1faXNTYW1lU2l0ZShy
ZXF1ZXN0LmlzU2FtZVNpdGUoKSkKKyAgICAsIG1faXNBcHBJbml0aWF0ZWQocmVxdWVzdC5pc0Fw
cEluaXRpYXRlZCgpKQogICAgICwgbV9maXJzdFBhcnR5Rm9yQ29va2llcyhyZXF1ZXN0LmZpcnN0
UGFydHlGb3JDb29raWVzKCkpCiAgICAgLCBtX3JlcXVlc3RIZWFkZXJzKHJlcXVlc3QuaHR0cEhl
YWRlckZpZWxkcygpKQogICAgICwgbV9wcmlvcml0eShyZXF1ZXN0LnByaW9yaXR5KCkpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggYjk3Y2I0ODQ5MWMyOWU4MDdhMTZiMDUxMTM2YzQ3YmI5NmFhNjA0MC4uNGZiOWFlMjU2OWFj
ODllZGQ3NDM5OTY0MjZiNmU5MTBmM2Q4MjcwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIx
LTEyLTIwICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFBy
b3BhZ2F0ZSBhcHAtaW5pdGlhdGVkIHN0YXRlIHRvIG5ldyBSZXNvdXJjZVJlcXVlc3RzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTUKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzg2MTI4NjM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBw
LWF0dHJpYnV0aW9uLWJlYWNvbi1pc2FwcGluaXRpYXRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1i
ZWFjb24taXNhcHBpbml0aWF0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc25vdGFwcGluaXRpYXRl
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNub3RhcHBpbml0aWF0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvbmV3LXdpbmRvdy1p
c25vdGFwcGluaXRpYXRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9uZXctd2luZG93LWlzbm90YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2Vz
L25ldy13aW5kb3ctaXNub3RhcHBpbml0aWF0ZWQtd2luLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEy
LTE3ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWJhc2VsaW5l
IGFmdGVyIHIyODcxOTkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzYXBwaW5pdGlhdGVkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1h
dHRyaWJ1dGlvbi1iZWFjb24taXNhcHBpbml0aWF0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZmYzkxNmQyNjYyNWFiNTM3MjBlNGYxNGJlMGU2MzZmZWVkZTBjOTkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmli
dXRpb24tYmVhY29uLWlzYXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBA
CitFbnN1cmUgYmVhY29ucyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5hdmlnYXRvci5zZW5kQmVhY29uKCIuLi9ibGluay9z
ZW5kYmVhY29uL3Jlc291cmNlcy9zYXZlLWJlYWNvbi5weT9uYW1lPWNvb2tpZSIsICJCbGlwIik7
IGlzIHRydWUKK1BBU1MgQmVhY29uIHNlbnQgc3VjY2Vzc2Z1bGx5CitQQVNTIENvbnRlbnQtVHlw
ZTogdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNTIENvb2tpZTogaGVsbG89d29ybGQKK1BB
U1MgT3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAKK1BBU1MgUmVmZXJlcjogaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlz
YXBwaW5pdGlhdGVkLmh0bWwKK1BBU1MgUmVxdWVzdC1NZXRob2Q6IFBPU1QKK1BBU1MgTGVuZ3Ro
OiA0CitQQVNTIEJvZHk6IEJsaXAKK1BBU1MKK1BBU1MgU3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5
IGFwcC1pbml0aWF0ZWQgYmVhY29uIHJlcXVlc3RzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc2FwcGluaXRp
YXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBw
LWF0dHJpYnV0aW9uLWJlYWNvbi1pc2FwcGluaXRpYXRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmYmVj
NzlhNTA1MDIxMGVjMzMyZDJiMzM3NTRhMzYyOWU4ODU2MmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24t
YmVhY29uLWlzYXBwaW5pdGlhdGVkLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD10cnVlIF0gLS0+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCdFbnN1cmUgYmVhY29ucyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHku
Jyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gYXNrRm9yQXR0
cmlidXRpb24oKSB7CisgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1
bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworICAgIHZhciBkaWRMb2FkTm9uQXBw
SW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVl
c3QoKTsKKworICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAg
ICB0ZXN0RmFpbGVkKCJEaWQgbG9hZCBub24tYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFk
aWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJEaWQgbm90
IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bGx5IGxv
YWRlZCBvbmx5IGFwcC1pbml0aWF0ZWQgYmVhY29uIHJlcXVlc3RzIik7CisKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAg
dmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICB4aHIub3BlbigiR0VUIiwg
Ii4uL2Nvb2tpZXMvcmVzb3VyY2VzL3NldENvb2tpZXMuY2dpIiwgZmFsc2UpOworICAgICAgICB4
aHIuc2V0UmVxdWVzdEhlYWRlcigiU0VULUNPT0tJRSIsICJoZWxsbz13b3JsZDtwYXRoPS8iKTsK
KyAgICAgICAgeGhyLnNlbmQobnVsbCk7CisgICAgICAgIGlmICh4aHIuc3RhdHVzICE9IDIwMCkg
eworICAgICAgICAgICAgdGVzdEZhaWxlZCgiY29va2llIG5vdCBzZXQiKTsKKyAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0
ZXN0RmFpbGVkKCJjb29raWUgbm90IHNldCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9CisKKyAgICBzaG91bGRCZVRydWUoJ25hdmlnYXRvci5zZW5kQmVhY29uKCIuLi9ibGluay9z
ZW5kYmVhY29uL3Jlc291cmNlcy9zYXZlLWJlYWNvbi5weT9uYW1lPWNvb2tpZSIsICJCbGlwIik7
Jyk7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJH
RVQiLCAiLi4vYmxpbmsvc2VuZGJlYWNvbi9yZXNvdXJjZXMvY2hlY2stYmVhY29uLnB5P25hbWU9
Y29va2llIik7CisgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGxp
bmVzID0geGhyLnJlc3BvbnNlVGV4dC5zcGxpdCgiXG4iKTsKKyAgICAgICAgZm9yICh2YXIgaSBp
biBsaW5lcykKKyAgICAgICAgICAgIHRlc3RQYXNzZWQobGluZXNbaV0pOworICAgICAgICBhc2tG
b3JBdHRyaWJ1dGlvbigpOworICAgIH07CisgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7
CisgICAgICAgIHRlc3RGYWlsZWQoIlVuYWJsZSB0byBmZXRjaCBiZWFjb24gc3RhdHVzIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH07CisKKyAgICB4aHIuc2VuZCgpOworfQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBwaW5pdGlh
dGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNub3RhcHBpbml0aWF0ZWQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcyM2NlMzZjZjMxOTFiOWMxNTE2MTQzNGY5YmZiZmNhMjg1OGUzMmQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIwIEBACitFbnN1cmUgYmVhY29ucyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHku
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5hdmlnYXRvci5zZW5kQmVh
Y29uKCIuLi9ibGluay9zZW5kYmVhY29uL3Jlc291cmNlcy9zYXZlLWJlYWNvbi5weT9uYW1lPWNv
b2tpZSIsICJCbGlwIik7IGlzIHRydWUKK1BBU1MgQmVhY29uIHNlbnQgc3VjY2Vzc2Z1bGx5CitQ
QVNTIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04CitQQVNTIENvb2tpZTog
aGVsbG89d29ybGQKK1BBU1MgT3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAKK1BBU1MgUmVm
ZXJlcjogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmli
dXRpb24tYmVhY29uLWlzbm90YXBwaW5pdGlhdGVkLmh0bWwKK1BBU1MgUmVxdWVzdC1NZXRob2Q6
IFBPU1QKK1BBU1MgTGVuZ3RoOiA0CitQQVNTIEJvZHk6IEJsaXAKK1BBU1MKK1BBU1MgU3VjY2Vz
c2Z1bGx5IGxvYWRlZCBvbmx5IG5vbi1hcHAtaW5pdGlhdGVkIGJlYWNvbiByZXF1ZXN0cworUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1
dGlvbi1iZWFjb24taXNub3RhcHBpbml0aWF0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNub3RhcHBpbml0
aWF0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjA1YTIxMWUyMDFkODI4NDRjMDg2NmQ1YzFlOThlNTUy
ZGQyNGUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc25vdGFwcGluaXRpYXRlZC5odG1s
CkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0Vuc3VyZSBi
ZWFjb25zIGFyZSBhdHRyaWJ1dGVkIGNvcnJlY3RseS4nKTsKKword2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCitmdW5jdGlvbiBhc2tGb3JBdHRyaWJ1dGlvbigpIHsKKyAgICB2YXIgZGlk
TG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRS
ZXF1ZXN0KCk7CisgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1
bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgaWYgKCFkaWRMb2Fk
Tm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJEaWQgbm90IGxv
YWQgbm9uLWFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChkaWRMb2FkQXBwSW5pdGlhdGVkUmVx
dWVzdCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJEaWQgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVl
c3QiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uLWFwcC1pbml0aWF0
ZWQgYmVhY29uIHJlcXVlc3RzIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rp
b24gcnVuVGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOworICAgICAgICB4aHIub3BlbigiR0VUIiwgIi4uL2Nvb2tpZXMvcmVzb3VyY2Vz
L3NldENvb2tpZXMuY2dpIiwgZmFsc2UpOworICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigi
U0VULUNPT0tJRSIsICJoZWxsbz13b3JsZDtwYXRoPS8iKTsKKyAgICAgICAgeGhyLnNlbmQobnVs
bCk7CisgICAgICAgIGlmICh4aHIuc3RhdHVzICE9IDIwMCkgeworICAgICAgICAgICAgdGVzdEZh
aWxlZCgiY29va2llIG5vdCBzZXQiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICB9CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0RmFpbGVkKCJjb29raWUgbm90
IHNldCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisKKyAgICBzaG91bGRCZVRy
dWUoJ25hdmlnYXRvci5zZW5kQmVhY29uKCIuLi9ibGluay9zZW5kYmVhY29uL3Jlc291cmNlcy9z
YXZlLWJlYWNvbi5weT9uYW1lPWNvb2tpZSIsICJCbGlwIik7Jyk7CisgICAgdmFyIHhociA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAiLi4vYmxpbmsvc2VuZGJl
YWNvbi9yZXNvdXJjZXMvY2hlY2stYmVhY29uLnB5P25hbWU9Y29va2llIik7CisgICAgeGhyLm9u
bG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGxpbmVzID0geGhyLnJlc3BvbnNlVGV4
dC5zcGxpdCgiXG4iKTsKKyAgICAgICAgZm9yICh2YXIgaSBpbiBsaW5lcykKKyAgICAgICAgICAg
IHRlc3RQYXNzZWQobGluZXNbaV0pOworICAgICAgICBhc2tGb3JBdHRyaWJ1dGlvbigpOworICAg
IH07CisgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRlc3RGYWlsZWQo
IlVuYWJsZSB0byBmZXRjaCBiZWFjb24gc3RhdHVzIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgIH07CisKKyAgICB4aHIuc2VuZCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9u
ZXctd2luZG93LWlzbm90YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L25ldy13aW5kb3ctaXNub3RhcHBpbml0aWF0ZWQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjYzFmZTYzOTY3YTAwYzNhZDc2NmM0Zjg3NGNlYWUw
YmZhMTZmNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9uZXctd2luZG93LWlzbm90YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK01ha2Ugc3VyZSB0aGF0IHdpbmRvd3Mgb3BlbmVkIHZpYSB3aW5kb3cu
b3BlbiBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvbmV3LXdpbmRvdy1pc25vdGFwcGluaXRpYXRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvbmV3LXdpbmRvdy1pc25vdGFwcGluaXRpYXRlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM1Yzc1MjU0ZjE5MGQ2ZmMwZDQ1ZDk5M2UyMmU3MWE2NDE4MWRkMjUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9uZXctd2luZG93LWlzbm90YXBwaW5pdGlhdGVkLmh0bWwKQEAgLTAsMCArMSwxOCBAQAor
PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD1m
YWxzZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIk1ha2Ugc3VyZSB0aGF0IHdpbmRvd3Mgb3BlbmVkIHZpYSB3aW5kb3cub3Bl
biBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkiKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworCitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICB3aW5kb3cubmFtZSA9ICJvcGVuZXIi
OworICAgIHcgPSBvcGVuKCJyZXNvdXJjZXMvbmV3LXdpbmRvdy1pc25vdGFwcGluaXRpYXRlZC13
aW4uaHRtbCIsICIiKTsKK30gICAgCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNl
cy9uZXctd2luZG93LWlzbm90YXBwaW5pdGlhdGVkLXdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL25ldy13aW5kb3ctaXNub3RhcHBp
bml0aWF0ZWQtd2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkwOWUzNWYzZGU0NWFmYzk3YjEwMDAyNTg1
OGEyYTliOTBjODJkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy9uZXctd2luZG93LWlzbm90YXBwaW5pdGlhdGVk
LXdpbi5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK2Z1bmN0aW9uIGFza0ZvckF0dHJpYnV0aW9uKCkgeworICAgIHZhciBkaWRMb2FkQXBwSW5p
dGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsK
KyAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExv
YWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICBpZiAoIWRpZExvYWROb25BcHBJbml0
aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMOiBEaWQgbm90IGxvYWQg
bm9uLWFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVz
dCkgeworICAgICAgICBjb25zb2xlLmxvZygiRkFJTDogRGlkIGxvYWQgYXBwIGluaXRpYXRlZCBy
ZXF1ZXN0Iik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgY29uc29sZS5sb2coIlBBU1M6IFN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24t
YXBwLWluaXRpYXRlZCB3aW5kb3cgY29udGVudCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cub3BlbmVyKQorICAgICAg
ICBjb25zb2xlLmxvZygiUEFTUzogTmV3IHdpbmRvdyBzaG91bGQgaGF2ZSBhbiBvcGVuZXIiKTsK
KyAgICBlbHNlCisgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMOiBOZXcgd2luZG93IHNob3VsZCBo
YXZlIGFuIG9wZW5lciIpOworCisgICAgb3BlbmVyQnlOYW1lID0gb3BlbigiIiwgIm9wZW5lciIp
OyAvLyBTaG91bGQgcmV0dXJuIHRoZSBvcGVuZXIuCisgICAgaWYgKG9wZW5lckJ5TmFtZSA9PT0g
b3BlbmVyKQorICAgICAgICBjb25zb2xlLmxvZygiUEFTUzogTmV3IHdpbmRvdyBzaG91bGQgYmUg
YWJsZSB0byBsb29rIHVwIG9wZW5lciBieSBuYW1lIik7CisgICAgZWxzZQorICAgICAgICBjb25z
b2xlLmxvZygiRkFJTDogTmV3IHdpbmRvdyBzaG91bGQgYmUgYWJsZSB0byBsb29rIHVwIG9wZW5l
ciBieSBuYW1lIik7CisKKyAgICBhc2tGb3JBdHRyaWJ1dGlvbigpOworfTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447763</attachid>
            <date>2021-12-21 16:22:58 -0800</date>
            <delta_ts>2021-12-21 22:37:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234015-20211221162257.patch</filename>
            <type>text/plain</type>
            <size>32750</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTdjZTRmOGE1ZTljMzFk
OWE4MjIwMzg2NzdjMDZhMGQxOTM5ZjVlMC4uN2VmMGFkMDcxYmYxYTY4ODU0Y2U2MTA5ZGRhNzU3
ZWY1MjhhYmViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTEyLTIwICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFByb3BhZ2F0ZSBhcHAt
aW5pdGlhdGVkIHN0YXRlIHRvIG5ldyBSZXNvdXJjZVJlcXVlc3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg2MTI4NjM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdoaWxlIHJldmlld2luZyBsb2dnaW5nIHdlIGhhdmUgZm91bmQgdGhhdCBzb21l
IFJlc291cmNlUmVxdWVzdCBvYmplY3RzCisgICAgICAgIGFyZSBtaXNzaW5nIHRoZSBjb3JyZWN0
IHN0YXRlIGZvciBhcHAtaW5pdGlhdGVkIGxvYWRzLiBUeXBpY2FsbHksIHRoZXNlCisgICAgICAg
IGFyZSBjYXNlcyB3aGVyZSBhIG5ldyBSZXNvdXJjZVJlcXVlc3QgaXMgY3JlYXRlZCBmcm9tIGEg
VVJMIHN0cmluZywgbG9zaW5nCisgICAgICAgIHRoZSBjb250ZXh0IHRoYXQgY2FtZSB3aXRoIHRo
ZSBvcmlnaW5hbCBsb2FkIChvciB0aGUgY29udGV4dCBvZiB0aGUgcGFnZQorICAgICAgICB0cmln
Z2VyaW5nIHRoZSBsb2FkKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNvcnJlY3RzIGEgbnVtYmVy
IG9mIHN1Y2ggY2FzZXMuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNhcHBpbml0aWF0ZWQuaHRtbAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJl
YWNvbi1pc25vdGFwcGluaXRpYXRlZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2Fw
cC1wcml2YWN5LXJlcG9ydC9uZXctd2luZG93LWlzYXBwaW5pdGlhdGVkLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L25ldy13aW5kb3ctaXNub3RhcHBp
bml0aWF0ZWQuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckJlYWNvbjo6c2VuZEJlYWNvbik6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXRIYW5kc2hha2U6OldlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZVJlcXVlc3QgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuaDoKKyAgICAgICAg
KiBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZVBvdGVudGlhbEFjY2Vzc0NvbnRyb2xSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OndpbGxMb2Fk
TWVkaWFFbGVtZW50VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb21taXRQ
cm92aXNpb25hbExvYWQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6Y3JlYXRlV2luZG93KToKKyAKIDIwMjEtMTItMTcgIEFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gVXNlIHRoZSBp
bmxpbmUgYm94J3MgZGlyZWN0aW9uIHRvIGRlY2lkZSBpZiBzdGFydC9lbmQgZGVjb3JhdGlvbnMg
c2hvdWxkIGJlIGFwcGxpZWQgb24gZmlyc3QvbGFzdCBib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2Q3NTk1ZjY5
MGZlZmFiNDNiYzQwMzFlZTBjOGMxNTZjN2RkZjkwNy4uZjhmMWIwMDgwY2VhMzlmMDE1ZDBjZTlh
MjViYTA3N2ViY2I3MGRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0xMi0yMCAg
QnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9wYWdhdGUg
YXBwLWluaXRpYXRlZCBzdGF0ZSB0byBuZXcgUmVzb3VyY2VSZXF1ZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MDE1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84NjEyODYzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXaGlsZSByZXZpZXdpbmcgbG9nZ2luZyB3ZSBoYXZlIGZvdW5kIHRoYXQg
c29tZSBSZXNvdXJjZVJlcXVlc3Qgb2JqZWN0cworICAgICAgICBhcmUgbWlzc2luZyB0aGUgY29y
cmVjdCBzdGF0ZSBmb3IgYXBwLWluaXRpYXRlZCBsb2Fkcy4gVHlwaWNhbGx5LCB0aGVzZQorICAg
ICAgICBhcmUgY2FzZXMgd2hlcmUgYSBuZXcgUmVzb3VyY2VSZXF1ZXN0IGlzIGNyZWF0ZWQgZnJv
bSBhIFVSTCBzdHJpbmcsIGxvc2luZworICAgICAgICB0aGUgY29udGV4dCB0aGF0IGNhbWUgd2l0
aCB0aGUgb3JpZ2luYWwgbG9hZCAob3IgdGhlIGNvbnRleHQgb2YgdGhlIHBhZ2UKKyAgICAgICAg
dHJpZ2dlcmluZyB0aGUgbG9hZCkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjb3JyZWN0cyBhIG51
bWJlciBvZiBzdWNoIGNhc2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlTmV3UGFnZSk6IFByb3Bh
Z2F0ZSBhcHAtaW5pdGlhdGVkIHN0YXRlIHRvIG5ld2x5IGNyZWF0ZWQgcGFnZS4KKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJyZXNvdXJjZXNFbnRyeS5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3VicmVzb3VyY2VJbmZvOjplbmNvZGUg
Y29uc3QpOiBDb3JyZWN0IG1pc3Npbmcgc2VyaWFsaXphdGlvbiBmb3IKKyAgICAgICAgYXBwLWlu
aXRpYXRlZCBzdGF0ZS4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdWJyZXNvdXJj
ZUluZm86OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3VicmVzb3Vy
Y2VJbmZvOjpTdWJyZXNvdXJjZUluZm8pOgorCiAyMDIxLTEyLTE3ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIEFQSTo6T2JqZWN0
OjpUeXBlOjpCdW5kbGVQYWdlR3JvdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYmVhY29uL05hdmlnYXRvckJlYWNvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Jl
YWNvbi9OYXZpZ2F0b3JCZWFjb24uY3BwCmluZGV4IDY5ZGVjNWNiNmZiYzViZjlkOGI3MThjY2Uy
MTAxN2EzZGJiN2Q5NGYuLjM4ZWQ0MmEyMmE4ODFlYjIxZTc1NmEwZjgyOWY1NTEzYzA0MjQ5Nzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmVhY29uL05hdmlnYXRvckJlYWNv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29u
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhU
VFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCkBAIC0xMjIsNiArMTIzLDggQEAg
RXhjZXB0aW9uT3I8Ym9vbD4gTmF2aWdhdG9yQmVhY29uOjpzZW5kQmVhY29uKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgU3RyaW5nJgogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHBhcnNl
ZFVybCk7CiAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJQT1NUIl9zKTsKICAgICByZXF1ZXN0
LnNldFJlcXVlc3RlcihSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6QmVhY29uKTsKKyAgICBp
ZiAoYXV0byogZG9jdW1lbnRMb2FkZXIgPSBkb2N1bWVudC5sb2FkZXIoKSkKKyAgICAgICAgcmVx
dWVzdC5zZXRJc0FwcEluaXRpYXRlZChkb2N1bWVudExvYWRlci0+bGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQoKSk7CiAKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9uczsKICAg
ICBvcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcAppbmRleCAzMzg1ZDI3NjY0NWIxMmRkNjU0MDQ2MWE2YzY3ZjI4NTJiOTVk
YjQ0Li4yZjdiODMzN2IwNGI2ZjllMGM4MTI0ODUzMDIwOGI1MjQ3YmZhNDdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBHb29n
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUg
IkNvb2tpZUphci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZVJlYWRl
ckxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC05Miw3ICs5MywxMiBAQCBXZWJTb2Nr
ZXRDaGFubmVsOjpDb25uZWN0U3RhdHVzIFdlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QoY29uc3Qg
VVJMJiByZXF1ZXN0ZWRVUgogICAgIG1fYWxsb3dDb29raWVzID0gdmFsaWRhdGVkVVJMLT5hcmVD
b29raWVzQWxsb3dlZDsKICAgICBTdHJpbmcgdXNlckFnZW50ID0gbV9kb2N1bWVudC0+dXNlckFn
ZW50KG1fZG9jdW1lbnQtPnVybCgpKTsKICAgICBTdHJpbmcgY2xpZW50T3JpZ2luID0gbV9kb2N1
bWVudC0+c2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpOwotICAgIG1faGFuZHNoYWtlID0gbWFr
ZVVuaXF1ZTxXZWJTb2NrZXRIYW5kc2hha2U+KHZhbGlkYXRlZFVSTC0+dXJsLCBwcm90b2NvbCwg
dXNlckFnZW50LCBjbGllbnRPcmlnaW4sIG1fYWxsb3dDb29raWVzKTsKKworICAgIGJvb2wgaXNB
cHBJbml0aWF0ZWQgPSB0cnVlOworICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9IG1fZG9j
dW1lbnQtPmxvYWRlcigpKQorICAgICAgICBpc0FwcEluaXRpYXRlZCA9IGRvY3VtZW50TG9hZGVy
LT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpOworCisgICAgbV9oYW5kc2hha2UgPSBt
YWtlVW5pcXVlPFdlYlNvY2tldEhhbmRzaGFrZT4odmFsaWRhdGVkVVJMLT51cmwsIHByb3RvY29s
LCB1c2VyQWdlbnQsIGNsaWVudE9yaWdpbiwgbV9hbGxvd0Nvb2tpZXMsIGlzQXBwSW5pdGlhdGVk
KTsKICAgICBtX2hhbmRzaGFrZS0+cmVzZXQoKTsKICAgICBtX2hhbmRzaGFrZS0+YWRkRXh0ZW5z
aW9uUHJvY2Vzc29yKG1fZGVmbGF0ZUZyYW1lci5jcmVhdGVFeHRlbnNpb25Qcm9jZXNzb3IoKSk7
CiAgICAgaWYgKG1fcHJvZ3Jlc3NJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAppbmRleCBkODI4
MjI0MGEyYmJjYjkyYTM3NzIxNTA3MTVjNzc0YTMxYWY0NGY4Li5jNDUzOGI5OGQwYmI5MmVhOWQ2
MWQyOWI3ZjA5NTE3MDg2N2RmZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcApAQCAtMSw3ICsxLDcgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTEuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMTEyLDcgKzExMiw3IEBAIFN0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OmdldEV4cGVjdGVk
V2ViU29ja2V0QWNjZXB0KGNvbnN0IFN0cmluZyYgc2VjV2ViU29ja2V0CiAgICAgcmV0dXJuIGJh
c2U2NEVuY29kZVRvU3RyaW5nKGhhc2guZGF0YSgpLCBTSEExOjpoYXNoU2l6ZSk7CiB9CiAKLVdl
YlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5n
JiBjbGllbnRPcmlnaW4sIGJvb2wgYWxsb3dDb29raWVzKQorV2ViU29ja2V0SGFuZHNoYWtlOjpX
ZWJTb2NrZXRIYW5kc2hha2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2ws
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIGNsaWVudE9yaWdpbiwgYm9v
bCBhbGxvd0Nvb2tpZXMsIGJvb2wgaXNBcHBJbml0aWF0ZWQpCiAgICAgOiBtX3VybCh1cmwpCiAg
ICAgLCBtX2NsaWVudFByb3RvY29sKHByb3RvY29sKQogICAgICwgbV9zZWN1cmUobV91cmwucHJv
dG9jb2xJcygid3NzIikpCkBAIC0xMjAsNiArMTIwLDcgQEAgV2ViU29ja2V0SGFuZHNoYWtlOjpX
ZWJTb2NrZXRIYW5kc2hha2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2ws
IGMKICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudCkKICAgICAsIG1fY2xpZW50T3JpZ2luKGNs
aWVudE9yaWdpbikKICAgICAsIG1fYWxsb3dDb29raWVzKGFsbG93Q29va2llcykKKyAgICAsIG1f
aXNBcHBJbml0aWF0ZWQoaXNBcHBJbml0aWF0ZWQpCiB7CiAgICAgbV9zZWNXZWJTb2NrZXRLZXkg
PSBnZW5lcmF0ZVNlY1dlYlNvY2tldEtleSgpOwogICAgIG1fZXhwZWN0ZWRBY2NlcHQgPSBnZXRF
eHBlY3RlZFdlYlNvY2tldEFjY2VwdChtX3NlY1dlYlNvY2tldEtleSk7CkBAIC0yMTIsNiArMjEz
LDcgQEAgUmVzb3VyY2VSZXF1ZXN0IFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtl
UmVxdWVzdChjb25zdCBGdW5jdGlvbjxTdHJpbmcKICAgICBpZiAoIWV4dGVuc2lvbnMuaXNFbXB0
eSgpKQogICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6
U2VjV2ViU29ja2V0RXh0ZW5zaW9ucywgZXh0ZW5zaW9ucyk7CiAgICAgcmVxdWVzdC5zZXRIVFRQ
VXNlckFnZW50KG1fdXNlckFnZW50KTsKKyAgICByZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKG1f
aXNBcHBJbml0aWF0ZWQpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmgKaW5k
ZXggNWU2NGMxODM0ZjZlODM2MTRkMzAxYzRmZWRkMzlkODgzY2FkN2MxMi4uMzgxZjE1OTA5NjU4
ZWNjMDY4NDZhM2ZiZTg3MDhiMGQ1NDk2NmVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuaApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDgsNyArNDksNyBA
QCBwdWJsaWM6CiAgICAgZW51bSBNb2RlIHsKICAgICAgICAgSW5jb21wbGV0ZSwgTm9ybWFsLCBG
YWlsZWQsIENvbm5lY3RlZAogICAgIH07Ci0gICAgV2ViU29ja2V0SGFuZHNoYWtlKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBTdHJpbmcmIGNsaWVudE9yaWdpbiwgYm9vbCBhbGxvd0Nvb2tpZXMpOworICAgIFdlYlNvY2tl
dEhhbmRzaGFrZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBjbGllbnRPcmlnaW4sIGJvb2wgYWxsb3dDb29r
aWVzLCBib29sIGlzQXBwSW5pdGlhdGVkKTsKICAgICB+V2ViU29ja2V0SGFuZHNoYWtlKCk7CiAK
ICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0OwpAQCAtMTAyLDYgKzEwMyw3IEBAIHByaXZhdGU6
CiAgICAgU3RyaW5nIG1fdXNlckFnZW50OwogICAgIFN0cmluZyBtX2NsaWVudE9yaWdpbjsKICAg
ICBib29sIG1fYWxsb3dDb29raWVzOworICAgIGJvb2wgbV9pc0FwcEluaXRpYXRlZDsKIAogICAg
IFJlc291cmNlUmVzcG9uc2UgbV9zZXJ2ZXJIYW5kc2hha2VSZXNwb25zZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAppbmRleCA4
Nzk2ZmRkM2U1NzJlMDA0YWU3MGJjY2FiNjlhMzllNWFlMmQ0ZjRiLi5lNDNkZWY0ZTdiYjBmY2Jl
NjY0MzlmZjZjYmQwY2M1ZTQyY2I4ZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA4LTIwMjEgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMzksNiArMTM5LDkgQEAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IGNyZWF0ZVBvdGVudGlhbEFjY2Vzc0NvbnRyb2xSZXF1ZXN0KFJlc291cmNl
UmVxdWVzdCYmIHJlcXUKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChhdXRvKiBkb2N1bWVu
dExvYWRlciA9IGRvY3VtZW50LmxvYWRlcigpKQorICAgICAgICByZXF1ZXN0LnNldElzQXBwSW5p
dGlhdGVkKGRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCgpKTsK
KwogICAgIGlmIChjcm9zc09yaWdpbkF0dHJpYnV0ZS5pc051bGwoKSkgewogICAgICAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgY2FjaGVkUmVxdWVzdCB7IFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUob3B0aW9ucykgfTsKICAgICAgICAgY2FjaGVkUmVxdWVzdC5zZXRPcmlnaW4oZG9jdW1lbnQu
c2VjdXJpdHlPcmlnaW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRl
eCA2YzVlZTNhOWIzMWFlOGI4NGRiOTIwYjY2ZWJmMjE0ZjI2ZWM5YWQ2Li5jOThjZjY3MGQzNjFh
OWE0NjY3YzViNmRmMWIxMjY1YWE3NmNjYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxw
IFRva2VyIDxhbHBAYXRva2VyLmNvbT4KQEAgLTE2ODEsNiArMTY4MSw4IEBAIGJvb2wgRnJhbWVM
b2FkZXI6OndpbGxMb2FkTWVkaWFFbGVtZW50VVJMKFVSTCYgdXJsLCBOb2RlJiBpbml0aWF0b3JO
b2RlKQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKICAgICByZXF1ZXN0LnNl
dEluc3BlY3RvckluaXRpYXRvck5vZGVJZGVudGlmaWVyKEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6aWRlbnRpZmllckZvck5vZGUoaW5pdGlhdG9yTm9kZSkpOworICAgIGlmIChtX2RvY3VtZW50
TG9hZGVyKQorICAgICAgICByZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKG1fZG9jdW1lbnRMb2Fk
ZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogCiAgICAgUmVzb3VyY2VMb2Fk
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgUmVzb3VyY2VFcnJvciBlcnJvcjsKQEAgLTIx
MjgsNiArMjEzMCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgp
CiAgICAgICAgICAgICBSZXNvdXJjZUVycm9yIGVycm9yOwogICAgICAgICAgICAgUmVzb3VyY2VM
b2FkZXJJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgICAgICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChyZXNwb25zZS51cmwoKSk7CisgICAgICAgICAgICBpZiAobV9kb2N1bWVudExvYWRl
cikKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKG1fZG9jdW1lbnRM
b2FkZXItPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkpOwogICAgICAgICAgICAgcmVx
dWVzdEZyb21EZWxlZ2F0ZShyZXF1ZXN0LCBpZGVudGlmaWVyLCBlcnJvcik7CiAgICAgICAgICAg
ICAvLyBGSVhNRTogSWYgd2UgZ2V0IGEgcmVzb3VyY2Ugd2l0aCBtb3JlIHRoYW4gMkIgYnl0ZXMs
IHRoaXMgY29kZSB3b24ndCBkbyB0aGUgcmlnaHQgdGhpbmcuCiAgICAgICAgICAgICAvLyBIb3dl
dmVyLCB3aXRoIHRvZGF5J3MgY29tcHV0ZXJzIGFuZCBuZXR3b3JraW5nIHNwZWVkcywgdGhpcyB3
b24ndCBoYXBwZW4gaW4gcHJhY3RpY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXgg
ZGVmYzVkNDllMTM5NjAxNTVhZGRiMjExMzM2YWRlZTc3M2RkODRhZi4uZmI2ZGQ2NDZkZjRlNDAy
NWYwNmI0NDYzZDFmYmE4MmM4NDM2NjU3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC0yNTE0LDYgKzI1MTQsOSBAQCBFeGNlcHRpb25PcjxSZWZQdHI8RnJhbWU+PiBET01XaW5kb3c6
OmNyZWF0ZVdpbmRvdyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29ucwogICAgIGF1dG8gaW5p
dGlhdGVkQnlNYWluRnJhbWUgPSBhY3RpdmVGcmFtZS0+aXNNYWluRnJhbWUoKSA/IEluaXRpYXRl
ZEJ5TWFpbkZyYW1lOjpZZXMgOiBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93bjsKIAogICAg
IFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyBjb21wbGV0ZWRVUkwsIHJlZmVycmVy
IH07CisgICAgYXV0byogb3BlbmVyRG9jdW1lbnRMb2FkZXIgPSBvcGVuZXJGcmFtZS5kb2N1bWVu
dCgpID8gb3BlbmVyRnJhbWUuZG9jdW1lbnQoKS0+bG9hZGVyKCkgOiBudWxscHRyOworICAgIGlm
IChvcGVuZXJEb2N1bWVudExvYWRlcikKKyAgICAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldElzQXBw
SW5pdGlhdGVkKG9wZW5lckRvY3VtZW50TG9hZGVyLT5sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRp
YXRlZCgpKTsKICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyAqYWN0aXZl
RG9jdW1lbnQsIGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKHJlc291
cmNlUmVxdWVzdCksIGZyYW1lTmFtZSwgaW5pdGlhdGVkQnlNYWluRnJhbWUgfTsKICAgICBmcmFt
ZUxvYWRSZXF1ZXN0LnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koYWN0aXZlRG9jdW1l
bnQtPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdWJy
ZXNvdXJjZXNFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcAppbmRleCBjODMzZTRhOTFiNDhkZThiNTA1
NTBlOGE5NjJmZjliZGM4ZDcwZGU4Li4zMTIzZDkxOWU5Y2MzOTE2YTZiZmFiYmY1MjM0ZjZmOTM1
MDI4OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcApAQCAtNDcs
NiArNDcsNyBAQCB2b2lkIFN1YnJlc291cmNlSW5mbzo6ZW5jb2RlKFdURjo6UGVyc2lzdGVuY2U6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgICAgIHJldHVybjsKIAogICAgIGVuY29kZXIg
PDwgbV9pc1NhbWVTaXRlOworICAgIGVuY29kZXIgPDwgbV9pc0FwcEluaXRpYXRlZDsKICAgICBl
bmNvZGVyIDw8IG1fZmlyc3RQYXJ0eUZvckNvb2tpZXM7CiAgICAgZW5jb2RlciA8PCBtX3JlcXVl
c3RIZWFkZXJzOwogICAgIGVuY29kZXIgPDwgbV9wcmlvcml0eTsKQEAgLTg5LDYgKzkwLDEyIEBA
IHN0ZDo6b3B0aW9uYWw8U3VicmVzb3VyY2VJbmZvPiBTdWJyZXNvdXJjZUluZm86OmRlY29kZShX
VEY6OlBlcnNpc3RlbmNlOjpEZWNvZGVyCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgaW5mby5tX2lzU2FtZVNpdGUgPSBXVEZNb3ZlKCppc1NhbWVTaXRlKTsKIAorICAgIHN0ZDo6
b3B0aW9uYWw8Ym9vbD4gaXNBcHBJbml0aWF0ZWQ7CisgICAgZGVjb2RlciA+PiBpc0FwcEluaXRp
YXRlZDsKKyAgICBpZiAoIWlzQXBwSW5pdGlhdGVkKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgIGluZm8ubV9pc0FwcEluaXRpYXRlZCA9IFdURk1vdmUoKmlzQXBwSW5pdGlhdGVk
KTsKKwogICAgIHN0ZDo6b3B0aW9uYWw8VVJMPiBmaXJzdFBhcnR5Rm9yQ29va2llczsKICAgICBk
ZWNvZGVyID4+IGZpcnN0UGFydHlGb3JDb29raWVzOwogICAgIGlmICghZmlyc3RQYXJ0eUZvckNv
b2tpZXMpCkBAIC0xNTgsNiArMTY1LDcgQEAgU3VicmVzb3VyY2VJbmZvOjpTdWJyZXNvdXJjZUlu
Zm8oY29uc3QgS2V5JiBrZXksIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYKICAgICAs
IG1fZmlyc3RTZWVuKHByZXZpb3VzSW5mbyA/IHByZXZpb3VzSW5mby0+Zmlyc3RTZWVuKCkgOiBt
X2xhc3RTZWVuKQogICAgICwgbV9pc1RyYW5zaWVudCghcHJldmlvdXNJbmZvKQogICAgICwgbV9p
c1NhbWVTaXRlKHJlcXVlc3QuaXNTYW1lU2l0ZSgpKQorICAgICwgbV9pc0FwcEluaXRpYXRlZChy
ZXF1ZXN0LmlzQXBwSW5pdGlhdGVkKCkpCiAgICAgLCBtX2ZpcnN0UGFydHlGb3JDb29raWVzKHJl
cXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSkKICAgICAsIG1fcmVxdWVzdEhlYWRlcnMocmVx
dWVzdC5odHRwSGVhZGVyRmllbGRzKCkpCiAgICAgLCBtX3ByaW9yaXR5KHJlcXVlc3QucHJpb3Jp
dHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGFkNzc5
MjhjOThhNWQ5M2FjM2RkMGQ5ODIxOGQyOWUxZjk0NGQ1OTUuLmFjZDkzNmYxNzUyZDAwZjNkYzcz
MGI5YmRlZTY3YTc4NGYxY2Y2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtNTg0Myw3ICs1ODQzLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVO
ZXdQYWdlKEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIFdlYlBhCiAg
ICAgYXV0byogb3JpZ2luYXRpbmdQYWdlID0gbV9wcm9jZXNzLT53ZWJQYWdlKG9yaWdpbmF0aW5n
UGFnZUlEKTsKICAgICBhdXRvIG9yaWdpbmF0aW5nRnJhbWVJbmZvID0gQVBJOjpGcmFtZUluZm86
OmNyZWF0ZShXVEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFn
ZSk7CiAgICAgYXV0byBtYWluRnJhbWVVUkwgPSBtX21haW5GcmFtZSA/IG1fbWFpbkZyYW1lLT51
cmwoKSA6IFVSTCgpOwotICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG1haW5GcmFtZVVSTCwgcmVxdWVzdCwgcmVwbHkgPSBX
VEZNb3ZlKHJlcGx5KSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBuYXZpZ2F0aW9uQWN0aW9u
RGF0YS5wcml2YXRlQ2xpY2tNZWFzdXJlbWVudF0gKFJlZlB0cjxXZWJQYWdlUHJveHk+IG5ld1Bh
Z2UpIG11dGFibGUgeworCisgICAgc3RkOjpvcHRpb25hbDxib29sPiBvcGVuZXJBcHBJbml0aWF0
ZWRTdGF0ZTsKKyAgICBpZiAob3JpZ2luYXRpbmdQYWdlKQorICAgICAgICBvcGVuZXJBcHBJbml0
aWF0ZWRTdGF0ZSA9IG9yaWdpbmF0aW5nUGFnZS0+bGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0
ZWQoKTsKKworICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IFJlZiB7ICp0aGlzIH0sIG1haW5GcmFtZVVSTCwgcmVxdWVzdCwgcmVwbHkgPSBXVEZNb3Zl
KHJlcGx5KSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgb3BlbmVyQXBwSW5pdGlhdGVkU3RhdGUgPSBXVEZNb3Zl
KG9wZW5lckFwcEluaXRpYXRlZFN0YXRlKV0gKFJlZlB0cjxXZWJQYWdlUHJveHk+IG5ld1BhZ2Up
IG11dGFibGUgewogICAgICAgICBpZiAoIW5ld1BhZ2UpIHsKICAgICAgICAgICAgIHJlcGx5KHN0
ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTU4NTEs
NiArNTg1Niw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVOZXdQYWdlKEZyYW1lSW5mb0Rh
dGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIFdlYlBhCiAKICAgICAgICAgbmV3UGFnZS0+
c2V0T3BlbmVkQnlET00oKTsKIAorICAgICAgICBpZiAob3BlbmVyQXBwSW5pdGlhdGVkU3RhdGUp
CisgICAgICAgICAgICBuZXdQYWdlLT5tX2xhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkID0g
Km9wZW5lckFwcEluaXRpYXRlZFN0YXRlOworCiAgICAgICAgIHJlcGx5KG5ld1BhZ2UtPndlYlBh
Z2VJRCgpLCBuZXdQYWdlLT5jcmVhdGlvblBhcmFtZXRlcnMobV9wcm9jZXNzLCAqbmV3UGFnZS0+
ZHJhd2luZ0FyZWEoKSkpOwogCiAgICAgICAgIG5ld1BhZ2UtPm1fc2hvdWxkU3VwcHJlc3NBcHBM
aW5rc0luTmV4dE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiA9IG1haW5GcmFtZVVSTC5ob3N0KCkg
PT0gcmVxdWVzdC51cmwoKS5ob3N0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjk3Y2I0ODQ5MWMyOWU4MDdhMTZiMDUx
MTM2YzQ3YmI5NmFhNjA0MC4uYTU4NzFjMDhiZDY5NmFiNWY0MWY1YTZkNjJhMTIzZWY0N2I0OTQw
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTIwICBCcmVudCBGdWxnaGFtICA8YmZ1
bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFByb3BhZ2F0ZSBhcHAtaW5pdGlhdGVkIHN0YXRl
IHRvIG5ldyBSZXNvdXJjZVJlcXVlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzQwMTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2MTI4NjM4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc2FwcGlu
aXRpYXRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNhcHBpbml0aWF0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJp
YnV0aW9uLWJlYWNvbi1pc25vdGFwcGluaXRpYXRlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFj
b24taXNub3RhcHBpbml0aWF0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvbmV3LXdpbmRvdy1pc2FwcGluaXRpYXRlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9uZXctd2luZG93LWlzYXBw
aW5pdGlhdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvbmV3LXdpbmRvdy1pc25vdGFwcGluaXRpYXRlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9uZXctd2luZG93LWlzbm90
YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL25ldy13aW5kb3ctaXNhcHBpbml0aWF0ZWQtd2lu
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jl
c291cmNlcy9uZXctd2luZG93LWlzbm90YXBwaW5pdGlhdGVkLXdpbi5odG1sOiBBZGRlZC4KKwog
MjAyMS0xMi0xNyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVi
YXNlbGluZSBhZnRlciByMjg3MTk5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc2FwcGluaXRpYXRl
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzYXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZmM5MTZkMjY2MjVhYjUzNzIwZTRmMTRiZTBlNjM2ZmVlZGUwYzk5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBw
LWF0dHJpYnV0aW9uLWJlYWNvbi1pc2FwcGluaXRpYXRlZC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyMCBAQAorRW5zdXJlIGJlYWNvbnMgYXJlIGF0dHJpYnV0ZWQgY29ycmVjdGx5LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBuYXZpZ2F0b3Iuc2VuZEJlYWNvbigiLi4v
Ymxpbmsvc2VuZGJlYWNvbi9yZXNvdXJjZXMvc2F2ZS1iZWFjb24ucHk/bmFtZT1jb29raWUiLCAi
QmxpcCIpOyBpcyB0cnVlCitQQVNTIEJlYWNvbiBzZW50IHN1Y2Nlc3NmdWxseQorUEFTUyBDb250
ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1VVEYtOAorUEFTUyBDb29raWU6IGhlbGxvPXdv
cmxkCitQQVNTIE9yaWdpbjogaHR0cDovLzEyNy4wLjAuMTo4MDAwCitQQVNTIFJlZmVyZXI6IGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJl
YWNvbi1pc2FwcGluaXRpYXRlZC5odG1sCitQQVNTIFJlcXVlc3QtTWV0aG9kOiBQT1NUCitQQVNT
IExlbmd0aDogNAorUEFTUyBCb2R5OiBCbGlwCitQQVNTCitQQVNTIFN1Y2Nlc3NmdWxseSBsb2Fk
ZWQgb25seSBhcHAtaW5pdGlhdGVkIGJlYWNvbiByZXF1ZXN0cworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNh
cHBpbml0aWF0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNhcHBpbml0aWF0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZmJlYzc5YTUwNTAyMTBlYzMzMmQyYjMzNzU0YTM2MjllODg1NjJmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJp
YnV0aW9uLWJlYWNvbi1pc2FwcGluaXRpYXRlZC5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9dHJ1ZSBd
IC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbignRW5zdXJlIGJlYWNvbnMgYXJlIGF0dHJpYnV0ZWQgY29y
cmVjdGx5LicpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIGFz
a0ZvckF0dHJpYnV0aW9uKCkgeworICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9
IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICB2YXIgZGlkTG9h
ZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0
ZWRSZXF1ZXN0KCk7CisKKyAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsK
KyAgICAgICAgdGVzdEZhaWxlZCgiRGlkIGxvYWQgbm9uLWFwcCBpbml0aWF0ZWQgcmVxdWVzdCIp
OworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmICghZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgi
RGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3Nm
dWxseSBsb2FkZWQgb25seSBhcHAtaW5pdGlhdGVkIGJlYWNvbiByZXF1ZXN0cyIpOworCisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHRyeSB7Cisg
ICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgeGhyLm9wZW4o
IkdFVCIsICIuLi9jb29raWVzL3Jlc291cmNlcy9zZXRDb29raWVzLmNnaSIsIGZhbHNlKTsKKyAg
ICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoIlNFVC1DT09LSUUiLCAiaGVsbG89d29ybGQ7cGF0
aD0vIik7CisgICAgICAgIHhoci5zZW5kKG51bGwpOworICAgICAgICBpZiAoeGhyLnN0YXR1cyAh
PSAyMDApIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoImNvb2tpZSBub3Qgc2V0Iik7CisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgdGVzdEZhaWxlZCgiY29va2llIG5vdCBzZXQiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfQorCisgICAgc2hvdWxkQmVUcnVlKCduYXZpZ2F0b3Iuc2VuZEJlYWNvbigiLi4v
Ymxpbmsvc2VuZGJlYWNvbi9yZXNvdXJjZXMvc2F2ZS1iZWFjb24ucHk/bmFtZT1jb29raWUiLCAi
QmxpcCIpOycpOworICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIu
b3BlbigiR0VUIiwgIi4uL2JsaW5rL3NlbmRiZWFjb24vcmVzb3VyY2VzL2NoZWNrLWJlYWNvbi5w
eT9uYW1lPWNvb2tpZSIpOworICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAg
IHZhciBsaW5lcyA9IHhoci5yZXNwb25zZVRleHQuc3BsaXQoIlxuIik7CisgICAgICAgIGZvciAo
dmFyIGkgaW4gbGluZXMpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKGxpbmVzW2ldKTsKKyAgICAg
ICAgYXNrRm9yQXR0cmlidXRpb24oKTsKKyAgICB9OworICAgIHhoci5vbmVycm9yID0gZnVuY3Rp
b24gKCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJVbmFibGUgdG8gZmV0Y2ggYmVhY29uIHN0YXR1
cyIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9OworCisgICAgeGhyLnNlbmQoKTsK
K30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc25vdGFw
cGluaXRpYXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBwaW5pdGlhdGVkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MjNjZTM2Y2YzMTkxYjljMTUxNjE0MzRmOWJmYmZjYTI4NThl
MzJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWJlYWNvbi1pc25vdGFwcGluaXRpYXRlZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMCBAQAorRW5zdXJlIGJlYWNvbnMgYXJlIGF0dHJpYnV0ZWQgY29y
cmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBuYXZpZ2F0b3Iu
c2VuZEJlYWNvbigiLi4vYmxpbmsvc2VuZGJlYWNvbi9yZXNvdXJjZXMvc2F2ZS1iZWFjb24ucHk/
bmFtZT1jb29raWUiLCAiQmxpcCIpOyBpcyB0cnVlCitQQVNTIEJlYWNvbiBzZW50IHN1Y2Nlc3Nm
dWxseQorUEFTUyBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1VVEYtOAorUEFTUyBD
b29raWU6IGhlbGxvPXdvcmxkCitQQVNTIE9yaWdpbjogaHR0cDovLzEyNy4wLjAuMTo4MDAwCitQ
QVNTIFJlZmVyZXI6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hcHAtcHJpdmFjeS1yZXBvcnQvYXBw
LWF0dHJpYnV0aW9uLWJlYWNvbi1pc25vdGFwcGluaXRpYXRlZC5odG1sCitQQVNTIFJlcXVlc3Qt
TWV0aG9kOiBQT1NUCitQQVNTIExlbmd0aDogNAorUEFTUyBCb2R5OiBCbGlwCitQQVNTCitQQVNT
IFN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24tYXBwLWluaXRpYXRlZCBiZWFjb24gcmVxdWVz
dHMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAt
YXR0cmlidXRpb24tYmVhY29uLWlzbm90YXBwaW5pdGlhdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tYmVhY29uLWlzbm90
YXBwaW5pdGlhdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIwNWEyMTFlMjAxZDgyODQ0YzA4NjZkNWMx
ZTk4ZTU1MmRkMjRlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1iZWFjb24taXNub3RhcHBpbml0aWF0
ZWQuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZhbHNlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdF
bnN1cmUgYmVhY29ucyBhcmUgYXR0cmlidXRlZCBjb3JyZWN0bHkuJyk7CisKK3dpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gYXNrRm9yQXR0cmlidXRpb24oKSB7CisgICAg
dmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5p
dGlhdGVkUmVxdWVzdCgpOworICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9
IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKworICAgIGlmICgh
ZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiRGlk
IG5vdCBsb2FkIG5vbi1hcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZGlkTG9hZEFwcEluaXRp
YXRlZFJlcXVlc3QpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiRGlkIGxvYWQgYXBwIGluaXRpYXRl
ZCByZXF1ZXN0Iik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbi1hcHAt
aW5pdGlhdGVkIGJlYWNvbiByZXF1ZXN0cyIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisK
K2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHRyeSB7CisgICAgICAgIHZhciB4aHIgPSBuZXcg
WE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgeGhyLm9wZW4oIkdFVCIsICIuLi9jb29raWVzL3Jl
c291cmNlcy9zZXRDb29raWVzLmNnaSIsIGZhbHNlKTsKKyAgICAgICAgeGhyLnNldFJlcXVlc3RI
ZWFkZXIoIlNFVC1DT09LSUUiLCAiaGVsbG89d29ybGQ7cGF0aD0vIik7CisgICAgICAgIHhoci5z
ZW5kKG51bGwpOworICAgICAgICBpZiAoeGhyLnN0YXR1cyAhPSAyMDApIHsKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoImNvb2tpZSBub3Qgc2V0Iik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgfQorICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiY29v
a2llIG5vdCBzZXQiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorCisgICAgc2hv
dWxkQmVUcnVlKCduYXZpZ2F0b3Iuc2VuZEJlYWNvbigiLi4vYmxpbmsvc2VuZGJlYWNvbi9yZXNv
dXJjZXMvc2F2ZS1iZWFjb24ucHk/bmFtZT1jb29raWUiLCAiQmxpcCIpOycpOworICAgIHZhciB4
aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3BlbigiR0VUIiwgIi4uL2JsaW5r
L3NlbmRiZWFjb24vcmVzb3VyY2VzL2NoZWNrLWJlYWNvbi5weT9uYW1lPWNvb2tpZSIpOworICAg
IHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBsaW5lcyA9IHhoci5yZXNw
b25zZVRleHQuc3BsaXQoIlxuIik7CisgICAgICAgIGZvciAodmFyIGkgaW4gbGluZXMpCisgICAg
ICAgICAgICB0ZXN0UGFzc2VkKGxpbmVzW2ldKTsKKyAgICAgICAgYXNrRm9yQXR0cmlidXRpb24o
KTsKKyAgICB9OworICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgICAgICB0ZXN0
RmFpbGVkKCJVbmFibGUgdG8gZmV0Y2ggYmVhY29uIHN0YXR1cyIpOworICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICB9OworCisgICAgeGhyLnNlbmQoKTsKK30KKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvbmV3LXdpbmRvdy1pc2FwcGluaXRpYXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9uZXctd2luZG93LWlzYXBwaW5pdGlhdGVk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTc5ZTEyNzA1NGI0YWNmYzVkNGZhZDYwZDAzZGM2
NjI1ZjFlNmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvbmV3LXdpbmRvdy1pc2FwcGluaXRpYXRlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5IEBACitDT05TT0xFIE1FU1NBR0U6IFBBU1M6IE5ldyB3aW5kb3cgc2hvdWxkIGhh
dmUgYW4gb3BlbmVyCitDT05TT0xFIE1FU1NBR0U6IFBBU1M6IE5ldyB3aW5kb3cgc2hvdWxkIGJl
IGFibGUgdG8gbG9vayB1cCBvcGVuZXIgYnkgbmFtZQorQ09OU09MRSBNRVNTQUdFOiBQQVNTOiBT
dWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwLWluaXRpYXRlZCB3aW5kb3cgY29udGVudAorTWFr
ZSBzdXJlIHRoYXQgd2luZG93cyBvcGVuZWQgdmlhIHdpbmRvdy5vcGVuIGFyZSBhdHRyaWJ1dGVk
IGNvcnJlY3RseQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9uZXctd2luZG93LWlz
YXBwaW5pdGlhdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9uZXctd2luZG93LWlzYXBwaW5pdGlhdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg5YzU3YjU0
YWU5ODJlZjhjMjRjMGE3N2FlYzBhMjZlMWViMzNkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L25ldy13aW5kb3ctaXNhcHBpbml0
aWF0ZWQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJNYWtlIHN1cmUgdGhhdCB3
aW5kb3dzIG9wZW5lZCB2aWEgd2luZG93Lm9wZW4gYXJlIGF0dHJpYnV0ZWQgY29ycmVjdGx5Iik7
CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworb25sb2FkID0gZnVuY3Rpb24oKSB7
CisgICAgd2luZG93Lm5hbWUgPSAib3BlbmVyIjsKKyAgICB3ID0gb3BlbigicmVzb3VyY2VzL25l
dy13aW5kb3ctaXNhcHBpbml0aWF0ZWQtd2luLmh0bWwiLCAiIik7Cit9ICAgIAorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cC1wcml2YWN5LXJlcG9ydC9uZXctd2luZG93LWlzbm90YXBwaW5pdGlhdGVkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L25ldy13aW5kb3ct
aXNub3RhcHBpbml0aWF0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlYWEyODc1Nzc3MmIy
MWQ1MTg3ZTNmY2E3MDZlY2M2MTYwZjRhNmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9uZXctd2luZG93LWlzbm90YXBwaW5pdGlh
dGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNPTEUgTUVTU0FHRTogUEFTUzog
TmV3IHdpbmRvdyBzaG91bGQgaGF2ZSBhbiBvcGVuZXIKK0NPTlNPTEUgTUVTU0FHRTogUEFTUzog
TmV3IHdpbmRvdyBzaG91bGQgYmUgYWJsZSB0byBsb29rIHVwIG9wZW5lciBieSBuYW1lCitDT05T
T0xFIE1FU1NBR0U6IFBBU1M6IFN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24tYXBwLWluaXRp
YXRlZCB3aW5kb3cgY29udGVudAorTWFrZSBzdXJlIHRoYXQgd2luZG93cyBvcGVuZWQgdmlhIHdp
bmRvdy5vcGVuIGFyZSBhdHRyaWJ1dGVkIGNvcnJlY3RseQorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC9uZXctd2luZG93LWlzbm90YXBwaW5pdGlhdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9uZXctd2luZG93LWlzbm90YXBwaW5pdGlh
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVjNzUyNTRmMTkwZDZmYzBkNDVkOTkzZTIyZTcxYTY0MTgx
ZGQyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L25ldy13aW5kb3ctaXNub3RhcHBpbml0aWF0ZWQuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlh
dGVkPWZhbHNlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiTWFrZSBzdXJlIHRoYXQgd2luZG93cyBvcGVuZWQgdmlhIHdpbmRv
dy5vcGVuIGFyZSBhdHRyaWJ1dGVkIGNvcnJlY3RseSIpOworCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHdpbmRvdy5uYW1lID0gIm9w
ZW5lciI7CisgICAgdyA9IG9wZW4oInJlc291cmNlcy9uZXctd2luZG93LWlzbm90YXBwaW5pdGlh
dGVkLXdpbi5odG1sIiwgIiIpOworfSAgICAKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVz
b3VyY2VzL25ldy13aW5kb3ctaXNhcHBpbml0aWF0ZWQtd2luLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMvbmV3LXdpbmRvdy1pc2FwcGlu
aXRpYXRlZC13aW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzUxMmJmY2Q1ZWI4NWU1MmIyNmUwYjdhY2Zk
YzZjNmFlNDE5YzRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL25ldy13aW5kb3ctaXNhcHBpbml0aWF0ZWQtd2lu
Lmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ZnVuY3Rpb24gYXNrRm9yQXR0cmlidXRpb24oKSB7CisgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0
ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworICAg
IHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5v
bkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKworICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVk
UmVxdWVzdCkgeworICAgICAgICBjb25zb2xlLmxvZygiRkFJTDogTG9hZGVkIGEgbm9uLWFwcCBp
bml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmICghZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAg
ICAgICAgY29uc29sZS5sb2coIkZBSUw6IERpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVl
c3QiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBjb25zb2xlLmxvZygiUEFTUzogU3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcC1pbml0
aWF0ZWQgd2luZG93IGNvbnRlbnQiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitvbmxv
YWQgPSBmdW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93Lm9wZW5lcikKKyAgICAgICAgY29uc29s
ZS5sb2coIlBBU1M6IE5ldyB3aW5kb3cgc2hvdWxkIGhhdmUgYW4gb3BlbmVyIik7CisgICAgZWxz
ZQorICAgICAgICBjb25zb2xlLmxvZygiRkFJTDogTmV3IHdpbmRvdyBzaG91bGQgaGF2ZSBhbiBv
cGVuZXIiKTsKKworICAgIG9wZW5lckJ5TmFtZSA9IG9wZW4oIiIsICJvcGVuZXIiKTsgLy8gU2hv
dWxkIHJldHVybiB0aGUgb3BlbmVyLgorICAgIGlmIChvcGVuZXJCeU5hbWUgPT09IG9wZW5lcikK
KyAgICAgICAgY29uc29sZS5sb2coIlBBU1M6IE5ldyB3aW5kb3cgc2hvdWxkIGJlIGFibGUgdG8g
bG9vayB1cCBvcGVuZXIgYnkgbmFtZSIpOworICAgIGVsc2UKKyAgICAgICAgY29uc29sZS5sb2co
IkZBSUw6IE5ldyB3aW5kb3cgc2hvdWxkIGJlIGFibGUgdG8gbG9vayB1cCBvcGVuZXIgYnkgbmFt
ZSIpOworCisgICAgYXNrRm9yQXR0cmlidXRpb24oKTsKK307Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3Jlc291cmNlcy9uZXctd2luZG93LWlzbm90YXBwaW5pdGlhdGVkLXdpbi5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL25ldy13
aW5kb3ctaXNub3RhcHBpbml0aWF0ZWQtd2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkwOWUzNWYzZGU0
NWFmYzk3YjEwMDAyNTg1OGEyYTliOTBjODJkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy9uZXctd2luZG93LWlz
bm90YXBwaW5pdGlhdGVkLXdpbi5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIGFza0ZvckF0dHJpYnV0aW9uKCkgeworICAgIHZh
ciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRp
YXRlZFJlcXVlc3QoKTsKKyAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0
ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICBpZiAoIWRp
ZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgIGNvbnNvbGUubG9nKCJGQUlM
OiBEaWQgbm90IGxvYWQgbm9uLWFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChkaWRMb2FkQXBw
SW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICBjb25zb2xlLmxvZygiRkFJTDogRGlkIGxvYWQg
YXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgY29uc29sZS5sb2coIlBBU1M6IFN1Y2Nlc3NmdWxseSBs
b2FkZWQgb25seSBub24tYXBwLWluaXRpYXRlZCB3aW5kb3cgY29udGVudCIpOworCisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cu
b3BlbmVyKQorICAgICAgICBjb25zb2xlLmxvZygiUEFTUzogTmV3IHdpbmRvdyBzaG91bGQgaGF2
ZSBhbiBvcGVuZXIiKTsKKyAgICBlbHNlCisgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMOiBOZXcg
d2luZG93IHNob3VsZCBoYXZlIGFuIG9wZW5lciIpOworCisgICAgb3BlbmVyQnlOYW1lID0gb3Bl
bigiIiwgIm9wZW5lciIpOyAvLyBTaG91bGQgcmV0dXJuIHRoZSBvcGVuZXIuCisgICAgaWYgKG9w
ZW5lckJ5TmFtZSA9PT0gb3BlbmVyKQorICAgICAgICBjb25zb2xlLmxvZygiUEFTUzogTmV3IHdp
bmRvdyBzaG91bGQgYmUgYWJsZSB0byBsb29rIHVwIG9wZW5lciBieSBuYW1lIik7CisgICAgZWxz
ZQorICAgICAgICBjb25zb2xlLmxvZygiRkFJTDogTmV3IHdpbmRvdyBzaG91bGQgYmUgYWJsZSB0
byBsb29rIHVwIG9wZW5lciBieSBuYW1lIik7CisKKyAgICBhc2tGb3JBdHRyaWJ1dGlvbigpOwor
fTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>