<?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>212455</bug_id>
          
          <creation_ts>2020-05-27 22:48:42 -0700</creation_ts>
          <short_desc>Prepare for async scrolling in passive wheel event handler regions</short_desc>
          <delta_ts>2020-05-29 07:57:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>koivisto</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1656772</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-27 22:48:42 -0700</bug_when>
    <thetext>Prepare for async scrolling in passive wheel event handler regions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656773</commentid>
    <comment_count>1</comment_count>
      <attachid>400429</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-27 22:51:09 -0700</bug_when>
    <thetext>Created attachment 400429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657071</commentid>
    <comment_count>2</comment_count>
      <attachid>400519</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-28 16:04:11 -0700</bug_when>
    <thetext>Created attachment 400519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657073</commentid>
    <comment_count>3</comment_count>
      <attachid>400520</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-28 16:05:45 -0700</bug_when>
    <thetext>Created attachment 400520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657077</commentid>
    <comment_count>4</comment_count>
      <attachid>400520</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-28 16:13:04 -0700</bug_when>
    <thetext>Comment on attachment 400520
Patch

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

&gt; Source/WebCore/page/scrolling/ScrollingTree.cpp:66
&gt; +OptionSet&lt;WheelEventProcessingSteps&gt; ScrollingTree::determineWheelEventProcessing(const PlatformWheelEvent&amp; wheelEvent)

&quot;determine ... processing&quot; sounds kind of odd to me. &quot;WheelEventProcessingSteps&quot; does not sound odd, so... I&apos;m not sure what it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657249</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-29 07:56:27 -0700</bug_when>
    <thetext>Committed r262294: &lt;https://trac.webkit.org/changeset/262294&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 400520.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657250</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-29 07:57:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/63759233&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400429</attachid>
            <date>2020-05-27 22:51:09 -0700</date>
            <delta_ts>2020-05-28 16:04:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212455-20200527225108.patch</filename>
            <type>text/plain</type>
            <size>20527</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRkMTAxYTczMGVkYmM5
ZDdlYWQ5MDM1YWEwZDg1NWIxYmMxOGIxZS4uNGExNDY2OTcyMWQyZjcyN2Y1Y2VhYTllNzI0NDFk
MDljODk5ZmQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA1LTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFByZXBhcmUgZm9y
IGFzeW5jIHNjcm9sbGluZyBpbiBwYXNzaXZlIHdoZWVsIGV2ZW50IGhhbmRsZXIgcmVnaW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNDU1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xhcmlmeSB0
aGUgcHJvY2Vzc2luZyBmb3Igd2hlZWwgZXZlbnRzIGJ5IGFkZGluZyBPcHRpb25TZXQ8V2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwcz4sCisgICAgICAgIHdoaWNoIHdpbGwsIGluIGZ1dHVyZSwgYWxs
b3cgdXMgdG8gZGVzY3JpYmUgdGhlIHByb2Nlc3NpbmcgZm9yIGFuIGV2ZW50IGluIHRoZSBwYXNz
aXZlCisgICAgICAgIGV2ZW50IGhhbmRsZXIgcmVnaW9uIHdoaWNoIGRvZXMgc2Nyb2xsaW5nIG9u
IHRoZSBzY3JvbGxpbmcgdGhyZWFkLCBhbmQgaXMgdGhlbiBzZW50CisgICAgICAgIHRvIHRoZSBt
YWluIHRocmVhZCBmb3IgRE9NIGV2ZW50IGRpc3BhdGNoLgorCisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0
b3I8PCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmg6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50RGlzcGF0Y2hpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNo
cm9ub3VzbHkpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OldoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdDo6aGFuZGxlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
OjpXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQ6Om5lZWRzTWFpblRocmVhZFByb2Nlc3NpbmcgY29u
c3QpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnRyeVRvSGFuZGxlV2hl
ZWxFdmVudCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxF
dmVudC5oOgorCiAyMDIwLTA1LTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFNjcm9sbGluZ1RyZWVNYWM6OmV2ZW50TGlzdGVuZXJSZWdpb25UeXBl
c0ZvclBvaW50KCkgbmVlZHMgdG8gY29udmVydCB0aGUgcG9pbnQgdG8gbG9jYWwgY29vcmRpbmF0
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggMzk4OTYwMTUyZTY3YTMzNGFjMDZjY2VjYTRmZjNjODA2NzE0MzViNS4u
NTEzNTM3NmNlNDAzN2Q4ZTU0ZGYwYWIzMzE3ZGYyNWJhMjY0Mjk1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAyMC0wNS0yNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBQcmVwYXJlIGZvciBhc3luYyBzY3JvbGxpbmcgaW4gcGFzc2l2ZSB3
aGVlbCBldmVudCBoYW5kbGVyIHJlZ2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMjQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENsYXJpZnkgdGhlIHByb2Nlc3NpbmcgZm9yIHdoZWVsIGV2ZW50
cyBieSBhZGRpbmcgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+LAorICAgICAg
ICB3aGljaCB3aWxsLCBpbiBmdXR1cmUsIGFsbG93IHVzIHRvIGRlc2NyaWJlIHRoZSBwcm9jZXNz
aW5nIGZvciBhbiBldmVudCBpbiB0aGUgcGFzc2l2ZQorICAgICAgICBldmVudCBoYW5kbGVyIHJl
Z2lvbiB3aGljaCBkb2VzIHNjcm9sbGluZyBvbiB0aGUgc2Nyb2xsaW5nIHRocmVhZCwgYW5kIGlz
IHRoZW4gc2VudAorICAgICAgICB0byB0aGUgbWFpbiB0aHJlYWQgZm9yIERPTSBldmVudCBkaXNw
YXRjaC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnRyeVRvSGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCk6CisKIDIwMjAtMDUtMjcgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuIFtHVEtdIE1ha2Ugd2Via2l0V2ViVmlld0Jhc2VTbmFwc2hvdCBzdGF0aWMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cAppbmRleCA2Yzk2YTMwZTQ5ZGM4MTIwYjJhOWYzOTEyZDA2N2Q3ZWZjY2Q3ZDY0Li5mMjZhY2Yx
NjNmZjFlNDJjMGJjYTQ1MDk3YWQ2OWQ0MWJlZGM5Mjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC00NjUs
NiArNDY1LDE2IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFNjcm9s
bGluZ05vZGVUeXBlIG5vZGVUeXBlKQogICAgIHJldHVybiB0czsKIH0KIAorVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgcmVzdWx0KQor
eworICAgIHN3aXRjaCAocmVzdWx0KSB7CisgICAgY2FzZSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6
RGlkTm90SGFuZGxlRXZlbnQ6IHRzIDw8ICJkaWQgbm90IGhhbmRsZSI7IGJyZWFrOworICAgIGNh
c2UgU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZEhhbmRsZUV2ZW50OiB0cyA8PCAiaGFuZGxlZCI7
IGJyZWFrOworICAgIGNhc2UgU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OlNlbmRUb01haW5UaHJlYWQ6
IHRzIDw8ICJzZW5kIHRvIHNjcm9sbGluZyB0aHJlYWQiOyBicmVhazsKKyAgICB9CisgICAgcmV0
dXJuIHRzOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBTY3Jv
bGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIGFjdGlvbikKIHsKICAgICBzd2l0Y2ggKGFjdGlvbikg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgKaW5kZXggMDA1YmNjNTllYTdlYmFlNTdlNjBkMTYxOGEyMzkyNDEyMGI1MGMxYy4u
OWI2NWQ1OThlM2IxN2FjMjQ1N2U0ZDM4YWM1OWY1MmVmMWFjZGMyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0y
MjIsNiArMjIyLDcgQEAgcHJpdmF0ZToKIAogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyk7
CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgU2Nyb2xsaW5nTm9kZVR5cGUpOworV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFNjcm9sbGluZ0V2ZW50UmVzdWx0KTsKIFdF
QkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBWaWV3cG9ydFJlY3RTdGFiaWxp
dHkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvclR5cGVzLmgKaW5kZXggMWNjYjM5NTkzZThhZjdkMTNmM2E2N2UyN2Ux
ZDlmYmJkZjEwN2I1ZC4uMjcyNjRiMzNkNmMzMmI3NGZlZWI3YWI1M2YyYmJhZjc5Y2I2NTUyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yVHlwZXMuaApAQCAtOTgsNyArOTgsNiBAQCBzdHJ1Y3QgU2Nyb2xsYWJsZUFy
ZWFQYXJhbWV0ZXJzIHsKIGVudW0gY2xhc3MgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgewogICAgIERp
ZE5vdEhhbmRsZUV2ZW50LAogICAgIERpZEhhbmRsZUV2ZW50LAotICAgIFNlbmRUb1Njcm9sbGlu
Z1RocmVhZCwKICAgICBTZW5kVG9NYWluVGhyZWFkLAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAzYWYwNjg3MTM0MWFkMjhk
NmIwMDUzMzIwY2RjMDhlN2RjY2Y5ODBmLi5kYmFiY2VhNjNmYjE3NDRmODJiZWUzODc1YWJjMTAw
NTlmMzg4YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcApAQCAtNjMsMTcgKzYzLDE3IEBAIFNjcm9sbGluZ1RyZWU6OlNjcm9sbGluZ1Ry
ZWUoKQogCiBTY3JvbGxpbmdUcmVlOjp+U2Nyb2xsaW5nVHJlZSgpID0gZGVmYXVsdDsKIAotYm9v
bCBTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitPcHRpb25TZXQ8V2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwcz4gU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudERpc3BhdGNo
aW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKICAgICAvLyBUaGlz
IG1ldGhvZCBpcyBpbnZva2VkIGJ5IHRoZSBldmVudCBoYW5kbGluZyB0aHJlYWQKICAgICBMb2Nr
SG9sZGVyIGxvY2sobV90cmVlU3RhdGVNdXRleCk7CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsTGF0Y2hpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxF
dmVudFN5bmNocm9ub3VzbHkgIiA8PCB3aGVlbEV2ZW50IDw8ICIgaGF2ZSBsYXRjaGVkIG5vZGUg
IiA8PCBtX2xhdGNoaW5nQ29udHJvbGxlci5sYXRjaGVkTm9kZUZvckV2ZW50KHdoZWVsRXZlbnQs
IG1fYWxsb3dMYXRjaGluZykpOwogICAgIGlmIChtX2xhdGNoaW5nQ29udHJvbGxlci5sYXRjaGVk
Tm9kZUZvckV2ZW50KHdoZWVsRXZlbnQsIG1fYWxsb3dMYXRjaGluZykpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Ny
b2xsaW5nVGhyZWFkIH07CiAKICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5yZWNlaXZlZFdoZWVs
RXZlbnQod2hlZWxFdmVudCwgbV9hbGxvd0xhdGNoaW5nKTsKLSAgICAKKwogICAgIGlmICghbV90
cmVlU3RhdGUuZXZlbnRUcmFja2luZ1JlZ2lvbnMuaXNFbXB0eSgpICYmIG1fcm9vdE5vZGUpIHsK
ICAgICAgICAgRmxvYXRQb2ludCBwb3NpdGlvbiA9IHdoZWVsRXZlbnQucG9zaXRpb24oKTsKICAg
ICAgICAgcG9zaXRpb24ubW92ZShtX3Jvb3ROb2RlLT52aWV3VG9Db250ZW50c09mZnNldChtX3Ry
ZWVTdGF0ZS5tYWluRnJhbWVTY3JvbGxQb3NpdGlvbikpOwpAQCAtODcsOSArODcsOSBAQCBib29s
IFNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudAogICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBz
dHJlYW0gPDwgIlxuXG5TY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hy
b25vdXNseTogd2hlZWxFdmVudCAiIDw8IHdoZWVsRXZlbnQgPDwgIiBtYXBwZWQgdG8gY29udGVu
dCBwb2ludCAiIDw8IHBvc2l0aW9uIDw8ICIsIGluIG5vbi1mYXN0IHJlZ2lvbiAiIDw8IGlzU3lu
Y2hyb25vdXNEaXNwYXRjaFJlZ2lvbik7CiAKICAgICAgICAgaWYgKGlzU3luY2hyb25vdXNEaXNw
YXRjaFJlZ2lvbikKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJu
IHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfTsK
ICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNz
aW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCB9OwogfQogCiBTY3JvbGxpbmdFdmVudFJlc3VsdCBT
Y3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAppbmRleCA0NWI3MTc0Zjc1NjI2Zjk3YzI4ZWJiNTM3OTA1MGE4MmQ4NDU3NmRiLi4wZmQ2
NWFiY2JjZTAyMWIzMWFkOTk3NDY2NjRhNzJmZDdlY2YyYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC03MCwxMCArNzAsMTcgQEAgcHVi
bGljOgogICAgIGJvb2wgYXN5bmNGcmFtZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9hc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ7IH0KICAg
ICB2b2lkIHNldEFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZChib29sKTsKIAot
ICAgIHVzaW5nIENvbXBsZXRpb25GdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248dm9pZCAoU2Nyb2xs
aW5nRXZlbnRSZXN1bHQpPjsKKyAgICBzdHJ1Y3QgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IHsK
KyAgICAgICAgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHN0ZXBzOworICAg
ICAgICBTY3JvbGxpbmdFdmVudFJlc3VsdCByZXN1bHQgeyAwIH07CisgICAgICAgIAorICAgICAg
ICBib29sIGhhbmRsZWQoKSBjb25zdCB7IHJldHVybiByZXN1bHQgPT0gU2Nyb2xsaW5nRXZlbnRS
ZXN1bHQ6OkRpZEhhbmRsZUV2ZW50OyB9CisgICAgICAgIGJvb2wgbmVlZHNNYWluVGhyZWFkUHJv
Y2Vzc2luZygpIGNvbnN0IHsgcmV0dXJuIHN0ZXBzLmNvbnRhaW5zQW55KHsgV2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSk7IH0KKyAgICB9OworICAg
IHVzaW5nIENvbXBsZXRpb25GdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248dm9pZCAoV2hlZWxFdmVu
dEhhbmRsaW5nUmVzdWx0KT47CiAgICAgLy8gTm90ZSB0aGF0IENvbXBsZXRpb25GdW5jdGlvbiBt
YXkgZ2V0IGNhbGxlZCBvbiBhIGRpZmZlcmVudCB0aHJlYWQuCi0gICAgdmlydHVhbCBTY3JvbGxp
bmdFdmVudFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiwgQ29tcGxldGlvbkZ1bmN0aW9uJiYgPSBudWxscHRyKSA9IDA7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmKTsKKyAgICB2aXJ0dWFsIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCB0
cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgQ29tcGxldGlv
bkZ1bmN0aW9uJiYgPSBudWxscHRyKSA9IDA7CisgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uU2V0
PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IGRldGVybWluZVdoZWVsRXZlbnREaXNwYXRjaGlu
Zyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKICAgICAKICAgICB2b2lkIHNldE1haW5GcmFt
ZUlzUnViYmVyQmFuZGluZyhib29sKTsKICAgICBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3Mo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Ny
b2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuY3BwCmluZGV4IDkzYzgxNjA2ZjQ1OTk1NmMxNjNmM2FhMWY0NDY5NjhmYWQ2
ZWI0YzkuLmY3MDhmM2UzZDJiMTI0N2E2OGRkNjA4ZWY5M2ZmMDIyZjNhNzVjOTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcApAQCAtNTUsMTkgKzU1LDI1IEBAIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6flRocmVh
ZGVkU2Nyb2xsaW5nVHJlZSgpCiAgICAgQVNTRVJUKCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKTsK
IH0KIAotU2Nyb2xsaW5nRXZlbnRSZXN1bHQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp0cnlUb0hh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBDb21w
bGV0aW9uRnVuY3Rpb24mJiBjb21wbGV0aW9uRnVuY3Rpb24pCitTY3JvbGxpbmdUcmVlOjpXaGVl
bEV2ZW50SGFuZGxpbmdSZXN1bHQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp0cnlUb0hhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBDb21wbGV0aW9u
RnVuY3Rpb24mJiBjb21wbGV0aW9uRnVuY3Rpb24pCiB7Ci0gICAgaWYgKHNob3VsZEhhbmRsZVdo
ZWVsRXZlbnRTeW5jaHJvbm91c2x5KHdoZWVsRXZlbnQpKQotICAgICAgICByZXR1cm4gU2Nyb2xs
aW5nRXZlbnRSZXN1bHQ6OlNlbmRUb01haW5UaHJlYWQ7CisgICAgYXV0byBkaXNwYXRjaFN0ZXBz
ID0gZGV0ZXJtaW5lV2hlZWxFdmVudERpc3BhdGNoaW5nKHdoZWVsRXZlbnQpOworICAgIGlmICgh
ZGlzcGF0Y2hTdGVwcy5jb250YWlucyhXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxp
bmdUaHJlYWQpKQorICAgICAgICByZXR1cm4geyBkaXNwYXRjaFN0ZXBzLCBTY3JvbGxpbmdFdmVu
dFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQgfTsKIAogICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9s
bGluZ1RyZWU+IHByb3RlY3RlZFRoaXModGhpcyk7Ci0gICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNw
YXRjaChbcHJvdGVjdGVkVGhpcywgd2hlZWxFdmVudCwgY29tcGxldGlvbkZ1bmMgPSBXVEZNb3Zl
KGNvbXBsZXRpb25GdW5jdGlvbildIHsKKyAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFtw
cm90ZWN0ZWRUaGlzLCB3aGVlbEV2ZW50LCBkaXNwYXRjaFN0ZXBzLCBjb21wbGV0aW9uRnVuYyA9
IFdURk1vdmUoY29tcGxldGlvbkZ1bmN0aW9uKV0gewogICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3RlY3RlZFRoaXMtPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CisgICAgICAgIAorICAg
ICAgICBhdXRvIHJlbWFpbmluZ1N0ZXBzID0gZGlzcGF0Y2hTdGVwczsKKyAgICAgICAgaWYgKHJl
c3VsdCA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6U2VuZFRvTWFpblRocmVhZCkKKyAgICAgICAg
ICAgIHJlbWFpbmluZ1N0ZXBzLmFkZCh7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5U
aHJlYWRGb3JTY3JvbGxpbmcgfSk7CisKICAgICAgICAgaWYgKGNvbXBsZXRpb25GdW5jKQotICAg
ICAgICAgICAgY29tcGxldGlvbkZ1bmMocmVzdWx0KTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25G
dW5jKHsgcmVtYWluaW5nU3RlcHMsIHJlc3VsdCB9KTsKICAgICB9KTsKLSAgICAKLSAgICByZXR1
cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OlNlbmRUb1Njcm9sbGluZ1RocmVhZDsKKworICAgIHJl
dHVybiB7IGRpc3BhdGNoU3RlcHMsIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVu
dCB9OwogfQogCiBTY3JvbGxpbmdFdmVudFJlc3VsdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuaAppbmRleCA3YzVhMzgyZTFjMTFhMjJjOGRlZWM0OWE2ZGI2MWQwMGRiYmIxOTIyLi40NjQ2
MjA4Y2FkMzc0MzI2NTA3OTY3NTM2ODM2NzJjYzg3MTNmZmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAtNTIs
NyArNTIsNyBAQCBwdWJsaWM6CiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQu
IFdpbGwgdHJ5IHRvIGhhbmRsZSB0aGUgd2hlZWwgZXZlbnQgb24gdGhlIHNjcm9sbGluZyB0aHJl
YWQuCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB3aGVlbCBldmVudCBjYW4gYmUgaGFuZGxl
ZCBvbiB0aGUgc2Nyb2xsaW5nIHRocmVhZCBhbmQgZmFsc2UgaWYgdGhlCiAgICAgLy8gZXZlbnQg
bXVzdCBiZSBzZW50IGFnYWluIHRvIHRoZSBXZWJDb3JlIGV2ZW50IGhhbmRsZXIuCi0gICAgU2Ny
b2xsaW5nRXZlbnRSZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIENvbXBsZXRpb25GdW5jdGlvbiYmKSBvdmVycmlkZTsKKyAgICBXaGVlbEV2ZW50
SGFuZGxpbmdSZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIENvbXBsZXRpb25GdW5jdGlvbiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgaW52YWxp
ZGF0ZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1X
aGVlbEV2ZW50LmNwcAppbmRleCA5MWQ2ODhmM2FjMjQxY2NmYzU0MjFjNmNlYmFhNTE2ODQyYzcx
NmMyLi44YTE1YzhhYzQ0NzAxYWM3MzBjZjhiZjNhMWYwYjljMDA5YzEyZWQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKQEAgLTU5LDQgKzU5
LDE0IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgZXZlbnQpCiAgICAgcmV0dXJuIHRzOwogfQogCitUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzIHN0ZXBz
KQoreworICAgIHN3aXRjaCAoc3RlcHMpIHsKKyAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6OlNjcm9sbGluZ1RocmVhZDogdHMgPDwgInNjcm9sbGluZyB0aHJlYWQiOyBicmVhazsK
KyAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxp
bmc6IHRzIDw8ICJtYWluIHRocmVhZCBzY3JvbGxpbmciOyBicmVhazsKKyAgICBjYXNlIFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoOiB0cyA8
PCAibWFpbiB0aHJlYWQgRE9NIGV2bmV0IGRpc3BhdGNoIjsgYnJlYWs7CisgICAgfQorICAgIHJl
dHVybiB0czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRleCAxOGEzNWExMTJlOTlhOGQ1NGI1ZmQ0
ODUyMTBiNDViNjU1YzVkMjAyLi4yY2UwNjBlMzM2NTlmNmVmZDNkNDBmOWMyMTk4ZDQ1YTdiMjcx
NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaApA
QCAtNDAsNiArNDAsMTIgQEAgY2xhc3MgVGV4dFN0cmVhbTsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitlbnVtIGNsYXNzIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgOiB1aW50OF90IHsKKyAg
ICBTY3JvbGxpbmdUaHJlYWQgICAgICAgICAgICAgICAgID0gMSA8PCAwLAorICAgIE1haW5UaHJl
YWRGb3JTY3JvbGxpbmcgICAgICAgICAgPSAxIDw8IDEsCisgICAgTWFpblRocmVhZEZvckRPTUV2
ZW50RGlzcGF0Y2ggICA9IDEgPDwgMiwKK307CisKIC8vIFRoZSBTY3JvbGxCeVBpeGVsV2hlZWxF
dmVudCBpcyBhIGZpbmUtZ3JhaW5lZCBldmVudCB0aGF0IHNwZWNpZmllcyB0aGUgcHJlY2lzZSBu
dW1iZXIgb2YgcGl4ZWxzIHRvIHNjcm9sbC4KIC8vIEl0IGlzIHNlbnQgZGlyZWN0bHkgYnkgdG91
Y2ggcGFkcyBvbiBtYWNPUywgb3Igc3ludGhlc2l6ZWQgd2hlbiBwbGF0Zm9ybXMgZ2VuZXJhdGUg
bGluZS1ieS1saW5lIHNjcm9sbGluZyBldmVudHMuCiAvLwpAQCAtMjU0LDUgKzI2MCw2IEBAIGlu
bGluZSBGbG9hdFBvaW50IFBsYXRmb3JtV2hlZWxFdmVudDo6c3dpcGVWZWxvY2l0eSgpIGNvbnN0
CiAjZW5kaWYgLy8gRU5BQkxFKEtJTkVUSUNfU0NST0xMSU5HKQogCiBXVEY6OlRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7
CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2hlZWxFdmVu
dFByb2Nlc3NpbmdTdGVwcyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCAyOTUzNzcyYjIx
NmY1ZDRiMzkzOWJjZTc5NjVlNDdhNjAyYTUxNDg3Li5lNTkxODdlZTUxYWZiOWU5ZDA5Mzk5ZmE0
YWNmZmFhMDcyYmRlOTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuY3BwCkBAIC0xNzgsOCArMTc4LDggQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5Ojplc3RhYmxpc2hMYXllclRyZWVTY3JvbGxpbmdSZWxhdGlvbnMoY29u
c3QKIAogYm9vbCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiB7Ci0gICAgU2Nyb2xsaW5nRXZl
bnRSZXN1bHQgcmVzdWx0ID0gbV9zY3JvbGxpbmdUcmVlLT50cnlUb0hhbmRsZVdoZWVsRXZlbnQo
ZXZlbnQsIG51bGxwdHIpOwotICAgIHJldHVybiByZXN1bHQgPT0gU2Nyb2xsaW5nRXZlbnRSZXN1
bHQ6OkRpZEhhbmRsZUV2ZW50OyAvLyBGSVhNRTogaGFuZGxlIG90aGVyIHZhbHVlcy4KKyAgICBt
X3Njcm9sbGluZ1RyZWUtPnRyeVRvSGFuZGxlV2hlZWxFdmVudChldmVudCwgbnVsbHB0cik7Cisg
ICAgcmV0dXJuIHRydWU7IC8vIEZJWE1FOiBoYW5kbGUgb3RoZXIgdmFsdWVzLgogfQogCiB2b2lk
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZU1vdXNlRXZlbnQoY29uc3Qg
V2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdU
cmVlLmNwcAppbmRleCBkYjRhM2E4NjFmMGNiNGM3YmIxN2IzMDNlMjg1Y2ZkOGJhMzliZWFiLi5k
OGNlZDFmMzAwMzM3NWE1YmUwNjIyNzA1MWZlNjdkOTZmYTZiNWE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ1RyZWUuY3BwCkBAIC02MSwxNiArNjEsMTggQEAgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6
flJlbW90ZVNjcm9sbGluZ1RyZWUoKQogewogfQogCi1TY3JvbGxpbmdFdmVudFJlc3VsdCBSZW1v
dGVTY3JvbGxpbmdUcmVlOjp0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50LCBDb21wbGV0aW9uRnVuY3Rpb24mJikKK1Njcm9sbGluZ1RyZWU6
OldoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBSZW1vdGVTY3JvbGxpbmdUcmVlOjp0cnlUb0hhbmRs
ZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBDb21wbGV0
aW9uRnVuY3Rpb24mJikKIHsKLSAgICBpZiAoc2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9u
b3VzbHkod2hlZWxFdmVudCkpCi0gICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6
U2VuZFRvTWFpblRocmVhZDsKKyAgICAvLyBGSVhNRTogTG90cyBtaXNzaW5nIGhlcmUuIE5lZWQg
dG8gZG8gc3luYyBJUEMgZm9yIG5vbi1wYXNzaXZlIGhhbmRsZXJzIGV0Yy4KKyAgICBhdXRvIGRp
c3BhdGNoU3RlcHMgPSBkZXRlcm1pbmVXaGVlbEV2ZW50RGlzcGF0Y2hpbmcod2hlZWxFdmVudCk7
CisgICAgaWYgKGRpc3BhdGNoU3RlcHMuY29udGFpbnNBbnkoeyBXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBz
OjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9KSkKKyAgICAgICAgcmV0dXJuIHsgZGlz
cGF0Y2hTdGVwcywgU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50IH07CiAK
ICAgICBpZiAod2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSh3aGVlbEV2ZW50KSkKLSAg
ICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudDsKKyAg
ICAgICAgcmV0dXJuIHsgeyB9LCBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZl
bnQgfTsKIAotICAgIGhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7Ci0gICAgcmV0dXJuIFNj
cm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsKKyAgICBhdXRvIHJlc3VsdCA9IGhh
bmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CisgICAgcmV0dXJuIHsgZGlzcGF0Y2hTdGVwcywg
cmVzdWx0IH07CiB9CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUu
aAppbmRleCA1OGFmMmVlNjNiZDZmYzE2MmExMzliNGE4OWIyYzY4ZWUyMzRmNGVlLi5lMDVmYmJl
MjFkMTAwNDhmM2Q1NGVkOWRiMjM5YmU2MTYwZTlkN2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdU
cmVlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbW90ZVNjcm9s
bGluZ1RyZWUoKTsKIAogICAgIGJvb2wgaXNSZW1vdGVTY3JvbGxpbmdUcmVlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIFdlYkNvcmU6OlNjcm9sbGluZ0V2ZW50UmVzdWx0
IHRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQm
LCBDb21wbGV0aW9uRnVuY3Rpb24mJikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZTo6V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IHRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25z
dCBXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQmLCBDb21wbGV0aW9uRnVuY3Rpb24mJikgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIGhhbmRsZU1vdXNlRXZlbnQoY29uc3QgV2ViQ29yZTo6UGxhdGZv
cm1Nb3VzZUV2ZW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDBlM2VkMjBjYjk2MGFlN2ZiYWFhZjNhZmZk
OTYzZTBiYjM0YjM0MGIuLjQzZTlhY2YyN2U3Yjk1NGU5OTQyZGM5ZTYwM2FkN2Q2NDcyODBiN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcApAQCAtMTIwLDYgKzEyMCw4IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVl
bEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlCiAg
ICAgfQogI2VuZGlmCiAKKyAgICBXVEZMb2dBbHdheXMoIkV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxF
dmVudCBmb3IgZXZlbnQgYXQgJWYiLCB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29uZHNTaW5j
ZUVwb2NoKCkudmFsdWUoKSk7CisKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwogICAgIGlmIChSZWZQdHI8
VGhyZWFkZWRTY3JvbGxpbmdUcmVlPiBzY3JvbGxpbmdUcmVlID0gbV9zY3JvbGxpbmdUcmVlcy5n
ZXQocGFnZUlEKSkgewpAQCAtMTMwLDI1ICsxMzIsMjQgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6
OndoZWVsRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJXaGVlbEV2ZW50JiB3
aGUKICAgICAgICAgaWYgKHBsYXRmb3JtV2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hl
ZWxFdmVudFBoYXNlQmVnYW4pCiAgICAgICAgICAgICBzY3JvbGxpbmdUcmVlLT5zZXRNYWluRnJh
bWVDYW5SdWJiZXJCYW5kKHsgY2FuUnViYmVyQmFuZEF0VG9wLCBjYW5SdWJiZXJCYW5kQXRSaWdo
dCwgY2FuUnViYmVyQmFuZEF0Qm90dG9tLCBjYW5SdWJiZXJCYW5kQXRMZWZ0IH0pOwogCi0gICAg
ICAgIFNjcm9sbGluZ0V2ZW50UmVzdWx0IHJlc3VsdCA9IHNjcm9sbGluZ1RyZWUtPnRyeVRvSGFu
ZGxlV2hlZWxFdmVudChwbGF0Zm9ybVdoZWVsRXZlbnQsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHdoZWVsRXZlbnQsIHBhZ2VJRF0oU2Nyb2xsaW5nRXZlbnRSZXN1bHQgcmVzdWx0
KSB7CisgICAgICAgIGF1dG8gaGFuZGxpbmdSZXN1bHQgPSBzY3JvbGxpbmdUcmVlLT50cnlUb0hh
bmRsZVdoZWVsRXZlbnQocGxhdGZvcm1XaGVlbEV2ZW50LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCB3aGVlbEV2ZW50LCBwYWdlSURdKFNjcm9sbGluZ1RyZWU6OldoZWVsRXZlbnRI
YW5kbGluZ1Jlc3VsdCBzY3JvbGxpbmdUcmVlSGFuZGxpbmdSZXN1bHQpIHsKICAgICAgICAgICAg
IEFTU0VSVChTY3JvbGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRocmVhZCgpKTsKLSAgICAgICAgICAg
IEFTU0VSVChyZXN1bHQgIT0gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OlNlbmRUb1Njcm9sbGluZ1Ro
cmVhZCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gU2Nyb2xsaW5n
RXZlbnRSZXN1bHQ6OlNlbmRUb01haW5UaHJlYWQpIHsKKworICAgICAgICAgICAgaWYgKHNjcm9s
bGluZ1RyZWVIYW5kbGluZ1Jlc3VsdC5uZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkpIHsKICAg
ICAgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2lubmVyUHJvdGVjdGVkVGhp
cyA9IHByb3RlY3RlZFRoaXMuY29weVJlZigpLCBwYWdlSUQsIHdoZWVsRXZlbnRdKCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICAgICAgICAgIGlubmVyUHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hXaGVl
bEV2ZW50KHBhZ2VJRCwgd2hlZWxFdmVudCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAg
ICBzZW5kRGlkUmVjZWl2ZUV2ZW50KHBhZ2VJRCwgd2hlZWxFdmVudC50eXBlKCksIHJlc3VsdCA9
PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQpOworCisgICAgICAgICAgICBz
ZW5kRGlkUmVjZWl2ZUV2ZW50KHBhZ2VJRCwgd2hlZWxFdmVudC50eXBlKCksIHNjcm9sbGluZ1Ry
ZWVIYW5kbGluZ1Jlc3VsdC5oYW5kbGVkKCkpOwogICAgICAgICB9KTsKIAotICAgICAgICBpZiAo
cmVzdWx0ID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpTZW5kVG9TY3JvbGxpbmdUaHJlYWQpCisg
ICAgICAgIGlmIChoYW5kbGluZ1Jlc3VsdC5zdGVwcy5jb250YWlucyhXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIGlmIChyZXN1bHQgPT0gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZEhhbmRsZUV2ZW50IHx8
IHJlc3VsdCA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQpIHsKLSAg
ICAgICAgICAgIHNlbmREaWRSZWNlaXZlRXZlbnQocGFnZUlELCB3aGVlbEV2ZW50LnR5cGUoKSwg
cmVzdWx0ID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudCk7CisgICAgICAg
IGlmICghaGFuZGxpbmdSZXN1bHQubmVlZHNNYWluVGhyZWFkUHJvY2Vzc2luZygpKSB7CisgICAg
ICAgICAgICBzZW5kRGlkUmVjZWl2ZUV2ZW50KHBhZ2VJRCwgd2hlZWxFdmVudC50eXBlKCksIGhh
bmRsaW5nUmVzdWx0LmhhbmRsZWQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400519</attachid>
            <date>2020-05-28 16:04:11 -0700</date>
            <delta_ts>2020-05-28 16:05:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212455-20200528160410.patch</filename>
            <type>text/plain</type>
            <size>51086</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFmMGU5ODEwNzZkOGMy
