<?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>233319</bug_id>
          
          <creation_ts>2021-11-18 08:31:08 -0800</creation_ts>
          <short_desc>[Model] add support for pausing and resuming animations</short_desc>
          <delta_ts>2021-11-18 23:28:05 -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>New Bugs</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>
          <dependson>233265</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1816442</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-18 08:31:08 -0800</bug_when>
    <thetext>[Model] add support for pausing and resuming animations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816446</commentid>
    <comment_count>1</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-18 08:33:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/85428464&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816449</commentid>
    <comment_count>2</comment_count>
      <attachid>444681</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-18 08:40:43 -0800</bug_when>
    <thetext>Created attachment 444681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816452</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-18 08:41:12 -0800</bug_when>
    <thetext>It is expected that this patch will fail to apply until bug 233265 lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816535</commentid>
    <comment_count>4</comment_count>
      <attachid>444708</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-18 11:43:41 -0800</bug_when>
    <thetext>Created attachment 444708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816563</commentid>
    <comment_count>5</comment_count>
      <attachid>444708</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-18 12:28:49 -0800</bug_when>
    <thetext>Comment on attachment 444708
Patch

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

&gt; Source/WebCore/Modules/model-element/HTMLModelElement.cpp:398
&gt; +// MARK: â Animations support.

The review tool isn&apos;t displaying this correctly :P
I assume it&apos;s an emdash?

&gt; Source/WebCore/Modules/model-element/scenekit/SceneKitModelPlayer.mm:103
&gt; +void SceneKitModelPlayer::setAnimationIsPlaying(bool, CompletionHandler&lt;void(bool&amp;&amp;)&gt;&amp;&amp;)

Nit - I don&apos;t think the `bool&amp;&amp;` rvalue reference is necessary. Just `bool` as the completion handler argument should be fine.

It&apos;s also slightly ambiguous what the inner `bool` represents (it seems like it indicates whether or not the call was successful?). I would either name it `bool success` in the method signature, or use a named `enum class` here.

&gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:321
&gt; +    if (!preview || !previewHasAnimationSupport(preview)) {

Nit - it seems like this can just be `!previewHasAnimationSupport(preview)`, since `previewHasAnimationSupport` will return false if `preview` is nil anyways.

&gt; Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:330
&gt; +        callOnMainRunLoop([error, weakThis = WTFMove(weakThis), completionHandler = WTFMove(completionHandler)] () mutable {

Is this called off of a background thread? If so, let&apos;s double check that we don&apos;t hit any debug assertions in WeakPtr here.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:10846
&gt; +void WebPageProxy::modelElementIsPlayingAnimation(ModelIdentifier modelIdentifier, CompletionHandler&lt;void(Expected&lt;bool, WebCore::ResourceError&gt;)&gt;&amp;&amp; completionHandler)

Nit - you can omit the WebCore:: here.

&gt; Source/WebKit/WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:146
&gt; +        completionHandler(WTFMove(success));

Nit - just passing `success` should be okay here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816598</commentid>
    <comment_count>6</comment_count>
      <attachid>444725</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-18 13:28:15 -0800</bug_when>
    <thetext>Created attachment 444725
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816761</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-18 23:28:01 -0800</bug_when>
    <thetext>Committed r286048 (244435@main): &lt;https://commits.webkit.org/244435@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444725.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444681</attachid>
            <date>2021-11-18 08:40:43 -0800</date>
            <delta_ts>2021-11-18 11:43:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>233319.patch</filename>
            <type>text/plain</type>
            <size>23414</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYjU0ZmQ3MDU2NmI1Li4xYTIzYjJkZDNiNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjEtMTEtMTggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W01vZGVsXSBhZGQgc3VwcG9ydCBmb3IgcGF1c2luZyBhbmQgcmVzdW1pbmcgYW5pbWF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzE5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTQyODQ2ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgY29tcGlsZS10aW1lIGZsYWcgZm9y
IHRoZSBuZXcgQVJRTCBTUElzIHdlIGFyZSB1c2luZy4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9y
bUVuYWJsZUNvY29hLmg6CisKIDIwMjEtMTEtMTcgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUENNOiBBZGQgY2FwYWJpbGl0eSBmb3IgY2xpY2sgZGVzdGlu
YXRpb24gdG8gZmlyZSB0cmlnZ2VyaW5nIGV2ZW50IHdpdGhvdXQgY3Jvc3Mtc2l0ZSByZXF1ZXN0
cyB0byB0aGUgY2xpY2sgc291cmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5k
ZXggMmRkOWZhMmIyN2NiLi4wY2FmMDI0MGNmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmgKQEAgLTc0Niw0ICs3NDYsNSBAQAogCiAjaWYgKEVOQUJMRShBUktJVF9JTkxJTkVf
UFJFVklFV19NQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMjA0MDAp
IHx8IChFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01BWF9BTExPV0VEID49IDE1MDQwMCkKICNkZWZpbmUgRU5BQkxFX0FSS0lUX0lOTElORV9Q
UkVWSUVXX0NBTUVSQV9UUkFOU0ZPUk0gMQorI2RlZmluZSBFTkFCTEVfQVJLSVRfSU5MSU5FX1BS
RVZJRVdfQU5JTUFUSU9OU19DT05UUk9MIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY4ZTg2Nzk4
YWQ5YS4uMzNjODNmNDgxMWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjEtMTEt
MTggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVs
XSBhZGQgc3VwcG9ydCBmb3IgcGF1c2luZyBhbmQgcmVzdW1pbmcgYW5pbWF0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzE5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84NTQyODQ2ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBhZGQgdGhyZWUgbmV3IHByb21pc2UtYmFzZWQgbWV0aG9k
cyB0byB0aGUgSFRNTE1vZGVsRWxlbWVudCBJREwgdG8gY29udHJvbCB0aGUgcGxheWJhY2sgc3Rh
dGUKKyAgICAgICAgb2YgdGhlIGFuaW1hdGlvbiBidWlsdCBpbnRvIHRoZSBVU0RaIGFzc2V0OiBp
c1BsYXlpbmdBbmltYXRpb24oKSwgcGxheUFuaW1hdGlvbigpIGFuZCBwYXVzZUFuaW1hdGlvbigp
LgorICAgICAgICBBbGwgdGhlc2UgbWV0aG9kcyBhcmUgcHJvbWlzZS1iYXNlZC4KKworICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmlzUGxheWluZ0FuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpzZXRBbmltYXRpb25Jc1BsYXlpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6cGxheUFuaW1hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpwYXVzZUFuaW1hdGlvbik6CisgICAgICAgICog
TW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaDoKKyAgICAgICAgKiBNb2R1
bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5pZGw6CisgICAgICAgICogTW9kdWxl
cy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmg6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1l
bGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVt
bXlNb2RlbFBsYXllcjo6aXNQbGF5aW5nQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkR1
bW15TW9kZWxQbGF5ZXI6OnNldEFuaW1hdGlvbklzUGxheWluZyk6CisgICAgICAgICogTW9kdWxl
cy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaDoKKyAgICAgICAgKiBNb2R1
bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oOgorICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2NlbmVLaXRNb2RlbFBsYXllcjo6aXNQbGF5aW5nQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjZW5lS2l0TW9kZWxQbGF5ZXI6OnNldEFuaW1hdGlv
bklzUGxheWluZyk6CisKIDIwMjEtMTEtMTggQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0
Lm9yZz4KIAogICAgICAgICBbTW9kZWxdIFttYWNPU10gQWRkIHN1cHBvcnQgZm9yIGludGVyYWN0
aW9uIG9uIG1hY09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVs
LWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKaW5kZXggODY3ODAzYjJkNjJlLi4xNmFjYTdm
ZDZlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9I
VE1MTW9kZWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKQEAgLTM5NSw2ICszOTUsNDggQEAgdm9pZCBIVE1M
TW9kZWxFbGVtZW50OjpzZXRDYW1lcmEoSFRNTE1vZGVsRWxlbWVudENhbWVyYSBjYW1lcmEsIERP
TVByb21pc2VEZWZlcnIKICAgICB9KTsKIH0KIAorLy8gTUFSSzog4oCTIEFuaW1hdGlvbnMgc3Vw
cG9ydC4KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50Ojppc1BsYXlpbmdBbmltYXRpb24oSXNQbGF5
aW5nQW5pbWF0aW9uUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgaWYgKCFtX21vZGVsUGxheWVy
KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBtX21vZGVsUGxheWVyLT5pc1BsYXlpbmdBbmltYXRpb24oW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXSAoc3RkOjpvcHRpb25hbDxib29sPiBpc1BsYXlpbmcpIG11dGFibGUgeworICAg
ICAgICBpZiAoIWlzUGxheWluZykKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZSgqaXNQbGF5aW5nKTsKKyAgICB9
KTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpzZXRBbmltYXRpb25Jc1BsYXlpbmcoYm9v
bCBpc1BsYXlpbmcsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAg
aWYgKCFtX21vZGVsUGxheWVyKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX21vZGVsUGxheWVyLT5zZXRBbmltYXRpb25Jc1BsYXlp
bmcoaXNQbGF5aW5nLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChib29sIHN1Y2Nlc3Mp
IG11dGFibGUgeworICAgICAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgICAgIHByb21pc2UucmVz
b2x2ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcm9taXNlLnJlamVjdCgpOworICAg
IH0pOworfQorCit2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OnBsYXlBbmltYXRpb24oRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBzZXRBbmltYXRpb25Jc1BsYXlpbmco
dHJ1ZSwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgSFRNTE1vZGVsRWxlbWVudDo6cGF1
c2VBbmltYXRpb24oRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBz
ZXRBbmltYXRpb25Jc1BsYXlpbmcoZmFsc2UsIFdURk1vdmUocHJvbWlzZSkpOworfQorCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCmluZGV4IGZjNGNk
NjhkYTI1NC4uYTJiYTdjMjYzODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTc1LDYgKzc1LDExIEBA
IHB1YmxpYzoKICAgICB2b2lkIGdldENhbWVyYShDYW1lcmFQcm9taXNlJiYpOwogICAgIHZvaWQg
c2V0Q2FtZXJhKEhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKIAorICAgIHVzaW5nIElzUGxheWluZ0FuaW1hdGlvblByb21pc2UgPSBET01Qcm9taXNl
RGVmZXJyZWQ8SURMQm9vbGVhbj47CisgICAgdm9pZCBpc1BsYXlpbmdBbmltYXRpb24oSXNQbGF5
aW5nQW5pbWF0aW9uUHJvbWlzZSYmKTsKKyAgICB2b2lkIHBsYXlBbmltYXRpb24oRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgcGF1c2VBbmltYXRpb24oRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpOworCiAgICAgYm9vbCBpc0RyYWdnYWJsZUlnbm9yaW5nQXR0cmlidXRl
cygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKQEAgLTEwNSw2ICsx
MTAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZHJhZ0RpZENoYW5nZShNb3VzZUV2ZW50Jik7CiAg
ICAgdm9pZCBkcmFnRGlkRW5kKE1vdXNlRXZlbnQmKTsKIAorICAgIHZvaWQgc2V0QW5pbWF0aW9u
SXNQbGF5aW5nKGJvb2wsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKwogICAgIFVSTCBt
X3NvdXJjZVVSTDsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4g
bV9yZXNvdXJjZTsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2RhdGE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVu
dC5pZGwKaW5kZXggZTdlZDQwOTFiMzkwLi5iNmQ1ZmY0MmNjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5p
ZGwKQEAgLTM2LDQgKzM2LDggQEAKIAogICAgIFByb21pc2U8SFRNTE1vZGVsRWxlbWVudENhbWVy
YT4gZ2V0Q2FtZXJhKCk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNldENhbWVyYShIVE1MTW9k
ZWxFbGVtZW50Q2FtZXJhIGNhbWVyYSk7CisKKyAgICBQcm9taXNlPGJvb2xlYW4+IGlzUGxheWlu
Z0FuaW1hdGlvbigpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBwbGF5QW5pbWF0aW9uKCk7Cisg
ICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBhdXNlQW5pbWF0aW9uKCk7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaAppbmRleCA5YWVl
Y2I1YTNkY2UuLmNmMGFhNWRiNjQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmgKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVNb3VzZVVwKGNvbnN0IExheW91dFBvaW50JiwgTW9ub3Rv
bmljVGltZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRDYW1lcmEoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEhUTUxNb2RlbEVsZW1lbnRDYW1lcmE+JiYpPiYmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldENhbWVyYShIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wmJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaXNQ
bGF5aW5nQW5pbWF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxib29s
PiYmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRBbmltYXRpb25Jc1BsYXlpbmcoYm9v
bCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sJiYpPiYmKSA9IDA7CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlN
b2RlbFBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVt
bXkvRHVtbXlNb2RlbFBsYXllci5jcHAKaW5kZXggYzUyOWYwNzllNzgyLi43MmVhYjZlOWEzOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9E
dW1teU1vZGVsUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKQEAgLTc4LDQgKzc4LDEyIEBAIHZvaWQg
RHVtbXlNb2RlbFBsYXllcjo6c2V0Q2FtZXJhKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1l
cmEsIENvbXBsZXRpb25IYW5kCiB7CiB9CiAKK3ZvaWQgRHVtbXlNb2RlbFBsYXllcjo6aXNQbGF5
aW5nQW5pbWF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxib29sPiYm
KT4mJikKK3sKK30KKwordm9pZCBEdW1teU1vZGVsUGxheWVyOjpzZXRBbmltYXRpb25Jc1BsYXlp
bmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sJiYpPiYmKQoreworfQorCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVt
bXlNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1
bW15L0R1bW15TW9kZWxQbGF5ZXIuaAppbmRleCA3OTYxMzQ1YTQ2MjYuLmZmYThjNTA1YmQ0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1
bW15TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCkBAIC00OSw2ICs0OSw4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBoYW5kbGVNb3VzZVVwKGNvbnN0IExheW91dFBvaW50JiwgTW9ub3RvbmljVGltZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBnZXRDYW1lcmEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmE+JiYpPiYmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldENhbWVyYShXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wmJik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgaXNQ
bGF5aW5nQW5pbWF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxib29s
PiYmKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRBbmltYXRpb25Jc1BsYXlpbmcoYm9vbCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sJiYpPiYmKSBvdmVycmlkZTsKIAogICAgIFdlYWtQ
dHI8TW9kZWxQbGF5ZXJDbGllbnQ+IG1fY2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVL
aXRNb2RlbFBsYXllci5oCmluZGV4IGU3ODU0ZjgwYmI3ZC4uMTkwNDVhYWM2MzNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVL
aXRNb2RlbFBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmgKQEAgLTYzLDYgKzYzLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGhhbmRsZU1vdXNlVXAoY29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNU
aW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGdldENhbWVyYShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8SFRNTE1vZGVsRWxlbWVudENhbWVyYT4mJik+JiYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgc2V0Q2FtZXJhKEhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCYmKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpc1BsYXlpbmdBbmltYXRp
b24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHNldEFuaW1hdGlvbklzUGxheWluZyhib29sLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wmJik+JiYpIG92ZXJyaWRlOwogCiAgICAgLy8gU2NlbmVLaXRNb2RlbExv
YWRlckNsaWVudCBvdmVycmlkZXMuCiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmco
U2NlbmVLaXRNb2RlbExvYWRlciYsIFJlZjxTY2VuZUtpdE1vZGVsPikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2Nl
bmVLaXRNb2RlbFBsYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tCmluZGV4IGY0MzA5ZWI2MTQ4OS4uYmFl
YzlkNDU2ZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbQpAQCAt
OTYsNiArOTYsMTQgQEAgdm9pZCBTY2VuZUtpdE1vZGVsUGxheWVyOjpzZXRDYW1lcmEoSFRNTE1v
ZGVsRWxlbWVudENhbWVyYSwgQ29tcGxldGlvbkhhbmRsZXI8dm8KIHsKIH0KIAordm9pZCBTY2Vu
ZUtpdE1vZGVsUGxheWVyOjppc1BsYXlpbmdBbmltYXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmKQoreworfQorCit2b2lkIFNjZW5lS2l0TW9kZWxQ
bGF5ZXI6OnNldEFuaW1hdGlvbklzUGxheWluZyhib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wmJik+JiYpCit7Cit9CisKIC8vIE1BUks6IC0gU2NlbmVLaXRNb2RlbExvYWRlckNsaWVu
dCBvdmVycmlkZXMuCiAKIHZvaWQgU2NlbmVLaXRNb2RlbFBsYXllcjo6ZGlkRmluaXNoTG9hZGlu
ZyhTY2VuZUtpdE1vZGVsTG9hZGVyJiBsb2FkZXIsIFJlZjxTY2VuZUtpdE1vZGVsPiBtb2RlbCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDI5OTcwNTgzMDZhYy4uNzAwNzNkODY5ZTdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMS0xOCAgQW50b2luZSBRdWludCAg
PGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBbTW9kZWxdIGFkZCBzdXBwb3J0IGZvciBw
YXVzaW5nIGFuZCByZXN1bWluZyBhbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMzMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1
NDI4NDY0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCB0aGUgbmV3IEFSUUwgU1BJcyB3ZSBhcmUgdXNpbmcuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2lvcy9TeXN0ZW1QcmV2aWV3U1BJLmg6CisgICAgICAgICogcGFsL3NwaS9tYWMvU3lzdGVtUHJl
dmlld1NQSS5oOgorCiAyMDIxLTExLTE4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtNb2RlbF0gW21hY09TXSBBZGQgc3VwcG9ydCBmb3IgaW50ZXJhY3Rp
b24gb24gbWFjT1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9T
eXN0ZW1QcmV2aWV3U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvU3lzdGVt
UHJldmlld1NQSS5oCmluZGV4IGI4OTVjYmM0MzUzNS4uNThmNjkwYzg5MjZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvU3lzdGVtUHJldmlld1NQSS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9TeXN0ZW1QcmV2aWV3U1BJLmgKQEAgLTEw
Myw2ICsxMDMsMTAgQEAgdHlwZWRlZiB2b2lkICheQVNWQ2FtZXJhVHJhbnNmb3JtUmVwbHlCbG9j
aykgKHNpbWRfZmxvYXQzIGNhbWVyYVRyYW5zZm9ybSwgTlNFcnIKIC0gKHZvaWQpZ2V0Q2FtZXJh
VHJhbnNmb3JtOihBU1ZDYW1lcmFUcmFuc2Zvcm1SZXBseUJsb2NrKXJlcGx5OwogLSAodm9pZClz
ZXRDYW1lcmFUcmFuc2Zvcm06KHNpbWRfZmxvYXQzKXRyYW5zZm9ybTsKIAorQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlzUGxheWluZzsKK3R5cGVkZWYgdm9pZCAoXkFTVlNl
dElzUGxheWluZ1JlcGx5QmxvY2spIChCT09MIGlzUGxheWluZywgTlNFcnJvciAqIF9OdWxsYWJs
ZSBlcnJvcik7CistICh2b2lkKXNldElzUGxheWluZzooQk9PTClpc1BsYXlpbmcgcmVwbHk6KEFT
VlNldElzUGxheWluZ1JlcGx5QmxvY2spcmVwbHk7CisKIEBlbmQKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaAppbmRleCAw
ZDlkMmRjMWY2OGIuLjY0MzY2NmU3MDlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oCkBAIC01OCw2ICs1OCwxMCBAQCB0eXBlZGVm
IHZvaWQgKF5BU1ZDYW1lcmFUcmFuc2Zvcm1SZXBseUJsb2NrKSAoc2ltZF9mbG9hdDMgY2FtZXJh
VHJhbnNmb3JtLCBOU0VycgogLSAodm9pZClnZXRDYW1lcmFUcmFuc2Zvcm06KEFTVkNhbWVyYVRy
YW5zZm9ybVJlcGx5QmxvY2spcmVwbHk7CiAtICh2b2lkKXNldENhbWVyYVRyYW5zZm9ybTooc2lt
ZF9mbG9hdDMpdHJhbnNmb3JtOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgaXNQbGF5aW5nOwordHlwZWRlZiB2b2lkICheQVNWU2V0SXNQbGF5aW5nUmVwbHlCbG9jaykg
KEJPT0wgaXNQbGF5aW5nLCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKTsKKy0gKHZvaWQpc2V0
SXNQbGF5aW5nOihCT09MKWlzUGxheWluZyByZXBseTooQVNWU2V0SXNQbGF5aW5nUmVwbHlCbG9j
aylyZXBseTsKKwogQGVuZAogCiAjZW5kaWYgLy8gRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVX
X01BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZGYwNzI0MWI3OWJiLi4xNTU3YmI3OTRmYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMjEtMTEtMTggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW01vZGVsXSBhZGQgc3VwcG9ydCBmb3IgcGF1c2luZyBhbmQgcmVz
dW1pbmcgYW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMzMzE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTQyODQ2ND4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgbmV3IFdl
YlBhZ2VQcm94eSBtZXNzYWdlcyB0byBsZXQgdGhlIFdlYlByb2Nlc3MgbWVzc2FnZSB0aGUgVUlQ
cm9jZXNzCisgICAgICAgIHRvIGNhbGwgaW50byBBU1ZJbmxpbmVQcmV2aWV3IG1ldGhvZHMgdG8g
Z2V0IGFuZCBzZXQgdGhlIGFuaW1hdGlvbidzIHBsYXliYWNrCisgICAgICAgIHN0YXRlLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6cHJldmlld0hhc0FuaW1hdGlvblN1cHBvcnQpOgorICAgICAgICAo
V2ViS2l0OjpNb2RlbEVsZW1lbnRDb250cm9sbGVyOjppc1BsYXlpbmdBbmltYXRpb25Gb3JNb2Rl
bEVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpNb2RlbEVsZW1lbnRDb250cm9sbGVyOjpzZXRB
bmltYXRpb25Jc1BsYXlpbmdGb3JNb2RlbEVsZW1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9N
b2RlbEVsZW1lbnRDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bW9kZWxFbGVtZW50SXNQbGF5
aW5nQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojptb2RlbEVsZW1l
bnRTZXRBbmltYXRpb25Jc1BsYXlpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
Lm1tOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6aXNQ
bGF5aW5nQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXI6OnNldEFuaW1hdGlvbklzUGxheWluZyk6CisKIDIwMjEtMTEtMTggIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01vZGVsXSBbbWFjT1NdIEFk
ZCBzdXBwb3J0IGZvciBpbnRlcmFjdGlvbiBvbiBtYWNPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1t
CmluZGV4IDhlN2FjNWI2NGYwZC4uZWZjYWEwMDExZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29h
Lm1tCkBAIC0yODgsNiArMjg4LDUyIEBAIHZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6c2V0
Q2FtZXJhRm9yTW9kZWxFbGVtZW50KE1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50CiAgICAgfSk7
CiB9CiAKK3N0YXRpYyBib29sIHByZXZpZXdIYXNBbmltYXRpb25TdXBwb3J0KEFTVklubGluZVBy
ZXZpZXcgKnByZXZpZXcpCit7CisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0FOSU1B
VElPTlNfQ09OVFJPTCkKKyAgICByZXR1cm4gW3ByZXZpZXcgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihpc1BsYXlpbmcpXTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9
CisKK3ZvaWQgTW9kZWxFbGVtZW50Q29udHJvbGxlcjo6aXNQbGF5aW5nQW5pbWF0aW9uRm9yTW9k
ZWxFbGVtZW50KE1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8qIHByZXZpZXcgPSBwcmV2aWV3Rm9yTW9kZWxJZGVu
dGlmaWVyKG1vZGVsSWRlbnRpZmllcik7CisgICAgaWYgKCFwcmV2aWV3IHx8ICFwcmV2aWV3SGFz
QW5pbWF0aW9uU3VwcG9ydChwcmV2aWV3KSkgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChb
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSwgZXJyb3IgPSBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHsgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcjo6VHlwZTo6R2VuZXJhbCB9XSAoKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlciht
YWtlVW5leHBlY3RlZChlcnJvcikpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGF1dG8gaXNQbGF5aW5nID0gW3ByZXZpZXcgaXNQbGF5aW5nXTsKKyAgICBjYWxs
T25NYWluUnVuTG9vcChbaXNQbGF5aW5nLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxl
IHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
aXNQbGF5aW5nKTsKKyAgICB9KTsKK30KKwordm9pZCBNb2RlbEVsZW1lbnRDb250cm9sbGVyOjpz
ZXRBbmltYXRpb25Jc1BsYXlpbmdGb3JNb2RlbEVsZW1lbnQoTW9kZWxJZGVudGlmaWVyIG1vZGVs
SWRlbnRpZmllciwgYm9vbCBpc1BsYXlpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byogcHJldmlldyA9IHByZXZpZXdGb3JN
b2RlbElkZW50aWZpZXIobW9kZWxJZGVudGlmaWVyKTsKKyAgICBpZiAoIXByZXZpZXcgfHwgIXBy
ZXZpZXdIYXNBbmltYXRpb25TdXBwb3J0KHByZXZpZXcpKSB7CisgICAgICAgIGNhbGxPbk1haW5S
dW5Mb29wKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlm
ICh3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Cisg
ICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3ByZXZpZXcgc2V0SXNQ
bGF5aW5nOmlzUGxheWluZyByZXBseTptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
IChCT09MLCBOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFtlcnJvciwgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoIWVycm9y
KTsKKyAgICAgICAgfSk7CisgICAgfSkuZ2V0KCldOworfQorCiAjZW5kaWYKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oCmluZGV4IGVl
Njg0ZTg3OGE5ZS4uMTY0ZDY5YTIyNDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oCkBAIC01NCw2ICs1NCw4IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcpCiAgICAgdm9pZCBnZXRDYW1lcmFGb3JNb2Rl
bEVsZW1lbnQoTW9kZWxJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVk
PFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+
KT4mJik7CiAgICAgdm9pZCBzZXRDYW1lcmFGb3JNb2RlbEVsZW1lbnQoTW9kZWxJZGVudGlmaWVy
LCBXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKKyAgICB2b2lkIGlzUGxheWluZ0FuaW1hdGlvbkZvck1vZGVsRWxlbWVudChN
b2RlbElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIHNldEFuaW1hdGlvbklzUGxheWlu
Z0Zvck1vZGVsRWxlbWVudChNb2RlbElkZW50aWZpZXIsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVX
X0lPUykKICAgICB2b2lkIHRha2VNb2RlbEVsZW1lbnRGdWxsc2NyZWVuKE1vZGVsSWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBmMGQxZTc1
YjVkZjMuLjJiNWRkODUyYWQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC0xMDg0Miw2ICsxMDg0MiwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bW9kZWxF
bGVtZW50U2V0Q2FtZXJhKE1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIFdlYkNvcgog
ewogICAgIG1vZGVsRWxlbWVudENvbnRyb2xsZXIoKS0+c2V0Q2FtZXJhRm9yTW9kZWxFbGVtZW50
KG1vZGVsSWRlbnRpZmllciwgY2FtZXJhLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnRJc1BsYXlpbmdBbmltYXRpb24oTW9k
ZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBl
Y3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgbW9kZWxFbGVtZW50Q29udHJvbGxlcigpLT5pc1BsYXlpbmdBbmltYXRpb25Gb3JN
b2RlbEVsZW1lbnQobW9kZWxJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnRTZXRBbmltYXRpb25Jc1BsYXlp
bmcoTW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgYm9vbCBpc1BsYXlpbmcsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbW9k
ZWxFbGVtZW50Q29udHJvbGxlcigpLT5zZXRBbmltYXRpb25Jc1BsYXlpbmdGb3JNb2RlbEVsZW1l
bnQobW9kZWxJZGVudGlmaWVyLCBpc1BsYXlpbmcsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKK30KICNlbmRpZgogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYzcwZDBjNzcxYzVjLi40ZTg3
YzUyOTFmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01OTAs
NiArNTkwLDggQEAgcHVibGljOgogICAgIE1vZGVsRWxlbWVudENvbnRyb2xsZXIqIG1vZGVsRWxl
bWVudENvbnRyb2xsZXIoKSB7IHJldHVybiBtX21vZGVsRWxlbWVudENvbnRyb2xsZXIuZ2V0KCk7
IH0KICAgICB2b2lkIG1vZGVsRWxlbWVudEdldENhbWVyYShNb2RlbElkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVy
YSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIG1vZGVsRWxlbWVudFNl
dENhbWVyYShNb2RlbElkZW50aWZpZXIsIFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgbW9kZWxFbGVtZW50
SXNQbGF5aW5nQW5pbWF0aW9uKE1vZGVsSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYpOworICAgIHZvaWQg
bW9kZWxFbGVtZW50U2V0QW5pbWF0aW9uSXNQbGF5aW5nKE1vZGVsSWRlbnRpZmllciwgYm9vbCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJL
SVRfSU5MSU5FX1BSRVZJRVdfSU9TKQogICAgIHZvaWQgdGFrZU1vZGVsRWxlbWVudEZ1bGxzY3Jl
ZW4oTW9kZWxJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA2ZjA3NGY1MzBiMmUuLjFkMzkzZDM1NjQxYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpA
QCAtNTk3LDYgKzU5Nyw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYgRU5BQkxF
KEFSS0lUX0lOTElORV9QUkVWSUVXKQogICAgIE1vZGVsRWxlbWVudEdldENhbWVyYShzdHJ1Y3Qg
V2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8V2Vi
Q29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVz
dWx0KSBBc3luYwogICAgIE1vZGVsRWxlbWVudFNldENhbWVyYShzdHJ1Y3QgV2ViS2l0OjpNb2Rl
bElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6SFRNTE1vZGVsRWxl
bWVudENhbWVyYSBjYW1lcmEpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCisgICAgTW9kZWxFbGVt
ZW50SXNQbGF5aW5nQW5pbWF0aW9uKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2Rl
bElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiBy
ZXN1bHQpIEFzeW5jCisgICAgTW9kZWxFbGVtZW50U2V0QW5pbWF0aW9uSXNQbGF5aW5nKHN0cnVj
dCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIGJvb2wgaXNQbGF5aW5n
KSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwogI2VuZGlmCiAKICAgICByZXF1ZXN0UGVybWlzc2lv
bihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlBl
cm1pc3Npb25EZXNjcmlwdG9yIGRlc2NyaXB0b3IpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
UGVybWlzc2lvblN0YXRlIHN0YXRlKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaApp
bmRleCBjYzM0NGE1N2JhMGEuLjBhOGFkMTU5YTRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyLmgKQEAgLTU1LDYgKzU1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGVudGVyRnVsbHNjcmVl
bigpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2V0Q2FtZXJhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJhPiYmKT4mJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzZXRDYW1lcmEoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVy
YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sJiYpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGlzUGxheWluZ0FuaW1hdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
Ym9vbD4mJik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0QW5pbWF0aW9uSXNQbGF5aW5nKGJv
b2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCYmKT4mJikgb3ZlcnJpZGU7CiAKICAgICBX
ZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKICAgICBXZWFrUHRyPFdlYkNvcmU6Ok1vZGVsUGxheWVy
Q2xpZW50PiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9N
b2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQppbmRleCAwYzAx
ZjIwNmNhNmQuLmYzZDA4NThhZmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQpA
QCAtMTAyLDYgKzEwMiw1MyBAQCB2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpz
ZXRDYW1lcmEoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYSBjYQogICAgIHN0cm9uZ1Bh
Z2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpNb2RlbEVsZW1l
bnRTZXRDYW1lcmEoKm1vZGVsSWRlbnRpZmllciwgY2FtZXJhKSwgV1RGTW92ZShyZW1vdGVDb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
Ojppc1BsYXlpbmdBbmltYXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PGJvb2w+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gbW9kZWxJZGVudGlm
aWVyID0gdGhpcy0+bW9kZWxJZGVudGlmaWVyKCk7CisgICAgaWYgKCFtb2RlbElkZW50aWZpZXIp
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8qIHN0cm9uZ1BhZ2UgPSBtX3BhZ2UuZ2V0KCk7CisgICAg
aWYgKCFzdHJvbmdQYWdlKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9w
dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4gcmVtb3RlQ29tcGxldGlv
bkhhbmRsZXIgPSBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihzdGQ6Om51bGxvcHQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKnJlc3VsdCk7CisgICAgfTsKKworICAgIHN0cm9uZ1BhZ2Ut
PnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpNb2RlbEVsZW1lbnRJ
c1BsYXlpbmdBbmltYXRpb24oKm1vZGVsSWRlbnRpZmllciksIFdURk1vdmUocmVtb3RlQ29tcGxl
dGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6
c2V0QW5pbWF0aW9uSXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBtb2RlbElkZW50
aWZpZXIgPSB0aGlzLT5tb2RlbElkZW50aWZpZXIoKTsKKyAgICBpZiAoIW1vZGVsSWRlbnRpZmll
cikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvKiBzdHJvbmdQYWdlID0gbV9wYWdlLmdldCgpOworICAgIGlmICgh
c3Ryb25nUGFnZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiByZW1v
dGVDb21wbGV0aW9uSGFuZGxlciA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSAoYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZShzdWNjZXNzKSk7CisgICAgfTsKKworICAgIHN0cm9uZ1BhZ2UtPnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpNb2RlbEVsZW1lbnRTZXRB
bmltYXRpb25Jc1BsYXlpbmcoKm1vZGVsSWRlbnRpZmllciwgaXNQbGF5aW5nKSwgV1RGTW92ZShy
ZW1vdGVDb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB9CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444708</attachid>
            <date>2021-11-18 11:43:41 -0800</date>
            <delta_ts>2021-11-18 12:28:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233319-20211118204339.patch</filename>
            <type>text/plain</type>
            <size>24615</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM0ODk1NWI5NzBkNDAxZmY1MTg0ODBh
NWM0NmM3ODAxMWU5YzVlODAuLmJlNjk5OTAxNTE4Njg2MDQ4MzRiYWJiOWEwY2E0MGVkZTljNjQ0
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTEtMTggIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVsXSBhZGQgc3VwcG9ydCBmb3IgcGF1c2lu
ZyBhbmQgcmVzdW1pbmcgYW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTQyODQ2
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBuZXcgY29tcGlsZS10aW1lIGZsYWcgZm9yIHRoZSBuZXcgQVJRTCBTUElzIHdlIGFyZSB1c2lu
Zy4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisKIDIwMjEtMTEtMTgg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01vZGVsXSBh
ZGQgc3VwcG9ydCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyB0aGUgY2FtZXJhCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMTkzZWRhMGQ0MmM0MjgwYWMwMzc4YjI5N2YyZDc3MGYwYWQzZmY3Yy4uOWE4NTFmYTdlNGM4
NjIyMTI2NDQ1ZWUzZWQxNmI4MzE3YzkwODY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBA
CisyMDIxLTExLTE4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFtNb2RlbF0gYWRkIHN1cHBvcnQgZm9yIHBhdXNpbmcgYW5kIHJlc3VtaW5nIGFuaW1hdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzMx
OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU0Mjg0NjQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgYWRkIHRocmVlIG5ldyBwcm9taXNlLWJh
c2VkIG1ldGhvZHMgdG8gdGhlIEhUTUxNb2RlbEVsZW1lbnQgSURMIHRvIGNvbnRyb2wgdGhlIHBs
YXliYWNrIHN0YXRlCisgICAgICAgIG9mIHRoZSBhbmltYXRpb24gYnVpbHQgaW50byB0aGUgVVNE
WiBhc3NldDogaXNQbGF5aW5nQW5pbWF0aW9uKCksIHBsYXlBbmltYXRpb24oKSBhbmQgcGF1c2VB
bmltYXRpb24oKS4KKyAgICAgICAgQWxsIHRoZXNlIG1ldGhvZHMgYXJlIHByb21pc2UtYmFzZWQu
CisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Ojppc1BsYXlpbmdBbmltYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6c2V0QW5pbWF0aW9uSXNQbGF5
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OnBsYXlBbmltYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6cGF1c2VBbmltYXRpb24pOgor
ICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmg6CisgICAg
ICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaWRsOgorICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oOgorICAgICAgICAqIE1vZHVs
ZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkR1bW15TW9kZWxQbGF5ZXI6OmlzUGxheWluZ0FuaW1hdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyOjpzZXRBbmltYXRpb25Jc1BsYXlpbmcpOgorICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmg6CisgICAg
ICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIu
aDoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2Rl
bFBsYXllci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjZW5lS2l0TW9kZWxQbGF5ZXI6OmlzUGxh
eWluZ0FuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVyOjpz
ZXRBbmltYXRpb25Jc1BsYXlpbmcpOgorCiAyMDIxLTExLTE4ICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtNb2RlbF0gYWRkIHN1cHBvcnQgZm9yIGdldHRp
bmcgYW5kIHNldHRpbmcgdGhlIGNhbWVyYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggMzc4ZmEyMDlh
NTk4YzVmOWNjMGQzNDU3ZTExNDc3ZDIzYjExNDRjMC4uZjVkYzY3Njg0MjRkMWE3NmMzNGM0NWM2
ZDVkMTcwMzIxNWE4NjcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjEtMTEtMTggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W01vZGVsXSBhZGQgc3VwcG9ydCBmb3IgcGF1c2luZyBhbmQgcmVzdW1pbmcgYW5pbWF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzE5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTQyODQ2ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIG5ldyBBUlFMIFNQSXMgd2UgYXJlIHVz
aW5nLgorCisgICAgICAgICogcGFsL3NwaS9pb3MvU3lzdGVtUHJldmlld1NQSS5oOgorICAgICAg
ICAqIHBhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaDoKKwogMjAyMS0xMS0xOCAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbTW9kZWxdIGFkZCBzdXBw
b3J0IGZvciBnZXR0aW5nIGFuZCBzZXR0aW5nIHRoZSBjYW1lcmEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMGU5NjNl
M2MzZjE1NmMxMzFlNDkwNmI5MGJhY2QyNjU4ZDUxYTNjZi4uMGQzZTM4YTQ4ZDI2MTA5ZDBlNzkx
N2Y5MzZiMjcxM2E2ZmQ2OTA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0xMS0x
OCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBbTW9kZWxd
IGFkZCBzdXBwb3J0IGZvciBwYXVzaW5nIGFuZCByZXN1bWluZyBhbmltYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMzMTkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg1NDI4NDY0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEV4cG9zZSBuZXcgV2ViUGFnZVByb3h5IG1lc3NhZ2VzIHRvIGxl
dCB0aGUgV2ViUHJvY2VzcyBtZXNzYWdlIHRoZSBVSVByb2Nlc3MKKyAgICAgICAgdG8gY2FsbCBp
bnRvIEFTVklubGluZVByZXZpZXcgbWV0aG9kcyB0byBnZXQgYW5kIHNldCB0aGUgYW5pbWF0aW9u
J3MgcGxheWJhY2sKKyAgICAgICAgc3RhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
TW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpwcmV2aWV3
SGFzQW5pbWF0aW9uU3VwcG9ydCk6CisgICAgICAgIChXZWJLaXQ6Ok1vZGVsRWxlbWVudENvbnRy
b2xsZXI6OmlzUGxheWluZ0FuaW1hdGlvbkZvck1vZGVsRWxlbWVudCk6CisgICAgICAgIChXZWJL
aXQ6Ok1vZGVsRWxlbWVudENvbnRyb2xsZXI6OnNldEFuaW1hdGlvbklzUGxheWluZ0Zvck1vZGVs
RWxlbWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnRJc1BsYXlpbmdBbmltYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6Om1vZGVsRWxlbWVudFNldEFuaW1hdGlvbklzUGxheWluZyk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9k
ZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW06CisgICAgICAgIChXZWJLaXQ6OkFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjppc1BsYXlpbmdBbmltYXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6c2V0QW5pbWF0aW9uSXNQ
bGF5aW5nKToKKwogMjAyMS0xMS0xOCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbTW9kZWxdIGFkZCBzdXBwb3J0IGZvciBnZXR0aW5nIGFuZCBzZXR0aW5n
IHRoZSBjYW1lcmEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCAyZGQ5ZmEy
YjI3Y2I0MDdjYWRiNzM5NDBhMjc1YzRkNjc1MmMzZGE0Li4wY2FmMDI0MGNmOWQxMzZkYTQ3YjUw
MWMyNGE4ODJkOWE0MTZiNGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBA
IC03NDYsNCArNzQ2LDUgQEAKIAogI2lmIChFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTIwNDAwKSB8fCAoRU5BQkxF
KEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NQVhfQUxM
T1dFRCA+PSAxNTA0MDApCiAjZGVmaW5lIEVOQUJMRV9BUktJVF9JTkxJTkVfUFJFVklFV19DQU1F
UkFfVFJBTlNGT1JNIDEKKyNkZWZpbmUgRU5BQkxFX0FSS0lUX0lOTElORV9QUkVWSUVXX0FOSU1B
VElPTlNfQ09OVFJPTCAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcAppbmRleCA4Njc4MDNiMmQ2
MmUzYjYwNzFjOTYxMjA3ZWEyMDlhN2RjZWY2YmJhLi4xNmFjYTdmZDZlOGZjNmEyYzhhMzIzOWM5
OGQ1ZTFmM2NmNmQ0N2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVs
LWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCkBAIC0zOTUsNiArMzk1LDQ4IEBA
IHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6c2V0Q2FtZXJhKEhUTUxNb2RlbEVsZW1lbnRDYW1lcmEg
Y2FtZXJhLCBET01Qcm9taXNlRGVmZXJyCiAgICAgfSk7CiB9CiAKKy8vIE1BUks6IOKAkyBBbmlt
YXRpb25zIHN1cHBvcnQuCisKK3ZvaWQgSFRNTE1vZGVsRWxlbWVudDo6aXNQbGF5aW5nQW5pbWF0
aW9uKElzUGxheWluZ0FuaW1hdGlvblByb21pc2UmJiBwcm9taXNlKQoreworICAgIGlmICghbV9t
b2RlbFBsYXllcikgeworICAgICAgICBwcm9taXNlLnJlamVjdCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgbV9tb2RlbFBsYXllci0+aXNQbGF5aW5nQW5pbWF0aW9uKFtwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0gKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNQbGF5aW5nKSBtdXRh
YmxlIHsKKyAgICAgICAgaWYgKCFpc1BsYXlpbmcpCisgICAgICAgICAgICBwcm9taXNlLnJlamVj
dCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoKmlzUGxheWlu
Zyk7CisgICAgfSk7Cit9CisKK3ZvaWQgSFRNTE1vZGVsRWxlbWVudDo6c2V0QW5pbWF0aW9uSXNQ
bGF5aW5nKGJvb2wgaXNQbGF5aW5nLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNl
KQoreworICAgIGlmICghbV9tb2RlbFBsYXllcikgeworICAgICAgICBwcm9taXNlLnJlamVjdCgp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9tb2RlbFBsYXllci0+c2V0QW5pbWF0
aW9uSXNQbGF5aW5nKGlzUGxheWluZywgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYm9v
bCBzdWNjZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3MpCisgICAgICAgICAgICBw
cm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJvbWlzZS5yZWpl
Y3QoKTsKKyAgICB9KTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpwbGF5QW5pbWF0aW9u
KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgc2V0QW5pbWF0aW9u
SXNQbGF5aW5nKHRydWUsIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIEhUTUxNb2RlbEVs
ZW1lbnQ6OnBhdXNlQW5pbWF0aW9uKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2Up
Cit7CisgICAgc2V0QW5pbWF0aW9uSXNQbGF5aW5nKGZhbHNlLCBXVEZNb3ZlKHByb21pc2UpKTsK
K30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1PREVMX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaApp
bmRleCBmYzRjZDY4ZGEyNTRjNTAyZGFkNGM1MjIzNWQyNjVlZTQ5NGE4NDBiLi5hMmJhN2MyNjM4
OTY1OTIxNDI1ZTIzZDUzMjllYmIyMGU4NjIwZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTc1LDYg
Kzc1LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldENhbWVyYShDYW1lcmFQcm9taXNlJiYpOwog
ICAgIHZvaWQgc2V0Q2FtZXJhKEhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmKTsKIAorICAgIHVzaW5nIElzUGxheWluZ0FuaW1hdGlvblByb21pc2UgPSBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj47CisgICAgdm9pZCBpc1BsYXlpbmdBbmltYXRp
b24oSXNQbGF5aW5nQW5pbWF0aW9uUHJvbWlzZSYmKTsKKyAgICB2b2lkIHBsYXlBbmltYXRpb24o
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgcGF1c2VBbmltYXRpb24oRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworCiAgICAgYm9vbCBpc0RyYWdnYWJsZUlnbm9yaW5n
QXR0cmlidXRlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKQEAg
LTEwNSw2ICsxMTAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZHJhZ0RpZENoYW5nZShNb3VzZUV2
ZW50Jik7CiAgICAgdm9pZCBkcmFnRGlkRW5kKE1vdXNlRXZlbnQmKTsKIAorICAgIHZvaWQgc2V0
QW5pbWF0aW9uSXNQbGF5aW5nKGJvb2wsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKwog
ICAgIFVSTCBtX3NvdXJjZVVSTDsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdS
ZXNvdXJjZT4gbV9yZXNvdXJjZTsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2RhdGE7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVs
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1v
ZGVsRWxlbWVudC5pZGwKaW5kZXggZTdlZDQwOTFiMzkwZTc0ZTFlZmEwY2YzOWRhYTE1YWZiYmE2
MjZmOC4uYjZkNWZmNDJjYzdkYmE1YWUzZDAxY2RlNDc1ZDczYjg4NTJmMDgzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmlkbApAQCAtMzYsNCArMzYsOCBAQAogCiAgICAgUHJvbWlzZTxIVE1MTW9kZWxFbGVt
ZW50Q2FtZXJhPiBnZXRDYW1lcmEoKTsKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2V0Q2FtZXJh
KEhUTUxNb2RlbEVsZW1lbnRDYW1lcmEgY2FtZXJhKTsKKworICAgIFByb21pc2U8Ym9vbGVhbj4g
aXNQbGF5aW5nQW5pbWF0aW9uKCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBsYXlBbmltYXRp
b24oKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gcGF1c2VBbmltYXRpb24oKTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oCmlu
ZGV4IDlhZWVjYjVhM2RjZTRjYjEzNzRjMzUxMWUzOGM4NTg3ZTIwOWY5MzkuLmNmMGFhNWRiNjQx
NWRhMzgzZDgyNTAwMjA3NzQyZTkyMGVjZmJmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oCkBAIC01MSw2ICs1MSw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTW91c2VVcChjb25zdCBMYXlvdXRQb2ludCYs
IE1vbm90b25pY1RpbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Q2FtZXJhKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxIVE1MTW9kZWxFbGVtZW50Q2FtZXJhPiYmKT4m
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDYW1lcmEoSFRNTE1vZGVsRWxlbWVudENhbWVy
YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sJiYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGlzUGxheWluZ0FuaW1hdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8Ym9vbD4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QW5pbWF0aW9uSXNQbGF5
aW5nKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCYmKT4mJikgPSAwOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15
L0R1bW15TW9kZWxQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCmluZGV4IGM1MjlmMDc5ZTc4MmY0ODAwODJh
YjZmZDEwOWE0ZmE1NTY5YWIzZjEuLjcyZWFiNmU5YTM5MWZjMWE1MDBmZjlhM2Q3MjBlNmZjNmRh
ODMwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9k
dW1teS9EdW1teU1vZGVsUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKQEAgLTc4LDQgKzc4LDEyIEBA
IHZvaWQgRHVtbXlNb2RlbFBsYXllcjo6c2V0Q2FtZXJhKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1l
bnRDYW1lcmEsIENvbXBsZXRpb25IYW5kCiB7CiB9CiAKK3ZvaWQgRHVtbXlNb2RlbFBsYXllcjo6
aXNQbGF5aW5nQW5pbWF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxi
b29sPiYmKT4mJikKK3sKK30KKwordm9pZCBEdW1teU1vZGVsUGxheWVyOjpzZXRBbmltYXRpb25J
c1BsYXlpbmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sJiYpPiYmKQoreworfQor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVt
bXkvRHVtbXlNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaAppbmRleCA3OTYxMzQ1YTQ2MjZiMzJmMjQxYWU0
MjViNTYzYzBiZjAwMTI5NDNmLi5mZmE4YzUwNWJkNGFjZGNhZTM2NjIzY2FmNzQ4MTMyYzRjMDA1
NTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVt
bXkvRHVtbXlNb2RlbFBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwt
ZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmgKQEAgLTQ5LDYgKzQ5LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGhhbmRsZU1vdXNlVXAoY29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNU
aW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGdldENhbWVyYShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYT4mJik+JiYpIG92
ZXJyaWRlOwogICAgIHZvaWQgc2V0Q2FtZXJhKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1l
cmEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCYmKT4mJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBpc1BsYXlpbmdBbmltYXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PGJvb2w+JiYpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEFuaW1hdGlvbklzUGxheWluZyhi
b29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wmJik+JiYpIG92ZXJyaWRlOwogCiAgICAg
V2Vha1B0cjxNb2RlbFBsYXllckNsaWVudD4gbV9jbGllbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQ
bGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9T
Y2VuZUtpdE1vZGVsUGxheWVyLmgKaW5kZXggZTc4NTRmODBiYjdkMjdkMGRlZDkyYTQzMDNiODM5
Y2I2MmQ2MTA0OS4uMTkwNDVhYWM2MzNkNjFmZDdjMWIxZmRiMmQwZGExYjljZGQ3ODdlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1Nj
ZW5lS2l0TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oCkBAIC02Myw2ICs2Myw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBoYW5kbGVNb3VzZVVwKGNvbnN0IExheW91dFBvaW50JiwgTW9ub3Rv
bmljVGltZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBnZXRDYW1lcmEoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPEhUTUxNb2RlbEVsZW1lbnRDYW1lcmE+JiYpPiYmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNldENhbWVyYShIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wmJik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgaXNQbGF5aW5nQW5p
bWF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxib29sPiYmKT4mJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBzZXRBbmltYXRpb25Jc1BsYXlpbmcoYm9vbCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sJiYpPiYmKSBvdmVycmlkZTsKIAogICAgIC8vIFNjZW5lS2l0TW9k
ZWxMb2FkZXJDbGllbnQgb3ZlcnJpZGVzLgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKFNjZW5lS2l0TW9kZWxMb2FkZXImLCBSZWY8U2NlbmVLaXRNb2RlbD4pIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0
L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbQppbmRleCBmNDMwOWViNjE0ODli
ZTYxMTk3NWFkNWQ0Mzg1NTBlZGI3NjI2Yjg0Li5iYWVjOWQ0NTZlZWZkNDI3OWVkYjU4MjdjODQw
Y2FhYTc0NTc1MWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbQpA
QCAtOTYsNiArOTYsMTQgQEAgdm9pZCBTY2VuZUtpdE1vZGVsUGxheWVyOjpzZXRDYW1lcmEoSFRN
TE1vZGVsRWxlbWVudENhbWVyYSwgQ29tcGxldGlvbkhhbmRsZXI8dm8KIHsKIH0KIAordm9pZCBT
Y2VuZUtpdE1vZGVsUGxheWVyOjppc1BsYXlpbmdBbmltYXRpb24oQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmKQoreworfQorCit2b2lkIFNjZW5lS2l0TW9k
ZWxQbGF5ZXI6OnNldEFuaW1hdGlvbklzUGxheWluZyhib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wmJik+JiYpCit7Cit9CisKIC8vIE1BUks6IC0gU2NlbmVLaXRNb2RlbExvYWRlckNs
aWVudCBvdmVycmlkZXMuCiAKIHZvaWQgU2NlbmVLaXRNb2RlbFBsYXllcjo6ZGlkRmluaXNoTG9h
ZGluZyhTY2VuZUtpdE1vZGVsTG9hZGVyJiBsb2FkZXIsIFJlZjxTY2VuZUtpdE1vZGVsPiBtb2Rl
bCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9TeXN0ZW1QcmV2
aWV3U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvU3lzdGVtUHJldmlld1NQ
SS5oCmluZGV4IDM4NGFmMjdjZWRiNDQ2YzVjYjQyOWE4MjNiODA2NWIzNDhhMTQ1N2QuLmNlNTE1
OTI5NzA0YjFhMWZmMDZjZGUxYTY0MTBmMmQxNDNkMGZkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9TeXN0ZW1QcmV2aWV3U1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvaW9zL1N5c3RlbVByZXZpZXdTUEkuaApAQCAtMTA4LDYgKzEwOCwx
MCBAQCB0eXBlZGVmIHZvaWQgKF5BU1ZDYW1lcmFUcmFuc2Zvcm1SZXBseUJsb2NrKSAoc2ltZF9m
bG9hdDMgY2FtZXJhVHJhbnNmb3JtLCBOU0VycgogLSAodm9pZClnZXRDYW1lcmFUcmFuc2Zvcm06
KEFTVkNhbWVyYVRyYW5zZm9ybVJlcGx5QmxvY2spcmVwbHk7CiAtICh2b2lkKXNldENhbWVyYVRy
YW5zZm9ybTooc2ltZF9mbG9hdDMpdHJhbnNmb3JtOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIEJPT0wgaXNQbGF5aW5nOwordHlwZWRlZiB2b2lkICheQVNWU2V0SXNQbGF5aW5n
UmVwbHlCbG9jaykgKEJPT0wgaXNQbGF5aW5nLCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKTsK
Ky0gKHZvaWQpc2V0SXNQbGF5aW5nOihCT09MKWlzUGxheWluZyByZXBseTooQVNWU2V0SXNQbGF5
aW5nUmVwbHlCbG9jaylyZXBseTsKKwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3U1BJ
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oCmlu
ZGV4IDBjZDU0ZTA0ZDcwMzNiODUwMzMwOTE1NDhjYTJhMGU3YTgxMDQxZjcuLjY1MTAzMWYwNmM1
Y2Y0NTNiNDc0YmVlOTU2OTU4MjUxODMzMzE2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaApAQCAtNTgsNiArNTgsMTAgQEAgdHlw
ZWRlZiB2b2lkICheQVNWQ2FtZXJhVHJhbnNmb3JtUmVwbHlCbG9jaykgKHNpbWRfZmxvYXQzIGNh
bWVyYVRyYW5zZm9ybSwgTlNFcnIKIC0gKHZvaWQpZ2V0Q2FtZXJhVHJhbnNmb3JtOihBU1ZDYW1l
cmFUcmFuc2Zvcm1SZXBseUJsb2NrKXJlcGx5OwogLSAodm9pZClzZXRDYW1lcmFUcmFuc2Zvcm06
KHNpbWRfZmxvYXQzKXRyYW5zZm9ybTsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBCT09MIGlzUGxheWluZzsKK3R5cGVkZWYgdm9pZCAoXkFTVlNldElzUGxheWluZ1JlcGx5Qmxv
Y2spIChCT09MIGlzUGxheWluZywgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcik7CistICh2b2lk
KXNldElzUGxheWluZzooQk9PTClpc1BsYXlpbmcgcmVwbHk6KEFTVlNldElzUGxheWluZ1JlcGx5
QmxvY2spcmVwbHk7CisKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9sbGVyQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Nb2RlbEVsZW1lbnRDb250cm9s
bGVyQ29jb2EubW0KaW5kZXggOGU3YWM1YjY0ZjBkNzY1YWE1NDljNmMwODRkMTIxMWQyYjNjMWQx
NC4uZWZjYWEwMDExZGNhOTI5NDgwY2JjZTAyNDdkNTAzMzBjNGUwZWJlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRy
b2xsZXJDb2NvYS5tbQpAQCAtMjg4LDYgKzI4OCw1MiBAQCB2b2lkIE1vZGVsRWxlbWVudENvbnRy
b2xsZXI6OnNldENhbWVyYUZvck1vZGVsRWxlbWVudChNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVu
dAogICAgIH0pOwogfQogCitzdGF0aWMgYm9vbCBwcmV2aWV3SGFzQW5pbWF0aW9uU3VwcG9ydChB
U1ZJbmxpbmVQcmV2aWV3ICpwcmV2aWV3KQoreworI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJF
VklFV19BTklNQVRJT05TX0NPTlRST0wpCisgICAgcmV0dXJuIFtwcmV2aWV3IHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoaXNQbGF5aW5nKV07CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsK
KyNlbmRpZgorfQorCit2b2lkIE1vZGVsRWxlbWVudENvbnRyb2xsZXI6OmlzUGxheWluZ0FuaW1h
dGlvbkZvck1vZGVsRWxlbWVudChNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiBwcmV2aWV3ID0gcHJldmlld0Zv
ck1vZGVsSWRlbnRpZmllcihtb2RlbElkZW50aWZpZXIpOworICAgIGlmICghcHJldmlldyB8fCAh
cHJldmlld0hhc0FuaW1hdGlvblN1cHBvcnQocHJldmlldykpIHsKKyAgICAgICAgY2FsbE9uTWFp
blJ1bkxvb3AoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGVycm9yID0gV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciB7IFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OlR5cGU6OkdlbmVyYWwgfV0gKCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoZXJyb3IpKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBhdXRvIGlzUGxheWluZyA9IFtwcmV2aWV3IGlzUGxheWluZ107
CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW2lzUGxheWluZywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
KCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGlzUGxheWluZyk7CisgICAgfSk7Cit9CisKK3ZvaWQgTW9kZWxFbGVtZW50Q29u
dHJvbGxlcjo6c2V0QW5pbWF0aW9uSXNQbGF5aW5nRm9yTW9kZWxFbGVtZW50KE1vZGVsSWRlbnRp
ZmllciBtb2RlbElkZW50aWZpZXIsIGJvb2wgaXNQbGF5aW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8qIHByZXZpZXcgPSBw
cmV2aWV3Rm9yTW9kZWxJZGVudGlmaWVyKG1vZGVsSWRlbnRpZmllcik7CisgICAgaWYgKCFwcmV2
aWV3IHx8ICFwcmV2aWV3SGFzQW5pbWF0aW9uU3VwcG9ydChwcmV2aWV3KSkgeworICAgICAgICBj
YWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
ZmFsc2UpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFtwcmV2
aWV3IHNldElzUGxheWluZzppc1BsYXlpbmcgcmVwbHk6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSAoQk9PTCwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgeworICAgICAgICBjYWxs
T25NYWluUnVuTG9vcChbZXJyb3IsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewor
ICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCFlcnJvcik7CisgICAgICAgIH0pOworICAgIH0pLmdldCgpXTsKK30KKwogI2VuZGlmCiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIu
aAppbmRleCBlZTY4NGU4NzhhOWUzY2I2MjZmNGZjZjU1OTFmZGZiZGM5NTg3NGJlLi4xNjRkNjlh
MjI0MjY2MDA3MTU0Y2EwNzg3ZDA2OGFmZDY3MTQ5OTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTW9kZWxFbGVtZW50Q29udHJvbGxlci5oCkBAIC01NCw2ICs1NCw4IEBAIHB1
YmxpYzoKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcpCiAgICAgdm9pZCBnZXRDYW1l
cmFGb3JNb2RlbEVsZW1lbnQoTW9kZWxJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4cGVjdGVkPFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBzZXRDYW1lcmFGb3JNb2RlbEVsZW1lbnQoTW9kZWxJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGlzUGxheWluZ0FuaW1hdGlvbkZvck1vZGVs
RWxlbWVudChNb2RlbElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8
Ym9vbCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIHNldEFuaW1hdGlv
bklzUGxheWluZ0Zvck1vZGVsRWxlbWVudChNb2RlbElkZW50aWZpZXIsIGJvb2wsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElO
RV9QUkVWSUVXX0lPUykKICAgICB2b2lkIHRha2VNb2RlbEVsZW1lbnRGdWxsc2NyZWVuKE1vZGVs
SWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCBmMGQxZTc1YjVkZjNiNzJhNTJkOTI4NzI3OTAzYTk2NGFhZjVkNmRmLi4yYjVkZDg1MmFkN2U1
ZjlkMjZiYzJhMWY1OGE3MzVmNGMyYTg0YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTEwODQyLDYgKzEwODQyLDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojptb2RlbEVsZW1lbnRTZXRDYW1lcmEoTW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwg
V2ViQ29yCiB7CiAgICAgbW9kZWxFbGVtZW50Q29udHJvbGxlcigpLT5zZXRDYW1lcmFGb3JNb2Rl
bEVsZW1lbnQobW9kZWxJZGVudGlmaWVyLCBjYW1lcmEsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKIH0KKwordm9pZCBXZWJQYWdlUHJveHk6Om1vZGVsRWxlbWVudElzUGxheWluZ0FuaW1h
dGlvbihNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBtb2RlbEVsZW1lbnRDb250cm9sbGVyKCktPmlzUGxheWluZ0FuaW1h
dGlvbkZvck1vZGVsRWxlbWVudChtb2RlbElkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6Om1vZGVsRWxlbWVudFNldEFuaW1hdGlv
bklzUGxheWluZyhNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBib29sIGlzUGxheWlu
ZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBtb2RlbEVsZW1lbnRDb250cm9sbGVyKCktPnNldEFuaW1hdGlvbklzUGxheWluZ0Zvck1v
ZGVsRWxlbWVudChtb2RlbElkZW50aWZpZXIsIGlzUGxheWluZywgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdf
SU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjNzBkMGM3NzFj
NWMyOTQxN2U3YWE0OTdjM2Q4MTBiMTQxYjkwODEyLi40ZTg3YzUyOTFmMGE0ZTcxZjAxYjBmZTI4
NTMwODY0YzY0M2UzNWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtNTkwLDYgKzU5MCw4IEBAIHB1YmxpYzoKICAgICBNb2RlbEVsZW1lbnRDb250cm9sbGVyKiBt
b2RlbEVsZW1lbnRDb250cm9sbGVyKCkgeyByZXR1cm4gbV9tb2RlbEVsZW1lbnRDb250cm9sbGVy
LmdldCgpOyB9CiAgICAgdm9pZCBtb2RlbEVsZW1lbnRHZXRDYW1lcmEoTW9kZWxJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1l
bnRDYW1lcmEsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBtb2RlbEVs
ZW1lbnRTZXRDYW1lcmEoTW9kZWxJZGVudGlmaWVyLCBXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50
Q2FtZXJhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIG1vZGVs
RWxlbWVudElzUGxheWluZ0FuaW1hdGlvbihNb2RlbElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiYmKTsKKyAg
ICB2b2lkIG1vZGVsRWxlbWVudFNldEFuaW1hdGlvbklzUGxheWluZyhNb2RlbElkZW50aWZpZXIs
IGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKICAgICB2b2lkIHRha2VNb2RlbEVsZW1lbnRG
dWxsc2NyZWVuKE1vZGVsSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNmYwNzRmNTMwYjJlYTgxMGJkMTQ3NWZh
NmVhMmU3MmNjMzdhOWExZS4uMWQzOTNkMzU2NDFjMTMyYjkzN2E0YmJkN2I1NjE1OGFmNDIzN2M2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgpAQCAtNTk3LDYgKzU5Nyw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYg
RU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQogICAgIE1vZGVsRWxlbWVudEdldENhbWVyYShz
dHJ1Y3QgV2ViS2l0OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyKSAtPiAoRXhwZWN0
ZWQ8V2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
cj4gcmVzdWx0KSBBc3luYwogICAgIE1vZGVsRWxlbWVudFNldENhbWVyYShzdHJ1Y3QgV2ViS2l0
OjpNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6SFRNTE1v
ZGVsRWxlbWVudENhbWVyYSBjYW1lcmEpIC0+IChib29sIHN1Y2Nlc3MpIEFzeW5jCisgICAgTW9k
ZWxFbGVtZW50SXNQbGF5aW5nQW5pbWF0aW9uKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmll
ciBtb2RlbElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yPiByZXN1bHQpIEFzeW5jCisgICAgTW9kZWxFbGVtZW50U2V0QW5pbWF0aW9uSXNQbGF5aW5n
KHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIGJvb2wgaXNQ
bGF5aW5nKSAtPiAoYm9vbCBzdWNjZXNzKSBBc3luYwogI2VuZGlmCiAKICAgICByZXF1ZXN0UGVy
bWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgc3RydWN0IFdlYkNv
cmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yIGRlc2NyaXB0b3IpIC0+IChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6UGVybWlzc2lvblN0YXRlIHN0YXRlKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXIuaAppbmRleCBjYzM0NGE1N2JhMGEwMDkzNjZhMWM4MGEyNGE2OGVmYWE2N2ZiOGE2Li4wYThh
ZDE1OWE0Y2QyZDJjZTI1OTAxYjIxNTc5OWI4MTg2NTg0MmI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXIuaApAQCAtNTUsNiArNTUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZW50ZXJGdWxs
c2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBnZXRDYW1lcmEoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmE+JiYpPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIHNldENhbWVyYShXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50
Q2FtZXJhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wmJik+JiYpIG92ZXJyaWRlOworICAg
IHZvaWQgaXNQbGF5aW5nQW5pbWF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxib29sPiYmKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRBbmltYXRpb25Jc1BsYXlp
bmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sJiYpPiYmKSBvdmVycmlkZTsKIAog
ICAgIFdlYWtQdHI8V2ViUGFnZT4gbV9wYWdlOwogICAgIFdlYWtQdHI8V2ViQ29yZTo6TW9kZWxQ
bGF5ZXJDbGllbnQ+IG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tCmluZGV4
IDBjMDFmMjA2Y2E2ZGIwNzk1MDUwYTk0MGY1YjAwZTBjZDFkMGVlMmMuLmYzZDA4NThhZmE1Mzg5
NmU5OTZhYjBlOGY1OTFmYWI3ZjEyMmQyMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIu
bW0KQEAgLTEwMiw2ICsxMDIsNTMgQEAgdm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
cjo6c2V0Q2FtZXJhKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEgY2EKICAgICBzdHJv
bmdQYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TW9kZWxF
bGVtZW50U2V0Q2FtZXJhKCptb2RlbElkZW50aWZpZXIsIGNhbWVyYSksIFdURk1vdmUocmVtb3Rl
Q29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcjo6aXNQbGF5aW5nQW5pbWF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxib29sPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIG1vZGVsSWRl
bnRpZmllciA9IHRoaXMtPm1vZGVsSWRlbnRpZmllcigpOworICAgIGlmICghbW9kZWxJZGVudGlm
aWVyKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBzdHJvbmdQYWdlID0gbV9wYWdlLmdldCgpOwor
ICAgIGlmICghc3Ryb25nUGFnZSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om51
bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+IHJlbW90ZUNvbXBs
ZXRpb25IYW5kbGVyID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildIChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIG11
dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoc3RkOjpudWxsb3B0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCpyZXN1bHQpOworICAgIH07CisKKyAgICBzdHJvbmdQ
YWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TW9kZWxFbGVt
ZW50SXNQbGF5aW5nQW5pbWF0aW9uKCptb2RlbElkZW50aWZpZXIpLCBXVEZNb3ZlKHJlbW90ZUNv
bXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXI6OnNldEFuaW1hdGlvbklzUGxheWluZyhib29sIGlzUGxheWluZywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gbW9kZWxJ
ZGVudGlmaWVyID0gdGhpcy0+bW9kZWxJZGVudGlmaWVyKCk7CisgICAgaWYgKCFtb2RlbElkZW50
aWZpZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgYXV0byogc3Ryb25nUGFnZSA9IG1fcGFnZS5nZXQoKTsKKyAgICBp
ZiAoIXN0cm9uZ1BhZ2UpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4g
cmVtb3RlQ29tcGxldGlvbkhhbmRsZXIgPSBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUoc3VjY2VzcykpOworICAgIH07CisKKyAgICBzdHJvbmdQYWdl
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TW9kZWxFbGVtZW50
U2V0QW5pbWF0aW9uSXNQbGF5aW5nKCptb2RlbElkZW50aWZpZXIsIGlzUGxheWluZyksIFdURk1v
dmUocmVtb3RlQ29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogfQogCiAjZW5kaWYK
</data>
<flag name="review"
          id="469794"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444725</attachid>
            <date>2021-11-18 13:28:15 -0800</date>
            <delta_ts>2021-11-18 23:28:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>233319.patch</filename>
            <type>text/plain</type>
            <size>28443</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYzQ4OTU1Yjk3MGQ0Li44YzhjYjNlNjIyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjEtMTEtMTggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W01vZGVsXSBhZGQgc3VwcG9ydCBmb3IgcGF1c2luZyBhbmQgcmVzdW1pbmcgYW5pbWF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzE5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTQyODQ2ND4KKworICAgICAgICBSZXZpZXdlZCBieSBX
ZW5zb24gSHNpZWguCisKKyAgICAgICAgQWRkIGEgbmV3IGNvbXBpbGUtdGltZSBmbGFnIGZvciB0
aGUgbmV3IEFSUUwgU1BJcyB3ZSBhcmUgdXNpbmcuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1F
bmFibGVDb2NvYS5oOgorCiAyMDIxLTExLTE4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtNb2RlbF0gYWRkIHN1cHBvcnQgZm9yIGdldHRpbmcgYW5kIHNl
dHRpbmcgdGhlIGNhbWVyYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFi
bGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4IDJk
ZDlmYTJiMjdjYi4uMGNhZjAyNDBjZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oCkBAIC03NDYsNCArNzQ2LDUgQEAKIAogI2lmIChFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJ
RVdfTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTIwNDAwKSB8fCAo
RU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
QVhfQUxMT1dFRCA+PSAxNTA0MDApCiAjZGVmaW5lIEVOQUJMRV9BUktJVF9JTkxJTkVfUFJFVklF
V19DQU1FUkFfVFJBTlNGT1JNIDEKKyNkZWZpbmUgRU5BQkxFX0FSS0lUX0lOTElORV9QUkVWSUVX
X0FOSU1BVElPTlNfQ09OVFJPTCAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyYjQ0Yjk2ODI4NjYu
LjA0ZTExOTM0ZjRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTExLTE4ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gYWRk
IHN1cHBvcnQgZm9yIHBhdXNpbmcgYW5kIHJlc3VtaW5nIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzMxOQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODU0Mjg0NjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVo
LgorCisgICAgICAgIFdlIGFkZCB0aHJlZSBuZXcgcHJvbWlzZS1iYXNlZCBtZXRob2RzIHRvIHRo
ZSBIVE1MTW9kZWxFbGVtZW50IElETCB0byBjb250cm9sIHRoZSBwbGF5YmFjayBzdGF0ZQorICAg
ICAgICBvZiB0aGUgYW5pbWF0aW9uIGJ1aWx0IGludG8gdGhlIFVTRFogYXNzZXQ6IGlzUGxheWlu
Z0FuaW1hdGlvbigpLCBwbGF5QW5pbWF0aW9uKCkgYW5kIHBhdXNlQW5pbWF0aW9uKCkuCisgICAg
ICAgIEFsbCB0aGVzZSBtZXRob2RzIGFyZSBwcm9taXNlLWJhc2VkLgorCisgICAgICAgICogTW9k
dWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1vZGVsRWxlbWVudDo6aXNQbGF5aW5nQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNb2RlbEVsZW1lbnQ6OnNldEFuaW1hdGlvbklzUGxheWluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpwbGF5QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNb2RlbEVsZW1lbnQ6OnBhdXNlQW5pbWF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVz
L21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvbW9k
ZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVs
LWVsZW1lbnQvTW9kZWxQbGF5ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQv
ZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEdW1teU1vZGVs
UGxheWVyOjppc1BsYXlpbmdBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlNb2Rl
bFBsYXllcjo6c2V0QW5pbWF0aW9uSXNQbGF5aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVs
LWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oOgorICAgICAgICAqIE1vZHVsZXMvbW9k
ZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmg6CisgICAgICAgICogTW9k
dWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVyOjppc1BsYXlpbmdBbmltYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6U2NlbmVLaXRNb2RlbFBsYXllcjo6c2V0QW5pbWF0aW9uSXNQbGF5
aW5nKToKKwogMjAyMS0xMS0xOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbbWFjT1NdIFtMaXZlIFRleHRdIEF2b2lkIGFuYWx5emluZyBpbWFnZXMg
aW4gZWRpdGFibGUgY29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCmluZGV4IDg2NzgwM2IyZDYyZS4u
ZjRiMzUzNTExZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgdm9p
ZCBIVE1MTW9kZWxFbGVtZW50OjpkcmFnRGlkRW5kKE1vdXNlRXZlbnQmIGV2ZW50KQogICAgICAg
ICBtX21vZGVsUGxheWVyLT5oYW5kbGVNb3VzZVVwKGV2ZW50LnBhZ2VMb2NhdGlvbigpLCBldmVu
dC50aW1lU3RhbXAoKSk7CiB9CiAKLS8vIE1BUks6IOKAkyBDYW1lcmEgc3VwcG9ydC4KKy8vIE1B
Uks6IC0gQ2FtZXJhIHN1cHBvcnQuCiAKIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6Z2V0Q2FtZXJh
KENhbWVyYVByb21pc2UmJiBwcm9taXNlKQogewpAQCAtMzk1LDYgKzM5NSw0OCBAQCB2b2lkIEhU
TUxNb2RlbEVsZW1lbnQ6OnNldENhbWVyYShIVE1MTW9kZWxFbGVtZW50Q2FtZXJhIGNhbWVyYSwg
RE9NUHJvbWlzZURlZmVycgogICAgIH0pOwogfQogCisvLyBNQVJLOiAtIEFuaW1hdGlvbnMgc3Vw
cG9ydC4KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50Ojppc1BsYXlpbmdBbmltYXRpb24oSXNQbGF5
aW5nQW5pbWF0aW9uUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgaWYgKCFtX21vZGVsUGxheWVy
KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBtX21vZGVsUGxheWVyLT5pc1BsYXlpbmdBbmltYXRpb24oW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXSAoc3RkOjpvcHRpb25hbDxib29sPiBpc1BsYXlpbmcpIG11dGFibGUgeworICAg
ICAgICBpZiAoIWlzUGxheWluZykKKyAgICAgICAgICAgIHByb21pc2UucmVqZWN0KCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZSgqaXNQbGF5aW5nKTsKKyAgICB9
KTsKK30KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjpzZXRBbmltYXRpb25Jc1BsYXlpbmcoYm9v
bCBpc1BsYXlpbmcsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAg
aWYgKCFtX21vZGVsUGxheWVyKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX21vZGVsUGxheWVyLT5zZXRBbmltYXRpb25Jc1BsYXlp
bmcoaXNQbGF5aW5nLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChib29sIHN1Y2Nlc3Mp
IG11dGFibGUgeworICAgICAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgICAgIHByb21pc2UucmVz
b2x2ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcm9taXNlLnJlamVjdCgpOworICAg
IH0pOworfQorCit2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OnBsYXlBbmltYXRpb24oRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBzZXRBbmltYXRpb25Jc1BsYXlpbmco
dHJ1ZSwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgSFRNTE1vZGVsRWxlbWVudDo6cGF1
c2VBbmltYXRpb24oRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBz
ZXRBbmltYXRpb25Jc1BsYXlpbmcoZmFsc2UsIFdURk1vdmUocHJvbWlzZSkpOworfQorCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCmluZGV4IGZjNGNk
NjhkYTI1NC4uYTJiYTdjMjYzODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTc1LDYgKzc1LDExIEBA
IHB1YmxpYzoKICAgICB2b2lkIGdldENhbWVyYShDYW1lcmFQcm9taXNlJiYpOwogICAgIHZvaWQg
c2V0Q2FtZXJhKEhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKIAorICAgIHVzaW5nIElzUGxheWluZ0FuaW1hdGlvblByb21pc2UgPSBET01Qcm9taXNl
RGVmZXJyZWQ8SURMQm9vbGVhbj47CisgICAgdm9pZCBpc1BsYXlpbmdBbmltYXRpb24oSXNQbGF5
aW5nQW5pbWF0aW9uUHJvbWlzZSYmKTsKKyAgICB2b2lkIHBsYXlBbmltYXRpb24oRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgcGF1c2VBbmltYXRpb24oRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpOworCiAgICAgYm9vbCBpc0RyYWdnYWJsZUlnbm9yaW5nQXR0cmlidXRl
cygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKQEAgLTEwNSw2ICsx
MTAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZHJhZ0RpZENoYW5nZShNb3VzZUV2ZW50Jik7CiAg
ICAgdm9pZCBkcmFnRGlkRW5kKE1vdXNlRXZlbnQmKTsKIAorICAgIHZvaWQgc2V0QW5pbWF0aW9u
SXNQbGF5aW5nKGJvb2wsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKwogICAgIFVSTCBt
X3NvdXJjZVVSTDsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4g
bV9yZXNvdXJjZTsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2RhdGE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVu
dC5pZGwKaW5kZXggZTdlZDQwOTFiMzkwLi5iNmQ1ZmY0MmNjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5p
ZGwKQEAgLTM2LDQgKzM2LDggQEAKIAogICAgIFByb21pc2U8SFRNTE1vZGVsRWxlbWVudENhbWVy
YT4gZ2V0Q2FtZXJhKCk7CiAgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNldENhbWVyYShIVE1MTW9k
ZWxFbGVtZW50Q2FtZXJhIGNhbWVyYSk7CisKKyAgICBQcm9taXNlPGJvb2xlYW4+IGlzUGxheWlu
Z0FuaW1hdGlvbigpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBwbGF5QW5pbWF0aW9uKCk7Cisg
ICAgUHJvbWlzZTx1bmRlZmluZWQ+IHBhdXNlQW5pbWF0aW9uKCk7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaAppbmRleCA5YWVl
Y2I1YTNkY2UuLmFkNzJjYjBkMDlmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmgKQEAgLTUwLDcgKzUwLDkgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVNb3VzZU1vdmUoY29uc3QgTGF5b3V0UG9pbnQmLCBNb25v
dG9uaWNUaW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZU1vdXNlVXAoY29uc3QgTGF5
b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldENhbWVy
YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8SFRNTE1vZGVsRWxlbWVudENh
bWVyYT4mJik+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FtZXJhKEhUTUxNb2RlbEVs
ZW1lbnRDYW1lcmEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCYmKT4mJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzZXRDYW1lcmEoSFRNTE1vZGVsRWxlbWVudENhbWVyYSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sIHN1Y2Nlc3MpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGlz
UGxheWluZ0FuaW1hdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Ym9v
bD4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QW5pbWF0aW9uSXNQbGF5aW5nKGJv
b2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZXNzKT4mJikgPSAwOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15
L0R1bW15TW9kZWxQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCmluZGV4IGM1MjlmMDc5ZTc4Mi4uNDM2Nzdl
Y2MzOTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQv
ZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCkBAIC03NCw3ICs3NCwxNSBA
QCB2b2lkIER1bW15TW9kZWxQbGF5ZXI6OmdldENhbWVyYShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SAogewogfQogCi12b2lkIER1bW15TW9kZWxQbGF5ZXI6
OnNldENhbWVyYShXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wmJik+JiYpCit2b2lkIER1bW15TW9kZWxQbGF5ZXI6OnNldENhbWVyYShX
ZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wgc3VjY2Vzcyk+JiYpCit7Cit9CisKK3ZvaWQgRHVtbXlNb2RlbFBsYXllcjo6aXNQbGF5aW5n
QW5pbWF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxib29sPiYmKT4m
JikKK3sKK30KKwordm9pZCBEdW1teU1vZGVsUGxheWVyOjpzZXRBbmltYXRpb25Jc1BsYXlpbmco
Ym9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2Nlc3MpPiYmKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVt
bXlNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1
bW15L0R1bW15TW9kZWxQbGF5ZXIuaAppbmRleCA3OTYxMzQ1YTQ2MjYuLmNlZmE4NzFkM2MwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1
bW15TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCkBAIC00OCw3ICs0OCw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBoYW5kbGVNb3VzZU1vdmUoY29uc3QgTGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1l
KSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZU1vdXNlVXAoY29uc3QgTGF5b3V0UG9pbnQmLCBN
b25vdG9uaWNUaW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGdldENhbWVyYShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYT4m
Jik+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0Q2FtZXJhKFdlYkNvcmU6OkhUTUxNb2RlbEVs
ZW1lbnRDYW1lcmEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCYmKT4mJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRDYW1lcmEoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2Nlc3MpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGlzUGxheWluZ0FuaW1hdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
Ym9vbD4mJik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0QW5pbWF0aW9uSXNQbGF5aW5nKGJv
b2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZXNzKT4mJikgb3ZlcnJpZGU7CiAK
ICAgICBXZWFrUHRyPE1vZGVsUGxheWVyQ2xpZW50PiBtX2NsaWVudDsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRN
b2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5l
a2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaAppbmRleCBlNzg1NGY4MGJiN2QuLjM1MWUxMWM1Y2Zi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5l
a2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oCkBAIC02Miw3ICs2Miw5
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVNb3VzZU1vdmUoY29uc3QgTGF5b3V0UG9pbnQm
LCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZU1vdXNlVXAoY29uc3Qg
TGF5b3V0UG9pbnQmLCBNb25vdG9uaWNUaW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGdldENhbWVy
YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8SFRNTE1vZGVsRWxlbWVudENh
bWVyYT4mJik+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0Q2FtZXJhKEhUTUxNb2RlbEVsZW1l
bnRDYW1lcmEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCYmKT4mJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzZXRDYW1lcmEoSFRNTE1vZGVsRWxlbWVudENhbWVyYSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sIHN1Y2Nlc3MpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGlzUGxheWluZ0Fu
aW1hdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJik+JiYp
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0QW5pbWF0aW9uSXNQbGF5aW5nKGJvb2wsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZXNzKT4mJikgb3ZlcnJpZGU7CiAKICAgICAvLyBTY2Vu
ZUtpdE1vZGVsTG9hZGVyQ2xpZW50IG92ZXJyaWRlcy4KICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTG9hZGluZyhTY2VuZUtpdE1vZGVsTG9hZGVyJiwgUmVmPFNjZW5lS2l0TW9kZWw+KSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9z
Y2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0KaW5kZXggZjQzMDll
YjYxNDg5Li40YTNhN2Q0Y2YyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxh
eWVyLm1tCkBAIC05Miw3ICs5MiwxNSBAQCB2b2lkIFNjZW5lS2l0TW9kZWxQbGF5ZXI6OmdldENh
bWVyYShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8SFRNTE1vZAogewogfQog
Ci12b2lkIFNjZW5lS2l0TW9kZWxQbGF5ZXI6OnNldENhbWVyYShIVE1MTW9kZWxFbGVtZW50Q2Ft
ZXJhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wmJik+JiYpCit2b2lkIFNjZW5lS2l0TW9k
ZWxQbGF5ZXI6OnNldENhbWVyYShIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wgc3VjY2Vzcyk+JiYpCit7Cit9CisKK3ZvaWQgU2NlbmVLaXRNb2RlbFBs
YXllcjo6aXNQbGF5aW5nQW5pbWF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxib29sPiYmKT4mJikKK3sKK30KKwordm9pZCBTY2VuZUtpdE1vZGVsUGxheWVyOjpzZXRB
bmltYXRpb25Jc1BsYXlpbmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2Nl
c3MpPiYmKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAzNzhmYTIwOWE1OTguLmNhODQz
YzMwOTE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTgg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVsXSBh
ZGQgc3VwcG9ydCBmb3IgcGF1c2luZyBhbmQgcmVzdW1pbmcgYW5pbWF0aW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMzE5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84NTQyODQ2ND4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNp
ZWguCisKKyAgICAgICAgQWRkIHRoZSBuZXcgQVJRTCBTUElzIHdlIGFyZSB1c2luZy4KKworICAg
ICAgICAqIHBhbC9zcGkvaW9zL1N5c3RlbVByZXZpZXdTUEkuaDoKKyAgICAgICAgKiBwYWwvc3Bp
L21hYy9TeXN0ZW1QcmV2aWV3U1BJLmg6CisKIDIwMjEtMTEtMTggIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01vZGVsXSBhZGQgc3VwcG9ydCBmb3IgZ2V0
dGluZyBhbmQgc2V0dGluZyB0aGUgY2FtZXJhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9pb3MvU3lzdGVtUHJldmlld1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvaW9zL1N5c3RlbVByZXZpZXdTUEkuaAppbmRleCAzODRhZjI3Y2VkYjQuLmNlNTE1OTI5
NzA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL1N5c3RlbVBy
ZXZpZXdTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvU3lzdGVtUHJl
dmlld1NQSS5oCkBAIC0xMDgsNiArMTA4LDEwIEBAIHR5cGVkZWYgdm9pZCAoXkFTVkNhbWVyYVRy
YW5zZm9ybVJlcGx5QmxvY2spIChzaW1kX2Zsb2F0MyBjYW1lcmFUcmFuc2Zvcm0sIE5TRXJyCiAt
ICh2b2lkKWdldENhbWVyYVRyYW5zZm9ybTooQVNWQ2FtZXJhVHJhbnNmb3JtUmVwbHlCbG9jayly
ZXBseTsKIC0gKHZvaWQpc2V0Q2FtZXJhVHJhbnNmb3JtOihzaW1kX2Zsb2F0Myl0cmFuc2Zvcm07
CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc1BsYXlpbmc7Cit0eXBl
ZGVmIHZvaWQgKF5BU1ZTZXRJc1BsYXlpbmdSZXBseUJsb2NrKSAoQk9PTCBpc1BsYXlpbmcsIE5T
RXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpOworLSAodm9pZClzZXRJc1BsYXlpbmc6KEJPT0wpaXNQ
bGF5aW5nIHJlcGx5OihBU1ZTZXRJc1BsYXlpbmdSZXBseUJsb2NrKXJlcGx5OworCiBAZW5kCiAK
IE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL1N5c3RlbVByZXZpZXdTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L21hYy9TeXN0ZW1QcmV2aWV3U1BJLmgKaW5kZXggMGNkNTRlMDRkNzAzLi42NTEwMzFmMDZjNWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9TeXN0ZW1QcmV2aWV3
U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFjL1N5c3RlbVByZXZpZXdT
UEkuaApAQCAtNTgsNiArNTgsMTAgQEAgdHlwZWRlZiB2b2lkICheQVNWQ2FtZXJhVHJhbnNmb3Jt
UmVwbHlCbG9jaykgKHNpbWRfZmxvYXQzIGNhbWVyYVRyYW5zZm9ybSwgTlNFcnIKIC0gKHZvaWQp
Z2V0Q2FtZXJhVHJhbnNmb3JtOihBU1ZDYW1lcmFUcmFuc2Zvcm1SZXBseUJsb2NrKXJlcGx5Owog
LSAodm9pZClzZXRDYW1lcmFUcmFuc2Zvcm06KHNpbWRfZmxvYXQzKXRyYW5zZm9ybTsKIAorQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlzUGxheWluZzsKK3R5cGVkZWYgdm9p
ZCAoXkFTVlNldElzUGxheWluZ1JlcGx5QmxvY2spIChCT09MIGlzUGxheWluZywgTlNFcnJvciAq
IF9OdWxsYWJsZSBlcnJvcik7CistICh2b2lkKXNldElzUGxheWluZzooQk9PTClpc1BsYXlpbmcg
cmVwbHk6KEFTVlNldElzUGxheWluZ1JlcGx5QmxvY2spcmVwbHk7CisKIEBlbmQKIAogTlNfQVNT
VU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmYmEzNzNkOGI2MS4uZmQzMDUyNDVjMWEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTExLTE4ICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gYWRkIHN1cHBvcnQgZm9yIHBhdXNp
bmcgYW5kIHJlc3VtaW5nIGFuaW1hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMzMxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU0Mjg0
NjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIEV4cG9z
ZSBuZXcgV2ViUGFnZVByb3h5IG1lc3NhZ2VzIHRvIGxldCB0aGUgV2ViUHJvY2VzcyBtZXNzYWdl
IHRoZSBVSVByb2Nlc3MKKyAgICAgICAgdG8gY2FsbCBpbnRvIEFTVklubGluZVByZXZpZXcgbWV0
aG9kcyB0byBnZXQgYW5kIHNldCB0aGUgYW5pbWF0aW9uJ3MgcGxheWJhY2sKKyAgICAgICAgc3Rh
dGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpwcmV2aWV3SGFzQW5pbWF0aW9uU3VwcG9ydCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1vZGVsRWxlbWVudENvbnRyb2xsZXI6OmlzUGxheWluZ0FuaW1hdGlv
bkZvck1vZGVsRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6Ok1vZGVsRWxlbWVudENvbnRyb2xs
ZXI6OnNldEFuaW1hdGlvbklzUGxheWluZ0Zvck1vZGVsRWxlbWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojptb2RlbEVsZW1l
bnRJc1BsYXlpbmdBbmltYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1v
ZGVsRWxlbWVudFNldEFuaW1hdGlvbklzUGxheWluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXIubW06CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyOjppc1BsYXlpbmdBbmltYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllcjo6c2V0QW5pbWF0aW9uSXNQbGF5aW5nKToKKwogMjAyMS0xMS0xOCAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbTW9kZWxdIGFk
ZCBzdXBwb3J0IGZvciBnZXR0aW5nIGFuZCBzZXR0aW5nIHRoZSBjYW1lcmEKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xsZXJDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRyb2xs
ZXJDb2NvYS5tbQppbmRleCBhOWM0YTBkNzNkM2QuLjEzMGM0OTYzNTAxOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTW9kZWxFbGVtZW50Q29udHJvbGxlckNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01vZGVsRWxlbWVudENvbnRy
b2xsZXJDb2NvYS5tbQpAQCAtMjQ1LDcgKzI0NSw3IEBAIHN0YXRpYyBib29sIHByZXZpZXdIYXND
YW1lcmFTdXBwb3J0KEFTVklubGluZVByZXZpZXcgKnByZXZpZXcpCiB2b2lkIE1vZGVsRWxlbWVu
dENvbnRyb2xsZXI6OmdldENhbWVyYUZvck1vZGVsRWxlbWVudChNb2RlbElkZW50aWZpZXIgbW9k
ZWxJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkhU
TUxNb2RlbEVsZW1lbnRDYW1lcmEsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBwcmV2aWV3ID0gcHJldmlld0Zvck1vZGVsSWRlbnRp
Zmllcihtb2RlbElkZW50aWZpZXIpOwotICAgIGlmICghcHJldmlldyB8fCAhcHJldmlld0hhc0Nh
bWVyYVN1cHBvcnQocHJldmlldykpIHsKKyAgICBpZiAoIXByZXZpZXdIYXNDYW1lcmFTdXBwb3J0
KHByZXZpZXcpKSB7CiAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBlcnJvciA9IFdlYkNvcmU6OlJlc291cmNlRXJyb3IgeyBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yOjpUeXBlOjpHZW5lcmFsIH1dICgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKHdlYWtU
aGlzKQogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKGVy
cm9yKSk7CkBAIC0yODAsNyArMjgwLDcgQEAgdm9pZCBNb2RlbEVsZW1lbnRDb250cm9sbGVyOjpn
ZXRDYW1lcmFGb3JNb2RlbEVsZW1lbnQoTW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnQKIHZvaWQg
TW9kZWxFbGVtZW50Q29udHJvbGxlcjo6c2V0Q2FtZXJhRm9yTW9kZWxFbGVtZW50KE1vZGVsSWRl
bnRpZmllciBtb2RlbElkZW50aWZpZXIsIFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEg
Y2FtZXJhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGF1dG8qIHByZXZpZXcgPSBwcmV2aWV3Rm9yTW9kZWxJZGVudGlmaWVyKG1vZGVs
SWRlbnRpZmllcik7Ci0gICAgaWYgKCFwcmV2aWV3IHx8ICFwcmV2aWV3SGFzQ2FtZXJhU3VwcG9y
dChwcmV2aWV3KSkgeworICAgIGlmICghcHJldmlld0hhc0NhbWVyYVN1cHBvcnQocHJldmlldykp
IHsKICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11
dGFibGUgewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGZhbHNlKTsKQEAgLTMwMiw2ICszMDIsNjMgQEAgdm9pZCBNb2RlbEVsZW1l
bnRDb250cm9sbGVyOjpzZXRDYW1lcmFGb3JNb2RlbEVsZW1lbnQoTW9kZWxJZGVudGlmaWVyIG1v
ZGVsSWRlbnQKICAgICB9KTsKIH0KIAorc3RhdGljIGJvb2wgcHJldmlld0hhc0FuaW1hdGlvblN1
cHBvcnQoQVNWSW5saW5lUHJldmlldyAqcHJldmlldykKK3sKKyNpZiBFTkFCTEUoQVJLSVRfSU5M
SU5FX1BSRVZJRVdfQU5JTUFUSU9OU19DT05UUk9MKQorICAgIHJldHVybiBbcHJldmlldyByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGlzUGxheWluZyldOworI2Vsc2UKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBNb2RlbEVsZW1lbnRDb250cm9sbGVyOjppc1BsYXlp
bmdBbmltYXRpb25Gb3JNb2RlbEVsZW1lbnQoTW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byogcHJldmlldyA9IHBy
ZXZpZXdGb3JNb2RlbElkZW50aWZpZXIobW9kZWxJZGVudGlmaWVyKTsKKyAgICBpZiAoIXByZXZp
ZXdIYXNBbmltYXRpb25TdXBwb3J0KHByZXZpZXcpKSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBlcnJvciA9IFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
eyBXZWJDb3JlOjpSZXNvdXJjZUVycm9yOjpUeXBlOjpHZW5lcmFsIH1dICgpIG11dGFibGUgewor
ICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKG1ha2VVbmV4cGVjdGVkKGVycm9yKSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorCisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0FOSU1BVElPTlNfQ09O
VFJPTCkKKyAgICBhdXRvIGlzUGxheWluZyA9IFtwcmV2aWV3IGlzUGxheWluZ107CisjZWxzZQor
ICAgIGF1dG8gaXNQbGF5aW5nID0gZmFsc2U7CisjZW5kaWYKKyAgICBjYWxsT25NYWluUnVuTG9v
cChbaXNQbGF5aW5nLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaXNQbGF5aW5nKTsK
KyAgICB9KTsKK30KKwordm9pZCBNb2RlbEVsZW1lbnRDb250cm9sbGVyOjpzZXRBbmltYXRpb25J
c1BsYXlpbmdGb3JNb2RlbEVsZW1lbnQoTW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwg
Ym9vbCBpc1BsYXlpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgYXV0byogcHJldmlldyA9IHByZXZpZXdGb3JNb2RlbElkZW50aWZp
ZXIobW9kZWxJZGVudGlmaWVyKTsKKyAgICBpZiAoIXByZXZpZXdIYXNBbmltYXRpb25TdXBwb3J0
KHByZXZpZXcpKSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1
cm47CisgICAgfQorCisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0FOSU1BVElPTlNf
Q09OVFJPTCkKKyAgICBbcHJldmlldyBzZXRJc1BsYXlpbmc6aXNQbGF5aW5nIHJlcGx5Om1ha2VC
bG9ja1B0cihbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKEJPT0wsIE5TRXJyb3IgKmVycm9yKSBtdXRh
YmxlIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW2Vycm9yLCB3ZWFrVGhpcyA9IFdURk1v
dmUod2Vha1RoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcighZXJyb3IpOworICAgICAgICB9KTsKKyAgICB9KS5nZXQo
KV07CisjZWxzZQorICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAo
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoZmFsc2UpOworICAgIH0pOworI2VuZGlmCit9CisKICNlbmRpZgogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmgKaW5kZXgg
ZWU2ODRlODc4YTllLi4xNjRkNjlhMjI0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01vZGVsRWxlbWVudENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Nb2RlbEVsZW1lbnRDb250cm9sbGVyLmgKQEAgLTU0LDYgKzU0LDggQEAgcHVibGljOgog
I2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFVykKICAgICB2b2lkIGdldENhbWVyYUZvck1v
ZGVsRWxlbWVudChNb2RlbElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0
ZWQ8V2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
cj4pPiYmKTsKICAgICB2b2lkIHNldENhbWVyYUZvck1vZGVsRWxlbWVudChNb2RlbElkZW50aWZp
ZXIsIFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOworICAgIHZvaWQgaXNQbGF5aW5nQW5pbWF0aW9uRm9yTW9kZWxFbGVtZW50
KE1vZGVsSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYpOworICAgIHZvaWQgc2V0QW5pbWF0aW9uSXNQbGF5
aW5nRm9yTW9kZWxFbGVtZW50KE1vZGVsSWRlbnRpZmllciwgYm9vbCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJ
RVdfSU9TKQogICAgIHZvaWQgdGFrZU1vZGVsRWxlbWVudEZ1bGxzY3JlZW4oTW9kZWxJZGVudGlm
aWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGYwZDFl
NzViNWRmMy4uYTA5MWRmMTk0ZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTEwODMzLDcgKzEwODMzLDcgQEAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9y
RXJyb3IgV2ViUGFnZVByb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlRm9yU3BlZWNoUmUK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQotdm9pZCBXZWJQYWdl
UHJveHk6Om1vZGVsRWxlbWVudEdldENhbWVyYShNb2RlbElkZW50aWZpZXIgbW9kZWxJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkhUTUxNb2RlbEVs
ZW1lbnRDYW1lcmEsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgV2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnRHZXRDYW1lcmEoTW9kZWxJZGVudGlm
aWVyIG1vZGVsSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJD
b3JlOjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBSZXNvdXJjZUVycm9yPik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgbW9kZWxFbGVtZW50Q29udHJvbGxlcigpLT5nZXRDYW1lcmFGb3JN
b2RlbEVsZW1lbnQobW9kZWxJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiB9CkBAIC0xMDg0Miw2ICsxMDg0MiwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bW9kZWxFbGVt
ZW50U2V0Q2FtZXJhKE1vZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIsIFdlYkNvcgogewog
ICAgIG1vZGVsRWxlbWVudENvbnRyb2xsZXIoKS0+c2V0Q2FtZXJhRm9yTW9kZWxFbGVtZW50KG1v
ZGVsSWRlbnRpZmllciwgY2FtZXJhLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CisK
K3ZvaWQgV2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnRJc1BsYXlpbmdBbmltYXRpb24oTW9kZWxJ
ZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3Rl
ZDxib29sLCBSZXNvdXJjZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbW9k
ZWxFbGVtZW50Q29udHJvbGxlcigpLT5pc1BsYXlpbmdBbmltYXRpb25Gb3JNb2RlbEVsZW1lbnQo
bW9kZWxJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQg
V2ViUGFnZVByb3h5Ojptb2RlbEVsZW1lbnRTZXRBbmltYXRpb25Jc1BsYXlpbmcoTW9kZWxJZGVu
dGlmaWVyIG1vZGVsSWRlbnRpZmllciwgYm9vbCBpc1BsYXlpbmcsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbW9kZWxFbGVtZW50Q29u
dHJvbGxlcigpLT5zZXRBbmltYXRpb25Jc1BsYXlpbmdGb3JNb2RlbEVsZW1lbnQobW9kZWxJZGVu
dGlmaWVyLCBpc1BsYXlpbmcsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKQEAgLTEwODUyLDcgKzEw
ODYyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnRha2VNb2RlbEVsZW1lbnRGdWxsc2NyZWVuKE1v
ZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShBUktJ
VF9JTkxJTkVfUFJFVklFV19NQUMpCi12b2lkIFdlYlBhZ2VQcm94eTo6bW9kZWxFbGVtZW50RGlk
Q3JlYXRlUHJldmlldyhjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1dWlkLCBjb25zdCBG
bG9hdFNpemUmIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpwYWly
PFN0cmluZywgdWludDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6bW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmll
dyhjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1dWlkLCBjb25zdCBGbG9hdFNpemUmIHNp
emUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWlu
dDMyX3Q+LCBSZXNvdXJjZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbW9k
ZWxFbGVtZW50Q29udHJvbGxlcigpLT5tb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KHVybCwg
dXVpZCwgc2l6ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjNzBkMGM3NzFjNWMuLjRlODdjNTI5MWYwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU5MCw2ICs1OTAsOCBA
QCBwdWJsaWM6CiAgICAgTW9kZWxFbGVtZW50Q29udHJvbGxlciogbW9kZWxFbGVtZW50Q29udHJv
bGxlcigpIHsgcmV0dXJuIG1fbW9kZWxFbGVtZW50Q29udHJvbGxlci5nZXQoKTsgfQogICAgIHZv
aWQgbW9kZWxFbGVtZW50R2V0Q2FtZXJhKE1vZGVsSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJhLCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yPik+JiYpOwogICAgIHZvaWQgbW9kZWxFbGVtZW50U2V0Q2FtZXJhKE1v
ZGVsSWRlbnRpZmllciwgV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBtb2RlbEVsZW1lbnRJc1BsYXlpbmdB
bmltYXRpb24oTW9kZWxJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVk
PGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4mJik7CisgICAgdm9pZCBtb2RlbEVsZW1l
bnRTZXRBbmltYXRpb25Jc1BsYXlpbmcoTW9kZWxJZGVudGlmaWVyLCBib29sLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVf
UFJFVklFV19JT1MpCiAgICAgdm9pZCB0YWtlTW9kZWxFbGVtZW50RnVsbHNjcmVlbihNb2RlbElk
ZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDZmMDc0ZjUzMGIyZS4uMWQzOTNkMzU2NDFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01OTcsNiAr
NTk3LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNpZiBFTkFCTEUoQVJLSVRfSU5M
SU5FX1BSRVZJRVcpCiAgICAgTW9kZWxFbGVtZW50R2V0Q2FtZXJhKHN0cnVjdCBXZWJLaXQ6Ok1v
ZGVsSWRlbnRpZmllciBtb2RlbElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpIVE1M
TW9kZWxFbGVtZW50Q2FtZXJhLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIEFzeW5j
CiAgICAgTW9kZWxFbGVtZW50U2V0Q2FtZXJhKHN0cnVjdCBXZWJLaXQ6Ok1vZGVsSWRlbnRpZmll
ciBtb2RlbElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Q2FtZXJh
IGNhbWVyYSkgLT4gKGJvb2wgc3VjY2VzcykgQXN5bmMKKyAgICBNb2RlbEVsZW1lbnRJc1BsYXlp
bmdBbmltYXRpb24oc3RydWN0IFdlYktpdDo6TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmll
cikgLT4gKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgQXN5
bmMKKyAgICBNb2RlbEVsZW1lbnRTZXRBbmltYXRpb25Jc1BsYXlpbmcoc3RydWN0IFdlYktpdDo6
TW9kZWxJZGVudGlmaWVyIG1vZGVsSWRlbnRpZmllciwgYm9vbCBpc1BsYXlpbmcpIC0+IChib29s
IHN1Y2Nlc3MpIEFzeW5jCiAjZW5kaWYKIAogICAgIHJlcXVlc3RQZXJtaXNzaW9uKHN0cnVjdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6UGVybWlzc2lvbkRl
c2NyaXB0b3IgZGVzY3JpcHRvcikgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpQZXJtaXNzaW9u
U3RhdGUgc3RhdGUpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oCmluZGV4IGNjMzQ0
YTU3YmEwYS4uYjhlNTViMjM0NTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaApAQCAt
NTQsNyArNTQsOSBAQCBwcml2YXRlOgogICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIGdldENh
bWVyYShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SFRNTE1v
ZGVsRWxlbWVudENhbWVyYT4mJik+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0Q2FtZXJhKFdl
YkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCYmKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRDYW1lcmEoV2ViQ29yZTo6SFRNTE1vZGVs
RWxlbWVudENhbWVyYSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2Nlc3MpPiYmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGlzUGxheWluZ0FuaW1hdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0QW5p
bWF0aW9uSXNQbGF5aW5nKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZXNz
KT4mJikgb3ZlcnJpZGU7CiAKICAgICBXZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKICAgICBXZWFr
UHRyPFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50PiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllci5tbQppbmRleCAwYzAxZjIwNmNhNmQuLjk3MDM3YmFlZjhhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllci5tbQpAQCAtODEsNyArODEsNyBAQCB2b2lkIEFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyOjpnZXRDYW1lcmEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
Om9wdGlvbgogICAgIHN0cm9uZ1BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpNb2RlbEVsZW1lbnRHZXRDYW1lcmEoKm1vZGVsSWRlbnRpZmllciksIFdURk1v
dmUocmVtb3RlQ29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBBUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllcjo6c2V0Q2FtZXJhKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEg
Y2FtZXJhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wmJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpzZXRDYW1lcmEoV2ViQ29y
ZTo6SFRNTE1vZGVsRWxlbWVudENhbWVyYSBjYW1lcmEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCBzdWNjZXNzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIG1vZGVsSWRl
bnRpZmllciA9IHRoaXMtPm1vZGVsSWRlbnRpZmllcigpOwogICAgIGlmICghbW9kZWxJZGVudGlm
aWVyKSB7CkBAIC05NiwxMiArOTYsNTkgQEAgdm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcjo6c2V0Q2FtZXJhKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnRDYW1lcmEgY2EKICAgICB9
CiAKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiByZW1vdGVDb21wbGV0aW9uSGFu
ZGxlciA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAo
Ym9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShzdWNjZXNzKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2Nlc3MpOwogICAgIH07
CiAKICAgICBzdHJvbmdQYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6TW9kZWxFbGVtZW50U2V0Q2FtZXJhKCptb2RlbElkZW50aWZpZXIsIGNhbWVyYSksIFdU
Rk1vdmUocmVtb3RlQ29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllcjo6aXNQbGF5aW5nQW5pbWF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxib29sPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBh
dXRvIG1vZGVsSWRlbnRpZmllciA9IHRoaXMtPm1vZGVsSWRlbnRpZmllcigpOworICAgIGlmICgh
bW9kZWxJZGVudGlmaWVyKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9w
dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvKiBzdHJvbmdQYWdlID0gbV9w
YWdlLmdldCgpOworICAgIGlmICghc3Ryb25nUGFnZSkgeworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihzdGQ6Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+
IHJlbW90ZUNvbXBsZXRpb25IYW5kbGVyID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildIChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
PiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCpyZXN1bHQpOworICAgIH07CisK
KyAgICBzdHJvbmdQYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6TW9kZWxFbGVtZW50SXNQbGF5aW5nQW5pbWF0aW9uKCptb2RlbElkZW50aWZpZXIpLCBXVEZN
b3ZlKHJlbW90ZUNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXI6OnNldEFuaW1hdGlvbklzUGxheWluZyhib29sIGlzUGxheWluZywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2Nlc3MpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGF1dG8gbW9kZWxJZGVudGlmaWVyID0gdGhpcy0+bW9kZWxJZGVudGlmaWVyKCk7Cisg
ICAgaWYgKCFtb2RlbElkZW50aWZpZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogc3Ryb25nUGFnZSA9IG1f
cGFnZS5nZXQoKTsKKyAgICBpZiAoIXN0cm9uZ1BhZ2UpIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4gcmVtb3RlQ29tcGxldGlvbkhhbmRsZXIgPSBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJs
ZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2Nlc3MpOworICAgIH07CisKKyAgICBz
dHJvbmdQYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TW9k
ZWxFbGVtZW50U2V0QW5pbWF0aW9uSXNQbGF5aW5nKCptb2RlbElkZW50aWZpZXIsIGlzUGxheWlu
ZyksIFdURk1vdmUocmVtb3RlQ29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogfQogCiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>