MmVhYTAyNzQyNTU0ZGJiNmRlMTQ1YzIwNS4uYTgwMzYzZmZhNTQ5OGRjNWUxNGJmN2U1ZjI0MWI0
OTQzZDg2OWIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDIwLTA1LTI4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFByZXBhcmUgZm9y
IGFzeW5jIHNjcm9sbGluZyBpbiBwYXNzaXZlIHdoZWVsIGV2ZW50IGhhbmRsZXIgcmVnaW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNDU1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xhcmlmeSB0
aGUgcHJvY2Vzc2luZyBmb3Igd2hlZWwgZXZlbnRzIGJ5IGFkZGluZyBPcHRpb25TZXQ8V2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwcz4sCisgICAgICAgIHdoaWNoIHdpbGwsIGluIGZ1dHVyZSwgYWxs
b3cgdXMgdG8gZGVzY3JpYmUgdGhlIHByb2Nlc3NpbmcgZm9yIGFuIGV2ZW50IGluIHRoZSBwYXNz
aXZlCisgICAgICAgIGV2ZW50IGhhbmRsZXIgcmVnaW9uIHdoaWNoIGRvZXMgc2Nyb2xsaW5nIG9u
IHRoZSBzY3JvbGxpbmcgdGhyZWFkLCBhbmQgaXMgdGhlbiBzZW50CisgICAgICAgIHRvIHRoZSBt
YWluIHRocmVhZCBmb3IgRE9NIGV2ZW50IGRpc3BhdGNoLgorICAgICAgICAKKyAgICAgICAgUmVt
b3ZlZCBTY3JvbGxpbmdFdmVudFJlc3VsdCwgd2hpY2ggY29uZmxhdGVkICJoYW5kbGVkIiB3aXRo
ICJzZW5kIHRvIGFub3RoZXIgdGhyZWFkIi4KKyAgICAgICAgVGhlIHRocmVhZCBzZW5kaW5nIGJl
aGF2aW9yIGlzIG5vdyBlbmNvZGVkIGluIHRoZSBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzLCBh
bmQgd2UgY2FuIGp1c3QKKyAgICAgICAgdXNlIGEgYm9vbCBmb3IgaGFuZGxlZC4KKyAgICAgICAg
CisgICAgICAgIFNjcm9sbGluZyB0cmVlIGFuZCBub2RlIGhhbmRsZVdoZWVsRXZlbnQoKSBmdW5j
dGlvbnMgcmV0dXJuIGEgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0LCB3aGljaAorICAgICAgICBp
cyBhIHR1cGxlIG9mIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBhbmQgJ2hh
bmRsZWQnLCBhbGxvd2luZyBmb3IgYSBub2RlIHdpdGgKKyAgICAgICAgYmFja2dyb3VuZC1hdHRh
Y2htZW50OmZpeGVkIHRvIGFkZCB0aGUgInNlbmQgdG8gbWFpbiB0aHJlYWQiIHByb2Nlc3Npbmcg
c3RlcC4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6d2hlZWxFdmVudCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvclR5cGVzLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2
ZW50UHJvY2Vzc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVX
aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRs
ZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50SGFuZGxp
bmdSZXN1bHQ6Om5lZWRzTWFpblRocmVhZFByb2Nlc3NpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpoYW5kbGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OldoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6dW5oYW5kbGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OldoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6cmVzdWx0KToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFp
blRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRsZVdo
ZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9y
PDwpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorCisyMDIwLTA1
LTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNp
bXBsaWZ5IEV2ZW50RGlzcGF0Y2hlciB3aGVlbCBldmVudCBkaXNwYXRjaAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNDkwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBUaGUgdmFyaW91cyBjcm9zcy10aHJlYWQg
Ym91bmNlcyBhbmQgY29tcGxldGlvbiBsYW1iZGFzIGluIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxF
dmVudCgpCisgICAgICAgIGFuZCBTY3JvbGxpbmdUcmVlIGNvZGUgbWFkZSB0aGUgbG9naWMgdmVy
eSBoYXJkIHRvIGZvbGxvdy4KKworICAgICAgICBNb3ZpbmcgdGhlIFNjcm9sbGluZ1RocmVhZDo6
ZGlzcGF0Y2goKSBpbnRvIEV2ZW50SGFuZGxlciBjb2RlIHNpbXBsaWZpZXMgdGhpbmdzIGEgbGl0
dGxlLAorICAgICAgICBhbmQgYWxsb3dzIGZvciByZW1vdmFsIG9mIHRoZSBob2tleSAidHJ5IHRv
IGhhbmRsZSIgU2Nyb2xsaW5nVHJlZSBmdW5jdGlvbiwgYXMgd2VsbAorICAgICAgICBhcyB0aGUg
Y2x1bmt5IGNvbXBsZXRpb24gZnVuY3Rpb24uCisKKyAgICAgICAgTm93LCBFdmVudEhhbmRsZXIg
Y2FsbCBzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseSgpLCB0aGVuIGRvZXMgdGhl
CisgICAgICAgIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goKSB3aGljaCBhbGxvd3MgdGhlIGxh
bWJkYSB0byBlYXNpbHkgY2FsbCBiYWNrIGludG8KKyAgICAgICAgRXZlbnRIYW5kbGVyIGZvciB0
aGUgbWFpbiB0aHJlYWQgZGlzcGF0Y2guCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6dHJ5VG9I
YW5kbGVXaGVlbEV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJl
YWRlZFNjcm9sbGluZ1RyZWUuaDoKKwogMjAyMC0wNS0yNyAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTY3JvbGxpbmdUcmVlTWFjOjpldmVudExpc3Rl
bmVyUmVnaW9uVHlwZXNGb3JQb2ludCgpIG5lZWRzIHRvIGNvbnZlcnQgdGhlIHBvaW50IHRvIGxv
Y2FsIGNvb3JkaW5hdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI2OTk3NzhmODg1MTU1ZDkyYzNlZGU5YmE2NGQy
ZjM3ZmQ5NmI1NjAuLjg2MjNlNDU1N2M1Mzg2OGQ0OWVkN2EzZjRmZGEyMDE3ZmQ2MzE0NGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjAtMDUtMjggIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUHJlcGFyZSBmb3IgYXN5bmMgc2Nyb2xsaW5n
IGluIHBhc3NpdmUgd2hlZWwgZXZlbnQgaGFuZGxlciByZWdpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI0NTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGFyaWZ5IHRoZSBwcm9jZXNzaW5nIGZv
ciB3aGVlbCBldmVudHMgYnkgYWRkaW5nIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0
ZXBzPiwKKyAgICAgICAgd2hpY2ggd2lsbCwgaW4gZnV0dXJlLCBhbGxvdyB1cyB0byBkZXNjcmli
ZSB0aGUgcHJvY2Vzc2luZyBmb3IgYW4gZXZlbnQgaW4gdGhlIHBhc3NpdmUKKyAgICAgICAgZXZl
bnQgaGFuZGxlciByZWdpb24gd2hpY2ggZG9lcyBzY3JvbGxpbmcgb24gdGhlIHNjcm9sbGluZyB0
aHJlYWQsIGFuZCBpcyB0aGVuIHNlbnQKKyAgICAgICAgdG8gdGhlIG1haW4gdGhyZWFkIGZvciBE
T00gZXZlbnQgZGlzcGF0Y2guCisgICAgICAgIAorICAgICAgICBSZW1vdmVkIFNjcm9sbGluZ0V2
ZW50UmVzdWx0LCB3aGljaCBjb25mbGF0ZWQgImhhbmRsZWQiIHdpdGggInNlbmQgdG8gYW5vdGhl
ciB0aHJlYWQiLgorICAgICAgICBUaGUgdGhyZWFkIHNlbmRpbmcgYmVoYXZpb3IgaXMgbm93IGVu
Y29kZWQgaW4gdGhlIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMsIGFuZCB3ZSBjYW4ganVzdAor
ICAgICAgICB1c2UgYSBib29sIGZvciBoYW5kbGVkLgorICAgICAgICAKKyAgICAgICAgU2Nyb2xs
aW5nIHRyZWUgYW5kIG5vZGUgaGFuZGxlV2hlZWxFdmVudCgpIGZ1bmN0aW9ucyByZXR1cm4gYSBX
aGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQsIHdoaWNoCisgICAgICAgIGlzIGEgdHVwbGUgb2YgT3B0
aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IGFuZCAnaGFuZGxlZCcsIGFsbG93aW5n
IGZvciBhIG5vZGUgd2l0aAorICAgICAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6Zml4ZWQgdG8g
YWRkIHRoZSAic2VuZCB0byBtYWluIHRocmVhZCIgcHJvY2Vzc2luZyBzdGVwLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWM6Omhh
bmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFj
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlUmVtb3RlTWFjLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICog
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZVJlbW90ZU1hYy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZl
bnQpOgorCisyMDIwLTA1LTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFNpbXBsaWZ5IEV2ZW50RGlzcGF0Y2hlciB3aGVlbCBldmVudCBkaXNwYXRj
aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNDkw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBUaGUgdmFyaW91
cyBjcm9zcy10aHJlYWQgYm91bmNlcyBhbmQgY29tcGxldGlvbiBsYW1iZGFzIGluIEV2ZW50RGlz
cGF0Y2hlcjo6d2hlZWxFdmVudCgpCisgICAgICAgIGFuZCBTY3JvbGxpbmdUcmVlIGNvZGUgbWFk
ZSB0aGUgbG9naWMgdmVyeSBoYXJkIHRvIGZvbGxvdy4KKworICAgICAgICBNb3ZpbmcgdGhlIFNj
cm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goKSBpbnRvIEV2ZW50SGFuZGxlciBjb2RlIHNpbXBsaWZp
ZXMgdGhpbmdzIGEgbGl0dGxlLAorICAgICAgICBhbmQgYWxsb3dzIGZvciByZW1vdmFsIG9mIHRo
ZSBob2tleSAidHJ5IHRvIGhhbmRsZSIgU2Nyb2xsaW5nVHJlZSBmdW5jdGlvbiwgYXMgd2VsbAor
ICAgICAgICBhcyB0aGUgY2x1bmt5IGNvbXBsZXRpb24gZnVuY3Rpb24uCisKKyAgICAgICAgTm93
LCBFdmVudEhhbmRsZXIgY2FsbCBzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseSgp
LCB0aGVuIGRvZXMgdGhlCisgICAgICAgIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goKSB3aGlj
aCBhbGxvd3MgdGhlIGxhbWJkYSB0byBlYXNpbHkgY2FsbCBiYWNrIGludG8KKyAgICAgICAgRXZl
bnRIYW5kbGVyIGZvciB0aGUgbWFpbiB0aHJlYWQgZGlzcGF0Y2guCisKKyAgICAgICAgUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS9SZW1vdGVMYXllclRyZWUgY29kZSBpcyB1bnVzZWQg
YXQgcHJlc2VudCwgYW5kCisgICAgICAgIHdpbGwgbmVlZCB3b3JrLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6aGFu
ZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJl
ZTo6dHJ5VG9IYW5kbGVXaGVlbEV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnRE
aXNwYXRjaGVyOjp3aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVy
OjpkaXNwYXRjaFdoZWVsRXZlbnRWaWFNYWluVGhyZWFkKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmg6CisKIDIwMjAtMDUtMjggIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW90ZUF1ZGlvOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUgc2hvdWxkIGNoZWNrIGZvciBtX2J1ZmZlciB0byBiZSBudWxsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKaW5kZXggODkzNjYwNTI2ZThkNTViNDRjMTgwOTllMzk1Zjk5NjU1NDcy
ZGQ4Mi4uZjE2YWYxNmY2MzA2MmFjNjJmZTExMjYxYWI0YzZhNzExMmMyMTYyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTA5MSw3ICs1MDkxLDcgQEAgYm9vbCBGcmFtZVZpZXc6
OndoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogI2lmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCiAgICAgaWYgKGF1dG8gc2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
PSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAgICAgICAgIGlmIChzY3JvbGxpbmdD
b29yZGluYXRvci0+Y29vcmRpbmF0ZXNTY3JvbGxpbmdGb3JGcmFtZVZpZXcoKnRoaXMpKQotICAg
ICAgICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5oYW5kbGVXaGVlbEV2ZW50KCp0
aGlzLCB3aGVlbEV2ZW50KSAhPSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZl
bnQ7CisgICAgICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmhhbmRsZVdoZWVs
RXZlbnQoKnRoaXMsIHdoZWVsRXZlbnQpOwogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCAw
MDViY2M1OWVhN2ViYWU1N2U2MGQxNjE4YTIzOTI0MTIwYjUwYzFjLi5mMWMzNzhhMDJlNWU3OWVi
ZDRkN2Y1MmYyYjg2NGUzMDk4ZjcwN2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBw
dWJsaWM6CiAgICAgLy8gVGhlc2UgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSB1bmlx
dWUgdG8gdGhlIHRocmVhZGVkIHNjcm9sbGluZyBhcmNoaXRlY3R1cmUuIAogICAgIHZpcnR1YWwg
dm9pZCBjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpIHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1
ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmLCBjb25zdCBJbnRQb2ludCYs
IFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0g
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBT
Y3JvbGxpbmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYpIHsgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RI
YW5kbGVFdmVudDsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmll
dyYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAv
LyBDcmVhdGUgYW4gdW5wYXJlbnRlZCBub2RlLgogICAgIHZpcnR1YWwgU2Nyb2xsaW5nTm9kZUlE
IGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBuZXdOb2RlSUQp
IHsgcmV0dXJuIG5ld05vZGVJRDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCmluZGV4IDFjY2IzOTU5M2U4
YWY3ZDEzZjNhNjdlMjdlMWQ5ZmJiZGYxMDdiNWQuLmY5MmY1MGI5ZDQ0N2I3MzUzNmJlYjYxOTEy
NGM4MzlkZGJiMTcyYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTk1LDEzICs5NSw2IEBAIHN0
cnVjdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgewogICAgIH0KIH07CiAKLWVudW0gY2xhc3Mg
U2Nyb2xsaW5nRXZlbnRSZXN1bHQgewotICAgIERpZE5vdEhhbmRsZUV2ZW50LAotICAgIERpZEhh
bmRsZUV2ZW50LAotICAgIFNlbmRUb1Njcm9sbGluZ1RocmVhZCwKLSAgICBTZW5kVG9NYWluVGhy
ZWFkLAotfTsKLQogZW51bSBjbGFzcyBWaWV3cG9ydFJlY3RTdGFiaWxpdHkgewogICAgIFN0YWJs
ZSwKICAgICBVbnN0YWJsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5jcHAKaW5kZXggM2FmMDY4NzEzNDFhZDI4ZDZiMDA1MzMyMGNkYzA4ZTdkY2Nm
OTgwZi4uYjAxYjBhNDk2NDExNTYzNGVjZTA1YzdmYWIyODkyMTRhNWMzMTNkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTYzLDE3
ICs2MywxNyBAQCBTY3JvbGxpbmdUcmVlOjpTY3JvbGxpbmdUcmVlKCkKIAogU2Nyb2xsaW5nVHJl
ZTo6flNjcm9sbGluZ1RyZWUoKSA9IGRlZmF1bHQ7CiAKLWJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hv
dWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50KQorT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IFNjcm9s
bGluZ1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIGJ5
IHRoZSBldmVudCBoYW5kbGluZyB0aHJlYWQKICAgICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3Rh
dGVNdXRleCk7CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0cmVhbSA8
PCAiU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkgIiA8
PCB3aGVlbEV2ZW50IDw8ICIgaGF2ZSBsYXRjaGVkIG5vZGUgIiA8PCBtX2xhdGNoaW5nQ29udHJv
bGxlci5sYXRjaGVkTm9kZUZvckV2ZW50KHdoZWVsRXZlbnQsIG1fYWxsb3dMYXRjaGluZykpOwog
ICAgIGlmIChtX2xhdGNoaW5nQ29udHJvbGxlci5sYXRjaGVkTm9kZUZvckV2ZW50KHdoZWVsRXZl
bnQsIG1fYWxsb3dMYXRjaGluZykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0
dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkIH07CiAKICAg
ICBtX2xhdGNoaW5nQ29udHJvbGxlci5yZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCwgbV9h
bGxvd0xhdGNoaW5nKTsKLSAgICAKKwogICAgIGlmICghbV90cmVlU3RhdGUuZXZlbnRUcmFja2lu
Z1JlZ2lvbnMuaXNFbXB0eSgpICYmIG1fcm9vdE5vZGUpIHsKICAgICAgICAgRmxvYXRQb2ludCBw
b3NpdGlvbiA9IHdoZWVsRXZlbnQucG9zaXRpb24oKTsKICAgICAgICAgcG9zaXRpb24ubW92ZSht
X3Jvb3ROb2RlLT52aWV3VG9Db250ZW50c09mZnNldChtX3RyZWVTdGF0ZS5tYWluRnJhbWVTY3Jv
bGxQb3NpdGlvbikpOwpAQCAtODcsMTIgKzg3LDEyIEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hv
dWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
CiAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiXG5cblNjcm9s
bGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5OiB3aGVlbEV2ZW50
ICIgPDwgd2hlZWxFdmVudCA8PCAiIG1hcHBlZCB0byBjb250ZW50IHBvaW50ICIgPDwgcG9zaXRp
b24gPDwgIiwgaW4gbm9uLWZhc3QgcmVnaW9uICIgPDwgaXNTeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9uKTsKIAogICAgICAgICBpZiAoaXNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0
ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9OwogICAgIH0KLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5n
VGhyZWFkIH07CiB9CiAKLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRs
ZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorV2hlZWxF
dmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiXG5TY3JvbGxpbmdUcmVlICIgPDwgdGhpcyA8PCAiIGhhbmRs
ZVdoZWVsRXZlbnQgIiA8PCB3aGVlbEV2ZW50KTsKIApAQCAtMTA1LDEzICsxMDUsMTMgQEAgU2Ny
b2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmIHcKIAogICAgIGF1dG8gcmVzdWx0ID0gWyZdIHsKICAgICAgICAg
aWYgKCFtX3Jvb3ROb2RlKQotICAgICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWROb3RIYW5kbGVFdmVudDsKKyAgICAgICAgICAgIHJldHVybiBXaGVlbEV2ZW50SGFuZGxp
bmdSZXN1bHQ6OnVuaGFuZGxlZCgpOwogCiAgICAgICAgIGlmICghYXN5bmNGcmFtZU9yT3ZlcmZs
b3dTY3JvbGxpbmdFbmFibGVkKCkpCiAgICAgICAgICAgICByZXR1cm4gbV9yb290Tm9kZS0+aGFu
ZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKIAogICAgICAgICBpZiAobV9nZXN0dXJlU3RhdGUu
aGFuZGxlR2VzdHVyZUNhbmNlbCh3aGVlbEV2ZW50KSkKLSAgICAgICAgICAgIHJldHVybiBTY3Jv
bGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQ7CisgICAgICAgICAgICByZXR1cm4gV2hl
ZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpoYW5kbGVkKCk7CiAKICAgICAgICAgbV9nZXN0dXJlU3Rh
dGUucmVjZWl2ZWRXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogCkBAIC0xMjAsMTIgKzEyMCwxMiBA
QCBTY3JvbGxpbmdFdmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgdwogICAgICAgICAgICAgYXV0byogbm9kZSA9IG5vZGVG
b3JJRCgqbGF0Y2hlZE5vZGVJRCk7CiAgICAgICAgICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU+KG5vZGUpKSB7CiAgICAgICAgICAgICAgICAgYXV0byByZXN1bHQgPSBkb3du
Y2FzdDxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpLmhhbmRsZVdoZWVsRXZlbnQo
d2hlZWxFdmVudCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBTY3JvbGxpbmdFdmVu
dFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQpCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC53YXNI
YW5kbGVkKQogICAgICAgICAgICAgICAgICAgICBtX2dlc3R1cmVTdGF0ZS5ub2RlRGlkSGFuZGxl
RXZlbnQoKmxhdGNoZWROb2RlSUQsIHdoZWVsRXZlbnQpOwogICAgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAg
RmxvYXRQb2ludCBwb3NpdGlvbiA9IHdoZWVsRXZlbnQucG9zaXRpb24oKTsKICAgICAgICAgcG9z
aXRpb24ubW92ZShtX3Jvb3ROb2RlLT52aWV3VG9Db250ZW50c09mZnNldChtX3RyZWVTdGF0ZS5t
YWluRnJhbWVTY3JvbGxQb3NpdGlvbikpOwogICAgICAgICBhdXRvIG5vZGUgPSBzY3JvbGxpbmdO
b2RlRm9yUG9pbnQocG9zaXRpb24pOwpAQCAtMTM3LDEyICsxMzcsMTMgQEAgU2Nyb2xsaW5nRXZl
bnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmIHcKICAgICAgICAgICAgICAgICBhdXRvJiBzY3JvbGxpbmdOb2RlID0gZG93bmNh
c3Q8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KCpub2RlKTsKICAgICAgICAgICAgICAgICBh
dXRvIHJlc3VsdCA9IHNjcm9sbGluZ05vZGUuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsK
IAotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRp
ZEhhbmRsZUV2ZW50KSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC53YXNIYW5kbGVkKSB7
CiAgICAgICAgICAgICAgICAgICAgIG1fbGF0Y2hpbmdDb250cm9sbGVyLm5vZGVEaWRIYW5kbGVF
dmVudChzY3JvbGxpbmdOb2RlLnNjcm9sbGluZ05vZGVJRCgpLCB3aGVlbEV2ZW50LCBtX2FsbG93
TGF0Y2hpbmcpOwogICAgICAgICAgICAgICAgICAgICBtX2dlc3R1cmVTdGF0ZS5ub2RlRGlkSGFu
ZGxlRXZlbnQoc2Nyb2xsaW5nTm9kZS5zY3JvbGxpbmdOb2RlSUQoKSwgd2hlZWxFdmVudCk7Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90
SGFuZGxlRXZlbnQpCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5uZWVkc01haW5UaHJlYWRQ
cm9jZXNzaW5nKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAg
ICAgICB9CiAKQEAgLTE1NSw3ICsxNTYsNyBAQCBTY3JvbGxpbmdFdmVudFJlc3VsdCBTY3JvbGxp
bmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgdwogCiAg
ICAgICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50KCk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudDsKKyAgICAgICAgcmV0
dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6dW5oYW5kbGVkKCk7CiAgICAgfSgpOwogCiAg
ICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaAppbmRleCA0NWI3MTc0Zjc1NjI2Zjk3YzI4ZWJiNTM3OTA1MGE4MmQ4NDU3NmRi
Li4yNDc4MTVmMmI0ZmRkMWU4MDA1MDNhYzNlOWEwMWJlMjhhMTJiNGY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC01Niw2ICs1NiwyNSBA
QCBjbGFzcyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTsKIGVudW0gY2xhc3MgRXZlbnRMaXN0
ZW5lclJlZ2lvblR5cGUgOiB1aW50OF90OwogdXNpbmcgUGxhdGZvcm1EaXNwbGF5SUQgPSB1aW50
MzJfdDsKIAorc3RydWN0IFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCB7CisgICAgT3B0aW9uU2V0
PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHN0ZXBzOworICAgIGJvb2wgd2FzSGFuZGxlZCB7
IGZhbHNlIH07CisgICAgYm9vbCBuZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkgY29uc3QgeyBy
ZXR1cm4gc3RlcHMuY29udGFpbnNBbnkoeyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWlu
VGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFk
Rm9yRE9NRXZlbnREaXNwYXRjaCB9KTsgfQorCisgICAgc3RhdGljIFdoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdCBoYW5kbGVkKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7IHsgfSwgdHJ1ZSB9Owor
ICAgIH0KKyAgICBzdGF0aWMgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IHVuaGFuZGxlZCgpCisg
ICAgeworICAgICAgICByZXR1cm4geyB7IH0sIGZhbHNlIH07CisgICAgfQorICAgIHN0YXRpYyBX
aGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgcmVzdWx0KGJvb2wgaGFuZGxlZCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB7IHsgfSwgaGFuZGxlZCB9OworICAgIH0KK307CisKIGNsYXNzIFNjcm9sbGlu
Z1RyZWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2Nyb2xsaW5nVHJlZT4gewogZnJp
ZW5kIGNsYXNzIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI7CiBwdWJsaWM6CkBAIC03
MCwxMSArODksOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBhc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xs
aW5nRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0QXN5bmNGcmFtZU9yT3ZlcmZsb3dTY3JvbGxpbmdF
bmFibGVkKGJvb2wpOwogCi0gICAgdXNpbmcgQ29tcGxldGlvbkZ1bmN0aW9uID0gV1RGOjpGdW5j
dGlvbjx2b2lkIChTY3JvbGxpbmdFdmVudFJlc3VsdCk+OwotICAgIC8vIE5vdGUgdGhhdCBDb21w
bGV0aW9uRnVuY3Rpb24gbWF5IGdldCBjYWxsZWQgb24gYSBkaWZmZXJlbnQgdGhyZWFkLgotICAg
IHZpcnR1YWwgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYsIENvbXBsZXRpb25GdW5jdGlvbiYmID0gbnVsbHB0cikgPSAw
OwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9u
b3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7Ci0gICAgCisgICAgV0VCQ09SRV9FWFBP
UlQgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IGRldGVybWluZVdoZWVsRXZl
bnRQcm9jZXNzaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZpcnR1YWwgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CisKICAgICB2b2lkIHNldE1haW5GcmFtZUlzUnViYmVy
QmFuZGluZyhib29sKTsKICAgICBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKTsKICAgICB2
b2lkIHNldE1haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcoYm9vbCk7CkBAIC0xODgsOCArMjA1LDYg
QEAgcHJvdGVjdGVkOgogICAgIEZsb2F0UG9pbnQgbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKSBj
b25zdDsKICAgICB2b2lkIHNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQpOwog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBTY3JvbGxpbmdFdmVudFJlc3VsdCBoYW5kbGVX
aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwotCiAgICAgT3B0aW9uYWw8dW5z
aWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQoKTsKIAogICAgIHZvaWQgYXBwbHlMYXllclBv
c2l0aW9uc0ludGVybmFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggZWE0ZjYxMmU2
ZjIxNzk5ZDk2ZDQ3NDE0NDNiMGJhYWIzMTY2YjBmMy4uN2VlZjE3OTQ5OTUzY2QyY2VjNWQ4YjI1
Yzc5ZGI1ZGJjOGNkNTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMTUwLDkgKzE1
MCw5IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNhbkhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3CiAgICAgcmV0dXJuIGV2ZW50Q2FuU2Nyb2xs
Q29udGVudHMod2hlZWxFdmVudCk7CiB9CiAKLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpCitXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikKIHsKLSAgICBy
ZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50OworICAgIHJldHVy
biBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQ6OnVuaGFuZGxlZCgpOwogfQogCiBGbG9hdFBvaW50
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjbGFtcFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXgg
Yjc4M2FjOTJjZDRiMjgyZWUwZTk3YmNhOTVmZGZkMzlmOTljMjhmYS4uNDU4ZWI0MzU3ZmU0Mzc3
MTlhZTA0NDhkYzU1YWNkNTk0YjczMWEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC0zOSw2
ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2Nyb2xsaW5nVHJlZTsKIGNs
YXNzIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTsKK3N0cnVjdCBXaGVlbEV2ZW50SGFuZGxp
bmdSZXN1bHQ7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlIDogcHVibGljIFNjcm9sbGluZ1RyZWVOb2RlIHsKICAgICBmcmllbmQgY2xhc3MgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZTsKQEAgLTU1LDcgKzU2LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkQ29tcGxldGVDb21taXRGb3JOb2RlKCkgZmluYWw7CiAKICAgICB2aXJ0dWFs
IGJvb2wgY2FuSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25z
dDsKLSAgICB2aXJ0dWFsIFNjcm9sbGluZ0V2ZW50UmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CisgICAgdmlydHVhbCBXaGVlbEV2ZW50SGFuZGxpbmdS
ZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAogICAg
IEZsb2F0UG9pbnQgY3VycmVudFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJy
ZW50U2Nyb2xsUG9zaXRpb247IH0KICAgICBGbG9hdFBvaW50IGN1cnJlbnRTY3JvbGxPZmZzZXQo
KSBjb25zdCB7IHJldHVybiBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9u
KG1fY3VycmVudFNjcm9sbFBvc2l0aW9uLCB0b0Zsb2F0U2l6ZShtX3Njcm9sbE9yaWdpbikpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9s
bGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmNwcAppbmRleCA5M2M4MTYwNmY0NTk5NTZjMTYzZjNhYTFmNDQ2OTY4ZmFkNmVi
NGM5Li43ZjM1MTZkMjVkNDIxNTBjNTFkMzEyNGI3ODg2OWVmZmJkMTIwYzcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5jcHAKQEAgLTU1LDMxICs1NSwxNyBAQCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6On5UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUoKQogICAgIEFTU0VSVCghbV9zY3JvbGxpbmdDb29yZGluYXRvcik7CiB9
CiAKLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6dHJ5VG9IYW5k
bGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgQ29tcGxl
dGlvbkZ1bmN0aW9uJiYgY29tcGxldGlvbkZ1bmN0aW9uKQotewotICAgIGlmIChzaG91bGRIYW5k
bGVXaGVlbEV2ZW50U3luY2hyb25vdXNseSh3aGVlbEV2ZW50KSkKLSAgICAgICAgcmV0dXJuIFNj
cm9sbGluZ0V2ZW50UmVzdWx0OjpTZW5kVG9NYWluVGhyZWFkOwotCi0gICAgUmVmUHRyPFRocmVh
ZGVkU2Nyb2xsaW5nVHJlZT4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKLSAgICBTY3JvbGxpbmdUaHJl
YWQ6OmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzLCB3aGVlbEV2ZW50LCBjb21wbGV0aW9uRnVuYyA9
IFdURk1vdmUoY29tcGxldGlvbkZ1bmN0aW9uKV0gewotICAgICAgICBhdXRvIHJlc3VsdCA9IHBy
b3RlY3RlZFRoaXMtPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7Ci0gICAgICAgIGlmIChj
b21wbGV0aW9uRnVuYykKLSAgICAgICAgICAgIGNvbXBsZXRpb25GdW5jKHJlc3VsdCk7Ci0gICAg
fSk7Ci0gICAgCi0gICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpTZW5kVG9TY3JvbGxp
bmdUaHJlYWQ7Ci19Ci0KLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFRocmVhZGVkU2Nyb2xsaW5nVHJl
ZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQp
CitXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVX
aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKICAgICBB
U1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQoKSk7CiAgICAgcmV0dXJuIFNj
cm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiB9CiAKLVNjcm9sbGlu
Z0V2ZW50UmVzdWx0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVy
TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitib29sIFRo
cmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gZGlzYWxsb3dMYXRjaGluZ1Njb3BlKG1fYWxsb3dMYXRjaGluZywgZmFsc2UpOwotICAgIHJl
dHVybiBoYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOworICAgIGF1dG8gcmVzdWx0ID0gaGFu
ZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICByZXR1cm4gcmVzdWx0Lndhc0hhbmRsZWQ7
CiB9CiAKIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjppbnZhbGlkYXRlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgK
aW5kZXggN2M1YTM4MmUxYzExYTIyYzhkZWVjNDlhNmRiNjFkMDBkYmJiMTkyMi4uMzJkZDViYzdh
ZmE0OTYxMGQ4MzBhNjU3ZjRiNGFjNTE5ZTZiZjUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTQ1LDE0ICs0
NSw5IEBAIGNsYXNzIFRocmVhZGVkU2Nyb2xsaW5nVHJlZSA6IHB1YmxpYyBTY3JvbGxpbmdUcmVl
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UaHJlYWRlZFNjcm9sbGluZ1RyZWUoKTsKIAotICAg
IFNjcm9sbGluZ0V2ZW50UmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50Jikgb3ZlcnJpZGU7CisgICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CiAKLSAgICBTY3Jv
bGxpbmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYpOwotCi0gICAgLy8gQ2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJl
YWQuIFdpbGwgdHJ5IHRvIGhhbmRsZSB0aGUgd2hlZWwgZXZlbnQgb24gdGhlIHNjcm9sbGluZyB0
aHJlYWQuCi0gICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB3aGVlbCBldmVudCBjYW4gYmUgaGFu
ZGxlZCBvbiB0aGUgc2Nyb2xsaW5nIHRocmVhZCBhbmQgZmFsc2UgaWYgdGhlCi0gICAgLy8gZXZl
bnQgbXVzdCBiZSBzZW50IGFnYWluIHRvIHRoZSBXZWJDb3JlIGV2ZW50IGhhbmRsZXIuCi0gICAg
U2Nyb2xsaW5nRXZlbnRSZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYsIENvbXBsZXRpb25GdW5jdGlvbiYmKSBvdmVycmlkZTsKKyAgICBib29sIGhh
bmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7
CiAKICAgICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMu
aAppbmRleCBmMjE1NmFmN2E1NDc5YWM4M2U4ZjEwNDU4MjVlZTc4OTQxZjU4NmQzLi44MWZiMDk0
Y2YwNzQwNDA5ZjkxZTI3ZmE2YWE2MzVmZmMyYTFjMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMu
aApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRUcmVlU3RhdGVJZk5l
ZWRlZCgpIGZpbmFsOwogCiAgICAgLy8gSGFuZGxlIHRoZSB3aGVlbCBldmVudCBvbiB0aGUgc2Ny
b2xsaW5nIHRocmVhZC4gUmV0dXJucyB3aGV0aGVyIHRoZSBldmVudCB3YXMgaGFuZGxlZCBvciBu
b3QuCi0gICAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcm
LCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKyAgICBib29sIGhhbmRsZVdo
ZWVsRXZlbnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpIGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLm1tCmluZGV4IGJiMGYyZDk5OTI4NmU2Zjg3NTg5MTdmZmRkZDk2
YWUzMzRmZjA3ZWMuLmIyZDJiMmUyMGU3ZGQ2OTBmYTc2NmQyYmU0ZDUzMTE5YzI2MjI3MWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KQEAgLTczLDE5ICs3MywxOSBAQCB2b2lkIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjOjpwYWdlRGVzdHJveWVkKCkKICAgICB9KTsKIH0KIAotU2Nyb2xsaW5n
RXZlbnRSZXN1bHQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQoRnJh
bWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorYm9vbCBTY3Jv
bGxpbmdDb29yZGluYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcmLCBjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKICAgICBBU1NFUlQobV9wYWdlKTsKIAogICAgIGlmIChzY3JvbGxpbmdUcmVlKCktPndp
bGxXaGVlbEV2ZW50U3RhcnRTd2lwZUdlc3R1cmUod2hlZWxFdmVudCkpCi0gICAgICAgIHJldHVy
biBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CisgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Ny
b2xsaW5nVHJlZSA9IGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJl
ZSgpKTsKICAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1Ry
ZWUsIHdoZWVsRXZlbnRdIHsKICAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5oYW5kbGVX
aGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKHdoZWVsRXZlbnQpOwogICAgIH0pOwotICAgIHJldHVy
biBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQ7CisgICAgcmV0dXJuIHRydWU7
CiB9CiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnNjaGVkdWxlVHJlZVN0YXRlQ29t
bWl0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCmluZGV4IDE4
MmFhNjJjYmZkOGRjNGE1ZDc3NmQ1NTVhN2JhYTBkYmRjNDU2NGMuLmY1NmJlYzYyODA0Nzg2Y2Vh
N2ZjZTQ4OTRmNGE3YjA0MWM5NWJiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMuaApAQCAtNTEsNyArNTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjb21t
aXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRl
OwogICAgIHZvaWQgY29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRl
Tm9kZSYpIG92ZXJyaWRlOwogCi0gICAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgaGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKyAgICBXaGVlbEV2ZW50
SGFuZGxpbmdSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
KSBvdmVycmlkZTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwb3NpdGlvblJlbGF0ZWRM
YXllcnMoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU1hYy5tbQppbmRleCBjZTJiMjQ2NTNhMzkwZTVjYzM0Mjk5ZWU2ODZiZDYwNzE4OTg3NjVjLi5h
YzYzYThkYmQ1MGQ2NWMxZDQwN2IwMzE2Y2MyNmY4NmE1OTRkNmM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtMTE2LDEwICsxMTYsMTAgQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0ZUFmdGVyQ2hp
bGRyZW4oY29uc3QgU2Nyb2xsaW4KICAgICAgICAgdXBkYXRlTWFpbkZyYW1lUGluQW5kUnViYmVy
YmFuZFN0YXRlKCk7CiB9CiAKLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiB3aGVlbEV2ZW50KQorV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAgIGlmICghY2FuSGFuZGxlV2hlZWxFdmVudCh3aGVl
bEV2ZW50KSkKLSAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5k
bGVFdmVudDsKKyAgICAgICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6dW5oYW5k
bGVkKCk7CiAKICAgICBib29sIGhhbmRsZWQgPSBtX2RlbGVnYXRlLmhhbmRsZVdoZWVsRXZlbnQo
d2hlZWxFdmVudCk7CiAKQEAgLTEzMCw3ICsxMzAsNyBAQCBTY3JvbGxpbmdFdmVudFJlc3VsdCBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
CiAgICAgaWYgKG1fZGVsZWdhdGUuYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlKCkpCiAg
ICAgICAgIHNjcm9sbGluZ1RyZWUoKS5zZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhzY3JvbGxp
bmdOb2RlSUQoKSwgbV9kZWxlZ2F0ZS5hY3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JBeGlzKFNjcm9s
bEV2ZW50QXhpczo6SG9yaXpvbnRhbCksIG1fZGVsZWdhdGUuYWN0aXZlU2Nyb2xsU25hcEluZGV4
Rm9yQXhpcyhTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsKSk7CiAjZW5kaWYKLSAgICByZXR1cm4g
aGFuZGxlZCA/IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudCA6IFNjcm9sbGlu
Z0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudDsKKyAgICByZXR1cm4gV2hlZWxFdmVudEhh
bmRsaW5nUmVzdWx0OjpyZXN1bHQoaGFuZGxlZCk7CiB9CiAKIEZsb2F0UG9pbnQgU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6YWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBG
bG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXApIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaAppbmRleCAwNzFhMDk1YTk4
ZjIwMmE5N2ZhODI3ODExYjU5ZDVhOTE2OTJmYTUzLi40Y2Y3ZmU2Y2ZlZjg1NjdmMmNjY2E2NWUz
NDAyZmY0Y2NkYWYwNTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlTWFjLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVwb3Np
dGlvblNjcm9sbGluZ0xheWVycygpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVwb3NpdGlvblJlbGF0
ZWRMYXllcnMoKSBvdmVycmlkZTsKIAotICAgIFNjcm9sbGluZ0V2ZW50UmVzdWx0IGhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisgICAgV2hlZWxF
dmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50Jikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0K
aW5kZXggYTU0MDVhNTA4OTFhZjc4MzE1YzI4YTc3OWVjNGU5NjZiZmMzZjI2My4uOTQ1M2E1Y2Iz
MmFjNjVhYmQwNzIwZmFiMTk2YzM1OTdkMmZhYjY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KQEAgLTcyLDE4ICs3MiwxNyBAQCB2b2lkIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmNvbW1pdFN0YXRlQWZ0ZXJDaGls
ZHJlbihjb25zdCBTY3JvbAogICAgIH0KIH0KIAotU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQg
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAjaWYgRU5BQkxFKFNDUk9M
TElOR19USFJFQUQpCiAgICAgaWYgKGhhc1N5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucygpKQot
ICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OlNlbmRUb01haW5UaHJlYWQ7Cisg
ICAgICAgIHJldHVybiB7IHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZv
clNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2
ZW50RGlzcGF0Y2ggfSwgZmFsc2UgfTsKICNlbmRpZgogCiAgICAgaWYgKCFjYW5IYW5kbGVXaGVl
bEV2ZW50KHdoZWVsRXZlbnQpKQotICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6
OkRpZE5vdEhhbmRsZUV2ZW50OworICAgICAgICByZXR1cm4gV2hlZWxFdmVudEhhbmRsaW5nUmVz
dWx0Ojp1bmhhbmRsZWQoKTsKIAotICAgIGJvb2wgaGFuZGxlZCA9IG1fZGVsZWdhdGUuaGFuZGxl
V2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKLSAgICByZXR1cm4gaGFuZGxlZCA/IFNjcm9sbGluZ0V2
ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudCA6IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RI
YW5kbGVFdmVudDsKKyAgICByZXR1cm4gV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpyZXN1bHQo
bV9kZWxlZ2F0ZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpKTsKIH0KIAogRmxvYXRQb2lu
dCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjphZGp1c3RlZFNjcm9sbFBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxDbGFtcGluZyBjbGFtcCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcAppbmRleCBhNzBm
OThiM2FiMDA4MTc0NjdlYjVhYWU2MGQwNDVhYjcwNzgyZTM4Li43MTVkY2U4MmE5ZjI5ZDkwZjcw
NzVkMGRiNWM5MDMxZDFiM2IxNWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5p
Y29zaWEuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNv
c2lhOjpjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpCiAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWVD
b21taXR0ZXJUaW1lci5zdG9wKCk7CiB9CiAKLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcmLCBjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
Tmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcmLCBjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBB
U1NFUlQobV9wYWdlKTsKQEAgLTc4LDcgKzc4LDcgQEAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Ny
b2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGMK
ICAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUgPSBt
YWtlUmVmKGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oKnNjcm9sbGluZ1RyZWUoKSkp
LCB3aGVlbEV2ZW50XSB7CiAgICAgICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+aGFuZGxlV2hl
ZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICB9KTsKLSAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRS
ZXN1bHQ6OkRpZEhhbmRsZUV2ZW50OworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6c2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29y
ZGluYXRvck5pY29zaWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmgKaW5kZXggMjM3ZDdjMmU5MjRjZmE1YzIxYjM5
Y2NlYzc4ZTg3NWEzNGEzNzI1Ni4uNzFjYzlmYTUyNDBjNmFhNzBiODk3MDk3YjliNGNmODNmZmY1
Y2JkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9T
Y3JvbGxpbmdDb29yZGluYXRvck5pY29zaWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5oCkBAIC00NCw3ICs0
NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKSBvdmVy
cmlkZTsKIAotICAgIFNjcm9sbGluZ0V2ZW50UmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoRnJhbWVW
aWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisgICAgYm9vbCBoYW5k
bGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJy
aWRlOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
Tmljb3NpYS5jcHAKaW5kZXggMzQwMDJhYWYzM2U3OTYzZjUxZjFhMzlhM2FhMjNmODZhNmFhYzZi
Ni4uMzUyNTIxY2ViNDk5NjEwZmVhNTg0ODFkZTRjZDczMzY5MDdiMjU0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKQEAg
LTExNCwxMCArMTE0LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5p
Y29zaWE6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvCiAgICAgfQogfQogCi1T
Y3JvbGxpbmdFdmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3Np
YTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQp
CitXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU5pY29zaWE6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50KQogewogICAgIGlmICghY2FuSGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KSkKLSAg
ICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudDsKKyAg
ICAgICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6dW5oYW5kbGVkKCk7CiAKICAg
ICBpZiAod2hlZWxFdmVudC5kZWx0YVgoKSB8fCB3aGVlbEV2ZW50LmRlbHRhWSgpKSB7CiAgICAg
ICAgIGF1dG8qIHNjcm9sbExheWVyID0gc3RhdGljX2Nhc3Q8Tmljb3NpYTo6UGxhdGZvcm1MYXll
cio+KHNjcm9sbGVkQ29udGVudHNMYXllcigpKTsKQEAgLTE0NSw3ICsxNDUsNyBAQCBTY3JvbGxp
bmdFdmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6aGFu
ZGxlV2hlZWxFdmVudChjbwogI2VuZGlmCiAKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBy
ZXR1cm4gd2hldGhlciB0aGUgZXZlbnQgd2FzIGhhbmRsZWQuCi0gICAgcmV0dXJuIFNjcm9sbGlu
Z0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsKKyAgICByZXR1cm4gV2hlZWxFdmVudEhhbmRs
aW5nUmVzdWx0OjpoYW5kbGVkKCk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU5pY29zaWE6OnN0b3BTY3JvbGxBbmltYXRpb25zKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU5pY29zaWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaAppbmRleCA3NmE2OWQ1NzM5
NWNiMDQ0OTA5M2RkMmZmNzRkNjkxNDQ4OWJkYjUwLi42NDczYTRiNTZlMTAzMWI3Mzc5OGFjZTM4
N2ZhZWM4YTg0ZGM0OWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlTmljb3NpYS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92
ZXJyaWRlOwogICAgIHZvaWQgY29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGlu
Z1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogCi0gICAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgaGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKyAgICBXaGVl
bEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc3RvcFNjcm9sbEFuaW1hdGlvbnMoKSBvdmVy
cmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3Np
YS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVOaWNvc2lhLmNwcAppbmRleCA2YzRlNDQ1OThmNjZhNTc3MzM2MzY1MDQ4NzU1OTc1
NDNhN2VmZGNjLi4wYjI1MGQxNzYzODMyMzQ3ZTUyYmUzZThhYmQxZDAwMzA2MDc1ZWExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVO
aWNvc2lhLmNwcApAQCAtOTksMTAgKzk5LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU5pY29zaWE6OnJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKQogICAgICAg
ICB9KTsKIH0KIAotU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU5pY29zaWE6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiB3aGVlbEV2ZW50KQorV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKICAgICBpZiAoIWNhbkhhbmRsZVdoZWVsRXZl
bnQod2hlZWxFdmVudCkpCi0gICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlk
Tm90SGFuZGxlRXZlbnQ7CisgICAgICAgIHJldHVybiBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQ6
OnVuaGFuZGxlZCgpOwogCiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkgfHwgd2hlZWxFdmVu
dC5kZWx0YVkoKSkgewogICAgICAgICBhdXRvKiBzY3JvbGxMYXllciA9IHN0YXRpY19jYXN0PE5p
Y29zaWE6OlBsYXRmb3JtTGF5ZXIqPihzY3JvbGxDb250YWluZXJMYXllcigpKTsKQEAgLTEyOSw3
ICsxMjksNyBAQCBTY3JvbGxpbmdFdmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudAogICAgIH0KICNlbmRpZgogCi0gICAg
cmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsKKyAgICByZXR1cm4g
V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpoYW5kbGVkKCk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OnN0b3BTY3JvbGxBbmltYXRpb25zKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5p
Y29zaWEuaAppbmRleCBlNmY0NjFhOWY2ZTZhM2Y0NzJjZDg2MGNkZjVmOGE3NmFlMWQ5NmQ2Li5h
Y2RjODJhYzE1NmNjNzY3MDNjZTRjZDQ5OWVlY2FkZmFmZDQ5NWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVOaWNvc2lhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5oCkBAIC00
OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlcG9zaXRpb25TY3JvbGxpbmdMYXll
cnMoKSBvdmVycmlkZTsKIAotICAgIFNjcm9sbGluZ0V2ZW50UmVzdWx0IGhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisgICAgV2hlZWxFdmVudEhh
bmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIHN0b3BTY3JvbGxBbmltYXRpb25zKCkgb3ZlcnJpZGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCmluZGV4
IDkxZDY4OGYzYWMyNDFjY2ZjNTQyMWM2Y2ViYWE1MTY4NDJjNzE2YzIuLjhhMTVjOGFjNDQ3MDFh
YzczMGNmOGJmM2ExZjBiOWMwMDljMTJlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcApAQCAtNTksNCArNTksMTQgQEAgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVu
dCkKICAgICByZXR1cm4gdHM7CiB9CiAKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgc3RlcHMpCit7CisgICAgc3dpdGNoIChz
dGVwcykgeworICAgIGNhc2UgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhy
ZWFkOiB0cyA8PCAic2Nyb2xsaW5nIHRocmVhZCI7IGJyZWFrOworICAgIGNhc2UgV2hlZWxFdmVu
dFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZzogdHMgPDwgIm1haW4gdGhy
ZWFkIHNjcm9sbGluZyI7IGJyZWFrOworICAgIGNhc2UgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
czo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2g6IHRzIDw8ICJtYWluIHRocmVhZCBET00g
ZXZuZXQgZGlzcGF0Y2giOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hl
ZWxFdmVudC5oCmluZGV4IDE4YTM1YTExMmU5OWE4ZDU0YjVmZDQ4NTIxMGI0NWI2NTVjNWQyMDIu
LjJjZTA2MGUzMzY1OWY2ZWZkM2Q0MGY5YzIxOThkNDVhN2IyNzE1M2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC00MCw2ICs0MCwxMiBAQCBj
bGFzcyBUZXh0U3RyZWFtOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xhc3MgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwcyA6IHVpbnQ4X3QgeworICAgIFNjcm9sbGluZ1RocmVhZCAg
ICAgICAgICAgICAgICAgPSAxIDw8IDAsCisgICAgTWFpblRocmVhZEZvclNjcm9sbGluZyAgICAg
ICAgICA9IDEgPDwgMSwKKyAgICBNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCAgID0gMSA8
PCAyLAorfTsKKwogLy8gVGhlIFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50IGlzIGEgZmluZS1ncmFp
bmVkIGV2ZW50IHRoYXQgc3BlY2lmaWVzIHRoZSBwcmVjaXNlIG51bWJlciBvZiBwaXhlbHMgdG8g
c2Nyb2xsLgogLy8gSXQgaXMgc2VudCBkaXJlY3RseSBieSB0b3VjaCBwYWRzIG9uIG1hY09TLCBv
ciBzeW50aGVzaXplZCB3aGVuIHBsYXRmb3JtcyBnZW5lcmF0ZSBsaW5lLWJ5LWxpbmUgc2Nyb2xs
aW5nIGV2ZW50cy4KIC8vCkBAIC0yNTQsNSArMjYwLDYgQEAgaW5saW5lIEZsb2F0UG9pbnQgUGxh
dGZvcm1XaGVlbEV2ZW50Ojpzd2lwZVZlbG9jaXR5KCkgY29uc3QKICNlbmRpZiAvLyBFTkFCTEUo
S0lORVRJQ19TQ1JPTExJTkcpCiAKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKK1dURjo6VGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzKTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDI5NTM3NzJiMjE2ZjVkNGIzOTM5YmNlNzk2NWU0
N2E2MDJhNTE0ODcuLjljY2IwY2I5MTAwNWNiMjkyOTEzZmQ1M2M2NzRkZmY4MDU3NmYwNjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAg
LTE3NiwxMCArMTc2LDIwIEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
ZXN0YWJsaXNoTGF5ZXJUcmVlU2Nyb2xsaW5nUmVsYXRpb25zKGNvbnN0CiAKICNlbmRpZgogCi1i
b29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKK2Jvb2wgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdo
ZWVsRXZlbnQpCiB7Ci0gICAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgcmVzdWx0ID0gbV9zY3JvbGxp
bmdUcmVlLT50cnlUb0hhbmRsZVdoZWVsRXZlbnQoZXZlbnQsIG51bGxwdHIpOwotICAgIHJldHVy
biByZXN1bHQgPT0gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZEhhbmRsZUV2ZW50OyAvLyBGSVhN
RTogaGFuZGxlIG90aGVyIHZhbHVlcy4KKyAgICBpZiAoIW1fc2Nyb2xsaW5nVHJlZSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBwcm9jZXNzaW5nU3RlcHMgPSBtX3Njcm9sbGlu
Z1RyZWUtPmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nKHdoZWVsRXZlbnQpOworICAgIGlm
IChwcm9jZXNzaW5nU3RlcHMuY29udGFpbnNBbnkoeyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBz
OjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWlu
VGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWYgKG1fc2Nyb2xsaW5nVHJlZS0+d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSh3
aGVlbEV2ZW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byByZXN1bHQgPSBt
X3Njcm9sbGluZ1RyZWUtPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CisgICAgcmV0dXJu
IHJlc3VsdC53YXNIYW5kbGVkOwogfQogCiB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHk6OmhhbmRsZU1vdXNlRXZlbnQoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50
JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAppbmRleCBkYjRhM2E4NjFmMGNi
NGM3YmIxN2IzMDNlMjg1Y2ZkOGJhMzliZWFiLi40MTgzZWEyNDk0ZGQ2YmJhYzkzZGViNjZlNTU5
ZWU0NGI3ZjVhNWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC02MSwxOCAr
NjEsNiBAQCBSZW1vdGVTY3JvbGxpbmdUcmVlOjp+UmVtb3RlU2Nyb2xsaW5nVHJlZSgpCiB7CiB9
CiAKLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFJlbW90ZVNjcm9sbGluZ1RyZWU6OnRyeVRvSGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIENvbXBsZXRp
b25GdW5jdGlvbiYmKQotewotICAgIGlmIChzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25v
dXNseSh3aGVlbEV2ZW50KSkKLSAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpT
ZW5kVG9NYWluVGhyZWFkOwotCi0gICAgaWYgKHdpbGxXaGVlbEV2ZW50U3RhcnRTd2lwZUdlc3R1
cmUod2hlZWxFdmVudCkpCi0gICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlk
Tm90SGFuZGxlRXZlbnQ7Ci0KLSAgICBoYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwotICAg
IHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQ7Ci19Ci0KICNpZiBQ
TEFURk9STShNQUMpCiB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRQ
aGFzZShTY3JvbGxpbmdOb2RlSUQsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggNThhZjJlZTYzYmQ2ZmMxNjJhMTM5YjRhODliMmM2OGVl
MjM0ZjRlZS4uNjU3NjBmY2ExMDk1ZTYzMWU4MDY2OGQyZDdhYjc4ODhiMDI2YjI3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC00NSw3ICs0NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5SZW1vdGVTY3JvbGxpbmdUcmVlKCk7CiAKICAgICBib29sIGlzUmVtb3RlU2Nyb2xsaW5n
VHJlZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KLSAgICBXZWJDb3JlOjpTY3Jv
bGxpbmdFdmVudFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViQ29yZTo6UGxh
dGZvcm1XaGVlbEV2ZW50JiwgQ29tcGxldGlvbkZ1bmN0aW9uJiYpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudCYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
bWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcAppbmRleCA5YTA0OTA1ZWU4ZjY1MmMxYWJiN2Y0MDZj
YmFlMThmYjUxMGFiNTNhLi40M2VkNzM1ZDQyMTIwMTMzZWViZmE5Zjc0MzE3ZjNhYmFmNjUwMjUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFj
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKQEAgLTcyLDExICs3MiwxMSBAQCB2b2lkIFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWM6OnJlcG9zaXRpb25SZWxhdGVkTGF5
ZXJzKCkKICAgICAgICAgbV9zY3JvbGxlclBhaXItPnVwZGF0ZVZhbHVlcygpOwogfQogCi1TY3Jv
bGxpbmdFdmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFj
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkK
K1doZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCkKIHsKICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpoYW5k
bGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogCi0gICAgcmV0dXJuIG1fc2Nyb2xsZXJQYWlyLT5o
YW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpID8gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZEhh
bmRsZUV2ZW50IDogU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50OworICAg
IHJldHVybiBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQ6OnJlc3VsdChtX3Njcm9sbGVyUGFpci0+
aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KSk7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlTW91c2VFdmVudChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oCmluZGV4IDhiZWMxZWE0
MDQwYjg2YTM5ZDk3YzhlOTE5YzI4Y2YzOGQ0MzYzNTAuLmY3MDA4YjE0YmYwOWI4ZGJhMzBjYWM5
ODNkNjU3YzVjZjAyMjI2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oCkBAIC00NCw3ICs0NCw3IEBA
IHByaXZhdGU6CiAgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYyhX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNv
cmU6OlNjcm9sbGluZ05vZGVJRCk7CiAKICAgICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRy
ZW4oY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7Ci0gICAgV2Vi
Q29yZTo6U2Nyb2xsaW5nRXZlbnRSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJDb3Jl
OjpQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpXaGVlbEV2ZW50
SGFuZGxpbmdSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkg
b3ZlcnJpZGU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsZXJQYWlyTWFjPiBtX3Njcm9s
bGVyUGFpcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwCmluZGV4IDMxNzgzOTBjYzIwNWMw
NDdhOThmZjVhZGM3YTk2MTAxNWUwNjZmNDkuLjc0M2RhM2VlNjhiOTI2NzRlMDVkOTVkNzBlNWRl
YzUyZGVkYzFjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcApAQCAtNzIsMTEgKzcy
LDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6
cmVwb3NpdGlvblJlbGF0ZWRMYXllcnMoKQogICAgIG1fc2Nyb2xsZXJQYWlyLT51cGRhdGVWYWx1
ZXMoKTsKIH0KIAotU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCitXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKIAotICAg
IHJldHVybiBtX3Njcm9sbGVyUGFpci0+aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KSA/IFNj
cm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudCA6IFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWROb3RIYW5kbGVFdmVudDsKKyAgICByZXR1cm4gV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0
OjpyZXN1bHQobV9zY3JvbGxlclBhaXItPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCkpOwog
fQogCiBib29sIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWM6Omhh
bmRsZU1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVSZW1vdGVNYWMuaAppbmRleCAyODRhNmVjMzEzZDJjZDBhOTdmYTE3ZTFjYjg2Mjcz
YjA1OGRlMjdhLi41YzQ5OGJkZjBhYjRjZmE3NGIzMjdmYmYwOTg5YzUxYzVlNDkwMzk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVSZW1vdGVNYWMuaApAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOgogICAgIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CiAKICAgICB2b2lkIGNvbW1pdFN0
YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJikgb3Zl
cnJpZGU7Ci0gICAgV2ViQ29yZTo6U2Nyb2xsaW5nRXZlbnRSZXN1bHQgaGFuZGxlV2hlZWxFdmVu
dChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKyAgICBXZWJD
b3JlOjpXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJD
b3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlcG9zaXRpb25S
ZWxhdGVkTGF5ZXJzKCkgb3ZlcnJpZGU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsZXJQ
YWlyTWFjPiBtX3Njcm9sbGVyUGFpcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDBlM2VkMjBjYjk2MGFlN2ZiYWFh
ZjNhZmZkOTYzZTBiYjM0YjM0MGIuLjc4NWEyY2ViMWU5MTVlNTU3MDlkMmM1NDYxYTM1Y2QzNDg1
MzliMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50
RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmNwcApAQCAtMTIxLDggKzEyMSwxMyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hl
cjo6d2hlZWxFdmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYldoZWVsRXZlbnQm
IHdoZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKLSAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwotICAgIGlmIChSZWZQdHI8VGhyZWFk
ZWRTY3JvbGxpbmdUcmVlPiBzY3JvbGxpbmdUcmVlID0gbV9zY3JvbGxpbmdUcmVlcy5nZXQocGFn
ZUlEKSkgeworICAgIGF1dG8gc2VudFRvU2Nyb2xsaW5nVGhyZWFkID0gWyZdKCkgeworICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOworCisgICAgICAgIGF1
dG8gc2Nyb2xsaW5nVHJlZSA9IG1fc2Nyb2xsaW5nVHJlZXMuZ2V0KHBhZ2VJRCk7CisgICAgICAg
IGlmICghc2Nyb2xsaW5nVHJlZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
CiAgICAgICAgIC8vIEZJWE1FOiBJdCdzIHByZXR0eSBob3JyaWJsZSB0aGF0IHdlJ3JlIHVwZGF0
aW5nIHRoZSBiYWNrL2ZvcndhcmQgc3RhdGUgaGVyZS4KICAgICAgICAgLy8gV2ViQ29yZSBzaG91
bGQgYWx3YXlzIGtub3cgdGhlIGN1cnJlbnQgc3RhdGUgYW5kIGtub3cgd2hlbiBpdCBjaGFuZ2Vz
IHNvIHRoZQogICAgICAgICAvLyBzY3JvbGxpbmcgdHJlZSBjYW4gYmUgbm90aWZpZWQuCkBAIC0x
MzAsMjggKzEzNSwyNiBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudChQYWdlSWRl
bnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZQogICAgICAgICBpZiAocGxh
dGZvcm1XaGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbikK
ICAgICAgICAgICAgIHNjcm9sbGluZ1RyZWUtPnNldE1haW5GcmFtZUNhblJ1YmJlckJhbmQoeyBj
YW5SdWJiZXJCYW5kQXRUb3AsIGNhblJ1YmJlckJhbmRBdFJpZ2h0LCBjYW5SdWJiZXJCYW5kQXRC
b3R0b20sIGNhblJ1YmJlckJhbmRBdExlZnQgfSk7CiAKLSAgICAgICAgU2Nyb2xsaW5nRXZlbnRS
ZXN1bHQgcmVzdWx0ID0gc2Nyb2xsaW5nVHJlZS0+dHJ5VG9IYW5kbGVXaGVlbEV2ZW50KHBsYXRm
b3JtV2hlZWxFdmVudCwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgd2hlZWxFdmVu
dCwgcGFnZUlEXShTY3JvbGxpbmdFdmVudFJlc3VsdCByZXN1bHQpIHsKLSAgICAgICAgICAgIEFT
U0VSVChTY3JvbGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRocmVhZCgpKTsKLSAgICAgICAgICAgIEFT
U0VSVChyZXN1bHQgIT0gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OlNlbmRUb1Njcm9sbGluZ1RocmVh
ZCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gU2Nyb2xsaW5nRXZl
bnRSZXN1bHQ6OlNlbmRUb01haW5UaHJlYWQpIHsKLSAgICAgICAgICAgICAgICBSdW5Mb29wOjpt
YWluKCkuZGlzcGF0Y2goW2lubmVyUHJvdGVjdGVkVGhpcyA9IHByb3RlY3RlZFRoaXMuY29weVJl
ZigpLCBwYWdlSUQsIHdoZWVsRXZlbnRdKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgICAg
IGlubmVyUHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hXaGVlbEV2ZW50KHBhZ2VJRCwgd2hlZWxFdmVu
dCk7Ci0gICAgICAgICAgICAgICAgfSk7CisgICAgICAgIGF1dG8gcHJvY2Vzc2luZ1N0ZXBzID0g
c2Nyb2xsaW5nVHJlZS0+ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcocGxhdGZvcm1XaGVl
bEV2ZW50KTsKKyAgICAgICAgaWYgKCFwcm9jZXNzaW5nU3RlcHMuY29udGFpbnMoV2hlZWxFdmVu
dFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFtzY3JvbGxpbmdUcmVl
LCB3aGVlbEV2ZW50LCBwbGF0Zm9ybVdoZWVsRXZlbnQsIHBhZ2VJRCwgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHNjcm9sbGluZ1Ry
ZWUtPmhhbmRsZVdoZWVsRXZlbnQocGxhdGZvcm1XaGVlbEV2ZW50KTsKKworICAgICAgICAgICAg
aWYgKHJlc3VsdC5uZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkpIHsKKyAgICAgICAgICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5kaXNwYXRjaFdoZWVsRXZlbnRWaWFNYWluVGhyZWFkKHBhZ2VJRCwg
d2hlZWxFdmVudCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBzZW5kRGlkUmVjZWl2ZUV2ZW50KHBhZ2VJRCwgd2hlZWxF
dmVudC50eXBlKCksIHJlc3VsdCA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZl
bnQpOworCisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5zZW5kRGlkUmVjZWl2ZUV2ZW50KHBh
Z2VJRCwgd2hlZWxFdmVudC50eXBlKCksIHJlc3VsdC53YXNIYW5kbGVkKTsKICAgICAgICAgfSk7
CiAKLSAgICAgICAgaWYgKHJlc3VsdCA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6U2VuZFRvU2Ny
b2xsaW5nVGhyZWFkKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9KCk7CiAKLSAgICAgICAgaWYgKHJlc3VsdCA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6
RGlkSGFuZGxlRXZlbnQgfHwgcmVzdWx0ID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RI
YW5kbGVFdmVudCkgewotICAgICAgICAgICAgc2VuZERpZFJlY2VpdmVFdmVudChwYWdlSUQsIHdo
ZWVsRXZlbnQudHlwZSgpLCByZXN1bHQgPT0gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZEhhbmRs
ZUV2ZW50KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KKyAgICBpZiAo
c2VudFRvU2Nyb2xsaW5nVGhyZWFkKQorICAgICAgICByZXR1cm47CiAjZWxzZQogICAgIFVOVVNF
RF9QQVJBTShjYW5SdWJiZXJCYW5kQXRMZWZ0KTsKICAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVy
QmFuZEF0UmlnaHQpOwpAQCAtMTU5LDkgKzE2Miw3IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3
aGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hl
CiAgICAgVU5VU0VEX1BBUkFNKGNhblJ1YmJlckJhbmRBdEJvdHRvbSk7CiAjZW5kaWYKIAotICAg
IFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBwYWdlSUQsIHdoZWVsRXZlbnRdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb3RlY3RlZFRoaXMt
PmRpc3BhdGNoV2hlZWxFdmVudChwYWdlSUQsIHdoZWVsRXZlbnQpOwotICAgIH0pOyAKKyAgICBk
aXNwYXRjaFdoZWVsRXZlbnRWaWFNYWluVGhyZWFkKHBhZ2VJRCwgd2hlZWxFdmVudCk7CiB9CiAK
ICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQpAQCAtMjMxLDYgKzIzMiwxNCBAQCB2b2lk
IEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hUb3VjaEV2ZW50cygpCiB9CiAjZW5kaWYKIAordm9p
ZCBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoV2hlZWxFdmVudFZpYU1haW5UaHJlYWQoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50
KQoreworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOworICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwYWdlSUQsIHdoZWVs
RXZlbnRdKCkgbXV0YWJsZSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoV2hlZWxF
dmVudChwYWdlSUQsIHdoZWVsRXZlbnQpOworICAgIH0pOworfQorCiB2b2lkIEV2ZW50RGlzcGF0
Y2hlcjo6ZGlzcGF0Y2hXaGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2Vi
V2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuaAppbmRleCBjNzk0NmI3MzcxYTcxNDg1OWE2NTRkOWVlOGJjOWM2YTk1YTZhNGNlLi44ZmMy
MWI0NzFiMDE5YzEyYWE2MzExYmQwYWM0ZDI2YjBiMjg1OTQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaApAQCAtODcsNiArODcs
OCBAQCBwcml2YXRlOgogCiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFk
LgogICAgIHZvaWQgZGlzcGF0Y2hXaGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBj
b25zdCBXZWJXaGVlbEV2ZW50Jik7CisgICAgdm9pZCBkaXNwYXRjaFdoZWVsRXZlbnRWaWFNYWlu
VGhyZWFkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJXaGVlbEV2ZW50Jik7CisK
ICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIGRpc3BhdGNoVG91Y2hFdmVu
dHMoKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400520</attachid>
            <date>2020-05-28 16:05:45 -0700</date>
            <delta_ts>2020-05-29 07:56:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212455-20200528160544.patch</filename>
            <type>text/plain</type>
            <size>41698</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYyMDUxMTNkNDkyNGEx
YWQ1Mzk4NTdiMGYwZDM4ZWVmMGIyNzc3NC4uYTgwMzYzZmZhNTQ5OGRjNWUxNGJmN2U1ZjI0MWI0
OTQzZDg2OWIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIwLTA1LTI4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFByZXBhcmUgZm9y
IGFzeW5jIHNjcm9sbGluZyBpbiBwYXNzaXZlIHdoZWVsIGV2ZW50IGhhbmRsZXIgcmVnaW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNDU1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xhcmlmeSB0
aGUgcHJvY2Vzc2luZyBmb3Igd2hlZWwgZXZlbnRzIGJ5IGFkZGluZyBPcHRpb25TZXQ8V2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwcz4sCisgICAgICAgIHdoaWNoIHdpbGwsIGluIGZ1dHVyZSwgYWxs
b3cgdXMgdG8gZGVzY3JpYmUgdGhlIHByb2Nlc3NpbmcgZm9yIGFuIGV2ZW50IGluIHRoZSBwYXNz
aXZlCisgICAgICAgIGV2ZW50IGhhbmRsZXIgcmVnaW9uIHdoaWNoIGRvZXMgc2Nyb2xsaW5nIG9u
IHRoZSBzY3JvbGxpbmcgdGhyZWFkLCBhbmQgaXMgdGhlbiBzZW50CisgICAgICAgIHRvIHRoZSBt
YWluIHRocmVhZCBmb3IgRE9NIGV2ZW50IGRpc3BhdGNoLgorICAgICAgICAKKyAgICAgICAgUmVt
b3ZlZCBTY3JvbGxpbmdFdmVudFJlc3VsdCwgd2hpY2ggY29uZmxhdGVkICJoYW5kbGVkIiB3aXRo
ICJzZW5kIHRvIGFub3RoZXIgdGhyZWFkIi4KKyAgICAgICAgVGhlIHRocmVhZCBzZW5kaW5nIGJl
aGF2aW9yIGlzIG5vdyBlbmNvZGVkIGluIHRoZSBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzLCBh
bmQgd2UgY2FuIGp1c3QKKyAgICAgICAgdXNlIGEgYm9vbCBmb3IgaGFuZGxlZC4KKyAgICAgICAg
CisgICAgICAgIFNjcm9sbGluZyB0cmVlIGFuZCBub2RlIGhhbmRsZVdoZWVsRXZlbnQoKSBmdW5j
dGlvbnMgcmV0dXJuIGEgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0LCB3aGljaAorICAgICAgICBp
cyBhIHR1cGxlIG9mIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBhbmQgJ2hh
bmRsZWQnLCBhbGxvd2luZyBmb3IgYSBub2RlIHdpdGgKKyAgICAgICAgYmFja2dyb3VuZC1hdHRh
Y2htZW50OmZpeGVkIHRvIGFkZCB0aGUgInNlbmQgdG8gbWFpbiB0aHJlYWQiIHByb2Nlc3Npbmcg
c3RlcC4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6d2hlZWxFdmVudCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvclR5cGVzLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2
ZW50UHJvY2Vzc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVX
aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRs
ZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50SGFuZGxp
bmdSZXN1bHQ6Om5lZWRzTWFpblRocmVhZFByb2Nlc3NpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpoYW5kbGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OldoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6dW5oYW5kbGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OldoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6cmVzdWx0KToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFp
blRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRsZVdo
ZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9y
PDwpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorCiAyMDIwLTA1
LTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNp
bXBsaWZ5IEV2ZW50RGlzcGF0Y2hlciB3aGVlbCBldmVudCBkaXNwYXRjaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3
MGNhMDZiZWE1ODQzNDdiNmZjODYzNzlkNzM4ZDFkZTU3ZWY5MTg2Li44NjIzZTQ1NTdjNTM4Njhk
NDllZDdhM2Y0ZmRhMjAxN2ZkNjMxNDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIw
LTA1LTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFByZXBhcmUgZm9yIGFzeW5jIHNjcm9sbGluZyBpbiBwYXNzaXZlIHdoZWVsIGV2ZW50IGhhbmRs
ZXIgcmVnaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEyNDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ2xhcmlmeSB0aGUgcHJvY2Vzc2luZyBmb3Igd2hlZWwgZXZlbnRzIGJ5IGFkZGluZyBPcHRp
b25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4sCisgICAgICAgIHdoaWNoIHdpbGwsIGlu
IGZ1dHVyZSwgYWxsb3cgdXMgdG8gZGVzY3JpYmUgdGhlIHByb2Nlc3NpbmcgZm9yIGFuIGV2ZW50
IGluIHRoZSBwYXNzaXZlCisgICAgICAgIGV2ZW50IGhhbmRsZXIgcmVnaW9uIHdoaWNoIGRvZXMg
c2Nyb2xsaW5nIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkLCBhbmQgaXMgdGhlbiBzZW50CisgICAg
ICAgIHRvIHRoZSBtYWluIHRocmVhZCBmb3IgRE9NIGV2ZW50IGRpc3BhdGNoLgorICAgICAgICAK
KyAgICAgICAgUmVtb3ZlZCBTY3JvbGxpbmdFdmVudFJlc3VsdCwgd2hpY2ggY29uZmxhdGVkICJo
YW5kbGVkIiB3aXRoICJzZW5kIHRvIGFub3RoZXIgdGhyZWFkIi4KKyAgICAgICAgVGhlIHRocmVh
ZCBzZW5kaW5nIGJlaGF2aW9yIGlzIG5vdyBlbmNvZGVkIGluIHRoZSBXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzLCBhbmQgd2UgY2FuIGp1c3QKKyAgICAgICAgdXNlIGEgYm9vbCBmb3IgaGFuZGxl
ZC4KKyAgICAgICAgCisgICAgICAgIFNjcm9sbGluZyB0cmVlIGFuZCBub2RlIGhhbmRsZVdoZWVs
RXZlbnQoKSBmdW5jdGlvbnMgcmV0dXJuIGEgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0LCB3aGlj
aAorICAgICAgICBpcyBhIHR1cGxlIG9mIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0
ZXBzPiBhbmQgJ2hhbmRsZWQnLCBhbGxvd2luZyBmb3IgYSBub2RlIHdpdGgKKyAgICAgICAgYmFj
a2dyb3VuZC1hdHRhY2htZW50OmZpeGVkIHRvIGFkZCB0aGUgInNlbmQgdG8gbWFpbiB0aHJlYWQi
IHByb2Nlc3Npbmcgc3RlcC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVNYWMuY3BwOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlUmVtb3RlTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMv
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWM6Omhh
bmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFj
L1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KToKKwogMjAyMC0wNS0yOCAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBFdmVudERp
c3BhdGNoZXIgd2hlZWwgZXZlbnQgZGlzcGF0Y2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApp
bmRleCA4OTM2NjA1MjZlOGQ1NWI0NGMxODA5OWUzOTVmOTk2NTU0NzJkZDgyLi5mMTZhZjE2ZjYz
MDYyYWM2MmZlMTEyNjFhYjRjNmE3MTEyYzIxNjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCkBAIC01MDkxLDcgKzUwOTEsNyBAQCBib29sIEZyYW1lVmlldzo6d2hlZWxFdmVudChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKICAgICBpZiAoYXV0byBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKCkpIHsKICAgICAgICAgaWYgKHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5jb29y
ZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldygqdGhpcykpCi0gICAgICAgICAgICByZXR1cm4g
c2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmhhbmRsZVdoZWVsRXZlbnQoKnRoaXMsIHdoZWVsRXZlbnQp
ICE9IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudDsKKyAgICAgICAgICAg
IHJldHVybiBzY3JvbGxpbmdDb29yZGluYXRvci0+aGFuZGxlV2hlZWxFdmVudCgqdGhpcywgd2hl
ZWxFdmVudCk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDAwNWJjYzU5ZWE3ZWJhZTU3
ZTYwZDE2MThhMjM5MjQxMjBiNTBjMWMuLmYxYzM3OGEwMmU1ZTc5ZWJkNGQ3ZjUyZjJiODY0ZTMw
OThmNzA3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHB1YmxpYzoKICAgICAvLyBU
aGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgY3VycmVudGx5IHVuaXF1ZSB0byB0aGUgdGhyZWFk
ZWQgc2Nyb2xsaW5nIGFyY2hpdGVjdHVyZS4gCiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyZWVT
dGF0ZUlmTmVlZGVkKCkgeyB9CiAgICAgdmlydHVhbCBib29sIHJlcXVlc3RTY3JvbGxQb3NpdGlv
blVwZGF0ZShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IEludFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNj
cm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6
Q2xhbXBlZCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIFNjcm9sbGluZ0V2ZW50UmVz
dWx0IGhhbmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JikgeyByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50OyB9Cisg
ICAgdmlydHVhbCBib29sIGhhbmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JikgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIENyZWF0ZSBhbiB1bnBh
cmVudGVkIG5vZGUuCiAgICAgdmlydHVhbCBTY3JvbGxpbmdOb2RlSUQgY3JlYXRlTm9kZShTY3Jv
bGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5ld05vZGVJRCkgeyByZXR1cm4gbmV3Tm9k
ZUlEOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvclR5cGVzLmgKaW5kZXggMWNjYjM5NTkzZThhZjdkMTNmM2E2N2UyN2Ux
ZDlmYmJkZjEwN2I1ZC4uZjkyZjUwYjlkNDQ3YjczNTM2YmViNjE5MTI0YzgzOWRkYmIxNzJiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yVHlwZXMuaApAQCAtOTUsMTMgKzk1LDYgQEAgc3RydWN0IFNjcm9sbGFibGVB
cmVhUGFyYW1ldGVycyB7CiAgICAgfQogfTsKIAotZW51bSBjbGFzcyBTY3JvbGxpbmdFdmVudFJl
c3VsdCB7Ci0gICAgRGlkTm90SGFuZGxlRXZlbnQsCi0gICAgRGlkSGFuZGxlRXZlbnQsCi0gICAg
U2VuZFRvU2Nyb2xsaW5nVGhyZWFkLAotICAgIFNlbmRUb01haW5UaHJlYWQsCi19OwotCiBlbnVt
IGNsYXNzIFZpZXdwb3J0UmVjdFN0YWJpbGl0eSB7CiAgICAgU3RhYmxlLAogICAgIFVuc3RhYmxl
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApp
bmRleCAzYWYwNjg3MTM0MWFkMjhkNmIwMDUzMzIwY2RjMDhlN2RjY2Y5ODBmLi5iMDFiMGE0OTY0
MTE1NjM0ZWNlMDVjN2ZhYjI4OTIxNGE1YzMxM2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtNjMsMTcgKzYzLDE3IEBAIFNjcm9s
bGluZ1RyZWU6OlNjcm9sbGluZ1RyZWUoKQogCiBTY3JvbGxpbmdUcmVlOjp+U2Nyb2xsaW5nVHJl
ZSgpID0gZGVmYXVsdDsKIAotYm9vbCBTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2
ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitP
cHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJt
aW5lV2hlZWxFdmVudFByb2Nlc3NpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2
ZW50KQogewogICAgIC8vIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYnkgdGhlIGV2ZW50IGhhbmRs
aW5nIHRocmVhZAogICAgIExvY2tIb2xkZXIgbG9jayhtX3RyZWVTdGF0ZU11dGV4KTsKIAogICAg
IExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVl
OjpzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseSAiIDw8IHdoZWVsRXZlbnQgPDwg
IiBoYXZlIGxhdGNoZWQgbm9kZSAiIDw8IG1fbGF0Y2hpbmdDb250cm9sbGVyLmxhdGNoZWROb2Rl
Rm9yRXZlbnQod2hlZWxFdmVudCwgbV9hbGxvd0xhdGNoaW5nKSk7CiAgICAgaWYgKG1fbGF0Y2hp
bmdDb250cm9sbGVyLmxhdGNoZWROb2RlRm9yRXZlbnQod2hlZWxFdmVudCwgbV9hbGxvd0xhdGNo
aW5nKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQgfTsKIAogICAgIG1fbGF0Y2hpbmdDb250
cm9sbGVyLnJlY2VpdmVkV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBtX2FsbG93TGF0Y2hpbmcpOwot
ICAgIAorCiAgICAgaWYgKCFtX3RyZWVTdGF0ZS5ldmVudFRyYWNraW5nUmVnaW9ucy5pc0VtcHR5
KCkgJiYgbV9yb290Tm9kZSkgewogICAgICAgICBGbG9hdFBvaW50IHBvc2l0aW9uID0gd2hlZWxF
dmVudC5wb3NpdGlvbigpOwogICAgICAgICBwb3NpdGlvbi5tb3ZlKG1fcm9vdE5vZGUtPnZpZXdU
b0NvbnRlbnRzT2Zmc2V0KG1fdHJlZVN0YXRlLm1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKSk7CkBA
IC04NywxMiArODcsMTIgQEAgYm9vbCBTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVXaGVlbEV2
ZW50U3luY2hyb25vdXNseShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQKICAgICAgICAgTE9HX1dJ
VEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJcblxuU2Nyb2xsaW5nVHJlZTo6c2hvdWxk
SGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHk6IHdoZWVsRXZlbnQgIiA8PCB3aGVlbEV2ZW50
IDw8ICIgbWFwcGVkIHRvIGNvbnRlbnQgcG9pbnQgIiA8PCBwb3NpdGlvbiA8PCAiLCBpbiBub24t
ZmFzdCByZWdpb24gIiA8PCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pOwogCiAgICAgICAg
IGlmIChpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pCi0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5U
aHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRG
b3JET01FdmVudERpc3BhdGNoIH07CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQgfTsKIH0KIAot
U2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitXaGVlbEV2ZW50SGFuZGxpbmdSZXN1
bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFt
IDw8ICJcblNjcm9sbGluZ1RyZWUgIiA8PCB0aGlzIDw8ICIgaGFuZGxlV2hlZWxFdmVudCAiIDw8
IHdoZWVsRXZlbnQpOwogCkBAIC0xMDUsMTMgKzEwNSwxMyBAQCBTY3JvbGxpbmdFdmVudFJlc3Vs
dCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgdwogCiAgICAgYXV0byByZXN1bHQgPSBbJl0gewogICAgICAgICBpZiAoIW1fcm9vdE5vZGUp
Ci0gICAgICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2
ZW50OworICAgICAgICAgICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6dW5oYW5k
bGVkKCk7CiAKICAgICAgICAgaWYgKCFhc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQoKSkKICAgICAgICAgICAgIHJldHVybiBtX3Jvb3ROb2RlLT5oYW5kbGVXaGVlbEV2ZW50KHdo
ZWVsRXZlbnQpOwogCiAgICAgICAgIGlmIChtX2dlc3R1cmVTdGF0ZS5oYW5kbGVHZXN0dXJlQ2Fu
Y2VsKHdoZWVsRXZlbnQpKQotICAgICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWRIYW5kbGVFdmVudDsKKyAgICAgICAgICAgIHJldHVybiBXaGVlbEV2ZW50SGFuZGxpbmdS
ZXN1bHQ6OmhhbmRsZWQoKTsKIAogICAgICAgICBtX2dlc3R1cmVTdGF0ZS5yZWNlaXZlZFdoZWVs
RXZlbnQod2hlZWxFdmVudCk7CiAKQEAgLTEyMCwxMiArMTIwLDEyIEBAIFNjcm9sbGluZ0V2ZW50
UmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3CiAgICAgICAgICAgICBhdXRvKiBub2RlID0gbm9kZUZvcklEKCpsYXRjaGVkTm9k
ZUlEKTsKICAgICAgICAgICAgIGlmIChpczxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4obm9k
ZSkpIHsKICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGRvd25jYXN0PFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlPigqbm9kZSkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKLSAg
ICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5k
bGVFdmVudCkKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lndhc0hhbmRsZWQpCiAgICAgICAg
ICAgICAgICAgICAgIG1fZ2VzdHVyZVN0YXRlLm5vZGVEaWRIYW5kbGVFdmVudCgqbGF0Y2hlZE5v
ZGVJRCwgd2hlZWxFdmVudCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBGbG9hdFBvaW50IHBvc2l0
aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOwogICAgICAgICBwb3NpdGlvbi5tb3ZlKG1fcm9v
dE5vZGUtPnZpZXdUb0NvbnRlbnRzT2Zmc2V0KG1fdHJlZVN0YXRlLm1haW5GcmFtZVNjcm9sbFBv
c2l0aW9uKSk7CiAgICAgICAgIGF1dG8gbm9kZSA9IHNjcm9sbGluZ05vZGVGb3JQb2ludChwb3Np
dGlvbik7CkBAIC0xMzcsMTIgKzEzNywxMyBAQCBTY3JvbGxpbmdFdmVudFJlc3VsdCBTY3JvbGxp
bmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgdwogICAg
ICAgICAgICAgICAgIGF1dG8mIHNjcm9sbGluZ05vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZT4oKm5vZGUpOwogICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gc2Ny
b2xsaW5nTm9kZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogCi0gICAgICAgICAgICAg
ICAgaWYgKHJlc3VsdCA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQpIHsK
KyAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lndhc0hhbmRsZWQpIHsKICAgICAgICAgICAgICAg
ICAgICAgbV9sYXRjaGluZ0NvbnRyb2xsZXIubm9kZURpZEhhbmRsZUV2ZW50KHNjcm9sbGluZ05v
ZGUuc2Nyb2xsaW5nTm9kZUlEKCksIHdoZWVsRXZlbnQsIG1fYWxsb3dMYXRjaGluZyk7CiAgICAg
ICAgICAgICAgICAgICAgIG1fZ2VzdHVyZVN0YXRlLm5vZGVEaWRIYW5kbGVFdmVudChzY3JvbGxp
bmdOb2RlLnNjcm9sbGluZ05vZGVJRCgpLCB3aGVlbEV2ZW50KTsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0ICE9IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudCkKKyAg
ICAgICAgICAgICAgICBpZiAocmVzdWx0Lm5lZWRzTWFpblRocmVhZFByb2Nlc3NpbmcoKSkKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0KIApAQCAtMTU1
LDcgKzE1Niw3IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3CiAKICAgICAgICAgICAgIG5vZGUg
PSBub2RlLT5wYXJlbnQoKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZl
bnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50OworICAgICAgICByZXR1cm4gV2hlZWxFdmVudEhh
bmRsaW5nUmVzdWx0Ojp1bmhhbmRsZWQoKTsKICAgICB9KCk7CiAKICAgICByZXR1cm4gcmVzdWx0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4
IDFlNDljMGQ5NDgyZDM2MmQ4N2RlMDVjYTkyMjMwOGEyOTEyNTgwYTUuLjI0NzgxNWYyYjRmZGQx
ZTgwMDUwM2FjM2U5YTAxYmUyOGExMmI0ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTU2LDYgKzU2LDI1IEBAIGNsYXNzIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOwogZW51bSBjbGFzcyBFdmVudExpc3RlbmVyUmVnaW9uVHlwZSA6
IHVpbnQ4X3Q7CiB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVpbnQzMl90OwogCitzdHJ1Y3Qg
V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IHsKKyAgICBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwcz4gc3RlcHM7CisgICAgYm9vbCB3YXNIYW5kbGVkIHsgZmFsc2UgfTsKKyAgICBi
b29sIG5lZWRzTWFpblRocmVhZFByb2Nlc3NpbmcoKSBjb25zdCB7IHJldHVybiBzdGVwcy5jb250
YWluc0FueSh7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxp
bmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3Bh
dGNoIH0pOyB9CisKKyAgICBzdGF0aWMgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZWQo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsgeyB9LCB0cnVlIH07CisgICAgfQorICAgIHN0YXRp
YyBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgdW5oYW5kbGVkKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB7IHsgfSwgZmFsc2UgfTsKKyAgICB9CisgICAgc3RhdGljIFdoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdCByZXN1bHQoYm9vbCBoYW5kbGVkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsgeyB9
LCBoYW5kbGVkIH07CisgICAgfQorfTsKKwogY2xhc3MgU2Nyb2xsaW5nVHJlZSA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxTY3JvbGxpbmdUcmVlPiB7CiBmcmllbmQgY2xhc3MgU2Nyb2xs
aW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjsKIHB1YmxpYzoKQEAgLTcwLDggKzg5LDggQEAgcHVi
bGljOgogICAgIGJvb2wgYXN5bmNGcmFtZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9hc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ7IH0KICAg
ICB2b2lkIHNldEFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZChib29sKTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3Vz
bHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCBTY3JvbGxpbmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYpOworICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzPiBkZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luZyhjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFdoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCiAg
ICAgdm9pZCBzZXRNYWluRnJhbWVJc1J1YmJlckJhbmRpbmcoYm9vbCk7CiAgICAgYm9vbCBpc1J1
YmJlckJhbmRJblByb2dyZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggZWE0ZjYx
MmU2ZjIxNzk5ZDk2ZDQ3NDE0NDNiMGJhYWIzMTY2YjBmMy4uN2VlZjE3OTQ5OTUzY2QyY2VjNWQ4
YjI1Yzc5ZGI1ZGJjOGNkNTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMTUwLDkg
KzE1MCw5IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNhbkhhbmRsZVdoZWVs
RXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3CiAgICAgcmV0dXJuIGV2ZW50Q2FuU2Ny
b2xsQ29udGVudHMod2hlZWxFdmVudCk7CiB9CiAKLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYpCitXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikKIHsKLSAg
ICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50OworICAgIHJl
dHVybiBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQ6OnVuaGFuZGxlZCgpOwogfQogCiBGbG9hdFBv
aW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjbGFtcFNjcm9sbFBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5k
ZXggYjc4M2FjOTJjZDRiMjgyZWUwZTk3YmNhOTVmZGZkMzlmOTljMjhmYS4uNDU4ZWI0MzU3ZmU0
Mzc3MTlhZTA0NDhkYzU1YWNkNTk0YjczMWEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC0z
OSw2ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2Nyb2xsaW5nVHJlZTsK
IGNsYXNzIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTsKK3N0cnVjdCBXaGVlbEV2ZW50SGFu
ZGxpbmdSZXN1bHQ7CiAKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlIDogcHVibGljIFNjcm9sbGluZ1RyZWVOb2RlIHsKICAgICBmcmllbmQgY2xhc3MgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZTsKQEAgLTU1LDcgKzU2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkQ29tcGxldGVDb21taXRGb3JOb2RlKCkgZmluYWw7CiAKICAgICB2aXJ0
dWFsIGJvb2wgY2FuSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBj
b25zdDsKLSAgICB2aXJ0dWFsIFNjcm9sbGluZ0V2ZW50UmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CisgICAgdmlydHVhbCBXaGVlbEV2ZW50SGFuZGxp
bmdSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAog
ICAgIEZsb2F0UG9pbnQgY3VycmVudFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9j
dXJyZW50U2Nyb2xsUG9zaXRpb247IH0KICAgICBGbG9hdFBvaW50IGN1cnJlbnRTY3JvbGxPZmZz
ZXQoKSBjb25zdCB7IHJldHVybiBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0
aW9uKG1fY3VycmVudFNjcm9sbFBvc2l0aW9uLCB0b0Zsb2F0U2l6ZShtX3Njcm9sbE9yaWdpbikp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlLmNwcAppbmRleCA5NmI3N2Q1MzAwOTllNzljNGYyNjAzNjUwMzkwMmE2ODE2
NmIwNzUzLi43ZjM1MTZkMjVkNDIxNTBjNTFkMzEyNGI3ODg2OWVmZmJkMTIwYzcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5jcHAKQEAgLTU1LDE2ICs1NSwxNyBAQCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6On5UaHJl
YWRlZFNjcm9sbGluZ1RyZWUoKQogICAgIEFTU0VSVCghbV9zY3JvbGxpbmdDb29yZGluYXRvcik7
CiB9CiAKLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitXaGVlbEV2
ZW50SGFuZGxpbmdSZXN1bHQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKICAgICBBU1NFUlQoU2Ny
b2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQoKSk7CiAgICAgcmV0dXJuIFNjcm9sbGluZ1Ry
ZWU6OmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiB9CiAKLVNjcm9sbGluZ0V2ZW50UmVz
dWx0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVh
ZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitib29sIFRocmVhZGVkU2Ny
b2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZGlzYWxs
b3dMYXRjaGluZ1Njb3BlKG1fYWxsb3dMYXRjaGluZywgZmFsc2UpOwotICAgIHJldHVybiBoYW5k
bGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOworICAgIGF1dG8gcmVzdWx0ID0gaGFuZGxlV2hlZWxF
dmVudCh3aGVlbEV2ZW50KTsKKyAgICByZXR1cm4gcmVzdWx0Lndhc0hhbmRsZWQ7CiB9CiAKIHZv
aWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjppbnZhbGlkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXggOGY3
MWNkOWMxNTA2MTc3MzE1ZTE4MzhkMDM3OGYxMTM5MjIxOWNlMC4uMzJkZDViYzdhZmE0OTYxMGQ4
MzBhNjU3ZjRiNGFjNTE5ZTZiZjUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTQ1LDkgKzQ1LDkgQEAgY2xh
c3MgVGhyZWFkZWRTY3JvbGxpbmdUcmVlIDogcHVibGljIFNjcm9sbGluZ1RyZWUgewogcHVibGlj
OgogICAgIHZpcnR1YWwgflRocmVhZGVkU2Nyb2xsaW5nVHJlZSgpOwogCi0gICAgU2Nyb2xsaW5n
RXZlbnRSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBv
dmVycmlkZTsKKyAgICBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKIAotICAgIFNjcm9sbGluZ0V2ZW50
UmVzdWx0IGhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50Jik7CisgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdDb29yZGluYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKaW5kZXggZjIxNTZhZjdhNTQ3OWFjODNlOGYxMDQ1ODI1
ZWU3ODk0MWY1ODZkMy4uODFmYjA5NGNmMDc0MDQwOWY5MWUyN2ZhNmFhNjM1ZmZjMmExYzI1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgY29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKSBmaW5hbDsKIAogICAgIC8vIEhhbmRsZSB0aGUg
d2hlZWwgZXZlbnQgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQuIFJldHVybnMgd2hldGhlciB0aGUg
ZXZlbnQgd2FzIGhhbmRsZWQgb3Igbm90LgotICAgIFNjcm9sbGluZ0V2ZW50UmVzdWx0IGhhbmRs
ZVdoZWVsRXZlbnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJp
ZGU7CisgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmVl
U3RhdGVDb21taXQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQppbmRleCBiYjBmMmQ5
OTkyODZlNmY4NzU4OTE3ZmZkZGQ5NmFlMzM0ZmYwN2VjLi5iMmQyYjJlMjBlN2RkNjkwZmE3NjZk
MmJlNGQ1MzExOWMyNjIyNzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC03MywxOSAr
NzMsMTkgQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6cGFnZURlc3Ryb3llZCgpCiAg
ICAgfSk7CiB9CiAKLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
OjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKK2Jvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRsZVdoZWVsRXZl
bnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fcGFnZSk7CiAKICAgICBp
ZiAoc2Nyb2xsaW5nVHJlZSgpLT53aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKHdoZWVs
RXZlbnQpKQotICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRs
ZUV2ZW50OworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8VGhyZWFkZWRTY3Jv
bGxpbmdUcmVlPiB0aHJlYWRlZFNjcm9sbGluZ1RyZWUgPSBkb3duY2FzdDxUaHJlYWRlZFNjcm9s
bGluZ1RyZWU+KHNjcm9sbGluZ1RyZWUoKSk7CiAgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRj
aChbdGhyZWFkZWRTY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50XSB7CiAgICAgICAgIHRocmVhZGVk
U2Nyb2xsaW5nVHJlZS0+aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCh3aGVlbEV2ZW50
KTsKICAgICB9KTsKLSAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZEhhbmRsZUV2
ZW50OworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
OjpzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMuaAppbmRleCAxODJhYTYyY2JmZDhkYzRhNWQ3NzZkNTU1YTdiYWEwZGJkYzQ1
NjRjLi5mNTZiZWM2MjgwNDc4NmNlYTdmY2U0ODk0ZjRhN2IwNDFjOTViYjgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxp
bmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJl
bihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKIAotICAgIFNjcm9sbGluZ0V2
ZW50UmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3Zl
cnJpZGU7CisgICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KaW5kZXggY2UyYjI0NjUzYTM5MGU1Y2MzNDI5
OWVlNjg2YmQ2MDcxODk4NzY1Yy4uYWM2M2E4ZGJkNTBkNjVjMWQ0MDdiMDMxNmNjMjZmODZhNTk0
ZDZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KQEAg
LTExNiwxMCArMTE2LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluCiAgICAgICAgIHVwZGF0
ZU1haW5GcmFtZVBpbkFuZFJ1YmJlcmJhbmRTdGF0ZSgpOwogfQogCi1TY3JvbGxpbmdFdmVudFJl
c3VsdCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK1doZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKICAgICBpZiAoIWNh
bkhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCkpCi0gICAgICAgIHJldHVybiBTY3JvbGxpbmdF
dmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CisgICAgICAgIHJldHVybiBXaGVlbEV2ZW50
SGFuZGxpbmdSZXN1bHQ6OnVuaGFuZGxlZCgpOwogCiAgICAgYm9vbCBoYW5kbGVkID0gbV9kZWxl
Z2F0ZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogCkBAIC0xMzAsNyArMTMwLDcgQEAg
U2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6
aGFuZGxlV2hlZWxFdmVudChjb25zdAogICAgIGlmIChtX2RlbGVnYXRlLmFjdGl2ZVNjcm9sbFNu
YXBJbmRleERpZENoYW5nZSgpKQogICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0QWN0aXZlU2Ny
b2xsU25hcEluZGljZXMoc2Nyb2xsaW5nTm9kZUlEKCksIG1fZGVsZWdhdGUuYWN0aXZlU2Nyb2xs
U25hcEluZGV4Rm9yQXhpcyhTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwpLCBtX2RlbGVnYXRl
LmFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCkp
OwogI2VuZGlmCi0gICAgcmV0dXJuIGhhbmRsZWQgPyBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlk
SGFuZGxlRXZlbnQgOiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7Cisg
ICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6cmVzdWx0KGhhbmRsZWQpOwogfQog
CiBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmFkanVzdGVk
U2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbENsYW1waW5n
IGNsYW1wKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjLmgKaW5kZXggMDcxYTA5NWE5OGYyMDJhOTdmYTgyNzgxMWI1OWQ1YTkxNjkyZmE1My4uNGNm
N2ZlNmNmZWY4NTY3ZjJjY2NhNjVlMzQwMmZmNGNjZGFmMDUwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCkBAIC01MCw3ICs1MCw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHJlcG9zaXRpb25TY3JvbGxpbmdMYXllcnMoKSBvdmVycmlkZTsKICAg
ICB2b2lkIHJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkgb3ZlcnJpZGU7CiAKLSAgICBTY3JvbGxp
bmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYp
IG92ZXJyaWRlOworICAgIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZv
aWQgd2lsbEJlRGVzdHJveWVkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IGE1NDA1YTUwODkxYWY3ODMxNWMyOGE3NzllYzRl
OTY2YmZjM2YyNjMuLjk0NTNhNWNiMzJhYzY1YWJkMDcyMGZhYjE5NmMzNTk3ZDJmYWI2ODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCkBAIC03
MiwxOCArNzIsMTcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFj
Ojpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2wKICAgICB9CiB9CiAKLVNjcm9s
bGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorV2hl
ZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVN
YWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
KQogewogI2lmIEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQogICAgIGlmIChoYXNTeW5jaHJvbm91
c1Njcm9sbGluZ1JlYXNvbnMoKSkKLSAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpTZW5kVG9NYWluVGhyZWFkOworICAgICAgICByZXR1cm4geyB7IFdoZWVsRXZlbnRQcm9jZXNz
aW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3Rl
cHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0sIGZhbHNlIH07CiAjZW5kaWYKIAog
ICAgIGlmICghY2FuSGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KSkKLSAgICAgICAgcmV0dXJu
IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudDsKKyAgICAgICAgcmV0dXJu
IFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6dW5oYW5kbGVkKCk7CiAKLSAgICBib29sIGhhbmRs
ZWQgPSBtX2RlbGVnYXRlLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7Ci0gICAgcmV0dXJu
IGhhbmRsZWQgPyBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQgOiBTY3JvbGxp
bmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CisgICAgcmV0dXJuIFdoZWVsRXZlbnRI
YW5kbGluZ1Jlc3VsdDo6cmVzdWx0KG1fZGVsZWdhdGUuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2
ZW50KSk7CiB9CiAKIEZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZU1hYzo6YWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwg
U2Nyb2xsQ2xhbXBpbmcgY2xhbXApIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Tmljb3NpYS5jcHAKaW5kZXggYTcwZjk4YjNhYjAwODE3NDY3ZWI1YWFlNjBkMDQ1YWI3MDc4MmUz
OC4uNzE1ZGNlODJhOWYyOWQ5MGY3MDc1ZDBkYjVjOTAzMWQxYjNiMTViMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRv
ck5pY29zaWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6Y29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKQogICAg
IG1fc2Nyb2xsaW5nU3RhdGVUcmVlQ29tbWl0dGVyVGltZXIuc3RvcCgpOwogfQogCi1TY3JvbGxp
bmdFdmVudFJlc3VsdCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OmhhbmRsZVdoZWVsRXZl
bnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorYm9v
bCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OmhhbmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3
JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fcGFnZSk7CkBAIC03OCw3ICs3OCw3IEBAIFNj
cm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6aGFuZGxlV2hl
ZWxFdmVudChGcmFtZVZpZXcmLCBjCiAgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChbdGhy
ZWFkZWRTY3JvbGxpbmdUcmVlID0gbWFrZVJlZihkb3duY2FzdDxUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWU+KCpzY3JvbGxpbmdUcmVlKCkpKSwgd2hlZWxFdmVudF0gewogICAgICAgICB0aHJlYWRlZFNj
cm9sbGluZ1RyZWUtPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAgICAgfSk7Ci0gICAg
cmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsKKyAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OnNjaGVkdWxlVHJl
ZVN0YXRlQ29tbWl0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5oCmluZGV4
IDIzN2Q3YzJlOTI0Y2ZhNWMyMWIzOWNjZWM3OGU4NzVhMzRhMzcyNTYuLjcxY2M5ZmE1MjQwYzZh
YTcwYjg5NzA5N2I5YjRjZjgzZmZmNWNiZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRv
ck5pY29zaWEuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbW1pdFRy
ZWVTdGF0ZUlmTmVlZGVkKCkgb3ZlcnJpZGU7CiAKLSAgICBTY3JvbGxpbmdFdmVudFJlc3VsdCBo
YW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92
ZXJyaWRlOworICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcmLCBjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxl
VHJlZVN0YXRlQ29tbWl0KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNv
c2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCmluZGV4IDM0MDAyYWFmMzNlNzk2M2Y1
MWYxYTM5YTNhYTIzZjg2YTZhYWM2YjYuLjM1MjUyMWNlYjQ5OTYxMGZlYTU4NDgxZGU0Y2Q3MzM2
OTA3YjI1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU5pY29zaWEuY3BwCkBAIC0xMTQsMTAgKzExNCwxMCBAQCB2b2lkIFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29u
c3QgU2NybwogICAgIH0KIH0KIAotU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKICAgICBpZiAoIWNhbkhhbmRsZVdoZWVs
RXZlbnQod2hlZWxFdmVudCkpCi0gICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6
RGlkTm90SGFuZGxlRXZlbnQ7CisgICAgICAgIHJldHVybiBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1
bHQ6OnVuaGFuZGxlZCgpOwogCiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkgfHwgd2hlZWxF
dmVudC5kZWx0YVkoKSkgewogICAgICAgICBhdXRvKiBzY3JvbGxMYXllciA9IHN0YXRpY19jYXN0
PE5pY29zaWE6OlBsYXRmb3JtTGF5ZXIqPihzY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSk7CkBAIC0x
NDUsNyArMTQ1LDcgQEAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU5pY29zaWE6OmhhbmRsZVdoZWVsRXZlbnQoY28KICNlbmRpZgogCiAgICAgLy8g
RklYTUU6IFRoaXMgbmVlZHMgdG8gcmV0dXJuIHdoZXRoZXIgdGhlIGV2ZW50IHdhcyBoYW5kbGVk
LgotICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQ7CisgICAg
cmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6aGFuZGxlZCgpOwogfQogCiB2b2lkIFNj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpzdG9wU2Nyb2xsQW5pbWF0aW9u
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNv
c2lhLmgKaW5kZXggNzZhNjlkNTczOTVjYjA0NDkwOTNkZDJmZjc0ZDY5MTQ0ODliZGI1MC4uNjQ3
M2E0YjU2ZTEwMzFiNzM3OThhY2UzODdmYWVjOGE4NGRjNDljZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTmljb3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaApAQCAtNTIsNyArNTIs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBT
Y3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFN0YXRlQWZ0ZXJD
aGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKIAotICAgIFNjcm9s
bGluZ0V2ZW50UmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
Jikgb3ZlcnJpZGU7CisgICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHN0b3BT
Y3JvbGxBbmltYXRpb25zKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZU5pY29zaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKaW5kZXggNmM0ZTQ0NTk4
ZjY2YTU3NzMzNjM2NTA0ODc1NTk3NTQzYTdlZmRjYy4uMGIyNTBkMTc2MzgzMjM0N2U1MmJlM2U4
YWJkMWQwMDMwNjA3NWVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKQEAgLTk5LDEwICs5OSwxMCBAQCB2b2lk
IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpyZXBvc2l0aW9uU2Ny
b2xsaW5nTGF5ZXJzKCkKICAgICAgICAgfSk7CiB9CiAKLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK1doZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAg
aWYgKCFjYW5IYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpKQotICAgICAgICByZXR1cm4gU2Ny
b2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50OworICAgICAgICByZXR1cm4gV2hl
ZWxFdmVudEhhbmRsaW5nUmVzdWx0Ojp1bmhhbmRsZWQoKTsKIAogICAgIGlmICh3aGVlbEV2ZW50
LmRlbHRhWCgpIHx8IHdoZWVsRXZlbnQuZGVsdGFZKCkpIHsKICAgICAgICAgYXV0byogc2Nyb2xs
TGF5ZXIgPSBzdGF0aWNfY2FzdDxOaWNvc2lhOjpQbGF0Zm9ybUxheWVyKj4oc2Nyb2xsQ29udGFp
bmVyTGF5ZXIoKSk7CkBAIC0xMjksNyArMTI5LDcgQEAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OmhhbmRsZVdoZWVsRXZlbnQK
ICAgICB9CiAjZW5kaWYKIAotICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFu
ZGxlRXZlbnQ7CisgICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6aGFuZGxlZCgp
OwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpz
dG9wU2Nyb2xsQW5pbWF0aW9ucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lh
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmgKaW5kZXggZTZmNDYxYTlmNmU2YTNmNDcyY2Q4
NjBjZGY1ZjhhNzZhZTFkOTZkNi4uYWNkYzgyYWMxNTZjYzc2NzAzY2U0Y2Q0OTllZWNhZGZhZmQ0
OTVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZU5pY29zaWEuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBy
ZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkgb3ZlcnJpZGU7CiAKLSAgICBTY3JvbGxpbmdFdmVu
dFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJy
aWRlOworICAgIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzdG9wU2Nyb2xsQW5p
bWF0aW9ucygpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1XaGVlbEV2ZW50LmNwcAppbmRleCA5MWQ2ODhmM2FjMjQxY2NmYzU0MjFjNmNlYmFhNTE2ODQy
YzcxNmMyLi44YTE1YzhhYzQ0NzAxYWM3MzBjZjhiZjNhMWYwYjljMDA5YzEyZWQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKQEAgLTU5LDQg
KzU5LDE0IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAgICAgcmV0dXJuIHRzOwogfQogCitUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzIHN0
ZXBzKQoreworICAgIHN3aXRjaCAoc3RlcHMpIHsKKyAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNz
aW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZDogdHMgPDwgInNjcm9sbGluZyB0aHJlYWQiOyBicmVh
azsKKyAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3Jv
bGxpbmc6IHRzIDw8ICJtYWluIHRocmVhZCBzY3JvbGxpbmciOyBicmVhazsKKyAgICBjYXNlIFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoOiB0
cyA8PCAibWFpbiB0aHJlYWQgRE9NIGV2bmV0IGRpc3BhdGNoIjsgYnJlYWs7CisgICAgfQorICAg
IHJldHVybiB0czsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRleCAxOGEzNWExMTJlOTlhOGQ1NGI1
ZmQ0ODUyMTBiNDViNjU1YzVkMjAyLi4yY2UwNjBlMzM2NTlmNmVmZDNkNDBmOWMyMTk4ZDQ1YTdi
MjcxNTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVs
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQu
aApAQCAtNDAsNiArNDAsMTIgQEAgY2xhc3MgVGV4dFN0cmVhbTsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitlbnVtIGNsYXNzIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgOiB1aW50OF90IHsK
KyAgICBTY3JvbGxpbmdUaHJlYWQgICAgICAgICAgICAgICAgID0gMSA8PCAwLAorICAgIE1haW5U
aHJlYWRGb3JTY3JvbGxpbmcgICAgICAgICAgPSAxIDw8IDEsCisgICAgTWFpblRocmVhZEZvckRP
TUV2ZW50RGlzcGF0Y2ggICA9IDEgPDwgMiwKK307CisKIC8vIFRoZSBTY3JvbGxCeVBpeGVsV2hl
ZWxFdmVudCBpcyBhIGZpbmUtZ3JhaW5lZCBldmVudCB0aGF0IHNwZWNpZmllcyB0aGUgcHJlY2lz
ZSBudW1iZXIgb2YgcGl4ZWxzIHRvIHNjcm9sbC4KIC8vIEl0IGlzIHNlbnQgZGlyZWN0bHkgYnkg
dG91Y2ggcGFkcyBvbiBtYWNPUywgb3Igc3ludGhlc2l6ZWQgd2hlbiBwbGF0Zm9ybXMgZ2VuZXJh
dGUgbGluZS1ieS1saW5lIHNjcm9sbGluZyBldmVudHMuCiAvLwpAQCAtMjU0LDUgKzI2MCw2IEBA
IGlubGluZSBGbG9hdFBvaW50IFBsYXRmb3JtV2hlZWxFdmVudDo6c3dpcGVWZWxvY2l0eSgpIGNv
bnN0CiAjZW5kaWYgLy8gRU5BQkxFKEtJTkVUSUNfU0NST0xMSU5HKQogCiBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
Jik7CitXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwcyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA4MWNiNDMx
N2E1M2JjMTUyMWVmYzQ3NDE4MTMwNWEwZWFkOWJjOGIxLi45Y2NiMGNiOTEwMDVjYjI5MjkxM2Zk
NTNjNjc0ZGZmODA1NzZmMDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xODEsMTMgKzE4MSwxNSBAQCBib29sIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JgogICAgIGlmICghbV9zY3JvbGxpbmdUcmVlKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT5zaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hy
b25vdXNseSh3aGVlbEV2ZW50KSkKKyAgICBhdXRvIHByb2Nlc3NpbmdTdGVwcyA9IG1fc2Nyb2xs
aW5nVHJlZS0+ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3Npbmcod2hlZWxFdmVudCk7CisgICAg
aWYgKHByb2Nlc3NpbmdTdGVwcy5jb250YWluc0FueSh7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3Rl
cHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1h
aW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT53aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJl
KHdoZWVsRXZlbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gbV9zY3Jv
bGxpbmdUcmVlLT5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpID09IFNjcm9sbGluZ0V2ZW50
UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsKKyAgICBhdXRvIHJlc3VsdCA9IG1fc2Nyb2xsaW5nVHJl
ZS0+aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICByZXR1cm4gcmVzdWx0Lndhc0hh
bmRsZWQ7CiB9CiAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxl
TW91c2VFdmVudChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYy5jcHAKaW5kZXggOWEwNDkwNWVlOGY2NTJjMWFiYjdmNDA2Y2JhZTE4ZmI1
MTBhYjUzYS4uNDNlZDczNWQ0MjEyMDEzM2VlYmZhOWY3NDMxN2YzYWJhZjY1MDI1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVSZW1vdGVNYWMuY3BwCkBAIC03MiwxMSArNzIsMTEgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpyZXBvc2l0aW9uUmVsYXRlZExheWVycygpCiAg
ICAgICAgIG1fc2Nyb2xsZXJQYWlyLT51cGRhdGVWYWx1ZXMoKTsKIH0KIAotU2Nyb2xsaW5nRXZl
bnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitXaGVlbEV2
ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1h
Yzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQp
CiB7CiAgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxF
dmVudCh3aGVlbEV2ZW50KTsKIAotICAgIHJldHVybiBtX3Njcm9sbGVyUGFpci0+aGFuZGxlV2hl
ZWxFdmVudCh3aGVlbEV2ZW50KSA/IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVu
dCA6IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudDsKKyAgICByZXR1cm4g
V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpyZXN1bHQobV9zY3JvbGxlclBhaXItPmhhbmRsZVdo
ZWVsRXZlbnQod2hlZWxFdmVudCkpOwogfQogCiBib29sIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVNYWM6OmhhbmRsZU1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBtb3VzZUV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFj
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuaAppbmRleCA4YmVjMWVhNDA0MGI4NmEz
OWQ5N2M4ZTkxOWMyOGNmMzhkNDM2MzUwLi5mNzAwOGIxNGJmMDliOGRiYTMwY2FjOTgzZDY1N2M1
Y2YwMjIyNjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuaApAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRl
OgogICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVUeXBlLCBXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQpOwogCiAgICAgdm9pZCBjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0
IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OlNj
cm9sbGluZ0V2ZW50UmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViQ29yZTo6UGxhdGZv
cm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6V2hlZWxFdmVudEhhbmRsaW5n
UmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBvc2l0aW9uUmVsYXRlZExheWVycygpIG92ZXJyaWRl
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGVyUGFpck1hYz4gbV9zY3JvbGxlclBhaXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFj
L1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcAppbmRleCAzMTc4MzkwY2MyMDVjMDQ3YTk4ZmY1
YWRjN2E5NjEwMTVlMDY2ZjQ5Li43NDNkYTNlZTY4YjkyNjc0ZTA1ZDk1ZDcwZTVkZWM1MmRlZGMx
YzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
bWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKQEAgLTcyLDExICs3MiwxMSBAQCB2
b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWM6OnJlcG9zaXRp
b25SZWxhdGVkTGF5ZXJzKCkKICAgICBtX3Njcm9sbGVyUGFpci0+dXBkYXRlVmFsdWVzKCk7CiB9
CiAKLVNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVSZW1vdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW50KQorV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVSZW1vdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAgIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAKLSAgICByZXR1cm4g
bV9zY3JvbGxlclBhaXItPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCkgPyBTY3JvbGxpbmdF
dmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQgOiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90
SGFuZGxlRXZlbnQ7CisgICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6cmVzdWx0
KG1fc2Nyb2xsZXJQYWlyLT5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpKTsKIH0KIAogYm9v
bCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpoYW5kbGVNb3Vz
ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
UmVtb3RlTWFjLmgKaW5kZXggMjg0YTZlYzMxM2QyY2QwYTk3ZmExN2UxY2I4NjI3M2IwNThkZTI3
YS4uNWM0OThiZGYwYWI0Y2ZhNzRiMzI3ZmJmMDk4OWM1MWM1ZTQ5MDM5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlUmVtb3RlTWFjLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHJpdmF0ZToKICAgICBTY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUm
LCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOwogCiAgICAgdm9pZCBjb21taXRTdGF0ZUJlZm9y
ZUNoaWxkcmVuKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwot
ICAgIFdlYkNvcmU6OlNjcm9sbGluZ0V2ZW50UmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
V2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6V2hl
ZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViQ29yZTo6UGxh
dGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBvc2l0aW9uUmVsYXRlZExh
eWVycygpIG92ZXJyaWRlOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGVyUGFpck1hYz4g
bV9zY3JvbGxlclBhaXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCBhN2UyZTYwNTA5YjU4NjhlMGE4MWEwYTg3MGI3
ODg2YmIyMmQ3ZmQ3Li43ODVhMmNlYjFlOTE1ZTU1NzA5ZDJjNTQ2MWEzNWNkMzQ4NTM5YjBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHAKQEAgLTEzNSwxOCArMTM1LDE5IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVl
bEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlCiAg
ICAgICAgIGlmIChwbGF0Zm9ybVdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZl
bnRQaGFzZUJlZ2FuKQogICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZS0+c2V0TWFpbkZyYW1lQ2Fu
UnViYmVyQmFuZCh7IGNhblJ1YmJlckJhbmRBdFRvcCwgY2FuUnViYmVyQmFuZEF0UmlnaHQsIGNh
blJ1YmJlckJhbmRBdEJvdHRvbSwgY2FuUnViYmVyQmFuZEF0TGVmdCB9KTsKIAotICAgICAgICBp
ZiAoc2Nyb2xsaW5nVHJlZS0+c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkocGxh
dGZvcm1XaGVlbEV2ZW50KSkKKyAgICAgICAgYXV0byBwcm9jZXNzaW5nU3RlcHMgPSBzY3JvbGxp
bmdUcmVlLT5kZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luZyhwbGF0Zm9ybVdoZWVsRXZlbnQp
OworICAgICAgICBpZiAoIXByb2Nlc3NpbmdTdGVwcy5jb250YWlucyhXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgICAgIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goW3Njcm9sbGluZ1RyZWUsIHdoZWVs
RXZlbnQsIHBsYXRmb3JtV2hlZWxFdmVudCwgcGFnZUlELCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldIHsKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gc2Nyb2xsaW5nVHJlZS0+aGFu
ZGxlV2hlZWxFdmVudChwbGF0Zm9ybVdoZWVsRXZlbnQpOwogCi0gICAgICAgICAgICBpZiAocmVz
dWx0ID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpTZW5kVG9NYWluVGhyZWFkKSB7CisgICAgICAg
ICAgICBpZiAocmVzdWx0Lm5lZWRzTWFpblRocmVhZFByb2Nlc3NpbmcoKSkgewogICAgICAgICAg
ICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoV2hlZWxFdmVudFZpYU1haW5UaHJlYWQocGFn
ZUlELCB3aGVlbEV2ZW50KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnNlbmREaWRSZWNlaXZlRXZlbnQocGFnZUlE
LCB3aGVlbEV2ZW50LnR5cGUoKSwgcmVzdWx0ID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRI
YW5kbGVFdmVudCk7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5zZW5kRGlkUmVjZWl2ZUV2
ZW50KHBhZ2VJRCwgd2hlZWxFdmVudC50eXBlKCksIHJlc3VsdC53YXNIYW5kbGVkKTsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgcmV0dXJuIHRydWU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>